Files
perfect-dark/src/game/propobj.c
T
2022-07-17 11:45:27 +10:00

64170 lines
2.3 MiB
Plaintext

#include <ultra64.h>
#include "constants.h"
#include "game/bondmove.h"
#include "game/bondwalk.h"
#include "game/cheats.h"
#include "game/chraction.h"
#include "game/chrai.h"
#include "game/debug.h"
#include "game/dlights.h"
#include "game/nbomb.h"
#include "game/playerreset.h"
#include "game/chr.h"
#include "game/prop.h"
#include "game/setuputils.h"
#include "game/propsnd.h"
#include "game/objectives.h"
#include "game/game_096360.h"
#include "game/atan2f.h"
#include "game/acosfasinf.h"
#include "game/quaternion.h"
#include "game/floor.h"
#include "game/ceil.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/portal.h"
#include "game/player.h"
#include "game/game_0c33f0.h"
#include "game/hudmsg.h"
#include "game/menu.h"
#include "game/inv.h"
#include "game/playermgr.h"
#include "game/game_1291b0.h"
#include "game/vtxstore.h"
#include "game/explosions.h"
#include "game/smoke.h"
#include "game/sparks.h"
#include "game/game_1531a0.h"
#include "game/bg.h"
#include "game/stagetable.h"
#include "game/env.h"
#include "game/gfxmemory.h"
#include "game/lv.h"
#include "game/mplayer/setup.h"
#include "game/mplayer/scenarios.h"
#include "game/mpstats.h"
#include "game/bot.h"
#include "game/botact.h"
#include "game/training.h"
#include "game/lang.h"
#include "game/mplayer/mplayer.h"
#include "game/pad.h"
#include "game/options.h"
#include "game/propobj.h"
#include "game/wallhit.h"
#include "game/shards.h"
#include "bss.h"
#include "tvcmds.h"
#include "lib/vi.h"
#include "lib/dma.h"
#include "lib/main.h"
#include "lib/snd.h"
#include "lib/memp.h"
#include "lib/model.h"
#include "lib/rng.h"
#include "lib/mtx.h"
#include "lib/anim.h"
#include "lib/collision.h"
#include "lib/lib_317f0.h"
#include "data.h"
#include "textures.h"
#include "types.h"
#if VERSION < VERSION_PAL_BETA
const char var7f1a9f60[] = "debugdoors";
#endif
const char var7f1a9f6c[] = "scol";
const char var7f1a9f74[] = "salp";
struct weaponobj *g_Proxies[30];
f32 g_GasReleaseTimerMax240;
bool g_GasEnableDamage;
s32 g_MaxWeaponSlots;
s32 g_MaxHatSlots;
s32 g_MaxAmmoCrates;
s32 g_MaxDebrisSlots;
s32 g_MaxProjectiles;
s32 g_MaxEmbedments;
struct weaponobj *g_WeaponSlots;
struct hatobj *g_HatSlots;
struct ammocrateobj *g_AmmoCrates;
struct defaultobj *g_DebrisSlots;
struct projectile *g_Projectiles;
struct embedment *g_Embedments;
u32 g_TintedGlassEnabled = 0;
s32 g_AlarmTimer = 0;
struct sndstate *g_AlarmAudioHandle = NULL;
f32 g_AlarmSpeakerWeight = 64;
f32 g_AlarmSpeakerDirection = 1;
f32 g_GasReleaseTimer240 = 0;
bool g_GasReleasing = false;
struct coord g_GasPos = {0};
s32 g_GasLastCough60 = 0;
f32 g_GasSoundTimer240 = 0;
struct sndstate *g_GasAudioHandle = NULL;
u32 g_CountdownTimerOff = COUNTDOWNTIMERREASON_AI;
bool g_CountdownTimerRunning = false;
f32 g_CountdownTimerValue60 = 0;
u32 g_PlayersDetonatingMines = 0x00000000;
s32 g_NextWeaponSlot = 0;
s32 g_NextHatSlot = 0;
struct linkliftdoorobj *g_LiftDoors = NULL;
struct padlockeddoorobj *g_PadlockedDoors = NULL;
struct safeitemobj *g_SafeItems = NULL;
struct linksceneryobj *g_LinkedScenery = NULL;
struct blockedpathobj *g_BlockedPaths = NULL;
struct prop *g_EmbedProp = NULL;
s32 g_EmbedHitPart = 0;
u32 var80069938 = 0x00000000;
s16 var8006993c[3] = {0};
u32 var80069944 = 0x00000000;
f32 g_CameraWaitMultiplier = 1;
f32 g_CctvDamageMultiplier = 1;
f32 var80069950 = 1;
f32 var80069954 = 1;
f32 g_AutogunDamageMultiplier = 1;
f32 g_AmmoMultiplier = 1;
struct padeffectobj *g_PadEffects = NULL;
s32 g_LastPadEffectIndex = -1;
struct autogunobj *g_ThrownLaptops = NULL;
struct beam *g_ThrownLaptopBeams = NULL;
s32 g_MaxThrownLaptops = 0;
#if VERSION < VERSION_PAL_BETA
u32 var80069974 = 0x00000000;
#endif
/**
* Attempt to call a lift from the given door.
*
* Returns true if the door activation was handled by this function, or false
* if the caller should proceed with opening or closing the door. A true return
* doesn't necessarily mean the lift was called.
*
* The allowclose argument determines whether the door should be closed if the
* lift is at the door. This is typically true when the player has activated the
* door, and false when NPCs have activated the door. If true, doorCallLift
* doesn't handle the activation which allows the caller to close the door.
*
* Lifts will not be called if it's occupied by anyone. This prevents chrs from
* from calling lifts back when players are in them.
*/
bool doorCallLift(struct prop *doorprop, bool allowclose)
{
struct doorobj *door = doorprop->door;
bool handled = false;
if (door->base.hidden & OBJHFLAG_LIFTDOOR) {
struct linkliftdoorobj *link = g_LiftDoors;
while (link) {
if (doorprop == link->door && link->lift
&& (link->lift->type == PROPTYPE_OBJ || link->lift->type == PROPTYPE_DOOR)) {
bool type = link->lift->obj->type;
handled = true;
if (type == OBJTYPE_DOOR) {
// This appears to be handling situations where the setup
// file specifies a door as the lift object. It activates
// that door, which then calls doorCallLift. This allows
// setup files to chain lift doors to other lift doors
// rather than directly to the lift, but this doesn't happen
// in practice so this branch is unused.
doorsActivate(link->lift, allowclose);
} else if (type == OBJTYPE_LIFT) {
if (allowclose
#if VERSION < VERSION_NTSC_1_0
&& g_Vars.currentplayer->lift == link->lift
#endif
&& door->base.type == OBJTYPE_DOOR
&& !doorIsClosed(door)) {
handled = false;
} else {
bool vacant = true;
s32 numchrslots = chrsGetNumSlots();
s32 i;
for (i = 0; i < PLAYERCOUNT(); i++) {
if (g_Vars.players[i]->lift == link->lift) {
vacant = false;
}
}
if (vacant) {
for (i = 0; i < numchrslots; i++) {
/**
* @bug: This is missing a chrIsDead check.
* If a chr dies in a lift it can no longer be called.
*/
if (g_ChrSlots[i].prop && g_ChrSlots[i].lift == link->lift) {
vacant = false;
break;
}
}
}
if (vacant) {
liftGoToStop((struct liftobj *) link->lift->obj, link->stopnum);
}
}
}
}
link = link->next;
}
}
return handled;
}
bool doorIsPadlockFree(struct doorobj *door)
{
if (door->base.hidden & OBJHFLAG_PADLOCKEDDOOR) {
struct padlockeddoorobj *padlockeddoor = g_PadlockedDoors;
while (padlockeddoor) {
if (door == padlockeddoor->door
&& padlockeddoor->lock
&& padlockeddoor->lock->prop
&& objIsHealthy(padlockeddoor->lock)) {
return false;
}
padlockeddoor = padlockeddoor->next;
}
}
return true;
}
bool objCanPickupFromSafe(struct defaultobj *obj)
{
if (obj->flags2 & OBJFLAG2_LINKEDTOSAFE) {
struct safeitemobj *link = g_SafeItems;
while (link) {
struct defaultobj *loopobj = link->item;
if (obj == link->item && link->door && link->door->base.prop) {
if (link->door->frac <= 0.5f * link->door->maxfrac) {
return false;
}
}
link = link->next;
}
}
return true;
}
void objUpdateLinkedScenery(struct defaultobj *obj, struct prop *prop)
{
if ((obj->hidden & OBJHFLAG_CONDITIONALSCENERY) && (obj->flags & OBJFLAG_INVINCIBLE) == 0) {
struct linksceneryobj *link = g_LinkedScenery;
while (link) {
if (link->trigger == obj) {
objCreateDebris(obj, prop);
link->trigger->flags2 |= OBJFLAG2_INVISIBLE;
link->trigger->hidden |= OBJHFLAG_REAPABLE;
if (link->unexp) {
link->unexp->flags2 |= OBJFLAG2_INVISIBLE;
}
if (link->exp) {
link->exp->flags2 &= ~OBJFLAG2_INVISIBLE;
}
objSetBlockedPathUnblocked(obj, true);
return;
}
link = link->next;
}
}
}
f32 modelBboxGetXMin(struct modelrodata_bbox *bbox)
{
return bbox->xmin;
}
f32 modelBboxGetXMax(struct modelrodata_bbox *bbox)
{
return bbox->xmax;
}
f32 modelBboxGetYMin(struct modelrodata_bbox *bbox)
{
return bbox->ymin;
}
f32 modelBboxGetYMax(struct modelrodata_bbox *bbox)
{
return bbox->ymax;
}
f32 modelBboxGetZMin(struct modelrodata_bbox *bbox)
{
return bbox->zmin;
}
f32 modelBboxGetZMax(struct modelrodata_bbox *bbox)
{
return bbox->zmax;
}
f32 func0f0667dc(struct modelrodata_bbox *bbox, Mtxf *mtx)
{
return func0f066a1c(bbox, mtx->m[0][0], mtx->m[1][0], mtx->m[2][0]);
}
f32 func0f06680c(struct modelrodata_bbox *bbox, Mtxf *mtx)
{
return func0f066abc(bbox, mtx->m[0][0], mtx->m[1][0], mtx->m[2][0]);
}
f32 func0f06683c(struct modelrodata_bbox *bbox, Mtxf *mtx)
{
return func0f066a1c(bbox, mtx->m[0][1], mtx->m[1][1], mtx->m[2][1]);
}
f32 func0f06686c(struct modelrodata_bbox *bbox, Mtxf *mtx)
{
return func0f066abc(bbox, mtx->m[0][1], mtx->m[1][1], mtx->m[2][1]);
}
f32 func0f06689c(struct modelrodata_bbox *bbox, Mtxf *mtx)
{
return func0f066a1c(bbox, mtx->m[0][2], mtx->m[1][2], mtx->m[2][2]);
}
f32 func0f0668cc(struct modelrodata_bbox *bbox, Mtxf *matrix)
{
return func0f066abc(bbox, matrix->m[0][2], matrix->m[1][2], matrix->m[2][2]);
}
f32 func0f0668fc(struct modelrodata_bbox *bbox, f32 realrot[3][3])
{
return func0f066a1c(bbox, realrot[0][0], realrot[1][0], realrot[2][0]);
}
f32 func0f06692c(struct modelrodata_bbox *bbox, f32 realrot[3][3])
{
return func0f066abc(bbox, realrot[0][0], realrot[1][0], realrot[2][0]);
}
f32 func0f06695c(struct modelrodata_bbox *bbox, f32 realrot[3][3])
{
return func0f066a1c(bbox, realrot[0][1], realrot[1][1], realrot[2][1]);
}
f32 func0f06698c(struct modelrodata_bbox *bbox, f32 realrot[3][3])
{
return func0f066abc(bbox, realrot[0][1], realrot[1][1], realrot[2][1]);
}
f32 func0f0669bc(struct modelrodata_bbox *bbox, f32 realrot[3][3])
{
return func0f066a1c(bbox, realrot[0][2], realrot[1][2], realrot[2][2]);
}
f32 func0f0669ec(struct modelrodata_bbox *bbox, f32 realrot[3][3])
{
return func0f066abc(bbox, realrot[0][2], realrot[1][2], realrot[2][2]);
}
f32 func0f066a1c(struct modelrodata_bbox *bbox, f32 arg1, f32 arg2, f32 arg3)
{
f32 sum = 0;
if (arg1 >= 0) {
sum += bbox->xmin * arg1;
} else {
sum += bbox->xmax * arg1;
}
if (arg2 >= 0) {
sum += bbox->ymin * arg2;
} else {
sum += bbox->ymax * arg2;
}
if (arg3 >= 0) {
sum += bbox->zmin * arg3;
} else {
sum += bbox->zmax * arg3;
}
return sum;
}
f32 func0f066abc(struct modelrodata_bbox *bbox, f32 arg1, f32 arg2, f32 arg3)
{
f32 sum = 0;
if (arg1 <= 0) {
sum += bbox->xmin * arg1;
} else {
sum += bbox->xmax * arg1;
}
if (arg2 <= 0) {
sum += bbox->ymin * arg2;
} else {
sum += bbox->ymax * arg2;
}
if (arg3 <= 0) {
sum += bbox->zmin * arg3;
} else {
sum += bbox->zmax * arg3;
}
return sum;
}
GLOBAL_ASM(
glabel func0f066b5c
.late_rodata
glabel var7f1aa1cc
.word 0x3a83126f
.text
/* f066b5c: 27bdfd00 */ addiu $sp,$sp,-768
/* f066b60: 8faf0318 */ lw $t7,0x318($sp)
/* f066b64: afb1000c */ sw $s1,0xc($sp)
/* f066b68: afb00008 */ sw $s0,0x8($sp)
/* f066b6c: e7ac0300 */ swc1 $f12,0x300($sp)
/* f066b70: e7ae0304 */ swc1 $f14,0x304($sp)
/* f066b74: afa60308 */ sw $a2,0x308($sp)
/* f066b78: afa7030c */ sw $a3,0x30c($sp)
/* f066b7c: c5e40000 */ lwc1 $f4,0x0($t7)
/* f066b80: 00001025 */ or $v0,$zero,$zero
/* f066b84: 00005825 */ or $t3,$zero,$zero
/* f066b88: 460021a1 */ cvt.d.s $f6,$f4
/* f066b8c: 00004825 */ or $t1,$zero,$zero
/* f066b90: f7a60170 */ sdc1 $f6,0x170($sp)
/* f066b94: c5ea0008 */ lwc1 $f10,0x8($t7)
/* f066b98: 00005025 */ or $t2,$zero,$zero
/* f066b9c: 00004025 */ or $t0,$zero,$zero
/* f066ba0: 46005221 */ cvt.d.s $f8,$f10
/* f066ba4: 27ac0270 */ addiu $t4,$sp,0x270
/* f066ba8: f7a80168 */ sdc1 $f8,0x168($sp)
/* f066bac: c5e40010 */ lwc1 $f4,0x10($t7)
/* f066bb0: 27a501f0 */ addiu $a1,$sp,0x1f0
/* f066bb4: 00001825 */ or $v1,$zero,$zero
/* f066bb8: 460022a1 */ cvt.d.s $f10,$f4
/* f066bbc: f7aa0160 */ sdc1 $f10,0x160($sp)
/* f066bc0: c5e40018 */ lwc1 $f4,0x18($t7)
/* f066bc4: f7a60010 */ sdc1 $f6,0x10($sp)
/* f066bc8: 46002121 */ cvt.d.s $f4,$f4
/* f066bcc: f7a40158 */ sdc1 $f4,0x158($sp)
/* f066bd0: c5e60020 */ lwc1 $f6,0x20($t7)
/* f066bd4: f7a80018 */ sdc1 $f8,0x18($sp)
/* f066bd8: 460031a1 */ cvt.d.s $f6,$f6
/* f066bdc: f7a60150 */ sdc1 $f6,0x150($sp)
/* f066be0: c5e80028 */ lwc1 $f8,0x28($t7)
/* f066be4: f7aa0020 */ sdc1 $f10,0x20($sp)
/* f066be8: c7aa0300 */ lwc1 $f10,0x300($sp)
/* f066bec: 46004221 */ cvt.d.s $f8,$f8
/* f066bf0: 46005021 */ cvt.d.s $f0,$f10
/* f066bf4: d7aa0010 */ ldc1 $f10,0x10($sp)
/* f066bf8: f7a40010 */ sdc1 $f4,0x10($sp)
/* f066bfc: c7a40308 */ lwc1 $f4,0x308($sp)
/* f066c00: f7a80148 */ sdc1 $f8,0x148($sp)
/* f066c04: f7a80028 */ sdc1 $f8,0x28($sp)
/* f066c08: 460020a1 */ cvt.d.s $f2,$f4
/* f066c0c: 46205402 */ mul.d $f16,$f10,$f0
/* f066c10: d7a40020 */ ldc1 $f4,0x20($sp)
/* f066c14: c7a80310 */ lwc1 $f8,0x310($sp)
/* f066c18: f7a60020 */ sdc1 $f6,0x20($sp)
/* f066c1c: 46222182 */ mul.d $f6,$f4,$f2
/* f066c20: 46004321 */ cvt.d.s $f12,$f8
/* f066c24: d7a80020 */ ldc1 $f8,0x20($sp)
/* f066c28: f7aa0020 */ sdc1 $f10,0x20($sp)
/* f066c2c: 462c4282 */ mul.d $f10,$f8,$f12
/* f066c30: f7a80030 */ sdc1 $f8,0x30($sp)
/* f066c34: 46268480 */ add.d $f18,$f16,$f6
/* f066c38: f7a600b0 */ sdc1 $f6,0xb0($sp)
/* f066c3c: f7aa00a0 */ sdc1 $f10,0xa0($sp)
/* f066c40: 462a9280 */ add.d $f10,$f18,$f10
/* f066c44: f7aa0270 */ sdc1 $f10,0x270($sp)
/* f066c48: d7aa0018 */ ldc1 $f10,0x18($sp)
/* f066c4c: f7a40018 */ sdc1 $f4,0x18($sp)
/* f066c50: 46205102 */ mul.d $f4,$f10,$f0
/* f066c54: f7a400b8 */ sdc1 $f4,0xb8($sp)
/* f066c58: d7a40010 */ ldc1 $f4,0x10($sp)
/* f066c5c: f7a60010 */ sdc1 $f6,0x10($sp)
/* f066c60: 46222182 */ mul.d $f6,$f4,$f2
/* f066c64: f7a600a8 */ sdc1 $f6,0xa8($sp)
/* f066c68: d7a800a8 */ ldc1 $f8,0xa8($sp)
/* f066c6c: d7a600b8 */ ldc1 $f6,0xb8($sp)
/* f066c70: 46283180 */ add.d $f6,$f6,$f8
/* f066c74: d7a80028 */ ldc1 $f8,0x28($sp)
/* f066c78: f7aa0028 */ sdc1 $f10,0x28($sp)
/* f066c7c: f7a60090 */ sdc1 $f6,0x90($sp)
/* f066c80: 462c4182 */ mul.d $f6,$f8,$f12
/* f066c84: f7a60098 */ sdc1 $f6,0x98($sp)
/* f066c88: d7aa0098 */ ldc1 $f10,0x98($sp)
/* f066c8c: d7a60090 */ ldc1 $f6,0x90($sp)
/* f066c90: 462a3180 */ add.d $f6,$f6,$f10
/* f066c94: c7aa0314 */ lwc1 $f10,0x314($sp)
/* f066c98: f7a60278 */ sdc1 $f6,0x278($sp)
/* f066c9c: d7a60030 */ ldc1 $f6,0x30($sp)
/* f066ca0: 460053a1 */ cvt.d.s $f14,$f10
/* f066ca4: 462e3282 */ mul.d $f10,$f6,$f14
/* f066ca8: f7aa0058 */ sdc1 $f10,0x58($sp)
/* f066cac: 462e4182 */ mul.d $f6,$f8,$f14
/* f066cb0: 462a9280 */ add.d $f10,$f18,$f10
/* f066cb4: f7aa0280 */ sdc1 $f10,0x280($sp)
/* f066cb8: d7aa0090 */ ldc1 $f10,0x90($sp)
/* f066cbc: f7a60050 */ sdc1 $f6,0x50($sp)
/* f066cc0: 46265180 */ add.d $f6,$f10,$f6
/* f066cc4: c7aa030c */ lwc1 $f10,0x30c($sp)
/* f066cc8: f7a60288 */ sdc1 $f6,0x288($sp)
/* f066ccc: d7a60018 */ ldc1 $f6,0x18($sp)
/* f066cd0: 46005221 */ cvt.d.s $f8,$f10
/* f066cd4: f7a800c0 */ sdc1 $f8,0xc0($sp)
/* f066cd8: 46283202 */ mul.d $f8,$f6,$f8
/* f066cdc: d7a600a0 */ ldc1 $f6,0xa0($sp)
/* f066ce0: 46288280 */ add.d $f10,$f16,$f8
/* f066ce4: f7a80068 */ sdc1 $f8,0x68($sp)
/* f066ce8: d7a800c0 */ ldc1 $f8,0xc0($sp)
/* f066cec: f7aa0048 */ sdc1 $f10,0x48($sp)
/* f066cf0: 46265280 */ add.d $f10,$f10,$f6
/* f066cf4: 46282182 */ mul.d $f6,$f4,$f8
/* f066cf8: d7a80098 */ ldc1 $f8,0x98($sp)
/* f066cfc: d7a40058 */ ldc1 $f4,0x58($sp)
/* f066d00: f7aa0290 */ sdc1 $f10,0x290($sp)
/* f066d04: d7aa00b8 */ ldc1 $f10,0xb8($sp)
/* f066d08: 46265080 */ add.d $f2,$f10,$f6
/* f066d0c: d7aa0048 */ ldc1 $f10,0x48($sp)
/* f066d10: f7a60060 */ sdc1 $f6,0x60($sp)
/* f066d14: 46281180 */ add.d $f6,$f2,$f8
/* f066d18: 46245200 */ add.d $f8,$f10,$f4
/* f066d1c: c7a40304 */ lwc1 $f4,0x304($sp)
/* f066d20: f7a60298 */ sdc1 $f6,0x298($sp)
/* f066d24: d7a60050 */ ldc1 $f6,0x50($sp)
/* f066d28: f7a802a0 */ sdc1 $f8,0x2a0($sp)
/* f066d2c: d7a80020 */ ldc1 $f8,0x20($sp)
/* f066d30: 46002021 */ cvt.d.s $f0,$f4
/* f066d34: 46261280 */ add.d $f10,$f2,$f6
/* f066d38: 46204402 */ mul.d $f16,$f8,$f0
/* f066d3c: d7a80028 */ ldc1 $f8,0x28($sp)
/* f066d40: d7a60010 */ ldc1 $f6,0x10($sp)
/* f066d44: f7aa02a8 */ sdc1 $f10,0x2a8($sp)
/* f066d48: 46204482 */ mul.d $f18,$f8,$f0
/* f066d4c: d7aa00a0 */ ldc1 $f10,0xa0($sp)
/* f066d50: d7a80058 */ ldc1 $f8,0x58($sp)
/* f066d54: 46268300 */ add.d $f12,$f16,$f6
/* f066d58: d7a600a8 */ ldc1 $f6,0xa8($sp)
/* f066d5c: 462a6100 */ add.d $f4,$f12,$f10
/* f066d60: d7aa0098 */ ldc1 $f10,0x98($sp)
/* f066d64: 46269380 */ add.d $f14,$f18,$f6
/* f066d68: f7a402b0 */ sdc1 $f4,0x2b0($sp)
/* f066d6c: 46286180 */ add.d $f6,$f12,$f8
/* f066d70: d7a80068 */ ldc1 $f8,0x68($sp)
/* f066d74: 462a7100 */ add.d $f4,$f14,$f10
/* f066d78: d7aa0050 */ ldc1 $f10,0x50($sp)
/* f066d7c: f7a602c0 */ sdc1 $f6,0x2c0($sp)
/* f066d80: 46288000 */ add.d $f0,$f16,$f8
/* f066d84: f7a402b8 */ sdc1 $f4,0x2b8($sp)
/* f066d88: d7a600a0 */ ldc1 $f6,0xa0($sp)
/* f066d8c: 462a7100 */ add.d $f4,$f14,$f10
/* f066d90: d7a80098 */ ldc1 $f8,0x98($sp)
/* f066d94: 46260280 */ add.d $f10,$f0,$f6
/* f066d98: f7a402c8 */ sdc1 $f4,0x2c8($sp)
/* f066d9c: d7a40060 */ ldc1 $f4,0x60($sp)
/* f066da0: f7aa02d0 */ sdc1 $f10,0x2d0($sp)
/* f066da4: 46249080 */ add.d $f2,$f18,$f4
/* f066da8: d7aa0058 */ ldc1 $f10,0x58($sp)
/* f066dac: 46281180 */ add.d $f6,$f2,$f8
/* f066db0: d7a80050 */ ldc1 $f8,0x50($sp)
/* f066db4: 462a0100 */ add.d $f4,$f0,$f10
/* f066db8: f7a602d8 */ sdc1 $f6,0x2d8($sp)
/* f066dbc: 46281180 */ add.d $f6,$f2,$f8
/* f066dc0: f7a402e0 */ sdc1 $f4,0x2e0($sp)
/* f066dc4: f7a602e8 */ sdc1 $f6,0x2e8($sp)
.L0f066dc8:
/* f066dc8: 18400021 */ blez $v0,.L0f066e50
/* f066dcc: 00002025 */ or $a0,$zero,$zero
/* f066dd0: 3c017f1b */ lui $at,%hi(var7f1aa1cc)
/* f066dd4: c42aa1cc */ lwc1 $f10,%lo(var7f1aa1cc)($at)
/* f066dd8: 0003c100 */ sll $t8,$v1,0x4
/* f066ddc: 01983021 */ addu $a2,$t4,$t8
/* f066de0: d4cc0000 */ ldc1 $f12,0x0($a2)
/* f066de4: d4d00008 */ ldc1 $f16,0x8($a2)
/* f066de8: 27a701f0 */ addiu $a3,$sp,0x1f0
/* f066dec: 46005021 */ cvt.d.s $f0,$f10
.L0f066df0:
/* f066df0: d4e40000 */ ldc1 $f4,0x0($a3)
/* f066df4: d4e80008 */ ldc1 $f8,0x8($a3)
/* f066df8: 46246081 */ sub.d $f2,$f12,$f4
/* f066dfc: 46288381 */ sub.d $f14,$f16,$f8
/* f066e00: 4620103c */ c.lt.d $f2,$f0
/* f066e04: 00000000 */ nop
/* f066e08: 4502000f */ bc1fl .L0f066e48
/* f066e0c: 24840001 */ addiu $a0,$a0,0x1
/* f066e10: 46200487 */ neg.d $f18,$f0
/* f066e14: 4622903c */ c.lt.d $f18,$f2
/* f066e18: 00000000 */ nop
/* f066e1c: 4502000a */ bc1fl .L0f066e48
/* f066e20: 24840001 */ addiu $a0,$a0,0x1
/* f066e24: 4620703c */ c.lt.d $f14,$f0
/* f066e28: 00000000 */ nop
/* f066e2c: 45020006 */ bc1fl .L0f066e48
/* f066e30: 24840001 */ addiu $a0,$a0,0x1
/* f066e34: 462e903c */ c.lt.d $f18,$f14
/* f066e38: 00000000 */ nop
/* f066e3c: 45030005 */ bc1tl .L0f066e54
/* f066e40: 0082082a */ slt $at,$a0,$v0
/* f066e44: 24840001 */ addiu $a0,$a0,0x1
.L0f066e48:
/* f066e48: 1482ffe9 */ bne $a0,$v0,.L0f066df0
/* f066e4c: 24e70010 */ addiu $a3,$a3,0x10
.L0f066e50:
/* f066e50: 0082082a */ slt $at,$a0,$v0
.L0f066e54:
/* f066e54: 14200009 */ bnez $at,.L0f066e7c
/* f066e58: 0002c900 */ sll $t9,$v0,0x4
/* f066e5c: 00037100 */ sll $t6,$v1,0x4
/* f066e60: 018e3021 */ addu $a2,$t4,$t6
/* f066e64: d4c60000 */ ldc1 $f6,0x0($a2)
/* f066e68: d4ca0008 */ ldc1 $f10,0x8($a2)
/* f066e6c: 00b92021 */ addu $a0,$a1,$t9
/* f066e70: 24420001 */ addiu $v0,$v0,0x1
/* f066e74: f4860000 */ sdc1 $f6,0x0($a0)
/* f066e78: f48a0008 */ sdc1 $f10,0x8($a0)
.L0f066e7c:
/* f066e7c: 24630001 */ addiu $v1,$v1,0x1
/* f066e80: 28610008 */ slti $at,$v1,0x8
/* f066e84: 1420ffd0 */ bnez $at,.L0f066dc8
/* f066e88: 00000000 */ nop
/* f066e8c: 28410002 */ slti $at,$v0,0x2
/* f066e90: 14200019 */ bnez $at,.L0f066ef8
/* f066e94: 24030001 */ addiu $v1,$zero,0x1
/* f066e98: 27a40200 */ addiu $a0,$sp,0x200
.L0f066e9c:
/* f066e9c: 000b7900 */ sll $t7,$t3,0x4
/* f066ea0: 00af3821 */ addu $a3,$a1,$t7
/* f066ea4: d4e20000 */ ldc1 $f2,0x0($a3)
/* f066ea8: d4800000 */ ldc1 $f0,0x0($a0)
/* f066eac: 4622003c */ c.lt.d $f0,$f2
/* f066eb0: 00000000 */ nop
/* f066eb4: 4503000c */ bc1tl .L0f066ee8
/* f066eb8: 00605825 */ or $t3,$v1,$zero
/* f066ebc: 46220032 */ c.eq.d $f0,$f2
/* f066ec0: 00000000 */ nop
/* f066ec4: 45020009 */ bc1fl .L0f066eec
/* f066ec8: 24630001 */ addiu $v1,$v1,0x1
/* f066ecc: d4840008 */ ldc1 $f4,0x8($a0)
/* f066ed0: d4e80008 */ ldc1 $f8,0x8($a3)
/* f066ed4: 4628203c */ c.lt.d $f4,$f8
/* f066ed8: 00000000 */ nop
/* f066edc: 45020003 */ bc1fl .L0f066eec
/* f066ee0: 24630001 */ addiu $v1,$v1,0x1
/* f066ee4: 00605825 */ or $t3,$v1,$zero
.L0f066ee8:
/* f066ee8: 24630001 */ addiu $v1,$v1,0x1
.L0f066eec:
/* f066eec: 1462ffeb */ bne $v1,$v0,.L0f066e9c
/* f066ef0: 24840010 */ addiu $a0,$a0,0x10
/* f066ef4: 24030001 */ addiu $v1,$zero,0x1
.L0f066ef8:
/* f066ef8: 000bc100 */ sll $t8,$t3,0x4
/* f066efc: 00b83821 */ addu $a3,$a1,$t8
/* f066f00: 28410002 */ slti $at,$v0,0x2
/* f066f04: 14200019 */ bnez $at,.L0f066f6c
/* f066f08: d4e20000 */ ldc1 $f2,0x0($a3)
/* f066f0c: 27a40200 */ addiu $a0,$sp,0x200
.L0f066f10:
/* f066f10: 000ac900 */ sll $t9,$t2,0x4
/* f066f14: 00b96821 */ addu $t5,$a1,$t9
/* f066f18: d5ac0008 */ ldc1 $f12,0x8($t5)
/* f066f1c: d4800008 */ ldc1 $f0,0x8($a0)
/* f066f20: 4620603c */ c.lt.d $f12,$f0
/* f066f24: 00000000 */ nop
/* f066f28: 4503000c */ bc1tl .L0f066f5c
/* f066f2c: 00605025 */ or $t2,$v1,$zero
/* f066f30: 462c0032 */ c.eq.d $f0,$f12
/* f066f34: 00000000 */ nop
/* f066f38: 45020009 */ bc1fl .L0f066f60
/* f066f3c: 24630001 */ addiu $v1,$v1,0x1
/* f066f40: d4860000 */ ldc1 $f6,0x0($a0)
/* f066f44: d5aa0000 */ ldc1 $f10,0x0($t5)
/* f066f48: 462a303c */ c.lt.d $f6,$f10
/* f066f4c: 00000000 */ nop
/* f066f50: 45020003 */ bc1fl .L0f066f60
/* f066f54: 24630001 */ addiu $v1,$v1,0x1
/* f066f58: 00605025 */ or $t2,$v1,$zero
.L0f066f5c:
/* f066f5c: 24630001 */ addiu $v1,$v1,0x1
.L0f066f60:
/* f066f60: 1462ffeb */ bne $v1,$v0,.L0f066f10
/* f066f64: 24840010 */ addiu $a0,$a0,0x10
/* f066f68: 24030001 */ addiu $v1,$zero,0x1
.L0f066f6c:
/* f066f6c: 28410002 */ slti $at,$v0,0x2
/* f066f70: 14200018 */ bnez $at,.L0f066fd4
/* f066f74: 27a40200 */ addiu $a0,$sp,0x200
.L0f066f78:
/* f066f78: 00097100 */ sll $t6,$t1,0x4
/* f066f7c: 00ae8021 */ addu $s0,$a1,$t6
/* f066f80: d60c0000 */ ldc1 $f12,0x0($s0)
/* f066f84: d4800000 */ ldc1 $f0,0x0($a0)
/* f066f88: 4620603c */ c.lt.d $f12,$f0
/* f066f8c: 00000000 */ nop
/* f066f90: 4503000c */ bc1tl .L0f066fc4
/* f066f94: 00604825 */ or $t1,$v1,$zero
/* f066f98: 462c0032 */ c.eq.d $f0,$f12
/* f066f9c: 00000000 */ nop
/* f066fa0: 45020009 */ bc1fl .L0f066fc8
/* f066fa4: 24630001 */ addiu $v1,$v1,0x1
/* f066fa8: d6040008 */ ldc1 $f4,0x8($s0)
/* f066fac: d4880008 */ ldc1 $f8,0x8($a0)
/* f066fb0: 4628203c */ c.lt.d $f4,$f8
/* f066fb4: 00000000 */ nop
/* f066fb8: 45020003 */ bc1fl .L0f066fc8
/* f066fbc: 24630001 */ addiu $v1,$v1,0x1
/* f066fc0: 00604825 */ or $t1,$v1,$zero
.L0f066fc4:
/* f066fc4: 24630001 */ addiu $v1,$v1,0x1
.L0f066fc8:
/* f066fc8: 1462ffeb */ bne $v1,$v0,.L0f066f78
/* f066fcc: 24840010 */ addiu $a0,$a0,0x10
/* f066fd0: 24030001 */ addiu $v1,$zero,0x1
.L0f066fd4:
/* f066fd4: 28410002 */ slti $at,$v0,0x2
/* f066fd8: 14200018 */ bnez $at,.L0f06703c
/* f066fdc: 46201120 */ cvt.s.d $f4,$f2
/* f066fe0: 27a40200 */ addiu $a0,$sp,0x200
.L0f066fe4:
/* f066fe4: 00087900 */ sll $t7,$t0,0x4
/* f066fe8: 00af6821 */ addu $t5,$a1,$t7
/* f066fec: d5ac0008 */ ldc1 $f12,0x8($t5)
/* f066ff0: d4800008 */ ldc1 $f0,0x8($a0)
/* f066ff4: 462c003c */ c.lt.d $f0,$f12
/* f066ff8: 00000000 */ nop
/* f066ffc: 4503000c */ bc1tl .L0f067030
/* f067000: 00604025 */ or $t0,$v1,$zero
/* f067004: 462c0032 */ c.eq.d $f0,$f12
/* f067008: 00000000 */ nop
/* f06700c: 45020009 */ bc1fl .L0f067034
/* f067010: 24630001 */ addiu $v1,$v1,0x1
/* f067014: d5a60000 */ ldc1 $f6,0x0($t5)
/* f067018: d48a0000 */ ldc1 $f10,0x0($a0)
/* f06701c: 462a303c */ c.lt.d $f6,$f10
/* f067020: 00000000 */ nop
/* f067024: 45020003 */ bc1fl .L0f067034
/* f067028: 24630001 */ addiu $v1,$v1,0x1
/* f06702c: 00604025 */ or $t0,$v1,$zero
.L0f067030:
/* f067030: 24630001 */ addiu $v1,$v1,0x1
.L0f067034:
/* f067034: 1462ffeb */ bne $v1,$v0,.L0f066fe4
/* f067038: 24840010 */ addiu $a0,$a0,0x10
.L0f06703c:
/* f06703c: 00002025 */ or $a0,$zero,$zero
/* f067040: 18400011 */ blez $v0,.L0f067088
/* f067044: 00001825 */ or $v1,$zero,$zero
/* f067048: 27a601bc */ addiu $a2,$sp,0x1bc
.L0f06704c:
/* f06704c: 506b000b */ beql $v1,$t3,.L0f06707c
/* f067050: 24630001 */ addiu $v1,$v1,0x1
/* f067054: 50690009 */ beql $v1,$t1,.L0f06707c
/* f067058: 24630001 */ addiu $v1,$v1,0x1
/* f06705c: 506a0007 */ beql $v1,$t2,.L0f06707c
/* f067060: 24630001 */ addiu $v1,$v1,0x1
/* f067064: 10680004 */ beq $v1,$t0,.L0f067078
/* f067068: 0004c080 */ sll $t8,$a0,0x2
/* f06706c: 00d8c821 */ addu $t9,$a2,$t8
/* f067070: af230000 */ sw $v1,0x0($t9)
/* f067074: 24840001 */ addiu $a0,$a0,0x1
.L0f067078:
/* f067078: 24630001 */ addiu $v1,$v1,0x1
.L0f06707c:
/* f06707c: 1462fff3 */ bne $v1,$v0,.L0f06704c
/* f067080: 00000000 */ nop
/* f067084: 00001825 */ or $v1,$zero,$zero
.L0f067088:
/* f067088: 8fac031c */ lw $t4,0x31c($sp)
/* f06708c: 24060001 */ addiu $a2,$zero,0x1
/* f067090: 00087100 */ sll $t6,$t0,0x4
/* f067094: e584000c */ swc1 $f4,0xc($t4)
/* f067098: d4e80008 */ ldc1 $f8,0x8($a3)
/* f06709c: 462041a0 */ cvt.s.d $f6,$f8
/* f0670a0: 110b002e */ beq $t0,$t3,.L0f06715c
/* f0670a4: e5860010 */ swc1 $f6,0x10($t4)
/* f0670a8: 18800023 */ blez $a0,.L0f067138
/* f0670ac: 00ae6821 */ addu $t5,$a1,$t6
/* f0670b0: d5ac0008 */ ldc1 $f12,0x8($t5)
/* f0670b4: d5a00000 */ ldc1 $f0,0x0($t5)
/* f0670b8: d4ea0008 */ ldc1 $f10,0x8($a3)
/* f0670bc: d4e40000 */ ldc1 $f4,0x0($a3)
/* f0670c0: 27a201bc */ addiu $v0,$sp,0x1bc
/* f0670c4: 462c5381 */ sub.d $f14,$f10,$f12
/* f0670c8: 46202401 */ sub.d $f16,$f4,$f0
.L0f0670cc:
/* f0670cc: 8c500000 */ lw $s0,0x0($v0)
/* f0670d0: 00107900 */ sll $t7,$s0,0x4
/* f0670d4: 00af8821 */ addu $s1,$a1,$t7
/* f0670d8: d6220000 */ ldc1 $f2,0x0($s1)
/* f0670dc: d62a0008 */ ldc1 $f10,0x8($s1)
/* f0670e0: 46201201 */ sub.d $f8,$f2,$f0
/* f0670e4: 462c5101 */ sub.d $f4,$f10,$f12
/* f0670e8: 462e4182 */ mul.d $f6,$f8,$f14
/* f0670ec: 00000000 */ nop
/* f0670f0: 46302202 */ mul.d $f8,$f4,$f16
/* f0670f4: 4628303c */ c.lt.d $f6,$f8
/* f0670f8: 00000000 */ nop
/* f0670fc: 4500000a */ bc1f .L0f067128
/* f067100: 00000000 */ nop
/* f067104: 462012a0 */ cvt.s.d $f10,$f2
/* f067108: 25820008 */ addiu $v0,$t4,0x8
/* f06710c: 24060002 */ addiu $a2,$zero,0x2
/* f067110: 00001825 */ or $v1,$zero,$zero
/* f067114: e44a000c */ swc1 $f10,0xc($v0)
/* f067118: d6240008 */ ldc1 $f4,0x8($s1)
/* f06711c: 462021a0 */ cvt.s.d $f6,$f4
/* f067120: 10000005 */ b .L0f067138
/* f067124: e4460010 */ swc1 $f6,0x10($v0)
.L0f067128:
/* f067128: 24630001 */ addiu $v1,$v1,0x1
/* f06712c: 1464ffe7 */ bne $v1,$a0,.L0f0670cc
/* f067130: 24420004 */ addiu $v0,$v0,0x4
/* f067134: 00001825 */ or $v1,$zero,$zero
.L0f067138:
/* f067138: d5a80000 */ ldc1 $f8,0x0($t5)
/* f06713c: 0006c0c0 */ sll $t8,$a2,0x3
/* f067140: 01988821 */ addu $s1,$t4,$t8
/* f067144: 462042a0 */ cvt.s.d $f10,$f8
/* f067148: 24c60001 */ addiu $a2,$a2,0x1
/* f06714c: e62a000c */ swc1 $f10,0xc($s1)
/* f067150: d5a40008 */ ldc1 $f4,0x8($t5)
/* f067154: 462021a0 */ cvt.s.d $f6,$f4
/* f067158: e6260010 */ swc1 $f6,0x10($s1)
.L0f06715c:
/* f06715c: 11280030 */ beq $t1,$t0,.L0f067220
/* f067160: 0009c900 */ sll $t9,$t1,0x4
/* f067164: 000670c0 */ sll $t6,$a2,0x3
/* f067168: 018e8821 */ addu $s1,$t4,$t6
/* f06716c: 18800025 */ blez $a0,.L0f067204
/* f067170: 00b98021 */ addu $s0,$a1,$t9
/* f067174: 00087900 */ sll $t7,$t0,0x4
/* f067178: 00af6821 */ addu $t5,$a1,$t7
/* f06717c: d5a80008 */ ldc1 $f8,0x8($t5)
/* f067180: d5aa0000 */ ldc1 $f10,0x0($t5)
/* f067184: d60c0000 */ ldc1 $f12,0x0($s0)
/* f067188: d6000008 */ ldc1 $f0,0x8($s0)
/* f06718c: 27a201bc */ addiu $v0,$sp,0x1bc
/* f067190: 462c5401 */ sub.d $f16,$f10,$f12
/* f067194: 46204381 */ sub.d $f14,$f8,$f0
.L0f067198:
/* f067198: 8c480000 */ lw $t0,0x0($v0)
/* f06719c: 0008c100 */ sll $t8,$t0,0x4
/* f0671a0: 00b86821 */ addu $t5,$a1,$t8
/* f0671a4: d5a20000 */ ldc1 $f2,0x0($t5)
/* f0671a8: d5a80008 */ ldc1 $f8,0x8($t5)
/* f0671ac: 462c1101 */ sub.d $f4,$f2,$f12
/* f0671b0: 46204281 */ sub.d $f10,$f8,$f0
/* f0671b4: 462e2182 */ mul.d $f6,$f4,$f14
/* f0671b8: 00000000 */ nop
/* f0671bc: 46305102 */ mul.d $f4,$f10,$f16
/* f0671c0: 4624303c */ c.lt.d $f6,$f4
/* f0671c4: 00000000 */ nop
/* f0671c8: 4500000a */ bc1f .L0f0671f4
/* f0671cc: 00000000 */ nop
/* f0671d0: 46201220 */ cvt.s.d $f8,$f2
/* f0671d4: 24c60001 */ addiu $a2,$a2,0x1
/* f0671d8: 26310008 */ addiu $s1,$s1,0x8
/* f0671dc: 00001825 */ or $v1,$zero,$zero
/* f0671e0: e6280004 */ swc1 $f8,0x4($s1)
/* f0671e4: d5aa0008 */ ldc1 $f10,0x8($t5)
/* f0671e8: 462051a0 */ cvt.s.d $f6,$f10
/* f0671ec: 10000005 */ b .L0f067204
/* f0671f0: e6260008 */ swc1 $f6,0x8($s1)
.L0f0671f4:
/* f0671f4: 24630001 */ addiu $v1,$v1,0x1
/* f0671f8: 1464ffe7 */ bne $v1,$a0,.L0f067198
/* f0671fc: 24420004 */ addiu $v0,$v0,0x4
/* f067200: 00001825 */ or $v1,$zero,$zero
.L0f067204:
/* f067204: d6040000 */ ldc1 $f4,0x0($s0)
/* f067208: 24c60001 */ addiu $a2,$a2,0x1
/* f06720c: 46202220 */ cvt.s.d $f8,$f4
/* f067210: e628000c */ swc1 $f8,0xc($s1)
/* f067214: d60a0008 */ ldc1 $f10,0x8($s0)
/* f067218: 462051a0 */ cvt.s.d $f6,$f10
/* f06721c: e6260010 */ swc1 $f6,0x10($s1)
.L0f067220:
/* f067220: 11490029 */ beq $t2,$t1,.L0f0672c8
/* f067224: 00000000 */ nop
/* f067228: 18800027 */ blez $a0,.L0f0672c8
/* f06722c: 000ac900 */ sll $t9,$t2,0x4
/* f067230: 00097100 */ sll $t6,$t1,0x4
/* f067234: 00ae8021 */ addu $s0,$a1,$t6
/* f067238: 00b96821 */ addu $t5,$a1,$t9
/* f06723c: d5ac0008 */ ldc1 $f12,0x8($t5)
/* f067240: d5a00000 */ ldc1 $f0,0x0($t5)
/* f067244: d6040008 */ ldc1 $f4,0x8($s0)
/* f067248: d6080000 */ ldc1 $f8,0x0($s0)
/* f06724c: 27a201bc */ addiu $v0,$sp,0x1bc
/* f067250: 462c2381 */ sub.d $f14,$f4,$f12
/* f067254: 46204401 */ sub.d $f16,$f8,$f0
.L0f067258:
/* f067258: 8c480000 */ lw $t0,0x0($v0)
/* f06725c: 00087900 */ sll $t7,$t0,0x4
/* f067260: 00af6821 */ addu $t5,$a1,$t7
/* f067264: d5a20000 */ ldc1 $f2,0x0($t5)
/* f067268: d5a40008 */ ldc1 $f4,0x8($t5)
/* f06726c: 46201281 */ sub.d $f10,$f2,$f0
/* f067270: 462c2201 */ sub.d $f8,$f4,$f12
/* f067274: 462e5182 */ mul.d $f6,$f10,$f14
/* f067278: 00000000 */ nop
/* f06727c: 46304282 */ mul.d $f10,$f8,$f16
/* f067280: 462a303c */ c.lt.d $f6,$f10
/* f067284: 00000000 */ nop
/* f067288: 4500000b */ bc1f .L0f0672b8
/* f06728c: 00000000 */ nop
/* f067290: 46201120 */ cvt.s.d $f4,$f2
/* f067294: 0006c0c0 */ sll $t8,$a2,0x3
/* f067298: 01988821 */ addu $s1,$t4,$t8
/* f06729c: 24c60001 */ addiu $a2,$a2,0x1
/* f0672a0: e624000c */ swc1 $f4,0xc($s1)
/* f0672a4: d5a80008 */ ldc1 $f8,0x8($t5)
/* f0672a8: 00001825 */ or $v1,$zero,$zero
/* f0672ac: 462041a0 */ cvt.s.d $f6,$f8
/* f0672b0: 10000005 */ b .L0f0672c8
/* f0672b4: e6260010 */ swc1 $f6,0x10($s1)
.L0f0672b8:
/* f0672b8: 24630001 */ addiu $v1,$v1,0x1
/* f0672bc: 1464ffe6 */ bne $v1,$a0,.L0f067258
/* f0672c0: 24420004 */ addiu $v0,$v0,0x4
/* f0672c4: 00001825 */ or $v1,$zero,$zero
.L0f0672c8:
/* f0672c8: 1149000d */ beq $t2,$t1,.L0f067300
/* f0672cc: 00000000 */ nop
/* f0672d0: 116a000b */ beq $t3,$t2,.L0f067300
/* f0672d4: 000a7100 */ sll $t6,$t2,0x4
/* f0672d8: 00ae6821 */ addu $t5,$a1,$t6
/* f0672dc: d5aa0000 */ ldc1 $f10,0x0($t5)
/* f0672e0: 0006c8c0 */ sll $t9,$a2,0x3
/* f0672e4: 01998821 */ addu $s1,$t4,$t9
/* f0672e8: 46205120 */ cvt.s.d $f4,$f10
/* f0672ec: 24c60001 */ addiu $a2,$a2,0x1
/* f0672f0: e624000c */ swc1 $f4,0xc($s1)
/* f0672f4: d5a80008 */ ldc1 $f8,0x8($t5)
/* f0672f8: 462041a0 */ cvt.s.d $f6,$f8
/* f0672fc: e6260010 */ swc1 $f6,0x10($s1)
.L0f067300:
/* f067300: 116a0027 */ beq $t3,$t2,.L0f0673a0
/* f067304: 00000000 */ nop
/* f067308: 18800025 */ blez $a0,.L0f0673a0
/* f06730c: 000a7900 */ sll $t7,$t2,0x4
/* f067310: 00af6821 */ addu $t5,$a1,$t7
/* f067314: d5aa0008 */ ldc1 $f10,0x8($t5)
/* f067318: d5a40000 */ ldc1 $f4,0x0($t5)
/* f06731c: d4e20000 */ ldc1 $f2,0x0($a3)
/* f067320: d4e00008 */ ldc1 $f0,0x8($a3)
/* f067324: 27a201bc */ addiu $v0,$sp,0x1bc
/* f067328: 46222401 */ sub.d $f16,$f4,$f2
/* f06732c: 46205381 */ sub.d $f14,$f10,$f0
.L0f067330:
/* f067330: 8c470000 */ lw $a3,0x0($v0)
/* f067334: 0007c100 */ sll $t8,$a3,0x4
/* f067338: 00b84021 */ addu $t0,$a1,$t8
/* f06733c: d50c0000 */ ldc1 $f12,0x0($t0)
/* f067340: d50a0008 */ ldc1 $f10,0x8($t0)
/* f067344: 46226201 */ sub.d $f8,$f12,$f2
/* f067348: 46205101 */ sub.d $f4,$f10,$f0
/* f06734c: 462e4182 */ mul.d $f6,$f8,$f14
/* f067350: 00000000 */ nop
/* f067354: 46302202 */ mul.d $f8,$f4,$f16
/* f067358: 4628303c */ c.lt.d $f6,$f8
/* f06735c: 00000000 */ nop
/* f067360: 4500000b */ bc1f .L0f067390
/* f067364: 00000000 */ nop
/* f067368: 462062a0 */ cvt.s.d $f10,$f12
/* f06736c: 0006c8c0 */ sll $t9,$a2,0x3
/* f067370: 01998821 */ addu $s1,$t4,$t9
/* f067374: 24c60001 */ addiu $a2,$a2,0x1
/* f067378: e62a000c */ swc1 $f10,0xc($s1)
/* f06737c: d5040008 */ ldc1 $f4,0x8($t0)
/* f067380: 00001825 */ or $v1,$zero,$zero
/* f067384: 462021a0 */ cvt.s.d $f6,$f4
/* f067388: 10000005 */ b .L0f0673a0
/* f06738c: e6260010 */ swc1 $f6,0x10($s1)
.L0f067390:
/* f067390: 24630001 */ addiu $v1,$v1,0x1
/* f067394: 1464ffe6 */ bne $v1,$a0,.L0f067330
/* f067398: 24420004 */ addiu $v0,$v0,0x4
/* f06739c: 00001825 */ or $v1,$zero,$zero
.L0f0673a0:
/* f0673a0: 18c0001b */ blez $a2,.L0f067410
/* f0673a4: 01801025 */ or $v0,$t4,$zero
/* f0673a8: 24630001 */ addiu $v1,$v1,0x1
/* f0673ac: c452000c */ lwc1 $f18,0xc($v0)
/* f0673b0: 1066000e */ beq $v1,$a2,.L0f0673ec
/* f0673b4: 8fae0318 */ lw $t6,0x318($sp)
.L0f0673b8:
/* f0673b8: c5d00030 */ lwc1 $f16,0x30($t6)
/* f0673bc: c44e0010 */ lwc1 $f14,0x10($v0)
/* f0673c0: 24630001 */ addiu $v1,$v1,0x1
/* f0673c4: 46109400 */ add.s $f16,$f18,$f16
/* f0673c8: c4520014 */ lwc1 $f18,0x14($v0)
/* f0673cc: 24420008 */ addiu $v0,$v0,0x8
/* f0673d0: e4500004 */ swc1 $f16,0x4($v0)
/* f0673d4: 8faf0318 */ lw $t7,0x318($sp)
/* f0673d8: c5f00038 */ lwc1 $f16,0x38($t7)
/* f0673dc: 46107400 */ add.s $f16,$f14,$f16
/* f0673e0: e4500008 */ swc1 $f16,0x8($v0)
/* f0673e4: 1466fff4 */ bne $v1,$a2,.L0f0673b8
/* f0673e8: 8fae0318 */ lw $t6,0x318($sp)
.L0f0673ec:
/* f0673ec: c5d00030 */ lwc1 $f16,0x30($t6)
/* f0673f0: c44e0010 */ lwc1 $f14,0x10($v0)
/* f0673f4: 24420008 */ addiu $v0,$v0,0x8
/* f0673f8: 46109400 */ add.s $f16,$f18,$f16
/* f0673fc: e4500004 */ swc1 $f16,0x4($v0)
/* f067400: 8faf0318 */ lw $t7,0x318($sp)
/* f067404: c5f00038 */ lwc1 $f16,0x38($t7)
/* f067408: 46107400 */ add.s $f16,$f14,$f16
/* f06740c: e4500008 */ swc1 $f16,0x8($v0)
.L0f067410:
/* f067410: 8fb00008 */ lw $s0,0x8($sp)
/* f067414: 8fb1000c */ lw $s1,0xc($sp)
/* f067418: 27bd0300 */ addiu $sp,$sp,0x300
/* f06741c: 03e00008 */ jr $ra
/* f067420: 00c01025 */ or $v0,$a2,$zero
);
void func0f067424(struct modelrodata_bbox *bbox, Mtxf *mtx, struct geoblock *block)
{
block->header.numvertices = func0f066b5c(
bbox->xmin, bbox->xmax, bbox->ymin, bbox->ymax, bbox->zmin, bbox->zmax, mtx, block);
block->header.type = GEOTYPE_BLOCK;
block->ymin = mtx->m[3][1] + func0f06683c(bbox, mtx);
block->ymax = mtx->m[3][1] + func0f06686c(bbox, mtx);
}
void func0f0674bc(struct modelrodata_type19 *rodata19, struct modelrodata_bbox *bbox, Mtxf *mtx, struct geoblock *block)
{
s32 i;
for (i = 0; i < rodata19->numvertices; i++) {
block->vertices[i][0] = mtx->m[3][0] + mtx->m[0][0] * rodata19->vertices[i].x + mtx->m[1][0] * rodata19->vertices[i].y + mtx->m[2][0] * rodata19->vertices[i].z;
block->vertices[i][1] = mtx->m[3][2] + mtx->m[0][2] * rodata19->vertices[i].x + mtx->m[1][2] * rodata19->vertices[i].y + mtx->m[2][2] * rodata19->vertices[i].z;
}
block->header.numvertices = rodata19->numvertices;
block->header.type = GEOTYPE_BLOCK;
block->ymin = mtx->m[3][1] + func0f06683c(bbox, mtx);
block->ymax = mtx->m[3][1] + func0f06686c(bbox, mtx);
}
bool func0f0675c8(struct coord *pos, f32 arg1, struct modelrodata_bbox *bbox, Mtxf *mtx)
{
Mtxf sp58;
struct coord sp4c;
struct coord sp40;
struct coord sp34;
struct coord sp28;
sp34.f[0] = sp34.f[1] = sp34.f[2] = arg1;
sp4c.x = pos->x - mtx->m[3][0];
sp4c.y = pos->y - mtx->m[3][1];
sp4c.z = pos->z - mtx->m[3][2];
mtx000170e4(mtx->m, sp58.m);
mtx4RotateVec(&sp58, &sp4c, &sp40);
mtx4RotateVec(&sp58, &sp34, &sp28);
if (sp28.x < 0.0f) {
sp28.x = -sp28.x;
}
if (sp28.y < 0.0f) {
sp28.y = -sp28.y;
}
if (sp28.z < 0.0f) {
sp28.z = -sp28.z;
}
return sp40.x - sp28.x <= bbox->xmax && sp28.x + sp40.x >= bbox->xmin
&& sp40.y - sp28.y <= bbox->ymax && sp28.y + sp40.y >= bbox->ymin
&& sp40.z - sp28.z <= bbox->zmax && sp28.z + sp40.z >= bbox->zmin;
}
bool func0f0677ac(struct coord *coord, struct coord *arg1, struct coord *pos,
struct coord *normal, struct coord *up, struct coord *look,
f32 xmin, f32 xmax, f32 ymin, f32 ymax, f32 zmin, f32 zmax)
{
f32 xdiff = coord->x - pos->x;
f32 ydiff = coord->y - pos->y;
f32 zdiff = coord->z - pos->z;
f32 f0;
f0 = xdiff * look->f[0] + ydiff * look->f[1] + zdiff * look->f[2];
if (f0 > arg1->z + zmax || f0 < zmin - arg1->z) {
return false;
}
f0 = xdiff * up->f[0] + ydiff * up->f[1] + zdiff * up->f[2];
if (f0 > arg1->y + ymax || f0 < ymin - arg1->y) {
return false;
}
f0 = xdiff * normal->f[0] + ydiff * normal->f[1] + zdiff * normal->f[2];
if (f0 > arg1->x + xmax || f0 < xmin - arg1->x) {
return false;
}
return true;
}
bool func0f0678f8(struct coord *coord, struct coord *arg1, s32 padnum)
{
struct pad pad;
padUnpack(padnum, PADFIELD_POS | PADFIELD_LOOK | PADFIELD_UP | PADFIELD_NORMAL | PADFIELD_BBOX, &pad);
return func0f0677ac(coord, arg1, &pad.pos, &pad.normal, &pad.up, &pad.look,
pad.bbox.xmin, pad.bbox.xmax, pad.bbox.ymin, pad.bbox.ymax, pad.bbox.zmin, pad.bbox.zmax);
}
bool func0f06797c(struct coord *coord, f32 arg1, s32 padnum)
{
struct coord sp1c;
sp1c.x = arg1;
sp1c.y = arg1;
sp1c.z = arg1;
return func0f0678f8(coord, &sp1c, padnum);
}
bool func0f0679ac(struct model *model, f32 *max, f32 *min, f32 arg3[2], f32 arg4[2])
{
struct modelnode *node = model->filedata->rootnode;
bool first = true;
while (node) {
u32 type = node->type & 0xff;
if (type == MODELNODETYPE_BBOX) {
struct modelrodata_bbox *bbox = &node->rodata->bbox;
Mtxf *mtx = model0001a5cc(model, node, 0);
f32 dist1;
f32 dist2;
dist1 = func0f06680c(bbox, mtx) + mtx->m[3][0];
dist2 = func0f0667dc(bbox, mtx) + mtx->m[3][0];
if (arg3[0] - arg4[0] <= dist1 && arg3[0] + arg4[0] >= dist2) {
dist1 = func0f06686c(bbox, mtx) + mtx->m[3][1];
dist2 = func0f06683c(bbox, mtx) + mtx->m[3][1];
if (arg3[1] - arg4[1] <= dist1 && arg3[1] + arg4[1] >= dist2) {
dist1 = func0f0668cc(bbox, mtx) + mtx->m[3][2];
dist2 = func0f06689c(bbox, mtx) + mtx->m[3][2];
if (first || dist1 > *max) {
*max = dist1;
}
if (first || dist2 < *min) {
*min = dist2;
}
first = false;
}
}
} else {
// empty
}
if (node->child) {
node = node->child;
} else {
while (node) {
if (node->next) {
node = node->next;
break;
}
node = node->parent;
}
}
}
return !first;
}
void func0f067bc4(struct model *model, f32 *max, f32 *min, s32 axis)
{
struct modelnode *node = model->filedata->rootnode;
bool first = true;
while (node) {
u32 type = node->type & 0xff;
if (type == MODELNODETYPE_BBOX) {
struct modelrodata_bbox *bbox = &node->rodata->bbox;
Mtxf *mtx = model0001a5cc(model, node, 0);
f32 dist1;
f32 dist2;
if (axis == 0) {
dist1 = func0f06680c(bbox, mtx) + mtx->m[3][0];
dist2 = func0f0667dc(bbox, mtx) + mtx->m[3][0];
} else if (axis == 1) {
dist1 = func0f06686c(bbox, mtx) + mtx->m[3][1];
dist2 = func0f06683c(bbox, mtx) + mtx->m[3][1];
} else {
dist1 = func0f0668cc(bbox, mtx) + mtx->m[3][2];
dist2 = func0f06689c(bbox, mtx) + mtx->m[3][2];
}
if (first || dist1 > *max) {
*max = dist1;
}
if (first || dist2 < *min) {
*min = dist2;
}
first = false;
} else {
// empty
}
if (node->child) {
node = node->child;
} else {
while (node) {
if (node->next) {
node = node->next;
break;
}
node = node->parent;
}
}
}
}
void func0f067d88(struct model *model, f32 *arg1, f32 *arg2, f32 *arg3, f32 *arg4)
{
func0f067bc4(model, arg1, arg2, 0);
func0f067bc4(model, arg3, arg4, 1);
}
bool modelGetScreenCoords2(struct model *model, f32 *x2, f32 *x1, f32 *y2, f32 *y1)
{
bool first = true;
if (model) {
struct modelfiledata *modeldef = model->filedata;
if (modeldef) {
struct modelnode *node = modeldef->rootnode;
while (node) {
u32 type = node->type & 0xff;
if (type == MODELNODETYPE_BBOX) {
struct modelrodata_bbox *bbox = &node->rodata->bbox;
f32 sp74[2];
f32 sp6c[2];
f32 sp64[2];
f32 sp5c[2];
struct coord sp50;
Mtxf *mtx = model0001a5cc(model, node, 0);
if (mtx->m[3][2] < 0.0f) {
sp50.x = mtx->m[3][0];
sp50.y = mtx->m[3][1];
sp50.z = mtx->m[3][2];
sp64[0] = func0f0667dc(bbox, mtx) + sp50.f[0];
sp64[1] = func0f06680c(bbox, mtx) + sp50.f[0];
sp5c[0] = func0f06683c(bbox, mtx) + sp50.f[1];
sp5c[1] = func0f06686c(bbox, mtx) + sp50.f[1];
func0f06803c(&sp50, sp64, sp5c, sp74, sp6c);
if (first || sp74[0] < *x1) {
*x1 = sp74[0];
}
if (first || sp6c[0] > *x2) {
*x2 = sp6c[0];
}
if (first || sp74[1] < *y1) {
*y1 = sp74[1];
}
if (first || sp6c[1] > *y2) {
*y2 = sp6c[1];
}
first = false;
}
} else {
// empty
}
if (node->child) {
node = node->child;
} else {
while (node) {
if (node->next) {
node = node->next;
break;
}
node = node->parent;
}
}
}
}
}
return first ? false : true;
}
bool modelGetScreenCoords(struct model *model, f32 *x2, f32 *x1, f32 *y2, f32 *y1)
{
return modelGetScreenCoords2(model, x2, x1, y2, y1);
}
void func0f06803c(struct coord *arg0, f32 *arg1, f32 *arg2, f32 *arg3, f32 *arg4)
{
struct coord sp4c;
f32 sp44[2];
f32 aspect = viGetAspect();
f32 fovy = viGetFovY();
if (g_Vars.currentplayer->devicesactive & ~g_Vars.currentplayer->devicesinhibit & DEVICE_EYESPY) {
if (g_Vars.currentplayer->eyespy && g_Vars.currentplayer->eyespy->active) {
fovy = 120.0f;
}
}
sp4c.x = arg1[0];
sp4c.y = arg0->y;
sp4c.z = arg0->z;
cam0f0b4eb8(&sp4c, sp44, fovy, aspect);
arg3[0] = sp44[0];
sp4c.x = arg1[1];
sp4c.y = arg0->y;
sp4c.z = arg0->z;
cam0f0b4eb8(&sp4c, sp44, fovy, aspect);
arg4[0] = sp44[0];
sp4c.x = arg0->x;
sp4c.y = arg2[1];
sp4c.z = arg0->z;
cam0f0b4eb8(&sp4c, sp44, fovy, aspect);
arg3[1] = sp44[1];
sp4c.x = arg0->x;
sp4c.y = arg2[0];
sp4c.z = arg0->z;
cam0f0b4eb8(&sp4c, sp44, fovy, aspect);
arg4[1] = sp44[1];
}
struct defaultobj *objFindByPadNum(s32 padnum)
{
struct prop *prop = g_Vars.activeprops;
while (prop) {
if (prop->type == PROPTYPE_OBJ) {
struct defaultobj *obj = prop->obj;
if (obj->pad == (s16)padnum) {
return obj;
}
}
prop = prop->next;
}
return NULL;
}
struct defaultobj *objFindByPos(struct coord *pos, s16 *rooms)
{
struct prop *prop = g_Vars.activeprops;
u8 *sp38;
u8 *sp34;
while (prop) {
if (prop->type == PROPTYPE_OBJ
&& arrayIntersects(prop->rooms, rooms)
&& propUpdateGeometry(prop, &sp38, &sp34)
&& func000266a4(pos->x, pos->z, (struct geo *)sp38)) {
return prop->obj;
}
prop = prop->next;
}
return NULL;
}
void projectileFree(struct projectile *projectile)
{
if (projectile) {
projectile->flags |= PROJECTILEFLAG_FREE;
}
}
void projectilesUnrefOwner(struct prop *owner)
{
s32 i;
for (i = 0; i < g_MaxProjectiles; i++) {
if ((g_Projectiles[i].flags & PROJECTILEFLAG_FREE) == 0
&& g_Projectiles[i].ownerprop == owner) {
g_Projectiles[i].ownerprop = NULL;
}
}
}
void projectileReset(struct projectile *projectile)
{
projectile->flags = 0;
projectile->speed.x = 0;
projectile->speed.y = 0;
projectile->speed.z = 0;
projectile->unk010 = 0;
projectile->unk014 = 0;
projectile->unk018 = 0;
projectile->unk01c = 0;
mtx4LoadIdentity(&projectile->unk020);
projectile->unk060 = 1;
projectile->ownerprop = NULL;
projectile->unk08c = 0.05f;
projectile->unk090 = 0;
projectile->unk094 = -1;
projectile->lastwooshframe = -1;
projectile->unk0a0 = 0;
projectile->unk0a4 = -1;
projectile->droptype = DROPTYPE_DEFAULT;
projectile->unk0b4 = 0;
projectile->losttimer240 = 0;
projectile->obj = NULL;
projectile->unk0d8 = 0;
projectile->smoketimer240 = 0;
projectile->targetprop = NULL;
projectile->unk108 = 0;
projectile->unk0b2 = 0xffff;
projectile->unk0b8 = 1;
projectile->unk0bc = 1;
projectile->unk0c0 = 1;
projectile->unk0e4 = 1;
projectile->unk098 = 0;
projectile->unk0dc = 0;
projectile->unk0e0 = 0;
projectile->unk0ec = 0;
projectile->unk0f0 = 0;
}
struct projectile *projectileAllocate(void)
{
s32 bestindex = -1;
s32 i;
// Happy path - find one that is already free
for (i = 0; i < g_MaxProjectiles; i++) {
if (g_Projectiles[i].flags & PROJECTILEFLAG_FREE) {
projectileReset(&g_Projectiles[i]);
return &g_Projectiles[i];
}
}
// Find one with the lowest unk0d8 (some kind of age/timer?)
// and some other conditions
for (i = 0; i < g_MaxProjectiles; i++) {
if (g_Projectiles[i].obj
&& g_Projectiles[i].unk0d8 > 0
&& (bestindex < 0 || g_Projectiles[i].unk0d8 < g_Projectiles[bestindex].unk0d8)) {
bestindex = i;
}
}
// If there were none, pick one at random
if (bestindex == -1 && g_MaxProjectiles) {
bestindex = random() % g_MaxProjectiles;
}
if (bestindex >= 0) {
// Reset and return it
if (g_Projectiles[bestindex].obj) {
if (g_Projectiles[bestindex].obj->prop) {
func0f06ac90(g_Projectiles[bestindex].obj->prop);
}
g_Projectiles[bestindex].obj->hidden |= OBJHFLAG_REAPABLE;
}
projectileReset(&g_Projectiles[bestindex]);
return &g_Projectiles[bestindex];
} else {
return NULL;
}
}
void func0f0685e4(struct prop *prop)
{
struct defaultobj *obj = prop->obj;
if (obj->hidden & OBJHFLAG_EMBEDDED) {
if (obj->embedment->projectile) {
projectileReset(obj->embedment->projectile);
} else {
obj->embedment->projectile = projectileAllocate();
}
} else if ((obj->hidden & OBJHFLAG_AIRBORNE) == 0) {
if (obj->projectile) {
projectileReset(obj->projectile);
} else {
obj->projectile = projectileAllocate();
}
if (obj->projectile) {
obj->hidden |= OBJHFLAG_AIRBORNE;
}
}
}
void objSetProjectileFlag4(struct prop *prop)
{
struct defaultobj *obj = prop->obj;
struct projectile *projectile = NULL;
if (obj->hidden & OBJHFLAG_EMBEDDED) {
projectile = obj->embedment->projectile;
} else if (obj->hidden & OBJHFLAG_AIRBORNE) {
projectile = obj->projectile;
}
if (projectile) {
projectile->flags |= PROJECTILEFLAG_00000004;
}
}
void embedmentFree(struct embedment *embedment)
{
embedment->flags |= EMBEDMENTFLAG_FREE;
}
struct embedment *embedmentAllocate(void)
{
s32 i;
for (i = 0; i < g_MaxEmbedments; i++) {
if (g_Embedments[i].flags & EMBEDMENTFLAG_FREE) {
g_Embedments[i].flags = 0;
g_Embedments[i].projectile = NULL;
return &g_Embedments[i];
}
}
return NULL;
}
/**
* This doesn't exactly return the number of shots taken but it's the best way
* to describe the behaviour of the function without writing a novel into the
* function's name.
*
* The number returned is 0 when at full health and only ever increments as the
* object takes damage. While healthy, the number scales from 0 to 4 based on
* how close it is to being destroyed, where 4 is destroyed. After being
* destroyed, the number increments at 1 per shot up to a max of 12.
*/
s32 objGetShotsTaken(struct defaultobj *obj)
{
if ((obj->hidden2 & OBJH2FLAG_DESTROYED) == 0) {
return obj->damage * 3.0f / obj->maxdamage;
}
return obj->damage + 4;
}
/**
* Return 0 if not destroyed
* Return 1 if at destroyed level 1
* Return 2 if at destroyed level 2
* Return 3 if at destroyed level 3
*
* Each destroyed level is a new phase of visual brokenness. Typically the
* object is destroyed and it looks broken (level 1), then after a couple of
* shots it enters level 2, and a few shots later level 3.
*
* While healthy, damage goes from 0 to maxdamage (eg. 1000) but this function
* returns 0 due to the if statement.
*
* When destroyed, damage is reset to 0 then incremented at one unit per shot,
* so four shots causes it to enter a new destroyed level.
*/
s32 objGetDestroyedLevel(struct defaultobj *obj)
{
if ((obj->hidden2 & OBJH2FLAG_DESTROYED) == 0) {
return 0;
}
return (obj->damage >> 2) + 1;
}
struct modelnode *func0f0687e4(struct model *model)
{
struct modelfiledata *filedata = model->filedata;
struct modelnode *node = filedata->rootnode;
while (node) {
u32 type = node->type & 0xff;
switch (type) {
case MODELNODETYPE_DL:
return node;
case MODELNODETYPE_DISTANCE:
model0001c784(model, node);
break;
case MODELNODETYPE_TOGGLE:
model0001c7d0(model, node);
break;
case MODELNODETYPE_HEADSPOT:
modelAttachHead(model, node);
break;
}
if (node->child) {
node = node->child;
} else {
while (node) {
if (node->next) {
node = node->next;
break;
}
node = node->parent;
}
}
}
return NULL;
}
struct modelnode *modelFileDataFindBboxNode(struct modelfiledata *filedata)
{
struct modelnode *node = filedata->rootnode;
while (node) {
if ((node->type & 0xff) == MODELNODETYPE_BBOX) {
return node;
}
if (node->child) {
node = node->child;
} else {
while (node) {
if (node->next) {
node = node->next;
break;
}
node = node->parent;
}
}
}
return NULL;
}
struct modelrodata_bbox *modelFileDataFindBboxRodata(struct modelfiledata *filedata)
{
struct modelnode *node = modelFileDataFindBboxNode(filedata);
if (node) {
return &node->rodata->bbox;
}
return NULL;
}
struct modelnode *modelFindBboxNode(struct model *model)
{
struct modelnode *node = model->filedata->rootnode;
while (node) {
u32 type = node->type & 0xff;
switch (type) {
case MODELNODETYPE_BBOX:
return node;
case MODELNODETYPE_DISTANCE:
model0001c784(model, node);
break;
case MODELNODETYPE_TOGGLE:
model0001c7d0(model, node);
break;
case MODELNODETYPE_HEADSPOT:
modelAttachHead(model, node);
break;
}
if (node->child) {
node = node->child;
} else {
while (node) {
if (node->next) {
node = node->next;
break;
}
node = node->parent;
}
}
}
return NULL;
}
struct modelrodata_bbox *modelFindBboxRodata(struct model *model)
{
struct modelnode *node = modelFindBboxNode(model);
if (node) {
return &node->rodata->bbox;
}
return NULL;
}
struct modelnode *objFindBboxNode(struct defaultobj *obj)
{
return modelFindBboxNode(obj->model);
}
struct modelrodata_bbox *objFindBboxRodata(struct defaultobj *obj)
{
return modelFindBboxRodata(obj->model);
}
s32 func0f068b14(s16 *rooms, s32 arg1)
{
s32 total = 0;
s32 i;
for (i = 0; rooms[i] != -1; i++) {
if (arg1 == 0) {
total += func0f000b24(rooms[i]);
} else if (arg1 == 1) {
total += func0f000c54(rooms[i]);
}
}
if (i) {
s32 average = total / i;
if (average > 255) {
average = 255;
}
return average;
}
return 0;
}
#if VERSION >= VERSION_JPN_FINAL
GLOBAL_ASM(
glabel func0f068c04
/* f069d24: 27bdfed0 */ addiu $sp,$sp,-304
/* f069d28: afbf0054 */ sw $ra,0x54($sp)
/* f069d2c: afbe0050 */ sw $s8,0x50($sp)
/* f069d30: afb7004c */ sw $s7,0x4c($sp)
/* f069d34: afb60048 */ sw $s6,0x48($sp)
/* f069d38: afb50044 */ sw $s5,0x44($sp)
/* f069d3c: afb40040 */ sw $s4,0x40($sp)
/* f069d40: afb3003c */ sw $s3,0x3c($sp)
/* f069d44: afb20038 */ sw $s2,0x38($sp)
/* f069d48: afb10034 */ sw $s1,0x34($sp)
/* f069d4c: afb00030 */ sw $s0,0x30($sp)
/* f069d50: f7b80028 */ sdc1 $f24,0x28($sp)
/* f069d54: f7b60020 */ sdc1 $f22,0x20($sp)
/* f069d58: f7b40018 */ sdc1 $f20,0x18($sp)
/* f069d5c: afa40130 */ sw $a0,0x130($sp)
/* f069d60: afa50134 */ sw $a1,0x134($sp)
/* f069d64: afa60138 */ sw $a2,0x138($sp)
/* f069d68: 8c8f0004 */ lw $t7,0x4($a0)
/* f069d6c: 00807025 */ move $t6,$a0
/* f069d70: 00009825 */ move $s3,$zero
/* f069d74: 0000a025 */ move $s4,$zero
/* f069d78: 00009025 */ move $s2,$zero
/* f069d7c: 0000a825 */ move $s5,$zero
/* f069d80: afaf012c */ sw $t7,0x12c($sp)
/* f069d84: 11e00095 */ beqz $t7,.JF0f069fdc
/* f069d88: 01e03825 */ move $a3,$t7
/* f069d8c: 8df80014 */ lw $t8,0x14($t7)
/* f069d90: 13000092 */ beqz $t8,.JF0f069fdc
/* f069d94: 00000000 */ nop
/* f069d98: 3c17800a */ lui $s7,0x800a
/* f069d9c: 4480c000 */ mtc1 $zero,$f24
/* f069da0: 26f75308 */ addiu $s7,$s7,0x5308
/* f069da4: 241e008c */ li $s8,0x8c
/* f069da8: 2416ffff */ li $s6,-1
/* f069dac: 8fb9012c */ lw $t9,0x12c($sp)
.JF0f069db0:
/* f069db0: afa70128 */ sw $a3,0x128($sp)
/* f069db4: 84e900c4 */ lh $t1,0xc4($a3)
/* f069db8: 872800c4 */ lh $t0,0xc4($t9)
/* f069dbc: 5509007e */ bnel $t0,$t1,.JF0f069fb8
/* f069dc0: 8fa70128 */ lw $a3,0x128($sp)
/* f069dc4: 3c02800a */ lui $v0,0x800a
/* f069dc8: 8c42a8b4 */ lw $v0,-0x574c($v0)
/* f069dcc: afa70128 */ sw $a3,0x128($sp)
/* f069dd0: 8c4a00bc */ lw $t2,0xbc($v0)
/* f069dd4: 51400078 */ beqzl $t2,.JF0f069fb8
/* f069dd8: 8fa70128 */ lw $a3,0x128($sp)
/* f069ddc: 8ce30014 */ lw $v1,0x14($a3)
/* f069de0: 84e40006 */ lh $a0,0x6($a3)
/* f069de4: 24501bb0 */ addiu $s0,$v0,0x1bb0
/* f069de8: afa70128 */ sw $a3,0x128($sp)
/* f069dec: 2405005e */ li $a1,0x5e
/* f069df0: 27a600b0 */ addiu $a2,$sp,0xb0
/* f069df4: 0fc45798 */ jal padUnpack
/* f069df8: afa30104 */ sw $v1,0x104($sp)
/* f069dfc: 8fab012c */ lw $t3,0x12c($sp)
/* f069e00: 3c010400 */ lui $at,0x400
/* f069e04: 8fa30104 */ lw $v1,0x104($sp)
/* f069e08: 8d6c0010 */ lw $t4,0x10($t3)
/* f069e0c: 8fae012c */ lw $t6,0x12c($sp)
/* f069e10: 01816824 */ and $t5,$t4,$at
/* f069e14: 51a0000f */ beqzl $t5,.JF0f069e54
/* f069e18: 95cf0070 */ lhu $t7,0x70($t6)
/* f069e1c: 0fc002ed */ jal func0f000b24
/* f069e20: 8fa400f8 */ lw $a0,0xf8($sp)
/* f069e24: 02629821 */ addu $s3,$s3,$v0
/* f069e28: 0fc00339 */ jal func0f000c54
/* f069e2c: 8fa400f8 */ lw $a0,0xf8($sp)
/* f069e30: 0282a021 */ addu $s4,$s4,$v0
/* f069e34: 02741821 */ addu $v1,$s3,$s4
/* f069e38: 28610100 */ slti $at,$v1,0x100
/* f069e3c: 26b50001 */ addiu $s5,$s5,0x1
/* f069e40: 1420005c */ bnez $at,.JF0f069fb4
/* f069e44: 00609025 */ move $s2,$v1
/* f069e48: 1000005a */ b .JF0f069fb4
/* f069e4c: 241200ff */ li $s2,0xff
/* f069e50: 95cf0070 */ lhu $t7,0x70($t6)
.JF0f069e54:
/* f069e54: 00001025 */ move $v0,$zero
/* f069e58: 31f80008 */ andi $t8,$t7,0x8
/* f069e5c: 5300000b */ beqzl $t8,.JF0f069e8c
/* f069e60: c6080000 */ lwc1 $f8,0x0($s0)
/* f069e64: c7b600d4 */ lwc1 $f22,0xd4($sp)
/* f069e68: c7a800d8 */ lwc1 $f8,0xd8($sp)
/* f069e6c: c7ac00dc */ lwc1 $f12,0xdc($sp)
/* f069e70: 4600b587 */ neg.s $f22,$f22
/* f069e74: 46004287 */ neg.s $f10,$f8
/* f069e78: 46006307 */ neg.s $f12,$f12
/* f069e7c: e7b600d4 */ swc1 $f22,0xd4($sp)
/* f069e80: e7aa00d8 */ swc1 $f10,0xd8($sp)
/* f069e84: e7ac00dc */ swc1 $f12,0xdc($sp)
/* f069e88: c6080000 */ lwc1 $f8,0x0($s0)
.JF0f069e8c:
/* f069e8c: c7aa00b0 */ lwc1 $f10,0xb0($sp)
/* f069e90: c6040004 */ lwc1 $f4,0x4($s0)
/* f069e94: c7a600b4 */ lwc1 $f6,0xb4($sp)
/* f069e98: 460a4001 */ sub.s $f0,$f8,$f10
/* f069e9c: c7aa00b8 */ lwc1 $f10,0xb8($sp)
/* f069ea0: c6080008 */ lwc1 $f8,0x8($s0)
/* f069ea4: 46062081 */ sub.s $f2,$f4,$f6
/* f069ea8: c7a400d4 */ lwc1 $f4,0xd4($sp)
/* f069eac: 84790028 */ lh $t9,0x28($v1)
/* f069eb0: 460a4301 */ sub.s $f12,$f8,$f10
/* f069eb4: 46002182 */ mul.s $f6,$f4,$f0
/* f069eb8: c7a800d8 */ lwc1 $f8,0xd8($sp)
/* f069ebc: 46081282 */ mul.s $f10,$f2,$f8
/* f069ec0: c7a800dc */ lwc1 $f8,0xdc($sp)
/* f069ec4: 460a3100 */ add.s $f4,$f6,$f10
/* f069ec8: 46086182 */ mul.s $f6,$f12,$f8
/* f069ecc: 12d90039 */ beq $s6,$t9,.JF0f069fb4
/* f069ed0: 46062580 */ add.s $f22,$f4,$f6
/* f069ed4: 00608825 */ move $s1,$v1
/* f069ed8: 84640028 */ lh $a0,0x28($v1)
.JF0f069edc:
/* f069edc: 009e0019 */ multu $a0,$s8
/* f069ee0: 8ee80000 */ lw $t0,0x0($s7)
/* f069ee4: c7aa00b0 */ lwc1 $f10,0xb0($sp)
/* f069ee8: c7a800b4 */ lwc1 $f8,0xb4($sp)
/* f069eec: c7a600d4 */ lwc1 $f6,0xd4($sp)
/* f069ef0: c7a400b8 */ lwc1 $f4,0xb8($sp)
/* f069ef4: 4618b03c */ c.lt.s $f22,$f24
/* f069ef8: 00004812 */ mflo $t1
/* f069efc: 01091021 */ addu $v0,$t0,$t1
/* f069f00: c4400030 */ lwc1 $f0,0x30($v0)
/* f069f04: c4420034 */ lwc1 $f2,0x34($v0)
/* f069f08: c44c0038 */ lwc1 $f12,0x38($v0)
/* f069f0c: 460a0381 */ sub.s $f14,$f0,$f10
/* f069f10: 46081401 */ sub.s $f16,$f2,$f8
/* f069f14: 460e3282 */ mul.s $f10,$f6,$f14
/* f069f18: c7a800d8 */ lwc1 $f8,0xd8($sp)
/* f069f1c: 46046481 */ sub.s $f18,$f12,$f4
/* f069f20: 46088102 */ mul.s $f4,$f16,$f8
/* f069f24: c7a800dc */ lwc1 $f8,0xdc($sp)
/* f069f28: 46045180 */ add.s $f6,$f10,$f4
/* f069f2c: 46089282 */ mul.s $f10,$f18,$f8
/* f069f30: 45000005 */ bc1f .JF0f069f48
/* f069f34: 460a3500 */ add.s $f20,$f6,$f10
/* f069f38: 4618b03c */ c.lt.s $f22,$f24
/* f069f3c: 00000000 */ nop
/* f069f40: 45010009 */ bc1t .JF0f069f68
/* f069f44: 00000000 */ nop
.JF0f069f48:
/* f069f48: 4616c03c */ c.lt.s $f24,$f22
/* f069f4c: 00000000 */ nop
/* f069f50: 45020015 */ bc1fl .JF0f069fa8
/* f069f54: 8624002a */ lh $a0,0x2a($s1)
/* f069f58: 4614c03c */ c.lt.s $f24,$f20
/* f069f5c: 00000000 */ nop
/* f069f60: 45020011 */ bc1fl .JF0f069fa8
/* f069f64: 8624002a */ lh $a0,0x2a($s1)
.JF0f069f68:
/* f069f68: 0fc00339 */ jal func0f000c54
/* f069f6c: 00000000 */ nop
/* f069f70: 00408025 */ move $s0,$v0
/* f069f74: 0fc002ed */ jal func0f000b24
/* f069f78: 86240028 */ lh $a0,0x28($s1)
/* f069f7c: 00501821 */ addu $v1,$v0,$s0
/* f069f80: 28610100 */ slti $at,$v1,0x100
/* f069f84: 00602825 */ move $a1,$v1
/* f069f88: 14200002 */ bnez $at,.JF0f069f94
/* f069f8c: 00402025 */ move $a0,$v0
/* f069f90: 240500ff */ li $a1,0xff
.JF0f069f94:
/* f069f94: 26b50001 */ addiu $s5,$s5,0x1
/* f069f98: 02649821 */ addu $s3,$s3,$a0
/* f069f9c: 0290a021 */ addu $s4,$s4,$s0
/* f069fa0: 02459021 */ addu $s2,$s2,$a1
/* f069fa4: 8624002a */ lh $a0,0x2a($s1)
.JF0f069fa8:
/* f069fa8: 26310002 */ addiu $s1,$s1,0x2
/* f069fac: 16c4ffcb */ bne $s6,$a0,.JF0f069edc
/* f069fb0: 00000000 */ nop
.JF0f069fb4:
/* f069fb4: 8fa70128 */ lw $a3,0x128($sp)
.JF0f069fb8:
/* f069fb8: 8faa012c */ lw $t2,0x12c($sp)
/* f069fbc: 8ce700bc */ lw $a3,0xbc($a3)
/* f069fc0: 10ea0006 */ beq $a3,$t2,.JF0f069fdc
/* f069fc4: 00000000 */ nop
/* f069fc8: 10e00004 */ beqz $a3,.JF0f069fdc
/* f069fcc: 00000000 */ nop
/* f069fd0: 8ceb0014 */ lw $t3,0x14($a3)
/* f069fd4: 5560ff76 */ bnezl $t3,.JF0f069db0
/* f069fd8: 8fb9012c */ lw $t9,0x12c($sp)
.JF0f069fdc:
/* f069fdc: 16a0000c */ bnez $s5,.JF0f06a010
/* f069fe0: 00000000 */ nop
/* f069fe4: 8fb00130 */ lw $s0,0x130($sp)
/* f069fe8: 00002825 */ move $a1,$zero
/* f069fec: 26100028 */ addiu $s0,$s0,0x28
/* f069ff0: 0fc1a70d */ jal func0f068b14
/* f069ff4: 02002025 */ move $a0,$s0
/* f069ff8: 00408825 */ move $s1,$v0
/* f069ffc: 02002025 */ move $a0,$s0
/* f06a000: 0fc1a70d */ jal func0f068b14
/* f06a004: 24050001 */ li $a1,0x1
/* f06a008: 10000017 */ b .JF0f06a068
/* f06a00c: 00401825 */ move $v1,$v0
.JF0f06a010:
/* f06a010: 0275001a */ div $zero,$s3,$s5
/* f06a014: 00008812 */ mflo $s1
/* f06a018: 16a00002 */ bnez $s5,.JF0f06a024
/* f06a01c: 00000000 */ nop
/* f06a020: 0007000d */ break 0x7
.JF0f06a024:
/* f06a024: 2401ffff */ li $at,-1
/* f06a028: 16a10004 */ bne $s5,$at,.JF0f06a03c
/* f06a02c: 3c018000 */ lui $at,0x8000
/* f06a030: 16610002 */ bne $s3,$at,.JF0f06a03c
/* f06a034: 00000000 */ nop
/* f06a038: 0006000d */ break 0x6
.JF0f06a03c:
/* f06a03c: 0295001a */ div $zero,$s4,$s5
/* f06a040: 00001812 */ mflo $v1
/* f06a044: 16a00002 */ bnez $s5,.JF0f06a050
/* f06a048: 00000000 */ nop
/* f06a04c: 0007000d */ break 0x7
.JF0f06a050:
/* f06a050: 2401ffff */ li $at,-1
/* f06a054: 16a10004 */ bne $s5,$at,.JF0f06a068
/* f06a058: 3c018000 */ lui $at,0x8000
/* f06a05c: 16810002 */ bne $s4,$at,.JF0f06a068
/* f06a060: 00000000 */ nop
/* f06a064: 0006000d */ break 0x6
.JF0f06a068:
/* f06a068: 8fac0134 */ lw $t4,0x134($sp)
/* f06a06c: 02231021 */ addu $v0,$s1,$v1
/* f06a070: 284100ff */ slti $at,$v0,0xff
/* f06a074: 51800003 */ beqzl $t4,.JF0f06a084
/* f06a078: 8fad0138 */ lw $t5,0x138($sp)
/* f06a07c: ad910000 */ sw $s1,0x0($t4)
/* f06a080: 8fad0138 */ lw $t5,0x138($sp)
.JF0f06a084:
/* f06a084: 11a00002 */ beqz $t5,.JF0f06a090
/* f06a088: 00000000 */ nop
/* f06a08c: ada30000 */ sw $v1,0x0($t5)
.JF0f06a090:
/* f06a090: 10200003 */ beqz $at,.JF0f06a0a0
/* f06a094: d7b40018 */ ldc1 $f20,0x18($sp)
/* f06a098: 10000002 */ b .JF0f06a0a4
/* f06a09c: 00401825 */ move $v1,$v0
.JF0f06a0a0:
/* f06a0a0: 240300ff */ li $v1,0xff
.JF0f06a0a4:
/* f06a0a4: 8fbf0054 */ lw $ra,0x54($sp)
/* f06a0a8: d7b60020 */ ldc1 $f22,0x20($sp)
/* f06a0ac: d7b80028 */ ldc1 $f24,0x28($sp)
/* f06a0b0: 8fb00030 */ lw $s0,0x30($sp)
/* f06a0b4: 8fb10034 */ lw $s1,0x34($sp)
/* f06a0b8: 8fb20038 */ lw $s2,0x38($sp)
/* f06a0bc: 8fb3003c */ lw $s3,0x3c($sp)
/* f06a0c0: 8fb40040 */ lw $s4,0x40($sp)
/* f06a0c4: 8fb50044 */ lw $s5,0x44($sp)
/* f06a0c8: 8fb60048 */ lw $s6,0x48($sp)
/* f06a0cc: 8fb7004c */ lw $s7,0x4c($sp)
/* f06a0d0: 8fbe0050 */ lw $s8,0x50($sp)
/* f06a0d4: 27bd0130 */ addiu $sp,$sp,0x130
/* f06a0d8: 03e00008 */ jr $ra
/* f06a0dc: 00601025 */ move $v0,$v1
);
#elif VERSION >= VERSION_PAL_FINAL
GLOBAL_ASM(
glabel func0f068c04
/* f068e94: 27bdfed0 */ addiu $sp,$sp,-304
/* f068e98: afbf0054 */ sw $ra,0x54($sp)
/* f068e9c: afbe0050 */ sw $s8,0x50($sp)
/* f068ea0: afb7004c */ sw $s7,0x4c($sp)
/* f068ea4: afb60048 */ sw $s6,0x48($sp)
/* f068ea8: afb50044 */ sw $s5,0x44($sp)
/* f068eac: afb40040 */ sw $s4,0x40($sp)
/* f068eb0: afb3003c */ sw $s3,0x3c($sp)
/* f068eb4: afb20038 */ sw $s2,0x38($sp)
/* f068eb8: afb10034 */ sw $s1,0x34($sp)
/* f068ebc: afb00030 */ sw $s0,0x30($sp)
/* f068ec0: f7b80028 */ sdc1 $f24,0x28($sp)
/* f068ec4: f7b60020 */ sdc1 $f22,0x20($sp)
/* f068ec8: f7b40018 */ sdc1 $f20,0x18($sp)
/* f068ecc: afa40130 */ sw $a0,0x130($sp)
/* f068ed0: afa50134 */ sw $a1,0x134($sp)
/* f068ed4: afa60138 */ sw $a2,0x138($sp)
/* f068ed8: 8c8f0004 */ lw $t7,0x4($a0)
/* f068edc: 00807025 */ move $t6,$a0
/* f068ee0: 00009825 */ move $s3,$zero
/* f068ee4: 0000a025 */ move $s4,$zero
/* f068ee8: 00009025 */ move $s2,$zero
/* f068eec: 0000a825 */ move $s5,$zero
/* f068ef0: afaf012c */ sw $t7,0x12c($sp)
/* f068ef4: 11e00095 */ beqz $t7,.PF0f06914c
/* f068ef8: 01e03825 */ move $a3,$t7
/* f068efc: 8df80014 */ lw $t8,0x14($t7)
/* f068f00: 13000092 */ beqz $t8,.PF0f06914c
/* f068f04: 00000000 */ nop
/* f068f08: 3c17800a */ lui $s7,0x800a
/* f068f0c: 4480c000 */ mtc1 $zero,$f24
/* f068f10: 26f74ec8 */ addiu $s7,$s7,0x4ec8
/* f068f14: 241e008c */ li $s8,0x8c
/* f068f18: 2416ffff */ li $s6,-1
/* f068f1c: 8fb9012c */ lw $t9,0x12c($sp)
.PF0f068f20:
/* f068f20: afa70128 */ sw $a3,0x128($sp)
/* f068f24: 84e900c4 */ lh $t1,0xc4($a3)
/* f068f28: 872800c4 */ lh $t0,0xc4($t9)
/* f068f2c: 5509007e */ bnel $t0,$t1,.PF0f069128
/* f068f30: 8fa70128 */ lw $a3,0x128($sp)
/* f068f34: 3c02800a */ lui $v0,0x800a
/* f068f38: 8c42a794 */ lw $v0,-0x586c($v0)
/* f068f3c: afa70128 */ sw $a3,0x128($sp)
/* f068f40: 8c4a00bc */ lw $t2,0xbc($v0)
/* f068f44: 51400078 */ beqzl $t2,.PF0f069128
/* f068f48: 8fa70128 */ lw $a3,0x128($sp)
/* f068f4c: 8ce30014 */ lw $v1,0x14($a3)
/* f068f50: 84e40006 */ lh $a0,0x6($a3)
/* f068f54: 24501bb0 */ addiu $s0,$v0,0x1bb0
/* f068f58: afa70128 */ sw $a3,0x128($sp)
/* f068f5c: 2405005e */ li $a1,0x5e
/* f068f60: 27a600b0 */ addiu $a2,$sp,0xb0
/* f068f64: 0fc45964 */ jal padUnpack
/* f068f68: afa30104 */ sw $v1,0x104($sp)
/* f068f6c: 8fab012c */ lw $t3,0x12c($sp)
/* f068f70: 3c010400 */ lui $at,0x400
/* f068f74: 8fa30104 */ lw $v1,0x104($sp)
/* f068f78: 8d6c0010 */ lw $t4,0x10($t3)
/* f068f7c: 8fae012c */ lw $t6,0x12c($sp)
/* f068f80: 01816824 */ and $t5,$t4,$at
/* f068f84: 51a0000f */ beqzl $t5,.PF0f068fc4
/* f068f88: 95cf0070 */ lhu $t7,0x70($t6)
/* f068f8c: 0fc002c9 */ jal func0f000b24
/* f068f90: 8fa400f8 */ lw $a0,0xf8($sp)
/* f068f94: 02629821 */ addu $s3,$s3,$v0
/* f068f98: 0fc00315 */ jal func0f000c54
/* f068f9c: 8fa400f8 */ lw $a0,0xf8($sp)
/* f068fa0: 0282a021 */ addu $s4,$s4,$v0
/* f068fa4: 02741821 */ addu $v1,$s3,$s4
/* f068fa8: 28610100 */ slti $at,$v1,0x100
/* f068fac: 26b50001 */ addiu $s5,$s5,0x1
/* f068fb0: 1420005c */ bnez $at,.PF0f069124
/* f068fb4: 00609025 */ move $s2,$v1
/* f068fb8: 1000005a */ b .PF0f069124
/* f068fbc: 241200ff */ li $s2,0xff
/* f068fc0: 95cf0070 */ lhu $t7,0x70($t6)
.PF0f068fc4:
/* f068fc4: 00001025 */ move $v0,$zero
/* f068fc8: 31f80008 */ andi $t8,$t7,0x8
/* f068fcc: 5300000b */ beqzl $t8,.PF0f068ffc
/* f068fd0: c6080000 */ lwc1 $f8,0x0($s0)
/* f068fd4: c7b600d4 */ lwc1 $f22,0xd4($sp)
/* f068fd8: c7a800d8 */ lwc1 $f8,0xd8($sp)
/* f068fdc: c7ac00dc */ lwc1 $f12,0xdc($sp)
/* f068fe0: 4600b587 */ neg.s $f22,$f22
/* f068fe4: 46004287 */ neg.s $f10,$f8
/* f068fe8: 46006307 */ neg.s $f12,$f12
/* f068fec: e7b600d4 */ swc1 $f22,0xd4($sp)
/* f068ff0: e7aa00d8 */ swc1 $f10,0xd8($sp)
/* f068ff4: e7ac00dc */ swc1 $f12,0xdc($sp)
/* f068ff8: c6080000 */ lwc1 $f8,0x0($s0)
.PF0f068ffc:
/* f068ffc: c7aa00b0 */ lwc1 $f10,0xb0($sp)
/* f069000: c6040004 */ lwc1 $f4,0x4($s0)
/* f069004: c7a600b4 */ lwc1 $f6,0xb4($sp)
/* f069008: 460a4001 */ sub.s $f0,$f8,$f10
/* f06900c: c7aa00b8 */ lwc1 $f10,0xb8($sp)
/* f069010: c6080008 */ lwc1 $f8,0x8($s0)
/* f069014: 46062081 */ sub.s $f2,$f4,$f6
/* f069018: c7a400d4 */ lwc1 $f4,0xd4($sp)
/* f06901c: 84790028 */ lh $t9,0x28($v1)
/* f069020: 460a4301 */ sub.s $f12,$f8,$f10
/* f069024: 46002182 */ mul.s $f6,$f4,$f0
/* f069028: c7a800d8 */ lwc1 $f8,0xd8($sp)
/* f06902c: 46081282 */ mul.s $f10,$f2,$f8
/* f069030: c7a800dc */ lwc1 $f8,0xdc($sp)
/* f069034: 460a3100 */ add.s $f4,$f6,$f10
/* f069038: 46086182 */ mul.s $f6,$f12,$f8
/* f06903c: 12d90039 */ beq $s6,$t9,.PF0f069124
/* f069040: 46062580 */ add.s $f22,$f4,$f6
/* f069044: 00608825 */ move $s1,$v1
/* f069048: 84640028 */ lh $a0,0x28($v1)
.PF0f06904c:
/* f06904c: 009e0019 */ multu $a0,$s8
/* f069050: 8ee80000 */ lw $t0,0x0($s7)
/* f069054: c7aa00b0 */ lwc1 $f10,0xb0($sp)
/* f069058: c7a800b4 */ lwc1 $f8,0xb4($sp)
/* f06905c: c7a600d4 */ lwc1 $f6,0xd4($sp)
/* f069060: c7a400b8 */ lwc1 $f4,0xb8($sp)
/* f069064: 4618b03c */ c.lt.s $f22,$f24
/* f069068: 00004812 */ mflo $t1
/* f06906c: 01091021 */ addu $v0,$t0,$t1
/* f069070: c4400030 */ lwc1 $f0,0x30($v0)
/* f069074: c4420034 */ lwc1 $f2,0x34($v0)
/* f069078: c44c0038 */ lwc1 $f12,0x38($v0)
/* f06907c: 460a0381 */ sub.s $f14,$f0,$f10
/* f069080: 46081401 */ sub.s $f16,$f2,$f8
/* f069084: 460e3282 */ mul.s $f10,$f6,$f14
/* f069088: c7a800d8 */ lwc1 $f8,0xd8($sp)
/* f06908c: 46046481 */ sub.s $f18,$f12,$f4
/* f069090: 46088102 */ mul.s $f4,$f16,$f8
/* f069094: c7a800dc */ lwc1 $f8,0xdc($sp)
/* f069098: 46045180 */ add.s $f6,$f10,$f4
/* f06909c: 46089282 */ mul.s $f10,$f18,$f8
/* f0690a0: 45000005 */ bc1f .PF0f0690b8
/* f0690a4: 460a3500 */ add.s $f20,$f6,$f10
/* f0690a8: 4618b03c */ c.lt.s $f22,$f24
/* f0690ac: 00000000 */ nop
/* f0690b0: 45010009 */ bc1t .PF0f0690d8
/* f0690b4: 00000000 */ nop
.PF0f0690b8:
/* f0690b8: 4616c03c */ c.lt.s $f24,$f22
/* f0690bc: 00000000 */ nop
/* f0690c0: 45020015 */ bc1fl .PF0f069118
/* f0690c4: 8624002a */ lh $a0,0x2a($s1)
/* f0690c8: 4614c03c */ c.lt.s $f24,$f20
/* f0690cc: 00000000 */ nop
/* f0690d0: 45020011 */ bc1fl .PF0f069118
/* f0690d4: 8624002a */ lh $a0,0x2a($s1)
.PF0f0690d8:
/* f0690d8: 0fc00315 */ jal func0f000c54
/* f0690dc: 00000000 */ nop
/* f0690e0: 00408025 */ move $s0,$v0
/* f0690e4: 0fc002c9 */ jal func0f000b24
/* f0690e8: 86240028 */ lh $a0,0x28($s1)
/* f0690ec: 00501821 */ addu $v1,$v0,$s0
/* f0690f0: 28610100 */ slti $at,$v1,0x100
/* f0690f4: 00602825 */ move $a1,$v1
/* f0690f8: 14200002 */ bnez $at,.PF0f069104
/* f0690fc: 00402025 */ move $a0,$v0
/* f069100: 240500ff */ li $a1,0xff
.PF0f069104:
/* f069104: 26b50001 */ addiu $s5,$s5,0x1
/* f069108: 02649821 */ addu $s3,$s3,$a0
/* f06910c: 0290a021 */ addu $s4,$s4,$s0
/* f069110: 02459021 */ addu $s2,$s2,$a1
/* f069114: 8624002a */ lh $a0,0x2a($s1)
.PF0f069118:
/* f069118: 26310002 */ addiu $s1,$s1,0x2
/* f06911c: 16c4ffcb */ bne $s6,$a0,.PF0f06904c
/* f069120: 00000000 */ nop
.PF0f069124:
/* f069124: 8fa70128 */ lw $a3,0x128($sp)
.PF0f069128:
/* f069128: 8faa012c */ lw $t2,0x12c($sp)
/* f06912c: 8ce700bc */ lw $a3,0xbc($a3)
/* f069130: 10ea0006 */ beq $a3,$t2,.PF0f06914c
/* f069134: 00000000 */ nop
/* f069138: 10e00004 */ beqz $a3,.PF0f06914c
/* f06913c: 00000000 */ nop
/* f069140: 8ceb0014 */ lw $t3,0x14($a3)
/* f069144: 5560ff76 */ bnezl $t3,.PF0f068f20
/* f069148: 8fb9012c */ lw $t9,0x12c($sp)
.PF0f06914c:
/* f06914c: 16a0000c */ bnez $s5,.PF0f069180
/* f069150: 00000000 */ nop
/* f069154: 8fb00130 */ lw $s0,0x130($sp)
/* f069158: 00002825 */ move $a1,$zero
/* f06915c: 26100028 */ addiu $s0,$s0,0x28
/* f069160: 0fc1a369 */ jal func0f068b14
/* f069164: 02002025 */ move $a0,$s0
/* f069168: 00408825 */ move $s1,$v0
/* f06916c: 02002025 */ move $a0,$s0
/* f069170: 0fc1a369 */ jal func0f068b14
/* f069174: 24050001 */ li $a1,0x1
/* f069178: 10000017 */ b .PF0f0691d8
/* f06917c: 00401825 */ move $v1,$v0
.PF0f069180:
/* f069180: 0275001a */ div $zero,$s3,$s5
/* f069184: 00008812 */ mflo $s1
/* f069188: 16a00002 */ bnez $s5,.PF0f069194
/* f06918c: 00000000 */ nop
/* f069190: 0007000d */ break 0x7
.PF0f069194:
/* f069194: 2401ffff */ li $at,-1
/* f069198: 16a10004 */ bne $s5,$at,.PF0f0691ac
/* f06919c: 3c018000 */ lui $at,0x8000
/* f0691a0: 16610002 */ bne $s3,$at,.PF0f0691ac
/* f0691a4: 00000000 */ nop
/* f0691a8: 0006000d */ break 0x6
.PF0f0691ac:
/* f0691ac: 0295001a */ div $zero,$s4,$s5
/* f0691b0: 00001812 */ mflo $v1
/* f0691b4: 16a00002 */ bnez $s5,.PF0f0691c0
/* f0691b8: 00000000 */ nop
/* f0691bc: 0007000d */ break 0x7
.PF0f0691c0:
/* f0691c0: 2401ffff */ li $at,-1
/* f0691c4: 16a10004 */ bne $s5,$at,.PF0f0691d8
/* f0691c8: 3c018000 */ lui $at,0x8000
/* f0691cc: 16810002 */ bne $s4,$at,.PF0f0691d8
/* f0691d0: 00000000 */ nop
/* f0691d4: 0006000d */ break 0x6
.PF0f0691d8:
/* f0691d8: 8fac0134 */ lw $t4,0x134($sp)
/* f0691dc: 02231021 */ addu $v0,$s1,$v1
/* f0691e0: 284100ff */ slti $at,$v0,0xff
/* f0691e4: 51800003 */ beqzl $t4,.PF0f0691f4
/* f0691e8: 8fad0138 */ lw $t5,0x138($sp)
/* f0691ec: ad910000 */ sw $s1,0x0($t4)
/* f0691f0: 8fad0138 */ lw $t5,0x138($sp)
.PF0f0691f4:
/* f0691f4: 11a00002 */ beqz $t5,.PF0f069200
/* f0691f8: 00000000 */ nop
/* f0691fc: ada30000 */ sw $v1,0x0($t5)
.PF0f069200:
/* f069200: 10200003 */ beqz $at,.PF0f069210
/* f069204: d7b40018 */ ldc1 $f20,0x18($sp)
/* f069208: 10000002 */ b .PF0f069214
/* f06920c: 00401825 */ move $v1,$v0
.PF0f069210:
/* f069210: 240300ff */ li $v1,0xff
.PF0f069214:
/* f069214: 8fbf0054 */ lw $ra,0x54($sp)
/* f069218: d7b60020 */ ldc1 $f22,0x20($sp)
/* f06921c: d7b80028 */ ldc1 $f24,0x28($sp)
/* f069220: 8fb00030 */ lw $s0,0x30($sp)
/* f069224: 8fb10034 */ lw $s1,0x34($sp)
/* f069228: 8fb20038 */ lw $s2,0x38($sp)
/* f06922c: 8fb3003c */ lw $s3,0x3c($sp)
/* f069230: 8fb40040 */ lw $s4,0x40($sp)
/* f069234: 8fb50044 */ lw $s5,0x44($sp)
/* f069238: 8fb60048 */ lw $s6,0x48($sp)
/* f06923c: 8fb7004c */ lw $s7,0x4c($sp)
/* f069240: 8fbe0050 */ lw $s8,0x50($sp)
/* f069244: 27bd0130 */ addiu $sp,$sp,0x130
/* f069248: 03e00008 */ jr $ra
/* f06924c: 00601025 */ move $v0,$v1
);
#elif VERSION >= VERSION_PAL_BETA
GLOBAL_ASM(
glabel func0f068c04
/* f068de4: 27bdfed0 */ addiu $sp,$sp,-304
/* f068de8: afbf0054 */ sw $ra,0x54($sp)
/* f068dec: afbe0050 */ sw $s8,0x50($sp)
/* f068df0: afb7004c */ sw $s7,0x4c($sp)
/* f068df4: afb60048 */ sw $s6,0x48($sp)
/* f068df8: afb50044 */ sw $s5,0x44($sp)
/* f068dfc: afb40040 */ sw $s4,0x40($sp)
/* f068e00: afb3003c */ sw $s3,0x3c($sp)
/* f068e04: afb20038 */ sw $s2,0x38($sp)
/* f068e08: afb10034 */ sw $s1,0x34($sp)
/* f068e0c: afb00030 */ sw $s0,0x30($sp)
/* f068e10: f7b80028 */ sdc1 $f24,0x28($sp)
/* f068e14: f7b60020 */ sdc1 $f22,0x20($sp)
/* f068e18: f7b40018 */ sdc1 $f20,0x18($sp)
/* f068e1c: afa40130 */ sw $a0,0x130($sp)
/* f068e20: afa50134 */ sw $a1,0x134($sp)
/* f068e24: afa60138 */ sw $a2,0x138($sp)
/* f068e28: 8c8f0004 */ lw $t7,0x4($a0)
/* f068e2c: 00807025 */ move $t6,$a0
/* f068e30: 00009825 */ move $s3,$zero
/* f068e34: 0000a025 */ move $s4,$zero
/* f068e38: 00009025 */ move $s2,$zero
/* f068e3c: 0000a825 */ move $s5,$zero
/* f068e40: afaf012c */ sw $t7,0x12c($sp)
/* f068e44: 11e00095 */ beqz $t7,.PB0f06909c
/* f068e48: 01e03825 */ move $a3,$t7
/* f068e4c: 8df80014 */ lw $t8,0x14($t7)
/* f068e50: 13000092 */ beqz $t8,.PB0f06909c
/* f068e54: 00000000 */ nop
/* f068e58: 3c17800b */ lui $s7,0x800b
/* f068e5c: 4480c000 */ mtc1 $zero,$f24
/* f068e60: 26f78f48 */ addiu $s7,$s7,-28856
/* f068e64: 241e008c */ li $s8,0x8c
/* f068e68: 2416ffff */ li $s6,-1
/* f068e6c: 8fb9012c */ lw $t9,0x12c($sp)
.PB0f068e70:
/* f068e70: afa70128 */ sw $a3,0x128($sp)
/* f068e74: 84e900c4 */ lh $t1,0xc4($a3)
/* f068e78: 872800c4 */ lh $t0,0xc4($t9)
/* f068e7c: 5509007e */ bnel $t0,$t1,.PB0f069078
/* f068e80: 8fa70128 */ lw $a3,0x128($sp)
/* f068e84: 3c02800a */ lui $v0,0x800a
/* f068e88: 8c42e754 */ lw $v0,-0x18ac($v0)
/* f068e8c: afa70128 */ sw $a3,0x128($sp)
/* f068e90: 8c4a00bc */ lw $t2,0xbc($v0)
/* f068e94: 51400078 */ beqzl $t2,.PB0f069078
/* f068e98: 8fa70128 */ lw $a3,0x128($sp)
/* f068e9c: 8ce30014 */ lw $v1,0x14($a3)
/* f068ea0: 84e40006 */ lh $a0,0x6($a3)
/* f068ea4: 24501bb0 */ addiu $s0,$v0,0x1bb0
/* f068ea8: afa70128 */ sw $a3,0x128($sp)
/* f068eac: 2405005e */ li $a1,0x5e
/* f068eb0: 27a600b0 */ addiu $a2,$sp,0xb0
/* f068eb4: 0fc458d4 */ jal padUnpack
/* f068eb8: afa30104 */ sw $v1,0x104($sp)
/* f068ebc: 8fab012c */ lw $t3,0x12c($sp)
/* f068ec0: 3c010400 */ lui $at,0x400
/* f068ec4: 8fa30104 */ lw $v1,0x104($sp)
/* f068ec8: 8d6c0010 */ lw $t4,0x10($t3)
/* f068ecc: 8fae012c */ lw $t6,0x12c($sp)
/* f068ed0: 01816824 */ and $t5,$t4,$at
/* f068ed4: 51a0000f */ beqzl $t5,.PB0f068f14
/* f068ed8: 95cf0070 */ lhu $t7,0x70($t6)
/* f068edc: 0fc002c9 */ jal func0f000b24
/* f068ee0: 8fa400f8 */ lw $a0,0xf8($sp)
/* f068ee4: 02629821 */ addu $s3,$s3,$v0
/* f068ee8: 0fc00315 */ jal func0f000c54
/* f068eec: 8fa400f8 */ lw $a0,0xf8($sp)
/* f068ef0: 0282a021 */ addu $s4,$s4,$v0
/* f068ef4: 02741821 */ addu $v1,$s3,$s4
/* f068ef8: 28610100 */ slti $at,$v1,0x100
/* f068efc: 26b50001 */ addiu $s5,$s5,0x1
/* f068f00: 1420005c */ bnez $at,.PB0f069074
/* f068f04: 00609025 */ move $s2,$v1
/* f068f08: 1000005a */ b .PB0f069074
/* f068f0c: 241200ff */ li $s2,0xff
/* f068f10: 95cf0070 */ lhu $t7,0x70($t6)
.PB0f068f14:
/* f068f14: 00001025 */ move $v0,$zero
/* f068f18: 31f80008 */ andi $t8,$t7,0x8
/* f068f1c: 5300000b */ beqzl $t8,.PB0f068f4c
/* f068f20: c6080000 */ lwc1 $f8,0x0($s0)
/* f068f24: c7b600d4 */ lwc1 $f22,0xd4($sp)
/* f068f28: c7a800d8 */ lwc1 $f8,0xd8($sp)
/* f068f2c: c7ac00dc */ lwc1 $f12,0xdc($sp)
/* f068f30: 4600b587 */ neg.s $f22,$f22
/* f068f34: 46004287 */ neg.s $f10,$f8
/* f068f38: 46006307 */ neg.s $f12,$f12
/* f068f3c: e7b600d4 */ swc1 $f22,0xd4($sp)
/* f068f40: e7aa00d8 */ swc1 $f10,0xd8($sp)
/* f068f44: e7ac00dc */ swc1 $f12,0xdc($sp)
/* f068f48: c6080000 */ lwc1 $f8,0x0($s0)
.PB0f068f4c:
/* f068f4c: c7aa00b0 */ lwc1 $f10,0xb0($sp)
/* f068f50: c6040004 */ lwc1 $f4,0x4($s0)
/* f068f54: c7a600b4 */ lwc1 $f6,0xb4($sp)
/* f068f58: 460a4001 */ sub.s $f0,$f8,$f10
/* f068f5c: c7aa00b8 */ lwc1 $f10,0xb8($sp)
/* f068f60: c6080008 */ lwc1 $f8,0x8($s0)
/* f068f64: 46062081 */ sub.s $f2,$f4,$f6
/* f068f68: c7a400d4 */ lwc1 $f4,0xd4($sp)
/* f068f6c: 84790028 */ lh $t9,0x28($v1)
/* f068f70: 460a4301 */ sub.s $f12,$f8,$f10
/* f068f74: 46002182 */ mul.s $f6,$f4,$f0
/* f068f78: c7a800d8 */ lwc1 $f8,0xd8($sp)
/* f068f7c: 46081282 */ mul.s $f10,$f2,$f8
/* f068f80: c7a800dc */ lwc1 $f8,0xdc($sp)
/* f068f84: 460a3100 */ add.s $f4,$f6,$f10
/* f068f88: 46086182 */ mul.s $f6,$f12,$f8
/* f068f8c: 12d90039 */ beq $s6,$t9,.PB0f069074
/* f068f90: 46062580 */ add.s $f22,$f4,$f6
/* f068f94: 00608825 */ move $s1,$v1
/* f068f98: 84640028 */ lh $a0,0x28($v1)
.PB0f068f9c:
/* f068f9c: 009e0019 */ multu $a0,$s8
/* f068fa0: 8ee80000 */ lw $t0,0x0($s7)
/* f068fa4: c7aa00b0 */ lwc1 $f10,0xb0($sp)
/* f068fa8: c7a800b4 */ lwc1 $f8,0xb4($sp)
/* f068fac: c7a600d4 */ lwc1 $f6,0xd4($sp)
/* f068fb0: c7a400b8 */ lwc1 $f4,0xb8($sp)
/* f068fb4: 4618b03c */ c.lt.s $f22,$f24
/* f068fb8: 00004812 */ mflo $t1
/* f068fbc: 01091021 */ addu $v0,$t0,$t1
/* f068fc0: c4400030 */ lwc1 $f0,0x30($v0)
/* f068fc4: c4420034 */ lwc1 $f2,0x34($v0)
/* f068fc8: c44c0038 */ lwc1 $f12,0x38($v0)
/* f068fcc: 460a0381 */ sub.s $f14,$f0,$f10
/* f068fd0: 46081401 */ sub.s $f16,$f2,$f8
/* f068fd4: 460e3282 */ mul.s $f10,$f6,$f14
/* f068fd8: c7a800d8 */ lwc1 $f8,0xd8($sp)
/* f068fdc: 46046481 */ sub.s $f18,$f12,$f4
/* f068fe0: 46088102 */ mul.s $f4,$f16,$f8
/* f068fe4: c7a800dc */ lwc1 $f8,0xdc($sp)
/* f068fe8: 46045180 */ add.s $f6,$f10,$f4
/* f068fec: 46089282 */ mul.s $f10,$f18,$f8
/* f068ff0: 45000005 */ bc1f .PB0f069008
/* f068ff4: 460a3500 */ add.s $f20,$f6,$f10
/* f068ff8: 4618b03c */ c.lt.s $f22,$f24
/* f068ffc: 00000000 */ nop
/* f069000: 45010009 */ bc1t .PB0f069028
/* f069004: 00000000 */ nop
.PB0f069008:
/* f069008: 4616c03c */ c.lt.s $f24,$f22
/* f06900c: 00000000 */ nop
/* f069010: 45020015 */ bc1fl .PB0f069068
/* f069014: 8624002a */ lh $a0,0x2a($s1)
/* f069018: 4614c03c */ c.lt.s $f24,$f20
/* f06901c: 00000000 */ nop
/* f069020: 45020011 */ bc1fl .PB0f069068
/* f069024: 8624002a */ lh $a0,0x2a($s1)
.PB0f069028:
/* f069028: 0fc00315 */ jal func0f000c54
/* f06902c: 00000000 */ nop
/* f069030: 00408025 */ move $s0,$v0
/* f069034: 0fc002c9 */ jal func0f000b24
/* f069038: 86240028 */ lh $a0,0x28($s1)
/* f06903c: 00501821 */ addu $v1,$v0,$s0
/* f069040: 28610100 */ slti $at,$v1,0x100
/* f069044: 00602825 */ move $a1,$v1
/* f069048: 14200002 */ bnez $at,.PB0f069054
/* f06904c: 00402025 */ move $a0,$v0
/* f069050: 240500ff */ li $a1,0xff
.PB0f069054:
/* f069054: 26b50001 */ addiu $s5,$s5,0x1
/* f069058: 02649821 */ addu $s3,$s3,$a0
/* f06905c: 0290a021 */ addu $s4,$s4,$s0
/* f069060: 02459021 */ addu $s2,$s2,$a1
/* f069064: 8624002a */ lh $a0,0x2a($s1)
.PB0f069068:
/* f069068: 26310002 */ addiu $s1,$s1,0x2
/* f06906c: 16c4ffcb */ bne $s6,$a0,.PB0f068f9c
/* f069070: 00000000 */ nop
.PB0f069074:
/* f069074: 8fa70128 */ lw $a3,0x128($sp)
.PB0f069078:
/* f069078: 8faa012c */ lw $t2,0x12c($sp)
/* f06907c: 8ce700bc */ lw $a3,0xbc($a3)
/* f069080: 10ea0006 */ beq $a3,$t2,.PB0f06909c
/* f069084: 00000000 */ nop
/* f069088: 10e00004 */ beqz $a3,.PB0f06909c
/* f06908c: 00000000 */ nop
/* f069090: 8ceb0014 */ lw $t3,0x14($a3)
/* f069094: 5560ff76 */ bnezl $t3,.PB0f068e70
/* f069098: 8fb9012c */ lw $t9,0x12c($sp)
.PB0f06909c:
/* f06909c: 16a0000c */ bnez $s5,.PB0f0690d0
/* f0690a0: 00000000 */ nop
/* f0690a4: 8fb00130 */ lw $s0,0x130($sp)
/* f0690a8: 00002825 */ move $a1,$zero
/* f0690ac: 26100028 */ addiu $s0,$s0,0x28
/* f0690b0: 0fc1a33d */ jal func0f068b14
/* f0690b4: 02002025 */ move $a0,$s0
/* f0690b8: 00408825 */ move $s1,$v0
/* f0690bc: 02002025 */ move $a0,$s0
/* f0690c0: 0fc1a33d */ jal func0f068b14
/* f0690c4: 24050001 */ li $a1,0x1
/* f0690c8: 10000017 */ b .PB0f069128
/* f0690cc: 00401825 */ move $v1,$v0
.PB0f0690d0:
/* f0690d0: 0275001a */ div $zero,$s3,$s5
/* f0690d4: 00008812 */ mflo $s1
/* f0690d8: 16a00002 */ bnez $s5,.PB0f0690e4
/* f0690dc: 00000000 */ nop
/* f0690e0: 0007000d */ break 0x7
.PB0f0690e4:
/* f0690e4: 2401ffff */ li $at,-1
/* f0690e8: 16a10004 */ bne $s5,$at,.PB0f0690fc
/* f0690ec: 3c018000 */ lui $at,0x8000
/* f0690f0: 16610002 */ bne $s3,$at,.PB0f0690fc
/* f0690f4: 00000000 */ nop
/* f0690f8: 0006000d */ break 0x6
.PB0f0690fc:
/* f0690fc: 0295001a */ div $zero,$s4,$s5
/* f069100: 00001812 */ mflo $v1
/* f069104: 16a00002 */ bnez $s5,.PB0f069110
/* f069108: 00000000 */ nop
/* f06910c: 0007000d */ break 0x7
.PB0f069110:
/* f069110: 2401ffff */ li $at,-1
/* f069114: 16a10004 */ bne $s5,$at,.PB0f069128
/* f069118: 3c018000 */ lui $at,0x8000
/* f06911c: 16810002 */ bne $s4,$at,.PB0f069128
/* f069120: 00000000 */ nop
/* f069124: 0006000d */ break 0x6
.PB0f069128:
/* f069128: 8fac0134 */ lw $t4,0x134($sp)
/* f06912c: 02231021 */ addu $v0,$s1,$v1
/* f069130: 284100ff */ slti $at,$v0,0xff
/* f069134: 51800003 */ beqzl $t4,.PB0f069144
/* f069138: 8fad0138 */ lw $t5,0x138($sp)
/* f06913c: ad910000 */ sw $s1,0x0($t4)
/* f069140: 8fad0138 */ lw $t5,0x138($sp)
.PB0f069144:
/* f069144: 11a00002 */ beqz $t5,.PB0f069150
/* f069148: 00000000 */ nop
/* f06914c: ada30000 */ sw $v1,0x0($t5)
.PB0f069150:
/* f069150: 10200003 */ beqz $at,.PB0f069160
/* f069154: d7b40018 */ ldc1 $f20,0x18($sp)
/* f069158: 10000002 */ b .PB0f069164
/* f06915c: 00401825 */ move $v1,$v0
.PB0f069160:
/* f069160: 240300ff */ li $v1,0xff
.PB0f069164:
/* f069164: 8fbf0054 */ lw $ra,0x54($sp)
/* f069168: d7b60020 */ ldc1 $f22,0x20($sp)
/* f06916c: d7b80028 */ ldc1 $f24,0x28($sp)
/* f069170: 8fb00030 */ lw $s0,0x30($sp)
/* f069174: 8fb10034 */ lw $s1,0x34($sp)
/* f069178: 8fb20038 */ lw $s2,0x38($sp)
/* f06917c: 8fb3003c */ lw $s3,0x3c($sp)
/* f069180: 8fb40040 */ lw $s4,0x40($sp)
/* f069184: 8fb50044 */ lw $s5,0x44($sp)
/* f069188: 8fb60048 */ lw $s6,0x48($sp)
/* f06918c: 8fb7004c */ lw $s7,0x4c($sp)
/* f069190: 8fbe0050 */ lw $s8,0x50($sp)
/* f069194: 27bd0130 */ addiu $sp,$sp,0x130
/* f069198: 03e00008 */ jr $ra
/* f06919c: 00601025 */ move $v0,$v1
);
#else
GLOBAL_ASM(
glabel func0f068c04
/* f068c04: 27bdfed0 */ addiu $sp,$sp,-304
/* f068c08: afbf0054 */ sw $ra,0x54($sp)
/* f068c0c: afbe0050 */ sw $s8,0x50($sp)
/* f068c10: afb7004c */ sw $s7,0x4c($sp)
/* f068c14: afb60048 */ sw $s6,0x48($sp)
/* f068c18: afb50044 */ sw $s5,0x44($sp)
/* f068c1c: afb40040 */ sw $s4,0x40($sp)
/* f068c20: afb3003c */ sw $s3,0x3c($sp)
/* f068c24: afb20038 */ sw $s2,0x38($sp)
/* f068c28: afb10034 */ sw $s1,0x34($sp)
/* f068c2c: afb00030 */ sw $s0,0x30($sp)
/* f068c30: f7b80028 */ sdc1 $f24,0x28($sp)
/* f068c34: f7b60020 */ sdc1 $f22,0x20($sp)
/* f068c38: f7b40018 */ sdc1 $f20,0x18($sp)
/* f068c3c: afa40130 */ sw $a0,0x130($sp)
/* f068c40: afa50134 */ sw $a1,0x134($sp)
/* f068c44: afa60138 */ sw $a2,0x138($sp)
/* f068c48: 8c8f0004 */ lw $t7,0x4($a0)
/* f068c4c: 3c047f1b */ lui $a0,%hi(var7f1a9f60)
/* f068c50: 3c058007 */ lui $a1,%hi(var80069974)
/* f068c54: 00009825 */ or $s3,$zero,$zero
/* f068c58: 0000a025 */ or $s4,$zero,$zero
/* f068c5c: 00009025 */ or $s2,$zero,$zero
/* f068c60: 0000a825 */ or $s5,$zero,$zero
/* f068c64: 24a59974 */ addiu $a1,$a1,%lo(var80069974)
/* f068c68: 24849f60 */ addiu $a0,$a0,%lo(var7f1a9f60)
/* f068c6c: 0c0036cc */ jal mainOverrideVariable
/* f068c70: afaf012c */ sw $t7,0x12c($sp)
/* f068c74: 8fa3012c */ lw $v1,0x12c($sp)
/* f068c78: 10600092 */ beqz $v1,.L0f068ec4
/* f068c7c: 00603825 */ or $a3,$v1,$zero
/* f068c80: 8c780014 */ lw $t8,0x14($v1)
/* f068c84: 1300008f */ beqz $t8,.L0f068ec4
/* f068c88: 00000000 */ nop
/* f068c8c: 3c17800a */ lui $s7,%hi(g_Rooms)
/* f068c90: 4480c000 */ mtc1 $zero,$f24
/* f068c94: 26f74928 */ addiu $s7,$s7,%lo(g_Rooms)
/* f068c98: 241e008c */ addiu $s8,$zero,0x8c
/* f068c9c: 2416ffff */ addiu $s6,$zero,-1
/* f068ca0: afa70128 */ sw $a3,0x128($sp)
.L0f068ca4:
/* f068ca4: 84e800c4 */ lh $t0,0xc4($a3)
/* f068ca8: 847900c4 */ lh $t9,0xc4($v1)
/* f068cac: 5728007c */ bnel $t9,$t0,.L0f068ea0
/* f068cb0: 8fa70128 */ lw $a3,0x128($sp)
/* f068cb4: 3c02800a */ lui $v0,%hi(g_Vars+0x284)
/* f068cb8: 8c42a244 */ lw $v0,%lo(g_Vars+0x284)($v0)
/* f068cbc: afa70128 */ sw $a3,0x128($sp)
/* f068cc0: 8c4900bc */ lw $t1,0xbc($v0)
/* f068cc4: 51200076 */ beqzl $t1,.L0f068ea0
/* f068cc8: 8fa70128 */ lw $a3,0x128($sp)
/* f068ccc: 8ce30014 */ lw $v1,0x14($a3)
/* f068cd0: 84e40006 */ lh $a0,0x6($a3)
/* f068cd4: 24501bb0 */ addiu $s0,$v0,0x1bb0
/* f068cd8: afa70128 */ sw $a3,0x128($sp)
/* f068cdc: 2405005e */ addiu $a1,$zero,0x5e
/* f068ce0: 27a600b0 */ addiu $a2,$sp,0xb0
/* f068ce4: 0fc456ac */ jal padUnpack
/* f068ce8: afa30104 */ sw $v1,0x104($sp)
/* f068cec: 8faa012c */ lw $t2,0x12c($sp)
/* f068cf0: 3c010400 */ lui $at,0x400
/* f068cf4: 8fa30104 */ lw $v1,0x104($sp)
/* f068cf8: 8d4b0010 */ lw $t3,0x10($t2)
/* f068cfc: 8fad012c */ lw $t5,0x12c($sp)
/* f068d00: 01616024 */ and $t4,$t3,$at
/* f068d04: 5180000e */ beqzl $t4,.L0f068d40
/* f068d08: 95ae0070 */ lhu $t6,0x70($t5)
/* f068d0c: 0fc002c9 */ jal func0f000b24
/* f068d10: 8fa400f8 */ lw $a0,0xf8($sp)
/* f068d14: 02629821 */ addu $s3,$s3,$v0
/* f068d18: 0fc00315 */ jal func0f000c54
/* f068d1c: 8fa400f8 */ lw $a0,0xf8($sp)
/* f068d20: 0282a021 */ addu $s4,$s4,$v0
/* f068d24: 02749021 */ addu $s2,$s3,$s4
/* f068d28: 2a410100 */ slti $at,$s2,0x100
/* f068d2c: 1420005b */ bnez $at,.L0f068e9c
/* f068d30: 26b50001 */ addiu $s5,$s5,0x1
/* f068d34: 10000059 */ b .L0f068e9c
/* f068d38: 241200ff */ addiu $s2,$zero,0xff
/* f068d3c: 95ae0070 */ lhu $t6,0x70($t5)
.L0f068d40:
/* f068d40: 00001025 */ or $v0,$zero,$zero
/* f068d44: 31cf0008 */ andi $t7,$t6,0x8
/* f068d48: 51e0000b */ beqzl $t7,.L0f068d78
/* f068d4c: c6080000 */ lwc1 $f8,0x0($s0)
/* f068d50: c7b600d4 */ lwc1 $f22,0xd4($sp)
/* f068d54: c7a800d8 */ lwc1 $f8,0xd8($sp)
/* f068d58: c7ac00dc */ lwc1 $f12,0xdc($sp)
/* f068d5c: 4600b587 */ neg.s $f22,$f22
/* f068d60: 46004287 */ neg.s $f10,$f8
/* f068d64: 46006307 */ neg.s $f12,$f12
/* f068d68: e7b600d4 */ swc1 $f22,0xd4($sp)
/* f068d6c: e7aa00d8 */ swc1 $f10,0xd8($sp)
/* f068d70: e7ac00dc */ swc1 $f12,0xdc($sp)
/* f068d74: c6080000 */ lwc1 $f8,0x0($s0)
.L0f068d78:
/* f068d78: c7aa00b0 */ lwc1 $f10,0xb0($sp)
/* f068d7c: c6040004 */ lwc1 $f4,0x4($s0)
/* f068d80: c7a600b4 */ lwc1 $f6,0xb4($sp)
/* f068d84: 460a4001 */ sub.s $f0,$f8,$f10
/* f068d88: c7aa00b8 */ lwc1 $f10,0xb8($sp)
/* f068d8c: c6080008 */ lwc1 $f8,0x8($s0)
/* f068d90: 46062081 */ sub.s $f2,$f4,$f6
/* f068d94: c7a400d4 */ lwc1 $f4,0xd4($sp)
/* f068d98: 84780028 */ lh $t8,0x28($v1)
/* f068d9c: 460a4301 */ sub.s $f12,$f8,$f10
/* f068da0: 46002182 */ mul.s $f6,$f4,$f0
/* f068da4: c7a800d8 */ lwc1 $f8,0xd8($sp)
/* f068da8: 46081282 */ mul.s $f10,$f2,$f8
/* f068dac: c7a800dc */ lwc1 $f8,0xdc($sp)
/* f068db0: 460a3100 */ add.s $f4,$f6,$f10
/* f068db4: 46086182 */ mul.s $f6,$f12,$f8
/* f068db8: 12d80038 */ beq $s6,$t8,.L0f068e9c
/* f068dbc: 46062580 */ add.s $f22,$f4,$f6
/* f068dc0: 00608825 */ or $s1,$v1,$zero
/* f068dc4: 84640028 */ lh $a0,0x28($v1)
.L0f068dc8:
/* f068dc8: 009e0019 */ multu $a0,$s8
/* f068dcc: 8ef90000 */ lw $t9,0x0($s7)
/* f068dd0: c7aa00b0 */ lwc1 $f10,0xb0($sp)
/* f068dd4: c7a800b4 */ lwc1 $f8,0xb4($sp)
/* f068dd8: c7a600d4 */ lwc1 $f6,0xd4($sp)
/* f068ddc: c7a400b8 */ lwc1 $f4,0xb8($sp)
/* f068de0: 4618b03c */ c.lt.s $f22,$f24
/* f068de4: 00004012 */ mflo $t0
/* f068de8: 03281021 */ addu $v0,$t9,$t0
/* f068dec: c4400030 */ lwc1 $f0,0x30($v0)
/* f068df0: c4420034 */ lwc1 $f2,0x34($v0)
/* f068df4: c44c0038 */ lwc1 $f12,0x38($v0)
/* f068df8: 460a0381 */ sub.s $f14,$f0,$f10
/* f068dfc: 46081401 */ sub.s $f16,$f2,$f8
/* f068e00: 460e3282 */ mul.s $f10,$f6,$f14
/* f068e04: c7a800d8 */ lwc1 $f8,0xd8($sp)
/* f068e08: 46046481 */ sub.s $f18,$f12,$f4
/* f068e0c: 46088102 */ mul.s $f4,$f16,$f8
/* f068e10: c7a800dc */ lwc1 $f8,0xdc($sp)
/* f068e14: 46045180 */ add.s $f6,$f10,$f4
/* f068e18: 46089282 */ mul.s $f10,$f18,$f8
/* f068e1c: 45000005 */ bc1f .L0f068e34
/* f068e20: 460a3500 */ add.s $f20,$f6,$f10
/* f068e24: 4618b03c */ c.lt.s $f22,$f24
/* f068e28: 00000000 */ nop
/* f068e2c: 45010009 */ bc1t .L0f068e54
/* f068e30: 00000000 */ nop
.L0f068e34:
/* f068e34: 4616c03c */ c.lt.s $f24,$f22
/* f068e38: 00000000 */ nop
/* f068e3c: 45020014 */ bc1fl .L0f068e90
/* f068e40: 8624002a */ lh $a0,0x2a($s1)
/* f068e44: 4614c03c */ c.lt.s $f24,$f20
/* f068e48: 00000000 */ nop
/* f068e4c: 45020010 */ bc1fl .L0f068e90
/* f068e50: 8624002a */ lh $a0,0x2a($s1)
.L0f068e54:
/* f068e54: 0fc00315 */ jal func0f000c54
/* f068e58: 00000000 */ nop
/* f068e5c: 00408025 */ or $s0,$v0,$zero
/* f068e60: 0fc002c9 */ jal func0f000b24
/* f068e64: 86240028 */ lh $a0,0x28($s1)
/* f068e68: 00502821 */ addu $a1,$v0,$s0
/* f068e6c: 28a10100 */ slti $at,$a1,0x100
/* f068e70: 14200002 */ bnez $at,.L0f068e7c
/* f068e74: 00402025 */ or $a0,$v0,$zero
/* f068e78: 240500ff */ addiu $a1,$zero,0xff
.L0f068e7c:
/* f068e7c: 26b50001 */ addiu $s5,$s5,0x1
/* f068e80: 02649821 */ addu $s3,$s3,$a0
/* f068e84: 0290a021 */ addu $s4,$s4,$s0
/* f068e88: 02459021 */ addu $s2,$s2,$a1
/* f068e8c: 8624002a */ lh $a0,0x2a($s1)
.L0f068e90:
/* f068e90: 26310002 */ addiu $s1,$s1,0x2
/* f068e94: 16c4ffcc */ bne $s6,$a0,.L0f068dc8
/* f068e98: 00000000 */ nop
.L0f068e9c:
/* f068e9c: 8fa70128 */ lw $a3,0x128($sp)
.L0f068ea0:
/* f068ea0: 8fa3012c */ lw $v1,0x12c($sp)
/* f068ea4: 8ce700bc */ lw $a3,0xbc($a3)
/* f068ea8: 10e30006 */ beq $a3,$v1,.L0f068ec4
/* f068eac: 00000000 */ nop
/* f068eb0: 10e00004 */ beqz $a3,.L0f068ec4
/* f068eb4: 00000000 */ nop
/* f068eb8: 8ce90014 */ lw $t1,0x14($a3)
/* f068ebc: 5520ff79 */ bnezl $t1,.L0f068ca4
/* f068ec0: afa70128 */ sw $a3,0x128($sp)
.L0f068ec4:
/* f068ec4: 16a0000c */ bnez $s5,.L0f068ef8
/* f068ec8: 00000000 */ nop
/* f068ecc: 8fb00130 */ lw $s0,0x130($sp)
/* f068ed0: 00002825 */ or $a1,$zero,$zero
/* f068ed4: 26100028 */ addiu $s0,$s0,0x28
/* f068ed8: 0fc1a2c5 */ jal func0f068b14
/* f068edc: 02002025 */ or $a0,$s0,$zero
/* f068ee0: 00408825 */ or $s1,$v0,$zero
/* f068ee4: 02002025 */ or $a0,$s0,$zero
/* f068ee8: 0fc1a2c5 */ jal func0f068b14
/* f068eec: 24050001 */ addiu $a1,$zero,0x1
/* f068ef0: 10000017 */ b .L0f068f50
/* f068ef4: 00401825 */ or $v1,$v0,$zero
.L0f068ef8:
/* f068ef8: 0275001a */ div $zero,$s3,$s5
/* f068efc: 00008812 */ mflo $s1
/* f068f00: 16a00002 */ bnez $s5,.L0f068f0c
/* f068f04: 00000000 */ nop
/* f068f08: 0007000d */ break 0x7
.L0f068f0c:
/* f068f0c: 2401ffff */ addiu $at,$zero,-1
/* f068f10: 16a10004 */ bne $s5,$at,.L0f068f24
/* f068f14: 3c018000 */ lui $at,0x8000
/* f068f18: 16610002 */ bne $s3,$at,.L0f068f24
/* f068f1c: 00000000 */ nop
/* f068f20: 0006000d */ break 0x6
.L0f068f24:
/* f068f24: 0295001a */ div $zero,$s4,$s5
/* f068f28: 00001812 */ mflo $v1
/* f068f2c: 16a00002 */ bnez $s5,.L0f068f38
/* f068f30: 00000000 */ nop
/* f068f34: 0007000d */ break 0x7
.L0f068f38:
/* f068f38: 2401ffff */ addiu $at,$zero,-1
/* f068f3c: 16a10004 */ bne $s5,$at,.L0f068f50
/* f068f40: 3c018000 */ lui $at,0x8000
/* f068f44: 16810002 */ bne $s4,$at,.L0f068f50
/* f068f48: 00000000 */ nop
/* f068f4c: 0006000d */ break 0x6
.L0f068f50:
/* f068f50: 8fa20134 */ lw $v0,0x134($sp)
/* f068f54: 50400003 */ beqzl $v0,.L0f068f64
/* f068f58: 8fa20138 */ lw $v0,0x138($sp)
/* f068f5c: ac510000 */ sw $s1,0x0($v0)
/* f068f60: 8fa20138 */ lw $v0,0x138($sp)
.L0f068f64:
/* f068f64: 50400003 */ beqzl $v0,.L0f068f74
/* f068f68: 02231021 */ addu $v0,$s1,$v1
/* f068f6c: ac430000 */ sw $v1,0x0($v0)
/* f068f70: 02231021 */ addu $v0,$s1,$v1
.L0f068f74:
/* f068f74: 284100ff */ slti $at,$v0,0xff
/* f068f78: 10200003 */ beqz $at,.L0f068f88
/* f068f7c: d7b40018 */ ldc1 $f20,0x18($sp)
/* f068f80: 10000002 */ b .L0f068f8c
/* f068f84: 00401825 */ or $v1,$v0,$zero
.L0f068f88:
/* f068f88: 240300ff */ addiu $v1,$zero,0xff
.L0f068f8c:
/* f068f8c: 8fbf0054 */ lw $ra,0x54($sp)
/* f068f90: d7b60020 */ ldc1 $f22,0x20($sp)
/* f068f94: d7b80028 */ ldc1 $f24,0x28($sp)
/* f068f98: 8fb00030 */ lw $s0,0x30($sp)
/* f068f9c: 8fb10034 */ lw $s1,0x34($sp)
/* f068fa0: 8fb20038 */ lw $s2,0x38($sp)
/* f068fa4: 8fb3003c */ lw $s3,0x3c($sp)
/* f068fa8: 8fb40040 */ lw $s4,0x40($sp)
/* f068fac: 8fb50044 */ lw $s5,0x44($sp)
/* f068fb0: 8fb60048 */ lw $s6,0x48($sp)
/* f068fb4: 8fb7004c */ lw $s7,0x4c($sp)
/* f068fb8: 8fbe0050 */ lw $s8,0x50($sp)
/* f068fbc: 27bd0130 */ addiu $sp,$sp,0x130
/* f068fc0: 03e00008 */ jr $ra
/* f068fc4: 00601025 */ or $v0,$v1,$zero
);
#endif
// Mismatch: Something weird with the registers for the neg.s instructions for
// the pad normal. Two of them reuse the same register, and one of those is a
// callee-save register.
//s32 func0f068c04(struct prop *prop, s32 *arg1, s32 *arg2)
//{
// struct doorobj *door = prop->door; // 12c
// struct doorobj *sibling; // 128
// f32 f22;
// s32 s1;
// s32 s3 = 0;
// s32 s4 = 0;
// s32 s2 = 0;
// s32 s5 = 0;
// s32 v1;
// s32 result;
// struct prop *loopprop; // 104
// struct pad pad; // b0
// s32 i;
// u32 stack[7];
//
//#if VERSION < VERSION_PAL_BETA
// static u32 var80069974 = 0;
//
// mainOverrideVariable("debugdoors", &var80069974);
//#endif
//
// sibling = door;
//
// while (sibling && sibling->base.prop) {
// if (sibling->portalnum == door->portalnum) {
// if (g_Vars.currentplayer->prop) {
// struct coord *campos = &g_Vars.currentplayer->cam_pos;
// loopprop = sibling->base.prop;
//
// padUnpack(sibling->base.pad, PADFIELD_POS | PADFIELD_LOOK | PADFIELD_UP | PADFIELD_NORMAL | PADFIELD_ROOM, &pad);
//
// if (door->base.flags3 & OBJFLAG3_04000000) {
// s3 += func0f000b24(pad.room);
// s4 += func0f000c54(pad.room);
// s5++;
//
// s2 = s3 + s4;
//
// if (s2 > 255) {
// s2 = 255;
// }
// } else {
// // d3c
// f32 a;
// f32 b;
// f32 c;
//
// if (door->doorflags & DOORFLAG_FLIP) {
// pad.normal.f[0] = -pad.normal.f[0];
// pad.normal.f[1] = -pad.normal.f[1];
// pad.normal.f[2] = -pad.normal.f[2];
// }
//
// // d78
// a = campos->f[0] - pad.pos.f[0];
// b = campos->f[1] - pad.pos.f[1];
// c = campos->f[2] - pad.pos.f[2];
//
// f22 = pad.normal.f[0] * a + pad.normal.f[1] * b + pad.normal.f[2] * c;
//
// for (i = 0; loopprop->rooms[i] != -1; i++) {
// f32 a;
// f32 b;
// f32 c;
// f32 f20;
//
// a = g_Rooms[loopprop->rooms[i]].centre.f[0] - pad.pos.f[0];
// b = g_Rooms[loopprop->rooms[i]].centre.f[1] - pad.pos.f[1];
// c = g_Rooms[loopprop->rooms[i]].centre.f[2] - pad.pos.f[2];
//
// f20 = pad.normal.f[0] * a + pad.normal.f[1] * b + pad.normal.f[2] * c;
//
// // e1c
// if ((f22 < 0.0f && f22 < 0.0f) || (f22 > 0.0f && f20 > 0.0f)) {
// s32 value1 = func0f000c54(loopprop->rooms[i]);
// s32 value2 = func0f000b24(loopprop->rooms[i]);
// s32 sum = value2 + value1;
//
// if (sum > 255) {
// sum = 255;
// }
//
// s5++;
// s3 += value2;
// s4 += value1;
// s2 += sum;
// }
// }
// }
// }
// }
//
// sibling = sibling->sibling;
//
// if (sibling == door) {
// break;
// }
// }
//
// if (s5 == 0) {
// s1 = func0f068b14(prop->rooms, 0);
// v1 = func0f068b14(prop->rooms, 1);
// } else {
// s1 = s3 / s5;
// v1 = s4 / s5;
// }
//
// if (arg1 != NULL) {
// *arg1 = s1;
// }
//
// if (arg2 != NULL) {
// *arg2 = v1;
// }
//
// if (s1 + v1 < 255) {
// result = s1 + v1;
// } else {
// result = 255;
// }
//
// return result;
//}
s32 func0f068fc8(struct prop *prop, bool arg1)
{
struct defaultobj *obj = prop->obj;
s32 actual = 0;
s32 extra = 0;
s32 *actualptr;
s32 *extraptr;
if (prop->rooms[0] == -1) {
actual = random() % 255;
extra = 0;
} else if (obj->type == OBJTYPE_DOOR) {
struct doorobj *door = (struct doorobj *)obj;
if (g_Vars.normmplayerisrunning) {
actual = 255;
} else {
actualptr = arg1 == 0 ? &actual : NULL;
extraptr = arg1 == 1 ? &extra : NULL;
func0f068c04(prop, actualptr, extraptr);
if (g_Vars.coopplayernum >= 0 || g_Vars.antiplayernum >= 0) {
if (g_Vars.currentplayernum == 1) {
if (actualptr) {
door->actual1 = actual & 0xff;
}
if (extraptr) {
door->extra1 = extra & 0xff;
}
} else {
if (actualptr) {
door->actual2 = actual & 0xff;
}
if (extraptr) {
door->extra2 = extra & 0xff;
}
}
}
}
} else {
actual = func0f068b14(prop->rooms, 0);
extra = func0f068b14(prop->rooms, 1);
}
if (arg1 == 0) {
return actual;
}
if (arg1 == 1) {
return extra;
}
return 255;
}
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel func0f069144
.late_rodata
glabel var7f1aa1d4
.word 0x39cd9a67
glabel var7f1aa1d8
.word 0x3f666666
.text
/* f069144: 27bdff90 */ addiu $sp,$sp,-112
/* f069148: afb00018 */ sw $s0,0x18($sp)
/* f06914c: 00a08025 */ or $s0,$a1,$zero
/* f069150: afa40070 */ sw $a0,0x70($sp)
/* f069154: afbf001c */ sw $ra,0x1c($sp)
/* f069158: 3c047f1b */ lui $a0,%hi(var7f1a9f6c)
/* f06915c: 3c058007 */ lui $a1,%hi(var80069978)
/* f069160: afa60078 */ sw $a2,0x78($sp)
/* f069164: 24a59978 */ addiu $a1,$a1,%lo(var80069978)
/* f069168: 0c0036cc */ jal mainOverrideVariable
/* f06916c: 24849f6c */ addiu $a0,$a0,%lo(var7f1a9f6c)
/* f069170: 3c047f1b */ lui $a0,%hi(var7f1a9f74)
/* f069174: 3c058007 */ lui $a1,%hi(var8006997c)
/* f069178: 24a5997c */ addiu $a1,$a1,%lo(var8006997c)
/* f06917c: 0c0036cc */ jal mainOverrideVariable
/* f069180: 24849f74 */ addiu $a0,$a0,%lo(var7f1a9f74)
/* f069184: 8fae0070 */ lw $t6,0x70($sp)
/* f069188: 24010001 */ addiu $at,$zero,0x1
/* f06918c: 8faf0070 */ lw $t7,0x70($sp)
/* f069190: 91c20000 */ lbu $v0,0x0($t6)
/* f069194: 8fb80070 */ lw $t8,0x70($sp)
/* f069198: 10410005 */ beq $v0,$at,.L0f0691b0
/* f06919c: 24010004 */ addiu $at,$zero,0x4
/* f0691a0: 10410003 */ beq $v0,$at,.L0f0691b0
/* f0691a4: 24010002 */ addiu $at,$zero,0x2
/* f0691a8: 14410003 */ bne $v0,$at,.L0f0691b8
/* f0691ac: 00003025 */ or $a2,$zero,$zero
.L0f0691b0:
/* f0691b0: 10000001 */ b .L0f0691b8
/* f0691b4: 8de60004 */ lw $a2,0x4($t7)
.L0f0691b8:
/* f0691b8: 24010003 */ addiu $at,$zero,0x3
/* f0691bc: 14410005 */ bne $v0,$at,.L0f0691d4
/* f0691c0: 00000000 */ nop
/* f0691c4: 8f020004 */ lw $v0,0x4($t8)
/* f0691c8: 9059032e */ lbu $t9,0x32e($v0)
/* f0691cc: 332effdf */ andi $t6,$t9,0xffdf
/* f0691d0: a04e032e */ sb $t6,0x32e($v0)
.L0f0691d4:
/* f0691d4: 10c0000b */ beqz $a2,.L0f069204
/* f0691d8: 97a2007a */ lhu $v0,0x7a($sp)
/* f0691dc: 8ccf0008 */ lw $t7,0x8($a2)
/* f0691e0: 240700ff */ addiu $a3,$zero,0xff
/* f0691e4: 31f80400 */ andi $t8,$t7,0x400
/* f0691e8: 53000007 */ beqzl $t8,.L0f069208
/* f0691ec: 00021a03 */ sra $v1,$v0,0x8
/* f0691f0: a2070000 */ sb $a3,0x0($s0)
/* f0691f4: a2070001 */ sb $a3,0x1($s0)
/* f0691f8: a2070002 */ sb $a3,0x2($s0)
/* f0691fc: 10000011 */ b .L0f069244
/* f069200: a2070003 */ sb $a3,0x3($s0)
.L0f069204:
/* f069204: 00021a03 */ sra $v1,$v0,0x8
.L0f069208:
/* f069208: 306e000f */ andi $t6,$v1,0xf
/* f06920c: 000e7900 */ sll $t7,$t6,0x4
/* f069210: 01eec025 */ or $t8,$t7,$t6
/* f069214: 00022103 */ sra $a0,$v0,0x4
/* f069218: 308e000f */ andi $t6,$a0,0xf
/* f06921c: a2180000 */ sb $t8,0x0($s0)
/* f069220: 000e7900 */ sll $t7,$t6,0x4
/* f069224: 01eec025 */ or $t8,$t7,$t6
/* f069228: 3059000f */ andi $t9,$v0,0xf
/* f06922c: 00197100 */ sll $t6,$t9,0x4
/* f069230: 240700ff */ addiu $a3,$zero,0xff
/* f069234: 01d97825 */ or $t7,$t6,$t9
/* f069238: a2180001 */ sb $t8,0x1($s0)
/* f06923c: a20f0002 */ sb $t7,0x2($s0)
/* f069240: a2070003 */ sb $a3,0x3($s0)
.L0f069244:
/* f069244: 50c0000a */ beqzl $a2,.L0f069270
/* f069248: 8fa40070 */ lw $a0,0x70($sp)
/* f06924c: 8cd80008 */ lw $t8,0x8($a2)
/* f069250: 33191000 */ andi $t9,$t8,0x1000
/* f069254: 53200006 */ beqzl $t9,.L0f069270
/* f069258: 8fa40070 */ lw $a0,0x70($sp)
/* f06925c: 0fc41b99 */ jal cheatIsActive
/* f069260: 24040015 */ addiu $a0,$zero,0x15
/* f069264: 50400065 */ beqzl $v0,.L0f0693fc
/* f069268: 920a0002 */ lbu $t2,0x2($s0)
/* f06926c: 8fa40070 */ lw $a0,0x70($sp)
.L0f069270:
/* f069270: 0fc1a3f2 */ jal func0f068fc8
/* f069274: 00002825 */ or $a1,$zero,$zero
/* f069278: 44822000 */ mtc1 $v0,$f4
/* f06927c: 3c017f1b */ lui $at,%hi(var7f1aa1d4)
/* f069280: c428a1d4 */ lwc1 $f8,%lo(var7f1aa1d4)($at)
/* f069284: 468021a0 */ cvt.s.w $f6,$f4
/* f069288: 3c013f80 */ lui $at,0x3f80
/* f06928c: 44818000 */ mtc1 $at,$f16
/* f069290: 8fae0070 */ lw $t6,0x70($sp)
/* f069294: afa20058 */ sw $v0,0x58($sp)
/* f069298: afa20054 */ sw $v0,0x54($sp)
/* f06929c: 46083282 */ mul.s $f10,$f6,$f8
/* f0692a0: afa20050 */ sw $v0,0x50($sp)
/* f0692a4: 27a50058 */ addiu $a1,$sp,0x58
/* f0692a8: 27a60054 */ addiu $a2,$sp,0x54
/* f0692ac: 27a70050 */ addiu $a3,$sp,0x50
/* f0692b0: 460a8481 */ sub.s $f18,$f16,$f10
/* f0692b4: e7b2005c */ swc1 $f18,0x5c($sp)
/* f0692b8: 0fc6192e */ jal scenarioHighlightRoom
/* f0692bc: 85c40028 */ lh $a0,0x28($t6)
/* f0692c0: 920f0000 */ lbu $t7,0x0($s0)
/* f0692c4: 8fb80058 */ lw $t8,0x58($sp)
/* f0692c8: 3c014f00 */ lui $at,0x4f00
/* f0692cc: 01f80019 */ multu $t7,$t8
/* f0692d0: 920f0001 */ lbu $t7,0x1($s0)
/* f0692d4: 0000c812 */ mflo $t9
/* f0692d8: 00197203 */ sra $t6,$t9,0x8
/* f0692dc: a20e0000 */ sb $t6,0x0($s0)
/* f0692e0: 8fb80054 */ lw $t8,0x54($sp)
/* f0692e4: 920c0000 */ lbu $t4,0x0($s0)
/* f0692e8: 01f80019 */ multu $t7,$t8
/* f0692ec: 920f0002 */ lbu $t7,0x2($s0)
/* f0692f0: 0000c812 */ mflo $t9
/* f0692f4: 00197203 */ sra $t6,$t9,0x8
/* f0692f8: a20e0001 */ sb $t6,0x1($s0)
/* f0692fc: 8fb80050 */ lw $t8,0x50($sp)
/* f069300: 920d0001 */ lbu $t5,0x1($s0)
/* f069304: 01f80019 */ multu $t7,$t8
/* f069308: 000cc080 */ sll $t8,$t4,0x2
/* f06930c: 030cc021 */ addu $t8,$t8,$t4
/* f069310: 0018c100 */ sll $t8,$t8,0x4
/* f069314: 030cc023 */ subu $t8,$t8,$t4
/* f069318: 0000c812 */ mflo $t9
/* f06931c: 00197203 */ sra $t6,$t9,0x8
/* f069320: 31ca00ff */ andi $t2,$t6,0xff
/* f069324: a20e0002 */ sb $t6,0x2($s0)
/* f069328: 000a7880 */ sll $t7,$t2,0x2
/* f06932c: 01ea7821 */ addu $t7,$t7,$t2
/* f069330: 000d7080 */ sll $t6,$t5,0x2
/* f069334: 000f7880 */ sll $t7,$t7,0x2
/* f069338: 01cd7021 */ addu $t6,$t6,$t5
/* f06933c: 000e70c0 */ sll $t6,$t6,0x3
/* f069340: 01ea7821 */ addu $t7,$t7,$t2
/* f069344: 01f8c821 */ addu $t9,$t7,$t8
/* f069348: 01cd7023 */ subu $t6,$t6,$t5
/* f06934c: 000e7080 */ sll $t6,$t6,0x2
/* f069350: 032e1021 */ addu $v0,$t9,$t6
/* f069354: 00027a03 */ sra $t7,$v0,0x8
/* f069358: 241800ff */ addiu $t8,$zero,0xff
/* f06935c: 030fc823 */ subu $t9,$t8,$t7
/* f069360: 44992000 */ mtc1 $t9,$f4
/* f069364: c7a8005c */ lwc1 $f8,0x5c($sp)
/* f069368: 240f0001 */ addiu $t7,$zero,0x1
/* f06936c: 468021a0 */ cvt.s.w $f6,$f4
/* f069370: 46083402 */ mul.s $f16,$f6,$f8
/* f069374: 444ef800 */ cfc1 $t6,$31
/* f069378: 44cff800 */ ctc1 $t7,$31
/* f06937c: 00000000 */ nop
/* f069380: 460082a4 */ cvt.w.s $f10,$f16
/* f069384: 444ff800 */ cfc1 $t7,$31
/* f069388: 00000000 */ nop
/* f06938c: 31ef0078 */ andi $t7,$t7,0x78
/* f069390: 51e00013 */ beqzl $t7,.L0f0693e0
/* f069394: 440f5000 */ mfc1 $t7,$f10
/* f069398: 44815000 */ mtc1 $at,$f10
/* f06939c: 240f0001 */ addiu $t7,$zero,0x1
/* f0693a0: 460a8281 */ sub.s $f10,$f16,$f10
/* f0693a4: 44cff800 */ ctc1 $t7,$31
/* f0693a8: 00000000 */ nop
/* f0693ac: 460052a4 */ cvt.w.s $f10,$f10
/* f0693b0: 444ff800 */ cfc1 $t7,$31
/* f0693b4: 00000000 */ nop
/* f0693b8: 31ef0078 */ andi $t7,$t7,0x78
/* f0693bc: 15e00005 */ bnez $t7,.L0f0693d4
/* f0693c0: 00000000 */ nop
/* f0693c4: 440f5000 */ mfc1 $t7,$f10
/* f0693c8: 3c018000 */ lui $at,0x8000
/* f0693cc: 10000007 */ b .L0f0693ec
/* f0693d0: 01e17825 */ or $t7,$t7,$at
.L0f0693d4:
/* f0693d4: 10000005 */ b .L0f0693ec
/* f0693d8: 240fffff */ addiu $t7,$zero,-1
/* f0693dc: 440f5000 */ mfc1 $t7,$f10
.L0f0693e0:
/* f0693e0: 00000000 */ nop
/* f0693e4: 05e0fffb */ bltz $t7,.L0f0693d4
/* f0693e8: 00000000 */ nop
.L0f0693ec:
/* f0693ec: 44cef800 */ ctc1 $t6,$31
/* f0693f0: 1000003e */ b .L0f0694ec
/* f0693f4: a20f0003 */ sb $t7,0x3($s0)
/* f0693f8: 920a0002 */ lbu $t2,0x2($s0)
.L0f0693fc:
/* f0693fc: 920c0000 */ lbu $t4,0x0($s0)
/* f069400: 920d0001 */ lbu $t5,0x1($s0)
/* f069404: 000ac080 */ sll $t8,$t2,0x2
/* f069408: 000cc880 */ sll $t9,$t4,0x2
/* f06940c: 030ac021 */ addu $t8,$t8,$t2
/* f069410: 032cc821 */ addu $t9,$t9,$t4
/* f069414: 000d7880 */ sll $t7,$t5,0x2
/* f069418: 0019c900 */ sll $t9,$t9,0x4
/* f06941c: 0018c080 */ sll $t8,$t8,0x2
/* f069420: 01ed7821 */ addu $t7,$t7,$t5
/* f069424: 000f78c0 */ sll $t7,$t7,0x3
/* f069428: 030ac021 */ addu $t8,$t8,$t2
/* f06942c: 032cc823 */ subu $t9,$t9,$t4
/* f069430: 03197021 */ addu $t6,$t8,$t9
/* f069434: 01ed7823 */ subu $t7,$t7,$t5
/* f069438: 000f7880 */ sll $t7,$t7,0x2
/* f06943c: 01cf1021 */ addu $v0,$t6,$t7
/* f069440: 0002c203 */ sra $t8,$v0,0x8
/* f069444: 241900ff */ addiu $t9,$zero,0xff
/* f069448: 03387023 */ subu $t6,$t9,$t8
/* f06944c: 448e9000 */ mtc1 $t6,$f18
/* f069450: 3c017f1b */ lui $at,%hi(var7f1aa1d8)
/* f069454: c426a1d8 */ lwc1 $f6,%lo(var7f1aa1d8)($at)
/* f069458: 46809120 */ cvt.s.w $f4,$f18
/* f06945c: 24180001 */ addiu $t8,$zero,0x1
/* f069460: 3c014f00 */ lui $at,0x4f00
/* f069464: 46062202 */ mul.s $f8,$f4,$f6
/* f069468: 444ff800 */ cfc1 $t7,$31
/* f06946c: 44d8f800 */ ctc1 $t8,$31
/* f069470: 00000000 */ nop
/* f069474: 46004424 */ cvt.w.s $f16,$f8
/* f069478: 4458f800 */ cfc1 $t8,$31
/* f06947c: 00000000 */ nop
/* f069480: 33180078 */ andi $t8,$t8,0x78
/* f069484: 53000013 */ beqzl $t8,.L0f0694d4
/* f069488: 44188000 */ mfc1 $t8,$f16
/* f06948c: 44818000 */ mtc1 $at,$f16
/* f069490: 24180001 */ addiu $t8,$zero,0x1
/* f069494: 46104401 */ sub.s $f16,$f8,$f16
/* f069498: 44d8f800 */ ctc1 $t8,$31
/* f06949c: 00000000 */ nop
/* f0694a0: 46008424 */ cvt.w.s $f16,$f16
/* f0694a4: 4458f800 */ cfc1 $t8,$31
/* f0694a8: 00000000 */ nop
/* f0694ac: 33180078 */ andi $t8,$t8,0x78
/* f0694b0: 17000005 */ bnez $t8,.L0f0694c8
/* f0694b4: 00000000 */ nop
/* f0694b8: 44188000 */ mfc1 $t8,$f16
/* f0694bc: 3c018000 */ lui $at,0x8000
/* f0694c0: 10000007 */ b .L0f0694e0
/* f0694c4: 0301c025 */ or $t8,$t8,$at
.L0f0694c8:
/* f0694c8: 10000005 */ b .L0f0694e0
/* f0694cc: 2418ffff */ addiu $t8,$zero,-1
/* f0694d0: 44188000 */ mfc1 $t8,$f16
.L0f0694d4:
/* f0694d4: 00000000 */ nop
/* f0694d8: 0700fffb */ bltz $t8,.L0f0694c8
/* f0694dc: 00000000 */ nop
.L0f0694e0:
/* f0694e0: 44cff800 */ ctc1 $t7,$31
/* f0694e4: a2180003 */ sb $t8,0x3($s0)
/* f0694e8: 00000000 */ nop
.L0f0694ec:
/* f0694ec: 018d082a */ slt $at,$t4,$t5
/* f0694f0: 00001025 */ or $v0,$zero,$zero
/* f0694f4: 10200003 */ beqz $at,.L0f069504
/* f0694f8: 00005825 */ or $t3,$zero,$zero
/* f0694fc: 10000002 */ b .L0f069508
/* f069500: 24020001 */ addiu $v0,$zero,0x1
.L0f069504:
/* f069504: 240b0001 */ addiu $t3,$zero,0x1
.L0f069508:
/* f069508: 02024821 */ addu $t1,$s0,$v0
/* f06950c: 91260000 */ lbu $a2,0x0($t1)
/* f069510: 00402825 */ or $a1,$v0,$zero
/* f069514: 020bc821 */ addu $t9,$s0,$t3
/* f069518: 00ca082a */ slt $at,$a2,$t2
/* f06951c: 50200005 */ beqzl $at,.L0f069534
/* f069520: 932e0000 */ lbu $t6,0x0($t9)
/* f069524: 26090002 */ addiu $t1,$s0,0x2
/* f069528: 10000009 */ b .L0f069550
/* f06952c: 91260000 */ lbu $a2,0x0($t1)
/* f069530: 932e0000 */ lbu $t6,0x0($t9)
.L0f069534:
/* f069534: 01602825 */ or $a1,$t3,$zero
/* f069538: 01ca082a */ slt $at,$t6,$t2
/* f06953c: 50200004 */ beqzl $at,.L0f069550
/* f069540: 240b0002 */ addiu $t3,$zero,0x2
/* f069544: 10000002 */ b .L0f069550
/* f069548: 24050002 */ addiu $a1,$zero,0x2
/* f06954c: 240b0002 */ addiu $t3,$zero,0x2
.L0f069550:
/* f069550: 18c0001b */ blez $a2,.L0f0695c0
/* f069554: 02051821 */ addu $v1,$s0,$a1
/* f069558: 020b1021 */ addu $v0,$s0,$t3
/* f06955c: 904f0000 */ lbu $t7,0x0($v0)
/* f069560: 90780000 */ lbu $t8,0x0($v1)
/* f069564: a0400000 */ sb $zero,0x0($v0)
/* f069568: 00cf2023 */ subu $a0,$a2,$t7
/* f06956c: 03040019 */ multu $t8,$a0
/* f069570: 00804025 */ or $t0,$a0,$zero
/* f069574: 0000c812 */ mflo $t9
/* f069578: 00000000 */ nop
/* f06957c: 00000000 */ nop
/* f069580: 0326001a */ div $zero,$t9,$a2
/* f069584: 00003812 */ mflo $a3
/* f069588: a0670000 */ sb $a3,0x0($v1)
/* f06958c: a1240000 */ sb $a0,0x0($t1)
/* f069590: 14c00002 */ bnez $a2,.L0f06959c
/* f069594: 00000000 */ nop
/* f069598: 0007000d */ break 0x7
.L0f06959c:
/* f06959c: 2401ffff */ addiu $at,$zero,-1
/* f0695a0: 14c10004 */ bne $a2,$at,.L0f0695b4
/* f0695a4: 3c018000 */ lui $at,0x8000
/* f0695a8: 17210002 */ bne $t9,$at,.L0f0695b4
/* f0695ac: 00000000 */ nop
/* f0695b0: 0006000d */ break 0x6
.L0f0695b4:
/* f0695b4: 920a0002 */ lbu $t2,0x2($s0)
/* f0695b8: 920d0001 */ lbu $t5,0x1($s0)
/* f0695bc: 920c0000 */ lbu $t4,0x0($s0)
.L0f0695c0:
/* f0695c0: 000c7042 */ srl $t6,$t4,0x1
/* f0695c4: 000d7842 */ srl $t7,$t5,0x1
/* f0695c8: 000ac042 */ srl $t8,$t2,0x1
/* f0695cc: a20e0000 */ sb $t6,0x0($s0)
/* f0695d0: a20f0001 */ sb $t7,0x1($s0)
/* f0695d4: a2180002 */ sb $t8,0x2($s0)
/* f0695d8: 3c198007 */ lui $t9,%hi(var80069978)
/* f0695dc: 8f399978 */ lw $t9,%lo(var80069978)($t9)
/* f0695e0: 3c0e8007 */ lui $t6,%hi(var8006997c)
/* f0695e4: 3c0f8007 */ lui $t7,%hi(var80069978)
/* f0695e8: 17200004 */ bnez $t9,.L0f0695fc
/* f0695ec: 3c028007 */ lui $v0,%hi(var80069978+0x3)
/* f0695f0: 8dce997c */ lw $t6,%lo(var8006997c)($t6)
/* f0695f4: 51c0000a */ beqzl $t6,.L0f069620
/* f0695f8: 8fbf001c */ lw $ra,0x1c($sp)
.L0f0695fc:
/* f0695fc: 9042997b */ lbu $v0,%lo(var80069978+0x3)($v0)
/* f069600: 8def9978 */ lw $t7,%lo(var80069978)($t7)
/* f069604: 3c188007 */ lui $t8,%hi(var8006997c)
/* f069608: a2020000 */ sb $v0,0x0($s0)
/* f06960c: a2020001 */ sb $v0,0x1($s0)
/* f069610: a20f0002 */ sb $t7,0x2($s0)
/* f069614: 8f18997c */ lw $t8,%lo(var8006997c)($t8)
/* f069618: a2180003 */ sb $t8,0x3($s0)
/* f06961c: 8fbf001c */ lw $ra,0x1c($sp)
.L0f069620:
/* f069620: 8fb00018 */ lw $s0,0x18($sp)
/* f069624: 27bd0070 */ addiu $sp,$sp,0x70
/* f069628: 03e00008 */ jr $ra
/* f06962c: 00000000 */ nop
);
#else
GLOBAL_ASM(
glabel func0f069144
.late_rodata
glabel var7f1aa1d4
.word 0x39cd9a67
glabel var7f1aa1d8
.word 0x3f666666
.text
/* f0683c4: 27bdff90 */ addiu $sp,$sp,-112
/* f0683c8: afb00018 */ sw $s0,0x18($sp)
/* f0683cc: 00a08025 */ or $s0,$a1,$zero
/* f0683d0: afa40070 */ sw $a0,0x70($sp)
/* f0683d4: afbf001c */ sw $ra,0x1c($sp)
/* f0683d8: 3c047f1a */ lui $a0,0x7f1a
/* f0683dc: 3c058007 */ lui $a1,0x8007
/* f0683e0: afa60078 */ sw $a2,0x78($sp)
/* f0683e4: 24a5c078 */ addiu $a1,$a1,-16264
/* f0683e8: 0c00381c */ jal mainOverrideVariable
/* f0683ec: 2484428c */ addiu $a0,$a0,0x428c
/* f0683f0: 3c047f1a */ lui $a0,0x7f1a
/* f0683f4: 3c058007 */ lui $a1,0x8007
/* f0683f8: 24a5c07c */ addiu $a1,$a1,-16260
/* f0683fc: 0c00381c */ jal mainOverrideVariable
/* f068400: 24844294 */ addiu $a0,$a0,0x4294
/* f068404: 8fae0070 */ lw $t6,0x70($sp)
/* f068408: 24010001 */ addiu $at,$zero,0x1
/* f06840c: 8faf0070 */ lw $t7,0x70($sp)
/* f068410: 91c20000 */ lbu $v0,0x0($t6)
/* f068414: 8fb80070 */ lw $t8,0x70($sp)
/* f068418: 10410005 */ beq $v0,$at,.NB0f068430
/* f06841c: 24010004 */ addiu $at,$zero,0x4
/* f068420: 10410003 */ beq $v0,$at,.NB0f068430
/* f068424: 24010002 */ addiu $at,$zero,0x2
/* f068428: 14410003 */ bne $v0,$at,.NB0f068438
/* f06842c: 00003025 */ or $a2,$zero,$zero
.NB0f068430:
/* f068430: 10000001 */ beqz $zero,.NB0f068438
/* f068434: 8de60004 */ lw $a2,0x4($t7)
.NB0f068438:
/* f068438: 24010003 */ addiu $at,$zero,0x3
/* f06843c: 14410005 */ bne $v0,$at,.NB0f068454
/* f068440: 00000000 */ sll $zero,$zero,0x0
/* f068444: 8f020004 */ lw $v0,0x4($t8)
/* f068448: 9059032e */ lbu $t9,0x32e($v0)
/* f06844c: 332effdf */ andi $t6,$t9,0xffdf
/* f068450: a04e032e */ sb $t6,0x32e($v0)
.NB0f068454:
/* f068454: 10c0000b */ beqz $a2,.NB0f068484
/* f068458: 97a2007a */ lhu $v0,0x7a($sp)
/* f06845c: 8ccf0008 */ lw $t7,0x8($a2)
/* f068460: 240700ff */ addiu $a3,$zero,0xff
/* f068464: 31f80400 */ andi $t8,$t7,0x400
/* f068468: 53000007 */ beqzl $t8,.NB0f068488
/* f06846c: 00021a03 */ sra $v1,$v0,0x8
/* f068470: a2070000 */ sb $a3,0x0($s0)
/* f068474: a2070001 */ sb $a3,0x1($s0)
/* f068478: a2070002 */ sb $a3,0x2($s0)
/* f06847c: 10000011 */ beqz $zero,.NB0f0684c4
/* f068480: a2070003 */ sb $a3,0x3($s0)
.NB0f068484:
/* f068484: 00021a03 */ sra $v1,$v0,0x8
.NB0f068488:
/* f068488: 306e000f */ andi $t6,$v1,0xf
/* f06848c: 000e7900 */ sll $t7,$t6,0x4
/* f068490: 01eec025 */ or $t8,$t7,$t6
/* f068494: 00022103 */ sra $a0,$v0,0x4
/* f068498: 308e000f */ andi $t6,$a0,0xf
/* f06849c: a2180000 */ sb $t8,0x0($s0)
/* f0684a0: 000e7900 */ sll $t7,$t6,0x4
/* f0684a4: 01eec025 */ or $t8,$t7,$t6
/* f0684a8: 3059000f */ andi $t9,$v0,0xf
/* f0684ac: 00197100 */ sll $t6,$t9,0x4
/* f0684b0: 240700ff */ addiu $a3,$zero,0xff
/* f0684b4: 01d97825 */ or $t7,$t6,$t9
/* f0684b8: a2180001 */ sb $t8,0x1($s0)
/* f0684bc: a20f0002 */ sb $t7,0x2($s0)
/* f0684c0: a2070003 */ sb $a3,0x3($s0)
.NB0f0684c4:
/* f0684c4: 10c00005 */ beqz $a2,.NB0f0684dc
/* f0684c8: 8fa40070 */ lw $a0,0x70($sp)
/* f0684cc: 8cd80008 */ lw $t8,0x8($a2)
/* f0684d0: 33191000 */ andi $t9,$t8,0x1000
/* f0684d4: 57200064 */ bnezl $t9,.NB0f068668
/* f0684d8: 920a0002 */ lbu $t2,0x2($s0)
.NB0f0684dc:
/* f0684dc: 0fc1a092 */ jal func0f068fc8
/* f0684e0: 00002825 */ or $a1,$zero,$zero
/* f0684e4: 44822000 */ mtc1 $v0,$f4
/* f0684e8: 3c017f1a */ lui $at,0x7f1a
/* f0684ec: c42844f4 */ lwc1 $f8,0x44f4($at)
/* f0684f0: 468021a0 */ cvt.s.w $f6,$f4
/* f0684f4: 3c013f80 */ lui $at,0x3f80
/* f0684f8: 44818000 */ mtc1 $at,$f16
/* f0684fc: 8fae0070 */ lw $t6,0x70($sp)
/* f068500: afa20058 */ sw $v0,0x58($sp)
/* f068504: afa20054 */ sw $v0,0x54($sp)
/* f068508: 46083282 */ mul.s $f10,$f6,$f8
/* f06850c: afa20050 */ sw $v0,0x50($sp)
/* f068510: 27a50058 */ addiu $a1,$sp,0x58
/* f068514: 27a60054 */ addiu $a2,$sp,0x54
/* f068518: 27a70050 */ addiu $a3,$sp,0x50
/* f06851c: 460a8481 */ sub.s $f18,$f16,$f10
/* f068520: e7b2005c */ swc1 $f18,0x5c($sp)
/* f068524: 0fc60248 */ jal scenarioHighlightRoom
/* f068528: 85c40028 */ lh $a0,0x28($t6)
/* f06852c: 920f0000 */ lbu $t7,0x0($s0)
/* f068530: 8fb80058 */ lw $t8,0x58($sp)
/* f068534: 3c014f00 */ lui $at,0x4f00
/* f068538: 01f80019 */ multu $t7,$t8
/* f06853c: 920f0001 */ lbu $t7,0x1($s0)
/* f068540: 0000c812 */ mflo $t9
/* f068544: 00197203 */ sra $t6,$t9,0x8
/* f068548: a20e0000 */ sb $t6,0x0($s0)
/* f06854c: 8fb80054 */ lw $t8,0x54($sp)
/* f068550: 920c0000 */ lbu $t4,0x0($s0)
/* f068554: 01f80019 */ multu $t7,$t8
/* f068558: 920f0002 */ lbu $t7,0x2($s0)
/* f06855c: 0000c812 */ mflo $t9
/* f068560: 00197203 */ sra $t6,$t9,0x8
/* f068564: a20e0001 */ sb $t6,0x1($s0)
/* f068568: 8fb80050 */ lw $t8,0x50($sp)
/* f06856c: 920d0001 */ lbu $t5,0x1($s0)
/* f068570: 01f80019 */ multu $t7,$t8
/* f068574: 000cc080 */ sll $t8,$t4,0x2
/* f068578: 030cc021 */ addu $t8,$t8,$t4
/* f06857c: 0018c100 */ sll $t8,$t8,0x4
/* f068580: 030cc023 */ subu $t8,$t8,$t4
/* f068584: 0000c812 */ mflo $t9
/* f068588: 00197203 */ sra $t6,$t9,0x8
/* f06858c: 31ca00ff */ andi $t2,$t6,0xff
/* f068590: a20e0002 */ sb $t6,0x2($s0)
/* f068594: 000a7880 */ sll $t7,$t2,0x2
/* f068598: 01ea7821 */ addu $t7,$t7,$t2
/* f06859c: 000d7080 */ sll $t6,$t5,0x2
/* f0685a0: 000f7880 */ sll $t7,$t7,0x2
/* f0685a4: 01cd7021 */ addu $t6,$t6,$t5
/* f0685a8: 000e70c0 */ sll $t6,$t6,0x3
/* f0685ac: 01ea7821 */ addu $t7,$t7,$t2
/* f0685b0: 01f8c821 */ addu $t9,$t7,$t8
/* f0685b4: 01cd7023 */ subu $t6,$t6,$t5
/* f0685b8: 000e7080 */ sll $t6,$t6,0x2
/* f0685bc: 032e1021 */ addu $v0,$t9,$t6
/* f0685c0: 00027a03 */ sra $t7,$v0,0x8
/* f0685c4: 241800ff */ addiu $t8,$zero,0xff
/* f0685c8: 030fc823 */ subu $t9,$t8,$t7
/* f0685cc: 44992000 */ mtc1 $t9,$f4
/* f0685d0: c7a8005c */ lwc1 $f8,0x5c($sp)
/* f0685d4: 240f0001 */ addiu $t7,$zero,0x1
/* f0685d8: 468021a0 */ cvt.s.w $f6,$f4
/* f0685dc: 46083402 */ mul.s $f16,$f6,$f8
/* f0685e0: 444ef800 */ cfc1 $t6,$31
/* f0685e4: 44cff800 */ ctc1 $t7,$31
/* f0685e8: 00000000 */ sll $zero,$zero,0x0
/* f0685ec: 460082a4 */ cvt.w.s $f10,$f16
/* f0685f0: 444ff800 */ cfc1 $t7,$31
/* f0685f4: 00000000 */ sll $zero,$zero,0x0
/* f0685f8: 31ef0078 */ andi $t7,$t7,0x78
/* f0685fc: 51e00013 */ beqzl $t7,.NB0f06864c
/* f068600: 440f5000 */ mfc1 $t7,$f10
/* f068604: 44815000 */ mtc1 $at,$f10
/* f068608: 240f0001 */ addiu $t7,$zero,0x1
/* f06860c: 460a8281 */ sub.s $f10,$f16,$f10
/* f068610: 44cff800 */ ctc1 $t7,$31
/* f068614: 00000000 */ sll $zero,$zero,0x0
/* f068618: 460052a4 */ cvt.w.s $f10,$f10
/* f06861c: 444ff800 */ cfc1 $t7,$31
/* f068620: 00000000 */ sll $zero,$zero,0x0
/* f068624: 31ef0078 */ andi $t7,$t7,0x78
/* f068628: 15e00005 */ bnez $t7,.NB0f068640
/* f06862c: 00000000 */ sll $zero,$zero,0x0
/* f068630: 440f5000 */ mfc1 $t7,$f10
/* f068634: 3c018000 */ lui $at,0x8000
/* f068638: 10000007 */ beqz $zero,.NB0f068658
/* f06863c: 01e17825 */ or $t7,$t7,$at
.NB0f068640:
/* f068640: 10000005 */ beqz $zero,.NB0f068658
/* f068644: 240fffff */ addiu $t7,$zero,-1
/* f068648: 440f5000 */ mfc1 $t7,$f10
.NB0f06864c:
/* f06864c: 00000000 */ sll $zero,$zero,0x0
/* f068650: 05e0fffb */ bltz $t7,.NB0f068640
/* f068654: 00000000 */ sll $zero,$zero,0x0
.NB0f068658:
/* f068658: 44cef800 */ ctc1 $t6,$31
/* f06865c: 1000003e */ beqz $zero,.NB0f068758
/* f068660: a20f0003 */ sb $t7,0x3($s0)
/* f068664: 920a0002 */ lbu $t2,0x2($s0)
.NB0f068668:
/* f068668: 920c0000 */ lbu $t4,0x0($s0)
/* f06866c: 920d0001 */ lbu $t5,0x1($s0)
/* f068670: 000ac080 */ sll $t8,$t2,0x2
/* f068674: 000cc880 */ sll $t9,$t4,0x2
/* f068678: 030ac021 */ addu $t8,$t8,$t2
/* f06867c: 032cc821 */ addu $t9,$t9,$t4
/* f068680: 000d7880 */ sll $t7,$t5,0x2
/* f068684: 0019c900 */ sll $t9,$t9,0x4
/* f068688: 0018c080 */ sll $t8,$t8,0x2
/* f06868c: 01ed7821 */ addu $t7,$t7,$t5
/* f068690: 000f78c0 */ sll $t7,$t7,0x3
/* f068694: 030ac021 */ addu $t8,$t8,$t2
/* f068698: 032cc823 */ subu $t9,$t9,$t4
/* f06869c: 03197021 */ addu $t6,$t8,$t9
/* f0686a0: 01ed7823 */ subu $t7,$t7,$t5
/* f0686a4: 000f7880 */ sll $t7,$t7,0x2
/* f0686a8: 01cf1021 */ addu $v0,$t6,$t7
/* f0686ac: 0002c203 */ sra $t8,$v0,0x8
/* f0686b0: 241900ff */ addiu $t9,$zero,0xff
/* f0686b4: 03387023 */ subu $t6,$t9,$t8
/* f0686b8: 448e9000 */ mtc1 $t6,$f18
/* f0686bc: 3c017f1a */ lui $at,0x7f1a
/* f0686c0: c42644f8 */ lwc1 $f6,0x44f8($at)
/* f0686c4: 46809120 */ cvt.s.w $f4,$f18
/* f0686c8: 24180001 */ addiu $t8,$zero,0x1
/* f0686cc: 3c014f00 */ lui $at,0x4f00
/* f0686d0: 46062202 */ mul.s $f8,$f4,$f6
/* f0686d4: 444ff800 */ cfc1 $t7,$31
/* f0686d8: 44d8f800 */ ctc1 $t8,$31
/* f0686dc: 00000000 */ sll $zero,$zero,0x0
/* f0686e0: 46004424 */ cvt.w.s $f16,$f8
/* f0686e4: 4458f800 */ cfc1 $t8,$31
/* f0686e8: 00000000 */ sll $zero,$zero,0x0
/* f0686ec: 33180078 */ andi $t8,$t8,0x78
/* f0686f0: 53000013 */ beqzl $t8,.NB0f068740
/* f0686f4: 44188000 */ mfc1 $t8,$f16
/* f0686f8: 44818000 */ mtc1 $at,$f16
/* f0686fc: 24180001 */ addiu $t8,$zero,0x1
/* f068700: 46104401 */ sub.s $f16,$f8,$f16
/* f068704: 44d8f800 */ ctc1 $t8,$31
/* f068708: 00000000 */ sll $zero,$zero,0x0
/* f06870c: 46008424 */ cvt.w.s $f16,$f16
/* f068710: 4458f800 */ cfc1 $t8,$31
/* f068714: 00000000 */ sll $zero,$zero,0x0
/* f068718: 33180078 */ andi $t8,$t8,0x78
/* f06871c: 17000005 */ bnez $t8,.NB0f068734
/* f068720: 00000000 */ sll $zero,$zero,0x0
/* f068724: 44188000 */ mfc1 $t8,$f16
/* f068728: 3c018000 */ lui $at,0x8000
/* f06872c: 10000007 */ beqz $zero,.NB0f06874c
/* f068730: 0301c025 */ or $t8,$t8,$at
.NB0f068734:
/* f068734: 10000005 */ beqz $zero,.NB0f06874c
/* f068738: 2418ffff */ addiu $t8,$zero,-1
/* f06873c: 44188000 */ mfc1 $t8,$f16
.NB0f068740:
/* f068740: 00000000 */ sll $zero,$zero,0x0
/* f068744: 0700fffb */ bltz $t8,.NB0f068734
/* f068748: 00000000 */ sll $zero,$zero,0x0
.NB0f06874c:
/* f06874c: 44cff800 */ ctc1 $t7,$31
/* f068750: a2180003 */ sb $t8,0x3($s0)
/* f068754: 00000000 */ sll $zero,$zero,0x0
.NB0f068758:
/* f068758: 018d082a */ slt $at,$t4,$t5
/* f06875c: 00001025 */ or $v0,$zero,$zero
/* f068760: 10200003 */ beqz $at,.NB0f068770
/* f068764: 00005825 */ or $t3,$zero,$zero
/* f068768: 10000002 */ beqz $zero,.NB0f068774
/* f06876c: 24020001 */ addiu $v0,$zero,0x1
.NB0f068770:
/* f068770: 240b0001 */ addiu $t3,$zero,0x1
.NB0f068774:
/* f068774: 02024821 */ addu $t1,$s0,$v0
/* f068778: 91260000 */ lbu $a2,0x0($t1)
/* f06877c: 00402825 */ or $a1,$v0,$zero
/* f068780: 020bc821 */ addu $t9,$s0,$t3
/* f068784: 00ca082a */ slt $at,$a2,$t2
/* f068788: 50200005 */ beqzl $at,.NB0f0687a0
/* f06878c: 932e0000 */ lbu $t6,0x0($t9)
/* f068790: 26090002 */ addiu $t1,$s0,0x2
/* f068794: 10000009 */ beqz $zero,.NB0f0687bc
/* f068798: 91260000 */ lbu $a2,0x0($t1)
/* f06879c: 932e0000 */ lbu $t6,0x0($t9)
.NB0f0687a0:
/* f0687a0: 01602825 */ or $a1,$t3,$zero
/* f0687a4: 01ca082a */ slt $at,$t6,$t2
/* f0687a8: 50200004 */ beqzl $at,.NB0f0687bc
/* f0687ac: 240b0002 */ addiu $t3,$zero,0x2
/* f0687b0: 10000002 */ beqz $zero,.NB0f0687bc
/* f0687b4: 24050002 */ addiu $a1,$zero,0x2
/* f0687b8: 240b0002 */ addiu $t3,$zero,0x2
.NB0f0687bc:
/* f0687bc: 18c0001b */ blez $a2,.NB0f06882c
/* f0687c0: 02051821 */ addu $v1,$s0,$a1
/* f0687c4: 020b1021 */ addu $v0,$s0,$t3
/* f0687c8: 904f0000 */ lbu $t7,0x0($v0)
/* f0687cc: 90780000 */ lbu $t8,0x0($v1)
/* f0687d0: a0400000 */ sb $zero,0x0($v0)
/* f0687d4: 00cf2023 */ subu $a0,$a2,$t7
/* f0687d8: 03040019 */ multu $t8,$a0
/* f0687dc: 00804025 */ or $t0,$a0,$zero
/* f0687e0: 0000c812 */ mflo $t9
/* f0687e4: 00000000 */ sll $zero,$zero,0x0
/* f0687e8: 00000000 */ sll $zero,$zero,0x0
/* f0687ec: 0326001a */ div $zero,$t9,$a2
/* f0687f0: 00003812 */ mflo $a3
/* f0687f4: a0670000 */ sb $a3,0x0($v1)
/* f0687f8: a1240000 */ sb $a0,0x0($t1)
/* f0687fc: 14c00002 */ bnez $a2,.NB0f068808
/* f068800: 00000000 */ sll $zero,$zero,0x0
/* f068804: 0007000d */ break 0x7
.NB0f068808:
/* f068808: 2401ffff */ addiu $at,$zero,-1
/* f06880c: 14c10004 */ bne $a2,$at,.NB0f068820
/* f068810: 3c018000 */ lui $at,0x8000
/* f068814: 17210002 */ bne $t9,$at,.NB0f068820
/* f068818: 00000000 */ sll $zero,$zero,0x0
/* f06881c: 0006000d */ break 0x6
.NB0f068820:
/* f068820: 920a0002 */ lbu $t2,0x2($s0)
/* f068824: 920d0001 */ lbu $t5,0x1($s0)
/* f068828: 920c0000 */ lbu $t4,0x0($s0)
.NB0f06882c:
/* f06882c: 000c7042 */ srl $t6,$t4,0x1
/* f068830: 000d7842 */ srl $t7,$t5,0x1
/* f068834: 000ac042 */ srl $t8,$t2,0x1
/* f068838: a20e0000 */ sb $t6,0x0($s0)
/* f06883c: a20f0001 */ sb $t7,0x1($s0)
/* f068840: a2180002 */ sb $t8,0x2($s0)
/* f068844: 3c198007 */ lui $t9,0x8007
/* f068848: 8f39c078 */ lw $t9,-0x3f88($t9)
/* f06884c: 3c0e8007 */ lui $t6,0x8007
/* f068850: 3c0f8007 */ lui $t7,0x8007
/* f068854: 17200004 */ bnez $t9,.NB0f068868
/* f068858: 3c028007 */ lui $v0,0x8007
/* f06885c: 8dcec07c */ lw $t6,-0x3f84($t6)
/* f068860: 51c0000a */ beqzl $t6,.NB0f06888c
/* f068864: 8fbf001c */ lw $ra,0x1c($sp)
.NB0f068868:
/* f068868: 9042c07b */ lbu $v0,-0x3f85($v0)
/* f06886c: 8defc078 */ lw $t7,-0x3f88($t7)
/* f068870: 3c188007 */ lui $t8,0x8007
/* f068874: a2020000 */ sb $v0,0x0($s0)
/* f068878: a2020001 */ sb $v0,0x1($s0)
/* f06887c: a20f0002 */ sb $t7,0x2($s0)
/* f068880: 8f18c07c */ lw $t8,-0x3f84($t8)
/* f068884: a2180003 */ sb $t8,0x3($s0)
/* f068888: 8fbf001c */ lw $ra,0x1c($sp)
.NB0f06888c:
/* f06888c: 8fb00018 */ lw $s0,0x18($sp)
/* f068890: 27bd0070 */ addiu $sp,$sp,0x70
/* f068894: 03e00008 */ jr $ra
/* f068898: 00000000 */ sll $zero,$zero,0x0
);
#endif
u32 var80069978 = 0x00000000;
u32 var8006997c = 0x00000000;
//void func0f069144(struct prop *prop, u8 *nextcol, u16 floorcol)
//{
// f32 sp5C;
// s32 sp58;
// s32 sp54;
// s32 sp50;
// struct defaultobj *obj;
// s32 v0;
// s32 a0;
// s32 a1;
// s32 a2;
// s32 t3;
//
// static u32 var80069978 = 0;
// static u32 var8006997c = 0;
//
// mainOverrideVariable("scol", &var80069978);
// mainOverrideVariable("salp", &var8006997c);
//
// if (prop->type == PROPTYPE_OBJ || prop->type == PROPTYPE_WEAPON || prop->type == PROPTYPE_DOOR) {
// obj = prop->obj;
// } else {
// obj = NULL;
// }
//
// if (prop->type == PROPTYPE_CHR) {
// struct chrdata *chr = prop->chr;
// chr->unk32c_18 = false;
// }
//
// if (obj && (obj->flags & OBJFLAG_ILLUMINATED)) {
// nextcol[0] = 0xff;
// nextcol[1] = 0xff;
// nextcol[2] = 0xff;
// nextcol[3] = 0xff;
// } else {
// u8 r;
// u8 g;
// u8 b;
//
// r = (floorcol >> 8) & 0xf;
// g = (floorcol >> 4) & 0xf;
// b = (floorcol >> 0) & 0xf;
//
// nextcol[0] = (r << 4) | r;
// nextcol[1] = (g << 4) | g;
// nextcol[2] = (b << 4) | b;
// nextcol[3] = 0xff;
// }
//
//#if VERSION >= VERSION_NTSC_1_0
// if (obj == NULL || (obj->flags & OBJFLAG_00001000) == 0 || cheatIsActive(CHEAT_PERFECTDARKNESS))
//#else
// if (obj == NULL || (obj->flags & OBJFLAG_00001000) == 0)
//#endif
// {
// s32 tmp;
// s32 shade = func0f068fc8(prop, 0);
//
// sp58 = shade;
// sp54 = shade;
// sp50 = shade;
//
// sp5C = 1.0f - shade * (1.0f / 2550.0f);
//
// scenarioHighlightRoom(prop->rooms[0], &sp58, &sp54, &sp50);
//
// nextcol[0] = (nextcol[0] * sp58) >> 8;
// nextcol[1] = (nextcol[1] * sp54) >> 8;
// nextcol[2] = (nextcol[2] * sp50) >> 8;
//
// tmp = nextcol[0] * 79 + nextcol[1] * 156 + nextcol[2] * 21;
// nextcol[3] = (0xff - (tmp >> 8)) * sp5C;
// } else {
// s32 tmp = nextcol[0] * 79 + nextcol[1] * 156 + nextcol[2] * 21;
// nextcol[3] = (0xff - (tmp >> 8)) * 0.9f;
// }
//
// // 4e0
// v0 = 0;
// t3 = 0;
//
// if (nextcol[0] < nextcol[1]) {
// v0 = 1;
// } else {
// t3 = 1;
// }
//
// // 508
// a2 = nextcol[v0];
// a1 = v0;
//
// if (nextcol[v0] < nextcol[2]) {
// v0 = 2;
// a2 = nextcol[v0];
// } else {
// // 530
// a1 = t3;
//
// if (nextcol[t3] < nextcol[2]) {
// a1 = 2;
// } else {
// t3 = 2;
// }
// }
//
// // 550
// if (a2 > 0) {
// a0 = a2 - nextcol[t3];
// nextcol[t3] = 0;
// nextcol[a1] = nextcol[a1] * a0 / a2;
// nextcol[v0] = a0;
// }
//
// nextcol[0] >>= 1;
// nextcol[1] >>= 1;
// nextcol[2] >>= 1;
//
// if (var80069978 || var8006997c) {
// nextcol[0] = nextcol[1] = nextcol[2] = var80069978;
// nextcol[3] = var8006997c;
// }
//}
void func0f069630(struct prop *prop, u8 *nextcol, u16 floorcol)
{
func0f069144(prop, nextcol, floorcol);
nextcol[0] >>= 1;
nextcol[1] >>= 1;
nextcol[2] >>= 1;
if (prop->type == PROPTYPE_DOOR && (g_Vars.coopplayernum >= 0 || g_Vars.antiplayernum >= 0)) {
struct doorobj *door = prop->door;
if (g_Vars.currentplayernum == 0) {
door->shadeinfo1[0] = nextcol[0];
door->shadeinfo1[1] = nextcol[1];
door->shadeinfo1[2] = nextcol[2];
door->shadeinfo1[3] = nextcol[3];
} else {
door->shadeinfo2[0] = nextcol[0];
door->shadeinfo2[1] = nextcol[1];
door->shadeinfo2[2] = nextcol[2];
door->shadeinfo2[3] = nextcol[3];
}
}
}
/**
* Shift col to be closer to nextcol.
*
* It works by moving halfway towards the nextcol colour each time it's called.
*/
void colourTween(u8 *col, u8 *nextcol)
{
s32 i;
for (i = 0; i < 4; i++) {
s32 remaining = nextcol[i] - col[i];
s32 newcol = col[i] + (remaining >> 1);
col[i] = newcol;
}
}
void func0f069750(s32 *arg0, s32 arg1, f32 *arg2)
{
if (arg1 == 1) {
f32 tmp;
arg2[0] *= 255.0f;
arg2[1] *= 255.0f;
arg2[2] *= 255.0f;
tmp = arg0[0];
arg0[0] = tmp + (arg2[0] - tmp) * arg2[3];
tmp = arg0[1];
arg0[1] = tmp + (arg2[1] - tmp) * arg2[3];
tmp = arg0[2];
arg0[2] = tmp + (arg2[2] - tmp) * arg2[3];
tmp = arg0[3];
arg0[3] = tmp + (255.0f - tmp) * arg2[3];
}
}
struct var80069a70 var80069a70[];
void func0f069850(struct defaultobj *obj, struct coord *pos, f32 rot[3][3], struct geocyl *cyl)
{
Mtxf mtx;
struct modelrodata_bbox *bbox = objFindBboxRodata(obj);
struct modelrodata_type19 *rodata19 = NULL;
struct hoverbikeobj *hoverbike;
struct hoverpropobj *hoverprop;
mtx3ToMtx4(rot, &mtx);
mtx4SetTranslation(pos, &mtx);
if (obj->model->filedata->skel == &g_SkelHoverbike
|| obj->model->filedata->skel == &g_SkelBasic
|| obj->model->filedata->skel == &g_SkelMaianUfo
|| obj->model->filedata->skel == &g_SkelDropship) {
rodata19 = modelGetPartRodata(obj->model->filedata, MODELPART_HOVERBIKE_0064);
}
if (obj->flags3 & OBJFLAG3_GEOCYL) {
cyl->header.type = GEOTYPE_CYL;
cyl->header.flags = GEOFLAG_COLLISIONS | GEOFLAG_0008 | GEOFLAG_OPAQUE;
if (obj->type == OBJTYPE_HOVERBIKE) {
hoverbike = (struct hoverbikeobj *)obj;
cyl->ymax = hoverbike->hov.ground + var80069a70[hoverbike->hov.unk00].unk00 + modelBboxGetYMax(bbox) * obj->model->scale;
cyl->ymin = hoverbike->hov.ground + 20.0f;
} else if (obj->type == OBJTYPE_HOVERPROP) {
hoverprop = (struct hoverpropobj *)obj;
cyl->ymax = hoverprop->hov.ground + var80069a70[hoverprop->hov.unk00].unk00 + modelBboxGetYMax(bbox) * obj->model->scale;
cyl->ymin = hoverprop->hov.ground + 20.0f;
} else {
cyl->ymin = mtx.m[3][1] + func0f06683c(bbox, &mtx);
cyl->ymax = mtx.m[3][1] + func0f06686c(bbox, &mtx);
}
cyl->x = pos->x;
cyl->z = pos->z;
cyl->radius = 90.0f;
} else {
if (rodata19 != NULL) {
func0f0674bc(rodata19, bbox, &mtx, (struct geoblock *)cyl);
} else {
func0f067424(bbox, &mtx, (struct geoblock *)cyl);
}
if (obj->type == OBJTYPE_HOVERBIKE) {
hoverbike = (struct hoverbikeobj *)obj;
cyl->ymax = hoverbike->hov.ground + var80069a70[hoverbike->hov.unk00].unk00 + modelBboxGetYMax(bbox) * obj->model->scale;
cyl->ymin = hoverbike->hov.ground + 20.0f;
} else if (obj->type == OBJTYPE_HOVERPROP) {
hoverprop = (struct hoverpropobj *)obj;
cyl->ymax = hoverprop->hov.ground + var80069a70[hoverprop->hov.unk00].unk00 + modelBboxGetYMax(bbox) * obj->model->scale;
cyl->ymin = hoverprop->hov.ground + 20.0f;
}
}
}
void func0f069b4c(struct defaultobj *obj)
{
union modelrodata *rodata;
u8 *ptr = (u8 *) obj->unkgeo;
if (ptr != NULL) {
if ((obj->hidden2 & OBJH2FLAG_08)) {
if (obj->flags3 & OBJFLAG3_GEOCYL) {
ptr += sizeof(struct geocyl);
} else {
ptr += sizeof(struct geoblock);
}
}
rodata = modelGetPartRodata(obj->model->filedata, MODELPART_0065);
if (rodata != NULL) {
u32 flags = GEOFLAG_0001 | GEOFLAG_0002;
if (obj->type == OBJTYPE_ESCASTEP) {
flags |= GEOFLAG_LIFTFLOOR;
}
func0f070ca0(obj, (struct geotilef *)ptr, flags, NULL, &rodata->type19);
ptr += 0x40;
}
rodata = modelGetPartRodata(obj->model->filedata, MODELPART_0066);
if (rodata != NULL) {
func0f070ca0(obj, (struct geotilef *)ptr, GEOFLAG_COLLISIONS | GEOFLAG_0008 | GEOFLAG_OPAQUE, NULL, &rodata->type19);
}
}
}
void func0f069c1c(struct defaultobj *obj)
{
if (obj->geocyl) {
if (obj->hidden2 & OBJH2FLAG_08) {
func0f069850(obj, &obj->prop->pos, obj->realrot, obj->geocyl);
}
func0f069b4c(obj);
}
}
void func0f069c70(struct defaultobj *obj, bool arg1, bool arg2)
{
struct prop *prop;
if (arg1) {
func0f069c1c(obj);
}
if (arg2) {
setup0f0923d4(obj);
}
prop = obj->prop;
func0f069630(prop, obj->nextcol, obj->floorcol);
coordTriggerProxies(&obj->prop->pos, false);
}
/**
* Iterate the model parts in range 201 to 220 (0xc9 to 0xdc) and disable them,
* stopping when any part doesn't exist.
*
* This range of part numbers is a special range that is hidden when the object
* is initialised.
*/
void objInitToggleNodes(struct defaultobj *obj)
{
struct model *model = obj->model;
union modelrwdata *rwdata;
s32 i;
for (i = 0; i < 20; i++) {
struct modelnode *node = modelGetPart(model->filedata, 201 + i);
if (!node) {
return;
}
rwdata = modelGetNodeRwData(model, node);
rwdata->toggle.visible = false;
}
}
void objCreateOneDebris(struct defaultobj *obj, s32 partindex, struct prop *prop)
{
struct defaultobj *debris = debrisAllocate();
if (debris) {
struct defaultobj tmp = {
256, // extrascale
0, // hidden2
OBJTYPE_DEBRIS, // type
0, // modelnum
-1, // pad
OBJFLAG_00000001, // flags
0, // flags2
0, // flags3
NULL, // prop
NULL, // model
1, 0, 0, // realrot
0, 1, 0,
0, 0, 1,
0, // hidden
NULL, // geo
NULL, // projectile
0, // damage
1000, // maxdamage
0xff, 0xff, 0xff, 0x00, // shadecol
0xff, 0xff, 0xff, 0x00, // nextcol
0x0fff, // floorcol
0, // tiles
};
struct modelnode *node;
*debris = tmp;
debris->modelnum = obj->modelnum;
if (objInitWithModelDef(debris, g_ModelStates[debris->modelnum].filedata)) {
propReparent(debris->prop, obj->prop);
objSetDropped(debris->prop, DROPTYPE_5);
if (debris->hidden & OBJHFLAG_AIRBORNE) {
f32 distance;
struct projectile *projectile = debris->projectile;
struct coord rot = {0, 0, 0};
struct coord dist;
dist.x = obj->prop->pos.x - prop->pos.x;
dist.y = 0.0f;
dist.z = obj->prop->pos.z - prop->pos.z;
distance = sqrtf(dist.f[0] * dist.f[0] + dist.f[2] * dist.f[2]);
if (distance > 0.0f) {
distance = 1.0f / distance;
dist.x *= distance;
dist.z *= distance;
} else {
dist.x = RANDOMFRAC() * 0.5f;
dist.z = RANDOMFRAC() * 0.5f;
}
projectile->speed.x = dist.x * 3.3333333f;
projectile->speed.y = RANDOMFRAC() * 6.6666665f;
projectile->speed.z = dist.z * 3.3333333f;
#if PAL
rot.x = RANDOMFRAC() * 0.058895487f - 0.029447744f;
rot.y = RANDOMFRAC() * 0.058895487f - 0.029447744f;
rot.z = RANDOMFRAC() * 0.058895487f - 0.029447744f;
#else
rot.x = RANDOMFRAC() * 0.04907957f - 0.024539785f;
rot.y = RANDOMFRAC() * 0.04907957f - 0.024539785f;
rot.z = RANDOMFRAC() * 0.04907957f - 0.024539785f;
#endif
mtx4LoadRotation(&rot, &projectile->unk020);
}
debris->model->scale = obj->model->scale;
debris->flags |= OBJFLAG_INVINCIBLE | OBJFLAG_BOUNCEIFSHOT | OBJFLAG_01000000;
debris->flags2 |= OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_00200000;
debris->flags3 |= OBJFLAG3_00000008;
node = modelGetPart(debris->model->filedata, MODELPART_BASIC_00C8);
{
struct modelrwdata_toggle *rodata;
if (node) {
rodata = modelGetNodeRwData(debris->model, node);
rodata->visible = false;
}
node = modelGetPart(debris->model->filedata, MODELPART_BASIC_00C9 + partindex);
if (node) {
rodata = modelGetNodeRwData(debris->model, node);
rodata->visible = true;
}
}
}
}
}
void objCreateDebris(struct defaultobj *obj, struct prop *prop)
{
struct model *model = obj->model;
s32 i;
if (prop);
for (i = 0; i < 20; i++) {
if (modelGetPart(model->filedata, 201 + i) == NULL) {
break;
}
objCreateOneDebris(obj, i, prop);
}
}
struct prop *objInit(struct defaultobj *obj, struct modelfiledata *filedata, struct prop *prop, struct model *model)
{
if (prop == NULL) {
prop = propAllocate();
}
if (model == NULL) {
model = modelInstantiateWithoutAnim(filedata);
}
if (prop && model) {
s32 geosize;
obj->model = model;
if (modelGetPartRodata(filedata, MODELPART_BASIC_0065)) {
obj->geocount++;
}
if (modelGetPartRodata(filedata, MODELPART_BASIC_0066)) {
obj->geocount++;
}
geosize = obj->geocount * 0x40;
if (obj->flags & OBJFLAG_00000100) {
if (obj->flags3 & OBJFLAG3_GEOCYL) {
geosize += sizeof(struct geocyl);
} else {
geosize += sizeof(struct geoblock);
}
obj->geocount++;
obj->hidden2 |= OBJH2FLAG_08;
} else {
obj->hidden2 &= ~OBJH2FLAG_08;
}
if (obj->geocount > 0) {
obj->unkgeo = mempAlloc(ALIGN16(geosize), MEMPOOL_STAGE);
} else {
obj->unkgeo = NULL;
}
obj->prop = prop;
obj->damage = 0;
obj->projectile = NULL;
obj->shadecol[0] = 0;
obj->shadecol[1] = 0;
obj->shadecol[2] = 0;
obj->shadecol[3] = 0;
obj->nextcol[0] = 0;
obj->nextcol[1] = 0;
obj->nextcol[2] = 0;
obj->nextcol[3] = 0;
obj->floorcol = 0xfff;
obj->model->obj = obj;
obj->model->unk01 = 0;
modelSetScale(obj->model, g_ModelStates[obj->modelnum].scale * (1.0f / 4096.0f));
prop->type = PROPTYPE_OBJ;
prop->obj = obj;
prop->pos.x = 0;
prop->pos.y = 0;
prop->pos.z = 0;
objInitToggleNodes(obj);
if (obj->flags3 & OBJFLAG3_RENDERPOSTBG) {
prop->flags |= PROPFLAG_RENDERPOSTBG;
}
if (obj->flags3 & OBJFLAG3_DRAWONTOP) {
prop->flags |= PROPFLAG_DRAWONTOP;
}
} else {
if (model) {
modelFree(model);
}
if (prop) {
propFree(prop);
prop = NULL;
}
if (obj) {
obj->prop = NULL;
obj->model = NULL;
}
}
if (g_Vars.normmplayerisrunning && prop && obj && obj->type == OBJTYPE_WEAPON) {
struct weaponobj *weapon = (struct weaponobj *) obj;
if (weapon->weaponnum == WEAPON_BRIEFCASE2) {
if (g_MpSetup.scenario == MPSCENARIO_HOLDTHEBRIEFCASE) {
g_ScenarioData.htb.token = prop;
}
prop->forcetick = true;
obj->flags |= OBJFLAG_INVINCIBLE | OBJFLAG_00400000;
obj->flags2 |= OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_00200000;
} else if (weapon->weaponnum == WEAPON_DATAUPLINK) {
if (g_MpSetup.scenario == MPSCENARIO_HACKERCENTRAL) {
g_ScenarioData.htm.uplink = prop;
}
prop->forcetick = true;
obj->flags |= OBJFLAG_INVINCIBLE | OBJFLAG_00400000;
obj->flags2 |= OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_00200000;
}
}
return prop;
}
struct prop *objInitWithModelDef(struct defaultobj *obj, struct modelfiledata *filedata)
{
return objInit(obj, filedata, NULL, NULL);
}
struct prop *objInitWithAutoModel(struct defaultobj *obj)
{
return objInitWithModelDef(obj, g_ModelStates[obj->modelnum].filedata);
}
void func0f06a580(struct defaultobj *obj, struct coord *pos, Mtxf *matrix, s16 *rooms)
{
struct prop *prop = obj->prop;
mtx4ToMtx3(matrix, obj->realrot);
prop->pos.x = pos->x;
prop->pos.y = pos->y;
prop->pos.z = pos->z;
propDeregisterRooms(prop);
roomsCopy(rooms, prop->rooms);
func0f069c70(obj, true, true);
obj->shadecol[0] = obj->nextcol[0];
obj->shadecol[1] = obj->nextcol[1];
obj->shadecol[2] = obj->nextcol[2];
obj->shadecol[3] = obj->nextcol[3];
}
f32 func0f06a620(struct defaultobj *obj)
{
if (obj->type == OBJTYPE_WEAPON) {
return 0;
}
return 4;
}
void func0f06a650(struct defaultobj *obj, struct coord *pos, Mtxf *arg2, s16 *rooms)
{
struct modelrodata_bbox *bbox;
s16 room;
f32 sp3c;
struct coord newpos;
s16 newrooms[2];
bbox = modelFindBboxRodata(obj->model);
#if VERSION >= VERSION_NTSC_1_0
room = cd0002a440(pos, rooms, &sp3c, &obj->floorcol, NULL);
#else
room = cd0002a440(pos, rooms, &sp3c, &obj->floorcol);
#endif
if (room > 0) {
newpos.x = pos->x;
newpos.y = (sp3c + func0f06a620(obj)) - func0f06683c(bbox, arg2);
newpos.z = pos->z;
newrooms[0] = room;
newrooms[1] = -1;
func0f06a580(obj, &newpos, arg2, newrooms);
} else {
func0f06a580(obj, pos, arg2, rooms);
}
}
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel func0f06a730
.late_rodata
glabel var7f1aa200
.word 0x404907a9
.text
/* f06a730: 27bdff38 */ addiu $sp,$sp,-200
/* f06a734: afbf0024 */ sw $ra,0x24($sp)
/* f06a738: f7b40018 */ sdc1 $f20,0x18($sp)
/* f06a73c: afa400c8 */ sw $a0,0xc8($sp)
/* f06a740: afa500cc */ sw $a1,0xcc($sp)
/* f06a744: afa600d0 */ sw $a2,0xd0($sp)
/* f06a748: afa700d4 */ sw $a3,0xd4($sp)
/* f06a74c: 0fc1a2aa */ jal modelFindBboxRodata
/* f06a750: 8c840018 */ lw $a0,0x18($a0)
/* f06a754: afa200c4 */ sw $v0,0xc4($sp)
/* f06a758: 0fc199ef */ jal modelBboxGetYMin
/* f06a75c: 00402025 */ or $a0,$v0,$zero
/* f06a760: 46000506 */ mov.s $f20,$f0
/* f06a764: 0fc199f1 */ jal modelBboxGetYMax
/* f06a768: 8fa400c4 */ lw $a0,0xc4($sp)
/* f06a76c: 8faf00c8 */ lw $t7,0xc8($sp)
/* f06a770: 46000386 */ mov.s $f14,$f0
/* f06a774: 3c017f1b */ lui $at,%hi(var7f1aa200)
/* f06a778: 8de20008 */ lw $v0,0x8($t7)
/* f06a77c: 27a50070 */ addiu $a1,$sp,0x70
/* f06a780: 30580004 */ andi $t8,$v0,0x4
/* f06a784: 13000019 */ beqz $t8,.L0f06a7ec
/* f06a788: 30590008 */ andi $t9,$v0,0x8
/* f06a78c: c42ca200 */ lwc1 $f12,%lo(var7f1aa200)($at)
/* f06a790: 0c005900 */ jal mtx4LoadZRotation
/* f06a794: e7ae00bc */ swc1 $f14,0xbc($sp)
/* f06a798: 8fa400d0 */ lw $a0,0xd0($sp)
/* f06a79c: 0c00567f */ jal mtx4MultMtx4InPlace
/* f06a7a0: 27a50070 */ addiu $a1,$sp,0x70
/* f06a7a4: c7ae00bc */ lwc1 $f14,0xbc($sp)
/* f06a7a8: c7a60080 */ lwc1 $f6,0x80($sp)
/* f06a7ac: 8fa200d8 */ lw $v0,0xd8($sp)
/* f06a7b0: 460e3202 */ mul.s $f8,$f6,$f14
/* f06a7b4: c4440000 */ lwc1 $f4,0x0($v0)
/* f06a7b8: 46082281 */ sub.s $f10,$f4,$f8
/* f06a7bc: c7a40084 */ lwc1 $f4,0x84($sp)
/* f06a7c0: 460e2202 */ mul.s $f8,$f4,$f14
/* f06a7c4: e7aa00b0 */ swc1 $f10,0xb0($sp)
/* f06a7c8: c4460004 */ lwc1 $f6,0x4($v0)
/* f06a7cc: 46083281 */ sub.s $f10,$f6,$f8
/* f06a7d0: c7a60088 */ lwc1 $f6,0x88($sp)
/* f06a7d4: 460e3202 */ mul.s $f8,$f6,$f14
/* f06a7d8: e7aa00b4 */ swc1 $f10,0xb4($sp)
/* f06a7dc: c4440008 */ lwc1 $f4,0x8($v0)
/* f06a7e0: 46082281 */ sub.s $f10,$f4,$f8
/* f06a7e4: 100000cf */ b .L0f06ab24
/* f06a7e8: e7aa00b8 */ swc1 $f10,0xb8($sp)
.L0f06a7ec:
/* f06a7ec: 13200015 */ beqz $t9,.L0f06a844
/* f06a7f0: 8fa400d0 */ lw $a0,0xd0($sp)
/* f06a7f4: 8fa400d0 */ lw $a0,0xd0($sp)
/* f06a7f8: 0c005746 */ jal mtx4Copy
/* f06a7fc: 27a50070 */ addiu $a1,$sp,0x70
/* f06a800: c7a40080 */ lwc1 $f4,0x80($sp)
/* f06a804: 8fa200d8 */ lw $v0,0xd8($sp)
/* f06a808: 46142202 */ mul.s $f8,$f4,$f20
/* f06a80c: c4460000 */ lwc1 $f6,0x0($v0)
/* f06a810: 46083281 */ sub.s $f10,$f6,$f8
/* f06a814: c7a60084 */ lwc1 $f6,0x84($sp)
/* f06a818: 46143202 */ mul.s $f8,$f6,$f20
/* f06a81c: e7aa00b0 */ swc1 $f10,0xb0($sp)
/* f06a820: c4440004 */ lwc1 $f4,0x4($v0)
/* f06a824: 46082281 */ sub.s $f10,$f4,$f8
/* f06a828: c7a40088 */ lwc1 $f4,0x88($sp)
/* f06a82c: 46142202 */ mul.s $f8,$f4,$f20
/* f06a830: e7aa00b4 */ swc1 $f10,0xb4($sp)
/* f06a834: c4460008 */ lwc1 $f6,0x8($v0)
/* f06a838: 46083281 */ sub.s $f10,$f6,$f8
/* f06a83c: 100000b9 */ b .L0f06ab24
/* f06a840: e7aa00b8 */ swc1 $f10,0xb8($sp)
.L0f06a844:
/* f06a844: 27a50070 */ addiu $a1,$sp,0x70
/* f06a848: 0c005746 */ jal mtx4Copy
/* f06a84c: e7ae00bc */ swc1 $f14,0xbc($sp)
/* f06a850: 44806000 */ mtc1 $zero,$f12
/* f06a854: c7b20074 */ lwc1 $f18,0x74($sp)
/* f06a858: c7ae00bc */ lwc1 $f14,0xbc($sp)
/* f06a85c: 460c903c */ c.lt.s $f18,$f12
/* f06a860: 46009006 */ mov.s $f0,$f18
/* f06a864: 45020003 */ bc1fl .L0f06a874
/* f06a868: 460c903c */ c.lt.s $f18,$f12
/* f06a86c: 46009007 */ neg.s $f0,$f18
/* f06a870: 460c903c */ c.lt.s $f18,$f12
.L0f06a874:
/* f06a874: c7b00084 */ lwc1 $f16,0x84($sp)
/* f06a878: 00004025 */ or $t0,$zero,$zero
/* f06a87c: 00004825 */ or $t1,$zero,$zero
/* f06a880: 45020003 */ bc1fl .L0f06a890
/* f06a884: 460c803c */ c.lt.s $f16,$f12
/* f06a888: 24090001 */ addiu $t1,$zero,0x1
/* f06a88c: 460c803c */ c.lt.s $f16,$f12
.L0f06a890:
/* f06a890: 46000086 */ mov.s $f2,$f0
/* f06a894: afa9004c */ sw $t1,0x4c($sp)
/* f06a898: 46008006 */ mov.s $f0,$f16
/* f06a89c: 45020003 */ bc1fl .L0f06a8ac
/* f06a8a0: 4600103c */ c.lt.s $f2,$f0
/* f06a8a4: 46008007 */ neg.s $f0,$f16
/* f06a8a8: 4600103c */ c.lt.s $f2,$f0
.L0f06a8ac:
/* f06a8ac: 00000000 */ nop
/* f06a8b0: 4502000a */ bc1fl .L0f06a8dc
/* f06a8b4: c7b00094 */ lwc1 $f16,0x94($sp)
/* f06a8b8: 460c803c */ c.lt.s $f16,$f12
/* f06a8bc: 24080001 */ addiu $t0,$zero,0x1
/* f06a8c0: 00005025 */ or $t2,$zero,$zero
/* f06a8c4: 46000086 */ mov.s $f2,$f0
/* f06a8c8: 45020003 */ bc1fl .L0f06a8d8
/* f06a8cc: afaa004c */ sw $t2,0x4c($sp)
/* f06a8d0: 240a0001 */ addiu $t2,$zero,0x1
/* f06a8d4: afaa004c */ sw $t2,0x4c($sp)
.L0f06a8d8:
/* f06a8d8: c7b00094 */ lwc1 $f16,0x94($sp)
.L0f06a8dc:
/* f06a8dc: 24010002 */ addiu $at,$zero,0x2
/* f06a8e0: 460c803c */ c.lt.s $f16,$f12
/* f06a8e4: 46008006 */ mov.s $f0,$f16
/* f06a8e8: 45020003 */ bc1fl .L0f06a8f8
/* f06a8ec: 4600103c */ c.lt.s $f2,$f0
/* f06a8f0: 46008007 */ neg.s $f0,$f16
/* f06a8f4: 4600103c */ c.lt.s $f2,$f0
.L0f06a8f8:
/* f06a8f8: 00000000 */ nop
/* f06a8fc: 45000008 */ bc1f .L0f06a920
/* f06a900: 00000000 */ nop
/* f06a904: 460c803c */ c.lt.s $f16,$f12
/* f06a908: 24080002 */ addiu $t0,$zero,0x2
/* f06a90c: 00005825 */ or $t3,$zero,$zero
/* f06a910: 45020003 */ bc1fl .L0f06a920
/* f06a914: afab004c */ sw $t3,0x4c($sp)
/* f06a918: 240b0001 */ addiu $t3,$zero,0x1
/* f06a91c: afab004c */ sw $t3,0x4c($sp)
.L0f06a920:
/* f06a920: 15000009 */ bnez $t0,.L0f06a948
/* f06a924: 8fa400c4 */ lw $a0,0xc4($sp)
/* f06a928: 0fc199eb */ jal modelBboxGetXMin
/* f06a92c: afa80050 */ sw $t0,0x50($sp)
/* f06a930: 46000506 */ mov.s $f20,$f0
/* f06a934: 0fc199ed */ jal modelBboxGetXMax
/* f06a938: 8fa400c4 */ lw $a0,0xc4($sp)
/* f06a93c: 8fa80050 */ lw $t0,0x50($sp)
/* f06a940: 1000000a */ b .L0f06a96c
/* f06a944: 46000386 */ mov.s $f14,$f0
.L0f06a948:
/* f06a948: 15010008 */ bne $t0,$at,.L0f06a96c
/* f06a94c: 8fa400c4 */ lw $a0,0xc4($sp)
/* f06a950: 0fc199f3 */ jal modelBboxGetZMin
/* f06a954: afa80050 */ sw $t0,0x50($sp)
/* f06a958: 46000506 */ mov.s $f20,$f0
/* f06a95c: 0fc199f5 */ jal modelBboxGetZMax
/* f06a960: 8fa400c4 */ lw $a0,0xc4($sp)
/* f06a964: 8fa80050 */ lw $t0,0x50($sp)
/* f06a968: 46000386 */ mov.s $f14,$f0
.L0f06a96c:
/* f06a96c: 8fac004c */ lw $t4,0x4c($sp)
/* f06a970: 00086900 */ sll $t5,$t0,0x4
/* f06a974: 27ae0070 */ addiu $t6,$sp,0x70
/* f06a978: 11800004 */ beqz $t4,.L0f06a98c
/* f06a97c: 01ae1821 */ addu $v1,$t5,$t6
/* f06a980: 4600a006 */ mov.s $f0,$f20
/* f06a984: 46007506 */ mov.s $f20,$f14
/* f06a988: 46000386 */ mov.s $f14,$f0
.L0f06a98c:
/* f06a98c: c4660000 */ lwc1 $f6,0x0($v1)
/* f06a990: 8fa200d8 */ lw $v0,0xd8($sp)
/* f06a994: 8fa400cc */ lw $a0,0xcc($sp)
/* f06a998: 46143202 */ mul.s $f8,$f6,$f20
/* f06a99c: c4440000 */ lwc1 $f4,0x0($v0)
/* f06a9a0: 8fa500d4 */ lw $a1,0xd4($sp)
/* f06a9a4: 27a600b0 */ addiu $a2,$sp,0xb0
/* f06a9a8: 27a70060 */ addiu $a3,$sp,0x60
/* f06a9ac: 46082281 */ sub.s $f10,$f4,$f8
/* f06a9b0: e7aa00b0 */ swc1 $f10,0xb0($sp)
/* f06a9b4: c4640004 */ lwc1 $f4,0x4($v1)
/* f06a9b8: c4460004 */ lwc1 $f6,0x4($v0)
/* f06a9bc: 46142202 */ mul.s $f8,$f4,$f20
/* f06a9c0: 46083281 */ sub.s $f10,$f6,$f8
/* f06a9c4: e7aa00b4 */ swc1 $f10,0xb4($sp)
/* f06a9c8: c4660008 */ lwc1 $f6,0x8($v1)
/* f06a9cc: c4440008 */ lwc1 $f4,0x8($v0)
/* f06a9d0: e7ae00bc */ swc1 $f14,0xbc($sp)
/* f06a9d4: 46143202 */ mul.s $f8,$f6,$f20
/* f06a9d8: afa30030 */ sw $v1,0x30($sp)
/* f06a9dc: 46082281 */ sub.s $f10,$f4,$f8
/* f06a9e0: 0fc1979d */ jal func0f065e74
/* f06a9e4: e7aa00b8 */ swc1 $f10,0xb8($sp)
/* f06a9e8: 8fa700c8 */ lw $a3,0xc8($sp)
/* f06a9ec: 27a400b0 */ addiu $a0,$sp,0xb0
/* f06a9f0: 27a50060 */ addiu $a1,$sp,0x60
/* f06a9f4: 27a60058 */ addiu $a2,$sp,0x58
/* f06a9f8: afa00010 */ sw $zero,0x10($sp)
/* f06a9fc: 0c00a910 */ jal cd0002a440
/* f06aa00: 24e70058 */ addiu $a3,$a3,0x58
/* f06aa04: 18400047 */ blez $v0,.L0f06ab24
/* f06aa08: c7ae00bc */ lwc1 $f14,0xbc($sp)
/* f06aa0c: 27a400b0 */ addiu $a0,$sp,0xb0
/* f06aa10: 27a50060 */ addiu $a1,$sp,0x60
/* f06aa14: 0fc1a086 */ jal objFindByPos
/* f06aa18: e7ae00bc */ swc1 $f14,0xbc($sp)
/* f06aa1c: 10400038 */ beqz $v0,.L0f06ab00
/* f06aa20: c7ae00bc */ lwc1 $f14,0xbc($sp)
/* f06aa24: 8c440014 */ lw $a0,0x14($v0)
/* f06aa28: e7ae00bc */ swc1 $f14,0xbc($sp)
/* f06aa2c: 27a5003c */ addiu $a1,$sp,0x3c
/* f06aa30: 0fc198a4 */ jal propUpdateGeometry
/* f06aa34: 27a60038 */ addiu $a2,$sp,0x38
/* f06aa38: 10400027 */ beqz $v0,.L0f06aad8
/* f06aa3c: c7ae00bc */ lwc1 $f14,0xbc($sp)
/* f06aa40: 8faf003c */ lw $t7,0x3c($sp)
/* f06aa44: 24010002 */ addiu $at,$zero,0x2
/* f06aa48: c7a60058 */ lwc1 $f6,0x58($sp)
/* f06aa4c: 91f80000 */ lbu $t8,0x0($t7)
/* f06aa50: 17010021 */ bne $t8,$at,.L0f06aad8
/* f06aa54: 00000000 */ nop
/* f06aa58: c5e40004 */ lwc1 $f4,0x4($t7)
/* f06aa5c: 8fa400c8 */ lw $a0,0xc8($sp)
/* f06aa60: 4604303c */ c.lt.s $f6,$f4
/* f06aa64: 00000000 */ nop
/* f06aa68: 4500001b */ bc1f .L0f06aad8
/* f06aa6c: 00000000 */ nop
/* f06aa70: afaf0034 */ sw $t7,0x34($sp)
/* f06aa74: 0fc1a988 */ jal func0f06a620
/* f06aa78: e7ae00bc */ swc1 $f14,0xbc($sp)
/* f06aa7c: c7ae00bc */ lwc1 $f14,0xbc($sp)
/* f06aa80: 8fb90030 */ lw $t9,0x30($sp)
/* f06aa84: c7aa0058 */ lwc1 $f10,0x58($sp)
/* f06aa88: 46147181 */ sub.s $f6,$f14,$f20
/* f06aa8c: c7220004 */ lwc1 $f2,0x4($t9)
/* f06aa90: 8fa20034 */ lw $v0,0x34($sp)
/* f06aa94: 46023102 */ mul.s $f4,$f6,$f2
/* f06aa98: c4480008 */ lwc1 $f8,0x8($v0)
/* f06aa9c: 46045180 */ add.s $f6,$f10,$f4
/* f06aaa0: 46060280 */ add.s $f10,$f0,$f6
/* f06aaa4: 460a403c */ c.lt.s $f8,$f10
/* f06aaa8: 00000000 */ nop
/* f06aaac: 4500000a */ bc1f .L0f06aad8
/* f06aab0: 00000000 */ nop
/* f06aab4: 46141182 */ mul.s $f6,$f2,$f20
/* f06aab8: c4440004 */ lwc1 $f4,0x4($v0)
/* f06aabc: 8fa900c8 */ lw $t1,0xc8($sp)
/* f06aac0: 46062201 */ sub.s $f8,$f4,$f6
/* f06aac4: e7a800b4 */ swc1 $f8,0xb4($sp)
/* f06aac8: 8d2a0040 */ lw $t2,0x40($t1)
/* f06aacc: 354b8000 */ ori $t3,$t2,0x8000
/* f06aad0: 10000014 */ b .L0f06ab24
/* f06aad4: ad2b0040 */ sw $t3,0x40($t1)
.L0f06aad8:
/* f06aad8: 0fc1a988 */ jal func0f06a620
/* f06aadc: 8fa400c8 */ lw $a0,0xc8($sp)
/* f06aae0: 8fac0030 */ lw $t4,0x30($sp)
/* f06aae4: c7aa0058 */ lwc1 $f10,0x58($sp)
/* f06aae8: c5840004 */ lwc1 $f4,0x4($t4)
/* f06aaec: 4604a182 */ mul.s $f6,$f20,$f4
/* f06aaf0: 46065201 */ sub.s $f8,$f10,$f6
/* f06aaf4: 46080100 */ add.s $f4,$f0,$f8
/* f06aaf8: 1000000a */ b .L0f06ab24
/* f06aafc: e7a400b4 */ swc1 $f4,0xb4($sp)
.L0f06ab00:
/* f06ab00: 0fc1a988 */ jal func0f06a620
/* f06ab04: 8fa400c8 */ lw $a0,0xc8($sp)
/* f06ab08: 8fad0030 */ lw $t5,0x30($sp)
/* f06ab0c: c7aa0058 */ lwc1 $f10,0x58($sp)
/* f06ab10: c5a60004 */ lwc1 $f6,0x4($t5)
/* f06ab14: 4606a202 */ mul.s $f8,$f20,$f6
/* f06ab18: 46085101 */ sub.s $f4,$f10,$f8
/* f06ab1c: 46040180 */ add.s $f6,$f0,$f4
/* f06ab20: e7a600b4 */ swc1 $f6,0xb4($sp)
.L0f06ab24:
/* f06ab24: 8fa400cc */ lw $a0,0xcc($sp)
/* f06ab28: 8fa500d4 */ lw $a1,0xd4($sp)
/* f06ab2c: 27a600b0 */ addiu $a2,$sp,0xb0
/* f06ab30: 0fc1979d */ jal func0f065e74
/* f06ab34: 27a70060 */ addiu $a3,$sp,0x60
/* f06ab38: 8fa400c8 */ lw $a0,0xc8($sp)
/* f06ab3c: 27a500b0 */ addiu $a1,$sp,0xb0
/* f06ab40: 27a60070 */ addiu $a2,$sp,0x70
/* f06ab44: 0fc1a960 */ jal func0f06a580
/* f06ab48: 27a70060 */ addiu $a3,$sp,0x60
/* f06ab4c: 8fbf0024 */ lw $ra,0x24($sp)
/* f06ab50: d7b40018 */ ldc1 $f20,0x18($sp)
/* f06ab54: 27bd00c8 */ addiu $sp,$sp,0xc8
/* f06ab58: 03e00008 */ jr $ra
/* f06ab5c: 00000000 */ nop
);
#else
GLOBAL_ASM(
glabel func0f06a730
.late_rodata
glabel var7f1aa200
.word 0x404907a9
.text
/* f069998: 27bdff40 */ addiu $sp,$sp,-192
/* f06999c: afbf001c */ sw $ra,0x1c($sp)
/* f0699a0: f7b40010 */ sdc1 $f20,0x10($sp)
/* f0699a4: afa400c0 */ sw $a0,0xc0($sp)
/* f0699a8: afa500c4 */ sw $a1,0xc4($sp)
/* f0699ac: afa600c8 */ sw $a2,0xc8($sp)
/* f0699b0: afa700cc */ sw $a3,0xcc($sp)
/* f0699b4: 0fc19f4a */ jal modelFindBboxRodata
/* f0699b8: 8c840018 */ lw $a0,0x18($a0)
/* f0699bc: afa200bc */ sw $v0,0xbc($sp)
/* f0699c0: 0fc1968f */ jal modelBboxGetYMin
/* f0699c4: 00402025 */ or $a0,$v0,$zero
/* f0699c8: 46000506 */ mov.s $f20,$f0
/* f0699cc: 0fc19691 */ jal modelBboxGetYMax
/* f0699d0: 8fa400bc */ lw $a0,0xbc($sp)
/* f0699d4: 8faf00c0 */ lw $t7,0xc0($sp)
/* f0699d8: 46000386 */ mov.s $f14,$f0
/* f0699dc: 3c017f1a */ lui $at,0x7f1a
/* f0699e0: 8de20008 */ lw $v0,0x8($t7)
/* f0699e4: 27a50068 */ addiu $a1,$sp,0x68
/* f0699e8: 30580004 */ andi $t8,$v0,0x4
/* f0699ec: 13000019 */ beqz $t8,.NB0f069a54
/* f0699f0: 30590008 */ andi $t9,$v0,0x8
/* f0699f4: c42c4520 */ lwc1 $f12,0x4520($at)
/* f0699f8: 0c005ce4 */ jal mtx4LoadZRotation
/* f0699fc: e7ae00b4 */ swc1 $f14,0xb4($sp)
/* f069a00: 8fa400c8 */ lw $a0,0xc8($sp)
/* f069a04: 0c005a3b */ jal mtx4MultMtx4InPlace
/* f069a08: 27a50068 */ addiu $a1,$sp,0x68
/* f069a0c: c7ae00b4 */ lwc1 $f14,0xb4($sp)
/* f069a10: c7a60078 */ lwc1 $f6,0x78($sp)
/* f069a14: 8fa200d0 */ lw $v0,0xd0($sp)
/* f069a18: 460e3202 */ mul.s $f8,$f6,$f14
/* f069a1c: c4440000 */ lwc1 $f4,0x0($v0)
/* f069a20: 46082281 */ sub.s $f10,$f4,$f8
/* f069a24: c7a4007c */ lwc1 $f4,0x7c($sp)
/* f069a28: 460e2202 */ mul.s $f8,$f4,$f14
/* f069a2c: e7aa00a8 */ swc1 $f10,0xa8($sp)
/* f069a30: c4460004 */ lwc1 $f6,0x4($v0)
/* f069a34: 46083281 */ sub.s $f10,$f6,$f8
/* f069a38: c7a60080 */ lwc1 $f6,0x80($sp)
/* f069a3c: 460e3202 */ mul.s $f8,$f6,$f14
/* f069a40: e7aa00ac */ swc1 $f10,0xac($sp)
/* f069a44: c4440008 */ lwc1 $f4,0x8($v0)
/* f069a48: 46082281 */ sub.s $f10,$f4,$f8
/* f069a4c: 100000ce */ beqz $zero,.NB0f069d88
/* f069a50: e7aa00b0 */ swc1 $f10,0xb0($sp)
.NB0f069a54:
/* f069a54: 13200015 */ beqz $t9,.NB0f069aac
/* f069a58: 8fa400c8 */ lw $a0,0xc8($sp)
/* f069a5c: 8fa400c8 */ lw $a0,0xc8($sp)
/* f069a60: 0c005b02 */ jal mtx4Copy
/* f069a64: 27a50068 */ addiu $a1,$sp,0x68
/* f069a68: c7a40078 */ lwc1 $f4,0x78($sp)
/* f069a6c: 8fa200d0 */ lw $v0,0xd0($sp)
/* f069a70: 46142202 */ mul.s $f8,$f4,$f20
/* f069a74: c4460000 */ lwc1 $f6,0x0($v0)
/* f069a78: 46083281 */ sub.s $f10,$f6,$f8
/* f069a7c: c7a6007c */ lwc1 $f6,0x7c($sp)
/* f069a80: 46143202 */ mul.s $f8,$f6,$f20
/* f069a84: e7aa00a8 */ swc1 $f10,0xa8($sp)
/* f069a88: c4440004 */ lwc1 $f4,0x4($v0)
/* f069a8c: 46082281 */ sub.s $f10,$f4,$f8
/* f069a90: c7a40080 */ lwc1 $f4,0x80($sp)
/* f069a94: 46142202 */ mul.s $f8,$f4,$f20
/* f069a98: e7aa00ac */ swc1 $f10,0xac($sp)
/* f069a9c: c4460008 */ lwc1 $f6,0x8($v0)
/* f069aa0: 46083281 */ sub.s $f10,$f6,$f8
/* f069aa4: 100000b8 */ beqz $zero,.NB0f069d88
/* f069aa8: e7aa00b0 */ swc1 $f10,0xb0($sp)
.NB0f069aac:
/* f069aac: 27a50068 */ addiu $a1,$sp,0x68
/* f069ab0: 0c005b02 */ jal mtx4Copy
/* f069ab4: e7ae00b4 */ swc1 $f14,0xb4($sp)
/* f069ab8: 44806000 */ mtc1 $zero,$f12
/* f069abc: c7b2006c */ lwc1 $f18,0x6c($sp)
/* f069ac0: c7ae00b4 */ lwc1 $f14,0xb4($sp)
/* f069ac4: 460c903c */ c.lt.s $f18,$f12
/* f069ac8: 46009006 */ mov.s $f0,$f18
/* f069acc: 45020003 */ bc1fl .NB0f069adc
/* f069ad0: 460c903c */ c.lt.s $f18,$f12
/* f069ad4: 46009007 */ neg.s $f0,$f18
/* f069ad8: 460c903c */ c.lt.s $f18,$f12
.NB0f069adc:
/* f069adc: c7b0007c */ lwc1 $f16,0x7c($sp)
/* f069ae0: 00004025 */ or $t0,$zero,$zero
/* f069ae4: 00004825 */ or $t1,$zero,$zero
/* f069ae8: 45020003 */ bc1fl .NB0f069af8
/* f069aec: 460c803c */ c.lt.s $f16,$f12
/* f069af0: 24090001 */ addiu $t1,$zero,0x1
/* f069af4: 460c803c */ c.lt.s $f16,$f12
.NB0f069af8:
/* f069af8: 46000086 */ mov.s $f2,$f0
/* f069afc: afa90044 */ sw $t1,0x44($sp)
/* f069b00: 46008006 */ mov.s $f0,$f16
/* f069b04: 45020003 */ bc1fl .NB0f069b14
/* f069b08: 4600103c */ c.lt.s $f2,$f0
/* f069b0c: 46008007 */ neg.s $f0,$f16
/* f069b10: 4600103c */ c.lt.s $f2,$f0
.NB0f069b14:
/* f069b14: 00000000 */ sll $zero,$zero,0x0
/* f069b18: 4502000a */ bc1fl .NB0f069b44
/* f069b1c: c7b0008c */ lwc1 $f16,0x8c($sp)
/* f069b20: 460c803c */ c.lt.s $f16,$f12
/* f069b24: 24080001 */ addiu $t0,$zero,0x1
/* f069b28: 00005025 */ or $t2,$zero,$zero
/* f069b2c: 46000086 */ mov.s $f2,$f0
/* f069b30: 45020003 */ bc1fl .NB0f069b40
/* f069b34: afaa0044 */ sw $t2,0x44($sp)
/* f069b38: 240a0001 */ addiu $t2,$zero,0x1
/* f069b3c: afaa0044 */ sw $t2,0x44($sp)
.NB0f069b40:
/* f069b40: c7b0008c */ lwc1 $f16,0x8c($sp)
.NB0f069b44:
/* f069b44: 24010002 */ addiu $at,$zero,0x2
/* f069b48: 460c803c */ c.lt.s $f16,$f12
/* f069b4c: 46008006 */ mov.s $f0,$f16
/* f069b50: 45020003 */ bc1fl .NB0f069b60
/* f069b54: 4600103c */ c.lt.s $f2,$f0
/* f069b58: 46008007 */ neg.s $f0,$f16
/* f069b5c: 4600103c */ c.lt.s $f2,$f0
.NB0f069b60:
/* f069b60: 00000000 */ sll $zero,$zero,0x0
/* f069b64: 45000008 */ bc1f .NB0f069b88
/* f069b68: 00000000 */ sll $zero,$zero,0x0
/* f069b6c: 460c803c */ c.lt.s $f16,$f12
/* f069b70: 24080002 */ addiu $t0,$zero,0x2
/* f069b74: 00005825 */ or $t3,$zero,$zero
/* f069b78: 45020003 */ bc1fl .NB0f069b88
/* f069b7c: afab0044 */ sw $t3,0x44($sp)
/* f069b80: 240b0001 */ addiu $t3,$zero,0x1
/* f069b84: afab0044 */ sw $t3,0x44($sp)
.NB0f069b88:
/* f069b88: 15000009 */ bnez $t0,.NB0f069bb0
/* f069b8c: 8fa400bc */ lw $a0,0xbc($sp)
/* f069b90: 0fc1968b */ jal modelBboxGetXMin
/* f069b94: afa80048 */ sw $t0,0x48($sp)
/* f069b98: 46000506 */ mov.s $f20,$f0
/* f069b9c: 0fc1968d */ jal modelBboxGetXMax
/* f069ba0: 8fa400bc */ lw $a0,0xbc($sp)
/* f069ba4: 8fa80048 */ lw $t0,0x48($sp)
/* f069ba8: 1000000a */ beqz $zero,.NB0f069bd4
/* f069bac: 46000386 */ mov.s $f14,$f0
.NB0f069bb0:
/* f069bb0: 15010008 */ bne $t0,$at,.NB0f069bd4
/* f069bb4: 8fa400bc */ lw $a0,0xbc($sp)
/* f069bb8: 0fc19693 */ jal modelBboxGetZMin
/* f069bbc: afa80048 */ sw $t0,0x48($sp)
/* f069bc0: 46000506 */ mov.s $f20,$f0
/* f069bc4: 0fc19695 */ jal modelBboxGetZMax
/* f069bc8: 8fa400bc */ lw $a0,0xbc($sp)
/* f069bcc: 8fa80048 */ lw $t0,0x48($sp)
/* f069bd0: 46000386 */ mov.s $f14,$f0
.NB0f069bd4:
/* f069bd4: 8fac0044 */ lw $t4,0x44($sp)
/* f069bd8: 00086900 */ sll $t5,$t0,0x4
/* f069bdc: 27ae0068 */ addiu $t6,$sp,0x68
/* f069be0: 11800004 */ beqz $t4,.NB0f069bf4
/* f069be4: 01ae1821 */ addu $v1,$t5,$t6
/* f069be8: 4600a006 */ mov.s $f0,$f20
/* f069bec: 46007506 */ mov.s $f20,$f14
/* f069bf0: 46000386 */ mov.s $f14,$f0
.NB0f069bf4:
/* f069bf4: c4660000 */ lwc1 $f6,0x0($v1)
/* f069bf8: 8fa200d0 */ lw $v0,0xd0($sp)
/* f069bfc: 8fa400c4 */ lw $a0,0xc4($sp)
/* f069c00: 46143202 */ mul.s $f8,$f6,$f20
/* f069c04: c4440000 */ lwc1 $f4,0x0($v0)
/* f069c08: 8fa500cc */ lw $a1,0xcc($sp)
/* f069c0c: 27a600a8 */ addiu $a2,$sp,0xa8
/* f069c10: 27a70058 */ addiu $a3,$sp,0x58
/* f069c14: 46082281 */ sub.s $f10,$f4,$f8
/* f069c18: e7aa00a8 */ swc1 $f10,0xa8($sp)
/* f069c1c: c4640004 */ lwc1 $f4,0x4($v1)
/* f069c20: c4460004 */ lwc1 $f6,0x4($v0)
/* f069c24: 46142202 */ mul.s $f8,$f4,$f20
/* f069c28: 46083281 */ sub.s $f10,$f6,$f8
/* f069c2c: e7aa00ac */ swc1 $f10,0xac($sp)
/* f069c30: c4660008 */ lwc1 $f6,0x8($v1)
/* f069c34: c4440008 */ lwc1 $f4,0x8($v0)
/* f069c38: e7ae00b4 */ swc1 $f14,0xb4($sp)
/* f069c3c: 46143202 */ mul.s $f8,$f6,$f20
/* f069c40: afa30028 */ sw $v1,0x28($sp)
/* f069c44: 46082281 */ sub.s $f10,$f4,$f8
/* f069c48: 0fc19437 */ jal func0f065e74
/* f069c4c: e7aa00b0 */ swc1 $f10,0xb0($sp)
/* f069c50: 8fa700c0 */ lw $a3,0xc0($sp)
/* f069c54: 27a400a8 */ addiu $a0,$sp,0xa8
/* f069c58: 27a50058 */ addiu $a1,$sp,0x58
/* f069c5c: 27a60050 */ addiu $a2,$sp,0x50
/* f069c60: 0c00ae22 */ jal cd0002a440
/* f069c64: 24e70058 */ addiu $a3,$a3,0x58
/* f069c68: 18400047 */ blez $v0,.NB0f069d88
/* f069c6c: c7ae00b4 */ lwc1 $f14,0xb4($sp)
/* f069c70: 27a400a8 */ addiu $a0,$sp,0xa8
/* f069c74: 27a50058 */ addiu $a1,$sp,0x58
/* f069c78: 0fc19d26 */ jal objFindByPos
/* f069c7c: e7ae00b4 */ swc1 $f14,0xb4($sp)
/* f069c80: 10400038 */ beqz $v0,.NB0f069d64
/* f069c84: c7ae00b4 */ lwc1 $f14,0xb4($sp)
/* f069c88: 8c440014 */ lw $a0,0x14($v0)
/* f069c8c: e7ae00b4 */ swc1 $f14,0xb4($sp)
/* f069c90: 27a50034 */ addiu $a1,$sp,0x34
/* f069c94: 0fc1953e */ jal propUpdateGeometry
/* f069c98: 27a60030 */ addiu $a2,$sp,0x30
/* f069c9c: 10400027 */ beqz $v0,.NB0f069d3c
/* f069ca0: c7ae00b4 */ lwc1 $f14,0xb4($sp)
/* f069ca4: 8faf0034 */ lw $t7,0x34($sp)
/* f069ca8: 24010002 */ addiu $at,$zero,0x2
/* f069cac: c7a60050 */ lwc1 $f6,0x50($sp)
/* f069cb0: 91f80000 */ lbu $t8,0x0($t7)
/* f069cb4: 17010021 */ bne $t8,$at,.NB0f069d3c
/* f069cb8: 00000000 */ sll $zero,$zero,0x0
/* f069cbc: c5e40004 */ lwc1 $f4,0x4($t7)
/* f069cc0: 8fa400c0 */ lw $a0,0xc0($sp)
/* f069cc4: 4604303c */ c.lt.s $f6,$f4
/* f069cc8: 00000000 */ sll $zero,$zero,0x0
/* f069ccc: 4500001b */ bc1f .NB0f069d3c
/* f069cd0: 00000000 */ sll $zero,$zero,0x0
/* f069cd4: afaf002c */ sw $t7,0x2c($sp)
/* f069cd8: 0fc1a623 */ jal func0f06a620
/* f069cdc: e7ae00b4 */ swc1 $f14,0xb4($sp)
/* f069ce0: c7ae00b4 */ lwc1 $f14,0xb4($sp)
/* f069ce4: 8fb90028 */ lw $t9,0x28($sp)
/* f069ce8: c7aa0050 */ lwc1 $f10,0x50($sp)
/* f069cec: 46147181 */ sub.s $f6,$f14,$f20
/* f069cf0: c7220004 */ lwc1 $f2,0x4($t9)
/* f069cf4: 8fa2002c */ lw $v0,0x2c($sp)
/* f069cf8: 46023102 */ mul.s $f4,$f6,$f2
/* f069cfc: c4480008 */ lwc1 $f8,0x8($v0)
/* f069d00: 46045180 */ add.s $f6,$f10,$f4
/* f069d04: 46060280 */ add.s $f10,$f0,$f6
/* f069d08: 460a403c */ c.lt.s $f8,$f10
/* f069d0c: 00000000 */ sll $zero,$zero,0x0
/* f069d10: 4500000a */ bc1f .NB0f069d3c
/* f069d14: 00000000 */ sll $zero,$zero,0x0
/* f069d18: 46141182 */ mul.s $f6,$f2,$f20
/* f069d1c: c4440004 */ lwc1 $f4,0x4($v0)
/* f069d20: 8fa900c0 */ lw $t1,0xc0($sp)
/* f069d24: 46062201 */ sub.s $f8,$f4,$f6
/* f069d28: e7a800ac */ swc1 $f8,0xac($sp)
/* f069d2c: 8d2a0040 */ lw $t2,0x40($t1)
/* f069d30: 354b8000 */ ori $t3,$t2,0x8000
/* f069d34: 10000014 */ beqz $zero,.NB0f069d88
/* f069d38: ad2b0040 */ sw $t3,0x40($t1)
.NB0f069d3c:
/* f069d3c: 0fc1a623 */ jal func0f06a620
/* f069d40: 8fa400c0 */ lw $a0,0xc0($sp)
/* f069d44: 8fac0028 */ lw $t4,0x28($sp)
/* f069d48: c7aa0050 */ lwc1 $f10,0x50($sp)
/* f069d4c: c5840004 */ lwc1 $f4,0x4($t4)
/* f069d50: 4604a182 */ mul.s $f6,$f20,$f4
/* f069d54: 46065201 */ sub.s $f8,$f10,$f6
/* f069d58: 46080100 */ add.s $f4,$f0,$f8
/* f069d5c: 1000000a */ beqz $zero,.NB0f069d88
/* f069d60: e7a400ac */ swc1 $f4,0xac($sp)
.NB0f069d64:
/* f069d64: 0fc1a623 */ jal func0f06a620
/* f069d68: 8fa400c0 */ lw $a0,0xc0($sp)
/* f069d6c: 8fad0028 */ lw $t5,0x28($sp)
/* f069d70: c7aa0050 */ lwc1 $f10,0x50($sp)
/* f069d74: c5a60004 */ lwc1 $f6,0x4($t5)
/* f069d78: 4606a202 */ mul.s $f8,$f20,$f6
/* f069d7c: 46085101 */ sub.s $f4,$f10,$f8
/* f069d80: 46040180 */ add.s $f6,$f0,$f4
/* f069d84: e7a600ac */ swc1 $f6,0xac($sp)
.NB0f069d88:
/* f069d88: 8fa400c4 */ lw $a0,0xc4($sp)
/* f069d8c: 8fa500cc */ lw $a1,0xcc($sp)
/* f069d90: 27a600a8 */ addiu $a2,$sp,0xa8
/* f069d94: 0fc19437 */ jal func0f065e74
/* f069d98: 27a70058 */ addiu $a3,$sp,0x58
/* f069d9c: 8fa400c0 */ lw $a0,0xc0($sp)
/* f069da0: 27a500a8 */ addiu $a1,$sp,0xa8
/* f069da4: 27a60068 */ addiu $a2,$sp,0x68
/* f069da8: 0fc1a5fb */ jal func0f06a580
/* f069dac: 27a70058 */ addiu $a3,$sp,0x58
/* f069db0: 8fbf001c */ lw $ra,0x1c($sp)
/* f069db4: d7b40010 */ ldc1 $f20,0x10($sp)
/* f069db8: 27bd00c0 */ addiu $sp,$sp,0xc0
/* f069dbc: 03e00008 */ jr $ra
/* f069dc0: 00000000 */ sll $zero,$zero,0x0
);
#endif
// Mismatch: Floating point pain, and sp50 needs to prefer t0 rather than v0
//void func0f06a730(struct defaultobj *obj, struct coord *arg1, Mtxf *mtx, s16 *rooms, struct coord *centre)
//{
// struct modelrodata_bbox *bbox; // c4
// f32 min;
// f32 max; // bc
// struct coord spb0;
// Mtxf sp70;
// s16 sp60[8];
// f32 sp58;
// s32 sp50;
// s32 sp4c;
// u8 *sp3c;
// u8 *sp38;
// f32 curval;
// f32 bestval;
//
// bbox = modelFindBboxRodata(obj->model);
// min = modelBboxGetYMin(bbox);
// max = modelBboxGetYMax(bbox);
//
// if (obj->flags & OBJFLAG_00000004) {
// mtx4LoadZRotation(M_BADPI, &sp70);
// mtx4MultMtx4InPlace(mtx, &sp70);
//
// spb0.f[0] = centre->f[0] - sp70.m[1][0] * max;
// spb0.f[1] = centre->f[1] - sp70.m[1][1] * max;
// spb0.f[2] = centre->f[2] - sp70.m[1][2] * max;
// } else if (obj->flags & OBJFLAG_00000008) {
// mtx4Copy(mtx, &sp70);
//
// spb0.f[0] = centre->f[0] - sp70.m[1][0] * min;
// spb0.f[1] = centre->f[1] - sp70.m[1][1] * min;
// spb0.f[2] = centre->f[2] - sp70.m[1][2] * min;
// } else {
// mtx4Copy(mtx, &sp70);
//
// curval = sp70.m[0][1];
//
// if (curval < 0.0f) {
// curval = -curval;
// }
//
// sp50 = 0;
// sp4c = 0;
//
// if (sp70.m[0][1] < 0.0f) {
// sp4c = 1;
// }
//
// bestval = curval;
//
// curval = sp70.m[1][1];
//
// if (curval < 0.0f) {
// curval = -curval;
// }
//
// if (bestval < curval) {
// sp50 = 1;
// sp4c = 0;
// bestval = curval;
//
// if (sp70.m[1][1] < 0.0f) {
// sp4c = 1;
// }
// }
//
// curval = sp70.m[2][1];
//
// if (curval < 0.0f) {
// curval = -curval;
// }
//
// if (bestval < curval) {
// sp50 = 2;
// sp4c = 0;
//
// if (sp70.m[2][1] < 0.0f) {
// sp4c = 1;
// }
// }
//
// if (sp50 == 0) {
// min = modelBboxGetXMin(bbox);
// max = modelBboxGetXMax(bbox);
// } else if (sp50 == 2) {
// min = modelBboxGetZMin(bbox);
// max = modelBboxGetZMax(bbox);
// }
//
// if (sp70.m[sp50][0]);
//
// if (sp4c) {
// f32 tmp = min;
// min = max;
// max = tmp;
// }
//
// spb0.x = centre->x - sp70.m[sp50][0] * min;
// spb0.y = centre->y - sp70.m[sp50][1] * min;
// spb0.z = centre->z - sp70.m[sp50][2] * min;
//
// func0f065e74(arg1, rooms, &spb0, sp60);
//
//#if VERSION >= VERSION_NTSC_1_0
// if (cd0002a440(&spb0, sp60, &sp58, &obj->floorcol, NULL) > 0)
//#else
// if (cd0002a440(&spb0, sp60, &sp58, &obj->floorcol) > 0)
//#endif
// {
// struct defaultobj *obj2 = objFindByPos(&spb0, sp60);
//
// if (obj2) {
// bool updated = propUpdateGeometry(obj2->prop, &sp3c, &sp38);
// struct geoblock *tile2 = (struct geoblock *)sp3c;
//
// if (updated
// && sp3c[0] == GEOTYPE_BLOCK
// && tile2->ymax > sp58
// && tile2->ymin < sp58 + (max - min) * sp70.m[sp50][1] + func0f06a620(obj)) {
// spb0.y = tile2->ymax - sp70.m[sp50][1] * min;
// obj->hidden |= OBJHFLAG_00008000;
// } else {
// spb0.y = sp58 - min * sp70.m[sp50][1] + func0f06a620(obj);
// }
// } else {
// spb0.y = sp58 - min * sp70.m[sp50][1] + func0f06a620(obj);
// }
// }
// }
//
// func0f065e74(arg1, rooms, &spb0, sp60);
// func0f06a580(obj, &spb0, &sp70, sp60);
//}
void func0f06ab60(struct defaultobj *obj, struct coord *arg1, Mtxf *arg2, s16 *rooms, struct coord *arg4)
{
struct modelrodata_bbox *bbox;
f32 mult;
struct coord newpos;
s16 newrooms[8];
Mtxf sp5c;
Mtxf sp1c;
bbox = modelFindBboxRodata(obj->model);
mult = modelBboxGetZMin(bbox);
mtx4LoadXRotation(4.7116389274597f, &sp5c);
mtx4LoadYRotation(M_BADPI, &sp1c);
mtx4MultMtx4InPlace(&sp1c, &sp5c);
mtx4MultMtx4InPlace(arg2, &sp5c);
newpos.x = arg4->x - sp5c.m[2][0] * mult;
newpos.y = arg4->y - sp5c.m[2][1] * mult;
newpos.z = arg4->z - sp5c.m[2][2] * mult;
func0f065e74(arg1, rooms, &newpos, newrooms);
func0f06a580(obj, &newpos, &sp5c, newrooms);
}
void objEndFlight(struct defaultobj *obj)
{
if (obj->hidden & OBJHFLAG_AIRBORNE) {
projectileFree(obj->projectile);
obj->projectile = NULL;
obj->hidden &= ~OBJHFLAG_AIRBORNE;
}
}
void func0f06ac90(struct prop *prop)
{
if (prop && prop->obj) {
struct defaultobj *obj = prop->obj;
if (obj->hidden & OBJHFLAG_EMBEDDED) {
if (obj->embedment) {
if (obj->embedment->projectile) {
projectileFree(obj->embedment->projectile);
}
embedmentFree(obj->embedment);
}
obj->embedment = NULL;
obj->hidden &= ~OBJHFLAG_EMBEDDED;
} else if (obj->hidden & OBJHFLAG_AIRBORNE) {
objEndFlight(obj);
}
}
}
/**
* Remove an object from the game world by clearing all references to it.
*
* If freeprop is true, the obj's prop will be returned to the freeprops list.
* Child objects such as attached knives and mines will always have their props
* freed.
*/
void objFree(struct defaultobj *obj, bool freeprop, bool canregen)
{
struct prop *child;
if (obj->type == OBJTYPE_WEAPON) {
struct weaponobj *weapon = (struct weaponobj *) obj;
if (weapon->dualweapon) {
weapon->dualweapon->dualweapon = NULL;
weapon->dualweapon = NULL;
}
if (weapon->weaponnum == WEAPON_PROXIMITYMINE) {
weaponUnregisterProxy(weapon);
}
if (weapon->weaponnum == WEAPON_DRAGON && weapon->gunfunc == FUNC_SECONDARY) {
weaponUnregisterProxy(weapon);
}
if (weapon->weaponnum == WEAPON_NBOMB && weapon->gunfunc == FUNC_SECONDARY) {
weaponUnregisterProxy(weapon);
}
if (weapon->weaponnum == WEAPON_GRENADE && weapon->gunfunc == FUNC_SECONDARY) {
weaponUnregisterProxy(weapon);
smokeClearForProp(obj->prop);
}
if (weapon->weaponnum == WEAPON_BOLT) {
s32 beammnum = boltbeamFindByProp(obj->prop);
if (beammnum != -1) {
boltbeamSetAutomatic(beammnum, 1400);
}
}
if (g_Vars.normmplayerisrunning
&& weapon->weaponnum == WEAPON_SKROCKET
&& obj->projectile
&& obj->projectile->ownerprop) {
s32 i;
for (i = 0; i < g_MpNumChrs; i++) {
if (g_MpAllChrPtrs[i]->aibot && g_MpAllChrPtrs[i]->aibot->skrocket == obj->prop) {
g_MpAllChrPtrs[i]->aibot->skrocket = NULL;
}
}
}
} else if (obj->type == OBJTYPE_TINTEDGLASS) {
struct tintedglassobj *glass = (struct tintedglassobj *) obj;
if (glass->portalnum >= 0) {
portalSetXluFrac(glass->portalnum, 1);
portalSetOpen(glass->portalnum, true);
g_BgPortals[glass->portalnum].flags |= PORTALFLAG_FORCEOPEN;
}
} else if (obj->type == OBJTYPE_GLASS) {
struct glassobj *glass = (struct glassobj *) obj;
if (glass->portalnum >= 0) {
portalSetXluFrac(glass->portalnum, 1);
}
} else if (obj->type == OBJTYPE_DOOR) {
struct doorobj *door = (struct doorobj *) obj;
doorActivatePortal(door);
if (door->portalnum >= 0) {
g_BgPortals[door->portalnum].flags |= PORTALFLAG_FORCEOPEN;
}
}
if (obj->prop) {
s32 prevplayernum = g_Vars.currentplayernum;
s32 i;
for (i = 0; i < PLAYERCOUNT(); i++) {
setCurrentPlayerNum(i);
if (obj->prop == bmoveGetGrabbedProp() || obj->prop == bmoveGetHoverbike()) {
bmoveSetMode(MOVEMODE_WALK);
}
invRemoveProp(obj->prop);
}
setCurrentPlayerNum(prevplayernum);
// If obj is an occupied chair, remove the chr from it
if (obj->hidden & OBJHFLAG_OCCUPIEDCHAIR) {
s32 numchrs = chrsGetNumSlots();
s32 i;
obj->hidden &= ~OBJHFLAG_OCCUPIEDCHAIR;
for (i = 0; i < numchrs; i++) {
// @bug: Should be ==, but this isn't a problem because occupied
// chairs are never removed using this code. If they were, and
// the propnum was > 0, all chrs would be disassociated with
// their chairs but their chairs would still have the occupied
// flag. If the propnum was 0, all chrs would be assigned to
// this one chair, and their original chairs would still have
// the occupied flag.
if (g_ChrSlots[i].proppreset1 = obj->prop - g_Vars.props) {
g_ChrSlots[i].proppreset1 = -1;
}
}
}
// Remove references from aibots if the obj is the item being fetched
if (g_Vars.normmplayerisrunning) {
s32 i;
for (i = 0; i < g_MpNumChrs; i++) {
if (g_MpAllChrPtrs[i]->aibot && g_MpAllChrPtrs[i]->aibot->gotoprop == obj->prop) {
g_MpAllChrPtrs[i]->aibot->gotoprop = NULL;
}
}
}
func0f0926bc(obj->prop, 1, 0xffff);
shieldhitsRemoveByProp(obj->prop);
chrClearReferences(obj->prop - g_Vars.props);
projectilesUnrefOwner(obj->prop);
wallhitsFreeByProp(obj->prop, 0);
wallhitsFreeByProp(obj->prop, 1);
func0f06ac90(obj->prop);
child = obj->prop->child;
while (child) {
struct prop *next = child->next;
objFreePermanently(child->obj, true);
child = next;
}
if (!canregen) {
if (obj->prop->parent) {
objDetach(obj->prop);
}
propDeregisterRooms(obj->prop);
if (obj->prop->type != PROPTYPE_DOOR) {
modelFreeVertices(1, obj->model);
}
modelFree(obj->model);
if (freeprop) {
propDelist(obj->prop);
propDisable(obj->prop);
propFree(obj->prop);
}
obj->prop->obj = NULL;
obj->prop = NULL;
}
}
}
void objFreePermanently(struct defaultobj *obj, bool freeprop)
{
objFree(obj, freeprop, false);
}
f32 objGetWidth(struct defaultobj *obj)
{
if (obj->type == OBJTYPE_KEY) {
return 20;
}
return 10;
}
bool func0f06b39c(struct coord *arg0, struct coord *arg1, struct coord *arg2, f32 arg3)
{
struct coord sp0c;
f32 value;
sp0c.x = arg2->x - arg0->x;
sp0c.y = arg2->y - arg0->y;
sp0c.z = arg2->z - arg0->z;
value = arg1->f[0] * sp0c.f[0] + arg1->f[1] * sp0c.f[1] + arg1->f[2] * sp0c.f[2];
if (value > 0) {
f32 a = arg1->f[0] * arg1->f[0] + arg1->f[1] * arg1->f[1] + arg1->f[2] * arg1->f[2];
f32 b = sp0c.f[0] * sp0c.f[0] + sp0c.f[1] * sp0c.f[1] + sp0c.f[2] * sp0c.f[2];
if ((b - arg3 * arg3) * a <= value * value) {
return true;
}
}
return false;
}
bool func0f06b488(struct prop *prop, struct coord *arg1, struct coord *arg2, struct coord *arg3, struct coord *arg4, struct coord *arg5, f32 *arg6)
{
struct coord sp3c;
struct coord sp30;
f32 f0;
struct coord sp20;
if (!cd0002ded8(arg1, arg2, prop)) {
#if VERSION >= VERSION_PAL_FINAL
cd00024e4c(&sp3c, &sp30, 2910, "prop/propobj.c");
cdGetPos(&sp20, 2911, "prop/propobj.c");
#elif VERSION >= VERSION_PAL_BETA
cd00024e4c(&sp3c, &sp30, 2910, "propobj.c");
cdGetPos(&sp20, 2911, "propobj.c");
#elif VERSION >= VERSION_NTSC_1_0
cd00024e4c(&sp3c, &sp30, 2909, "propobj.c");
cdGetPos(&sp20, 2910, "propobj.c");
#else
cd00024e4c(&sp3c, &sp30, 2898, "propobj.c");
cdGetPos(&sp20, 2899, "propobj.c");
#endif
f0 = (sp20.f[0] - arg1->f[0]) * arg3->f[0]
+ (sp20.f[1] - arg1->f[1]) * arg3->f[1]
+ (sp20.f[2] - arg1->f[2]) * arg3->f[2];
if (f0 < *arg6) {
*arg6 = f0;
arg4->x = sp20.x;
arg4->y = sp20.y;
arg4->z = sp20.z;
arg5->x = -arg3->x;
arg5->y = 0.0f;
arg5->z = -arg3->z;
if (arg5->x != 0.0f || arg5->z != 0.0f) {
guNormalize(&arg5->x, &arg5->y, &arg5->z);
} else {
arg5->z = 1.0f;
}
g_EmbedProp = prop;
g_EmbedHitPart = 0;
g_EmbedModel = NULL;
g_EmbedNode = NULL;
return true;
}
}
return false;
}
bool func0f06b610(struct defaultobj *obj, struct coord *arg1, struct coord *arg2, struct coord *arg3, f32 arg4, struct coord *arg5, struct coord *arg6, struct coord *arg7, struct coord *arg8, f32 *arg9)
{
struct model *model = obj->model;
f32 f0 = model0001af80(model);
f32 xdiff;
f32 ydiff;
f32 zdiff;
f32 sum1 = 0.0f;
struct prop *prop = obj->prop;
struct prop *child;
bool result = false;
f32 sum2;
struct coord spfc;
struct coord spf0;
struct modelnode *node1;
s32 hitpart;
struct modelnode *spe4 = NULL;
struct hitthing thing1;
s32 mtxindex1;
struct modelnode *node;
struct hitthing thing2;
s32 mtxindex2;
struct modelnode *node2;
f32 sum3;
if (prop->parent == NULL) {
xdiff = prop->pos.f[0] - arg1->f[0];
ydiff = prop->pos.f[1] - arg1->f[1];
zdiff = prop->pos.f[2] - arg1->f[2];
sum1 = xdiff * arg3->f[0] + ydiff * arg3->f[1] + zdiff * arg3->f[2];
}
if (sum1 >= -f0 && sum1 <= arg4 + f0) {
if (prop->flags & PROPFLAG_ONTHISSCREENTHISTICK) {
if (var8005efc0 > 0.0f) {
hitpart = model000225d4(model, arg5, arg6, &spe4);
while (hitpart > 0) {
if (func0f084594(model, spe4, arg5, arg6, &thing1, &mtxindex1, &node1)) {
mtx4TransformVec(&model->matrices[mtxindex1], &thing1.unk00, &spfc);
sum2 = (spfc.f[0] - arg5->f[0]) * arg6->f[0]
+ (spfc.f[1] - arg5->f[1]) * arg6->f[1]
+ (spfc.f[2] - arg5->f[2]) * arg6->f[2];
if (sum2 < *arg9) {
mtx4RotateVec(&model->matrices[mtxindex1], &thing1.unk0c, &spf0);
*arg9 = sum2;
mtx4TransformVec(camGetProjectionMtxF(), &spfc, arg7);
mtx4RotateVec(camGetProjectionMtxF(), &spf0, arg8);
if (arg8->x != 0.0f || arg8->y != 0.0f || arg8->z != 0.0f) {
guNormalize(&arg8->x, &arg8->y, &arg8->z);
} else {
arg8->z = 1.0f;
}
g_EmbedProp = prop;
g_EmbedModel = model;
g_EmbedHitPart = hitpart;
g_EmbedNode = spe4;
var80069938 = thing1.unk28 / 2;
var8006993c[0] = thing1.unk00.x;
var8006993c[1] = thing1.unk00.y;
var8006993c[2] = thing1.unk00.z;
result = 1;
}
}
hitpart = model000225d4(model, arg5, arg6, &spe4);
}
} else {
do {
hitpart = model000225d4(model, arg5, arg6, &spe4);
if (hitpart > 0) {
if (func0f0849dc(model, spe4, arg5, arg6, &thing1, &mtxindex1, &node1)) {
break;
}
}
} while (hitpart > 0);
if (obj->flags3 & OBJFLAG3_HOVERBEDSHIELD) {
node = modelGetPart(model->filedata, MODELPART_BASIC_0067);
if (node && func0f084594(model, node, arg5, arg6, &thing2, &mtxindex2, &node2)) {
if (hitpart <= 0 ||
+ model->matrices[mtxindex2].m[0][2] * thing2.unk00.f[0]
+ model->matrices[mtxindex2].m[1][2] * thing2.unk00.f[1]
+ model->matrices[mtxindex2].m[2][2] * thing2.unk00.f[2]
>
+ model->matrices[mtxindex1].m[0][2] * thing1.unk00.f[0]
+ model->matrices[mtxindex1].m[1][2] * thing1.unk00.f[1]
+ model->matrices[mtxindex1].m[2][2] * thing1.unk00.f[2]
) {
hitpart = 1;
thing1 = thing2;
mtxindex1 = mtxindex2;
node1 = node2;
thing1.texturenum = 10000;
}
}
}
if (hitpart > 0) {
mtx4TransformVec(&model->matrices[mtxindex1], &thing1.unk00, &spfc);
sum3 = (spfc.f[0] - arg5->f[0]) * arg6->f[0]
+ (spfc.f[1] - arg5->f[1]) * arg6->f[1]
+ (spfc.f[2] - arg5->f[2]) * arg6->f[2];
if (sum3 >= 0.0f && sum3 <= *arg9) {
mtx4RotateVec(&model->matrices[mtxindex1], &thing1.unk0c, &spf0);
*arg9 = sum1;
mtx4TransformVec(camGetProjectionMtxF(), &spfc, arg7);
if (spf0.f[0] * arg6->f[0] + spf0.f[1] * arg6->f[1] + spf0.f[2] * arg6->f[2] > 0.0f) {
spf0.f[0] = -spf0.f[0];
spf0.f[1] = -spf0.f[1];
spf0.f[2] = -spf0.f[2];
}
mtx4RotateVec(camGetProjectionMtxF(), &spf0, arg8);
if (arg8->f[0] != 0.0f || arg8->f[1] != 0.0f || arg8->f[2] != 0.0f) {
guNormalize(&arg8->x, &arg8->y, &arg8->z);
} else {
arg8->z = 1.0f;
}
g_EmbedProp = prop;
g_EmbedHitPart = hitpart;
g_EmbedModel = model;
g_EmbedNode = node1;
var80069944 = thing1.texturenum;
result = true;
if (thing1.texturenum == 10000) {
var80069938 = thing1.unk28 / 2;
var8006993c[0] = thing1.unk00.x;
var8006993c[1] = thing1.unk00.y;
var8006993c[2] = thing1.unk00.z;
}
}
}
}
} else {
if (func0f06b39c(arg1, arg3, &prop->pos, model0001af80(model))
&& func0f06b488(prop, arg1, arg2, arg3, arg7, arg8, arg9)) {
g_EmbedModel = model;
g_EmbedNode = model->filedata->rootnode;
result = true;
}
}
}
if (prop->flags & PROPFLAG_ONTHISSCREENTHISTICK) {
child = prop->child;
while (child) {
if (child->flags & PROPFLAG_ONTHISSCREENTHISTICK) {
if (func0f06b610(child->obj, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9)) {
result = true;
}
}
child = child->next;
}
}
return result;
}
s32 func0f06be44(struct modelnode *rootnode)
{
s32 count = 0;
struct modelnode *node = rootnode;
while (node) {
count++;
if (node->child) {
count += func0f06be44(node->child);
}
node = node->next;
}
return count;
}
bool func0f06bea0(struct model *model, struct modelnode *endnode, struct modelnode *node, struct coord *arg3, struct coord *arg4, void *arg5, f32 *arg6, struct modelnode **arg7, s32 *hitpart, s32 *arg9, struct modelnode **arg10)
{
u32 stack;
union modelrodata *rodata;
bool ok = false;
f32 sp98 = MAXFLOAT;
Gfx *s4;
Gfx *s6;
struct gfxvtx *vertices;
struct modelnode *sp88;
struct modelnode *sp84 = NULL;
bool s7;
struct coord sp74;
struct modelrwdata_dl *rwdata;
vertices = NULL;
s7 = false;
var8005efc0 = 2.5f / model->scale;
sp74.x = arg3->x + arg4->f[0] * 32767.0f;
sp74.y = arg3->y + arg4->f[1] * 32767.0f;
sp74.z = arg3->z + arg4->f[2] * 32767.0f;
g_Vars.hitboundscount = 0;
while (node) {
u32 type = node->type & 0xff;
s4 = NULL;
s6 = NULL;
switch (type) {
case MODELNODETYPE_BBOX:
rodata = node->rodata;
if (model000220fc(&rodata->bbox, model0001a5cc(model, node, 0), arg3, arg4)) {
s7 = true;
sp84 = node;
if (g_Vars.hitboundscount < ARRAYCOUNT(g_Vars.hitnodes)) {
g_Vars.hitnodes[g_Vars.hitboundscount] = node;
g_Vars.hitboundscount++;
}
} else {
s7 = false;
var8005efc0 = 10.0f / model->scale;
if (model000220fc(&rodata->bbox, model0001a5cc(model, node, 0), arg3, arg4)) {
if (g_Vars.hitboundscount < ARRAYCOUNT(g_Vars.hitnodes)) {
g_Vars.hitnodes[g_Vars.hitboundscount] = node;
g_Vars.hitboundscount++;
}
}
var8005efc0 = 2.5f / model->scale;
}
break;
case MODELNODETYPE_DL:
if (s7) {
rodata = node->rodata;
rwdata = modelGetNodeRwData(model, node);
if (rwdata->gdl != NULL) {
if (rwdata->gdl == rodata->dl.primary) {
s4 = (Gfx *)((u32)rodata->dl.colourtable + ((u32)rodata->dl.primary & 0xffffff));
} else {
s4 = rwdata->gdl;
}
if (rodata->dl.secondary != NULL) {
s6 = (Gfx *)((u32)rodata->dl.colourtable + ((u32)rodata->dl.secondary & 0xffffff));
}
vertices = rwdata->vertices;
}
}
break;
case MODELNODETYPE_GUNDL:
if (s7) {
if (node->rodata->gundl.primary != NULL) {
s32 base = (s32)node->rodata->gundl.baseaddr;
s4 = (Gfx *)(base + ((u32)node->rodata->gundl.primary & 0xffffff));
if (node->rodata->gundl.secondary != NULL) {
s6 = (Gfx *)(base + ((u32)node->rodata->gundl.secondary & 0xffffff));
}
vertices = (struct gfxvtx *)base;
}
}
break;
case MODELNODETYPE_DISTANCE:
model0001c784(model, node);
break;
case MODELNODETYPE_TOGGLE:
model0001c7d0(model, node);
break;
case MODELNODETYPE_HEADSPOT:
modelAttachHead(model, node);
break;
}
if (s4 && func0f15ffdc(model, arg3, &sp74, arg4, s4, s6, vertices, &sp98, arg5)) {
ok = true;
sp88 = node;
*arg7 = sp84;
*hitpart = sp84->rodata->bbox.hitpart;
}
if (node->child) {
node = node->child;
} else {
while (node) {
if (node == endnode) {
node = NULL;
break;
}
if (node->next) {
node = node->next;
break;
}
node = node->parent;
}
}
}
if (ok) {
*arg6 = sqrtf(sp98);
*arg10 = sp88;
*arg9 = model0001a524(sp88, 0);
}
var8005efc0 = 0.0f;
return ok;
}
bool func0f06c28c(struct chrdata *chr, struct coord *arg1, struct coord *arg2, struct coord *arg3, f32 arg4, struct coord *arg5, struct coord *arg6, struct coord *arg7, struct coord *arg8, f32 *arg9)
{
f32 spec;
struct prop *prop = chr->prop;
f32 spe4 = chr0f0278a4(chr);
f32 x = (prop->pos.f[0] - arg1->f[0]);
f32 y = (prop->pos.f[1] - arg1->f[1]);
f32 z = (prop->pos.f[2] - arg1->f[2]);
f32 spd4 = x * arg3->f[0] + y * arg3->f[1] + z * arg3->f[2];
s32 hitpart = 0;
struct modelnode *spcc = NULL;
bool result = false;
struct prop *child;
struct coord spb8;
struct coord spac;
struct hitthing sp7c;
s32 sp78 = 0;
struct modelnode *sp74 = NULL;
struct model *model = chr->model;
if (chrGetShield(chr) > 0.0f) {
var8005efc0 = 10.0f / chr->model->scale;
}
if (-spe4 <= spd4 && spd4 <= arg4 + spe4 && func0f06b39c(arg1, arg3, &prop->pos, spe4)) {
if ((prop->flags & PROPFLAG_ONTHISSCREENTHISTICK)) {
if (var8005efc0 > 0.0f) {
hitpart = model000225d4(model, arg5, arg6, &spcc);
while (hitpart > 0) {
if (func0f084594(model, spcc, arg5, arg6, &sp7c, &sp78, &sp74)) {
mtx4TransformVec(&model->matrices[sp78], &sp7c.unk00, &spb8);
spec = (spb8.f[0] - arg5->f[0]) * arg6->f[0]
+ (spb8.f[1] - arg5->f[1]) * arg6->f[1]
+ (spb8.f[2] - arg5->f[2]) * arg6->f[2];
if (spec < *arg9) {
mtx4RotateVec(&model->matrices[sp78], &sp7c.unk0c, &spac);
*arg9 = spec;
mtx4TransformVec(camGetProjectionMtxF(), &spb8, arg7);
mtx4RotateVec(camGetProjectionMtxF(), &spac, arg8);
if (arg8->x != 0.0f || arg8->y != 0.0f || arg8->z != 0.0f) {
guNormalize(&arg8->x, &arg8->y, &arg8->z);
} else {
arg8->z = 1.0f;
}
g_EmbedProp = prop;
g_EmbedModel = model;
g_EmbedHitPart = hitpart;
g_EmbedNode = spcc;
var80069938 = sp7c.unk28 / 2;
var8006993c[0] = sp7c.unk00.x;
var8006993c[1] = sp7c.unk00.y;
var8006993c[2] = sp7c.unk00.z;
result = true;
}
}
hitpart = model000225d4(model, arg5, arg6, &spcc);
}
} else {
hitpart = model000225d4(model, arg5, arg6, &spcc);
if (hitpart > 0
&& func0f06bea0(model, model->filedata->rootnode, model->filedata->rootnode, arg5, arg6, &sp7c.unk00, &spec, &spcc, &hitpart, &sp78, &sp74)
&& spec < *arg9) {
*arg9 = spec;
mtx4TransformVec(camGetProjectionMtxF(), &sp7c.unk00, arg7);
mtx4RotateVec(camGetProjectionMtxF(), &sp7c.unk0c, arg8);
if (arg8->x != 0.0f || arg8->y != 0.0f || arg8->z != 0.0f) {
guNormalize(&arg8->x, &arg8->y, &arg8->z);
} else {
arg8->z = 1.0f;
}
g_EmbedProp = prop;
g_EmbedModel = model;
g_EmbedHitPart = hitpart;
g_EmbedNode = spcc;
result = true;
}
}
} else if (func0f06b488(prop, arg1, arg2, arg3, arg7, arg8, arg9)) {
g_EmbedHitPart = HITPART_TORSO;
result = true;
}
}
if (prop->flags & PROPFLAG_ONTHISSCREENTHISTICK) {
child = prop->child;
while (child) {
if (child->flags & PROPFLAG_ONTHISSCREENTHISTICK) {
if (func0f06b610(child->obj, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9)) {
result = true;
}
}
child = child->next;
}
}
if (var8005efc0 > 0.0f) {
var8005efc0 = 0.0f;
}
return result;
}
bool projectileFindCollidingProp(struct prop *prop, struct coord *pos1, struct coord *pos2, u32 cdtypes, struct coord *arg4, struct coord *arg5, s16 *rooms)
{
bool result = false;
f32 dist;
s16 *propnumptr;
s16 propnums[256];
f32 spa8;
bool spa4 = false;
struct coord sp98;
f32 tmp;
struct coord sp88;
struct coord sp7c;
struct chrdata *chr;
sp98.x = pos2->x - pos1->x;
sp98.y = pos2->y - pos1->y;
sp98.z = pos2->z - pos1->z;
dist = sqrtf(sp98.f[0] * sp98.f[0] + sp98.f[1] * sp98.f[1] + sp98.f[2] * sp98.f[2]);
if (dist == 0.0f) {
return false;
}
tmp = 1.0f / dist;
sp98.x *= tmp;
sp98.y *= tmp;
sp98.z *= tmp;
sp88.x = pos1->x;
sp88.y = pos1->y;
sp88.z = pos1->z;
mtx4TransformVecInPlace(camGetWorldToScreenMtxf(), &sp88);
sp7c.x = sp98.x;
sp7c.y = sp98.y;
sp7c.z = sp98.z;
mtx4RotateVecInPlace(camGetWorldToScreenMtxf(), &sp7c);
spa8 = dist;
if (cdtypes != 0) {
roomGetProps(rooms, propnums, 256);
for (propnumptr = propnums; *propnumptr >= 0; propnumptr++) {
struct prop *iterprop = &g_Vars.props[*propnumptr];
if (*propnumptr);
if (iterprop != prop) {
if (iterprop->type == PROPTYPE_OBJ
|| iterprop->type == PROPTYPE_WEAPON
|| iterprop->type == PROPTYPE_DOOR) {
struct defaultobj *obj = iterprop->obj;
if ((obj->hidden & OBJHFLAG_ISRETICK) == 0 && (obj->flags2 & OBJFLAG2_THROWTHROUGH) == 0) {
if (iterprop->type == PROPTYPE_DOOR) {
if ((cdtypes & CDTYPE_DOORS) == 0 && (propDoorGetCdTypes(iterprop) & cdtypes) == 0) {
continue;
}
} else {
if ((cdtypes & CDTYPE_OBJS) == 0) {
continue;
}
}
if (func0f06b610(obj, pos1, pos2, &sp98, dist, &sp88, &sp7c, arg4, arg5, &spa8)) {
spa4 = true;
}
}
} else if (iterprop->type == PROPTYPE_CHR
|| (iterprop->type == PROPTYPE_PLAYER && g_Vars.players[playermgrGetPlayerNumByProp(iterprop)]->haschrbody)) {
struct chrdata *chr = iterprop->chr;
if (iterprop->type == PROPTYPE_PLAYER) {
if (!g_Vars.players[playermgrGetPlayerNumByProp(iterprop)]->bondperimenabled || (cdtypes & CDTYPE_PLAYERS) == 0) {
continue;
}
} else if (iterprop->type == PROPTYPE_CHR) {
if ((chr->hidden & CHRHFLAG_PERIMDISABLED)
|| (chr->chrflags & CHRCFLAG_HIDDEN)
|| (cdtypes & CDTYPE_CHRS) == 0) {
continue;
}
}
if (func0f06c28c(chr, pos1, pos2, &sp98, dist, &sp88, &sp7c, arg4, arg5, &spa8)) {
spa4 = true;
}
} else if (iterprop->type == PROPTYPE_PLAYER
&& g_Vars.players[playermgrGetPlayerNumByProp(iterprop)]->bondperimenabled) {
if (func0f06b488(iterprop, pos1, pos2, &sp98, arg4, arg5, &spa8)) {
spa4 = true;
}
}
}
}
}
if (spa4) {
result = true;
var8009ce78.x = sp98.x;
var8009ce78.y = sp98.y;
var8009ce78.z = sp98.z;
var8009ce88.x = sp7c.x;
var8009ce88.y = sp7c.y;
var8009ce88.z = sp7c.z;
}
return result;
}
bool func0f06cd00(struct defaultobj *obj, struct coord *pos, struct coord *arg2, struct coord *arg3)
{
struct prop *prop = obj->prop;
s32 sp200;
struct hitthing hitthing;
struct coord sp1c4;
u32 stack;
bool s0;
s16 spcc[120];
s16 *ptr;
s32 i;
f32 scale = 1.0f;
u32 stack2;
s32 spb8;
u32 stack3[2];
sp200 = true;
if (g_Vars.normmplayerisrunning) {
g_Vars.useperimshoot = true;
}
g_EmbedProp = 0;
var80069944 = 0;
sp1c4.x = pos->x;
sp1c4.y = pos->y;
sp1c4.z = pos->z;
if ((prop->pos.x != pos->x || prop->pos.y != pos->y || prop->pos.z != pos->z)
&& (obj->hidden & OBJHFLAG_AIRBORNE)
&& (obj->projectile->flags & PROJECTILEFLAG_00000004)) {
portal00018148(&prop->pos, &sp1c4, prop->rooms, &spb8, &spcc, 20);
ptr = spcc;
while (*ptr != -1) {
ptr++;
}
roomsGetActive(ptr, 100);
for (i = 0; spcc[i] != -1; i++) {
s0 = false;
if (roomIsLoaded(spcc[i])) {
if (bgCalculateHitInRoom(&prop->pos, &sp1c4, spcc[i], &hitthing)) {
hitthing.unk00.x *= scale;
hitthing.unk00.y *= scale;
hitthing.unk00.z *= scale;
var80069944 = hitthing.texturenum;
s0 = true;
if (g_Textures[hitthing.texturenum].surfacetype == SURFACETYPE_DEEPWATER) {
struct coord spa4 = {0, 0, 0};
s0 = false;
sparksCreate(prop->rooms[0], prop, &hitthing.unk00, &spa4, &hitthing.unk0c, SPARKTYPE_1A);
propsnd0f0939f8(0, prop, SFX_HIT_WATER, -1, -1, 1024, 0, 0, 0, -1.0f, 0, -1, -1.0f, -1.0f, -1.0f);
obj->hidden |= OBJHFLAG_REAPABLE;
}
}
} else {
s16 spa0[2];
spa0[0] = spcc[i];
spa0[1] = -1;
if (cd0002de10(&prop->pos, spa0, &sp1c4, CDTYPE_BG) == CDRESULT_COLLISION) {
s0 = true;
#if VERSION >= VERSION_PAL_FINAL
cdGetPos(&hitthing.unk00, 4258, "prop/propobj.c");
#elif VERSION >= VERSION_PAL_BETA
cdGetPos(&hitthing.unk00, 4258, "propobj.c");
#elif VERSION >= VERSION_NTSC_1_0
cdGetPos(&hitthing.unk00, 4257, "propobj.c");
#else
cdGetPos(&hitthing.unk00, 4246, "propobj.c");
#endif
cd00024ee8(&hitthing.unk0c);
}
}
if (s0
&& ((prop->pos.x <= sp1c4.x && hitthing.unk00.x <= sp1c4.x && prop->pos.x <= hitthing.unk00.x) || (sp1c4.x <= prop->pos.x && sp1c4.x <= hitthing.unk00.x && hitthing.unk00.x <= prop->pos.x))
&& ((prop->pos.y <= sp1c4.y && hitthing.unk00.y <= sp1c4.y && prop->pos.y <= hitthing.unk00.y) || (sp1c4.y <= prop->pos.y && sp1c4.y <= hitthing.unk00.y && hitthing.unk00.y <= prop->pos.y))
&& ((prop->pos.z <= sp1c4.z && hitthing.unk00.z <= sp1c4.z && prop->pos.z <= hitthing.unk00.z) || (sp1c4.z <= prop->pos.z && sp1c4.z <= hitthing.unk00.z && hitthing.unk00.z <= prop->pos.z))
&& (prop->pos.f[0] != hitthing.unk00.f[0] || prop->pos.f[1] != hitthing.unk00.f[1] || prop->pos.f[2] != hitthing.unk00.f[2])) {
sp200 = false;
sp1c4.x = hitthing.unk00.x;
sp1c4.y = hitthing.unk00.y;
sp1c4.z = hitthing.unk00.z;
arg3->x = hitthing.unk0c.x;
arg3->y = hitthing.unk0c.y;
arg3->z = hitthing.unk0c.z;
}
}
if (!projectileFindCollidingProp(prop, &prop->pos, &sp1c4, CDTYPE_ALL, arg2, arg3, spcc)) {
// No collision
if (!sp200) {
arg2->x = sp1c4.x;
arg2->y = sp1c4.y;
arg2->z = sp1c4.z;
}
} else {
// Collision
sp200 = false;
}
if (sp200 != true) {
struct coord dist;
f32 distance;
f32 mult;
dist.x = pos->x - prop->pos.x;
dist.y = pos->y - prop->pos.y;
dist.z = pos->z - prop->pos.z;
distance = sqrtf(dist.f[0] * dist.f[0] + dist.f[1] * dist.f[1] + dist.f[2] * dist.f[2]);
if (distance > 0.1f) {
mult = 0.1f / distance;
} else {
mult = 0.5f;
}
arg2->x -= mult * dist.x;
arg2->y -= mult * dist.y;
arg2->z -= mult * dist.z;
if (arg3->x != 0.0f || arg3->y != 0.0f || arg3->z != 0.0f) {
guNormalize(&arg3->x, &arg3->y, &arg3->z);
} else {
arg3->z = 1.0f;
}
}
}
if (g_Vars.normmplayerisrunning) {
g_Vars.useperimshoot = false;
}
return sp200;
}
bool func0f06d37c(struct defaultobj *obj, struct coord *arg1, struct coord *arg2, struct coord *arg3)
{
struct prop *prop = obj->prop;
f32 width = objGetWidth(obj);
bool result = true;
bool sp98 = false;
struct coord sp8c;
struct coord sp80;
s16 rooms[8];
struct coord sp64;
struct coord sp58;
struct coord sp4c;
f32 f2;
g_EmbedProp = NULL;
var80069944 = 0;
sp80.x = arg1->x;
sp80.y = arg1->y;
sp80.z = arg1->z;
if (prop->pos.x != arg1->x || prop->pos.y != arg1->y || prop->pos.z != arg1->z) {
if (obj->hidden & OBJHFLAG_AIRBORNE) {
if (cd0002dac8(&prop->pos, prop->rooms, &sp80, rooms, width, CDTYPE_ALL, false, 0.0f, 0.0f) != CDRESULT_COLLISION) {
setup0f09233c(obj, &sp80, obj->realrot, rooms);
if (cdTestAToB1(&prop->pos, &sp80, width, rooms, CDTYPE_ALL, false, 0.0f, 0.0f) != CDRESULT_COLLISION) {
prop->pos.x = sp80.x;
prop->pos.y = sp80.y;
prop->pos.z = sp80.z;
propDeregisterRooms(prop);
roomsCopy(rooms, prop->rooms);
} else {
result = false;
}
} else {
result = false;
}
if (!result) {
#if VERSION >= VERSION_PAL_FINAL
cd00024e4c(&sp64, &sp58, 4386, "prop/propobj.c");
#elif VERSION >= VERSION_PAL_BETA
cd00024e4c(&sp64, &sp58, 4386, "propobj.c");
#elif VERSION >= VERSION_NTSC_1_0
cd00024e4c(&sp64, &sp58, 4385, "propobj.c");
#else
cd00024e4c(&sp64, &sp58, 4374, "propobj.c");
#endif
arg3->x = sp58.z - sp64.z;
arg3->y = 0.0f;
arg3->z = sp64.x - sp58.x;
if (arg3->x != 0.0f || arg3->z != 0.0f) {
guNormalize(&arg3->x, &arg3->y, &arg3->z);
} else {
arg3->z = 1.0f;
}
if (sp80.x != prop->pos.x || sp80.y != prop->pos.y || sp80.z != prop->pos.z) {
sp8c.x = sp80.x - prop->pos.x;
sp8c.y = sp80.y - prop->pos.y;
sp8c.z = sp80.z - prop->pos.z;
func0f02e4f8(&prop->pos, &sp8c, arg2);
if (prop->pos.x < sp80.x) {
if (arg2->x > sp80.x) {
arg2->x = sp80.x;
} else if (arg2->x < prop->pos.x) {
arg2->x = prop->pos.x;
}
} else {
if (arg2->x > prop->pos.x) {
arg2->x = prop->pos.x;
} else if (arg2->x < sp80.x) {
arg2->x = sp80.x;
}
}
if (prop->pos.y < sp80.y) {
if (arg2->y > sp80.y) {
arg2->y = sp80.y;
} else if (arg2->y < prop->pos.y) {
arg2->y = prop->pos.y;
}
} else {
if (arg2->y > prop->pos.y) {
arg2->y = prop->pos.y;
} else if (arg2->y < sp80.y) {
arg2->y = sp80.y;
}
}
if (prop->pos.z < sp80.z) {
if (arg2->z > sp80.z) {
arg2->z = sp80.z;
} else if (arg2->z < prop->pos.z) {
arg2->z = prop->pos.z;
}
} else {
if (arg2->z > prop->pos.z) {
arg2->z = prop->pos.z;
} else if (arg2->z < sp80.z) {
arg2->z = sp80.z;
}
}
f2 = cd00024e98() * 0.99f;
sp4c.x = sp8c.x * f2 + prop->pos.x;
sp4c.y = sp80.y;
sp4c.z = sp8c.z * f2 + prop->pos.z;
if (cd0002da50(&prop->pos, prop->rooms, &sp4c, rooms, CDTYPE_ALL, false, 0.0f, 0.0f) != CDRESULT_COLLISION) {
setup0f09233c(obj, &sp4c, obj->realrot, rooms);
if (cdTestVolume(&sp4c, width, rooms, CDTYPE_ALL, false, 0.0f, 0.0f) != CDRESULT_COLLISION) {
prop->pos.x = sp4c.x;
prop->pos.y = sp4c.y;
prop->pos.z = sp4c.z;
propDeregisterRooms(prop);
roomsCopy(rooms, prop->rooms);
sp98 = true;
}
}
} else {
arg2->x = sp80.x;
arg2->y = sp80.y;
arg2->z = sp80.z;
}
if (!sp98) {
sp4c.x = prop->pos.x;
sp4c.y = sp80.y;
sp4c.z = prop->pos.z;
func0f065e74(&prop->pos, prop->rooms, &sp4c, rooms);
prop->pos.y = sp4c.y;
propDeregisterRooms(prop);
roomsCopy(rooms, prop->rooms);
}
}
}
}
return result;
}
/**
* Update a speed and distance travelled, factoring in acceleration,
* deceleration and the global update multiplier.
*
* The new speed and distance done are written back to those pointers.
*/
void applySpeed(f32 *distdone, f32 maxdist, f32 *speedptr, f32 accel, f32 decel, f32 maxspeed)
{
f32 speed = *speedptr;
s32 i;
for (i = 0; i < g_Vars.lvupdate240_60; i++) {
f32 limit = speed * speed * 0.5f / decel;
f32 distremaining = maxdist - *distdone;
if (distremaining > 0.0f) {
if (speed > 0.0f && distremaining <= limit) {
// Slow down for end
speed -= decel;
if (speed < decel) {
speed = decel;
}
} else if (speed < maxspeed) {
// Accelerate
if (speed < 0.0f) {
speed += decel;
} else {
speed += accel;
}
if (speed > maxspeed) {
speed = maxspeed;
}
}
if (speed >= distremaining) {
*distdone = maxdist;
break;
}
*distdone += speed;
} else {
if (speed < 0.0f && -distremaining <= limit) {
speed += decel;
if (speed > -decel) {
speed = -decel;
}
} else if (speed > -maxspeed) {
if (speed > 0.0f) {
speed -= decel;
} else {
speed -= accel;
}
if (speed < -maxspeed) {
speed = -maxspeed;
}
}
if (speed <= distremaining) {
*distdone = maxdist;
break;
}
*distdone += speed;
}
}
*speedptr = speed;
}
void applyRotation(f32 *angle, f32 maxrot, f32 *speed, f32 accel, f32 decel, f32 maxspeed)
{
f32 tmp = maxrot - *angle;
if (tmp < -M_PI) {
maxrot += M_BADTAU;
} else if (tmp >= M_PI) {
maxrot -= M_BADTAU;
}
applySpeed(angle, maxrot, speed, accel, decel, maxspeed);
if (*angle < 0) {
*angle += M_BADTAU;
}
if (*angle >= M_BADTAU) {
*angle -= M_BADTAU;
}
}
GLOBAL_ASM(
glabel func0f06dbd8
.late_rodata
glabel var7f1aa284
.word 0x3d4ccccd
glabel var7f1aa288
.word 0x3f230028
glabel var7f1aa28c
.word 0x3d4ccccd
glabel var7f1aa290
.word 0x3f230028
glabel var7f1aa294
.word 0x3cf5c28f
glabel var7f1aa298
.word 0x3e19999a
.text
/* f06dbd8: 27bdfe60 */ addiu $sp,$sp,-416
/* f06dbdc: afbf0014 */ sw $ra,0x14($sp)
/* f06dbe0: afa501a4 */ sw $a1,0x1a4($sp)
/* f06dbe4: 8c8e0040 */ lw $t6,0x40($a0)
/* f06dbe8: 3c01fffe */ lui $at,0xfffe
/* f06dbec: 3421ffff */ ori $at,$at,0xffff
/* f06dbf0: 01c17824 */ and $t7,$t6,$at
/* f06dbf4: 31f90080 */ andi $t9,$t7,0x80
/* f06dbf8: 00803025 */ or $a2,$a0,$zero
/* f06dbfc: 1320031b */ beqz $t9,.L0f06e86c
/* f06dc00: ac8f0040 */ sw $t7,0x40($a0)
/* f06dc04: 908e0003 */ lbu $t6,0x3($a0)
/* f06dc08: 24010001 */ addiu $at,$zero,0x1
/* f06dc0c: 8c820048 */ lw $v0,0x48($a0)
/* f06dc10: 15c10005 */ bne $t6,$at,.L0f06dc28
/* f06dc14: 27a50148 */ addiu $a1,$sp,0x148
/* f06dc18: 0fc1ab10 */ jal objEndFlight
/* f06dc1c: 00000000 */ nop
/* f06dc20: 10000313 */ b .L0f06e870
/* f06dc24: 8fbf0014 */ lw $ra,0x14($sp)
.L0f06dc28:
/* f06dc28: 8c4f0000 */ lw $t7,0x0($v0)
/* f06dc2c: 2401fffe */ addiu $at,$zero,-2
/* f06dc30: ac400088 */ sw $zero,0x88($v0)
/* f06dc34: 01e1c024 */ and $t8,$t7,$at
/* f06dc38: ac580000 */ sw $t8,0x0($v0)
/* f06dc3c: 370e0400 */ ori $t6,$t8,0x400
/* f06dc40: 2401fffb */ addiu $at,$zero,-5
/* f06dc44: ac4e0000 */ sw $t6,0x0($v0)
/* f06dc48: 01c1c024 */ and $t8,$t6,$at
/* f06dc4c: ac580000 */ sw $t8,0x0($v0)
/* f06dc50: afa601a0 */ sw $a2,0x1a0($sp)
/* f06dc54: afa20068 */ sw $v0,0x68($sp)
/* f06dc58: 0c005755 */ jal mtx3ToMtx4
/* f06dc5c: 24c4001c */ addiu $a0,$a2,0x1c
/* f06dc60: 27a40148 */ addiu $a0,$sp,0x148
/* f06dc64: 0c005976 */ jal mtx4GetRotation
/* f06dc68: 27a50188 */ addiu $a1,$sp,0x188
/* f06dc6c: 27a40188 */ addiu $a0,$sp,0x188
/* f06dc70: 0c005923 */ jal mtx4LoadRotation
/* f06dc74: 27a50108 */ addiu $a1,$sp,0x108
/* f06dc78: 8fa50068 */ lw $a1,0x68($sp)
/* f06dc7c: 27a40188 */ addiu $a0,$sp,0x188
/* f06dc80: 24a50068 */ addiu $a1,$a1,0x68
/* f06dc84: 0fc25b28 */ jal quaternion0f096ca0
/* f06dc88: afa50038 */ sw $a1,0x38($sp)
/* f06dc8c: 27a40108 */ addiu $a0,$sp,0x108
/* f06dc90: 0c005c1c */ jal mtx4LoadRotationFrom
/* f06dc94: 27a500c8 */ addiu $a1,$sp,0xc8
/* f06dc98: 27a400c8 */ addiu $a0,$sp,0xc8
/* f06dc9c: 27a50148 */ addiu $a1,$sp,0x148
/* f06dca0: 0c005680 */ jal mtx4MultMtx4
/* f06dca4: 27a60088 */ addiu $a2,$sp,0x88
/* f06dca8: c7a20088 */ lwc1 $f2,0x88($sp)
/* f06dcac: c7ae008c */ lwc1 $f14,0x8c($sp)
/* f06dcb0: c7a00090 */ lwc1 $f0,0x90($sp)
/* f06dcb4: 46021102 */ mul.s $f4,$f2,$f2
/* f06dcb8: 00000000 */ nop
/* f06dcbc: 460e7182 */ mul.s $f6,$f14,$f14
/* f06dcc0: 46062200 */ add.s $f8,$f4,$f6
/* f06dcc4: 46000282 */ mul.s $f10,$f0,$f0
/* f06dcc8: 0c012974 */ jal sqrtf
/* f06dccc: 46085300 */ add.s $f12,$f10,$f8
/* f06dcd0: 8fb90068 */ lw $t9,0x68($sp)
/* f06dcd4: e72000b8 */ swc1 $f0,0xb8($t9)
/* f06dcd8: c7a40098 */ lwc1 $f4,0x98($sp)
/* f06dcdc: c7aa009c */ lwc1 $f10,0x9c($sp)
/* f06dce0: 46042182 */ mul.s $f6,$f4,$f4
/* f06dce4: 00000000 */ nop
/* f06dce8: 460a5202 */ mul.s $f8,$f10,$f10
/* f06dcec: c7aa00a0 */ lwc1 $f10,0xa0($sp)
/* f06dcf0: 46083100 */ add.s $f4,$f6,$f8
/* f06dcf4: 460a5182 */ mul.s $f6,$f10,$f10
/* f06dcf8: 0c012974 */ jal sqrtf
/* f06dcfc: 46043300 */ add.s $f12,$f6,$f4
/* f06dd00: 8fae0068 */ lw $t6,0x68($sp)
/* f06dd04: e5c000bc */ swc1 $f0,0xbc($t6)
/* f06dd08: c7a800a8 */ lwc1 $f8,0xa8($sp)
/* f06dd0c: c7a600ac */ lwc1 $f6,0xac($sp)
/* f06dd10: 46084282 */ mul.s $f10,$f8,$f8
/* f06dd14: 00000000 */ nop
/* f06dd18: 46063102 */ mul.s $f4,$f6,$f6
/* f06dd1c: c7a600b0 */ lwc1 $f6,0xb0($sp)
/* f06dd20: 46045200 */ add.s $f8,$f10,$f4
/* f06dd24: 46063282 */ mul.s $f10,$f6,$f6
/* f06dd28: 0c012974 */ jal sqrtf
/* f06dd2c: 46085300 */ add.s $f12,$f10,$f8
/* f06dd30: 8faf0068 */ lw $t7,0x68($sp)
/* f06dd34: 240affff */ addiu $t2,$zero,-1
/* f06dd38: 240cffff */ addiu $t4,$zero,-1
/* f06dd3c: e5e000c0 */ swc1 $f0,0xc0($t7)
/* f06dd40: 240bffff */ addiu $t3,$zero,-1
/* f06dd44: afab0194 */ sw $t3,0x194($sp)
/* f06dd48: afac0198 */ sw $t4,0x198($sp)
/* f06dd4c: afaa019c */ sw $t2,0x19c($sp)
/* f06dd50: 0fc1a2bd */ jal objFindBboxRodata
/* f06dd54: 8fa401a0 */ lw $a0,0x1a0($sp)
/* f06dd58: c4440008 */ lwc1 $f4,0x8($v0)
/* f06dd5c: c4460004 */ lwc1 $f6,0x4($v0)
/* f06dd60: 44809000 */ mtc1 $zero,$f18
/* f06dd64: 8faa019c */ lw $t2,0x19c($sp)
/* f06dd68: 46062281 */ sub.s $f10,$f4,$f6
/* f06dd6c: 8fab0194 */ lw $t3,0x194($sp)
/* f06dd70: 8fac0198 */ lw $t4,0x198($sp)
/* f06dd74: 00002825 */ or $a1,$zero,$zero
/* f06dd78: e7aa004c */ swc1 $f10,0x4c($sp)
/* f06dd7c: c444000c */ lwc1 $f4,0xc($v0)
/* f06dd80: c4480010 */ lwc1 $f8,0x10($v0)
/* f06dd84: 27a40058 */ addiu $a0,$sp,0x58
/* f06dd88: 8fa60068 */ lw $a2,0x68($sp)
/* f06dd8c: 46044181 */ sub.s $f6,$f8,$f4
/* f06dd90: 27a7004c */ addiu $a3,$sp,0x4c
/* f06dd94: 27a30040 */ addiu $v1,$sp,0x40
/* f06dd98: 00004025 */ or $t0,$zero,$zero
/* f06dd9c: e7a60050 */ swc1 $f6,0x50($sp)
/* f06dda0: c4480014 */ lwc1 $f8,0x14($v0)
/* f06dda4: c44a0018 */ lwc1 $f10,0x18($v0)
/* f06dda8: 8fa901a0 */ lw $t1,0x1a0($sp)
/* f06ddac: 46085101 */ sub.s $f4,$f10,$f8
/* f06ddb0: e7a40054 */ swc1 $f4,0x54($sp)
.L0f06ddb4:
/* f06ddb4: c4e00000 */ lwc1 $f0,0x0($a3)
/* f06ddb8: c4c600b8 */ lwc1 $f6,0xb8($a2)
/* f06ddbc: 2508000c */ addiu $t0,$t0,0xc
/* f06ddc0: 29010024 */ slti $at,$t0,0x24
/* f06ddc4: 46003282 */ mul.s $f10,$f6,$f0
/* f06ddc8: 24840004 */ addiu $a0,$a0,0x4
/* f06ddcc: 24c60004 */ addiu $a2,$a2,0x4
/* f06ddd0: 24e70004 */ addiu $a3,$a3,0x4
/* f06ddd4: 2529000c */ addiu $t1,$t1,0xc
/* f06ddd8: e48afffc */ swc1 $f10,-0x4($a0)
/* f06dddc: c5280014 */ lwc1 $f8,0x14($t1)
/* f06dde0: 46080102 */ mul.s $f4,$f0,$f8
/* f06dde4: e4640000 */ swc1 $f4,0x0($v1)
/* f06dde8: c4620000 */ lwc1 $f2,0x0($v1)
/* f06ddec: 4612103c */ c.lt.s $f2,$f18
/* f06ddf0: 00000000 */ nop
/* f06ddf4: 45000003 */ bc1f .L0f06de04
/* f06ddf8: 00000000 */ nop
/* f06ddfc: 46001187 */ neg.s $f6,$f2
/* f06de00: e4660000 */ swc1 $f6,0x0($v1)
.L0f06de04:
/* f06de04: 1420ffeb */ bnez $at,.L0f06ddb4
/* f06de08: 24630004 */ addiu $v1,$v1,0x4
/* f06de0c: 8fb801a0 */ lw $t8,0x1a0($sp)
/* f06de10: 3c010800 */ lui $at,0x800
/* f06de14: 34210208 */ ori $at,$at,0x208
/* f06de18: 8f020010 */ lw $v0,0x10($t8)
/* f06de1c: 0041c824 */ and $t9,$v0,$at
/* f06de20: 53200061 */ beqzl $t9,.L0f06dfa8
/* f06de24: 27a30058 */ addiu $v1,$sp,0x58
/* f06de28: 304e0008 */ andi $t6,$v0,0x8
/* f06de2c: 11c00032 */ beqz $t6,.L0f06def8
/* f06de30: 24080003 */ addiu $t0,$zero,0x3
/* f06de34: 00002825 */ or $a1,$zero,$zero
/* f06de38: 27a40058 */ addiu $a0,$sp,0x58
/* f06de3c: 27a30058 */ addiu $v1,$sp,0x58
.L0f06de40:
/* f06de40: 24a20001 */ addiu $v0,$a1,0x1
/* f06de44: 0048001a */ div $zero,$v0,$t0
/* f06de48: 00007810 */ mfhi $t7
/* f06de4c: 000fc080 */ sll $t8,$t7,0x2
/* f06de50: 0078c821 */ addu $t9,$v1,$t8
/* f06de54: c72a0000 */ lwc1 $f10,0x0($t9)
/* f06de58: c4800000 */ lwc1 $f0,0x0($a0)
/* f06de5c: 15000002 */ bnez $t0,.L0f06de68
/* f06de60: 00000000 */ nop
/* f06de64: 0007000d */ break 0x7
.L0f06de68:
/* f06de68: 2401ffff */ addiu $at,$zero,-1
/* f06de6c: 15010004 */ bne $t0,$at,.L0f06de80
/* f06de70: 3c018000 */ lui $at,0x8000
/* f06de74: 14410002 */ bne $v0,$at,.L0f06de80
/* f06de78: 00000000 */ nop
/* f06de7c: 0006000d */ break 0x6
.L0f06de80:
/* f06de80: 460a003c */ c.lt.s $f0,$f10
/* f06de84: 00000000 */ nop
/* f06de88: 45020017 */ bc1fl .L0f06dee8
/* f06de8c: 00402825 */ or $a1,$v0,$zero
/* f06de90: 24ae0002 */ addiu $t6,$a1,0x2
/* f06de94: 01c8001a */ div $zero,$t6,$t0
/* f06de98: 00007810 */ mfhi $t7
/* f06de9c: 000fc080 */ sll $t8,$t7,0x2
/* f06dea0: 0078c821 */ addu $t9,$v1,$t8
/* f06dea4: c7280000 */ lwc1 $f8,0x0($t9)
/* f06dea8: 15000002 */ bnez $t0,.L0f06deb4
/* f06deac: 00000000 */ nop
/* f06deb0: 0007000d */ break 0x7
.L0f06deb4:
/* f06deb4: 2401ffff */ addiu $at,$zero,-1
/* f06deb8: 15010004 */ bne $t0,$at,.L0f06decc
/* f06debc: 3c018000 */ lui $at,0x8000
/* f06dec0: 15c10002 */ bne $t6,$at,.L0f06decc
/* f06dec4: 00000000 */ nop
/* f06dec8: 0006000d */ break 0x6
.L0f06decc:
/* f06decc: 4608003c */ c.lt.s $f0,$f8
/* f06ded0: 00000000 */ nop
/* f06ded4: 45020004 */ bc1fl .L0f06dee8
/* f06ded8: 00402825 */ or $a1,$v0,$zero
/* f06dedc: 10000009 */ b .L0f06df04
/* f06dee0: 00a06025 */ or $t4,$a1,$zero
/* f06dee4: 00402825 */ or $a1,$v0,$zero
.L0f06dee8:
/* f06dee8: 1448ffd5 */ bne $v0,$t0,.L0f06de40
/* f06deec: 24840004 */ addiu $a0,$a0,0x4
/* f06def0: 10000005 */ b .L0f06df08
/* f06def4: 258e0001 */ addiu $t6,$t4,0x1
.L0f06def8:
/* f06def8: 240c0001 */ addiu $t4,$zero,0x1
/* f06defc: 24080003 */ addiu $t0,$zero,0x3
/* f06df00: 27a30058 */ addiu $v1,$sp,0x58
.L0f06df04:
/* f06df04: 258e0001 */ addiu $t6,$t4,0x1
.L0f06df08:
/* f06df08: 01c8001a */ div $zero,$t6,$t0
/* f06df0c: 258f0002 */ addiu $t7,$t4,0x2
/* f06df10: 00001010 */ mfhi $v0
/* f06df14: 27a90040 */ addiu $t1,$sp,0x40
/* f06df18: 15000002 */ bnez $t0,.L0f06df24
/* f06df1c: 00000000 */ nop
/* f06df20: 0007000d */ break 0x7
.L0f06df24:
/* f06df24: 2401ffff */ addiu $at,$zero,-1
/* f06df28: 15010004 */ bne $t0,$at,.L0f06df3c
/* f06df2c: 3c018000 */ lui $at,0x8000
/* f06df30: 15c10002 */ bne $t6,$at,.L0f06df3c
/* f06df34: 00000000 */ nop
/* f06df38: 0006000d */ break 0x6
.L0f06df3c:
/* f06df3c: 01e8001a */ div $zero,$t7,$t0
/* f06df40: 00002010 */ mfhi $a0
/* f06df44: 00047080 */ sll $t6,$a0,0x2
/* f06df48: 15000002 */ bnez $t0,.L0f06df54
/* f06df4c: 00000000 */ nop
/* f06df50: 0007000d */ break 0x7
.L0f06df54:
/* f06df54: 2401ffff */ addiu $at,$zero,-1
/* f06df58: 15010004 */ bne $t0,$at,.L0f06df6c
/* f06df5c: 3c018000 */ lui $at,0x8000
/* f06df60: 15e10002 */ bne $t7,$at,.L0f06df6c
/* f06df64: 00000000 */ nop
/* f06df68: 0006000d */ break 0x6
.L0f06df6c:
/* f06df6c: 0002c080 */ sll $t8,$v0,0x2
/* f06df70: 0138c821 */ addu $t9,$t1,$t8
/* f06df74: 012e7821 */ addu $t7,$t1,$t6
/* f06df78: c5e60000 */ lwc1 $f6,0x0($t7)
/* f06df7c: c7240000 */ lwc1 $f4,0x0($t9)
/* f06df80: 00805025 */ or $t2,$a0,$zero
/* f06df84: 00405825 */ or $t3,$v0,$zero
/* f06df88: 4604303e */ c.le.s $f6,$f4
/* f06df8c: 00000000 */ nop
/* f06df90: 45000004 */ bc1f .L0f06dfa4
/* f06df94: 00000000 */ nop
/* f06df98: 00405025 */ or $t2,$v0,$zero
/* f06df9c: 10000001 */ b .L0f06dfa4
/* f06dfa0: 00805825 */ or $t3,$a0,$zero
.L0f06dfa4:
/* f06dfa4: 27a30058 */ addiu $v1,$sp,0x58
.L0f06dfa8:
/* f06dfa8: 24080003 */ addiu $t0,$zero,0x3
/* f06dfac: 05410055 */ bgez $t2,.L0f06e104
/* f06dfb0: 27a90040 */ addiu $t1,$sp,0x40
/* f06dfb4: 3c014040 */ lui $at,0x4040
/* f06dfb8: 44817000 */ mtc1 $at,$f14
/* f06dfbc: 00002825 */ or $a1,$zero,$zero
/* f06dfc0: 27a40058 */ addiu $a0,$sp,0x58
.L0f06dfc4:
/* f06dfc4: 24a20001 */ addiu $v0,$a1,0x1
/* f06dfc8: 0048001a */ div $zero,$v0,$t0
/* f06dfcc: 00003010 */ mfhi $a2
/* f06dfd0: 0006c080 */ sll $t8,$a2,0x2
/* f06dfd4: 0078c821 */ addu $t9,$v1,$t8
/* f06dfd8: c7220000 */ lwc1 $f2,0x0($t9)
/* f06dfdc: c4800000 */ lwc1 $f0,0x0($a0)
/* f06dfe0: 15000002 */ bnez $t0,.L0f06dfec
/* f06dfe4: 00000000 */ nop
/* f06dfe8: 0007000d */ break 0x7
.L0f06dfec:
/* f06dfec: 2401ffff */ addiu $at,$zero,-1
/* f06dff0: 15010004 */ bne $t0,$at,.L0f06e004
/* f06dff4: 3c018000 */ lui $at,0x8000
/* f06dff8: 14410002 */ bne $v0,$at,.L0f06e004
/* f06dffc: 00000000 */ nop
/* f06e000: 0006000d */ break 0x6
.L0f06e004:
/* f06e004: 460e1282 */ mul.s $f10,$f2,$f14
/* f06e008: 4600503c */ c.lt.s $f10,$f0
/* f06e00c: 00000000 */ nop
/* f06e010: 4502003a */ bc1fl .L0f06e0fc
/* f06e014: 00402825 */ or $a1,$v0,$zero
/* f06e018: 24ae0002 */ addiu $t6,$a1,0x2
/* f06e01c: 01c8001a */ div $zero,$t6,$t0
/* f06e020: 00003810 */ mfhi $a3
/* f06e024: 00077880 */ sll $t7,$a3,0x2
/* f06e028: 006fc021 */ addu $t8,$v1,$t7
/* f06e02c: c70c0000 */ lwc1 $f12,0x0($t8)
/* f06e030: 15000002 */ bnez $t0,.L0f06e03c
/* f06e034: 00000000 */ nop
/* f06e038: 0007000d */ break 0x7
.L0f06e03c:
/* f06e03c: 2401ffff */ addiu $at,$zero,-1
/* f06e040: 15010004 */ bne $t0,$at,.L0f06e054
/* f06e044: 3c018000 */ lui $at,0x8000
/* f06e048: 15c10002 */ bne $t6,$at,.L0f06e054
/* f06e04c: 00000000 */ nop
/* f06e050: 0006000d */ break 0x6
.L0f06e054:
/* f06e054: 460e6202 */ mul.s $f8,$f12,$f14
/* f06e058: 4600403c */ c.lt.s $f8,$f0
/* f06e05c: 00000000 */ nop
/* f06e060: 45020026 */ bc1fl .L0f06e0fc
/* f06e064: 00402825 */ or $a1,$v0,$zero
/* f06e068: 460c6100 */ add.s $f4,$f12,$f12
/* f06e06c: 00a05025 */ or $t2,$a1,$zero
/* f06e070: 00e06025 */ or $t4,$a3,$zero
/* f06e074: 4602203c */ c.lt.s $f4,$f2
/* f06e078: 00000000 */ nop
/* f06e07c: 45020004 */ bc1fl .L0f06e090
/* f06e080: 46021180 */ add.s $f6,$f2,$f2
/* f06e084: 1000001f */ b .L0f06e104
/* f06e088: 00c05825 */ or $t3,$a2,$zero
/* f06e08c: 46021180 */ add.s $f6,$f2,$f2
.L0f06e090:
/* f06e090: 00c06025 */ or $t4,$a2,$zero
/* f06e094: 460c303c */ c.lt.s $f6,$f12
/* f06e098: 00000000 */ nop
/* f06e09c: 45020004 */ bc1fl .L0f06e0b0
/* f06e0a0: afa60024 */ sw $a2,0x24($sp)
/* f06e0a4: 10000017 */ b .L0f06e104
/* f06e0a8: 00e05825 */ or $t3,$a3,$zero
/* f06e0ac: afa60024 */ sw $a2,0x24($sp)
.L0f06e0b0:
/* f06e0b0: afa70020 */ sw $a3,0x20($sp)
/* f06e0b4: 0c004b70 */ jal random
/* f06e0b8: afaa019c */ sw $t2,0x19c($sp)
/* f06e0bc: 44809000 */ mtc1 $zero,$f18
/* f06e0c0: 30590001 */ andi $t9,$v0,0x1
/* f06e0c4: 27a30058 */ addiu $v1,$sp,0x58
/* f06e0c8: 8fa60024 */ lw $a2,0x24($sp)
/* f06e0cc: 8fa70020 */ lw $a3,0x20($sp)
/* f06e0d0: 24080003 */ addiu $t0,$zero,0x3
/* f06e0d4: 27a90040 */ addiu $t1,$sp,0x40
/* f06e0d8: 17200004 */ bnez $t9,.L0f06e0ec
/* f06e0dc: 8faa019c */ lw $t2,0x19c($sp)
/* f06e0e0: 00e06025 */ or $t4,$a3,$zero
/* f06e0e4: 10000007 */ b .L0f06e104
/* f06e0e8: 00c05825 */ or $t3,$a2,$zero
.L0f06e0ec:
/* f06e0ec: 00c06025 */ or $t4,$a2,$zero
/* f06e0f0: 10000004 */ b .L0f06e104
/* f06e0f4: 00e05825 */ or $t3,$a3,$zero
/* f06e0f8: 00402825 */ or $a1,$v0,$zero
.L0f06e0fc:
/* f06e0fc: 1448ffb1 */ bne $v0,$t0,.L0f06dfc4
/* f06e100: 24840004 */ addiu $a0,$a0,0x4
.L0f06e104:
/* f06e104: 3c014040 */ lui $at,0x4040
/* f06e108: 44817000 */ mtc1 $at,$f14
/* f06e10c: 05410072 */ bgez $t2,.L0f06e2d8
/* f06e110: 8fad01a0 */ lw $t5,0x1a0($sp)
/* f06e114: 00002825 */ or $a1,$zero,$zero
/* f06e118: 27a40058 */ addiu $a0,$sp,0x58
.L0f06e11c:
/* f06e11c: 24a20001 */ addiu $v0,$a1,0x1
/* f06e120: 0048001a */ div $zero,$v0,$t0
/* f06e124: 00003010 */ mfhi $a2
/* f06e128: 00067080 */ sll $t6,$a2,0x2
/* f06e12c: 006e7821 */ addu $t7,$v1,$t6
/* f06e130: c5ea0000 */ lwc1 $f10,0x0($t7)
/* f06e134: c4800000 */ lwc1 $f0,0x0($a0)
/* f06e138: 15000002 */ bnez $t0,.L0f06e144
/* f06e13c: 00000000 */ nop
/* f06e140: 0007000d */ break 0x7
.L0f06e144:
/* f06e144: 2401ffff */ addiu $at,$zero,-1
/* f06e148: 15010004 */ bne $t0,$at,.L0f06e15c
/* f06e14c: 3c018000 */ lui $at,0x8000
/* f06e150: 14410002 */ bne $v0,$at,.L0f06e15c
/* f06e154: 00000000 */ nop
/* f06e158: 0006000d */ break 0x6
.L0f06e15c:
/* f06e15c: 460e5082 */ mul.s $f2,$f10,$f14
/* f06e160: 4600103c */ c.lt.s $f2,$f0
/* f06e164: 00000000 */ nop
/* f06e168: 45030016 */ bc1tl .L0f06e1c4
/* f06e16c: 4600103c */ c.lt.s $f2,$f0
/* f06e170: 24b80002 */ addiu $t8,$a1,0x2
/* f06e174: 0308001a */ div $zero,$t8,$t0
/* f06e178: 0000c810 */ mfhi $t9
/* f06e17c: 00197080 */ sll $t6,$t9,0x2
/* f06e180: 006e7821 */ addu $t7,$v1,$t6
/* f06e184: c5e80000 */ lwc1 $f8,0x0($t7)
/* f06e188: 15000002 */ bnez $t0,.L0f06e194
/* f06e18c: 00000000 */ nop
/* f06e190: 0007000d */ break 0x7
.L0f06e194:
/* f06e194: 2401ffff */ addiu $at,$zero,-1
/* f06e198: 15010004 */ bne $t0,$at,.L0f06e1ac
/* f06e19c: 3c018000 */ lui $at,0x8000
/* f06e1a0: 17010002 */ bne $t8,$at,.L0f06e1ac
/* f06e1a4: 00000000 */ nop
/* f06e1a8: 0006000d */ break 0x6
.L0f06e1ac:
/* f06e1ac: 460e4102 */ mul.s $f4,$f8,$f14
/* f06e1b0: 4600203c */ c.lt.s $f4,$f0
/* f06e1b4: 00000000 */ nop
/* f06e1b8: 45020045 */ bc1fl .L0f06e2d0
/* f06e1bc: 00402825 */ or $a1,$v0,$zero
/* f06e1c0: 4600103c */ c.lt.s $f2,$f0
.L0f06e1c4:
/* f06e1c4: 00000000 */ nop
/* f06e1c8: 45020004 */ bc1fl .L0f06e1dc
/* f06e1cc: 24b80002 */ addiu $t8,$a1,0x2
/* f06e1d0: 10000016 */ b .L0f06e22c
/* f06e1d4: 00c06025 */ or $t4,$a2,$zero
/* f06e1d8: 24b80002 */ addiu $t8,$a1,0x2
.L0f06e1dc:
/* f06e1dc: 0308001a */ div $zero,$t8,$t0
/* f06e1e0: 00003810 */ mfhi $a3
/* f06e1e4: 0007c880 */ sll $t9,$a3,0x2
/* f06e1e8: 00797021 */ addu $t6,$v1,$t9
/* f06e1ec: c5c60000 */ lwc1 $f6,0x0($t6)
/* f06e1f0: 15000002 */ bnez $t0,.L0f06e1fc
/* f06e1f4: 00000000 */ nop
/* f06e1f8: 0007000d */ break 0x7
.L0f06e1fc:
/* f06e1fc: 2401ffff */ addiu $at,$zero,-1
/* f06e200: 15010004 */ bne $t0,$at,.L0f06e214
/* f06e204: 3c018000 */ lui $at,0x8000
/* f06e208: 17010002 */ bne $t8,$at,.L0f06e214
/* f06e20c: 00000000 */ nop
/* f06e210: 0006000d */ break 0x6
.L0f06e214:
/* f06e214: 460e3282 */ mul.s $f10,$f6,$f14
/* f06e218: 4600503c */ c.lt.s $f10,$f0
/* f06e21c: 00000000 */ nop
/* f06e220: 45020003 */ bc1fl .L0f06e230
/* f06e224: 258f0001 */ addiu $t7,$t4,0x1
/* f06e228: 00e06025 */ or $t4,$a3,$zero
.L0f06e22c:
/* f06e22c: 258f0001 */ addiu $t7,$t4,0x1
.L0f06e230:
/* f06e230: 01e8001a */ div $zero,$t7,$t0
/* f06e234: 25980002 */ addiu $t8,$t4,0x2
/* f06e238: 00001010 */ mfhi $v0
/* f06e23c: 0002c880 */ sll $t9,$v0,0x2
/* f06e240: 15000002 */ bnez $t0,.L0f06e24c
/* f06e244: 00000000 */ nop
/* f06e248: 0007000d */ break 0x7
.L0f06e24c:
/* f06e24c: 2401ffff */ addiu $at,$zero,-1
/* f06e250: 15010004 */ bne $t0,$at,.L0f06e264
/* f06e254: 3c018000 */ lui $at,0x8000
/* f06e258: 15e10002 */ bne $t7,$at,.L0f06e264
/* f06e25c: 00000000 */ nop
/* f06e260: 0006000d */ break 0x6
.L0f06e264:
/* f06e264: 0308001a */ div $zero,$t8,$t0
/* f06e268: 00002010 */ mfhi $a0
/* f06e26c: 00047880 */ sll $t7,$a0,0x2
/* f06e270: 15000002 */ bnez $t0,.L0f06e27c
/* f06e274: 00000000 */ nop
/* f06e278: 0007000d */ break 0x7
.L0f06e27c:
/* f06e27c: 2401ffff */ addiu $at,$zero,-1
/* f06e280: 15010004 */ bne $t0,$at,.L0f06e294
/* f06e284: 3c018000 */ lui $at,0x8000
/* f06e288: 17010002 */ bne $t8,$at,.L0f06e294
/* f06e28c: 00000000 */ nop
/* f06e290: 0006000d */ break 0x6
.L0f06e294:
/* f06e294: 012fc021 */ addu $t8,$t1,$t7
/* f06e298: 01397021 */ addu $t6,$t1,$t9
/* f06e29c: c5c80000 */ lwc1 $f8,0x0($t6)
/* f06e2a0: c7040000 */ lwc1 $f4,0x0($t8)
/* f06e2a4: 00805825 */ or $t3,$a0,$zero
/* f06e2a8: 00805025 */ or $t2,$a0,$zero
/* f06e2ac: 4608203e */ c.le.s $f4,$f8
/* f06e2b0: 00000000 */ nop
/* f06e2b4: 45000003 */ bc1f .L0f06e2c4
/* f06e2b8: 00000000 */ nop
/* f06e2bc: 10000006 */ b .L0f06e2d8
/* f06e2c0: 00405025 */ or $t2,$v0,$zero
.L0f06e2c4:
/* f06e2c4: 10000004 */ b .L0f06e2d8
/* f06e2c8: 00405825 */ or $t3,$v0,$zero
/* f06e2cc: 00402825 */ or $a1,$v0,$zero
.L0f06e2d0:
/* f06e2d0: 1448ff92 */ bne $v0,$t0,.L0f06e11c
/* f06e2d4: 24840004 */ addiu $a0,$a0,0x4
.L0f06e2d8:
/* f06e2d8: 05410035 */ bgez $t2,.L0f06e3b0
/* f06e2dc: 00002825 */ or $a1,$zero,$zero
/* f06e2e0: 27a30040 */ addiu $v1,$sp,0x40
.L0f06e2e4:
/* f06e2e4: 24a20001 */ addiu $v0,$a1,0x1
/* f06e2e8: 0048001a */ div $zero,$v0,$t0
/* f06e2ec: 00003010 */ mfhi $a2
/* f06e2f0: 0006c880 */ sll $t9,$a2,0x2
/* f06e2f4: 01397021 */ addu $t6,$t1,$t9
/* f06e2f8: c5c00000 */ lwc1 $f0,0x0($t6)
/* f06e2fc: c4620000 */ lwc1 $f2,0x0($v1)
/* f06e300: 15000002 */ bnez $t0,.L0f06e30c
/* f06e304: 00000000 */ nop
/* f06e308: 0007000d */ break 0x7
.L0f06e30c:
/* f06e30c: 2401ffff */ addiu $at,$zero,-1
/* f06e310: 15010004 */ bne $t0,$at,.L0f06e324
/* f06e314: 3c018000 */ lui $at,0x8000
/* f06e318: 14410002 */ bne $v0,$at,.L0f06e324
/* f06e31c: 00000000 */ nop
/* f06e320: 0006000d */ break 0x6
.L0f06e324:
/* f06e324: 4602003e */ c.le.s $f0,$f2
/* f06e328: 24630004 */ addiu $v1,$v1,0x4
/* f06e32c: 4500001e */ bc1f .L0f06e3a8
/* f06e330: 00000000 */ nop
/* f06e334: 24af0002 */ addiu $t7,$a1,0x2
/* f06e338: 01e8001a */ div $zero,$t7,$t0
/* f06e33c: 00003810 */ mfhi $a3
/* f06e340: 0007c080 */ sll $t8,$a3,0x2
/* f06e344: 0138c821 */ addu $t9,$t1,$t8
/* f06e348: c72c0000 */ lwc1 $f12,0x0($t9)
/* f06e34c: 15000002 */ bnez $t0,.L0f06e358
/* f06e350: 00000000 */ nop
/* f06e354: 0007000d */ break 0x7
.L0f06e358:
/* f06e358: 2401ffff */ addiu $at,$zero,-1
/* f06e35c: 15010004 */ bne $t0,$at,.L0f06e370
/* f06e360: 3c018000 */ lui $at,0x8000
/* f06e364: 15e10002 */ bne $t7,$at,.L0f06e370
/* f06e368: 00000000 */ nop
/* f06e36c: 0006000d */ break 0x6
.L0f06e370:
/* f06e370: 4602603e */ c.le.s $f12,$f2
/* f06e374: 00000000 */ nop
/* f06e378: 4500000b */ bc1f .L0f06e3a8
/* f06e37c: 00000000 */ nop
/* f06e380: 4600603e */ c.le.s $f12,$f0
/* f06e384: 00a06025 */ or $t4,$a1,$zero
/* f06e388: 00e05825 */ or $t3,$a3,$zero
/* f06e38c: 00e05025 */ or $t2,$a3,$zero
/* f06e390: 45000003 */ bc1f .L0f06e3a0
/* f06e394: 00000000 */ nop
/* f06e398: 10000005 */ b .L0f06e3b0
/* f06e39c: 00c05025 */ or $t2,$a2,$zero
.L0f06e3a0:
/* f06e3a0: 10000003 */ b .L0f06e3b0
/* f06e3a4: 00c05825 */ or $t3,$a2,$zero
.L0f06e3a8:
/* f06e3a8: 1448ffce */ bne $v0,$t0,.L0f06e2e4
/* f06e3ac: 00402825 */ or $a1,$v0,$zero
.L0f06e3b0:
/* f06e3b0: 05430005 */ bgezl $t2,.L0f06e3c8
/* f06e3b4: 000a7080 */ sll $t6,$t2,0x2
/* f06e3b8: 00005025 */ or $t2,$zero,$zero
/* f06e3bc: 240c0001 */ addiu $t4,$zero,0x1
/* f06e3c0: 240b0002 */ addiu $t3,$zero,0x2
/* f06e3c4: 000a7080 */ sll $t6,$t2,0x2
.L0f06e3c8:
/* f06e3c8: 01ca7023 */ subu $t6,$t6,$t2
/* f06e3cc: 000e7080 */ sll $t6,$t6,0x2
/* f06e3d0: afae0034 */ sw $t6,0x34($sp)
/* f06e3d4: 01ae3021 */ addu $a2,$t5,$t6
/* f06e3d8: c4ce001c */ lwc1 $f14,0x1c($a2)
/* f06e3dc: c4d00024 */ lwc1 $f16,0x24($a2)
/* f06e3e0: 46127032 */ c.eq.s $f14,$f18
/* f06e3e4: 00000000 */ nop
/* f06e3e8: 45000005 */ bc1f .L0f06e400
/* f06e3ec: 00000000 */ nop
/* f06e3f0: 46128032 */ c.eq.s $f16,$f18
/* f06e3f4: 3c013f80 */ lui $at,0x3f80
/* f06e3f8: 45030025 */ bc1tl .L0f06e490
/* f06e3fc: 44818000 */ mtc1 $at,$f16
.L0f06e400:
/* f06e400: 460e7182 */ mul.s $f6,$f14,$f14
/* f06e404: afa60030 */ sw $a2,0x30($sp)
/* f06e408: afaa019c */ sw $t2,0x19c($sp)
/* f06e40c: 46108282 */ mul.s $f10,$f16,$f16
/* f06e410: afab0194 */ sw $t3,0x194($sp)
/* f06e414: afac0198 */ sw $t4,0x198($sp)
/* f06e418: e7ae0084 */ swc1 $f14,0x84($sp)
/* f06e41c: e7b00080 */ swc1 $f16,0x80($sp)
/* f06e420: 0c012974 */ jal sqrtf
/* f06e424: 460a3300 */ add.s $f12,$f6,$f10
/* f06e428: 44809000 */ mtc1 $zero,$f18
/* f06e42c: 8fa60030 */ lw $a2,0x30($sp)
/* f06e430: 24080003 */ addiu $t0,$zero,0x3
/* f06e434: 4600903c */ c.lt.s $f18,$f0
/* f06e438: 8faa019c */ lw $t2,0x19c($sp)
/* f06e43c: 8fab0194 */ lw $t3,0x194($sp)
/* f06e440: 8fac0198 */ lw $t4,0x198($sp)
/* f06e444: c7ae0084 */ lwc1 $f14,0x84($sp)
/* f06e448: c7b00080 */ lwc1 $f16,0x80($sp)
/* f06e44c: 4500000a */ bc1f .L0f06e478
/* f06e450: 46000086 */ mov.s $f2,$f0
/* f06e454: 3c013f80 */ lui $at,0x3f80
/* f06e458: 44814000 */ mtc1 $at,$f8
/* f06e45c: 00000000 */ nop
/* f06e460: 46004083 */ div.s $f2,$f8,$f0
/* f06e464: 46027382 */ mul.s $f14,$f14,$f2
/* f06e468: 00000000 */ nop
/* f06e46c: 46028402 */ mul.s $f16,$f16,$f2
/* f06e470: 10000004 */ b .L0f06e484
/* f06e474: 00000000 */ nop
.L0f06e478:
/* f06e478: 3c013f80 */ lui $at,0x3f80
/* f06e47c: 44818000 */ mtc1 $at,$f16
/* f06e480: 46009386 */ mov.s $f14,$f18
.L0f06e484:
/* f06e484: 10000003 */ b .L0f06e494
/* f06e488: 8fad01a0 */ lw $t5,0x1a0($sp)
/* f06e48c: 44818000 */ mtc1 $at,$f16
.L0f06e490:
/* f06e490: 46009386 */ mov.s $f14,$f18
.L0f06e494:
/* f06e494: 27a700c8 */ addiu $a3,$sp,0xc8
/* f06e498: 000a4900 */ sll $t1,$t2,0x4
/* f06e49c: 00e91821 */ addu $v1,$a3,$t1
/* f06e4a0: 000cc080 */ sll $t8,$t4,0x2
/* f06e4a4: 030cc023 */ subu $t8,$t8,$t4
/* f06e4a8: 0018c080 */ sll $t8,$t8,0x2
/* f06e4ac: e46e0000 */ swc1 $f14,0x0($v1)
/* f06e4b0: e4720004 */ swc1 $f18,0x4($v1)
/* f06e4b4: e4700008 */ swc1 $f16,0x8($v1)
/* f06e4b8: e472000c */ swc1 $f18,0xc($v1)
/* f06e4bc: 01b82021 */ addu $a0,$t5,$t8
/* f06e4c0: c4800020 */ lwc1 $f0,0x20($a0)
/* f06e4c4: 258f0001 */ addiu $t7,$t4,0x1
/* f06e4c8: 4600903e */ c.le.s $f18,$f0
/* f06e4cc: 00000000 */ nop
/* f06e4d0: 45010006 */ bc1t .L0f06e4ec
/* f06e4d4: 00000000 */ nop
/* f06e4d8: 8db90010 */ lw $t9,0x10($t5)
/* f06e4dc: 3c050800 */ lui $a1,0x800
/* f06e4e0: 03257024 */ and $t6,$t9,$a1
/* f06e4e4: 51c00010 */ beqzl $t6,.L0f06e528
/* f06e4e8: 4612003e */ c.le.s $f0,$f18
.L0f06e4ec:
/* f06e4ec: 01e8001a */ div $zero,$t7,$t0
/* f06e4f0: 0000c010 */ mfhi $t8
/* f06e4f4: 3c050800 */ lui $a1,0x800
/* f06e4f8: 15000002 */ bnez $t0,.L0f06e504
/* f06e4fc: 00000000 */ nop
/* f06e500: 0007000d */ break 0x7
.L0f06e504:
/* f06e504: 2401ffff */ addiu $at,$zero,-1
/* f06e508: 15010004 */ bne $t0,$at,.L0f06e51c
/* f06e50c: 3c018000 */ lui $at,0x8000
/* f06e510: 15e10002 */ bne $t7,$at,.L0f06e51c
/* f06e514: 00000000 */ nop
/* f06e518: 0006000d */ break 0x6
.L0f06e51c:
/* f06e51c: 51780017 */ beql $t3,$t8,.L0f06e57c
/* f06e520: 000bc900 */ sll $t9,$t3,0x4
/* f06e524: 4612003e */ c.le.s $f0,$f18
.L0f06e528:
/* f06e528: 00000000 */ nop
/* f06e52c: 4502001b */ bc1fl .L0f06e59c
/* f06e530: 000b7100 */ sll $t6,$t3,0x4
/* f06e534: 8db90010 */ lw $t9,0x10($t5)
/* f06e538: 258f0002 */ addiu $t7,$t4,0x2
/* f06e53c: 03257024 */ and $t6,$t9,$a1
/* f06e540: 55c00016 */ bnezl $t6,.L0f06e59c
/* f06e544: 000b7100 */ sll $t6,$t3,0x4
/* f06e548: 01e8001a */ div $zero,$t7,$t0
/* f06e54c: 0000c010 */ mfhi $t8
/* f06e550: 15000002 */ bnez $t0,.L0f06e55c
/* f06e554: 00000000 */ nop
/* f06e558: 0007000d */ break 0x7
.L0f06e55c:
/* f06e55c: 2401ffff */ addiu $at,$zero,-1
/* f06e560: 15010004 */ bne $t0,$at,.L0f06e574
/* f06e564: 3c018000 */ lui $at,0x8000
/* f06e568: 15e10002 */ bne $t7,$at,.L0f06e574
/* f06e56c: 00000000 */ nop
/* f06e570: 0006000d */ break 0x6
.L0f06e574:
/* f06e574: 15780008 */ bne $t3,$t8,.L0f06e598
/* f06e578: 000bc900 */ sll $t9,$t3,0x4
.L0f06e57c:
/* f06e57c: 00f91021 */ addu $v0,$a3,$t9
/* f06e580: 46008107 */ neg.s $f4,$f16
/* f06e584: e4520004 */ swc1 $f18,0x4($v0)
/* f06e588: e4440000 */ swc1 $f4,0x0($v0)
/* f06e58c: e44e0008 */ swc1 $f14,0x8($v0)
/* f06e590: 10000008 */ b .L0f06e5b4
/* f06e594: e452000c */ swc1 $f18,0xc($v0)
.L0f06e598:
/* f06e598: 000b7100 */ sll $t6,$t3,0x4
.L0f06e59c:
/* f06e59c: 00ee1021 */ addu $v0,$a3,$t6
/* f06e5a0: 46007187 */ neg.s $f6,$f14
/* f06e5a4: e4500000 */ swc1 $f16,0x0($v0)
/* f06e5a8: e4520004 */ swc1 $f18,0x4($v0)
/* f06e5ac: e4460008 */ swc1 $f6,0x8($v0)
/* f06e5b0: e452000c */ swc1 $f18,0xc($v0)
.L0f06e5b4:
/* f06e5b4: c48a0020 */ lwc1 $f10,0x20($a0)
/* f06e5b8: 000cc900 */ sll $t9,$t4,0x4
/* f06e5bc: 00f91021 */ addu $v0,$a3,$t9
/* f06e5c0: 460a903e */ c.le.s $f18,$f10
/* f06e5c4: 3c013f80 */ lui $at,0x3f80
/* f06e5c8: 00e02025 */ or $a0,$a3,$zero
/* f06e5cc: 45030007 */ bc1tl .L0f06e5ec
/* f06e5d0: 44814000 */ mtc1 $at,$f8
/* f06e5d4: 8daf0010 */ lw $t7,0x10($t5)
/* f06e5d8: 000c7100 */ sll $t6,$t4,0x4
/* f06e5dc: 01e5c024 */ and $t8,$t7,$a1
/* f06e5e0: 53000008 */ beqzl $t8,.L0f06e604
/* f06e5e4: 00ee1021 */ addu $v0,$a3,$t6
/* f06e5e8: 44814000 */ mtc1 $at,$f8
.L0f06e5ec:
/* f06e5ec: e4520000 */ swc1 $f18,0x0($v0)
/* f06e5f0: e4520008 */ swc1 $f18,0x8($v0)
/* f06e5f4: e452000c */ swc1 $f18,0xc($v0)
/* f06e5f8: 10000008 */ b .L0f06e61c
/* f06e5fc: e4480004 */ swc1 $f8,0x4($v0)
/* f06e600: 00ee1021 */ addu $v0,$a3,$t6
.L0f06e604:
/* f06e604: 3c01bf80 */ lui $at,0xbf80
/* f06e608: 44812000 */ mtc1 $at,$f4
/* f06e60c: e4520000 */ swc1 $f18,0x0($v0)
/* f06e610: e4520008 */ swc1 $f18,0x8($v0)
/* f06e614: e452000c */ swc1 $f18,0xc($v0)
/* f06e618: e4440004 */ swc1 $f4,0x4($v0)
.L0f06e61c:
/* f06e61c: 3c013f80 */ lui $at,0x3f80
/* f06e620: 44813000 */ mtc1 $at,$f6
/* f06e624: e7b200f8 */ swc1 $f18,0xf8($sp)
/* f06e628: e7b200fc */ swc1 $f18,0xfc($sp)
/* f06e62c: e7b20100 */ swc1 $f18,0x100($sp)
/* f06e630: 27a50188 */ addiu $a1,$sp,0x188
/* f06e634: afa30028 */ sw $v1,0x28($sp)
/* f06e638: afa60030 */ sw $a2,0x30($sp)
/* f06e63c: afa9002c */ sw $t1,0x2c($sp)
/* f06e640: 0c005976 */ jal mtx4GetRotation
/* f06e644: e7a60104 */ swc1 $f6,0x104($sp)
/* f06e648: 8fa50068 */ lw $a1,0x68($sp)
/* f06e64c: 27a40188 */ addiu $a0,$sp,0x188
/* f06e650: 24a50078 */ addiu $a1,$a1,0x78
/* f06e654: 0fc25b28 */ jal quaternion0f096ca0
/* f06e658: afa50024 */ sw $a1,0x24($sp)
/* f06e65c: 8fa50024 */ lw $a1,0x24($sp)
/* f06e660: 0fc25db0 */ jal quaternion0f0976c0
/* f06e664: 8fa40038 */ lw $a0,0x38($sp)
/* f06e668: 44809000 */ mtc1 $zero,$f18
/* f06e66c: 8faf0068 */ lw $t7,0x68($sp)
/* f06e670: 8fa30028 */ lw $v1,0x28($sp)
/* f06e674: 27b90108 */ addiu $t9,$sp,0x108
/* f06e678: e5f20060 */ swc1 $f18,0x60($t7)
/* f06e67c: 8fb8002c */ lw $t8,0x2c($sp)
/* f06e680: c46a0000 */ lwc1 $f10,0x0($v1)
/* f06e684: c4660004 */ lwc1 $f6,0x4($v1)
/* f06e688: 03191021 */ addu $v0,$t8,$t9
/* f06e68c: c4480000 */ lwc1 $f8,0x0($v0)
/* f06e690: 46085102 */ mul.s $f4,$f10,$f8
/* f06e694: c44a0004 */ lwc1 $f10,0x4($v0)
/* f06e698: 460a3202 */ mul.s $f8,$f6,$f10
/* f06e69c: c44a0008 */ lwc1 $f10,0x8($v0)
/* f06e6a0: 46082180 */ add.s $f6,$f4,$f8
/* f06e6a4: c4640008 */ lwc1 $f4,0x8($v1)
/* f06e6a8: 46045202 */ mul.s $f8,$f10,$f4
/* f06e6ac: 0fc25a74 */ jal acosf
/* f06e6b0: 46064300 */ add.s $f12,$f8,$f6
/* f06e6b4: 44809000 */ mtc1 $zero,$f18
/* f06e6b8: 8fa60030 */ lw $a2,0x30($sp)
/* f06e6bc: 46000406 */ mov.s $f16,$f0
/* f06e6c0: 4600903c */ c.lt.s $f18,$f0
/* f06e6c4: 00000000 */ nop
/* f06e6c8: 45020017 */ bc1fl .L0f06e728
/* f06e6cc: 4600903c */ c.lt.s $f18,$f0
/* f06e6d0: c4c20020 */ lwc1 $f2,0x20($a2)
/* f06e6d4: 8fae01a4 */ lw $t6,0x1a4($sp)
/* f06e6d8: 8faf0034 */ lw $t7,0x34($sp)
/* f06e6dc: 4602903c */ c.lt.s $f18,$f2
/* f06e6e0: 01cfc021 */ addu $t8,$t6,$t7
/* f06e6e4: 45020010 */ bc1fl .L0f06e728
/* f06e6e8: 4600903c */ c.lt.s $f18,$f0
/* f06e6ec: c70a0004 */ lwc1 $f10,0x4($t8)
/* f06e6f0: 3c017f1b */ lui $at,%hi(var7f1aa284)
/* f06e6f4: 4602503c */ c.lt.s $f10,$f2
/* f06e6f8: 00000000 */ nop
/* f06e6fc: 4502000a */ bc1fl .L0f06e728
/* f06e700: 4600903c */ c.lt.s $f18,$f0
/* f06e704: c424a284 */ lwc1 $f4,%lo(var7f1aa284)($at)
/* f06e708: 3c017f1b */ lui $at,%hi(var7f1aa288)
/* f06e70c: c428a288 */ lwc1 $f8,%lo(var7f1aa288)($at)
/* f06e710: 8fb90068 */ lw $t9,0x68($sp)
/* f06e714: 46080182 */ mul.s $f6,$f0,$f8
/* f06e718: 46062283 */ div.s $f10,$f4,$f6
/* f06e71c: 10000039 */ b .L0f06e804
/* f06e720: e72a0064 */ swc1 $f10,0x64($t9)
/* f06e724: 4600903c */ c.lt.s $f18,$f0
.L0f06e728:
/* f06e728: 8fae01a4 */ lw $t6,0x1a4($sp)
/* f06e72c: 8faf0034 */ lw $t7,0x34($sp)
/* f06e730: c4c20020 */ lwc1 $f2,0x20($a2)
/* f06e734: 01cf1021 */ addu $v0,$t6,$t7
/* f06e738: 45000011 */ bc1f .L0f06e780
/* f06e73c: c44e0004 */ lwc1 $f14,0x4($v0)
/* f06e740: 4612103c */ c.lt.s $f2,$f18
/* f06e744: 00000000 */ nop
/* f06e748: 4502000e */ bc1fl .L0f06e784
/* f06e74c: c4c40024 */ lwc1 $f4,0x24($a2)
/* f06e750: 460e103c */ c.lt.s $f2,$f14
/* f06e754: 3c017f1b */ lui $at,%hi(var7f1aa28c)
/* f06e758: 4502000a */ bc1fl .L0f06e784
/* f06e75c: c4c40024 */ lwc1 $f4,0x24($a2)
/* f06e760: c428a28c */ lwc1 $f8,%lo(var7f1aa28c)($at)
/* f06e764: 3c017f1b */ lui $at,%hi(var7f1aa290)
/* f06e768: c424a290 */ lwc1 $f4,%lo(var7f1aa290)($at)
/* f06e76c: 8fb80068 */ lw $t8,0x68($sp)
/* f06e770: 46040182 */ mul.s $f6,$f0,$f4
/* f06e774: 46064283 */ div.s $f10,$f8,$f6
/* f06e778: 10000022 */ b .L0f06e804
/* f06e77c: e70a0064 */ swc1 $f10,0x64($t8)
.L0f06e780:
/* f06e780: c4c40024 */ lwc1 $f4,0x24($a2)
.L0f06e784:
/* f06e784: c4480008 */ lwc1 $f8,0x8($v0)
/* f06e788: c44a0000 */ lwc1 $f10,0x0($v0)
/* f06e78c: 8fb901a0 */ lw $t9,0x1a0($sp)
/* f06e790: 46082182 */ mul.s $f6,$f4,$f8
/* f06e794: c4c4001c */ lwc1 $f4,0x1c($a2)
/* f06e798: 8f2e0018 */ lw $t6,0x18($t9)
/* f06e79c: 46045202 */ mul.s $f8,$f10,$f4
/* f06e7a0: c5c00014 */ lwc1 $f0,0x14($t6)
/* f06e7a4: e7b0006c */ swc1 $f16,0x6c($sp)
/* f06e7a8: 46027282 */ mul.s $f10,$f14,$f2
/* f06e7ac: 460a4100 */ add.s $f4,$f8,$f10
/* f06e7b0: 46000282 */ mul.s $f10,$f0,$f0
/* f06e7b4: 46043200 */ add.s $f8,$f6,$f4
/* f06e7b8: 0fc25a74 */ jal acosf
/* f06e7bc: 460a4303 */ div.s $f12,$f8,$f10
/* f06e7c0: c7b0006c */ lwc1 $f16,0x6c($sp)
/* f06e7c4: 44809000 */ mtc1 $zero,$f18
/* f06e7c8: 3c01800a */ lui $at,%hi(g_Vars+0x4c)
/* f06e7cc: c426a00c */ lwc1 $f6,%lo(g_Vars+0x4c)($at)
/* f06e7d0: 46128032 */ c.eq.s $f16,$f18
/* f06e7d4: 3c013f80 */ lui $at,0x3f80
/* f06e7d8: 8fb80068 */ lw $t8,0x68($sp)
/* f06e7dc: 46060083 */ div.s $f2,$f0,$f6
/* f06e7e0: 45030006 */ bc1tl .L0f06e7fc
/* f06e7e4: 44814000 */ mtc1 $at,$f8
/* f06e7e8: 46101103 */ div.s $f4,$f2,$f16
/* f06e7ec: 8faf0068 */ lw $t7,0x68($sp)
/* f06e7f0: 10000004 */ b .L0f06e804
/* f06e7f4: e5e40064 */ swc1 $f4,0x64($t7)
/* f06e7f8: 44814000 */ mtc1 $at,$f8
.L0f06e7fc:
/* f06e7fc: 00000000 */ nop
/* f06e800: e7080064 */ swc1 $f8,0x64($t8)
.L0f06e804:
/* f06e804: 8fb90068 */ lw $t9,0x68($sp)
/* f06e808: 3c017f1b */ lui $at,%hi(var7f1aa294)
/* f06e80c: c7200064 */ lwc1 $f0,0x64($t9)
/* f06e810: 4612003c */ c.lt.s $f0,$f18
/* f06e814: 00000000 */ nop
/* f06e818: 45000004 */ bc1f .L0f06e82c
/* f06e81c: 00000000 */ nop
/* f06e820: 46000287 */ neg.s $f10,$f0
/* f06e824: e72a0064 */ swc1 $f10,0x64($t9)
/* f06e828: 46005006 */ mov.s $f0,$f10
.L0f06e82c:
/* f06e82c: c422a294 */ lwc1 $f2,%lo(var7f1aa294)($at)
/* f06e830: 3c017f1b */ lui $at,%hi(var7f1aa298)
/* f06e834: 8fae0068 */ lw $t6,0x68($sp)
/* f06e838: 4602003c */ c.lt.s $f0,$f2
/* f06e83c: 00000000 */ nop
/* f06e840: 45000003 */ bc1f .L0f06e850
/* f06e844: 00000000 */ nop
/* f06e848: 10000008 */ b .L0f06e86c
/* f06e84c: e5c20064 */ swc1 $f2,0x64($t6)
.L0f06e850:
/* f06e850: c422a298 */ lwc1 $f2,%lo(var7f1aa298)($at)
/* f06e854: 8faf0068 */ lw $t7,0x68($sp)
/* f06e858: 4600103c */ c.lt.s $f2,$f0
/* f06e85c: 00000000 */ nop
/* f06e860: 45020003 */ bc1fl .L0f06e870
/* f06e864: 8fbf0014 */ lw $ra,0x14($sp)
/* f06e868: e5e20064 */ swc1 $f2,0x64($t7)
.L0f06e86c:
/* f06e86c: 8fbf0014 */ lw $ra,0x14($sp)
.L0f06e870:
/* f06e870: 27bd01a0 */ addiu $sp,$sp,0x1a0
/* f06e874: 03e00008 */ jr $ra
/* f06e878: 00000000 */ nop
);
void knifePlayWooshSound(struct defaultobj *obj)
{
if (obj->hidden & OBJHFLAG_AIRBORNE) {
if ((obj->projectile->flags & PROJECTILEFLAG_00000001)
&& obj->projectile->unk090 <= 0
&& (obj->hidden & OBJHFLAG_00000020)) {
u16 soundnums[] = { SFX_8074, SFX_8074, SFX_8074 };
s32 index = random() % ARRAYCOUNT(soundnums);
if (obj->projectile->lastwooshframe < g_Vars.lvframe60 - TICKS(6)) {
func0f0926bc(obj->prop, 1, 0xffff);
if (!lvIsPaused()) {
propsnd0f0939f8(0, obj->prop, soundnums[index], -1, -1, 0, 0, 0, 0, -1.0f, 0, -1, -1.0f, -1.0f, -1.0f);
obj->projectile->lastwooshframe = g_Vars.lvframe60;
}
}
} else {
obj->hidden &= ~OBJHFLAG_00000020;
func0f0926bc(obj->prop, 1, 0xffff);
}
}
}
void func0f06e9cc(struct coord *arg0, Mtxf *arg1)
{
f32 sp124;
f32 sp120;
f32 sp11c;
f32 sp118;
f32 sp114;
f32 f0;
f32 sp10c;
f32 sp108;
f32 sp104;
f32 a;
f32 b;
f32 stack;
f32 spf4;
f32 spf0;
Mtxf spb0;
Mtxf sp70;
Mtxf sp30;
struct coord sp24;
f0 = sqrtf(arg0->f[0] * arg0->f[0] + arg0->f[1] * arg0->f[1] + arg0->f[2] * arg0->f[2]);
sp10c = arg0->x / f0;
sp108 = arg0->y / f0;
sp104 = arg0->z / f0;
if (sp10c == 0.0f && sp104 == 0.0f) {
sp124 = 0.0f;
sp120 = 0.0f;
sp11c = sp108;
sp118 = 1.0f;
sp114 = 0.0f;
} else {
a = sqrtf(sp10c * sp10c + sp104 * sp104);
b = sp10c / a;
sp118 = sp104 / a;
sp114 = -b;
sp124 = sp108 * b;
sp120 = -a;
sp11c = sp108 * sp118;
}
spf4 = atan2f(sp118, sp114);
mtx4LoadYRotation(-spf4, &spb0);
sp24.x = sp124;
sp24.y = sp120;
sp24.z = sp11c;
mtx4RotateVecInPlace(&spb0, &sp24);
spf0 = atan2f(sp24.x, sp24.y);
mtx4LoadYRotation(-1.5705463f + spf4, &sp70);
mtx4LoadXRotation(-1.5705463f - spf0, &sp30);
mtx4MultMtx4(&sp70, &sp30, arg1);
}
void objLand2(struct defaultobj *obj, struct coord *arg1, struct coord *arg2)
{
Mtxf sp40;
struct coord newpos;
struct modelrodata_bbox *bbox = modelFindBboxRodata(obj->model);
f32 ymin = modelBboxGetYMin(bbox);
struct prop *prop = obj->prop;
s16 newrooms[8];
func0f06e9cc(arg2, &sp40);
mtx00015f04(obj->model->scale, &sp40);
newpos.x = arg1->x - sp40.m[1][0] * ymin;
newpos.y = arg1->y - sp40.m[1][1] * ymin;
newpos.z = arg1->z - sp40.m[1][2] * ymin;
func0f065e74(&prop->pos, prop->rooms, &newpos, newrooms);
func0f06a580(obj, &newpos, &sp40, newrooms);
}
void boltLand(struct weaponobj *weapon, struct coord *arg1)
{
Mtxf mtx;
struct coord newpos;
struct modelrodata_bbox *bbox;
s32 beamnum;
f32 zmax;
struct prop *prop;
s16 newrooms[8];
bbox = modelFindBboxRodata(weapon->base.model);
prop = weapon->base.prop;
weapon->timer240 = 13;
zmax = modelBboxGetZMax(bbox);
zmax -= 25.0f + 2.0f * RANDOMFRAC();
mtx3ToMtx4(weapon->base.realrot, &mtx);
newpos.x = arg1->x - mtx.m[2][0] * zmax;
newpos.y = arg1->y - mtx.m[2][1] * zmax;
newpos.z = arg1->z - mtx.m[2][2] * zmax;
func0f065dd8(&prop->pos, prop->rooms, &newpos, newrooms);
func0f06a580(&weapon->base, &newpos, &mtx, newrooms);
beamnum = boltbeamFindByProp(prop);
if (beamnum != -1) {
boltbeamSetTailPos(beamnum, &prop->pos);
boltbeamSetAutomatic(beamnum, 2100);
}
}
void knifeLand(struct defaultobj *obj, struct coord *arg1, struct coord *arg2)
{
Mtxf spd0;
Mtxf sp90;
Mtxf sp50;
struct coord newpos;
struct modelrodata_bbox *bbox = modelFindBboxRodata(obj->model);
f32 zero = 0.0f;
struct prop *prop = obj->prop;
s16 newrooms[8];
struct coord sp1c;
// @bug? Should these be assigned to zero?
modelBboxGetZMin(bbox);
random();
sp1c.x = RANDOMFRAC() * 0.8f + arg2->x - 0.4f;
sp1c.y = RANDOMFRAC() * 0.8f + arg2->y - 0.4f;
sp1c.z = RANDOMFRAC() * 0.8f + arg2->z - 0.4f;
func0f06e9cc(&sp1c, &sp90);
mtx4LoadXRotation(-1.5705463f, &sp50);
mtx4MultMtx4(&sp90, &sp50, &spd0);
mtx00015f04(obj->model->scale, &spd0);
newpos.x = arg1->x - zero;
newpos.y = arg1->y - zero;
newpos.z = arg1->z - zero;
func0f065e74(&prop->pos, prop->rooms, &newpos, newrooms);
func0f06a580(obj, &newpos, &spd0, newrooms);
}
bool objEmbed(struct prop *prop, struct prop *parent, struct model *model, struct modelnode *node)
{
if (parent->flags & PROPFLAG_ONTHISSCREENTHISTICK) {
struct defaultobj *obj = prop->obj;
Mtxf sp134;
Mtxf spf4;
Mtxf spb4;
Mtxf sp74;
Mtxf sp34;
struct coord sp28;
Mtxf *sp24;
obj->embedment = embedmentAllocate();
if (obj->embedment) {
sp24 = model0001a5cc(model, node, 0);
obj->hidden |= OBJHFLAG_EMBEDDED;
propDeregisterRooms(prop);
propDelist(prop);
propDisable(prop);
obj->model->attachedtomodel = model;
obj->model->attachedtonode = node;
propReparent(prop, parent);
modelGetRootPosition(obj->model, &sp28);
sp28.x = -sp28.x;
sp28.y = -sp28.y;
sp28.z = -sp28.z;
mtx4LoadTranslation(&sp28, &sp74);
mtx3ToMtx4(obj->realrot, &sp34);
mtx4SetTranslation(&prop->pos, &sp34);
mtx00015be4(&sp34, &sp74, &sp134);
mtx00015be4(camGetProjectionMtxF(), sp24, &spf4);
mtx000172f0(spf4.m, spb4.m);
mtx00015be4(&spb4, &sp134, &obj->embedment->matrix);
return true;
}
}
return false;
}
void objLand(struct prop *prop, struct coord *arg1, struct coord *arg2, bool *embedded)
{
struct defaultobj *obj = prop->obj;
struct prop *ownerprop = NULL;
if (obj->hidden & OBJHFLAG_AIRBORNE) {
ownerprop = obj->projectile->ownerprop;
objEndFlight(obj);
}
obj->hidden |= OBJHFLAG_00020000;
if (obj->type == OBJTYPE_WEAPON) {
struct weaponobj *weapon = (struct weaponobj *)obj;
if (weapon->weaponnum == WEAPON_ECMMINE
|| weapon->weaponnum == WEAPON_COMMSRIDER
|| weapon->weaponnum == WEAPON_TRACERBUG
|| weapon->weaponnum == WEAPON_TARGETAMPLIFIER) {
obj->flags |= OBJFLAG_INVINCIBLE;
obj->flags |= OBJFLAG_00400000;
obj->flags2 |= OBJFLAG2_IMMUNETOGUNFIRE;
}
objectiveCheckThrowInRoom(weapon->weaponnum, prop->rooms);
if (weapon->weaponnum == WEAPON_BOLT) {
boltLand(weapon, arg1);
} else if (weapon->weaponnum == WEAPON_COMBATKNIFE) {
knifeLand(obj, arg1, arg2);
} else {
objLand2(obj, arg1, arg2);
}
} else if (obj->type == OBJTYPE_AUTOGUN) {
struct autogunobj *autogun = (struct autogunobj *)obj;
objLand2(obj, arg1, arg2);
autogun->yzero = atan2f(arg2->x, arg2->z);
autogun->xzero = atan2f(arg2->y, sqrtf(arg2->f[0] * arg2->f[0] + arg2->f[2] * arg2->f[2]));
autogun->xrot = autogun->xzero;
autogun->yrot = autogun->yzero;
}
if (g_EmbedProp) {
if (obj->type == OBJTYPE_WEAPON) {
struct weaponobj *weapon = (struct weaponobj *)obj;
bgunPlayPropHitSound((struct gset *)&weapon->weaponnum, g_EmbedProp, -1);
if (weapon->weaponnum == WEAPON_COMBATKNIFE
&& (g_EmbedProp->type == PROPTYPE_CHR || g_EmbedProp->type == PROPTYPE_PLAYER)) {
chrSetPoisoned(g_EmbedProp->chr, ownerprop);
}
}
if (g_EmbedProp->flags & PROPFLAG_ONTHISSCREENTHISTICK) {
if (objEmbed(prop, g_EmbedProp, g_EmbedModel, g_EmbedNode)) {
*embedded = true;
}
} else {
obj->hidden |= OBJHFLAG_REAPABLE;
}
} else if (obj->type == OBJTYPE_WEAPON) {
struct weaponobj *weapon = (struct weaponobj *)obj;
bgunPlayBgHitSound((struct gset *)&weapon->weaponnum, arg1, -1, prop->rooms);
}
}
bool propExplode(struct prop *prop, s32 exptype)
{
struct defaultobj *obj = prop->obj;
s32 playernum = (obj->hidden & 0xf0000000) >> 28;
bool result;
if (prop->parent) {
struct prop *parent = prop->parent;
struct coord pos;
s16 rooms[8];
while (parent->parent) {
parent = parent->parent;
}
if (prop->flags & PROPFLAG_ONTHISSCREENTHISTICK) {
Mtxf *mtx = model0001a60c(obj->model);
pos.x = mtx->m[3][0];
pos.y = mtx->m[3][1];
pos.z = mtx->m[3][2];
mtx4TransformVecInPlace(camGetProjectionMtxF(), &pos);
} else {
pos.x = parent->pos.x;
pos.y = parent->pos.y;
pos.z = parent->pos.z;
}
func0f065e74(&parent->pos, parent->rooms, &pos, rooms);
result = explosionCreateComplex(NULL, &pos, rooms, exptype, playernum);
} else if ((obj->hidden & (OBJHFLAG_EMBEDDED | OBJHFLAG_AIRBORNE | OBJHFLAG_00020000)) == OBJHFLAG_00020000) {
struct coord sp5c;
struct coord sp50;
f32 ymin = modelBboxGetYMin(modelFindBboxRodata(obj->model));
s32 room = prop->rooms[0];
sp50.x = obj->realrot[1][0];
sp50.y = obj->realrot[1][1];
sp50.z = obj->realrot[1][2];
sp5c.x = prop->pos.f[0] + obj->realrot[1][0] * ymin;
sp5c.y = prop->pos.f[1] + obj->realrot[1][1] * ymin;
sp5c.z = prop->pos.f[2] + obj->realrot[1][2] * ymin;
result = explosionCreate(NULL, &prop->pos, prop->rooms, exptype,
playernum, true, &sp5c, room, &sp50);
} else {
result = explosionCreateComplex(NULL, &prop->pos, prop->rooms, exptype, playernum);
}
return result;
}
void ammocrateTick(struct prop *prop)
{
struct defaultobj *obj = prop->obj;
if (obj->flags & OBJFLAG_AMMOCRATE_EXPLODENOW) {
propExplode(prop, EXPLOSIONTYPE_12);
obj->hidden |= OBJHFLAG_REAPABLE;
}
}
u32 var800699fc = 0x00000000;
u32 var80069a00 = 0xc1200000;
u32 var80069a04 = 0x00000000;
#if PAL
GLOBAL_ASM(
glabel weaponTick
.late_rodata
glabel var7f1aa2c0
.word 0x47742400
glabel var7f1aa2c4
.word 0x3cd67750
.text
/* f06f54c: 27bdfe50 */ addiu $sp,$sp,-432
/* f06f550: afbf001c */ sw $ra,0x1c($sp)
/* f06f554: afb00018 */ sw $s0,0x18($sp)
/* f06f558: afa401b0 */ sw $a0,0x1b0($sp)
/* f06f55c: 8c820004 */ lw $v0,0x4($a0)
/* f06f560: 2406001e */ addiu $a2,$zero,0x1e
/* f06f564: afa201a8 */ sw $v0,0x1a8($sp)
/* f06f568: 904f005c */ lbu $t7,0x5c($v0)
/* f06f56c: 8fae01a8 */ lw $t6,0x1a8($sp)
/* f06f570: 00408025 */ or $s0,$v0,$zero
/* f06f574: 54cf0005 */ bnel $a2,$t7,.L0f06f58c
/* f06f578: 91c2005c */ lbu $v0,0x5c($t6)
/* f06f57c: 9059005f */ lbu $t9,0x5f($v0)
/* f06f580: 53200006 */ beqzl $t9,.L0f06f59c
/* f06f584: 8faf01a8 */ lw $t7,0x1a8($sp)
/* f06f588: 91c2005c */ lbu $v0,0x5c($t6)
.L0f06f58c:
/* f06f58c: 24010055 */ addiu $at,$zero,0x55
/* f06f590: 544100cf */ bnel $v0,$at,.L0f06f8d0
/* f06f594: 2405001f */ addiu $a1,$zero,0x1f
/* f06f598: 8faf01a8 */ lw $t7,0x1a8($sp)
.L0f06f59c:
/* f06f59c: 24010055 */ addiu $at,$zero,0x55
/* f06f5a0: 85e30062 */ lh $v1,0x62($t7)
/* f06f5a4: 91e2005c */ lbu $v0,0x5c($t7)
/* f06f5a8: 046200c9 */ bltzl $v1,.L0f06f8d0
/* f06f5ac: 2405001f */ addiu $a1,$zero,0x1f
/* f06f5b0: 1441005f */ bne $v0,$at,.L0f06f730
/* f06f5b4: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06f5b8: 91f8005f */ lbu $t8,0x5f($t7)
/* f06f5bc: 24070001 */ addiu $a3,$zero,0x1
/* f06f5c0: 14f8005b */ bne $a3,$t8,.L0f06f730
/* f06f5c4: 00000000 */ nop
/* f06f5c8: 18600059 */ blez $v1,.L0f06f730
/* f06f5cc: 28610002 */ slti $at,$v1,0x2
/* f06f5d0: 14200055 */ bnez $at,.L0f06f728
/* f06f5d4: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06f5d8: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06f5dc: 8db90034 */ lw $t9,0x34($t5)
/* f06f5e0: 00797023 */ subu $t6,$v1,$t9
/* f06f5e4: 29c10008 */ slti $at,$t6,0x8
/* f06f5e8: 102003e9 */ beqz $at,.L0f070590
/* f06f5ec: a5ee0062 */ sh $t6,0x62($t7)
/* f06f5f0: 3c198007 */ lui $t9,%hi(var800699fc)
/* f06f5f4: 273999fc */ addiu $t9,$t9,%lo(var800699fc)
/* f06f5f8: 8f210000 */ lw $at,0x0($t9)
/* f06f5fc: 27b8019c */ addiu $t8,$sp,0x19c
/* f06f600: 8f2e0004 */ lw $t6,0x4($t9)
/* f06f604: af010000 */ sw $at,0x0($t8)
/* f06f608: 8f210008 */ lw $at,0x8($t9)
/* f06f60c: af0e0004 */ sw $t6,0x4($t8)
/* f06f610: af010008 */ sw $at,0x8($t8)
/* f06f614: afa00194 */ sw $zero,0x194($sp)
/* f06f618: 0fc1a179 */ jal func0f0685e4
/* f06f61c: 8fa401b0 */ lw $a0,0x1b0($sp)
/* f06f620: 8e020040 */ lw $v0,0x40($s0)
/* f06f624: 8fa50194 */ lw $a1,0x194($sp)
/* f06f628: 24070001 */ addiu $a3,$zero,0x1
/* f06f62c: 304f0040 */ andi $t7,$v0,0x40
/* f06f630: 11e00004 */ beqz $t7,.L0f06f644
/* f06f634: 30590080 */ andi $t9,$v0,0x80
/* f06f638: 8e180048 */ lw $t8,0x48($s0)
/* f06f63c: 10000004 */ b .L0f06f650
/* f06f640: 8f050044 */ lw $a1,0x44($t8)
.L0f06f644:
/* f06f644: 13200002 */ beqz $t9,.L0f06f650
/* f06f648: 00000000 */ nop
/* f06f64c: 8e050048 */ lw $a1,0x48($s0)
.L0f06f650:
/* f06f650: 10a00032 */ beqz $a1,.L0f06f71c
/* f06f654: 8fb801a8 */ lw $t8,0x1a8($sp)
/* f06f658: 8fae01b0 */ lw $t6,0x1b0($sp)
/* f06f65c: 8dcf0018 */ lw $t7,0x18($t6)
/* f06f660: 01c01825 */ or $v1,$t6,$zero
/* f06f664: 11e00006 */ beqz $t7,.L0f06f680
/* f06f668: 00000000 */ nop
/* f06f66c: 8dc20018 */ lw $v0,0x18($t6)
/* f06f670: 00401825 */ or $v1,$v0,$zero
.L0f06f674:
/* f06f674: 8c420018 */ lw $v0,0x18($v0)
/* f06f678: 5440fffe */ bnezl $v0,.L0f06f674
/* f06f67c: 00401825 */ or $v1,$v0,$zero
.L0f06f680:
/* f06f680: 5060000d */ beqzl $v1,.L0f06f6b8
/* f06f684: 8cae0000 */ lw $t6,0x0($a1)
/* f06f688: 90620000 */ lbu $v0,0x0($v1)
/* f06f68c: 24010003 */ addiu $at,$zero,0x3
/* f06f690: 10410003 */ beq $v0,$at,.L0f06f6a0
/* f06f694: 24010006 */ addiu $at,$zero,0x6
/* f06f698: 54410007 */ bnel $v0,$at,.L0f06f6b8
/* f06f69c: 8cae0000 */ lw $t6,0x0($a1)
.L0f06f6a0:
/* f06f6a0: 8c620004 */ lw $v0,0x4($v1)
/* f06f6a4: 8c580014 */ lw $t8,0x14($v0)
/* f06f6a8: 37190001 */ ori $t9,$t8,0x1
/* f06f6ac: 10000005 */ b .L0f06f6c4
/* f06f6b0: ac590014 */ sw $t9,0x14($v0)
/* f06f6b4: 8cae0000 */ lw $t6,0x0($a1)
.L0f06f6b8:
/* f06f6b8: aca00088 */ sw $zero,0x88($a1)
/* f06f6bc: 35cf0001 */ ori $t7,$t6,0x1
/* f06f6c0: acaf0000 */ sw $t7,0x0($a1)
.L0f06f6c4:
/* f06f6c4: 8fb801a8 */ lw $t8,0x1a8($sp)
/* f06f6c8: a7070062 */ sh $a3,0x62($t8)
/* f06f6cc: afa50194 */ sw $a1,0x194($sp)
/* f06f6d0: 0fc1a1a5 */ jal objSetProjectileFlag4
/* f06f6d4: 8fa401b0 */ lw $a0,0x1b0($sp)
/* f06f6d8: 8fa50194 */ lw $a1,0x194($sp)
/* f06f6dc: c7a4019c */ lwc1 $f4,0x19c($sp)
/* f06f6e0: 24a40020 */ addiu $a0,$a1,0x20
/* f06f6e4: e4a40004 */ swc1 $f4,0x4($a1)
/* f06f6e8: c7a601a0 */ lwc1 $f6,0x1a0($sp)
/* f06f6ec: e4a60008 */ swc1 $f6,0x8($a1)
/* f06f6f0: c7a801a4 */ lwc1 $f8,0x1a4($sp)
/* f06f6f4: 0c00566c */ jal mtx4LoadIdentity
/* f06f6f8: e4a8000c */ swc1 $f8,0xc($a1)
/* f06f6fc: 8fa50194 */ lw $a1,0x194($sp)
/* f06f700: 8fb901a8 */ lw $t9,0x1a8($sp)
/* f06f704: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06f708: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06f70c: acb900d4 */ sw $t9,0xd4($a1)
/* f06f710: 8dae000c */ lw $t6,0xc($t5)
/* f06f714: 1000039e */ b .L0f070590
/* f06f718: acae00d8 */ sw $t6,0xd8($a1)
.L0f06f71c:
/* f06f71c: 240f0002 */ addiu $t7,$zero,0x2
/* f06f720: 1000039b */ b .L0f070590
/* f06f724: a70f0062 */ sh $t7,0x62($t8)
.L0f06f728:
/* f06f728: 1000039a */ b .L0f070594
/* f06f72c: 8e190010 */ lw $t9,0x10($s0)
.L0f06f730:
/* f06f730: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06f734: 8db90034 */ lw $t9,0x34($t5)
/* f06f738: 8faf01a8 */ lw $t7,0x1a8($sp)
/* f06f73c: 00797023 */ subu $t6,$v1,$t9
/* f06f740: 05c10393 */ bgez $t6,.L0f070590
/* f06f744: a5ee0062 */ sh $t6,0x62($t7)
/* f06f748: 0fc10e62 */ jal propUnsetDangerous
/* f06f74c: 8fa401b0 */ lw $a0,0x1b0($sp)
/* f06f750: 8fb801a8 */ lw $t8,0x1a8($sp)
/* f06f754: 24010002 */ addiu $at,$zero,0x2
/* f06f758: 8fa401b0 */ lw $a0,0x1b0($sp)
/* f06f75c: 9319005f */ lbu $t9,0x5f($t8)
/* f06f760: 57210007 */ bnel $t9,$at,.L0f06f780
/* f06f764: 8e0f000c */ lw $t7,0xc($s0)
/* f06f768: 0fc1bcc5 */ jal propExplode
/* f06f76c: 24050015 */ addiu $a1,$zero,0x15
/* f06f770: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06f774: 1000000c */ b .L0f06f7a8
/* f06f778: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06f77c: 8e0f000c */ lw $t7,0xc($s0)
.L0f06f780:
/* f06f780: 2405000d */ addiu $a1,$zero,0xd
/* f06f784: 000f7000 */ sll $t6,$t7,0x0
/* f06f788: 05c10003 */ bgez $t6,.L0f06f798
/* f06f78c: 00000000 */ nop
/* f06f790: 10000001 */ b .L0f06f798
/* f06f794: 24050011 */ addiu $a1,$zero,0x11
.L0f06f798:
/* f06f798: 0fc1bcc5 */ jal propExplode
/* f06f79c: 8fa401b0 */ lw $a0,0x1b0($sp)
/* f06f7a0: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06f7a4: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
.L0f06f7a8:
/* f06f7a8: 8e180040 */ lw $t8,0x40($s0)
/* f06f7ac: 00004025 */ or $t0,$zero,$zero
/* f06f7b0: 00003025 */ or $a2,$zero,$zero
/* f06f7b4: 37190004 */ ori $t9,$t8,0x4
/* f06f7b8: ae190040 */ sw $t9,0x40($s0)
/* f06f7bc: 8dab006c */ lw $t3,0x6c($t5)
/* f06f7c0: 00002025 */ or $a0,$zero,$zero
/* f06f7c4: 00001025 */ or $v0,$zero,$zero
/* f06f7c8: 11600003 */ beqz $t3,.L0f06f7d8
/* f06f7cc: 00002825 */ or $a1,$zero,$zero
/* f06f7d0: 10000001 */ b .L0f06f7d8
/* f06f7d4: 24060001 */ addiu $a2,$zero,0x1
.L0f06f7d8:
/* f06f7d8: 8daa0068 */ lw $t2,0x68($t5)
/* f06f7dc: 0008c880 */ sll $t9,$t0,0x2
/* f06f7e0: 01b91821 */ addu $v1,$t5,$t9
/* f06f7e4: 11400003 */ beqz $t2,.L0f06f7f4
/* f06f7e8: 240c0003 */ addiu $t4,$zero,0x3
/* f06f7ec: 10000001 */ b .L0f06f7f4
/* f06f7f0: 24040001 */ addiu $a0,$zero,0x1
.L0f06f7f4:
/* f06f7f4: 8da90064 */ lw $t1,0x64($t5)
/* f06f7f8: 11200003 */ beqz $t1,.L0f06f808
/* f06f7fc: 00000000 */ nop
/* f06f800: 10000001 */ b .L0f06f808
/* f06f804: 24020001 */ addiu $v0,$zero,0x1
.L0f06f808:
/* f06f808: 8da70070 */ lw $a3,0x70($t5)
/* f06f80c: 10e00003 */ beqz $a3,.L0f06f81c
/* f06f810: 00000000 */ nop
/* f06f814: 10000001 */ b .L0f06f81c
/* f06f818: 24050001 */ addiu $a1,$zero,0x1
.L0f06f81c:
/* f06f81c: 00a27821 */ addu $t7,$a1,$v0
/* f06f820: 01e47021 */ addu $t6,$t7,$a0
/* f06f824: 01c6c021 */ addu $t8,$t6,$a2
/* f06f828: 5b00035a */ blezl $t8,.L0f070594
/* f06f82c: 8e190010 */ lw $t9,0x10($s0)
/* f06f830: 8c620064 */ lw $v0,0x64($v1)
.L0f06f834:
/* f06f834: 25080001 */ addiu $t0,$t0,0x1
/* f06f838: 00003025 */ or $a2,$zero,$zero
/* f06f83c: 8c4f0264 */ lw $t7,0x264($v0)
/* f06f840: 00002025 */ or $a0,$zero,$zero
/* f06f844: 00002825 */ or $a1,$zero,$zero
/* f06f848: 160f0008 */ bne $s0,$t7,.L0f06f86c
/* f06f84c: 00000000 */ nop
/* f06f850: ac400264 */ sw $zero,0x264($v0)
/* f06f854: 8c6e0064 */ lw $t6,0x64($v1)
/* f06f858: a5cc0010 */ sh $t4,0x10($t6)
/* f06f85c: 8da70070 */ lw $a3,0x70($t5)
/* f06f860: 8da90064 */ lw $t1,0x64($t5)
/* f06f864: 8daa0068 */ lw $t2,0x68($t5)
/* f06f868: 8dab006c */ lw $t3,0x6c($t5)
.L0f06f86c:
/* f06f86c: 11600003 */ beqz $t3,.L0f06f87c
/* f06f870: 24630004 */ addiu $v1,$v1,0x4
/* f06f874: 10000001 */ b .L0f06f87c
/* f06f878: 24060001 */ addiu $a2,$zero,0x1
.L0f06f87c:
/* f06f87c: 11400003 */ beqz $t2,.L0f06f88c
/* f06f880: 00001025 */ or $v0,$zero,$zero
/* f06f884: 10000001 */ b .L0f06f88c
/* f06f888: 24040001 */ addiu $a0,$zero,0x1
.L0f06f88c:
/* f06f88c: 11200003 */ beqz $t1,.L0f06f89c
/* f06f890: 00000000 */ nop
/* f06f894: 10000001 */ b .L0f06f89c
/* f06f898: 24020001 */ addiu $v0,$zero,0x1
.L0f06f89c:
/* f06f89c: 10e00003 */ beqz $a3,.L0f06f8ac
/* f06f8a0: 00000000 */ nop
/* f06f8a4: 10000001 */ b .L0f06f8ac
/* f06f8a8: 24050001 */ addiu $a1,$zero,0x1
.L0f06f8ac:
/* f06f8ac: 00a2c021 */ addu $t8,$a1,$v0
/* f06f8b0: 0304c821 */ addu $t9,$t8,$a0
/* f06f8b4: 03267821 */ addu $t7,$t9,$a2
/* f06f8b8: 010f082a */ slt $at,$t0,$t7
/* f06f8bc: 5420ffdd */ bnezl $at,.L0f06f834
/* f06f8c0: 8c620064 */ lw $v0,0x64($v1)
/* f06f8c4: 10000333 */ b .L0f070594
/* f06f8c8: 8e190010 */ lw $t9,0x10($s0)
/* f06f8cc: 2405001f */ addiu $a1,$zero,0x1f
.L0f06f8d0:
/* f06f8d0: 54a2006b */ bnel $a1,$v0,.L0f06fa80
/* f06f8d4: 24010053 */ addiu $at,$zero,0x53
/* f06f8d8: 8fae01a8 */ lw $t6,0x1a8($sp)
/* f06f8dc: 91d8005f */ lbu $t8,0x5f($t6)
/* f06f8e0: 57000067 */ bnezl $t8,.L0f06fa80
/* f06f8e4: 24010053 */ addiu $at,$zero,0x53
/* f06f8e8: 85c30062 */ lh $v1,0x62($t6)
/* f06f8ec: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06f8f0: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06f8f4: 0460005f */ bltz $v1,.L0f06fa74
/* f06f8f8: 00000000 */ nop
/* f06f8fc: 8db90034 */ lw $t9,0x34($t5)
/* f06f900: 00002825 */ or $a1,$zero,$zero
/* f06f904: 00797823 */ subu $t7,$v1,$t9
/* f06f908: 05e1005a */ bgez $t7,.L0f06fa74
/* f06f90c: a5cf0062 */ sh $t7,0x62($t6)
/* f06f910: 8e040040 */ lw $a0,0x40($s0)
/* f06f914: 8dae0318 */ lw $t6,0x318($t5)
/* f06f918: 3c01f000 */ lui $at,0xf000
/* f06f91c: 0081c024 */ and $t8,$a0,$at
/* f06f920: 11c00006 */ beqz $t6,.L0f06f93c
/* f06f924: 00182702 */ srl $a0,$t8,0x1c
/* f06f928: 0fc63410 */ jal mpGetChrFromPlayerIndex
/* f06f92c: afa0018c */ sw $zero,0x18c($sp)
/* f06f930: 10400002 */ beqz $v0,.L0f06f93c
/* f06f934: 8fa5018c */ lw $a1,0x18c($sp)
/* f06f938: 8c45001c */ lw $a1,0x1c($v0)
.L0f06f93c:
/* f06f93c: 8fa601b0 */ lw $a2,0x1b0($sp)
/* f06f940: 0fc0287e */ jal nbombCreateStorm
/* f06f944: 24c40008 */ addiu $a0,$a2,0x8
/* f06f948: 0fc10e62 */ jal propUnsetDangerous
/* f06f94c: 8fa401b0 */ lw $a0,0x1b0($sp)
/* f06f950: 8e180040 */ lw $t8,0x40($s0)
/* f06f954: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06f958: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06f95c: 37190004 */ ori $t9,$t8,0x4
/* f06f960: ae190040 */ sw $t9,0x40($s0)
/* f06f964: 8dab006c */ lw $t3,0x6c($t5)
/* f06f968: 00004025 */ or $t0,$zero,$zero
/* f06f96c: 00003025 */ or $a2,$zero,$zero
/* f06f970: 11600003 */ beqz $t3,.L0f06f980
/* f06f974: 00002025 */ or $a0,$zero,$zero
/* f06f978: 10000001 */ b .L0f06f980
/* f06f97c: 24060001 */ addiu $a2,$zero,0x1
.L0f06f980:
/* f06f980: 8daa0068 */ lw $t2,0x68($t5)
/* f06f984: 00001025 */ or $v0,$zero,$zero
/* f06f988: 00002825 */ or $a1,$zero,$zero
/* f06f98c: 11400003 */ beqz $t2,.L0f06f99c
/* f06f990: 0008c880 */ sll $t9,$t0,0x2
/* f06f994: 10000001 */ b .L0f06f99c
/* f06f998: 24040001 */ addiu $a0,$zero,0x1
.L0f06f99c:
/* f06f99c: 8da90064 */ lw $t1,0x64($t5)
/* f06f9a0: 01b91821 */ addu $v1,$t5,$t9
/* f06f9a4: 240c0003 */ addiu $t4,$zero,0x3
/* f06f9a8: 11200003 */ beqz $t1,.L0f06f9b8
/* f06f9ac: 00000000 */ nop
/* f06f9b0: 10000001 */ b .L0f06f9b8
/* f06f9b4: 24020001 */ addiu $v0,$zero,0x1
.L0f06f9b8:
/* f06f9b8: 8da70070 */ lw $a3,0x70($t5)
/* f06f9bc: 10e00003 */ beqz $a3,.L0f06f9cc
/* f06f9c0: 00000000 */ nop
/* f06f9c4: 10000001 */ b .L0f06f9cc
/* f06f9c8: 24050001 */ addiu $a1,$zero,0x1
.L0f06f9cc:
/* f06f9cc: 00a27021 */ addu $t6,$a1,$v0
/* f06f9d0: 01c47821 */ addu $t7,$t6,$a0
/* f06f9d4: 01e6c021 */ addu $t8,$t7,$a2
/* f06f9d8: 1b000026 */ blez $t8,.L0f06fa74
/* f06f9dc: 00000000 */ nop
/* f06f9e0: 8c620064 */ lw $v0,0x64($v1)
.L0f06f9e4:
/* f06f9e4: 25080001 */ addiu $t0,$t0,0x1
/* f06f9e8: 00003025 */ or $a2,$zero,$zero
/* f06f9ec: 8c4e0264 */ lw $t6,0x264($v0)
/* f06f9f0: 00002025 */ or $a0,$zero,$zero
/* f06f9f4: 00002825 */ or $a1,$zero,$zero
/* f06f9f8: 160e0008 */ bne $s0,$t6,.L0f06fa1c
/* f06f9fc: 00000000 */ nop
/* f06fa00: ac400264 */ sw $zero,0x264($v0)
/* f06fa04: 8c6f0064 */ lw $t7,0x64($v1)
/* f06fa08: a5ec0010 */ sh $t4,0x10($t7)
/* f06fa0c: 8da70070 */ lw $a3,0x70($t5)
/* f06fa10: 8da90064 */ lw $t1,0x64($t5)
/* f06fa14: 8daa0068 */ lw $t2,0x68($t5)
/* f06fa18: 8dab006c */ lw $t3,0x6c($t5)
.L0f06fa1c:
/* f06fa1c: 11600003 */ beqz $t3,.L0f06fa2c
/* f06fa20: 24630004 */ addiu $v1,$v1,0x4
/* f06fa24: 10000001 */ b .L0f06fa2c
/* f06fa28: 24060001 */ addiu $a2,$zero,0x1
.L0f06fa2c:
/* f06fa2c: 11400003 */ beqz $t2,.L0f06fa3c
/* f06fa30: 00001025 */ or $v0,$zero,$zero
/* f06fa34: 10000001 */ b .L0f06fa3c
/* f06fa38: 24040001 */ addiu $a0,$zero,0x1
.L0f06fa3c:
/* f06fa3c: 11200003 */ beqz $t1,.L0f06fa4c
/* f06fa40: 00000000 */ nop
/* f06fa44: 10000001 */ b .L0f06fa4c
/* f06fa48: 24020001 */ addiu $v0,$zero,0x1
.L0f06fa4c:
/* f06fa4c: 10e00003 */ beqz $a3,.L0f06fa5c
/* f06fa50: 00000000 */ nop
/* f06fa54: 10000001 */ b .L0f06fa5c
/* f06fa58: 24050001 */ addiu $a1,$zero,0x1
.L0f06fa5c:
/* f06fa5c: 00a2c021 */ addu $t8,$a1,$v0
/* f06fa60: 0304c821 */ addu $t9,$t8,$a0
/* f06fa64: 03267021 */ addu $t6,$t9,$a2
/* f06fa68: 010e082a */ slt $at,$t0,$t6
/* f06fa6c: 5420ffdd */ bnezl $at,.L0f06f9e4
/* f06fa70: 8c620064 */ lw $v0,0x64($v1)
.L0f06fa74:
/* f06fa74: 100002c7 */ b .L0f070594
/* f06fa78: 8e190010 */ lw $t9,0x10($s0)
/* f06fa7c: 24010053 */ addiu $at,$zero,0x53
.L0f06fa80:
/* f06fa80: 10410005 */ beq $v0,$at,.L0f06fa98
/* f06fa84: 24010054 */ addiu $at,$zero,0x54
/* f06fa88: 10410003 */ beq $v0,$at,.L0f06fa98
/* f06fa8c: 24010058 */ addiu $at,$zero,0x58
/* f06fa90: 5441005a */ bnel $v0,$at,.L0f06fbfc
/* f06fa94: 24010020 */ addiu $at,$zero,0x20
.L0f06fa98:
/* f06fa98: 8faf01a8 */ lw $t7,0x1a8($sp)
/* f06fa9c: 85f80062 */ lh $t8,0x62($t7)
/* f06faa0: 17000053 */ bnez $t8,.L0f06fbf0
/* f06faa4: 00000000 */ nop
/* f06faa8: 8e19000c */ lw $t9,0xc($s0)
/* f06faac: 2405000d */ addiu $a1,$zero,0xd
/* f06fab0: 00197000 */ sll $t6,$t9,0x0
/* f06fab4: 05c10003 */ bgez $t6,.L0f06fac4
/* f06fab8: 00000000 */ nop
/* f06fabc: 10000001 */ b .L0f06fac4
/* f06fac0: 24050011 */ addiu $a1,$zero,0x11
.L0f06fac4:
/* f06fac4: 0fc1bcc5 */ jal propExplode
/* f06fac8: 8fa401b0 */ lw $a0,0x1b0($sp)
/* f06facc: 8e0f0040 */ lw $t7,0x40($s0)
/* f06fad0: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06fad4: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06fad8: 35f80004 */ ori $t8,$t7,0x4
/* f06fadc: ae180040 */ sw $t8,0x40($s0)
/* f06fae0: 8dab006c */ lw $t3,0x6c($t5)
/* f06fae4: 00004025 */ or $t0,$zero,$zero
/* f06fae8: 00003025 */ or $a2,$zero,$zero
/* f06faec: 11600003 */ beqz $t3,.L0f06fafc
/* f06faf0: 00002025 */ or $a0,$zero,$zero
/* f06faf4: 10000001 */ b .L0f06fafc
/* f06faf8: 24060001 */ addiu $a2,$zero,0x1
.L0f06fafc:
/* f06fafc: 8daa0068 */ lw $t2,0x68($t5)
/* f06fb00: 00001025 */ or $v0,$zero,$zero
/* f06fb04: 00002825 */ or $a1,$zero,$zero
/* f06fb08: 11400003 */ beqz $t2,.L0f06fb18
/* f06fb0c: 0008c080 */ sll $t8,$t0,0x2
/* f06fb10: 10000001 */ b .L0f06fb18
/* f06fb14: 24040001 */ addiu $a0,$zero,0x1
.L0f06fb18:
/* f06fb18: 8da90064 */ lw $t1,0x64($t5)
/* f06fb1c: 01b81821 */ addu $v1,$t5,$t8
/* f06fb20: 240c0003 */ addiu $t4,$zero,0x3
/* f06fb24: 11200003 */ beqz $t1,.L0f06fb34
/* f06fb28: 00000000 */ nop
/* f06fb2c: 10000001 */ b .L0f06fb34
/* f06fb30: 24020001 */ addiu $v0,$zero,0x1
.L0f06fb34:
/* f06fb34: 8da70070 */ lw $a3,0x70($t5)
/* f06fb38: 10e00003 */ beqz $a3,.L0f06fb48
/* f06fb3c: 00000000 */ nop
/* f06fb40: 10000001 */ b .L0f06fb48
/* f06fb44: 24050001 */ addiu $a1,$zero,0x1
.L0f06fb48:
/* f06fb48: 00a2c821 */ addu $t9,$a1,$v0
/* f06fb4c: 03247021 */ addu $t6,$t9,$a0
/* f06fb50: 01c67821 */ addu $t7,$t6,$a2
/* f06fb54: 19e00026 */ blez $t7,.L0f06fbf0
/* f06fb58: 00000000 */ nop
/* f06fb5c: 8c620064 */ lw $v0,0x64($v1)
.L0f06fb60:
/* f06fb60: 25080001 */ addiu $t0,$t0,0x1
/* f06fb64: 00003025 */ or $a2,$zero,$zero
/* f06fb68: 8c590264 */ lw $t9,0x264($v0)
/* f06fb6c: 00002025 */ or $a0,$zero,$zero
/* f06fb70: 00002825 */ or $a1,$zero,$zero
/* f06fb74: 16190008 */ bne $s0,$t9,.L0f06fb98
/* f06fb78: 00000000 */ nop
/* f06fb7c: ac400264 */ sw $zero,0x264($v0)
/* f06fb80: 8c6e0064 */ lw $t6,0x64($v1)
/* f06fb84: a5cc0010 */ sh $t4,0x10($t6)
/* f06fb88: 8da70070 */ lw $a3,0x70($t5)
/* f06fb8c: 8da90064 */ lw $t1,0x64($t5)
/* f06fb90: 8daa0068 */ lw $t2,0x68($t5)
/* f06fb94: 8dab006c */ lw $t3,0x6c($t5)
.L0f06fb98:
/* f06fb98: 11600003 */ beqz $t3,.L0f06fba8
/* f06fb9c: 24630004 */ addiu $v1,$v1,0x4
/* f06fba0: 10000001 */ b .L0f06fba8
/* f06fba4: 24060001 */ addiu $a2,$zero,0x1
.L0f06fba8:
/* f06fba8: 11400003 */ beqz $t2,.L0f06fbb8
/* f06fbac: 00001025 */ or $v0,$zero,$zero
/* f06fbb0: 10000001 */ b .L0f06fbb8
/* f06fbb4: 24040001 */ addiu $a0,$zero,0x1
.L0f06fbb8:
/* f06fbb8: 11200003 */ beqz $t1,.L0f06fbc8
/* f06fbbc: 00000000 */ nop
/* f06fbc0: 10000001 */ b .L0f06fbc8
/* f06fbc4: 24020001 */ addiu $v0,$zero,0x1
.L0f06fbc8:
/* f06fbc8: 10e00003 */ beqz $a3,.L0f06fbd8
/* f06fbcc: 00000000 */ nop
/* f06fbd0: 10000001 */ b .L0f06fbd8
/* f06fbd4: 24050001 */ addiu $a1,$zero,0x1
.L0f06fbd8:
/* f06fbd8: 00a27821 */ addu $t7,$a1,$v0
/* f06fbdc: 01e4c021 */ addu $t8,$t7,$a0
/* f06fbe0: 0306c821 */ addu $t9,$t8,$a2
/* f06fbe4: 0119082a */ slt $at,$t0,$t9
/* f06fbe8: 5420ffdd */ bnezl $at,.L0f06fb60
/* f06fbec: 8c620064 */ lw $v0,0x64($v1)
.L0f06fbf0:
/* f06fbf0: 10000268 */ b .L0f070594
/* f06fbf4: 8e190010 */ lw $t9,0x10($s0)
/* f06fbf8: 24010020 */ addiu $at,$zero,0x20
.L0f06fbfc:
/* f06fbfc: 54410022 */ bnel $v0,$at,.L0f06fc88
/* f06fc00: 24010022 */ addiu $at,$zero,0x22
/* f06fc04: 8fae01a8 */ lw $t6,0x1a8($sp)
/* f06fc08: 85c30062 */ lh $v1,0x62($t6)
/* f06fc0c: 0462001e */ bltzl $v1,.L0f06fc88
/* f06fc10: 24010022 */ addiu $at,$zero,0x22
/* f06fc14: 91cf005f */ lbu $t7,0x5f($t6)
/* f06fc18: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06fc1c: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06fc20: 15e00016 */ bnez $t7,.L0f06fc7c
/* f06fc24: 00000000 */ nop
/* f06fc28: 8db80034 */ lw $t8,0x34($t5)
/* f06fc2c: 0078c823 */ subu $t9,$v1,$t8
/* f06fc30: 07210257 */ bgez $t9,.L0f070590
/* f06fc34: a5d90062 */ sh $t9,0x62($t6)
/* f06fc38: 8e0f000c */ lw $t7,0xc($s0)
/* f06fc3c: 2405000d */ addiu $a1,$zero,0xd
/* f06fc40: 000fc000 */ sll $t8,$t7,0x0
/* f06fc44: 07010003 */ bgez $t8,.L0f06fc54
/* f06fc48: 00000000 */ nop
/* f06fc4c: 10000001 */ b .L0f06fc54
/* f06fc50: 24050011 */ addiu $a1,$zero,0x11
.L0f06fc54:
/* f06fc54: 0fc1bcc5 */ jal propExplode
/* f06fc58: 8fa401b0 */ lw $a0,0x1b0($sp)
/* f06fc5c: 1040024c */ beqz $v0,.L0f070590
/* f06fc60: 8fb901a8 */ lw $t9,0x1a8($sp)
/* f06fc64: 240effff */ addiu $t6,$zero,-1
/* f06fc68: a72e0062 */ sh $t6,0x62($t9)
/* f06fc6c: 8e0f0040 */ lw $t7,0x40($s0)
/* f06fc70: 35f80004 */ ori $t8,$t7,0x4
/* f06fc74: 10000246 */ b .L0f070590
/* f06fc78: ae180040 */ sw $t8,0x40($s0)
.L0f06fc7c:
/* f06fc7c: 10000245 */ b .L0f070594
/* f06fc80: 8e190010 */ lw $t9,0x10($s0)
/* f06fc84: 24010022 */ addiu $at,$zero,0x22
.L0f06fc88:
/* f06fc88: 5441007a */ bnel $v0,$at,.L0f06fe74
/* f06fc8c: 24010021 */ addiu $at,$zero,0x21
/* f06fc90: 3c058007 */ lui $a1,%hi(g_PlayersDetonatingMines)
/* f06fc94: 24a59910 */ addiu $a1,$a1,%lo(g_PlayersDetonatingMines)
/* f06fc98: 8cae0000 */ lw $t6,0x0($a1)
/* f06fc9c: 8fb801b0 */ lw $t8,0x1b0($sp)
/* f06fca0: 51c00053 */ beqzl $t6,.L0f06fdf0
/* f06fca4: 8fb801a8 */ lw $t8,0x1a8($sp)
/* f06fca8: 8e030040 */ lw $v1,0x40($s0)
/* f06fcac: 8f020018 */ lw $v0,0x18($t8)
/* f06fcb0: 3c01f000 */ lui $at,0xf000
/* f06fcb4: 0061c824 */ and $t9,$v1,$at
/* f06fcb8: 10400003 */ beqz $v0,.L0f06fcc8
/* f06fcbc: 00191f02 */ srl $v1,$t9,0x1c
/* f06fcc0: 10000002 */ b .L0f06fccc
/* f06fcc4: 8c440004 */ lw $a0,0x4($v0)
.L0f06fcc8:
/* f06fcc8: 00002025 */ or $a0,$zero,$zero
.L0f06fccc:
/* f06fccc: 10400009 */ beqz $v0,.L0f06fcf4
/* f06fcd0: 00000000 */ nop
/* f06fcd4: 10800007 */ beqz $a0,.L0f06fcf4
/* f06fcd8: 00000000 */ nop
/* f06fcdc: 0fc633fe */ jal mpPlayerGetIndex
/* f06fce0: afa30178 */ sw $v1,0x178($sp)
/* f06fce4: 8fa30178 */ lw $v1,0x178($sp)
/* f06fce8: 3c058007 */ lui $a1,%hi(g_PlayersDetonatingMines)
/* f06fcec: 24a59910 */ addiu $a1,$a1,%lo(g_PlayersDetonatingMines)
/* f06fcf0: 1043003e */ beq $v0,$v1,.L0f06fdec
.L0f06fcf4:
/* f06fcf4: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06fcf8: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06fcfc: 8dae0298 */ lw $t6,0x298($t5)
/* f06fd00: 24010002 */ addiu $at,$zero,0x2
/* f06fd04: 05c10004 */ bgez $t6,.L0f06fd18
/* f06fd08: 00000000 */ nop
/* f06fd0c: 8db9029c */ lw $t9,0x29c($t5)
/* f06fd10: 07220030 */ bltzl $t9,.L0f06fdd4
/* f06fd14: 8cae0000 */ lw $t6,0x0($a1)
.L0f06fd18:
/* f06fd18: 54610026 */ bnel $v1,$at,.L0f06fdb4
/* f06fd1c: 8cb80000 */ lw $t8,0x0($a1)
/* f06fd20: 8da202a4 */ lw $v0,0x2a4($t5)
/* f06fd24: 00001825 */ or $v1,$zero,$zero
/* f06fd28: 5040000d */ beqzl $v0,.L0f06fd60
/* f06fd2c: 8da202a0 */ lw $v0,0x2a0($t5)
/* f06fd30: 8c4400bc */ lw $a0,0xbc($v0)
/* f06fd34: 5080000a */ beqzl $a0,.L0f06fd60
/* f06fd38: 8da202a0 */ lw $v0,0x2a0($t5)
/* f06fd3c: 0fc4a25f */ jal playermgrGetPlayerNumByProp
/* f06fd40: 00000000 */ nop
/* f06fd44: 3c058007 */ lui $a1,%hi(g_PlayersDetonatingMines)
/* f06fd48: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06fd4c: 240f0001 */ addiu $t7,$zero,0x1
/* f06fd50: 004f1804 */ sllv $v1,$t7,$v0
/* f06fd54: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06fd58: 24a59910 */ addiu $a1,$a1,%lo(g_PlayersDetonatingMines)
/* f06fd5c: 8da202a0 */ lw $v0,0x2a0($t5)
.L0f06fd60:
/* f06fd60: 5040000d */ beqzl $v0,.L0f06fd98
/* f06fd64: 8cb90000 */ lw $t9,0x0($a1)
/* f06fd68: 8c4400bc */ lw $a0,0xbc($v0)
/* f06fd6c: 5080000a */ beqzl $a0,.L0f06fd98
/* f06fd70: 8cb90000 */ lw $t9,0x0($a1)
/* f06fd74: 0fc4a25f */ jal playermgrGetPlayerNumByProp
/* f06fd78: afa30170 */ sw $v1,0x170($sp)
/* f06fd7c: 8fa30170 */ lw $v1,0x170($sp)
/* f06fd80: 24180001 */ addiu $t8,$zero,0x1
/* f06fd84: 00587004 */ sllv $t6,$t8,$v0
/* f06fd88: 3c058007 */ lui $a1,%hi(g_PlayersDetonatingMines)
/* f06fd8c: 24a59910 */ addiu $a1,$a1,%lo(g_PlayersDetonatingMines)
/* f06fd90: 006e1825 */ or $v1,$v1,$t6
/* f06fd94: 8cb90000 */ lw $t9,0x0($a1)
.L0f06fd98:
/* f06fd98: 03237824 */ and $t7,$t9,$v1
/* f06fd9c: 11e00013 */ beqz $t7,.L0f06fdec
/* f06fda0: acaf0000 */ sw $t7,0x0($a1)
/* f06fda4: 8fae01a8 */ lw $t6,0x1a8($sp)
/* f06fda8: 10000010 */ b .L0f06fdec
/* f06fdac: a5c00062 */ sh $zero,0x62($t6)
/* f06fdb0: 8cb80000 */ lw $t8,0x0($a1)
.L0f06fdb4:
/* f06fdb4: 24190001 */ addiu $t9,$zero,0x1
/* f06fdb8: 00797804 */ sllv $t7,$t9,$v1
/* f06fdbc: 01f87024 */ and $t6,$t7,$t8
/* f06fdc0: 11c0000a */ beqz $t6,.L0f06fdec
/* f06fdc4: 8fb901a8 */ lw $t9,0x1a8($sp)
/* f06fdc8: 10000008 */ b .L0f06fdec
/* f06fdcc: a7200062 */ sh $zero,0x62($t9)
/* f06fdd0: 8cae0000 */ lw $t6,0x0($a1)
.L0f06fdd4:
/* f06fdd4: 240f0001 */ addiu $t7,$zero,0x1
/* f06fdd8: 006fc004 */ sllv $t8,$t7,$v1
/* f06fddc: 030ec824 */ and $t9,$t8,$t6
/* f06fde0: 13200002 */ beqz $t9,.L0f06fdec
/* f06fde4: 8faf01a8 */ lw $t7,0x1a8($sp)
/* f06fde8: a5e00062 */ sh $zero,0x62($t7)
.L0f06fdec:
/* f06fdec: 8fb801a8 */ lw $t8,0x1a8($sp)
.L0f06fdf0:
/* f06fdf0: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06fdf4: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06fdf8: 87030062 */ lh $v1,0x62($t8)
/* f06fdfc: 28610002 */ slti $at,$v1,0x2
/* f06fe00: 14200009 */ bnez $at,.L0f06fe28
/* f06fe04: 00000000 */ nop
/* f06fe08: 8dae0034 */ lw $t6,0x34($t5)
/* f06fe0c: 24070001 */ addiu $a3,$zero,0x1
/* f06fe10: 006ec823 */ subu $t9,$v1,$t6
/* f06fe14: 2b210002 */ slti $at,$t9,0x2
/* f06fe18: 102001dd */ beqz $at,.L0f070590
/* f06fe1c: a7190062 */ sh $t9,0x62($t8)
/* f06fe20: 100001db */ b .L0f070590
/* f06fe24: a7070062 */ sh $a3,0x62($t8)
.L0f06fe28:
/* f06fe28: 546001da */ bnezl $v1,.L0f070594
/* f06fe2c: 8e190010 */ lw $t9,0x10($s0)
/* f06fe30: 8e0f000c */ lw $t7,0xc($s0)
/* f06fe34: 2405000d */ addiu $a1,$zero,0xd
/* f06fe38: 000f7000 */ sll $t6,$t7,0x0
/* f06fe3c: 05c10002 */ bgez $t6,.L0f06fe48
/* f06fe40: 00000000 */ nop
/* f06fe44: 24050011 */ addiu $a1,$zero,0x11
.L0f06fe48:
/* f06fe48: 0fc1bcc5 */ jal propExplode
/* f06fe4c: 8fa401b0 */ lw $a0,0x1b0($sp)
/* f06fe50: 104001cf */ beqz $v0,.L0f070590
/* f06fe54: 8fb801a8 */ lw $t8,0x1a8($sp)
/* f06fe58: 2419ffff */ addiu $t9,$zero,-1
/* f06fe5c: a7190062 */ sh $t9,0x62($t8)
/* f06fe60: 8e0f0040 */ lw $t7,0x40($s0)
/* f06fe64: 35ee0004 */ ori $t6,$t7,0x4
/* f06fe68: 100001c9 */ b .L0f070590
/* f06fe6c: ae0e0040 */ sw $t6,0x40($s0)
/* f06fe70: 24010021 */ addiu $at,$zero,0x21
.L0f06fe74:
/* f06fe74: 10410012 */ beq $v0,$at,.L0f06fec0
/* f06fe78: 2401000f */ addiu $at,$zero,0xf
/* f06fe7c: 14410005 */ bne $v0,$at,.L0f06fe94
/* f06fe80: 8fb901a8 */ lw $t9,0x1a8($sp)
/* f06fe84: 9338005f */ lbu $t8,0x5f($t9)
/* f06fe88: 24070001 */ addiu $a3,$zero,0x1
/* f06fe8c: 50f8000d */ beql $a3,$t8,.L0f06fec4
/* f06fe90: 8faf01a8 */ lw $t7,0x1a8($sp)
.L0f06fe94:
/* f06fe94: 14c20005 */ bne $a2,$v0,.L0f06feac
/* f06fe98: 24070001 */ addiu $a3,$zero,0x1
/* f06fe9c: 8faf01a8 */ lw $t7,0x1a8($sp)
/* f06fea0: 91ee005f */ lbu $t6,0x5f($t7)
/* f06fea4: 50ee0007 */ beql $a3,$t6,.L0f06fec4
/* f06fea8: 8faf01a8 */ lw $t7,0x1a8($sp)
.L0f06feac:
/* f06feac: 14a200af */ bne $a1,$v0,.L0f07016c
/* f06feb0: 8fb901a8 */ lw $t9,0x1a8($sp)
/* f06feb4: 9338005f */ lbu $t8,0x5f($t9)
/* f06feb8: 54f800ad */ bnel $a3,$t8,.L0f070170
/* f06febc: 24010056 */ addiu $at,$zero,0x56
.L0f06fec0:
/* f06fec0: 8faf01a8 */ lw $t7,0x1a8($sp)
.L0f06fec4:
/* f06fec4: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06fec8: 24070001 */ addiu $a3,$zero,0x1
/* f06fecc: 85e30062 */ lh $v1,0x62($t7)
/* f06fed0: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06fed4: 28610002 */ slti $at,$v1,0x2
/* f06fed8: 1420000e */ bnez $at,.L0f06ff14
/* f06fedc: 00000000 */ nop
/* f06fee0: 8dae0034 */ lw $t6,0x34($t5)
/* f06fee4: 01e02025 */ or $a0,$t7,$zero
/* f06fee8: 006ec823 */ subu $t9,$v1,$t6
/* f06feec: 2b210002 */ slti $at,$t9,0x2
/* f06fef0: a5f90062 */ sh $t9,0x62($t7)
/* f06fef4: 10200025 */ beqz $at,.L0f06ff8c
/* f06fef8: 03201825 */ or $v1,$t9,$zero
/* f06fefc: 0fc22ad9 */ jal weaponRegisterProxy
/* f06ff00: a5e70062 */ sh $a3,0x62($t7)
/* f06ff04: 8fb801a8 */ lw $t8,0x1a8($sp)
/* f06ff08: 2405001f */ addiu $a1,$zero,0x1f
/* f06ff0c: 1000001f */ b .L0f06ff8c
/* f06ff10: 87030062 */ lh $v1,0x62($t8)
.L0f06ff14:
/* f06ff14: 14e3001d */ bne $a3,$v1,.L0f06ff8c
/* f06ff18: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06ff1c: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06ff20: 8dae0284 */ lw $t6,0x284($t5)
/* f06ff24: 8fb901b0 */ lw $t9,0x1b0($sp)
/* f06ff28: 3c017f1b */ lui $at,%hi(var7f1aa2c0)
/* f06ff2c: 8dc200bc */ lw $v0,0xbc($t6)
/* f06ff30: c7240008 */ lwc1 $f4,0x8($t9)
/* f06ff34: c728000c */ lwc1 $f8,0xc($t9)
/* f06ff38: c44a0008 */ lwc1 $f10,0x8($v0)
/* f06ff3c: c446000c */ lwc1 $f6,0xc($v0)
/* f06ff40: 8faf01a8 */ lw $t7,0x1a8($sp)
/* f06ff44: 46045001 */ sub.s $f0,$f10,$f4
/* f06ff48: c7240010 */ lwc1 $f4,0x10($t9)
/* f06ff4c: c44a0010 */ lwc1 $f10,0x10($v0)
/* f06ff50: 46083081 */ sub.s $f2,$f6,$f8
/* f06ff54: 46000182 */ mul.s $f6,$f0,$f0
/* f06ff58: 24420008 */ addiu $v0,$v0,0x8
/* f06ff5c: 46045301 */ sub.s $f12,$f10,$f4
/* f06ff60: 46021202 */ mul.s $f8,$f2,$f2
/* f06ff64: 46083280 */ add.s $f10,$f6,$f8
/* f06ff68: 460c6102 */ mul.s $f4,$f12,$f12
/* f06ff6c: c428a2c0 */ lwc1 $f8,%lo(var7f1aa2c0)($at)
/* f06ff70: 46045180 */ add.s $f6,$f10,$f4
/* f06ff74: 4608303c */ c.lt.s $f6,$f8
/* f06ff78: 00000000 */ nop
/* f06ff7c: 45000003 */ bc1f .L0f06ff8c
/* f06ff80: 00000000 */ nop
/* f06ff84: a5e00062 */ sh $zero,0x62($t7)
/* f06ff88: 00001825 */ or $v1,$zero,$zero
.L0f06ff8c:
/* f06ff8c: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06ff90: 1460017f */ bnez $v1,.L0f070590
/* f06ff94: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06ff98: 8fb801a8 */ lw $t8,0x1a8($sp)
/* f06ff9c: 2401000f */ addiu $at,$zero,0xf
/* f06ffa0: 9302005c */ lbu $v0,0x5c($t8)
/* f06ffa4: 54a2005e */ bnel $a1,$v0,.L0f070120
/* f06ffa8: 8e18000c */ lw $t8,0xc($s0)
/* f06ffac: 8e040040 */ lw $a0,0x40($s0)
/* f06ffb0: 8daf0318 */ lw $t7,0x318($t5)
/* f06ffb4: 3c01f000 */ lui $at,0xf000
/* f06ffb8: 00817024 */ and $t6,$a0,$at
/* f06ffbc: 00002825 */ or $a1,$zero,$zero
/* f06ffc0: 11e00006 */ beqz $t7,.L0f06ffdc
/* f06ffc4: 000e2702 */ srl $a0,$t6,0x1c
/* f06ffc8: 0fc63410 */ jal mpGetChrFromPlayerIndex
/* f06ffcc: afa00154 */ sw $zero,0x154($sp)
/* f06ffd0: 10400002 */ beqz $v0,.L0f06ffdc
/* f06ffd4: 8fa50154 */ lw $a1,0x154($sp)
/* f06ffd8: 8c45001c */ lw $a1,0x1c($v0)
.L0f06ffdc:
/* f06ffdc: 8fa601b0 */ lw $a2,0x1b0($sp)
/* f06ffe0: 0fc0287e */ jal nbombCreateStorm
/* f06ffe4: 24c40008 */ addiu $a0,$a2,0x8
/* f06ffe8: 0fc10e62 */ jal propUnsetDangerous
/* f06ffec: 8fa401b0 */ lw $a0,0x1b0($sp)
/* f06fff0: 8e0e0040 */ lw $t6,0x40($s0)
/* f06fff4: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06fff8: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06fffc: 35d90004 */ ori $t9,$t6,0x4
/* f070000: ae190040 */ sw $t9,0x40($s0)
/* f070004: 8dab006c */ lw $t3,0x6c($t5)
/* f070008: 00004025 */ or $t0,$zero,$zero
/* f07000c: 00003025 */ or $a2,$zero,$zero
/* f070010: 11600003 */ beqz $t3,.L0f070020
/* f070014: 00002025 */ or $a0,$zero,$zero
/* f070018: 10000001 */ b .L0f070020
/* f07001c: 24060001 */ addiu $a2,$zero,0x1
.L0f070020:
/* f070020: 8daa0068 */ lw $t2,0x68($t5)
/* f070024: 00001025 */ or $v0,$zero,$zero
/* f070028: 00002825 */ or $a1,$zero,$zero
/* f07002c: 11400003 */ beqz $t2,.L0f07003c
/* f070030: 0008c880 */ sll $t9,$t0,0x2
/* f070034: 10000001 */ b .L0f07003c
/* f070038: 24040001 */ addiu $a0,$zero,0x1
.L0f07003c:
/* f07003c: 8da90064 */ lw $t1,0x64($t5)
/* f070040: 01b91821 */ addu $v1,$t5,$t9
/* f070044: 240c0003 */ addiu $t4,$zero,0x3
/* f070048: 11200003 */ beqz $t1,.L0f070058
/* f07004c: 00000000 */ nop
/* f070050: 10000001 */ b .L0f070058
/* f070054: 24020001 */ addiu $v0,$zero,0x1
.L0f070058:
/* f070058: 8da70070 */ lw $a3,0x70($t5)
/* f07005c: 10e00003 */ beqz $a3,.L0f07006c
/* f070060: 00000000 */ nop
/* f070064: 10000001 */ b .L0f07006c
/* f070068: 24050001 */ addiu $a1,$zero,0x1
.L0f07006c:
/* f07006c: 00a27821 */ addu $t7,$a1,$v0
/* f070070: 01e4c021 */ addu $t8,$t7,$a0
/* f070074: 03067021 */ addu $t6,$t8,$a2
/* f070078: 59c00146 */ blezl $t6,.L0f070594
/* f07007c: 8e190010 */ lw $t9,0x10($s0)
/* f070080: 8c620064 */ lw $v0,0x64($v1)
.L0f070084:
/* f070084: 25080001 */ addiu $t0,$t0,0x1
/* f070088: 00003025 */ or $a2,$zero,$zero
/* f07008c: 8c4f0264 */ lw $t7,0x264($v0)
/* f070090: 00002025 */ or $a0,$zero,$zero
/* f070094: 00002825 */ or $a1,$zero,$zero
/* f070098: 160f0008 */ bne $s0,$t7,.L0f0700bc
/* f07009c: 00000000 */ nop
/* f0700a0: ac400264 */ sw $zero,0x264($v0)
/* f0700a4: 8c780064 */ lw $t8,0x64($v1)
/* f0700a8: a70c0010 */ sh $t4,0x10($t8)
/* f0700ac: 8da70070 */ lw $a3,0x70($t5)
/* f0700b0: 8da90064 */ lw $t1,0x64($t5)
/* f0700b4: 8daa0068 */ lw $t2,0x68($t5)
/* f0700b8: 8dab006c */ lw $t3,0x6c($t5)
.L0f0700bc:
/* f0700bc: 11600003 */ beqz $t3,.L0f0700cc
/* f0700c0: 24630004 */ addiu $v1,$v1,0x4
/* f0700c4: 10000001 */ b .L0f0700cc
/* f0700c8: 24060001 */ addiu $a2,$zero,0x1
.L0f0700cc:
/* f0700cc: 11400003 */ beqz $t2,.L0f0700dc
/* f0700d0: 00001025 */ or $v0,$zero,$zero
/* f0700d4: 10000001 */ b .L0f0700dc
/* f0700d8: 24040001 */ addiu $a0,$zero,0x1
.L0f0700dc:
/* f0700dc: 11200003 */ beqz $t1,.L0f0700ec
/* f0700e0: 00000000 */ nop
/* f0700e4: 10000001 */ b .L0f0700ec
/* f0700e8: 24020001 */ addiu $v0,$zero,0x1
.L0f0700ec:
/* f0700ec: 10e00003 */ beqz $a3,.L0f0700fc
/* f0700f0: 00000000 */ nop
/* f0700f4: 10000001 */ b .L0f0700fc
/* f0700f8: 24050001 */ addiu $a1,$zero,0x1
.L0f0700fc:
/* f0700fc: 00a27021 */ addu $t6,$a1,$v0
/* f070100: 01c4c821 */ addu $t9,$t6,$a0
/* f070104: 03267821 */ addu $t7,$t9,$a2
/* f070108: 010f082a */ slt $at,$t0,$t7
/* f07010c: 5420ffdd */ bnezl $at,.L0f070084
/* f070110: 8c620064 */ lw $v0,0x64($v1)
/* f070114: 1000011f */ b .L0f070594
/* f070118: 8e190010 */ lw $t9,0x10($s0)
/* f07011c: 8e18000c */ lw $t8,0xc($s0)
.L0f070120:
/* f070120: 2405000d */ addiu $a1,$zero,0xd
/* f070124: 00187000 */ sll $t6,$t8,0x0
/* f070128: 05c10003 */ bgez $t6,.L0f070138
/* f07012c: 00000000 */ nop
/* f070130: 10000001 */ b .L0f070138
/* f070134: 24050011 */ addiu $a1,$zero,0x11
.L0f070138:
/* f070138: 14410002 */ bne $v0,$at,.L0f070144
/* f07013c: 00000000 */ nop
/* f070140: 24050017 */ addiu $a1,$zero,0x17
.L0f070144:
/* f070144: 0fc1bcc5 */ jal propExplode
/* f070148: 8fa401b0 */ lw $a0,0x1b0($sp)
/* f07014c: 10400110 */ beqz $v0,.L0f070590
/* f070150: 8faf01a8 */ lw $t7,0x1a8($sp)
/* f070154: 2419ffff */ addiu $t9,$zero,-1
/* f070158: a5f90062 */ sh $t9,0x62($t7)
/* f07015c: 8e180040 */ lw $t8,0x40($s0)
/* f070160: 370e0004 */ ori $t6,$t8,0x4
/* f070164: 1000010a */ b .L0f070590
/* f070168: ae0e0040 */ sw $t6,0x40($s0)
.L0f07016c:
/* f07016c: 24010056 */ addiu $at,$zero,0x56
.L0f070170:
/* f070170: 54410108 */ bnel $v0,$at,.L0f070594
/* f070174: 8e190010 */ lw $t9,0x10($s0)
/* f070178: 8fb901a8 */ lw $t9,0x1a8($sp)
/* f07017c: 87230062 */ lh $v1,0x62($t9)
/* f070180: 28610002 */ slti $at,$v1,0x2
/* f070184: 14200099 */ bnez $at,.L0f0703ec
/* f070188: 00000000 */ nop
/* f07018c: 0fc1a2aa */ jal modelFindBboxRodata
/* f070190: 8e040018 */ lw $a0,0x18($s0)
/* f070194: 8faf01a8 */ lw $t7,0x1a8($sp)
/* f070198: 3c014140 */ lui $at,0x4140
/* f07019c: 44811000 */ mtc1 $at,$f2
/* f0701a0: 85e30062 */ lh $v1,0x62($t7)
/* f0701a4: 3c017f1b */ lui $at,%hi(var7f1aa2c4)
/* f0701a8: c42ea2c4 */ lwc1 $f14,%lo(var7f1aa2c4)($at)
/* f0701ac: 2463ffff */ addiu $v1,$v1,-1
/* f0701b0: 44835000 */ mtc1 $v1,$f10
/* f0701b4: 2861000c */ slti $at,$v1,0xc
/* f0701b8: 24070001 */ addiu $a3,$zero,0x1
/* f0701bc: 46805120 */ cvt.s.w $f4,$f10
/* f0701c0: 00403025 */ or $a2,$v0,$zero
/* f0701c4: 24780001 */ addiu $t8,$v1,0x1
/* f0701c8: 306e0001 */ andi $t6,$v1,0x1
/* f0701cc: 27a500b8 */ addiu $a1,$sp,0xb8
/* f0701d0: 46022183 */ div.s $f6,$f4,$f2
/* f0701d4: 460e3002 */ mul.s $f0,$f6,$f14
/* f0701d8: 10200007 */ beqz $at,.L0f0701f8
/* f0701dc: 46000306 */ mov.s $f12,$f0
/* f0701e0: 44984000 */ mtc1 $t8,$f8
/* f0701e4: 00000000 */ nop
/* f0701e8: 468042a0 */ cvt.s.w $f10,$f8
/* f0701ec: 46025103 */ div.s $f4,$f10,$f2
/* f0701f0: 46047182 */ mul.s $f6,$f14,$f4
/* f0701f4: 46060300 */ add.s $f12,$f0,$f6
.L0f0701f8:
/* f0701f8: 14ee0002 */ bne $a3,$t6,.L0f070204
/* f0701fc: 00000000 */ nop
/* f070200: 46006307 */ neg.s $f12,$f12
.L0f070204:
/* f070204: 0c0058dd */ jal mtx4LoadYRotation
/* f070208: afa60140 */ sw $a2,0x140($sp)
/* f07020c: 8e030048 */ lw $v1,0x48($s0)
/* f070210: 8fa60140 */ lw $a2,0x140($sp)
/* f070214: 8fb901b0 */ lw $t9,0x1b0($sp)
/* f070218: 50600040 */ beqzl $v1,.L0f07031c
/* f07021c: 44808000 */ mtc1 $zero,$f16
/* f070220: 8f220018 */ lw $v0,0x18($t9)
/* f070224: 5040006e */ beqzl $v0,.L0f0703e0
/* f070228: 8fb801a8 */ lw $t8,0x1a8($sp)
/* f07022c: 904f0000 */ lbu $t7,0x0($v0)
/* f070230: 24010003 */ addiu $at,$zero,0x3
/* f070234: 24640004 */ addiu $a0,$v1,0x4
/* f070238: 11e10068 */ beq $t7,$at,.L0f0703dc
/* f07023c: 27a500f8 */ addiu $a1,$sp,0xf8
/* f070240: 0c005746 */ jal mtx4Copy
/* f070244: afa60140 */ sw $a2,0x140($sp)
/* f070248: 44800000 */ mtc1 $zero,$f0
/* f07024c: 8fa40140 */ lw $a0,0x140($sp)
/* f070250: e7a0012c */ swc1 $f0,0x12c($sp)
/* f070254: e7a00128 */ swc1 $f0,0x128($sp)
/* f070258: e7a00114 */ swc1 $f0,0x114($sp)
/* f07025c: e7a00104 */ swc1 $f0,0x104($sp)
/* f070260: e7a00070 */ swc1 $f0,0x70($sp)
/* f070264: e7a00060 */ swc1 $f0,0x60($sp)
/* f070268: e7a0006c */ swc1 $f0,0x6c($sp)
/* f07026c: e7a00130 */ swc1 $f0,0x130($sp)
/* f070270: e7a00124 */ swc1 $f0,0x124($sp)
/* f070274: 0fc199f5 */ jal modelBboxGetZMax
/* f070278: e7a00064 */ swc1 $f0,0x64($sp)
/* f07027c: e7a00068 */ swc1 $f0,0x68($sp)
/* f070280: e7a00074 */ swc1 $f0,0x74($sp)
/* f070284: 27a400f8 */ addiu $a0,$sp,0xf8
/* f070288: 27a500b8 */ addiu $a1,$sp,0xb8
/* f07028c: 0c005680 */ jal mtx4MultMtx4
/* f070290: 27a60078 */ addiu $a2,$sp,0x78
/* f070294: 27a400f8 */ addiu $a0,$sp,0xf8
/* f070298: 0c0056c4 */ jal mtx4RotateVecInPlace
/* f07029c: 27a5006c */ addiu $a1,$sp,0x6c
/* f0702a0: 27a40078 */ addiu $a0,$sp,0x78
/* f0702a4: 0c0056c4 */ jal mtx4RotateVecInPlace
/* f0702a8: 27a50060 */ addiu $a1,$sp,0x60
/* f0702ac: c7a80060 */ lwc1 $f8,0x60($sp)
/* f0702b0: c7aa006c */ lwc1 $f10,0x6c($sp)
/* f0702b4: 8e180048 */ lw $t8,0x48($s0)
/* f0702b8: 27a40078 */ addiu $a0,$sp,0x78
/* f0702bc: 460a4101 */ sub.s $f4,$f8,$f10
/* f0702c0: c7060034 */ lwc1 $f6,0x34($t8)
/* f0702c4: c7aa0064 */ lwc1 $f10,0x64($sp)
/* f0702c8: 46043201 */ sub.s $f8,$f6,$f4
/* f0702cc: c7a60070 */ lwc1 $f6,0x70($sp)
/* f0702d0: e7a800a8 */ swc1 $f8,0xa8($sp)
/* f0702d4: 8e0e0048 */ lw $t6,0x48($s0)
/* f0702d8: 46065101 */ sub.s $f4,$f10,$f6
/* f0702dc: c7a60068 */ lwc1 $f6,0x68($sp)
/* f0702e0: c5c80038 */ lwc1 $f8,0x38($t6)
/* f0702e4: 46044281 */ sub.s $f10,$f8,$f4
/* f0702e8: c7a80074 */ lwc1 $f8,0x74($sp)
/* f0702ec: e7aa00ac */ swc1 $f10,0xac($sp)
/* f0702f0: 8e190048 */ lw $t9,0x48($s0)
/* f0702f4: 46083101 */ sub.s $f4,$f6,$f8
/* f0702f8: c72a003c */ lwc1 $f10,0x3c($t9)
/* f0702fc: 46045181 */ sub.s $f6,$f10,$f4
/* f070300: e7a600b0 */ swc1 $f6,0xb0($sp)
/* f070304: 8e050048 */ lw $a1,0x48($s0)
/* f070308: 0c005746 */ jal mtx4Copy
/* f07030c: 24a50004 */ addiu $a1,$a1,0x4
/* f070310: 10000033 */ b .L0f0703e0
/* f070314: 8fb801a8 */ lw $t8,0x1a8($sp)
/* f070318: 44808000 */ mtc1 $zero,$f16
.L0f07031c:
/* f07031c: 00c02025 */ or $a0,$a2,$zero
/* f070320: e7b00070 */ swc1 $f16,0x70($sp)
/* f070324: e7b00060 */ swc1 $f16,0x60($sp)
/* f070328: e7b0006c */ swc1 $f16,0x6c($sp)
/* f07032c: 0fc199f5 */ jal modelBboxGetZMax
/* f070330: e7b00064 */ swc1 $f16,0x64($sp)
/* f070334: 2604001c */ addiu $a0,$s0,0x1c
/* f070338: e7a00068 */ swc1 $f0,0x68($sp)
/* f07033c: e7a00074 */ swc1 $f0,0x74($sp)
/* f070340: afa40038 */ sw $a0,0x38($sp)
/* f070344: 0c005755 */ jal mtx3ToMtx4
/* f070348: 27a500f8 */ addiu $a1,$sp,0xf8
/* f07034c: 27a400f8 */ addiu $a0,$sp,0xf8
/* f070350: 27a500b8 */ addiu $a1,$sp,0xb8
/* f070354: 0c005680 */ jal mtx4MultMtx4
/* f070358: 27a60078 */ addiu $a2,$sp,0x78
/* f07035c: 27a40078 */ addiu $a0,$sp,0x78
/* f070360: 0c005768 */ jal mtx4ToMtx3
/* f070364: 8fa50038 */ lw $a1,0x38($sp)
/* f070368: 27a400f8 */ addiu $a0,$sp,0xf8
/* f07036c: 0c0056c4 */ jal mtx4RotateVecInPlace
/* f070370: 27a5006c */ addiu $a1,$sp,0x6c
/* f070374: 27a40078 */ addiu $a0,$sp,0x78
/* f070378: 0c0056c4 */ jal mtx4RotateVecInPlace
/* f07037c: 27a50060 */ addiu $a1,$sp,0x60
/* f070380: c7a80060 */ lwc1 $f8,0x60($sp)
/* f070384: c7aa006c */ lwc1 $f10,0x6c($sp)
/* f070388: 8faf01b0 */ lw $t7,0x1b0($sp)
/* f07038c: 02002025 */ or $a0,$s0,$zero
/* f070390: 460a4101 */ sub.s $f4,$f8,$f10
/* f070394: c5e60008 */ lwc1 $f6,0x8($t7)
/* f070398: 00002825 */ or $a1,$zero,$zero
/* f07039c: 24060001 */ addiu $a2,$zero,0x1
/* f0703a0: 46043201 */ sub.s $f8,$f6,$f4
/* f0703a4: e5e80008 */ swc1 $f8,0x8($t7)
/* f0703a8: c7a60070 */ lwc1 $f6,0x70($sp)
/* f0703ac: c7aa0064 */ lwc1 $f10,0x64($sp)
/* f0703b0: c5e8000c */ lwc1 $f8,0xc($t7)
/* f0703b4: 46065101 */ sub.s $f4,$f10,$f6
/* f0703b8: 46044281 */ sub.s $f10,$f8,$f4
/* f0703bc: e5ea000c */ swc1 $f10,0xc($t7)
/* f0703c0: c7a80074 */ lwc1 $f8,0x74($sp)
/* f0703c4: c7a60068 */ lwc1 $f6,0x68($sp)
/* f0703c8: c5ea0010 */ lwc1 $f10,0x10($t7)
/* f0703cc: 46083101 */ sub.s $f4,$f6,$f8
/* f0703d0: 46045181 */ sub.s $f6,$f10,$f4
/* f0703d4: 0fc1a71c */ jal func0f069c70
/* f0703d8: e5e60010 */ swc1 $f6,0x10($t7)
.L0f0703dc:
/* f0703dc: 8fb801a8 */ lw $t8,0x1a8($sp)
.L0f0703e0:
/* f0703e0: 870e0062 */ lh $t6,0x62($t8)
/* f0703e4: 25c3ffff */ addiu $v1,$t6,-1
/* f0703e8: a7030062 */ sh $v1,0x62($t8)
.L0f0703ec:
/* f0703ec: 04610023 */ bgez $v1,.L0f07047c
/* f0703f0: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f0703f4: 8e030048 */ lw $v1,0x48($s0)
/* f0703f8: 8fa401b0 */ lw $a0,0x1b0($sp)
/* f0703fc: 0fc2bb15 */ jal boltbeamFindByProp
/* f070400: afa3005c */ sw $v1,0x5c($sp)
/* f070404: 2401ffff */ addiu $at,$zero,-1
/* f070408: 8fa3005c */ lw $v1,0x5c($sp)
/* f07040c: 10410019 */ beq $v0,$at,.L0f070474
/* f070410: 00402025 */ or $a0,$v0,$zero
/* f070414: 8fa501b0 */ lw $a1,0x1b0($sp)
/* f070418: afa3005c */ sw $v1,0x5c($sp)
/* f07041c: afa20058 */ sw $v0,0x58($sp)
/* f070420: 0fc2bb5c */ jal boltbeamSetTailPos
/* f070424: 24a50008 */ addiu $a1,$a1,0x8
/* f070428: 3c05453b */ lui $a1,0x453b
/* f07042c: 34a58000 */ ori $a1,$a1,0x8000
/* f070430: 8fa40058 */ lw $a0,0x58($sp)
/* f070434: 0fc2bb69 */ jal boltbeamIncrementHeadPos
/* f070438: 00003025 */ or $a2,$zero,$zero
/* f07043c: 8fa3005c */ lw $v1,0x5c($sp)
/* f070440: 8fae01a8 */ lw $t6,0x1a8($sp)
/* f070444: 3c0544af */ lui $a1,0x44af
/* f070448: 10600005 */ beqz $v1,.L0f070460
/* f07044c: 00000000 */ nop
/* f070450: 8c6f0090 */ lw $t7,0x90($v1)
/* f070454: 19e00002 */ blez $t7,.L0f070460
/* f070458: 00000000 */ nop
/* f07045c: 00001825 */ or $v1,$zero,$zero
.L0f070460:
/* f070460: 14600004 */ bnez $v1,.L0f070474
/* f070464: 00000000 */ nop
/* f070468: a5c00062 */ sh $zero,0x62($t6)
/* f07046c: 0fc2bbaa */ jal boltbeamSetAutomatic
/* f070470: 8fa40058 */ lw $a0,0x58($sp)
.L0f070474:
/* f070474: 10000047 */ b .L0f070594
/* f070478: 8e190010 */ lw $t9,0x10($s0)
.L0f07047c:
/* f07047c: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f070480: 8dab006c */ lw $t3,0x6c($t5)
/* f070484: 00004025 */ or $t0,$zero,$zero
/* f070488: 00003025 */ or $a2,$zero,$zero
/* f07048c: 11600003 */ beqz $t3,.L0f07049c
/* f070490: 00002025 */ or $a0,$zero,$zero
/* f070494: 10000001 */ b .L0f07049c
/* f070498: 24060001 */ addiu $a2,$zero,0x1
.L0f07049c:
/* f07049c: 8daa0068 */ lw $t2,0x68($t5)
/* f0704a0: 00001025 */ or $v0,$zero,$zero
/* f0704a4: 00002825 */ or $a1,$zero,$zero
/* f0704a8: 11400003 */ beqz $t2,.L0f0704b8
/* f0704ac: 00087080 */ sll $t6,$t0,0x2
/* f0704b0: 10000001 */ b .L0f0704b8
/* f0704b4: 24040001 */ addiu $a0,$zero,0x1
.L0f0704b8:
/* f0704b8: 8da90064 */ lw $t1,0x64($t5)
/* f0704bc: 01ae1821 */ addu $v1,$t5,$t6
/* f0704c0: 240c0003 */ addiu $t4,$zero,0x3
/* f0704c4: 11200003 */ beqz $t1,.L0f0704d4
/* f0704c8: 00000000 */ nop
/* f0704cc: 10000001 */ b .L0f0704d4
/* f0704d0: 24020001 */ addiu $v0,$zero,0x1
.L0f0704d4:
/* f0704d4: 8da70070 */ lw $a3,0x70($t5)
/* f0704d8: 10e00003 */ beqz $a3,.L0f0704e8
/* f0704dc: 00000000 */ nop
/* f0704e0: 10000001 */ b .L0f0704e8
/* f0704e4: 24050001 */ addiu $a1,$zero,0x1
.L0f0704e8:
/* f0704e8: 00a2c021 */ addu $t8,$a1,$v0
/* f0704ec: 0304c821 */ addu $t9,$t8,$a0
/* f0704f0: 03267821 */ addu $t7,$t9,$a2
/* f0704f4: 59e00027 */ blezl $t7,.L0f070594
/* f0704f8: 8e190010 */ lw $t9,0x10($s0)
/* f0704fc: 8c620064 */ lw $v0,0x64($v1)
.L0f070500:
/* f070500: 25080001 */ addiu $t0,$t0,0x1
/* f070504: 00003025 */ or $a2,$zero,$zero
/* f070508: 8c580264 */ lw $t8,0x264($v0)
/* f07050c: 00002025 */ or $a0,$zero,$zero
/* f070510: 00002825 */ or $a1,$zero,$zero
/* f070514: 16180008 */ bne $s0,$t8,.L0f070538
/* f070518: 00000000 */ nop
/* f07051c: ac400264 */ sw $zero,0x264($v0)
/* f070520: 8c790064 */ lw $t9,0x64($v1)
/* f070524: a72c0010 */ sh $t4,0x10($t9)
/* f070528: 8da70070 */ lw $a3,0x70($t5)
/* f07052c: 8da90064 */ lw $t1,0x64($t5)
/* f070530: 8daa0068 */ lw $t2,0x68($t5)
/* f070534: 8dab006c */ lw $t3,0x6c($t5)
.L0f070538:
/* f070538: 11600003 */ beqz $t3,.L0f070548
/* f07053c: 24630004 */ addiu $v1,$v1,0x4
/* f070540: 10000001 */ b .L0f070548
/* f070544: 24060001 */ addiu $a2,$zero,0x1
.L0f070548:
/* f070548: 11400003 */ beqz $t2,.L0f070558
/* f07054c: 00001025 */ or $v0,$zero,$zero
/* f070550: 10000001 */ b .L0f070558
/* f070554: 24040001 */ addiu $a0,$zero,0x1
.L0f070558:
/* f070558: 11200003 */ beqz $t1,.L0f070568
/* f07055c: 00000000 */ nop
/* f070560: 10000001 */ b .L0f070568
/* f070564: 24020001 */ addiu $v0,$zero,0x1
.L0f070568:
/* f070568: 10e00003 */ beqz $a3,.L0f070578
/* f07056c: 00000000 */ nop
/* f070570: 10000001 */ b .L0f070578
/* f070574: 24050001 */ addiu $a1,$zero,0x1
.L0f070578:
/* f070578: 00a27821 */ addu $t7,$a1,$v0
/* f07057c: 01e47021 */ addu $t6,$t7,$a0
/* f070580: 01c6c021 */ addu $t8,$t6,$a2
/* f070584: 0118082a */ slt $at,$t0,$t8
/* f070588: 5420ffdd */ bnezl $at,.L0f070500
/* f07058c: 8c620064 */ lw $v0,0x64($v1)
.L0f070590:
/* f070590: 8e190010 */ lw $t9,0x10($s0)
.L0f070594:
/* f070594: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f070598: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f07059c: 332f0100 */ andi $t7,$t9,0x100
/* f0705a0: 11e0000a */ beqz $t7,.L0f0705cc
/* f0705a4: 8fae01a8 */ lw $t6,0x1a8($sp)
/* f0705a8: 81d80060 */ lb $t8,0x60($t6)
/* f0705ac: 8db90038 */ lw $t9,0x38($t5)
/* f0705b0: 03197823 */ subu $t7,$t8,$t9
/* f0705b4: 1de00005 */ bgtz $t7,.L0f0705cc
/* f0705b8: a1cf0060 */ sb $t7,0x60($t6)
/* f0705bc: a1c00060 */ sb $zero,0x60($t6)
/* f0705c0: 8e180040 */ lw $t8,0x40($s0)
/* f0705c4: 37190004 */ ori $t9,$t8,0x4
/* f0705c8: ae190040 */ sw $t9,0x40($s0)
.L0f0705cc:
/* f0705cc: 8e0f0010 */ lw $t7,0x10($s0)
/* f0705d0: 8fb801b0 */ lw $t8,0x1b0($sp)
/* f0705d4: 31ee0080 */ andi $t6,$t7,0x80
/* f0705d8: 51c00014 */ beqzl $t6,.L0f07062c
/* f0705dc: 8fbf001c */ lw $ra,0x1c($sp)
/* f0705e0: 93190001 */ lbu $t9,0x1($t8)
/* f0705e4: 332f0002 */ andi $t7,$t9,0x2
/* f0705e8: 51e00010 */ beqzl $t7,.L0f07062c
/* f0705ec: 8fbf001c */ lw $ra,0x1c($sp)
/* f0705f0: 8dae043c */ lw $t6,0x43c($t5)
/* f0705f4: 25d80001 */ addiu $t8,$t6,0x1
/* f0705f8: 2b010015 */ slti $at,$t8,0x15
/* f0705fc: 1420000a */ bnez $at,.L0f070628
/* f070600: adb8043c */ sw $t8,0x43c($t5)
/* f070604: 8fae01a8 */ lw $t6,0x1a8($sp)
/* f070608: 240f003c */ addiu $t7,$zero,0x32
/* f07060c: 2401ff7f */ addiu $at,$zero,-129
/* f070610: a1cf0060 */ sb $t7,0x60($t6)
/* f070614: 8e180010 */ lw $t8,0x10($s0)
/* f070618: 0301c824 */ and $t9,$t8,$at
/* f07061c: ae190010 */ sw $t9,0x10($s0)
/* f070620: 372e0100 */ ori $t6,$t9,0x100
/* f070624: ae0e0010 */ sw $t6,0x10($s0)
.L0f070628:
/* f070628: 8fbf001c */ lw $ra,0x1c($sp)
.L0f07062c:
/* f07062c: 8fb00018 */ lw $s0,0x18($sp)
/* f070630: 27bd01b0 */ addiu $sp,$sp,0x1b0
/* f070634: 03e00008 */ jr $ra
/* f070638: 00000000 */ nop
);
#elif VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel weaponTick
.late_rodata
glabel var7f1aa2c0
.word 0x47742400
glabel var7f1aa2c4
.word 0x3cd67750
.text
/* f06f54c: 27bdfe50 */ addiu $sp,$sp,-432
/* f06f550: afbf001c */ sw $ra,0x1c($sp)
/* f06f554: afb00018 */ sw $s0,0x18($sp)
/* f06f558: afa401b0 */ sw $a0,0x1b0($sp)
/* f06f55c: 8c820004 */ lw $v0,0x4($a0)
/* f06f560: 2406001e */ addiu $a2,$zero,0x1e
/* f06f564: afa201a8 */ sw $v0,0x1a8($sp)
/* f06f568: 904f005c */ lbu $t7,0x5c($v0)
/* f06f56c: 8fae01a8 */ lw $t6,0x1a8($sp)
/* f06f570: 00408025 */ or $s0,$v0,$zero
/* f06f574: 54cf0005 */ bnel $a2,$t7,.L0f06f58c
/* f06f578: 91c2005c */ lbu $v0,0x5c($t6)
/* f06f57c: 9059005f */ lbu $t9,0x5f($v0)
/* f06f580: 53200006 */ beqzl $t9,.L0f06f59c
/* f06f584: 8faf01a8 */ lw $t7,0x1a8($sp)
/* f06f588: 91c2005c */ lbu $v0,0x5c($t6)
.L0f06f58c:
/* f06f58c: 24010055 */ addiu $at,$zero,0x55
/* f06f590: 544100cf */ bnel $v0,$at,.L0f06f8d0
/* f06f594: 2405001f */ addiu $a1,$zero,0x1f
/* f06f598: 8faf01a8 */ lw $t7,0x1a8($sp)
.L0f06f59c:
/* f06f59c: 24010055 */ addiu $at,$zero,0x55
/* f06f5a0: 85e30062 */ lh $v1,0x62($t7)
/* f06f5a4: 91e2005c */ lbu $v0,0x5c($t7)
/* f06f5a8: 046200c9 */ bltzl $v1,.L0f06f8d0
/* f06f5ac: 2405001f */ addiu $a1,$zero,0x1f
/* f06f5b0: 1441005f */ bne $v0,$at,.L0f06f730
/* f06f5b4: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06f5b8: 91f8005f */ lbu $t8,0x5f($t7)
/* f06f5bc: 24070001 */ addiu $a3,$zero,0x1
/* f06f5c0: 14f8005b */ bne $a3,$t8,.L0f06f730
/* f06f5c4: 00000000 */ nop
/* f06f5c8: 18600059 */ blez $v1,.L0f06f730
/* f06f5cc: 28610002 */ slti $at,$v1,0x2
/* f06f5d0: 14200055 */ bnez $at,.L0f06f728
/* f06f5d4: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06f5d8: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06f5dc: 8db90034 */ lw $t9,0x34($t5)
/* f06f5e0: 00797023 */ subu $t6,$v1,$t9
/* f06f5e4: 29c10008 */ slti $at,$t6,0x8
/* f06f5e8: 102003e9 */ beqz $at,.L0f070590
/* f06f5ec: a5ee0062 */ sh $t6,0x62($t7)
/* f06f5f0: 3c198007 */ lui $t9,%hi(var800699fc)
/* f06f5f4: 273999fc */ addiu $t9,$t9,%lo(var800699fc)
/* f06f5f8: 8f210000 */ lw $at,0x0($t9)
/* f06f5fc: 27b8019c */ addiu $t8,$sp,0x19c
/* f06f600: 8f2e0004 */ lw $t6,0x4($t9)
/* f06f604: af010000 */ sw $at,0x0($t8)
/* f06f608: 8f210008 */ lw $at,0x8($t9)
/* f06f60c: af0e0004 */ sw $t6,0x4($t8)
/* f06f610: af010008 */ sw $at,0x8($t8)
/* f06f614: afa00194 */ sw $zero,0x194($sp)
/* f06f618: 0fc1a179 */ jal func0f0685e4
/* f06f61c: 8fa401b0 */ lw $a0,0x1b0($sp)
/* f06f620: 8e020040 */ lw $v0,0x40($s0)
/* f06f624: 8fa50194 */ lw $a1,0x194($sp)
/* f06f628: 24070001 */ addiu $a3,$zero,0x1
/* f06f62c: 304f0040 */ andi $t7,$v0,0x40
/* f06f630: 11e00004 */ beqz $t7,.L0f06f644
/* f06f634: 30590080 */ andi $t9,$v0,0x80
/* f06f638: 8e180048 */ lw $t8,0x48($s0)
/* f06f63c: 10000004 */ b .L0f06f650
/* f06f640: 8f050044 */ lw $a1,0x44($t8)
.L0f06f644:
/* f06f644: 13200002 */ beqz $t9,.L0f06f650
/* f06f648: 00000000 */ nop
/* f06f64c: 8e050048 */ lw $a1,0x48($s0)
.L0f06f650:
/* f06f650: 10a00032 */ beqz $a1,.L0f06f71c
/* f06f654: 8fb801a8 */ lw $t8,0x1a8($sp)
/* f06f658: 8fae01b0 */ lw $t6,0x1b0($sp)
/* f06f65c: 8dcf0018 */ lw $t7,0x18($t6)
/* f06f660: 01c01825 */ or $v1,$t6,$zero
/* f06f664: 11e00006 */ beqz $t7,.L0f06f680
/* f06f668: 00000000 */ nop
/* f06f66c: 8dc20018 */ lw $v0,0x18($t6)
/* f06f670: 00401825 */ or $v1,$v0,$zero
.L0f06f674:
/* f06f674: 8c420018 */ lw $v0,0x18($v0)
/* f06f678: 5440fffe */ bnezl $v0,.L0f06f674
/* f06f67c: 00401825 */ or $v1,$v0,$zero
.L0f06f680:
/* f06f680: 5060000d */ beqzl $v1,.L0f06f6b8
/* f06f684: 8cae0000 */ lw $t6,0x0($a1)
/* f06f688: 90620000 */ lbu $v0,0x0($v1)
/* f06f68c: 24010003 */ addiu $at,$zero,0x3
/* f06f690: 10410003 */ beq $v0,$at,.L0f06f6a0
/* f06f694: 24010006 */ addiu $at,$zero,0x6
/* f06f698: 54410007 */ bnel $v0,$at,.L0f06f6b8
/* f06f69c: 8cae0000 */ lw $t6,0x0($a1)
.L0f06f6a0:
/* f06f6a0: 8c620004 */ lw $v0,0x4($v1)
/* f06f6a4: 8c580014 */ lw $t8,0x14($v0)
/* f06f6a8: 37190001 */ ori $t9,$t8,0x1
/* f06f6ac: 10000005 */ b .L0f06f6c4
/* f06f6b0: ac590014 */ sw $t9,0x14($v0)
/* f06f6b4: 8cae0000 */ lw $t6,0x0($a1)
.L0f06f6b8:
/* f06f6b8: aca00088 */ sw $zero,0x88($a1)
/* f06f6bc: 35cf0001 */ ori $t7,$t6,0x1
/* f06f6c0: acaf0000 */ sw $t7,0x0($a1)
.L0f06f6c4:
/* f06f6c4: 8fb801a8 */ lw $t8,0x1a8($sp)
/* f06f6c8: a7070062 */ sh $a3,0x62($t8)
/* f06f6cc: afa50194 */ sw $a1,0x194($sp)
/* f06f6d0: 0fc1a1a5 */ jal objSetProjectileFlag4
/* f06f6d4: 8fa401b0 */ lw $a0,0x1b0($sp)
/* f06f6d8: 8fa50194 */ lw $a1,0x194($sp)
/* f06f6dc: c7a4019c */ lwc1 $f4,0x19c($sp)
/* f06f6e0: 24a40020 */ addiu $a0,$a1,0x20
/* f06f6e4: e4a40004 */ swc1 $f4,0x4($a1)
/* f06f6e8: c7a601a0 */ lwc1 $f6,0x1a0($sp)
/* f06f6ec: e4a60008 */ swc1 $f6,0x8($a1)
/* f06f6f0: c7a801a4 */ lwc1 $f8,0x1a4($sp)
/* f06f6f4: 0c00566c */ jal mtx4LoadIdentity
/* f06f6f8: e4a8000c */ swc1 $f8,0xc($a1)
/* f06f6fc: 8fa50194 */ lw $a1,0x194($sp)
/* f06f700: 8fb901a8 */ lw $t9,0x1a8($sp)
/* f06f704: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06f708: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06f70c: acb900d4 */ sw $t9,0xd4($a1)
/* f06f710: 8dae000c */ lw $t6,0xc($t5)
/* f06f714: 1000039e */ b .L0f070590
/* f06f718: acae00d8 */ sw $t6,0xd8($a1)
.L0f06f71c:
/* f06f71c: 240f0002 */ addiu $t7,$zero,0x2
/* f06f720: 1000039b */ b .L0f070590
/* f06f724: a70f0062 */ sh $t7,0x62($t8)
.L0f06f728:
/* f06f728: 1000039a */ b .L0f070594
/* f06f72c: 8e190010 */ lw $t9,0x10($s0)
.L0f06f730:
/* f06f730: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06f734: 8db90034 */ lw $t9,0x34($t5)
/* f06f738: 8faf01a8 */ lw $t7,0x1a8($sp)
/* f06f73c: 00797023 */ subu $t6,$v1,$t9
/* f06f740: 05c10393 */ bgez $t6,.L0f070590
/* f06f744: a5ee0062 */ sh $t6,0x62($t7)
/* f06f748: 0fc10e62 */ jal propUnsetDangerous
/* f06f74c: 8fa401b0 */ lw $a0,0x1b0($sp)
/* f06f750: 8fb801a8 */ lw $t8,0x1a8($sp)
/* f06f754: 24010002 */ addiu $at,$zero,0x2
/* f06f758: 8fa401b0 */ lw $a0,0x1b0($sp)
/* f06f75c: 9319005f */ lbu $t9,0x5f($t8)
/* f06f760: 57210007 */ bnel $t9,$at,.L0f06f780
/* f06f764: 8e0f000c */ lw $t7,0xc($s0)
/* f06f768: 0fc1bcc5 */ jal propExplode
/* f06f76c: 24050015 */ addiu $a1,$zero,0x15
/* f06f770: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06f774: 1000000c */ b .L0f06f7a8
/* f06f778: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06f77c: 8e0f000c */ lw $t7,0xc($s0)
.L0f06f780:
/* f06f780: 2405000d */ addiu $a1,$zero,0xd
/* f06f784: 000f7000 */ sll $t6,$t7,0x0
/* f06f788: 05c10003 */ bgez $t6,.L0f06f798
/* f06f78c: 00000000 */ nop
/* f06f790: 10000001 */ b .L0f06f798
/* f06f794: 24050011 */ addiu $a1,$zero,0x11
.L0f06f798:
/* f06f798: 0fc1bcc5 */ jal propExplode
/* f06f79c: 8fa401b0 */ lw $a0,0x1b0($sp)
/* f06f7a0: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06f7a4: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
.L0f06f7a8:
/* f06f7a8: 8e180040 */ lw $t8,0x40($s0)
/* f06f7ac: 00004025 */ or $t0,$zero,$zero
/* f06f7b0: 00003025 */ or $a2,$zero,$zero
/* f06f7b4: 37190004 */ ori $t9,$t8,0x4
/* f06f7b8: ae190040 */ sw $t9,0x40($s0)
/* f06f7bc: 8dab006c */ lw $t3,0x6c($t5)
/* f06f7c0: 00002025 */ or $a0,$zero,$zero
/* f06f7c4: 00001025 */ or $v0,$zero,$zero
/* f06f7c8: 11600003 */ beqz $t3,.L0f06f7d8
/* f06f7cc: 00002825 */ or $a1,$zero,$zero
/* f06f7d0: 10000001 */ b .L0f06f7d8
/* f06f7d4: 24060001 */ addiu $a2,$zero,0x1
.L0f06f7d8:
/* f06f7d8: 8daa0068 */ lw $t2,0x68($t5)
/* f06f7dc: 0008c880 */ sll $t9,$t0,0x2
/* f06f7e0: 01b91821 */ addu $v1,$t5,$t9
/* f06f7e4: 11400003 */ beqz $t2,.L0f06f7f4
/* f06f7e8: 240c0003 */ addiu $t4,$zero,0x3
/* f06f7ec: 10000001 */ b .L0f06f7f4
/* f06f7f0: 24040001 */ addiu $a0,$zero,0x1
.L0f06f7f4:
/* f06f7f4: 8da90064 */ lw $t1,0x64($t5)
/* f06f7f8: 11200003 */ beqz $t1,.L0f06f808
/* f06f7fc: 00000000 */ nop
/* f06f800: 10000001 */ b .L0f06f808
/* f06f804: 24020001 */ addiu $v0,$zero,0x1
.L0f06f808:
/* f06f808: 8da70070 */ lw $a3,0x70($t5)
/* f06f80c: 10e00003 */ beqz $a3,.L0f06f81c
/* f06f810: 00000000 */ nop
/* f06f814: 10000001 */ b .L0f06f81c
/* f06f818: 24050001 */ addiu $a1,$zero,0x1
.L0f06f81c:
/* f06f81c: 00a27821 */ addu $t7,$a1,$v0
/* f06f820: 01e47021 */ addu $t6,$t7,$a0
/* f06f824: 01c6c021 */ addu $t8,$t6,$a2
/* f06f828: 5b00035a */ blezl $t8,.L0f070594
/* f06f82c: 8e190010 */ lw $t9,0x10($s0)
/* f06f830: 8c620064 */ lw $v0,0x64($v1)
.L0f06f834:
/* f06f834: 25080001 */ addiu $t0,$t0,0x1
/* f06f838: 00003025 */ or $a2,$zero,$zero
/* f06f83c: 8c4f0264 */ lw $t7,0x264($v0)
/* f06f840: 00002025 */ or $a0,$zero,$zero
/* f06f844: 00002825 */ or $a1,$zero,$zero
/* f06f848: 160f0008 */ bne $s0,$t7,.L0f06f86c
/* f06f84c: 00000000 */ nop
/* f06f850: ac400264 */ sw $zero,0x264($v0)
/* f06f854: 8c6e0064 */ lw $t6,0x64($v1)
/* f06f858: a5cc0010 */ sh $t4,0x10($t6)
/* f06f85c: 8da70070 */ lw $a3,0x70($t5)
/* f06f860: 8da90064 */ lw $t1,0x64($t5)
/* f06f864: 8daa0068 */ lw $t2,0x68($t5)
/* f06f868: 8dab006c */ lw $t3,0x6c($t5)
.L0f06f86c:
/* f06f86c: 11600003 */ beqz $t3,.L0f06f87c
/* f06f870: 24630004 */ addiu $v1,$v1,0x4
/* f06f874: 10000001 */ b .L0f06f87c
/* f06f878: 24060001 */ addiu $a2,$zero,0x1
.L0f06f87c:
/* f06f87c: 11400003 */ beqz $t2,.L0f06f88c
/* f06f880: 00001025 */ or $v0,$zero,$zero
/* f06f884: 10000001 */ b .L0f06f88c
/* f06f888: 24040001 */ addiu $a0,$zero,0x1
.L0f06f88c:
/* f06f88c: 11200003 */ beqz $t1,.L0f06f89c
/* f06f890: 00000000 */ nop
/* f06f894: 10000001 */ b .L0f06f89c
/* f06f898: 24020001 */ addiu $v0,$zero,0x1
.L0f06f89c:
/* f06f89c: 10e00003 */ beqz $a3,.L0f06f8ac
/* f06f8a0: 00000000 */ nop
/* f06f8a4: 10000001 */ b .L0f06f8ac
/* f06f8a8: 24050001 */ addiu $a1,$zero,0x1
.L0f06f8ac:
/* f06f8ac: 00a2c021 */ addu $t8,$a1,$v0
/* f06f8b0: 0304c821 */ addu $t9,$t8,$a0
/* f06f8b4: 03267821 */ addu $t7,$t9,$a2
/* f06f8b8: 010f082a */ slt $at,$t0,$t7
/* f06f8bc: 5420ffdd */ bnezl $at,.L0f06f834
/* f06f8c0: 8c620064 */ lw $v0,0x64($v1)
/* f06f8c4: 10000333 */ b .L0f070594
/* f06f8c8: 8e190010 */ lw $t9,0x10($s0)
/* f06f8cc: 2405001f */ addiu $a1,$zero,0x1f
.L0f06f8d0:
/* f06f8d0: 54a2006b */ bnel $a1,$v0,.L0f06fa80
/* f06f8d4: 24010053 */ addiu $at,$zero,0x53
/* f06f8d8: 8fae01a8 */ lw $t6,0x1a8($sp)
/* f06f8dc: 91d8005f */ lbu $t8,0x5f($t6)
/* f06f8e0: 57000067 */ bnezl $t8,.L0f06fa80
/* f06f8e4: 24010053 */ addiu $at,$zero,0x53
/* f06f8e8: 85c30062 */ lh $v1,0x62($t6)
/* f06f8ec: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06f8f0: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06f8f4: 0460005f */ bltz $v1,.L0f06fa74
/* f06f8f8: 00000000 */ nop
/* f06f8fc: 8db90034 */ lw $t9,0x34($t5)
/* f06f900: 00002825 */ or $a1,$zero,$zero
/* f06f904: 00797823 */ subu $t7,$v1,$t9
/* f06f908: 05e1005a */ bgez $t7,.L0f06fa74
/* f06f90c: a5cf0062 */ sh $t7,0x62($t6)
/* f06f910: 8e040040 */ lw $a0,0x40($s0)
/* f06f914: 8dae0318 */ lw $t6,0x318($t5)
/* f06f918: 3c01f000 */ lui $at,0xf000
/* f06f91c: 0081c024 */ and $t8,$a0,$at
/* f06f920: 11c00006 */ beqz $t6,.L0f06f93c
/* f06f924: 00182702 */ srl $a0,$t8,0x1c
/* f06f928: 0fc63410 */ jal mpGetChrFromPlayerIndex
/* f06f92c: afa0018c */ sw $zero,0x18c($sp)
/* f06f930: 10400002 */ beqz $v0,.L0f06f93c
/* f06f934: 8fa5018c */ lw $a1,0x18c($sp)
/* f06f938: 8c45001c */ lw $a1,0x1c($v0)
.L0f06f93c:
/* f06f93c: 8fa601b0 */ lw $a2,0x1b0($sp)
/* f06f940: 0fc0287e */ jal nbombCreateStorm
/* f06f944: 24c40008 */ addiu $a0,$a2,0x8
/* f06f948: 0fc10e62 */ jal propUnsetDangerous
/* f06f94c: 8fa401b0 */ lw $a0,0x1b0($sp)
/* f06f950: 8e180040 */ lw $t8,0x40($s0)
/* f06f954: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06f958: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06f95c: 37190004 */ ori $t9,$t8,0x4
/* f06f960: ae190040 */ sw $t9,0x40($s0)
/* f06f964: 8dab006c */ lw $t3,0x6c($t5)
/* f06f968: 00004025 */ or $t0,$zero,$zero
/* f06f96c: 00003025 */ or $a2,$zero,$zero
/* f06f970: 11600003 */ beqz $t3,.L0f06f980
/* f06f974: 00002025 */ or $a0,$zero,$zero
/* f06f978: 10000001 */ b .L0f06f980
/* f06f97c: 24060001 */ addiu $a2,$zero,0x1
.L0f06f980:
/* f06f980: 8daa0068 */ lw $t2,0x68($t5)
/* f06f984: 00001025 */ or $v0,$zero,$zero
/* f06f988: 00002825 */ or $a1,$zero,$zero
/* f06f98c: 11400003 */ beqz $t2,.L0f06f99c
/* f06f990: 0008c880 */ sll $t9,$t0,0x2
/* f06f994: 10000001 */ b .L0f06f99c
/* f06f998: 24040001 */ addiu $a0,$zero,0x1
.L0f06f99c:
/* f06f99c: 8da90064 */ lw $t1,0x64($t5)
/* f06f9a0: 01b91821 */ addu $v1,$t5,$t9
/* f06f9a4: 240c0003 */ addiu $t4,$zero,0x3
/* f06f9a8: 11200003 */ beqz $t1,.L0f06f9b8
/* f06f9ac: 00000000 */ nop
/* f06f9b0: 10000001 */ b .L0f06f9b8
/* f06f9b4: 24020001 */ addiu $v0,$zero,0x1
.L0f06f9b8:
/* f06f9b8: 8da70070 */ lw $a3,0x70($t5)
/* f06f9bc: 10e00003 */ beqz $a3,.L0f06f9cc
/* f06f9c0: 00000000 */ nop
/* f06f9c4: 10000001 */ b .L0f06f9cc
/* f06f9c8: 24050001 */ addiu $a1,$zero,0x1
.L0f06f9cc:
/* f06f9cc: 00a27021 */ addu $t6,$a1,$v0
/* f06f9d0: 01c47821 */ addu $t7,$t6,$a0
/* f06f9d4: 01e6c021 */ addu $t8,$t7,$a2
/* f06f9d8: 1b000026 */ blez $t8,.L0f06fa74
/* f06f9dc: 00000000 */ nop
/* f06f9e0: 8c620064 */ lw $v0,0x64($v1)
.L0f06f9e4:
/* f06f9e4: 25080001 */ addiu $t0,$t0,0x1
/* f06f9e8: 00003025 */ or $a2,$zero,$zero
/* f06f9ec: 8c4e0264 */ lw $t6,0x264($v0)
/* f06f9f0: 00002025 */ or $a0,$zero,$zero
/* f06f9f4: 00002825 */ or $a1,$zero,$zero
/* f06f9f8: 160e0008 */ bne $s0,$t6,.L0f06fa1c
/* f06f9fc: 00000000 */ nop
/* f06fa00: ac400264 */ sw $zero,0x264($v0)
/* f06fa04: 8c6f0064 */ lw $t7,0x64($v1)
/* f06fa08: a5ec0010 */ sh $t4,0x10($t7)
/* f06fa0c: 8da70070 */ lw $a3,0x70($t5)
/* f06fa10: 8da90064 */ lw $t1,0x64($t5)
/* f06fa14: 8daa0068 */ lw $t2,0x68($t5)
/* f06fa18: 8dab006c */ lw $t3,0x6c($t5)
.L0f06fa1c:
/* f06fa1c: 11600003 */ beqz $t3,.L0f06fa2c
/* f06fa20: 24630004 */ addiu $v1,$v1,0x4
/* f06fa24: 10000001 */ b .L0f06fa2c
/* f06fa28: 24060001 */ addiu $a2,$zero,0x1
.L0f06fa2c:
/* f06fa2c: 11400003 */ beqz $t2,.L0f06fa3c
/* f06fa30: 00001025 */ or $v0,$zero,$zero
/* f06fa34: 10000001 */ b .L0f06fa3c
/* f06fa38: 24040001 */ addiu $a0,$zero,0x1
.L0f06fa3c:
/* f06fa3c: 11200003 */ beqz $t1,.L0f06fa4c
/* f06fa40: 00000000 */ nop
/* f06fa44: 10000001 */ b .L0f06fa4c
/* f06fa48: 24020001 */ addiu $v0,$zero,0x1
.L0f06fa4c:
/* f06fa4c: 10e00003 */ beqz $a3,.L0f06fa5c
/* f06fa50: 00000000 */ nop
/* f06fa54: 10000001 */ b .L0f06fa5c
/* f06fa58: 24050001 */ addiu $a1,$zero,0x1
.L0f06fa5c:
/* f06fa5c: 00a2c021 */ addu $t8,$a1,$v0
/* f06fa60: 0304c821 */ addu $t9,$t8,$a0
/* f06fa64: 03267021 */ addu $t6,$t9,$a2
/* f06fa68: 010e082a */ slt $at,$t0,$t6
/* f06fa6c: 5420ffdd */ bnezl $at,.L0f06f9e4
/* f06fa70: 8c620064 */ lw $v0,0x64($v1)
.L0f06fa74:
/* f06fa74: 100002c7 */ b .L0f070594
/* f06fa78: 8e190010 */ lw $t9,0x10($s0)
/* f06fa7c: 24010053 */ addiu $at,$zero,0x53
.L0f06fa80:
/* f06fa80: 10410005 */ beq $v0,$at,.L0f06fa98
/* f06fa84: 24010054 */ addiu $at,$zero,0x54
/* f06fa88: 10410003 */ beq $v0,$at,.L0f06fa98
/* f06fa8c: 24010058 */ addiu $at,$zero,0x58
/* f06fa90: 5441005a */ bnel $v0,$at,.L0f06fbfc
/* f06fa94: 24010020 */ addiu $at,$zero,0x20
.L0f06fa98:
/* f06fa98: 8faf01a8 */ lw $t7,0x1a8($sp)
/* f06fa9c: 85f80062 */ lh $t8,0x62($t7)
/* f06faa0: 17000053 */ bnez $t8,.L0f06fbf0
/* f06faa4: 00000000 */ nop
/* f06faa8: 8e19000c */ lw $t9,0xc($s0)
/* f06faac: 2405000d */ addiu $a1,$zero,0xd
/* f06fab0: 00197000 */ sll $t6,$t9,0x0
/* f06fab4: 05c10003 */ bgez $t6,.L0f06fac4
/* f06fab8: 00000000 */ nop
/* f06fabc: 10000001 */ b .L0f06fac4
/* f06fac0: 24050011 */ addiu $a1,$zero,0x11
.L0f06fac4:
/* f06fac4: 0fc1bcc5 */ jal propExplode
/* f06fac8: 8fa401b0 */ lw $a0,0x1b0($sp)
/* f06facc: 8e0f0040 */ lw $t7,0x40($s0)
/* f06fad0: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06fad4: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06fad8: 35f80004 */ ori $t8,$t7,0x4
/* f06fadc: ae180040 */ sw $t8,0x40($s0)
/* f06fae0: 8dab006c */ lw $t3,0x6c($t5)
/* f06fae4: 00004025 */ or $t0,$zero,$zero
/* f06fae8: 00003025 */ or $a2,$zero,$zero
/* f06faec: 11600003 */ beqz $t3,.L0f06fafc
/* f06faf0: 00002025 */ or $a0,$zero,$zero
/* f06faf4: 10000001 */ b .L0f06fafc
/* f06faf8: 24060001 */ addiu $a2,$zero,0x1
.L0f06fafc:
/* f06fafc: 8daa0068 */ lw $t2,0x68($t5)
/* f06fb00: 00001025 */ or $v0,$zero,$zero
/* f06fb04: 00002825 */ or $a1,$zero,$zero
/* f06fb08: 11400003 */ beqz $t2,.L0f06fb18
/* f06fb0c: 0008c080 */ sll $t8,$t0,0x2
/* f06fb10: 10000001 */ b .L0f06fb18
/* f06fb14: 24040001 */ addiu $a0,$zero,0x1
.L0f06fb18:
/* f06fb18: 8da90064 */ lw $t1,0x64($t5)
/* f06fb1c: 01b81821 */ addu $v1,$t5,$t8
/* f06fb20: 240c0003 */ addiu $t4,$zero,0x3
/* f06fb24: 11200003 */ beqz $t1,.L0f06fb34
/* f06fb28: 00000000 */ nop
/* f06fb2c: 10000001 */ b .L0f06fb34
/* f06fb30: 24020001 */ addiu $v0,$zero,0x1
.L0f06fb34:
/* f06fb34: 8da70070 */ lw $a3,0x70($t5)
/* f06fb38: 10e00003 */ beqz $a3,.L0f06fb48
/* f06fb3c: 00000000 */ nop
/* f06fb40: 10000001 */ b .L0f06fb48
/* f06fb44: 24050001 */ addiu $a1,$zero,0x1
.L0f06fb48:
/* f06fb48: 00a2c821 */ addu $t9,$a1,$v0
/* f06fb4c: 03247021 */ addu $t6,$t9,$a0
/* f06fb50: 01c67821 */ addu $t7,$t6,$a2
/* f06fb54: 19e00026 */ blez $t7,.L0f06fbf0
/* f06fb58: 00000000 */ nop
/* f06fb5c: 8c620064 */ lw $v0,0x64($v1)
.L0f06fb60:
/* f06fb60: 25080001 */ addiu $t0,$t0,0x1
/* f06fb64: 00003025 */ or $a2,$zero,$zero
/* f06fb68: 8c590264 */ lw $t9,0x264($v0)
/* f06fb6c: 00002025 */ or $a0,$zero,$zero
/* f06fb70: 00002825 */ or $a1,$zero,$zero
/* f06fb74: 16190008 */ bne $s0,$t9,.L0f06fb98
/* f06fb78: 00000000 */ nop
/* f06fb7c: ac400264 */ sw $zero,0x264($v0)
/* f06fb80: 8c6e0064 */ lw $t6,0x64($v1)
/* f06fb84: a5cc0010 */ sh $t4,0x10($t6)
/* f06fb88: 8da70070 */ lw $a3,0x70($t5)
/* f06fb8c: 8da90064 */ lw $t1,0x64($t5)
/* f06fb90: 8daa0068 */ lw $t2,0x68($t5)
/* f06fb94: 8dab006c */ lw $t3,0x6c($t5)
.L0f06fb98:
/* f06fb98: 11600003 */ beqz $t3,.L0f06fba8
/* f06fb9c: 24630004 */ addiu $v1,$v1,0x4
/* f06fba0: 10000001 */ b .L0f06fba8
/* f06fba4: 24060001 */ addiu $a2,$zero,0x1
.L0f06fba8:
/* f06fba8: 11400003 */ beqz $t2,.L0f06fbb8
/* f06fbac: 00001025 */ or $v0,$zero,$zero
/* f06fbb0: 10000001 */ b .L0f06fbb8
/* f06fbb4: 24040001 */ addiu $a0,$zero,0x1
.L0f06fbb8:
/* f06fbb8: 11200003 */ beqz $t1,.L0f06fbc8
/* f06fbbc: 00000000 */ nop
/* f06fbc0: 10000001 */ b .L0f06fbc8
/* f06fbc4: 24020001 */ addiu $v0,$zero,0x1
.L0f06fbc8:
/* f06fbc8: 10e00003 */ beqz $a3,.L0f06fbd8
/* f06fbcc: 00000000 */ nop
/* f06fbd0: 10000001 */ b .L0f06fbd8
/* f06fbd4: 24050001 */ addiu $a1,$zero,0x1
.L0f06fbd8:
/* f06fbd8: 00a27821 */ addu $t7,$a1,$v0
/* f06fbdc: 01e4c021 */ addu $t8,$t7,$a0
/* f06fbe0: 0306c821 */ addu $t9,$t8,$a2
/* f06fbe4: 0119082a */ slt $at,$t0,$t9
/* f06fbe8: 5420ffdd */ bnezl $at,.L0f06fb60
/* f06fbec: 8c620064 */ lw $v0,0x64($v1)
.L0f06fbf0:
/* f06fbf0: 10000268 */ b .L0f070594
/* f06fbf4: 8e190010 */ lw $t9,0x10($s0)
/* f06fbf8: 24010020 */ addiu $at,$zero,0x20
.L0f06fbfc:
/* f06fbfc: 54410022 */ bnel $v0,$at,.L0f06fc88
/* f06fc00: 24010022 */ addiu $at,$zero,0x22
/* f06fc04: 8fae01a8 */ lw $t6,0x1a8($sp)
/* f06fc08: 85c30062 */ lh $v1,0x62($t6)
/* f06fc0c: 0462001e */ bltzl $v1,.L0f06fc88
/* f06fc10: 24010022 */ addiu $at,$zero,0x22
/* f06fc14: 91cf005f */ lbu $t7,0x5f($t6)
/* f06fc18: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06fc1c: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06fc20: 15e00016 */ bnez $t7,.L0f06fc7c
/* f06fc24: 00000000 */ nop
/* f06fc28: 8db80034 */ lw $t8,0x34($t5)
/* f06fc2c: 0078c823 */ subu $t9,$v1,$t8
/* f06fc30: 07210257 */ bgez $t9,.L0f070590
/* f06fc34: a5d90062 */ sh $t9,0x62($t6)
/* f06fc38: 8e0f000c */ lw $t7,0xc($s0)
/* f06fc3c: 2405000d */ addiu $a1,$zero,0xd
/* f06fc40: 000fc000 */ sll $t8,$t7,0x0
/* f06fc44: 07010003 */ bgez $t8,.L0f06fc54
/* f06fc48: 00000000 */ nop
/* f06fc4c: 10000001 */ b .L0f06fc54
/* f06fc50: 24050011 */ addiu $a1,$zero,0x11
.L0f06fc54:
/* f06fc54: 0fc1bcc5 */ jal propExplode
/* f06fc58: 8fa401b0 */ lw $a0,0x1b0($sp)
/* f06fc5c: 1040024c */ beqz $v0,.L0f070590
/* f06fc60: 8fb901a8 */ lw $t9,0x1a8($sp)
/* f06fc64: 240effff */ addiu $t6,$zero,-1
/* f06fc68: a72e0062 */ sh $t6,0x62($t9)
/* f06fc6c: 8e0f0040 */ lw $t7,0x40($s0)
/* f06fc70: 35f80004 */ ori $t8,$t7,0x4
/* f06fc74: 10000246 */ b .L0f070590
/* f06fc78: ae180040 */ sw $t8,0x40($s0)
.L0f06fc7c:
/* f06fc7c: 10000245 */ b .L0f070594
/* f06fc80: 8e190010 */ lw $t9,0x10($s0)
/* f06fc84: 24010022 */ addiu $at,$zero,0x22
.L0f06fc88:
/* f06fc88: 5441007a */ bnel $v0,$at,.L0f06fe74
/* f06fc8c: 24010021 */ addiu $at,$zero,0x21
/* f06fc90: 3c058007 */ lui $a1,%hi(g_PlayersDetonatingMines)
/* f06fc94: 24a59910 */ addiu $a1,$a1,%lo(g_PlayersDetonatingMines)
/* f06fc98: 8cae0000 */ lw $t6,0x0($a1)
/* f06fc9c: 8fb801b0 */ lw $t8,0x1b0($sp)
/* f06fca0: 51c00053 */ beqzl $t6,.L0f06fdf0
/* f06fca4: 8fb801a8 */ lw $t8,0x1a8($sp)
/* f06fca8: 8e030040 */ lw $v1,0x40($s0)
/* f06fcac: 8f020018 */ lw $v0,0x18($t8)
/* f06fcb0: 3c01f000 */ lui $at,0xf000
/* f06fcb4: 0061c824 */ and $t9,$v1,$at
/* f06fcb8: 10400003 */ beqz $v0,.L0f06fcc8
/* f06fcbc: 00191f02 */ srl $v1,$t9,0x1c
/* f06fcc0: 10000002 */ b .L0f06fccc
/* f06fcc4: 8c440004 */ lw $a0,0x4($v0)
.L0f06fcc8:
/* f06fcc8: 00002025 */ or $a0,$zero,$zero
.L0f06fccc:
/* f06fccc: 10400009 */ beqz $v0,.L0f06fcf4
/* f06fcd0: 00000000 */ nop
/* f06fcd4: 10800007 */ beqz $a0,.L0f06fcf4
/* f06fcd8: 00000000 */ nop
/* f06fcdc: 0fc633fe */ jal mpPlayerGetIndex
/* f06fce0: afa30178 */ sw $v1,0x178($sp)
/* f06fce4: 8fa30178 */ lw $v1,0x178($sp)
/* f06fce8: 3c058007 */ lui $a1,%hi(g_PlayersDetonatingMines)
/* f06fcec: 24a59910 */ addiu $a1,$a1,%lo(g_PlayersDetonatingMines)
/* f06fcf0: 1043003e */ beq $v0,$v1,.L0f06fdec
.L0f06fcf4:
/* f06fcf4: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06fcf8: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06fcfc: 8dae0298 */ lw $t6,0x298($t5)
/* f06fd00: 24010002 */ addiu $at,$zero,0x2
/* f06fd04: 05c10004 */ bgez $t6,.L0f06fd18
/* f06fd08: 00000000 */ nop
/* f06fd0c: 8db9029c */ lw $t9,0x29c($t5)
/* f06fd10: 07220030 */ bltzl $t9,.L0f06fdd4
/* f06fd14: 8cae0000 */ lw $t6,0x0($a1)
.L0f06fd18:
/* f06fd18: 54610026 */ bnel $v1,$at,.L0f06fdb4
/* f06fd1c: 8cb80000 */ lw $t8,0x0($a1)
/* f06fd20: 8da202a4 */ lw $v0,0x2a4($t5)
/* f06fd24: 00001825 */ or $v1,$zero,$zero
/* f06fd28: 5040000d */ beqzl $v0,.L0f06fd60
/* f06fd2c: 8da202a0 */ lw $v0,0x2a0($t5)
/* f06fd30: 8c4400bc */ lw $a0,0xbc($v0)
/* f06fd34: 5080000a */ beqzl $a0,.L0f06fd60
/* f06fd38: 8da202a0 */ lw $v0,0x2a0($t5)
/* f06fd3c: 0fc4a25f */ jal playermgrGetPlayerNumByProp
/* f06fd40: 00000000 */ nop
/* f06fd44: 3c058007 */ lui $a1,%hi(g_PlayersDetonatingMines)
/* f06fd48: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06fd4c: 240f0001 */ addiu $t7,$zero,0x1
/* f06fd50: 004f1804 */ sllv $v1,$t7,$v0
/* f06fd54: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06fd58: 24a59910 */ addiu $a1,$a1,%lo(g_PlayersDetonatingMines)
/* f06fd5c: 8da202a0 */ lw $v0,0x2a0($t5)
.L0f06fd60:
/* f06fd60: 5040000d */ beqzl $v0,.L0f06fd98
/* f06fd64: 8cb90000 */ lw $t9,0x0($a1)
/* f06fd68: 8c4400bc */ lw $a0,0xbc($v0)
/* f06fd6c: 5080000a */ beqzl $a0,.L0f06fd98
/* f06fd70: 8cb90000 */ lw $t9,0x0($a1)
/* f06fd74: 0fc4a25f */ jal playermgrGetPlayerNumByProp
/* f06fd78: afa30170 */ sw $v1,0x170($sp)
/* f06fd7c: 8fa30170 */ lw $v1,0x170($sp)
/* f06fd80: 24180001 */ addiu $t8,$zero,0x1
/* f06fd84: 00587004 */ sllv $t6,$t8,$v0
/* f06fd88: 3c058007 */ lui $a1,%hi(g_PlayersDetonatingMines)
/* f06fd8c: 24a59910 */ addiu $a1,$a1,%lo(g_PlayersDetonatingMines)
/* f06fd90: 006e1825 */ or $v1,$v1,$t6
/* f06fd94: 8cb90000 */ lw $t9,0x0($a1)
.L0f06fd98:
/* f06fd98: 03237824 */ and $t7,$t9,$v1
/* f06fd9c: 11e00013 */ beqz $t7,.L0f06fdec
/* f06fda0: acaf0000 */ sw $t7,0x0($a1)
/* f06fda4: 8fae01a8 */ lw $t6,0x1a8($sp)
/* f06fda8: 10000010 */ b .L0f06fdec
/* f06fdac: a5c00062 */ sh $zero,0x62($t6)
/* f06fdb0: 8cb80000 */ lw $t8,0x0($a1)
.L0f06fdb4:
/* f06fdb4: 24190001 */ addiu $t9,$zero,0x1
/* f06fdb8: 00797804 */ sllv $t7,$t9,$v1
/* f06fdbc: 01f87024 */ and $t6,$t7,$t8
/* f06fdc0: 11c0000a */ beqz $t6,.L0f06fdec
/* f06fdc4: 8fb901a8 */ lw $t9,0x1a8($sp)
/* f06fdc8: 10000008 */ b .L0f06fdec
/* f06fdcc: a7200062 */ sh $zero,0x62($t9)
/* f06fdd0: 8cae0000 */ lw $t6,0x0($a1)
.L0f06fdd4:
/* f06fdd4: 240f0001 */ addiu $t7,$zero,0x1
/* f06fdd8: 006fc004 */ sllv $t8,$t7,$v1
/* f06fddc: 030ec824 */ and $t9,$t8,$t6
/* f06fde0: 13200002 */ beqz $t9,.L0f06fdec
/* f06fde4: 8faf01a8 */ lw $t7,0x1a8($sp)
/* f06fde8: a5e00062 */ sh $zero,0x62($t7)
.L0f06fdec:
/* f06fdec: 8fb801a8 */ lw $t8,0x1a8($sp)
.L0f06fdf0:
/* f06fdf0: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06fdf4: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06fdf8: 87030062 */ lh $v1,0x62($t8)
/* f06fdfc: 28610002 */ slti $at,$v1,0x2
/* f06fe00: 14200009 */ bnez $at,.L0f06fe28
/* f06fe04: 00000000 */ nop
/* f06fe08: 8dae0034 */ lw $t6,0x34($t5)
/* f06fe0c: 24070001 */ addiu $a3,$zero,0x1
/* f06fe10: 006ec823 */ subu $t9,$v1,$t6
/* f06fe14: 2b210002 */ slti $at,$t9,0x2
/* f06fe18: 102001dd */ beqz $at,.L0f070590
/* f06fe1c: a7190062 */ sh $t9,0x62($t8)
/* f06fe20: 100001db */ b .L0f070590
/* f06fe24: a7070062 */ sh $a3,0x62($t8)
.L0f06fe28:
/* f06fe28: 546001da */ bnezl $v1,.L0f070594
/* f06fe2c: 8e190010 */ lw $t9,0x10($s0)
/* f06fe30: 8e0f000c */ lw $t7,0xc($s0)
/* f06fe34: 2405000d */ addiu $a1,$zero,0xd
/* f06fe38: 000f7000 */ sll $t6,$t7,0x0
/* f06fe3c: 05c10002 */ bgez $t6,.L0f06fe48
/* f06fe40: 00000000 */ nop
/* f06fe44: 24050011 */ addiu $a1,$zero,0x11
.L0f06fe48:
/* f06fe48: 0fc1bcc5 */ jal propExplode
/* f06fe4c: 8fa401b0 */ lw $a0,0x1b0($sp)
/* f06fe50: 104001cf */ beqz $v0,.L0f070590
/* f06fe54: 8fb801a8 */ lw $t8,0x1a8($sp)
/* f06fe58: 2419ffff */ addiu $t9,$zero,-1
/* f06fe5c: a7190062 */ sh $t9,0x62($t8)
/* f06fe60: 8e0f0040 */ lw $t7,0x40($s0)
/* f06fe64: 35ee0004 */ ori $t6,$t7,0x4
/* f06fe68: 100001c9 */ b .L0f070590
/* f06fe6c: ae0e0040 */ sw $t6,0x40($s0)
/* f06fe70: 24010021 */ addiu $at,$zero,0x21
.L0f06fe74:
/* f06fe74: 10410012 */ beq $v0,$at,.L0f06fec0
/* f06fe78: 2401000f */ addiu $at,$zero,0xf
/* f06fe7c: 14410005 */ bne $v0,$at,.L0f06fe94
/* f06fe80: 8fb901a8 */ lw $t9,0x1a8($sp)
/* f06fe84: 9338005f */ lbu $t8,0x5f($t9)
/* f06fe88: 24070001 */ addiu $a3,$zero,0x1
/* f06fe8c: 50f8000d */ beql $a3,$t8,.L0f06fec4
/* f06fe90: 8faf01a8 */ lw $t7,0x1a8($sp)
.L0f06fe94:
/* f06fe94: 14c20005 */ bne $a2,$v0,.L0f06feac
/* f06fe98: 24070001 */ addiu $a3,$zero,0x1
/* f06fe9c: 8faf01a8 */ lw $t7,0x1a8($sp)
/* f06fea0: 91ee005f */ lbu $t6,0x5f($t7)
/* f06fea4: 50ee0007 */ beql $a3,$t6,.L0f06fec4
/* f06fea8: 8faf01a8 */ lw $t7,0x1a8($sp)
.L0f06feac:
/* f06feac: 14a200af */ bne $a1,$v0,.L0f07016c
/* f06feb0: 8fb901a8 */ lw $t9,0x1a8($sp)
/* f06feb4: 9338005f */ lbu $t8,0x5f($t9)
/* f06feb8: 54f800ad */ bnel $a3,$t8,.L0f070170
/* f06febc: 24010056 */ addiu $at,$zero,0x56
.L0f06fec0:
/* f06fec0: 8faf01a8 */ lw $t7,0x1a8($sp)
.L0f06fec4:
/* f06fec4: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06fec8: 24070001 */ addiu $a3,$zero,0x1
/* f06fecc: 85e30062 */ lh $v1,0x62($t7)
/* f06fed0: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06fed4: 28610002 */ slti $at,$v1,0x2
/* f06fed8: 1420000e */ bnez $at,.L0f06ff14
/* f06fedc: 00000000 */ nop
/* f06fee0: 8dae0034 */ lw $t6,0x34($t5)
/* f06fee4: 01e02025 */ or $a0,$t7,$zero
/* f06fee8: 006ec823 */ subu $t9,$v1,$t6
/* f06feec: 2b210002 */ slti $at,$t9,0x2
/* f06fef0: a5f90062 */ sh $t9,0x62($t7)
/* f06fef4: 10200025 */ beqz $at,.L0f06ff8c
/* f06fef8: 03201825 */ or $v1,$t9,$zero
/* f06fefc: 0fc22ad9 */ jal weaponRegisterProxy
/* f06ff00: a5e70062 */ sh $a3,0x62($t7)
/* f06ff04: 8fb801a8 */ lw $t8,0x1a8($sp)
/* f06ff08: 2405001f */ addiu $a1,$zero,0x1f
/* f06ff0c: 1000001f */ b .L0f06ff8c
/* f06ff10: 87030062 */ lh $v1,0x62($t8)
.L0f06ff14:
/* f06ff14: 14e3001d */ bne $a3,$v1,.L0f06ff8c
/* f06ff18: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06ff1c: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06ff20: 8dae0284 */ lw $t6,0x284($t5)
/* f06ff24: 8fb901b0 */ lw $t9,0x1b0($sp)
/* f06ff28: 3c017f1b */ lui $at,%hi(var7f1aa2c0)
/* f06ff2c: 8dc200bc */ lw $v0,0xbc($t6)
/* f06ff30: c7240008 */ lwc1 $f4,0x8($t9)
/* f06ff34: c728000c */ lwc1 $f8,0xc($t9)
/* f06ff38: c44a0008 */ lwc1 $f10,0x8($v0)
/* f06ff3c: c446000c */ lwc1 $f6,0xc($v0)
/* f06ff40: 8faf01a8 */ lw $t7,0x1a8($sp)
/* f06ff44: 46045001 */ sub.s $f0,$f10,$f4
/* f06ff48: c7240010 */ lwc1 $f4,0x10($t9)
/* f06ff4c: c44a0010 */ lwc1 $f10,0x10($v0)
/* f06ff50: 46083081 */ sub.s $f2,$f6,$f8
/* f06ff54: 46000182 */ mul.s $f6,$f0,$f0
/* f06ff58: 24420008 */ addiu $v0,$v0,0x8
/* f06ff5c: 46045301 */ sub.s $f12,$f10,$f4
/* f06ff60: 46021202 */ mul.s $f8,$f2,$f2
/* f06ff64: 46083280 */ add.s $f10,$f6,$f8
/* f06ff68: 460c6102 */ mul.s $f4,$f12,$f12
/* f06ff6c: c428a2c0 */ lwc1 $f8,%lo(var7f1aa2c0)($at)
/* f06ff70: 46045180 */ add.s $f6,$f10,$f4
/* f06ff74: 4608303c */ c.lt.s $f6,$f8
/* f06ff78: 00000000 */ nop
/* f06ff7c: 45000003 */ bc1f .L0f06ff8c
/* f06ff80: 00000000 */ nop
/* f06ff84: a5e00062 */ sh $zero,0x62($t7)
/* f06ff88: 00001825 */ or $v1,$zero,$zero
.L0f06ff8c:
/* f06ff8c: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06ff90: 1460017f */ bnez $v1,.L0f070590
/* f06ff94: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06ff98: 8fb801a8 */ lw $t8,0x1a8($sp)
/* f06ff9c: 2401000f */ addiu $at,$zero,0xf
/* f06ffa0: 9302005c */ lbu $v0,0x5c($t8)
/* f06ffa4: 54a2005e */ bnel $a1,$v0,.L0f070120
/* f06ffa8: 8e18000c */ lw $t8,0xc($s0)
/* f06ffac: 8e040040 */ lw $a0,0x40($s0)
/* f06ffb0: 8daf0318 */ lw $t7,0x318($t5)
/* f06ffb4: 3c01f000 */ lui $at,0xf000
/* f06ffb8: 00817024 */ and $t6,$a0,$at
/* f06ffbc: 00002825 */ or $a1,$zero,$zero
/* f06ffc0: 11e00006 */ beqz $t7,.L0f06ffdc
/* f06ffc4: 000e2702 */ srl $a0,$t6,0x1c
/* f06ffc8: 0fc63410 */ jal mpGetChrFromPlayerIndex
/* f06ffcc: afa00154 */ sw $zero,0x154($sp)
/* f06ffd0: 10400002 */ beqz $v0,.L0f06ffdc
/* f06ffd4: 8fa50154 */ lw $a1,0x154($sp)
/* f06ffd8: 8c45001c */ lw $a1,0x1c($v0)
.L0f06ffdc:
/* f06ffdc: 8fa601b0 */ lw $a2,0x1b0($sp)
/* f06ffe0: 0fc0287e */ jal nbombCreateStorm
/* f06ffe4: 24c40008 */ addiu $a0,$a2,0x8
/* f06ffe8: 0fc10e62 */ jal propUnsetDangerous
/* f06ffec: 8fa401b0 */ lw $a0,0x1b0($sp)
/* f06fff0: 8e0e0040 */ lw $t6,0x40($s0)
/* f06fff4: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f06fff8: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f06fffc: 35d90004 */ ori $t9,$t6,0x4
/* f070000: ae190040 */ sw $t9,0x40($s0)
/* f070004: 8dab006c */ lw $t3,0x6c($t5)
/* f070008: 00004025 */ or $t0,$zero,$zero
/* f07000c: 00003025 */ or $a2,$zero,$zero
/* f070010: 11600003 */ beqz $t3,.L0f070020
/* f070014: 00002025 */ or $a0,$zero,$zero
/* f070018: 10000001 */ b .L0f070020
/* f07001c: 24060001 */ addiu $a2,$zero,0x1
.L0f070020:
/* f070020: 8daa0068 */ lw $t2,0x68($t5)
/* f070024: 00001025 */ or $v0,$zero,$zero
/* f070028: 00002825 */ or $a1,$zero,$zero
/* f07002c: 11400003 */ beqz $t2,.L0f07003c
/* f070030: 0008c880 */ sll $t9,$t0,0x2
/* f070034: 10000001 */ b .L0f07003c
/* f070038: 24040001 */ addiu $a0,$zero,0x1
.L0f07003c:
/* f07003c: 8da90064 */ lw $t1,0x64($t5)
/* f070040: 01b91821 */ addu $v1,$t5,$t9
/* f070044: 240c0003 */ addiu $t4,$zero,0x3
/* f070048: 11200003 */ beqz $t1,.L0f070058
/* f07004c: 00000000 */ nop
/* f070050: 10000001 */ b .L0f070058
/* f070054: 24020001 */ addiu $v0,$zero,0x1
.L0f070058:
/* f070058: 8da70070 */ lw $a3,0x70($t5)
/* f07005c: 10e00003 */ beqz $a3,.L0f07006c
/* f070060: 00000000 */ nop
/* f070064: 10000001 */ b .L0f07006c
/* f070068: 24050001 */ addiu $a1,$zero,0x1
.L0f07006c:
/* f07006c: 00a27821 */ addu $t7,$a1,$v0
/* f070070: 01e4c021 */ addu $t8,$t7,$a0
/* f070074: 03067021 */ addu $t6,$t8,$a2
/* f070078: 59c00146 */ blezl $t6,.L0f070594
/* f07007c: 8e190010 */ lw $t9,0x10($s0)
/* f070080: 8c620064 */ lw $v0,0x64($v1)
.L0f070084:
/* f070084: 25080001 */ addiu $t0,$t0,0x1
/* f070088: 00003025 */ or $a2,$zero,$zero
/* f07008c: 8c4f0264 */ lw $t7,0x264($v0)
/* f070090: 00002025 */ or $a0,$zero,$zero
/* f070094: 00002825 */ or $a1,$zero,$zero
/* f070098: 160f0008 */ bne $s0,$t7,.L0f0700bc
/* f07009c: 00000000 */ nop
/* f0700a0: ac400264 */ sw $zero,0x264($v0)
/* f0700a4: 8c780064 */ lw $t8,0x64($v1)
/* f0700a8: a70c0010 */ sh $t4,0x10($t8)
/* f0700ac: 8da70070 */ lw $a3,0x70($t5)
/* f0700b0: 8da90064 */ lw $t1,0x64($t5)
/* f0700b4: 8daa0068 */ lw $t2,0x68($t5)
/* f0700b8: 8dab006c */ lw $t3,0x6c($t5)
.L0f0700bc:
/* f0700bc: 11600003 */ beqz $t3,.L0f0700cc
/* f0700c0: 24630004 */ addiu $v1,$v1,0x4
/* f0700c4: 10000001 */ b .L0f0700cc
/* f0700c8: 24060001 */ addiu $a2,$zero,0x1
.L0f0700cc:
/* f0700cc: 11400003 */ beqz $t2,.L0f0700dc
/* f0700d0: 00001025 */ or $v0,$zero,$zero
/* f0700d4: 10000001 */ b .L0f0700dc
/* f0700d8: 24040001 */ addiu $a0,$zero,0x1
.L0f0700dc:
/* f0700dc: 11200003 */ beqz $t1,.L0f0700ec
/* f0700e0: 00000000 */ nop
/* f0700e4: 10000001 */ b .L0f0700ec
/* f0700e8: 24020001 */ addiu $v0,$zero,0x1
.L0f0700ec:
/* f0700ec: 10e00003 */ beqz $a3,.L0f0700fc
/* f0700f0: 00000000 */ nop
/* f0700f4: 10000001 */ b .L0f0700fc
/* f0700f8: 24050001 */ addiu $a1,$zero,0x1
.L0f0700fc:
/* f0700fc: 00a27021 */ addu $t6,$a1,$v0
/* f070100: 01c4c821 */ addu $t9,$t6,$a0
/* f070104: 03267821 */ addu $t7,$t9,$a2
/* f070108: 010f082a */ slt $at,$t0,$t7
/* f07010c: 5420ffdd */ bnezl $at,.L0f070084
/* f070110: 8c620064 */ lw $v0,0x64($v1)
/* f070114: 1000011f */ b .L0f070594
/* f070118: 8e190010 */ lw $t9,0x10($s0)
/* f07011c: 8e18000c */ lw $t8,0xc($s0)
.L0f070120:
/* f070120: 2405000d */ addiu $a1,$zero,0xd
/* f070124: 00187000 */ sll $t6,$t8,0x0
/* f070128: 05c10003 */ bgez $t6,.L0f070138
/* f07012c: 00000000 */ nop
/* f070130: 10000001 */ b .L0f070138
/* f070134: 24050011 */ addiu $a1,$zero,0x11
.L0f070138:
/* f070138: 14410002 */ bne $v0,$at,.L0f070144
/* f07013c: 00000000 */ nop
/* f070140: 24050017 */ addiu $a1,$zero,0x17
.L0f070144:
/* f070144: 0fc1bcc5 */ jal propExplode
/* f070148: 8fa401b0 */ lw $a0,0x1b0($sp)
/* f07014c: 10400110 */ beqz $v0,.L0f070590
/* f070150: 8faf01a8 */ lw $t7,0x1a8($sp)
/* f070154: 2419ffff */ addiu $t9,$zero,-1
/* f070158: a5f90062 */ sh $t9,0x62($t7)
/* f07015c: 8e180040 */ lw $t8,0x40($s0)
/* f070160: 370e0004 */ ori $t6,$t8,0x4
/* f070164: 1000010a */ b .L0f070590
/* f070168: ae0e0040 */ sw $t6,0x40($s0)
.L0f07016c:
/* f07016c: 24010056 */ addiu $at,$zero,0x56
.L0f070170:
/* f070170: 54410108 */ bnel $v0,$at,.L0f070594
/* f070174: 8e190010 */ lw $t9,0x10($s0)
/* f070178: 8fb901a8 */ lw $t9,0x1a8($sp)
/* f07017c: 87230062 */ lh $v1,0x62($t9)
/* f070180: 28610002 */ slti $at,$v1,0x2
/* f070184: 14200099 */ bnez $at,.L0f0703ec
/* f070188: 00000000 */ nop
/* f07018c: 0fc1a2aa */ jal modelFindBboxRodata
/* f070190: 8e040018 */ lw $a0,0x18($s0)
/* f070194: 8faf01a8 */ lw $t7,0x1a8($sp)
/* f070198: 3c014140 */ lui $at,0x4140
/* f07019c: 44811000 */ mtc1 $at,$f2
/* f0701a0: 85e30062 */ lh $v1,0x62($t7)
/* f0701a4: 3c017f1b */ lui $at,%hi(var7f1aa2c4)
/* f0701a8: c42ea2c4 */ lwc1 $f14,%lo(var7f1aa2c4)($at)
/* f0701ac: 2463ffff */ addiu $v1,$v1,-1
/* f0701b0: 44835000 */ mtc1 $v1,$f10
/* f0701b4: 2861000c */ slti $at,$v1,0xc
/* f0701b8: 24070001 */ addiu $a3,$zero,0x1
/* f0701bc: 46805120 */ cvt.s.w $f4,$f10
/* f0701c0: 00403025 */ or $a2,$v0,$zero
/* f0701c4: 24780001 */ addiu $t8,$v1,0x1
/* f0701c8: 306e0001 */ andi $t6,$v1,0x1
/* f0701cc: 27a500b8 */ addiu $a1,$sp,0xb8
/* f0701d0: 46022183 */ div.s $f6,$f4,$f2
/* f0701d4: 460e3002 */ mul.s $f0,$f6,$f14
/* f0701d8: 10200007 */ beqz $at,.L0f0701f8
/* f0701dc: 46000306 */ mov.s $f12,$f0
/* f0701e0: 44984000 */ mtc1 $t8,$f8
/* f0701e4: 00000000 */ nop
/* f0701e8: 468042a0 */ cvt.s.w $f10,$f8
/* f0701ec: 46025103 */ div.s $f4,$f10,$f2
/* f0701f0: 46047182 */ mul.s $f6,$f14,$f4
/* f0701f4: 46060300 */ add.s $f12,$f0,$f6
.L0f0701f8:
/* f0701f8: 14ee0002 */ bne $a3,$t6,.L0f070204
/* f0701fc: 00000000 */ nop
/* f070200: 46006307 */ neg.s $f12,$f12
.L0f070204:
/* f070204: 0c0058dd */ jal mtx4LoadYRotation
/* f070208: afa60140 */ sw $a2,0x140($sp)
/* f07020c: 8e030048 */ lw $v1,0x48($s0)
/* f070210: 8fa60140 */ lw $a2,0x140($sp)
/* f070214: 8fb901b0 */ lw $t9,0x1b0($sp)
/* f070218: 50600040 */ beqzl $v1,.L0f07031c
/* f07021c: 44808000 */ mtc1 $zero,$f16
/* f070220: 8f220018 */ lw $v0,0x18($t9)
/* f070224: 5040006e */ beqzl $v0,.L0f0703e0
/* f070228: 8fb801a8 */ lw $t8,0x1a8($sp)
/* f07022c: 904f0000 */ lbu $t7,0x0($v0)
/* f070230: 24010003 */ addiu $at,$zero,0x3
/* f070234: 24640004 */ addiu $a0,$v1,0x4
/* f070238: 11e10068 */ beq $t7,$at,.L0f0703dc
/* f07023c: 27a500f8 */ addiu $a1,$sp,0xf8
/* f070240: 0c005746 */ jal mtx4Copy
/* f070244: afa60140 */ sw $a2,0x140($sp)
/* f070248: 44800000 */ mtc1 $zero,$f0
/* f07024c: 8fa40140 */ lw $a0,0x140($sp)
/* f070250: e7a0012c */ swc1 $f0,0x12c($sp)
/* f070254: e7a00128 */ swc1 $f0,0x128($sp)
/* f070258: e7a00114 */ swc1 $f0,0x114($sp)
/* f07025c: e7a00104 */ swc1 $f0,0x104($sp)
/* f070260: e7a00070 */ swc1 $f0,0x70($sp)
/* f070264: e7a00060 */ swc1 $f0,0x60($sp)
/* f070268: e7a0006c */ swc1 $f0,0x6c($sp)
/* f07026c: e7a00130 */ swc1 $f0,0x130($sp)
/* f070270: e7a00124 */ swc1 $f0,0x124($sp)
/* f070274: 0fc199f5 */ jal modelBboxGetZMax
/* f070278: e7a00064 */ swc1 $f0,0x64($sp)
/* f07027c: e7a00068 */ swc1 $f0,0x68($sp)
/* f070280: e7a00074 */ swc1 $f0,0x74($sp)
/* f070284: 27a400f8 */ addiu $a0,$sp,0xf8
/* f070288: 27a500b8 */ addiu $a1,$sp,0xb8
/* f07028c: 0c005680 */ jal mtx4MultMtx4
/* f070290: 27a60078 */ addiu $a2,$sp,0x78
/* f070294: 27a400f8 */ addiu $a0,$sp,0xf8
/* f070298: 0c0056c4 */ jal mtx4RotateVecInPlace
/* f07029c: 27a5006c */ addiu $a1,$sp,0x6c
/* f0702a0: 27a40078 */ addiu $a0,$sp,0x78
/* f0702a4: 0c0056c4 */ jal mtx4RotateVecInPlace
/* f0702a8: 27a50060 */ addiu $a1,$sp,0x60
/* f0702ac: c7a80060 */ lwc1 $f8,0x60($sp)
/* f0702b0: c7aa006c */ lwc1 $f10,0x6c($sp)
/* f0702b4: 8e180048 */ lw $t8,0x48($s0)
/* f0702b8: 27a40078 */ addiu $a0,$sp,0x78
/* f0702bc: 460a4101 */ sub.s $f4,$f8,$f10
/* f0702c0: c7060034 */ lwc1 $f6,0x34($t8)
/* f0702c4: c7aa0064 */ lwc1 $f10,0x64($sp)
/* f0702c8: 46043201 */ sub.s $f8,$f6,$f4
/* f0702cc: c7a60070 */ lwc1 $f6,0x70($sp)
/* f0702d0: e7a800a8 */ swc1 $f8,0xa8($sp)
/* f0702d4: 8e0e0048 */ lw $t6,0x48($s0)
/* f0702d8: 46065101 */ sub.s $f4,$f10,$f6
/* f0702dc: c7a60068 */ lwc1 $f6,0x68($sp)
/* f0702e0: c5c80038 */ lwc1 $f8,0x38($t6)
/* f0702e4: 46044281 */ sub.s $f10,$f8,$f4
/* f0702e8: c7a80074 */ lwc1 $f8,0x74($sp)
/* f0702ec: e7aa00ac */ swc1 $f10,0xac($sp)
/* f0702f0: 8e190048 */ lw $t9,0x48($s0)
/* f0702f4: 46083101 */ sub.s $f4,$f6,$f8
/* f0702f8: c72a003c */ lwc1 $f10,0x3c($t9)
/* f0702fc: 46045181 */ sub.s $f6,$f10,$f4
/* f070300: e7a600b0 */ swc1 $f6,0xb0($sp)
/* f070304: 8e050048 */ lw $a1,0x48($s0)
/* f070308: 0c005746 */ jal mtx4Copy
/* f07030c: 24a50004 */ addiu $a1,$a1,0x4
/* f070310: 10000033 */ b .L0f0703e0
/* f070314: 8fb801a8 */ lw $t8,0x1a8($sp)
/* f070318: 44808000 */ mtc1 $zero,$f16
.L0f07031c:
/* f07031c: 00c02025 */ or $a0,$a2,$zero
/* f070320: e7b00070 */ swc1 $f16,0x70($sp)
/* f070324: e7b00060 */ swc1 $f16,0x60($sp)
/* f070328: e7b0006c */ swc1 $f16,0x6c($sp)
/* f07032c: 0fc199f5 */ jal modelBboxGetZMax
/* f070330: e7b00064 */ swc1 $f16,0x64($sp)
/* f070334: 2604001c */ addiu $a0,$s0,0x1c
/* f070338: e7a00068 */ swc1 $f0,0x68($sp)
/* f07033c: e7a00074 */ swc1 $f0,0x74($sp)
/* f070340: afa40038 */ sw $a0,0x38($sp)
/* f070344: 0c005755 */ jal mtx3ToMtx4
/* f070348: 27a500f8 */ addiu $a1,$sp,0xf8
/* f07034c: 27a400f8 */ addiu $a0,$sp,0xf8
/* f070350: 27a500b8 */ addiu $a1,$sp,0xb8
/* f070354: 0c005680 */ jal mtx4MultMtx4
/* f070358: 27a60078 */ addiu $a2,$sp,0x78
/* f07035c: 27a40078 */ addiu $a0,$sp,0x78
/* f070360: 0c005768 */ jal mtx4ToMtx3
/* f070364: 8fa50038 */ lw $a1,0x38($sp)
/* f070368: 27a400f8 */ addiu $a0,$sp,0xf8
/* f07036c: 0c0056c4 */ jal mtx4RotateVecInPlace
/* f070370: 27a5006c */ addiu $a1,$sp,0x6c
/* f070374: 27a40078 */ addiu $a0,$sp,0x78
/* f070378: 0c0056c4 */ jal mtx4RotateVecInPlace
/* f07037c: 27a50060 */ addiu $a1,$sp,0x60
/* f070380: c7a80060 */ lwc1 $f8,0x60($sp)
/* f070384: c7aa006c */ lwc1 $f10,0x6c($sp)
/* f070388: 8faf01b0 */ lw $t7,0x1b0($sp)
/* f07038c: 02002025 */ or $a0,$s0,$zero
/* f070390: 460a4101 */ sub.s $f4,$f8,$f10
/* f070394: c5e60008 */ lwc1 $f6,0x8($t7)
/* f070398: 00002825 */ or $a1,$zero,$zero
/* f07039c: 24060001 */ addiu $a2,$zero,0x1
/* f0703a0: 46043201 */ sub.s $f8,$f6,$f4
/* f0703a4: e5e80008 */ swc1 $f8,0x8($t7)
/* f0703a8: c7a60070 */ lwc1 $f6,0x70($sp)
/* f0703ac: c7aa0064 */ lwc1 $f10,0x64($sp)
/* f0703b0: c5e8000c */ lwc1 $f8,0xc($t7)
/* f0703b4: 46065101 */ sub.s $f4,$f10,$f6
/* f0703b8: 46044281 */ sub.s $f10,$f8,$f4
/* f0703bc: e5ea000c */ swc1 $f10,0xc($t7)
/* f0703c0: c7a80074 */ lwc1 $f8,0x74($sp)
/* f0703c4: c7a60068 */ lwc1 $f6,0x68($sp)
/* f0703c8: c5ea0010 */ lwc1 $f10,0x10($t7)
/* f0703cc: 46083101 */ sub.s $f4,$f6,$f8
/* f0703d0: 46045181 */ sub.s $f6,$f10,$f4
/* f0703d4: 0fc1a71c */ jal func0f069c70
/* f0703d8: e5e60010 */ swc1 $f6,0x10($t7)
.L0f0703dc:
/* f0703dc: 8fb801a8 */ lw $t8,0x1a8($sp)
.L0f0703e0:
/* f0703e0: 870e0062 */ lh $t6,0x62($t8)
/* f0703e4: 25c3ffff */ addiu $v1,$t6,-1
/* f0703e8: a7030062 */ sh $v1,0x62($t8)
.L0f0703ec:
/* f0703ec: 04610023 */ bgez $v1,.L0f07047c
/* f0703f0: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f0703f4: 8e030048 */ lw $v1,0x48($s0)
/* f0703f8: 8fa401b0 */ lw $a0,0x1b0($sp)
/* f0703fc: 0fc2bb15 */ jal boltbeamFindByProp
/* f070400: afa3005c */ sw $v1,0x5c($sp)
/* f070404: 2401ffff */ addiu $at,$zero,-1
/* f070408: 8fa3005c */ lw $v1,0x5c($sp)
/* f07040c: 10410019 */ beq $v0,$at,.L0f070474
/* f070410: 00402025 */ or $a0,$v0,$zero
/* f070414: 8fa501b0 */ lw $a1,0x1b0($sp)
/* f070418: afa3005c */ sw $v1,0x5c($sp)
/* f07041c: afa20058 */ sw $v0,0x58($sp)
/* f070420: 0fc2bb5c */ jal boltbeamSetTailPos
/* f070424: 24a50008 */ addiu $a1,$a1,0x8
/* f070428: 3c05453b */ lui $a1,0x453b
/* f07042c: 34a58000 */ ori $a1,$a1,0x8000
/* f070430: 8fa40058 */ lw $a0,0x58($sp)
/* f070434: 0fc2bb69 */ jal boltbeamIncrementHeadPos
/* f070438: 00003025 */ or $a2,$zero,$zero
/* f07043c: 8fa3005c */ lw $v1,0x5c($sp)
/* f070440: 8fae01a8 */ lw $t6,0x1a8($sp)
/* f070444: 3c0544af */ lui $a1,0x44af
/* f070448: 10600005 */ beqz $v1,.L0f070460
/* f07044c: 00000000 */ nop
/* f070450: 8c6f0090 */ lw $t7,0x90($v1)
/* f070454: 19e00002 */ blez $t7,.L0f070460
/* f070458: 00000000 */ nop
/* f07045c: 00001825 */ or $v1,$zero,$zero
.L0f070460:
/* f070460: 14600004 */ bnez $v1,.L0f070474
/* f070464: 00000000 */ nop
/* f070468: a5c00062 */ sh $zero,0x62($t6)
/* f07046c: 0fc2bbaa */ jal boltbeamSetAutomatic
/* f070470: 8fa40058 */ lw $a0,0x58($sp)
.L0f070474:
/* f070474: 10000047 */ b .L0f070594
/* f070478: 8e190010 */ lw $t9,0x10($s0)
.L0f07047c:
/* f07047c: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f070480: 8dab006c */ lw $t3,0x6c($t5)
/* f070484: 00004025 */ or $t0,$zero,$zero
/* f070488: 00003025 */ or $a2,$zero,$zero
/* f07048c: 11600003 */ beqz $t3,.L0f07049c
/* f070490: 00002025 */ or $a0,$zero,$zero
/* f070494: 10000001 */ b .L0f07049c
/* f070498: 24060001 */ addiu $a2,$zero,0x1
.L0f07049c:
/* f07049c: 8daa0068 */ lw $t2,0x68($t5)
/* f0704a0: 00001025 */ or $v0,$zero,$zero
/* f0704a4: 00002825 */ or $a1,$zero,$zero
/* f0704a8: 11400003 */ beqz $t2,.L0f0704b8
/* f0704ac: 00087080 */ sll $t6,$t0,0x2
/* f0704b0: 10000001 */ b .L0f0704b8
/* f0704b4: 24040001 */ addiu $a0,$zero,0x1
.L0f0704b8:
/* f0704b8: 8da90064 */ lw $t1,0x64($t5)
/* f0704bc: 01ae1821 */ addu $v1,$t5,$t6
/* f0704c0: 240c0003 */ addiu $t4,$zero,0x3
/* f0704c4: 11200003 */ beqz $t1,.L0f0704d4
/* f0704c8: 00000000 */ nop
/* f0704cc: 10000001 */ b .L0f0704d4
/* f0704d0: 24020001 */ addiu $v0,$zero,0x1
.L0f0704d4:
/* f0704d4: 8da70070 */ lw $a3,0x70($t5)
/* f0704d8: 10e00003 */ beqz $a3,.L0f0704e8
/* f0704dc: 00000000 */ nop
/* f0704e0: 10000001 */ b .L0f0704e8
/* f0704e4: 24050001 */ addiu $a1,$zero,0x1
.L0f0704e8:
/* f0704e8: 00a2c021 */ addu $t8,$a1,$v0
/* f0704ec: 0304c821 */ addu $t9,$t8,$a0
/* f0704f0: 03267821 */ addu $t7,$t9,$a2
/* f0704f4: 59e00027 */ blezl $t7,.L0f070594
/* f0704f8: 8e190010 */ lw $t9,0x10($s0)
/* f0704fc: 8c620064 */ lw $v0,0x64($v1)
.L0f070500:
/* f070500: 25080001 */ addiu $t0,$t0,0x1
/* f070504: 00003025 */ or $a2,$zero,$zero
/* f070508: 8c580264 */ lw $t8,0x264($v0)
/* f07050c: 00002025 */ or $a0,$zero,$zero
/* f070510: 00002825 */ or $a1,$zero,$zero
/* f070514: 16180008 */ bne $s0,$t8,.L0f070538
/* f070518: 00000000 */ nop
/* f07051c: ac400264 */ sw $zero,0x264($v0)
/* f070520: 8c790064 */ lw $t9,0x64($v1)
/* f070524: a72c0010 */ sh $t4,0x10($t9)
/* f070528: 8da70070 */ lw $a3,0x70($t5)
/* f07052c: 8da90064 */ lw $t1,0x64($t5)
/* f070530: 8daa0068 */ lw $t2,0x68($t5)
/* f070534: 8dab006c */ lw $t3,0x6c($t5)
.L0f070538:
/* f070538: 11600003 */ beqz $t3,.L0f070548
/* f07053c: 24630004 */ addiu $v1,$v1,0x4
/* f070540: 10000001 */ b .L0f070548
/* f070544: 24060001 */ addiu $a2,$zero,0x1
.L0f070548:
/* f070548: 11400003 */ beqz $t2,.L0f070558
/* f07054c: 00001025 */ or $v0,$zero,$zero
/* f070550: 10000001 */ b .L0f070558
/* f070554: 24040001 */ addiu $a0,$zero,0x1
.L0f070558:
/* f070558: 11200003 */ beqz $t1,.L0f070568
/* f07055c: 00000000 */ nop
/* f070560: 10000001 */ b .L0f070568
/* f070564: 24020001 */ addiu $v0,$zero,0x1
.L0f070568:
/* f070568: 10e00003 */ beqz $a3,.L0f070578
/* f07056c: 00000000 */ nop
/* f070570: 10000001 */ b .L0f070578
/* f070574: 24050001 */ addiu $a1,$zero,0x1
.L0f070578:
/* f070578: 00a27821 */ addu $t7,$a1,$v0
/* f07057c: 01e47021 */ addu $t6,$t7,$a0
/* f070580: 01c6c021 */ addu $t8,$t6,$a2
/* f070584: 0118082a */ slt $at,$t0,$t8
/* f070588: 5420ffdd */ bnezl $at,.L0f070500
/* f07058c: 8c620064 */ lw $v0,0x64($v1)
.L0f070590:
/* f070590: 8e190010 */ lw $t9,0x10($s0)
.L0f070594:
/* f070594: 3c0d800a */ lui $t5,%hi(g_Vars)
/* f070598: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
/* f07059c: 332f0100 */ andi $t7,$t9,0x100
/* f0705a0: 11e0000a */ beqz $t7,.L0f0705cc
/* f0705a4: 8fae01a8 */ lw $t6,0x1a8($sp)
/* f0705a8: 81d80060 */ lb $t8,0x60($t6)
/* f0705ac: 8db90038 */ lw $t9,0x38($t5)
/* f0705b0: 03197823 */ subu $t7,$t8,$t9
/* f0705b4: 1de00005 */ bgtz $t7,.L0f0705cc
/* f0705b8: a1cf0060 */ sb $t7,0x60($t6)
/* f0705bc: a1c00060 */ sb $zero,0x60($t6)
/* f0705c0: 8e180040 */ lw $t8,0x40($s0)
/* f0705c4: 37190004 */ ori $t9,$t8,0x4
/* f0705c8: ae190040 */ sw $t9,0x40($s0)
.L0f0705cc:
/* f0705cc: 8e0f0010 */ lw $t7,0x10($s0)
/* f0705d0: 8fb801b0 */ lw $t8,0x1b0($sp)
/* f0705d4: 31ee0080 */ andi $t6,$t7,0x80
/* f0705d8: 51c00014 */ beqzl $t6,.L0f07062c
/* f0705dc: 8fbf001c */ lw $ra,0x1c($sp)
/* f0705e0: 93190001 */ lbu $t9,0x1($t8)
/* f0705e4: 332f0002 */ andi $t7,$t9,0x2
/* f0705e8: 51e00010 */ beqzl $t7,.L0f07062c
/* f0705ec: 8fbf001c */ lw $ra,0x1c($sp)
/* f0705f0: 8dae043c */ lw $t6,0x43c($t5)
/* f0705f4: 25d80001 */ addiu $t8,$t6,0x1
/* f0705f8: 2b010015 */ slti $at,$t8,0x15
/* f0705fc: 1420000a */ bnez $at,.L0f070628
/* f070600: adb8043c */ sw $t8,0x43c($t5)
/* f070604: 8fae01a8 */ lw $t6,0x1a8($sp)
/* f070608: 240f003c */ addiu $t7,$zero,0x3c
/* f07060c: 2401ff7f */ addiu $at,$zero,-129
/* f070610: a1cf0060 */ sb $t7,0x60($t6)
/* f070614: 8e180010 */ lw $t8,0x10($s0)
/* f070618: 0301c824 */ and $t9,$t8,$at
/* f07061c: ae190010 */ sw $t9,0x10($s0)
/* f070620: 372e0100 */ ori $t6,$t9,0x100
/* f070624: ae0e0010 */ sw $t6,0x10($s0)
.L0f070628:
/* f070628: 8fbf001c */ lw $ra,0x1c($sp)
.L0f07062c:
/* f07062c: 8fb00018 */ lw $s0,0x18($sp)
/* f070630: 27bd01b0 */ addiu $sp,$sp,0x1b0
/* f070634: 03e00008 */ jr $ra
/* f070638: 00000000 */ nop
);
#else
GLOBAL_ASM(
glabel weaponTick
.late_rodata
glabel var7f1aa2c0
.word 0x47742400
glabel var7f1aa2c4
.word 0x3cd67750
.text
/* f06e7b0: 27bdfe88 */ addiu $sp,$sp,-376
/* f06e7b4: afbf0014 */ sw $ra,0x14($sp)
/* f06e7b8: afa40178 */ sw $a0,0x178($sp)
/* f06e7bc: 8c820004 */ lw $v0,0x4($a0)
/* f06e7c0: 2406001e */ addiu $a2,$zero,0x1e
/* f06e7c4: afa20174 */ sw $v0,0x174($sp)
/* f06e7c8: 904f005c */ lbu $t7,0x5c($v0)
/* f06e7cc: 00403825 */ or $a3,$v0,$zero
/* f06e7d0: 54cf0005 */ bnel $a2,$t7,.NB0f06e7e8
/* f06e7d4: 90e2005c */ lbu $v0,0x5c($a3)
/* f06e7d8: 9058005f */ lbu $t8,0x5f($v0)
/* f06e7dc: 53000006 */ beqzl $t8,.NB0f06e7f8
/* f06e7e0: 84e30062 */ lh $v1,0x62($a3)
/* f06e7e4: 90e2005c */ lbu $v0,0x5c($a3)
.NB0f06e7e8:
/* f06e7e8: 24010054 */ addiu $at,$zero,0x54
/* f06e7ec: 54410092 */ bnel $v0,$at,.NB0f06ea38
/* f06e7f0: 2405001f */ addiu $a1,$zero,0x1f
/* f06e7f4: 84e30062 */ lh $v1,0x62($a3)
.NB0f06e7f8:
/* f06e7f8: 90e2005c */ lbu $v0,0x5c($a3)
/* f06e7fc: 24010054 */ addiu $at,$zero,0x54
/* f06e800: 0462008d */ bltzl $v1,.NB0f06ea38
/* f06e804: 2405001f */ addiu $a1,$zero,0x1f
/* f06e808: 1441005f */ bne $v0,$at,.NB0f06e988
/* f06e80c: 3c09800a */ lui $t1,0x800a
/* f06e810: 90f9005f */ lbu $t9,0x5f($a3)
/* f06e814: 24080001 */ addiu $t0,$zero,0x1
/* f06e818: 1519005b */ bne $t0,$t9,.NB0f06e988
/* f06e81c: 00000000 */ sll $zero,$zero,0x0
/* f06e820: 18600059 */ blez $v1,.NB0f06e988
/* f06e824: 28610002 */ slti $at,$v1,0x2
/* f06e828: 142002d2 */ bnez $at,.NB0f06f374
/* f06e82c: 3c09800a */ lui $t1,0x800a
/* f06e830: 8d29e6f4 */ lw $t1,-0x190c($t1)
/* f06e834: 3c0d8007 */ lui $t5,0x8007
/* f06e838: 25adc0fc */ addiu $t5,$t5,-16132
/* f06e83c: 00695023 */ subu $t2,$v1,$t1
/* f06e840: a4ea0062 */ sh $t2,0x62($a3)
/* f06e844: 84eb0062 */ lh $t3,0x62($a3)
/* f06e848: 29610008 */ slti $at,$t3,0x8
/* f06e84c: 502002ca */ beqzl $at,.NB0f06f378
/* f06e850: 8fae0174 */ lw $t6,0x174($sp)
/* f06e854: 8da10000 */ lw $at,0x0($t5)
/* f06e858: 27ac0164 */ addiu $t4,$sp,0x164
/* f06e85c: 8daf0004 */ lw $t7,0x4($t5)
/* f06e860: ad810000 */ sw $at,0x0($t4)
/* f06e864: 8da10008 */ lw $at,0x8($t5)
/* f06e868: ad8f0004 */ sw $t7,0x4($t4)
/* f06e86c: ad810008 */ sw $at,0x8($t4)
/* f06e870: afa70170 */ sw $a3,0x170($sp)
/* f06e874: afa0015c */ sw $zero,0x15c($sp)
/* f06e878: 0fc19e19 */ jal func0f0685e4
/* f06e87c: 8fa40178 */ lw $a0,0x178($sp)
/* f06e880: 8fa60174 */ lw $a2,0x174($sp)
/* f06e884: 8fa5015c */ lw $a1,0x15c($sp)
/* f06e888: 8fa70170 */ lw $a3,0x170($sp)
/* f06e88c: 8cc20040 */ lw $v0,0x40($a2)
/* f06e890: 24080001 */ addiu $t0,$zero,0x1
/* f06e894: 8faa0178 */ lw $t2,0x178($sp)
/* f06e898: 30580040 */ andi $t8,$v0,0x40
/* f06e89c: 13000004 */ beqz $t8,.NB0f06e8b0
/* f06e8a0: 30490080 */ andi $t1,$v0,0x80
/* f06e8a4: 8cd90048 */ lw $t9,0x48($a2)
/* f06e8a8: 10000004 */ beqz $zero,.NB0f06e8bc
/* f06e8ac: 8f250044 */ lw $a1,0x44($t9)
.NB0f06e8b0:
/* f06e8b0: 11200002 */ beqz $t1,.NB0f06e8bc
/* f06e8b4: 00000000 */ sll $zero,$zero,0x0
/* f06e8b8: 8cc50048 */ lw $a1,0x48($a2)
.NB0f06e8bc:
/* f06e8bc: 10a00030 */ beqz $a1,.NB0f06e980
/* f06e8c0: 24190002 */ addiu $t9,$zero,0x2
/* f06e8c4: 8d4b0018 */ lw $t3,0x18($t2)
/* f06e8c8: 01401825 */ or $v1,$t2,$zero
/* f06e8cc: 11600006 */ beqz $t3,.NB0f06e8e8
/* f06e8d0: 00000000 */ sll $zero,$zero,0x0
/* f06e8d4: 8d420018 */ lw $v0,0x18($t2)
/* f06e8d8: 00401825 */ or $v1,$v0,$zero
.NB0f06e8dc:
/* f06e8dc: 8c420018 */ lw $v0,0x18($v0)
/* f06e8e0: 5440fffe */ bnezl $v0,.NB0f06e8dc
/* f06e8e4: 00401825 */ or $v1,$v0,$zero
.NB0f06e8e8:
/* f06e8e8: 5060000d */ beqzl $v1,.NB0f06e920
/* f06e8ec: 8cad0000 */ lw $t5,0x0($a1)
/* f06e8f0: 90620000 */ lbu $v0,0x0($v1)
/* f06e8f4: 24010003 */ addiu $at,$zero,0x3
/* f06e8f8: 10410003 */ beq $v0,$at,.NB0f06e908
/* f06e8fc: 24010006 */ addiu $at,$zero,0x6
/* f06e900: 54410007 */ bnel $v0,$at,.NB0f06e920
/* f06e904: 8cad0000 */ lw $t5,0x0($a1)
.NB0f06e908:
/* f06e908: 8c620004 */ lw $v0,0x4($v1)
/* f06e90c: 8c4e0014 */ lw $t6,0x14($v0)
/* f06e910: 35cc0001 */ ori $t4,$t6,0x1
/* f06e914: 10000005 */ beqz $zero,.NB0f06e92c
/* f06e918: ac4c0014 */ sw $t4,0x14($v0)
/* f06e91c: 8cad0000 */ lw $t5,0x0($a1)
.NB0f06e920:
/* f06e920: aca00088 */ sw $zero,0x88($a1)
/* f06e924: 35af0001 */ ori $t7,$t5,0x1
/* f06e928: acaf0000 */ sw $t7,0x0($a1)
.NB0f06e92c:
/* f06e92c: a4e80062 */ sh $t0,0x62($a3)
/* f06e930: afa70170 */ sw $a3,0x170($sp)
/* f06e934: afa5015c */ sw $a1,0x15c($sp)
/* f06e938: 0fc19e45 */ jal objSetProjectileFlag4
/* f06e93c: 8fa40178 */ lw $a0,0x178($sp)
/* f06e940: 8fa5015c */ lw $a1,0x15c($sp)
/* f06e944: c7a40164 */ lwc1 $f4,0x164($sp)
/* f06e948: 24a40020 */ addiu $a0,$a1,0x20
/* f06e94c: e4a40004 */ swc1 $f4,0x4($a1)
/* f06e950: c7a60168 */ lwc1 $f6,0x168($sp)
/* f06e954: e4a60008 */ swc1 $f6,0x8($a1)
/* f06e958: c7a8016c */ lwc1 $f8,0x16c($sp)
/* f06e95c: 0c005a28 */ jal mtx4LoadIdentity
/* f06e960: e4a8000c */ swc1 $f8,0xc($a1)
/* f06e964: 8fa5015c */ lw $a1,0x15c($sp)
/* f06e968: 8fa70170 */ lw $a3,0x170($sp)
/* f06e96c: 3c18800a */ lui $t8,0x800a
/* f06e970: aca700d4 */ sw $a3,0xd4($a1)
/* f06e974: 8f18e6cc */ lw $t8,-0x1934($t8)
/* f06e978: 1000027e */ beqz $zero,.NB0f06f374
/* f06e97c: acb800d8 */ sw $t8,0xd8($a1)
.NB0f06e980:
/* f06e980: 1000027c */ beqz $zero,.NB0f06f374
/* f06e984: a4f90062 */ sh $t9,0x62($a3)
.NB0f06e988:
/* f06e988: 8d29e6f4 */ lw $t1,-0x190c($t1)
/* f06e98c: 00695023 */ subu $t2,$v1,$t1
/* f06e990: a4ea0062 */ sh $t2,0x62($a3)
/* f06e994: 84eb0062 */ lh $t3,0x62($a3)
/* f06e998: 8fa40178 */ lw $a0,0x178($sp)
/* f06e99c: 05630276 */ bgezl $t3,.NB0f06f378
/* f06e9a0: 8fae0174 */ lw $t6,0x174($sp)
/* f06e9a4: 0fc10c55 */ jal propUnsetDangerous
/* f06e9a8: afa70170 */ sw $a3,0x170($sp)
/* f06e9ac: 8fa70170 */ lw $a3,0x170($sp)
/* f06e9b0: 24010002 */ addiu $at,$zero,0x2
/* f06e9b4: 24050015 */ addiu $a1,$zero,0x15
/* f06e9b8: 90ee005f */ lbu $t6,0x5f($a3)
/* f06e9bc: 8fac0174 */ lw $t4,0x174($sp)
/* f06e9c0: 8fa40178 */ lw $a0,0x178($sp)
/* f06e9c4: 55c10007 */ bnel $t6,$at,.NB0f06e9e4
/* f06e9c8: 8d8d000c */ lw $t5,0xc($t4)
/* f06e9cc: 8fa40178 */ lw $a0,0x178($sp)
/* f06e9d0: 0fc1b95e */ jal propExplode
/* f06e9d4: afa70170 */ sw $a3,0x170($sp)
/* f06e9d8: 1000000b */ beqz $zero,.NB0f06ea08
/* f06e9dc: 8fa70170 */ lw $a3,0x170($sp)
/* f06e9e0: 8d8d000c */ lw $t5,0xc($t4)
.NB0f06e9e4:
/* f06e9e4: 2405000d */ addiu $a1,$zero,0xd
/* f06e9e8: 000d7800 */ sll $t7,$t5,0x0
/* f06e9ec: 05e10003 */ bgez $t7,.NB0f06e9fc
/* f06e9f0: 00000000 */ sll $zero,$zero,0x0
/* f06e9f4: 10000001 */ beqz $zero,.NB0f06e9fc
/* f06e9f8: 24050011 */ addiu $a1,$zero,0x11
.NB0f06e9fc:
/* f06e9fc: 0fc1b95e */ jal propExplode
/* f06ea00: afa70170 */ sw $a3,0x170($sp)
/* f06ea04: 8fa70170 */ lw $a3,0x170($sp)
.NB0f06ea08:
/* f06ea08: 8fa20174 */ lw $v0,0x174($sp)
/* f06ea0c: 3c03800a */ lui $v1,0x800a
/* f06ea10: 8c580040 */ lw $t8,0x40($v0)
/* f06ea14: 37190004 */ ori $t9,$t8,0x4
/* f06ea18: ac590040 */ sw $t9,0x40($v0)
/* f06ea1c: 8c63e944 */ lw $v1,-0x16bc($v1)
/* f06ea20: 8c690264 */ lw $t1,0x264($v1)
/* f06ea24: 54490254 */ bnel $v0,$t1,.NB0f06f378
/* f06ea28: 8fae0174 */ lw $t6,0x174($sp)
/* f06ea2c: 10000251 */ beqz $zero,.NB0f06f374
/* f06ea30: ac600264 */ sw $zero,0x264($v1)
/* f06ea34: 2405001f */ addiu $a1,$zero,0x1f
.NB0f06ea38:
/* f06ea38: 14a20030 */ bne $a1,$v0,.NB0f06eafc
/* f06ea3c: 24010052 */ addiu $at,$zero,0x52
/* f06ea40: 90ea005f */ lbu $t2,0x5f($a3)
/* f06ea44: 1540002d */ bnez $t2,.NB0f06eafc
/* f06ea48: 00000000 */ sll $zero,$zero,0x0
/* f06ea4c: 84e30062 */ lh $v1,0x62($a3)
/* f06ea50: 3c0b800a */ lui $t3,0x800a
/* f06ea54: 04620248 */ bltzl $v1,.NB0f06f378
/* f06ea58: 8fae0174 */ lw $t6,0x174($sp)
/* f06ea5c: 8d6be6f4 */ lw $t3,-0x190c($t3)
/* f06ea60: 3c01f000 */ lui $at,0xf000
/* f06ea64: 3c19800a */ lui $t9,0x800a
/* f06ea68: 006b7023 */ subu $t6,$v1,$t3
/* f06ea6c: a4ee0062 */ sh $t6,0x62($a3)
/* f06ea70: 84ec0062 */ lh $t4,0x62($a3)
/* f06ea74: 8fad0174 */ lw $t5,0x174($sp)
/* f06ea78: 0583023f */ bgezl $t4,.NB0f06f378
/* f06ea7c: 8fae0174 */ lw $t6,0x174($sp)
/* f06ea80: 8da40040 */ lw $a0,0x40($t5)
/* f06ea84: 8f39e9d8 */ lw $t9,-0x1628($t9)
/* f06ea88: 00002825 */ or $a1,$zero,$zero
/* f06ea8c: 00817824 */ and $t7,$a0,$at
/* f06ea90: 13200008 */ beqz $t9,.NB0f06eab4
/* f06ea94: 000f2702 */ srl $a0,$t7,0x1c
/* f06ea98: afa00158 */ sw $zero,0x158($sp)
/* f06ea9c: 0fc61c91 */ jal mpGetChrFromPlayerIndex
/* f06eaa0: afa70170 */ sw $a3,0x170($sp)
/* f06eaa4: 8fa50158 */ lw $a1,0x158($sp)
/* f06eaa8: 10400002 */ beqz $v0,.NB0f06eab4
/* f06eaac: 8fa70170 */ lw $a3,0x170($sp)
/* f06eab0: 8c45001c */ lw $a1,0x1c($v0)
.NB0f06eab4:
/* f06eab4: 8fa60178 */ lw $a2,0x178($sp)
/* f06eab8: afa70170 */ sw $a3,0x170($sp)
/* f06eabc: 0fc027b2 */ jal nbombCreateStorm
/* f06eac0: 24c40008 */ addiu $a0,$a2,0x8
/* f06eac4: 0fc10c55 */ jal propUnsetDangerous
/* f06eac8: 8fa40178 */ lw $a0,0x178($sp)
/* f06eacc: 8fa20174 */ lw $v0,0x174($sp)
/* f06ead0: 8fa70170 */ lw $a3,0x170($sp)
/* f06ead4: 3c03800a */ lui $v1,0x800a
/* f06ead8: 8c4a0040 */ lw $t2,0x40($v0)
/* f06eadc: 354b0004 */ ori $t3,$t2,0x4
/* f06eae0: ac4b0040 */ sw $t3,0x40($v0)
/* f06eae4: 8c63e944 */ lw $v1,-0x16bc($v1)
/* f06eae8: 8c6e0264 */ lw $t6,0x264($v1)
/* f06eaec: 544e0222 */ bnel $v0,$t6,.NB0f06f378
/* f06eaf0: 8fae0174 */ lw $t6,0x174($sp)
/* f06eaf4: 1000021f */ beqz $zero,.NB0f06f374
/* f06eaf8: ac600264 */ sw $zero,0x264($v1)
.NB0f06eafc:
/* f06eafc: 10410005 */ beq $v0,$at,.NB0f06eb14
/* f06eb00: 24010053 */ addiu $at,$zero,0x53
/* f06eb04: 10410003 */ beq $v0,$at,.NB0f06eb14
/* f06eb08: 24010057 */ addiu $at,$zero,0x57
/* f06eb0c: 5441001c */ bnel $v0,$at,.NB0f06eb80
/* f06eb10: 24010020 */ addiu $at,$zero,0x20
.NB0f06eb14:
/* f06eb14: 84ec0062 */ lh $t4,0x62($a3)
/* f06eb18: 8fad0174 */ lw $t5,0x174($sp)
/* f06eb1c: 8fa40178 */ lw $a0,0x178($sp)
/* f06eb20: 55800215 */ bnezl $t4,.NB0f06f378
/* f06eb24: 8fae0174 */ lw $t6,0x174($sp)
/* f06eb28: 8daf000c */ lw $t7,0xc($t5)
/* f06eb2c: 2405000d */ addiu $a1,$zero,0xd
/* f06eb30: 000fc000 */ sll $t8,$t7,0x0
/* f06eb34: 07010003 */ bgez $t8,.NB0f06eb44
/* f06eb38: 00000000 */ sll $zero,$zero,0x0
/* f06eb3c: 10000001 */ beqz $zero,.NB0f06eb44
/* f06eb40: 24050011 */ addiu $a1,$zero,0x11
.NB0f06eb44:
/* f06eb44: 0fc1b95e */ jal propExplode
/* f06eb48: afa70170 */ sw $a3,0x170($sp)
/* f06eb4c: 8fa40174 */ lw $a0,0x174($sp)
/* f06eb50: 8fa70170 */ lw $a3,0x170($sp)
/* f06eb54: 3c03800a */ lui $v1,0x800a
/* f06eb58: 8c990040 */ lw $t9,0x40($a0)
/* f06eb5c: 37290004 */ ori $t1,$t9,0x4
/* f06eb60: ac890040 */ sw $t1,0x40($a0)
/* f06eb64: 8c63e944 */ lw $v1,-0x16bc($v1)
/* f06eb68: 8c6a0264 */ lw $t2,0x264($v1)
/* f06eb6c: 548a0202 */ bnel $a0,$t2,.NB0f06f378
/* f06eb70: 8fae0174 */ lw $t6,0x174($sp)
/* f06eb74: 100001ff */ beqz $zero,.NB0f06f374
/* f06eb78: ac600264 */ sw $zero,0x264($v1)
/* f06eb7c: 24010020 */ addiu $at,$zero,0x20
.NB0f06eb80:
/* f06eb80: 54410023 */ bnel $v0,$at,.NB0f06ec10
/* f06eb84: 24010022 */ addiu $at,$zero,0x22
/* f06eb88: 84e30062 */ lh $v1,0x62($a3)
/* f06eb8c: 04620020 */ bltzl $v1,.NB0f06ec10
/* f06eb90: 24010022 */ addiu $at,$zero,0x22
/* f06eb94: 90eb005f */ lbu $t3,0x5f($a3)
/* f06eb98: 3c0e800a */ lui $t6,0x800a
/* f06eb9c: 556001f6 */ bnezl $t3,.NB0f06f378
/* f06eba0: 8fae0174 */ lw $t6,0x174($sp)
/* f06eba4: 8dcee6f4 */ lw $t6,-0x190c($t6)
/* f06eba8: 006e6023 */ subu $t4,$v1,$t6
/* f06ebac: a4ec0062 */ sh $t4,0x62($a3)
/* f06ebb0: 84ed0062 */ lh $t5,0x62($a3)
/* f06ebb4: 8fa40178 */ lw $a0,0x178($sp)
/* f06ebb8: 8faf0174 */ lw $t7,0x174($sp)
/* f06ebbc: 05a301ee */ bgezl $t5,.NB0f06f378
/* f06ebc0: 8fae0174 */ lw $t6,0x174($sp)
/* f06ebc4: 8df8000c */ lw $t8,0xc($t7)
/* f06ebc8: 2405000d */ addiu $a1,$zero,0xd
/* f06ebcc: 0018c800 */ sll $t9,$t8,0x0
/* f06ebd0: 07210003 */ bgez $t9,.NB0f06ebe0
/* f06ebd4: 00000000 */ sll $zero,$zero,0x0
/* f06ebd8: 10000001 */ beqz $zero,.NB0f06ebe0
/* f06ebdc: 24050011 */ addiu $a1,$zero,0x11
.NB0f06ebe0:
/* f06ebe0: 0fc1b95e */ jal propExplode
/* f06ebe4: afa70170 */ sw $a3,0x170($sp)
/* f06ebe8: 104001e2 */ beqz $v0,.NB0f06f374
/* f06ebec: 8fa70170 */ lw $a3,0x170($sp)
/* f06ebf0: 2409ffff */ addiu $t1,$zero,-1
/* f06ebf4: a4e90062 */ sh $t1,0x62($a3)
/* f06ebf8: 8faa0174 */ lw $t2,0x174($sp)
/* f06ebfc: 8d4b0040 */ lw $t3,0x40($t2)
/* f06ec00: 356e0004 */ ori $t6,$t3,0x4
/* f06ec04: 100001db */ beqz $zero,.NB0f06f374
/* f06ec08: ad4e0040 */ sw $t6,0x40($t2)
/* f06ec0c: 24010022 */ addiu $at,$zero,0x22
.NB0f06ec10:
/* f06ec10: 54410080 */ bnel $v0,$at,.NB0f06ee14
/* f06ec14: 24010021 */ addiu $at,$zero,0x21
/* f06ec18: 3c058007 */ lui $a1,0x8007
/* f06ec1c: 24a5c010 */ addiu $a1,$a1,-16368
/* f06ec20: 8cac0000 */ lw $t4,0x0($a1)
/* f06ec24: 8fad0174 */ lw $t5,0x174($sp)
/* f06ec28: 8fb90178 */ lw $t9,0x178($sp)
/* f06ec2c: 51800056 */ beqzl $t4,.NB0f06ed88
/* f06ec30: 84e30062 */ lh $v1,0x62($a3)
/* f06ec34: 8da30040 */ lw $v1,0x40($t5)
/* f06ec38: 8f220018 */ lw $v0,0x18($t9)
/* f06ec3c: 3c01f000 */ lui $at,0xf000
/* f06ec40: 00617824 */ and $t7,$v1,$at
/* f06ec44: 10400003 */ beqz $v0,.NB0f06ec54
/* f06ec48: 000f1f02 */ srl $v1,$t7,0x1c
/* f06ec4c: 10000002 */ beqz $zero,.NB0f06ec58
/* f06ec50: 8c440004 */ lw $a0,0x4($v0)
.NB0f06ec54:
/* f06ec54: 00002025 */ or $a0,$zero,$zero
.NB0f06ec58:
/* f06ec58: 1040000b */ beqz $v0,.NB0f06ec88
/* f06ec5c: 00000000 */ sll $zero,$zero,0x0
/* f06ec60: 10800009 */ beqz $a0,.NB0f06ec88
/* f06ec64: 00000000 */ sll $zero,$zero,0x0
/* f06ec68: afa3014c */ sw $v1,0x14c($sp)
/* f06ec6c: 0fc61c7f */ jal mpPlayerGetIndex
/* f06ec70: afa70170 */ sw $a3,0x170($sp)
/* f06ec74: 8fa3014c */ lw $v1,0x14c($sp)
/* f06ec78: 3c058007 */ lui $a1,0x8007
/* f06ec7c: 24a5c010 */ addiu $a1,$a1,-16368
/* f06ec80: 10430040 */ beq $v0,$v1,.NB0f06ed84
/* f06ec84: 8fa70170 */ lw $a3,0x170($sp)
.NB0f06ec88:
/* f06ec88: 3c09800a */ lui $t1,0x800a
/* f06ec8c: 8d29e958 */ lw $t1,-0x16a8($t1)
/* f06ec90: 3c0b800a */ lui $t3,0x800a
/* f06ec94: 24010002 */ addiu $at,$zero,0x2
/* f06ec98: 05210004 */ bgez $t1,.NB0f06ecac
/* f06ec9c: 00000000 */ sll $zero,$zero,0x0
/* f06eca0: 8d6be95c */ lw $t3,-0x16a4($t3)
/* f06eca4: 05620031 */ bltzl $t3,.NB0f06ed6c
/* f06eca8: 8cad0000 */ lw $t5,0x0($a1)
.NB0f06ecac:
/* f06ecac: 14610026 */ bne $v1,$at,.NB0f06ed48
/* f06ecb0: 3c02800a */ lui $v0,0x800a
/* f06ecb4: 8c42e964 */ lw $v0,-0x169c($v0)
/* f06ecb8: 00001825 */ or $v1,$zero,$zero
/* f06ecbc: 1040000b */ beqz $v0,.NB0f06ecec
/* f06ecc0: 00000000 */ sll $zero,$zero,0x0
/* f06ecc4: 8c4400bc */ lw $a0,0xbc($v0)
/* f06ecc8: 10800008 */ beqz $a0,.NB0f06ecec
/* f06eccc: 00000000 */ sll $zero,$zero,0x0
/* f06ecd0: 0fc48d6f */ jal playermgrGetPlayerNumByProp
/* f06ecd4: afa70170 */ sw $a3,0x170($sp)
/* f06ecd8: 3c058007 */ lui $a1,0x8007
/* f06ecdc: 240e0001 */ addiu $t6,$zero,0x1
/* f06ece0: 004e1804 */ sllv $v1,$t6,$v0
/* f06ece4: 24a5c010 */ addiu $a1,$a1,-16368
/* f06ece8: 8fa70170 */ lw $a3,0x170($sp)
.NB0f06ecec:
/* f06ecec: 3c02800a */ lui $v0,0x800a
/* f06ecf0: 8c42e960 */ lw $v0,-0x16a0($v0)
/* f06ecf4: 5040000f */ beqzl $v0,.NB0f06ed34
/* f06ecf8: 8cad0000 */ lw $t5,0x0($a1)
/* f06ecfc: 8c4400bc */ lw $a0,0xbc($v0)
/* f06ed00: 5080000c */ beqzl $a0,.NB0f06ed34
/* f06ed04: 8cad0000 */ lw $t5,0x0($a1)
/* f06ed08: afa30144 */ sw $v1,0x144($sp)
/* f06ed0c: 0fc48d6f */ jal playermgrGetPlayerNumByProp
/* f06ed10: afa70170 */ sw $a3,0x170($sp)
/* f06ed14: 8fa30144 */ lw $v1,0x144($sp)
/* f06ed18: 240a0001 */ addiu $t2,$zero,0x1
/* f06ed1c: 004a6004 */ sllv $t4,$t2,$v0
/* f06ed20: 3c058007 */ lui $a1,0x8007
/* f06ed24: 24a5c010 */ addiu $a1,$a1,-16368
/* f06ed28: 8fa70170 */ lw $a3,0x170($sp)
/* f06ed2c: 006c1825 */ or $v1,$v1,$t4
/* f06ed30: 8cad0000 */ lw $t5,0x0($a1)
.NB0f06ed34:
/* f06ed34: 01a37824 */ and $t7,$t5,$v1
/* f06ed38: 11e00012 */ beqz $t7,.NB0f06ed84
/* f06ed3c: acaf0000 */ sw $t7,0x0($a1)
/* f06ed40: 10000010 */ beqz $zero,.NB0f06ed84
/* f06ed44: a4e00062 */ sh $zero,0x62($a3)
.NB0f06ed48:
/* f06ed48: 8cab0000 */ lw $t3,0x0($a1)
/* f06ed4c: 24190001 */ addiu $t9,$zero,0x1
/* f06ed50: 00794804 */ sllv $t1,$t9,$v1
/* f06ed54: 012b7024 */ and $t6,$t1,$t3
/* f06ed58: 51c0000b */ beqzl $t6,.NB0f06ed88
/* f06ed5c: 84e30062 */ lh $v1,0x62($a3)
/* f06ed60: 10000008 */ beqz $zero,.NB0f06ed84
/* f06ed64: a4e00062 */ sh $zero,0x62($a3)
/* f06ed68: 8cad0000 */ lw $t5,0x0($a1)
.NB0f06ed6c:
/* f06ed6c: 240a0001 */ addiu $t2,$zero,0x1
/* f06ed70: 006a6004 */ sllv $t4,$t2,$v1
/* f06ed74: 018d7824 */ and $t7,$t4,$t5
/* f06ed78: 51e00003 */ beqzl $t7,.NB0f06ed88
/* f06ed7c: 84e30062 */ lh $v1,0x62($a3)
/* f06ed80: a4e00062 */ sh $zero,0x62($a3)
.NB0f06ed84:
/* f06ed84: 84e30062 */ lh $v1,0x62($a3)
.NB0f06ed88:
/* f06ed88: 3c18800a */ lui $t8,0x800a
/* f06ed8c: 28610002 */ slti $at,$v1,0x2
/* f06ed90: 1420000b */ bnez $at,.NB0f06edc0
/* f06ed94: 00000000 */ sll $zero,$zero,0x0
/* f06ed98: 8f18e6f4 */ lw $t8,-0x190c($t8)
/* f06ed9c: 24080001 */ addiu $t0,$zero,0x1
/* f06eda0: 0078c823 */ subu $t9,$v1,$t8
/* f06eda4: a4f90062 */ sh $t9,0x62($a3)
/* f06eda8: 84e90062 */ lh $t1,0x62($a3)
/* f06edac: 29210002 */ slti $at,$t1,0x2
/* f06edb0: 50200171 */ beqzl $at,.NB0f06f378
/* f06edb4: 8fae0174 */ lw $t6,0x174($sp)
/* f06edb8: 1000016e */ beqz $zero,.NB0f06f374
/* f06edbc: a4e80062 */ sh $t0,0x62($a3)
.NB0f06edc0:
/* f06edc0: 1460016c */ bnez $v1,.NB0f06f374
/* f06edc4: 8fab0174 */ lw $t3,0x174($sp)
/* f06edc8: 8d6e000c */ lw $t6,0xc($t3)
/* f06edcc: 2405000d */ addiu $a1,$zero,0xd
/* f06edd0: 8fa40178 */ lw $a0,0x178($sp)
/* f06edd4: 000e5000 */ sll $t2,$t6,0x0
/* f06edd8: 05410002 */ bgez $t2,.NB0f06ede4
/* f06eddc: 00000000 */ sll $zero,$zero,0x0
/* f06ede0: 24050011 */ addiu $a1,$zero,0x11
.NB0f06ede4:
/* f06ede4: 0fc1b95e */ jal propExplode
/* f06ede8: afa70170 */ sw $a3,0x170($sp)
/* f06edec: 10400161 */ beqz $v0,.NB0f06f374
/* f06edf0: 8fa70170 */ lw $a3,0x170($sp)
/* f06edf4: 240cffff */ addiu $t4,$zero,-1
/* f06edf8: a4ec0062 */ sh $t4,0x62($a3)
/* f06edfc: 8fad0174 */ lw $t5,0x174($sp)
/* f06ee00: 8daf0040 */ lw $t7,0x40($t5)
/* f06ee04: 35f80004 */ ori $t8,$t7,0x4
/* f06ee08: 1000015a */ beqz $zero,.NB0f06f374
/* f06ee0c: adb80040 */ sw $t8,0x40($t5)
/* f06ee10: 24010021 */ addiu $at,$zero,0x21
.NB0f06ee14:
/* f06ee14: 10410011 */ beq $v0,$at,.NB0f06ee5c
/* f06ee18: 2401000f */ addiu $at,$zero,0xf
/* f06ee1c: 14410005 */ bne $v0,$at,.NB0f06ee34
/* f06ee20: 00000000 */ sll $zero,$zero,0x0
/* f06ee24: 90f9005f */ lbu $t9,0x5f($a3)
/* f06ee28: 24080001 */ addiu $t0,$zero,0x1
/* f06ee2c: 5119000c */ beql $t0,$t9,.NB0f06ee60
/* f06ee30: 84e30062 */ lh $v1,0x62($a3)
.NB0f06ee34:
/* f06ee34: 14c20004 */ bne $a2,$v0,.NB0f06ee48
/* f06ee38: 24080001 */ addiu $t0,$zero,0x1
/* f06ee3c: 90e9005f */ lbu $t1,0x5f($a3)
/* f06ee40: 51090007 */ beql $t0,$t1,.NB0f06ee60
/* f06ee44: 84e30062 */ lh $v1,0x62($a3)
.NB0f06ee48:
/* f06ee48: 14a20073 */ bne $a1,$v0,.NB0f06f018
/* f06ee4c: 24010055 */ addiu $at,$zero,0x55
/* f06ee50: 90eb005f */ lbu $t3,0x5f($a3)
/* f06ee54: 150b0070 */ bne $t0,$t3,.NB0f06f018
/* f06ee58: 00000000 */ sll $zero,$zero,0x0
.NB0f06ee5c:
/* f06ee5c: 84e30062 */ lh $v1,0x62($a3)
.NB0f06ee60:
/* f06ee60: 24080001 */ addiu $t0,$zero,0x1
/* f06ee64: 3c0e800a */ lui $t6,0x800a
/* f06ee68: 28610002 */ slti $at,$v1,0x2
/* f06ee6c: 14200010 */ bnez $at,.NB0f06eeb0
/* f06ee70: 00000000 */ sll $zero,$zero,0x0
/* f06ee74: 8dcee6f4 */ lw $t6,-0x190c($t6)
/* f06ee78: 00e02025 */ or $a0,$a3,$zero
/* f06ee7c: 006e5023 */ subu $t2,$v1,$t6
/* f06ee80: a4ea0062 */ sh $t2,0x62($a3)
/* f06ee84: 84e30062 */ lh $v1,0x62($a3)
/* f06ee88: 28610002 */ slti $at,$v1,0x2
/* f06ee8c: 10200024 */ beqz $at,.NB0f06ef20
/* f06ee90: 00000000 */ sll $zero,$zero,0x0
/* f06ee94: a4e80062 */ sh $t0,0x62($a3)
/* f06ee98: 0fc224eb */ jal weaponRegisterProxy
/* f06ee9c: afa70170 */ sw $a3,0x170($sp)
/* f06eea0: 8fa70170 */ lw $a3,0x170($sp)
/* f06eea4: 2405001f */ addiu $a1,$zero,0x1f
/* f06eea8: 1000001d */ beqz $zero,.NB0f06ef20
/* f06eeac: 84e30062 */ lh $v1,0x62($a3)
.NB0f06eeb0:
/* f06eeb0: 1503001b */ bne $t0,$v1,.NB0f06ef20
/* f06eeb4: 3c0c800a */ lui $t4,0x800a
/* f06eeb8: 8d8ce944 */ lw $t4,-0x16bc($t4)
/* f06eebc: 8faf0178 */ lw $t7,0x178($sp)
/* f06eec0: 3c017f1a */ lui $at,0x7f1a
/* f06eec4: 8d8200bc */ lw $v0,0xbc($t4)
/* f06eec8: c5e40008 */ lwc1 $f4,0x8($t7)
/* f06eecc: c5e8000c */ lwc1 $f8,0xc($t7)
/* f06eed0: c44a0008 */ lwc1 $f10,0x8($v0)
/* f06eed4: c446000c */ lwc1 $f6,0xc($v0)
/* f06eed8: 24420008 */ addiu $v0,$v0,0x8
/* f06eedc: 46045001 */ sub.s $f0,$f10,$f4
/* f06eee0: c5e40010 */ lwc1 $f4,0x10($t7)
/* f06eee4: c44a0008 */ lwc1 $f10,0x8($v0)
/* f06eee8: 46083081 */ sub.s $f2,$f6,$f8
/* f06eeec: 46000182 */ mul.s $f6,$f0,$f0
/* f06eef0: 46045301 */ sub.s $f12,$f10,$f4
/* f06eef4: 46021202 */ mul.s $f8,$f2,$f2
/* f06eef8: 46083280 */ add.s $f10,$f6,$f8
/* f06eefc: 460c6102 */ mul.s $f4,$f12,$f12
/* f06ef00: c42845e0 */ lwc1 $f8,0x45e0($at)
/* f06ef04: 46045180 */ add.s $f6,$f10,$f4
/* f06ef08: 4608303c */ c.lt.s $f6,$f8
/* f06ef0c: 00000000 */ sll $zero,$zero,0x0
/* f06ef10: 45000003 */ bc1f .NB0f06ef20
/* f06ef14: 00000000 */ sll $zero,$zero,0x0
/* f06ef18: a4e00062 */ sh $zero,0x62($a3)
/* f06ef1c: 84e30062 */ lh $v1,0x62($a3)
.NB0f06ef20:
/* f06ef20: 54600115 */ bnezl $v1,.NB0f06f378
/* f06ef24: 8fae0174 */ lw $t6,0x174($sp)
/* f06ef28: 90e2005c */ lbu $v0,0x5c($a3)
/* f06ef2c: 8fb80174 */ lw $t8,0x174($sp)
/* f06ef30: 2401000f */ addiu $at,$zero,0xf
/* f06ef34: 14a20023 */ bne $a1,$v0,.NB0f06efc4
/* f06ef38: 8fa40178 */ lw $a0,0x178($sp)
/* f06ef3c: 8fb80174 */ lw $t8,0x174($sp)
/* f06ef40: 3c09800a */ lui $t1,0x800a
/* f06ef44: 8d29e9d8 */ lw $t1,-0x1628($t1)
/* f06ef48: 8f040040 */ lw $a0,0x40($t8)
/* f06ef4c: 3c01f000 */ lui $at,0xf000
/* f06ef50: 00002825 */ or $a1,$zero,$zero
/* f06ef54: 00816824 */ and $t5,$a0,$at
/* f06ef58: 11200008 */ beqz $t1,.NB0f06ef7c
/* f06ef5c: 000d2702 */ srl $a0,$t5,0x1c
/* f06ef60: afa00128 */ sw $zero,0x128($sp)
/* f06ef64: 0fc61c91 */ jal mpGetChrFromPlayerIndex
/* f06ef68: afa70170 */ sw $a3,0x170($sp)
/* f06ef6c: 8fa50128 */ lw $a1,0x128($sp)
/* f06ef70: 10400002 */ beqz $v0,.NB0f06ef7c
/* f06ef74: 8fa70170 */ lw $a3,0x170($sp)
/* f06ef78: 8c45001c */ lw $a1,0x1c($v0)
.NB0f06ef7c:
/* f06ef7c: 8fa60178 */ lw $a2,0x178($sp)
/* f06ef80: afa70170 */ sw $a3,0x170($sp)
/* f06ef84: 0fc027b2 */ jal nbombCreateStorm
/* f06ef88: 24c40008 */ addiu $a0,$a2,0x8
/* f06ef8c: 0fc10c55 */ jal propUnsetDangerous
/* f06ef90: 8fa40178 */ lw $a0,0x178($sp)
/* f06ef94: 8fae0174 */ lw $t6,0x174($sp)
/* f06ef98: 8fa70170 */ lw $a3,0x170($sp)
/* f06ef9c: 3c03800a */ lui $v1,0x800a
/* f06efa0: 8dca0040 */ lw $t2,0x40($t6)
/* f06efa4: 354c0004 */ ori $t4,$t2,0x4
/* f06efa8: adcc0040 */ sw $t4,0x40($t6)
/* f06efac: 8c63e944 */ lw $v1,-0x16bc($v1)
/* f06efb0: 8c6f0264 */ lw $t7,0x264($v1)
/* f06efb4: 55cf00f0 */ bnel $t6,$t7,.NB0f06f378
/* f06efb8: 8fae0174 */ lw $t6,0x174($sp)
/* f06efbc: 100000ed */ beqz $zero,.NB0f06f374
/* f06efc0: ac600264 */ sw $zero,0x264($v1)
.NB0f06efc4:
/* f06efc4: 8f0d000c */ lw $t5,0xc($t8)
/* f06efc8: 2405000d */ addiu $a1,$zero,0xd
/* f06efcc: 000dc800 */ sll $t9,$t5,0x0
/* f06efd0: 07210003 */ bgez $t9,.NB0f06efe0
/* f06efd4: 00000000 */ sll $zero,$zero,0x0
/* f06efd8: 10000001 */ beqz $zero,.NB0f06efe0
/* f06efdc: 24050011 */ addiu $a1,$zero,0x11
.NB0f06efe0:
/* f06efe0: 14410002 */ bne $v0,$at,.NB0f06efec
/* f06efe4: 00000000 */ sll $zero,$zero,0x0
/* f06efe8: 24050017 */ addiu $a1,$zero,0x17
.NB0f06efec:
/* f06efec: 0fc1b95e */ jal propExplode
/* f06eff0: afa70170 */ sw $a3,0x170($sp)
/* f06eff4: 104000df */ beqz $v0,.NB0f06f374
/* f06eff8: 8fa70170 */ lw $a3,0x170($sp)
/* f06effc: 2409ffff */ addiu $t1,$zero,-1
/* f06f000: a4e90062 */ sh $t1,0x62($a3)
/* f06f004: 8fab0174 */ lw $t3,0x174($sp)
/* f06f008: 8d6a0040 */ lw $t2,0x40($t3)
/* f06f00c: 354c0004 */ ori $t4,$t2,0x4
/* f06f010: 100000d8 */ beqz $zero,.NB0f06f374
/* f06f014: ad6c0040 */ sw $t4,0x40($t3)
.NB0f06f018:
/* f06f018: 544100d7 */ bnel $v0,$at,.NB0f06f378
/* f06f01c: 8fae0174 */ lw $t6,0x174($sp)
/* f06f020: 84e30062 */ lh $v1,0x62($a3)
/* f06f024: 8fae0174 */ lw $t6,0x174($sp)
/* f06f028: 28610002 */ slti $at,$v1,0x2
/* f06f02c: 142000a2 */ bnez $at,.NB0f06f2b8
/* f06f030: 00000000 */ sll $zero,$zero,0x0
/* f06f034: 8dc40018 */ lw $a0,0x18($t6)
/* f06f038: 0fc19f4a */ jal modelFindBboxRodata
/* f06f03c: afa70170 */ sw $a3,0x170($sp)
/* f06f040: 8fa70170 */ lw $a3,0x170($sp)
/* f06f044: 3c014140 */ lui $at,0x4140
/* f06f048: 44811000 */ mtc1 $at,$f2
/* f06f04c: 84e30062 */ lh $v1,0x62($a3)
/* f06f050: 3c017f1a */ lui $at,0x7f1a
/* f06f054: c42e45e4 */ lwc1 $f14,0x45e4($at)
/* f06f058: 2463ffff */ addiu $v1,$v1,-1
/* f06f05c: 44835000 */ mtc1 $v1,$f10
/* f06f060: 2861000c */ slti $at,$v1,0xc
/* f06f064: 24080001 */ addiu $t0,$zero,0x1
/* f06f068: 46805120 */ cvt.s.w $f4,$f10
/* f06f06c: 00403025 */ or $a2,$v0,$zero
/* f06f070: 246f0001 */ addiu $t7,$v1,0x1
/* f06f074: 30780001 */ andi $t8,$v1,0x1
/* f06f078: 27a50090 */ addiu $a1,$sp,0x90
/* f06f07c: 46022183 */ div.s $f6,$f4,$f2
/* f06f080: 460e3002 */ mul.s $f0,$f6,$f14
/* f06f084: 10200007 */ beqz $at,.NB0f06f0a4
/* f06f088: 46000306 */ mov.s $f12,$f0
/* f06f08c: 448f4000 */ mtc1 $t7,$f8
/* f06f090: 00000000 */ sll $zero,$zero,0x0
/* f06f094: 468042a0 */ cvt.s.w $f10,$f8
/* f06f098: 46025103 */ div.s $f4,$f10,$f2
/* f06f09c: 46047182 */ mul.s $f6,$f14,$f4
/* f06f0a0: 46060300 */ add.s $f12,$f0,$f6
.NB0f06f0a4:
/* f06f0a4: 55180003 */ bnel $t0,$t8,.NB0f06f0b4
/* f06f0a8: afa60118 */ sw $a2,0x118($sp)
/* f06f0ac: 46006307 */ neg.s $f12,$f12
/* f06f0b0: afa60118 */ sw $a2,0x118($sp)
.NB0f06f0b4:
/* f06f0b4: 0c005cc1 */ jal mtx4LoadYRotation
/* f06f0b8: afa70170 */ sw $a3,0x170($sp)
/* f06f0bc: 8fad0174 */ lw $t5,0x174($sp)
/* f06f0c0: 8fa60118 */ lw $a2,0x118($sp)
/* f06f0c4: 8fa70170 */ lw $a3,0x170($sp)
/* f06f0c8: 8da30048 */ lw $v1,0x48($t5)
/* f06f0cc: 8fb90178 */ lw $t9,0x178($sp)
/* f06f0d0: 50600042 */ beqzl $v1,.NB0f06f1dc
/* f06f0d4: 44808000 */ mtc1 $zero,$f16
/* f06f0d8: 8f220018 */ lw $v0,0x18($t9)
/* f06f0dc: 50400073 */ beqzl $v0,.NB0f06f2ac
/* f06f0e0: 84f80062 */ lh $t8,0x62($a3)
/* f06f0e4: 90490000 */ lbu $t1,0x0($v0)
/* f06f0e8: 24010003 */ addiu $at,$zero,0x3
/* f06f0ec: 24640004 */ addiu $a0,$v1,0x4
/* f06f0f0: 1121006d */ beq $t1,$at,.NB0f06f2a8
/* f06f0f4: 27a500d0 */ addiu $a1,$sp,0xd0
/* f06f0f8: afa60118 */ sw $a2,0x118($sp)
/* f06f0fc: 0c005b02 */ jal mtx4Copy
/* f06f100: afa70170 */ sw $a3,0x170($sp)
/* f06f104: 44800000 */ mtc1 $zero,$f0
/* f06f108: 8fa40118 */ lw $a0,0x118($sp)
/* f06f10c: e7a00104 */ swc1 $f0,0x104($sp)
/* f06f110: e7a00100 */ swc1 $f0,0x100($sp)
/* f06f114: e7a000ec */ swc1 $f0,0xec($sp)
/* f06f118: e7a000dc */ swc1 $f0,0xdc($sp)
/* f06f11c: e7a00048 */ swc1 $f0,0x48($sp)
/* f06f120: e7a00038 */ swc1 $f0,0x38($sp)
/* f06f124: e7a00044 */ swc1 $f0,0x44($sp)
/* f06f128: e7a00108 */ swc1 $f0,0x108($sp)
/* f06f12c: e7a000fc */ swc1 $f0,0xfc($sp)
/* f06f130: 0fc19695 */ jal modelBboxGetZMax
/* f06f134: e7a0003c */ swc1 $f0,0x3c($sp)
/* f06f138: e7a00040 */ swc1 $f0,0x40($sp)
/* f06f13c: e7a0004c */ swc1 $f0,0x4c($sp)
/* f06f140: 27a400d0 */ addiu $a0,$sp,0xd0
/* f06f144: 27a50090 */ addiu $a1,$sp,0x90
/* f06f148: 0c005a3c */ jal mtx4MultMtx4
/* f06f14c: 27a60050 */ addiu $a2,$sp,0x50
/* f06f150: 27a400d0 */ addiu $a0,$sp,0xd0
/* f06f154: 0c005a80 */ jal mtx4RotateVecInPlace
/* f06f158: 27a50044 */ addiu $a1,$sp,0x44
/* f06f15c: 27a40050 */ addiu $a0,$sp,0x50
/* f06f160: 0c005a80 */ jal mtx4RotateVecInPlace
/* f06f164: 27a50038 */ addiu $a1,$sp,0x38
/* f06f168: 8faa0174 */ lw $t2,0x174($sp)
/* f06f16c: c7a80038 */ lwc1 $f8,0x38($sp)
/* f06f170: c7aa0044 */ lwc1 $f10,0x44($sp)
/* f06f174: 8d4c0048 */ lw $t4,0x48($t2)
/* f06f178: 27a40050 */ addiu $a0,$sp,0x50
/* f06f17c: 460a4101 */ sub.s $f4,$f8,$f10
/* f06f180: c5860034 */ lwc1 $f6,0x34($t4)
/* f06f184: c7aa003c */ lwc1 $f10,0x3c($sp)
/* f06f188: 46043201 */ sub.s $f8,$f6,$f4
/* f06f18c: c7a60048 */ lwc1 $f6,0x48($sp)
/* f06f190: e7a80080 */ swc1 $f8,0x80($sp)
/* f06f194: 8d4b0048 */ lw $t3,0x48($t2)
/* f06f198: 46065101 */ sub.s $f4,$f10,$f6
/* f06f19c: c7a60040 */ lwc1 $f6,0x40($sp)
/* f06f1a0: c5680038 */ lwc1 $f8,0x38($t3)
/* f06f1a4: 46044281 */ sub.s $f10,$f8,$f4
/* f06f1a8: c7a8004c */ lwc1 $f8,0x4c($sp)
/* f06f1ac: e7aa0084 */ swc1 $f10,0x84($sp)
/* f06f1b0: 8d4e0048 */ lw $t6,0x48($t2)
/* f06f1b4: 46083101 */ sub.s $f4,$f6,$f8
/* f06f1b8: c5ca003c */ lwc1 $f10,0x3c($t6)
/* f06f1bc: 46045181 */ sub.s $f6,$f10,$f4
/* f06f1c0: e7a60088 */ swc1 $f6,0x88($sp)
/* f06f1c4: 8d450048 */ lw $a1,0x48($t2)
/* f06f1c8: 0c005b02 */ jal mtx4Copy
/* f06f1cc: 24a50004 */ addiu $a1,$a1,0x4
/* f06f1d0: 10000035 */ beqz $zero,.NB0f06f2a8
/* f06f1d4: 8fa70170 */ lw $a3,0x170($sp)
/* f06f1d8: 44808000 */ mtc1 $zero,$f16
.NB0f06f1dc:
/* f06f1dc: 00c02025 */ or $a0,$a2,$zero
/* f06f1e0: afa70170 */ sw $a3,0x170($sp)
/* f06f1e4: e7b00048 */ swc1 $f16,0x48($sp)
/* f06f1e8: e7b00038 */ swc1 $f16,0x38($sp)
/* f06f1ec: e7b00044 */ swc1 $f16,0x44($sp)
/* f06f1f0: 0fc19695 */ jal modelBboxGetZMax
/* f06f1f4: e7b0003c */ swc1 $f16,0x3c($sp)
/* f06f1f8: 8fa40174 */ lw $a0,0x174($sp)
/* f06f1fc: e7a00040 */ swc1 $f0,0x40($sp)
/* f06f200: e7a0004c */ swc1 $f0,0x4c($sp)
/* f06f204: 2484001c */ addiu $a0,$a0,0x1c
/* f06f208: afa40020 */ sw $a0,0x20($sp)
/* f06f20c: 0c005b11 */ jal mtx3ToMtx4
/* f06f210: 27a500d0 */ addiu $a1,$sp,0xd0
/* f06f214: 27a400d0 */ addiu $a0,$sp,0xd0
/* f06f218: 27a50090 */ addiu $a1,$sp,0x90
/* f06f21c: 0c005a3c */ jal mtx4MultMtx4
/* f06f220: 27a60050 */ addiu $a2,$sp,0x50
/* f06f224: 27a40050 */ addiu $a0,$sp,0x50
/* f06f228: 0c005b24 */ jal mtx4ToMtx3
/* f06f22c: 8fa50020 */ lw $a1,0x20($sp)
/* f06f230: 27a400d0 */ addiu $a0,$sp,0xd0
/* f06f234: 0c005a80 */ jal mtx4RotateVecInPlace
/* f06f238: 27a50044 */ addiu $a1,$sp,0x44
/* f06f23c: 27a40050 */ addiu $a0,$sp,0x50
/* f06f240: 0c005a80 */ jal mtx4RotateVecInPlace
/* f06f244: 27a50038 */ addiu $a1,$sp,0x38
/* f06f248: c7a80038 */ lwc1 $f8,0x38($sp)
/* f06f24c: c7aa0044 */ lwc1 $f10,0x44($sp)
/* f06f250: 8faf0178 */ lw $t7,0x178($sp)
/* f06f254: 00002825 */ or $a1,$zero,$zero
/* f06f258: 460a4101 */ sub.s $f4,$f8,$f10
/* f06f25c: c5e60008 */ lwc1 $f6,0x8($t7)
/* f06f260: 24060001 */ addiu $a2,$zero,0x1
/* f06f264: 46043201 */ sub.s $f8,$f6,$f4
/* f06f268: e5e80008 */ swc1 $f8,0x8($t7)
/* f06f26c: c7a60048 */ lwc1 $f6,0x48($sp)
/* f06f270: c7aa003c */ lwc1 $f10,0x3c($sp)
/* f06f274: c5e8000c */ lwc1 $f8,0xc($t7)
/* f06f278: 46065101 */ sub.s $f4,$f10,$f6
/* f06f27c: 46044281 */ sub.s $f10,$f8,$f4
/* f06f280: e5ea000c */ swc1 $f10,0xc($t7)
/* f06f284: c7a8004c */ lwc1 $f8,0x4c($sp)
/* f06f288: c7a60040 */ lwc1 $f6,0x40($sp)
/* f06f28c: c5ea0010 */ lwc1 $f10,0x10($t7)
/* f06f290: 46083101 */ sub.s $f4,$f6,$f8
/* f06f294: 46045181 */ sub.s $f6,$f10,$f4
/* f06f298: e5e60010 */ swc1 $f6,0x10($t7)
/* f06f29c: 0fc1a3b7 */ jal func0f069c70
/* f06f2a0: 8fa40174 */ lw $a0,0x174($sp)
/* f06f2a4: 8fa70170 */ lw $a3,0x170($sp)
.NB0f06f2a8:
/* f06f2a8: 84f80062 */ lh $t8,0x62($a3)
.NB0f06f2ac:
/* f06f2ac: 270dffff */ addiu $t5,$t8,-1
/* f06f2b0: a4ed0062 */ sh $t5,0x62($a3)
/* f06f2b4: 84e30062 */ lh $v1,0x62($a3)
.NB0f06f2b8:
/* f06f2b8: 04610027 */ bgez $v1,.NB0f06f358
/* f06f2bc: 8fb90174 */ lw $t9,0x174($sp)
/* f06f2c0: 8f230048 */ lw $v1,0x48($t9)
/* f06f2c4: afa70170 */ sw $a3,0x170($sp)
/* f06f2c8: 8fa40178 */ lw $a0,0x178($sp)
/* f06f2cc: 0fc2b26d */ jal boltbeamFindByProp
/* f06f2d0: afa30034 */ sw $v1,0x34($sp)
/* f06f2d4: 2401ffff */ addiu $at,$zero,-1
/* f06f2d8: 8fa30034 */ lw $v1,0x34($sp)
/* f06f2dc: 8fa70170 */ lw $a3,0x170($sp)
/* f06f2e0: 10410024 */ beq $v0,$at,.NB0f06f374
/* f06f2e4: 00402025 */ or $a0,$v0,$zero
/* f06f2e8: 8fa50178 */ lw $a1,0x178($sp)
/* f06f2ec: afa30034 */ sw $v1,0x34($sp)
/* f06f2f0: afa20030 */ sw $v0,0x30($sp)
/* f06f2f4: afa70170 */ sw $a3,0x170($sp)
/* f06f2f8: 0fc2b2b4 */ jal boltbeamSetTailPos
/* f06f2fc: 24a50008 */ addiu $a1,$a1,0x8
/* f06f300: 3c05453b */ lui $a1,0x453b
/* f06f304: 34a58000 */ ori $a1,$a1,0x8000
/* f06f308: 8fa40030 */ lw $a0,0x30($sp)
/* f06f30c: 0fc2b2c1 */ jal boltbeamIncrementHeadPos
/* f06f310: 00003025 */ or $a2,$zero,$zero
/* f06f314: 8fa30034 */ lw $v1,0x34($sp)
/* f06f318: 8fa70170 */ lw $a3,0x170($sp)
/* f06f31c: 3c0544af */ lui $a1,0x44af
/* f06f320: 10600005 */ beqz $v1,.NB0f06f338
/* f06f324: 00000000 */ sll $zero,$zero,0x0
/* f06f328: 8c690090 */ lw $t1,0x90($v1)
/* f06f32c: 19200002 */ blez $t1,.NB0f06f338
/* f06f330: 00000000 */ sll $zero,$zero,0x0
/* f06f334: 00001825 */ or $v1,$zero,$zero
.NB0f06f338:
/* f06f338: 5460000f */ bnezl $v1,.NB0f06f378
/* f06f33c: 8fae0174 */ lw $t6,0x174($sp)
/* f06f340: a4e00062 */ sh $zero,0x62($a3)
/* f06f344: afa70170 */ sw $a3,0x170($sp)
/* f06f348: 0fc2b302 */ jal boltbeamSetAutomatic
/* f06f34c: 8fa40030 */ lw $a0,0x30($sp)
/* f06f350: 10000008 */ beqz $zero,.NB0f06f374
/* f06f354: 8fa70170 */ lw $a3,0x170($sp)
.NB0f06f358:
/* f06f358: 3c03800a */ lui $v1,0x800a
/* f06f35c: 8c63e944 */ lw $v1,-0x16bc($v1)
/* f06f360: 8fac0174 */ lw $t4,0x174($sp)
/* f06f364: 8c6b0264 */ lw $t3,0x264($v1)
/* f06f368: 558b0003 */ bnel $t4,$t3,.NB0f06f378
/* f06f36c: 8fae0174 */ lw $t6,0x174($sp)
/* f06f370: ac600264 */ sw $zero,0x264($v1)
.NB0f06f374:
/* f06f374: 8fae0174 */ lw $t6,0x174($sp)
.NB0f06f378:
/* f06f378: 3c0d800a */ lui $t5,0x800a
/* f06f37c: 8dca0010 */ lw $t2,0x10($t6)
/* f06f380: 314f0100 */ andi $t7,$t2,0x100
/* f06f384: 51e0000e */ beqzl $t7,.NB0f06f3c0
/* f06f388: 8faa0174 */ lw $t2,0x174($sp)
/* f06f38c: 80f80060 */ lb $t8,0x60($a3)
/* f06f390: 8dade6f8 */ lw $t5,-0x1908($t5)
/* f06f394: 030dc823 */ subu $t9,$t8,$t5
/* f06f398: a0f90060 */ sb $t9,0x60($a3)
/* f06f39c: 80e90060 */ lb $t1,0x60($a3)
/* f06f3a0: 5d200007 */ bgtzl $t1,.NB0f06f3c0
/* f06f3a4: 8faa0174 */ lw $t2,0x174($sp)
/* f06f3a8: a0e00060 */ sb $zero,0x60($a3)
/* f06f3ac: 8fac0174 */ lw $t4,0x174($sp)
/* f06f3b0: 8d8b0040 */ lw $t3,0x40($t4)
/* f06f3b4: 356e0004 */ ori $t6,$t3,0x4
/* f06f3b8: ad8e0040 */ sw $t6,0x40($t4)
/* f06f3bc: 8faa0174 */ lw $t2,0x174($sp)
.NB0f06f3c0:
/* f06f3c0: 8fad0178 */ lw $t5,0x178($sp)
/* f06f3c4: 8d4f0010 */ lw $t7,0x10($t2)
/* f06f3c8: 31f80080 */ andi $t8,$t7,0x80
/* f06f3cc: 53000017 */ beqzl $t8,.NB0f06f42c
/* f06f3d0: 8fbf0014 */ lw $ra,0x14($sp)
/* f06f3d4: 91b90001 */ lbu $t9,0x1($t5)
/* f06f3d8: 3c0b800a */ lui $t3,0x800a
/* f06f3dc: 33290002 */ andi $t1,$t9,0x2
/* f06f3e0: 51200012 */ beqzl $t1,.NB0f06f42c
/* f06f3e4: 8fbf0014 */ lw $ra,0x14($sp)
/* f06f3e8: 8d6beafc */ lw $t3,-0x1504($t3)
/* f06f3ec: 3c01800a */ lui $at,0x800a
/* f06f3f0: 240c003c */ addiu $t4,$zero,0x3c
/* f06f3f4: 256e0001 */ addiu $t6,$t3,0x1
/* f06f3f8: ac2eeafc */ sw $t6,-0x1504($at)
/* f06f3fc: 29c10015 */ slti $at,$t6,0x15
/* f06f400: 5420000a */ bnezl $at,.NB0f06f42c
/* f06f404: 8fbf0014 */ lw $ra,0x14($sp)
/* f06f408: a0ec0060 */ sb $t4,0x60($a3)
/* f06f40c: 8faa0174 */ lw $t2,0x174($sp)
/* f06f410: 2401ff7f */ addiu $at,$zero,-129
/* f06f414: 8d4f0010 */ lw $t7,0x10($t2)
/* f06f418: 01e1c024 */ and $t8,$t7,$at
/* f06f41c: 370d0100 */ ori $t5,$t8,0x100
/* f06f420: ad580010 */ sw $t8,0x10($t2)
/* f06f424: ad4d0010 */ sw $t5,0x10($t2)
/* f06f428: 8fbf0014 */ lw $ra,0x14($sp)
.NB0f06f42c:
/* f06f42c: 27bd0178 */ addiu $sp,$sp,0x178
/* f06f430: 03e00008 */ jr $ra
/* f06f434: 00000000 */ sll $zero,$zero,0x0
);
#endif
// Mismatch: Crossbow bolt matrix code needs some work
//void weaponTick(struct prop *prop)
//{
// struct defaultobj *obj = prop->obj;
// struct weaponobj *weapon = prop->weapon;
// s32 exptype;
// s32 i;
//
// // Handle grenade timers
// if (((weapon->weaponnum == WEAPON_GRENADE && weapon->gunfunc == FUNC_PRIMARY)
// || weapon->weaponnum == WEAPON_GRENADEROUND)
// && weapon->timer240 >= 0) {
// // 5b0
// // Handle Devastator wall hugger timer
// if (weapon->weaponnum == WEAPON_GRENADEROUND
// && weapon->gunfunc == FUNC_SECONDARY
// && weapon->timer240 > 0) {
// if (weapon->timer240 >= 2) {
// // Still on the wall
// weapon->timer240 -= g_Vars.lvupdate240;
//
// if (weapon->timer240 < 8) {
// // Time to fall
// struct coord direction = {0, -10, 0}; // var800699fc
// struct prop *parent;
// struct projectile *projectile = NULL;
//
// func0f0685e4(prop);
//
// if (obj->hidden & OBJHFLAG_EMBEDDED) {
// projectile = obj->projectile->unk044;
// } else if (obj->hidden & OBJHFLAG_AIRBORNE) {
// projectile = obj->projectile;
// }
//
// if (projectile) {
// parent = prop;
//
// while (parent->parent) {
// parent = parent->parent;
// }
//
// if (parent && (parent->type == PROPTYPE_CHR || parent->type == PROPTYPE_PLAYER)) {
// parent->chr->hidden |= CHRHFLAG_00000001;
// } else {
// projectile->ownerprop = NULL;
// projectile->flags |= PROJECTILEFLAG_00000001;
// }
//
// weapon->timer240 = 1;
//
// objSetProjectileFlag4(prop);
//
// projectile->speed.x = direction.x;
// projectile->speed.y = direction.y;
// projectile->speed.z = direction.z;
//
// mtx4LoadIdentity((Mtxf *)&projectile->unk020);
//
// projectile->obj = (struct defaultobj *)weapon;
// projectile->unk0d8 = g_Vars.lvframenum;
// } else {
// // Couldn't create projectile - try again next frame
// weapon->timer240 = 2;
// }
// }
// } else {
// // empty
// }
// } else {
// // 730
// // Normal grenade
// weapon->timer240 -= g_Vars.lvupdate240;
//
// if (weapon->timer240 < 0) {
// propUnsetDangerous(prop);
//
// if (weapon->gunfunc == FUNC_2) {
// propExplode(prop, EXPLOSIONTYPE_SDGRENADE);
// } else {
// propExplode(prop, (obj->flags2 & OBJFLAG2_WEAPON_HUGEEXP) ? EXPLOSIONTYPE_HUGE17 : EXPLOSIONTYPE_ROCKET);
// }
//
// obj->hidden |= OBJHFLAG_REAPABLE;
//
// for (i = 0; i < PLAYERCOUNT(); i++) {
// if (g_Vars.players[i]->slayerrocket == (struct weaponobj *)obj) {
// g_Vars.players[i]->slayerrocket = NULL;
// g_Vars.players[i]->visionmode = VISIONMODE_SLAYERROCKETSTATIC;
// }
// }
// }
// }
// } else if (weapon->weaponnum == WEAPON_NBOMB && weapon->gunfunc == FUNC_PRIMARY) {
// // 8e8
// // Handle nbombs being thrown normally
// if (weapon->timer240 >= 0) {
// struct prop *ownerprop = NULL;
//
// weapon->timer240 -= g_Vars.lvupdate240;
//
// if (weapon->timer240 < 0) {
// // Nbombs detonate when they hit the ground, so this code only
// // runs if it's airborne for the entire duration of its timer.
// s32 ownerplayernum = (obj->hidden & 0xf0000000) >> 28;
//
// if (g_Vars.normmplayerisrunning) {
// struct chrdata *chr = mpGetChrFromPlayerIndex(ownerplayernum);
//
// if (chr) {
// ownerprop = chr->prop;
// }
// }
//
// nbombCreateStorm(&prop->pos, ownerprop);
// propUnsetDangerous(prop);
//
// obj->hidden |= OBJHFLAG_REAPABLE;
//
// for (i = 0; i < PLAYERCOUNT(); i++) {
// if (g_Vars.players[i]->slayerrocket == (struct weaponobj *)obj) {
// g_Vars.players[i]->slayerrocket = NULL;
// g_Vars.players[i]->visionmode = VISIONMODE_SLAYERROCKETSTATIC;
// }
// }
// }
// }
// } else if (weapon->weaponnum == WEAPON_ROCKET
// || weapon->weaponnum == WEAPON_HOMINGROCKET
// || weapon->weaponnum == WEAPON_SKROCKET) {
// // a98
// // Handle rockets
// if (weapon->timer240 == 0) {
// propExplode(prop, (obj->flags2 & OBJFLAG2_WEAPON_HUGEEXP) ? EXPLOSIONTYPE_HUGE17 : EXPLOSIONTYPE_ROCKET);
//
// obj->hidden |= OBJHFLAG_REAPABLE;
//
// for (i = 0; i < PLAYERCOUNT(); i++) {
// if (g_Vars.players[i]->slayerrocket == (struct weaponobj *)obj) {
// g_Vars.players[i]->slayerrocket = NULL;
// g_Vars.players[i]->visionmode = VISIONMODE_SLAYERROCKETSTATIC;
// }
// }
// }
// } else if (weapon->weaponnum == WEAPON_TIMEDMINE && weapon->timer240 >= 0) {
// // c14
// // Handle timed mines
// if (weapon->gunfunc == FUNC_PRIMARY) {
// weapon->timer240 -= g_Vars.lvupdate240;
//
// if (weapon->timer240 < 0) {
// if (propExplode(prop, (obj->flags2 & OBJFLAG2_WEAPON_HUGEEXP) ? EXPLOSIONTYPE_HUGE17 : EXPLOSIONTYPE_ROCKET)) {
// weapon->timer240 = -1;
// obj->hidden |= OBJHFLAG_REAPABLE;
// }
// }
// } else {
// // empty
// }
// } else if (weapon->weaponnum == WEAPON_REMOTEMINE) {
// // c90
// // Handle remote mines
// if (g_PlayersDetonatingMines != 0) {
// s32 ownerplayernum = (obj->hidden & 0xf0000000) >> 28;
// struct chrdata *parentchr = prop->parent ? prop->parent->chr : NULL;
//
// // If a player manages to throw a mine on themselves, it will not detonate.
// // You can't throw a mine on yourself anyway, so this check always passes
// if (prop->parent == NULL || parentchr == NULL || mpPlayerGetIndex(parentchr) != ownerplayernum) {
// if (g_Vars.coopplayernum >= 0 || g_Vars.antiplayernum >= 0) {
// if (ownerplayernum == 2) {
// u32 mask = 0;
//
// if (g_Vars.coop && g_Vars.coop->prop) {
// mask |= 1 << playermgrGetPlayerNumByProp(g_Vars.coop->prop);
// }
//
// if (g_Vars.bond && g_Vars.bond->prop) {
// mask |= 1 << playermgrGetPlayerNumByProp(g_Vars.bond->prop);
// }
//
// g_PlayersDetonatingMines &= mask;
//
// if (g_PlayersDetonatingMines != 0) {
// weapon->timer240 = 0;
// }
// } else if (g_PlayersDetonatingMines & 1 << ownerplayernum) {
// weapon->timer240 = 0;
// }
// } else if (g_PlayersDetonatingMines & 1 << ownerplayernum) {
// weapon->timer240 = 0;
// }
// }
// }
//
// if (weapon->timer240 >= 2) {
// // I don't think this is reachable? Remote mines don't use a timer.
// weapon->timer240 -= g_Vars.lvupdate240;
//
// if (weapon->timer240 < 2) {
// weapon->timer240 = 1;
// }
// } else if (weapon->timer240 == 0) {
// // Mine was damaged or timer was set to 0 above
// exptype = EXPLOSIONTYPE_ROCKET;
//
// if (obj->flags2 & OBJFLAG2_WEAPON_HUGEEXP) {
// exptype = EXPLOSIONTYPE_HUGE17;
// }
//
// if (propExplode(prop, exptype)) {
// weapon->timer240 = -1;
// obj->hidden |= OBJHFLAG_REAPABLE;
// }
// }
// } else if (weapon->weaponnum == WEAPON_PROXIMITYMINE
// || (weapon->weaponnum == WEAPON_DRAGON && weapon->gunfunc == FUNC_SECONDARY)
// || (weapon->weaponnum == WEAPON_GRENADE && weapon->gunfunc == FUNC_SECONDARY)
// || (weapon->weaponnum == WEAPON_NBOMB && weapon->gunfunc == FUNC_SECONDARY)) {
// // ec0
// // Handle proximity items
// if (weapon->timer240 >= 2) {
// // The timer is still active, so the proxy isn't active yet
// weapon->timer240 -= g_Vars.lvupdate240;
//
// if (weapon->timer240 < 2) {
// weapon->timer240 = 1;
// weaponRegisterProxy(weapon);
// }
// } else if (weapon->timer240 == 1) {
// // Proxy is active
// struct coord *playerpos = &g_Vars.currentplayer->prop->pos;
// f32 xdist = playerpos->x - prop->pos.x;
// f32 ydist = playerpos->y - prop->pos.y;
// f32 zdist = playerpos->z - prop->pos.z;
//
// if (xdist * xdist + ydist * ydist + zdist * zdist < 250 * 250) {
// weapon->timer240 = 0;
// }
// }
//
// if (weapon->timer240 == 0) {
// // Proxy was triggered or shot
// if (weapon->weaponnum == WEAPON_NBOMB) {
// struct prop *ownerprop = NULL;
// s32 ownerplayernum = (obj->hidden & 0xf0000000) >> 28;
//
// if (g_Vars.normmplayerisrunning) {
// struct chrdata *chr = mpGetChrFromPlayerIndex(ownerplayernum);
//
// if (chr) {
// ownerprop = chr->prop;
// }
// }
//
// nbombCreateStorm(&prop->pos, ownerprop);
// propUnsetDangerous(prop);
//
// obj->hidden |= OBJHFLAG_REAPABLE;
//
// for (i = 0; i < PLAYERCOUNT(); i++) {
// if (g_Vars.players[i]->slayerrocket == (struct weaponobj *)obj) {
// g_Vars.players[i]->slayerrocket = NULL;
// g_Vars.players[i]->visionmode = VISIONMODE_SLAYERROCKETSTATIC;
// }
// }
// } else {
// // Regular explosive
// exptype = EXPLOSIONTYPE_ROCKET;
//
// if (obj->flags2 & OBJFLAG2_WEAPON_HUGEEXP) {
// exptype = EXPLOSIONTYPE_HUGE17;
// } else if (weapon->weaponnum == WEAPON_DRAGON) {
// exptype = EXPLOSIONTYPE_DRAGONBOMBSPY;
// }
//
// if (propExplode(prop, exptype)) {
// weapon->timer240 = -1;
// obj->hidden |= OBJHFLAG_REAPABLE;
// }
// }
// }
// } else if (weapon->weaponnum == WEAPON_BOLT) {
// // 178
// // Handle crossbow bolts
// // Note that the timer240 value doesn't act like a timer at all
// if (weapon->timer240 >= 2) {
// // Bolt is travelling
// struct modelrodata_bbox *sp140 = modelFindBboxRodata(obj->model);
// s32 ival = weapon->timer240 - 1;
// f32 radians = ival / 12.0f * 0.026179939508438f;
// Mtxf spf8;
// Mtxf spb8;
// Mtxf sp78;
// struct coord sp6c;
// struct coord sp60;
// f32 sp38[3][3];
//
// if (ival < 12) {
// radians += (ival + 1) / 12.0f * 0.026179939508438f;
// }
//
// if ((ival & 1) == 1) {
// radians = -radians;
// }
//
// mtx4LoadYRotation(radians, &spb8);
//
// if (obj->projectile) {
// if (prop->parent && prop->parent->type != PROPTYPE_CHR) {
// mtx4Copy((Mtxf *)&obj->projectile->speed, &spf8);
//
// spf8.m[3][0] = spf8.m[3][1] = 0;
// spf8.m[0][3] = spf8.m[1][3] = 0;
//
// sp6c.y = 0;
// sp60.x = 0;
// sp6c.x = 0;
//
// spf8.m[3][2] = 0;
// spf8.m[2][3] = 0;
//
// sp60.y = 0;
// sp6c.z = sp60.z = modelBboxGetZMax(sp140);
//
// mtx4MultMtx4(&spf8, &spb8, &sp78);
// mtx4RotateVecInPlace(&spf8, &sp6c);
// mtx4RotateVecInPlace(&sp78, &sp60);
//
// sp78.m[3][0] = obj->projectile->unk034 - (sp60.x - sp6c.x);
// sp78.m[3][1] = obj->projectile->unk038 - (sp60.y - sp6c.y);
// sp78.m[3][2] = obj->projectile->unk03c - (sp60.z - sp6c.z);
//
// mtx4Copy(&sp78, (Mtxf *)&obj->projectile->speed);
// }
// } else {
// sp6c.y = 0;
// sp60.x = 0;
// sp6c.x = 0;
// sp60.y = 0;
//
// sp38[0][0] = sp6c.z = sp60.z = modelBboxGetZMax(sp140);
//
// mtx3ToMtx4(obj->realrot, &spf8);
// mtx4MultMtx4(&spf8, &spb8, &sp78);
// mtx4ToMtx3(&sp78, sp38);
//
// mtx4RotateVecInPlace(&spf8, &sp6c);
// mtx4RotateVecInPlace(&sp78, &sp60);
//
// prop->pos.x -= sp60.x - sp6c.x;
// prop->pos.y -= sp60.y - sp6c.y;
// prop->pos.z -= sp60.z - sp6c.z;
//
// func0f069c70(obj, false, true);
// }
//
// weapon->timer240--;
// }
//
// if (weapon->timer240 < 0) {
// struct projectile *projectile = obj->projectile;
// s32 beamnum = boltbeamFindByProp(prop);
//
// if (beamnum != -1) {
// boltbeamSetTailPos(beamnum, &prop->pos);
//
// boltbeamIncrementHeadPos(beamnum, 3000, 0);
//
// if (projectile && projectile->unk090 > 0) {
// projectile = NULL;
// }
//
// if (projectile == NULL) {
// weapon->timer240 = 0;
// boltbeamSetAutomatic(beamnum, 1400);
// }
// }
// } else {
// for (i = 0; i < PLAYERCOUNT(); i++) {
// if (g_Vars.players[i]->slayerrocket == (struct weaponobj *)obj) {
// g_Vars.players[i]->slayerrocket = NULL;
// g_Vars.players[i]->visionmode = VISIONMODE_SLAYERROCKETSTATIC;
// }
// }
// }
// }
//
// // Hard freeing is the practice of freeing a prop while it's on screen.
// // Hard frees are triggered when there are over 20 props on screen with the
// // flag CANHARDFREE. This flag is given to dropped weapons in multiplayer.
// // When this occurs, the props past the first 20 are given the flag
// // HARDFREEING. They then fade out over 1 second, at which point they are
// // given the REAPABLE flag and soon freed.
// // 594
// if (obj->flags3 & OBJFLAG3_HARDFREEING) {
// weapon->fadeouttimer60 -= g_Vars.lvupdate240_60;
//
// if (weapon->fadeouttimer60 <= 0) {
// weapon->fadeouttimer60 = 0;
// obj->hidden |= OBJHFLAG_REAPABLE;
// }
// }
//
// if ((obj->flags3 & OBJFLAG3_CANHARDFREE) && (prop->flags & PROPFLAG_ONTHISSCREENTHISTICK)) {
// g_Vars.hardfreeabletally++;
//
// if (g_Vars.hardfreeabletally > 20) {
// weapon->fadeouttimer60 = 60;
// obj->flags3 &= ~OBJFLAG3_CANHARDFREE;
// obj->flags3 |= OBJFLAG3_HARDFREEING;
// }
// }
//}
void func0f07063c(struct prop *prop, bool arg1)
{
struct defaultobj *obj = prop->obj;
if (arg1) {
if (obj->type == OBJTYPE_AMMOCRATE || obj->type == OBJTYPE_MULTIAMMOCRATE) {
ammocrateTick(prop);
} else if (obj->type == OBJTYPE_WEAPON) {
weaponTick(prop);
}
}
}
void objDropRecursively(struct prop *prop, bool arg1)
{
struct prop *child = prop->child;
while (child) {
struct prop *next = child->next;
objDropRecursively(child, arg1);
objDrop(child, arg1);
child = next;
}
}
void func0f0706f8(struct prop *prop, bool arg1)
{
struct defaultobj *obj = prop->obj;
struct prop *child;
if (obj->hidden & OBJHFLAG_REAPABLE) {
objFree(obj, true, obj->hidden2 & OBJH2FLAG_CANREGEN);
} else {
prop->flags &= ~PROPFLAG_ONTHISSCREENTHISTICK;
func0f07063c(prop, arg1);
// Recurse into children
child = prop->child;
while (child) {
struct prop *next = child->next;
func0f0706f8(child, arg1);
child = next;
}
}
}
void func0f07079c(struct prop *prop, bool fulltick)
{
struct defaultobj *obj = prop->obj;
struct model *model = obj->model;
struct prop *child;
struct prop *next;
if (obj->hidden & OBJHFLAG_REAPABLE) {
objFree(obj, true, obj->hidden2 & OBJH2FLAG_CANREGEN);
return;
}
if (model->attachedtonode && (obj->hidden & OBJHFLAG_EMBEDDED)) {
Mtxf *mtx = model0001a5cc(model->attachedtomodel, model->attachedtonode, 0);
struct modelrenderdata renderdata = {NULL, true, 3};
u32 stack;
Mtxf sp30;
prop->flags |= PROPFLAG_ONTHISSCREENTHISTICK | PROPFLAG_ONANYSCREENTHISTICK;
mtx00015be4(mtx, &obj->embedment->matrix, &sp30);
renderdata.unk10 = gfxAllocate(model->filedata->nummatrices * sizeof(Mtxf));
renderdata.unk00 = &sp30;
model0001ce64(&renderdata, model);
func0f07063c(prop, fulltick);
child = prop->child;
while (child) {
next = child->next;
func0f07079c(child, fulltick);
child = next;
}
} else {
prop->flags &= ~PROPFLAG_ONTHISSCREENTHISTICK;
func0f07063c(prop, fulltick);
child = prop->child;
while (child) {
next = child->next;
func0f0706f8(child, fulltick);
child = next;
}
}
}
s32 glassCalculateOpacity(struct coord *pos, f32 xludist, f32 opadist, f32 arg3)
{
struct coord *campos = &g_Vars.currentplayer->cam_pos;
s32 opacity;
f32 xdiff = pos->x - campos->x;
f32 ydiff = pos->y - campos->y;
f32 zdiff = pos->z - campos->z;
f32 distance = sqrtf(xdiff * xdiff + ydiff * ydiff + zdiff * zdiff);
if (distance > opadist) {
opacity = 255;
} else if (distance < xludist) {
opacity = arg3 * 255;
} else {
opacity = (((distance - xludist) * (1.0f - arg3)) / (opadist - xludist) + arg3) * 255;
}
return opacity;
}
struct prop *g_Lifts[MAX_LIFTS] = {NULL};
struct var80069a70 var80069a70[] = {
#if PAL
{ 90, 0x3f800000, 0x40000000, 0x3a9d4952, 0x3f99999a, 0x3bcddaca, 0x3bcddaca, 0x3752cb90, 0x39c59ed7, 0x3bcddaca, 0x3bcddaca, 0x3752cb90, 0x39c59ed7 },
{ 80, 0x3f800000, 0x40400000, 0x3b449ba6, 0x3df5c290, 0x3c4ddaca, 0x3c9a6417, 0x37d2cb90, 0x3a459ed7, 0x3c4ddaca, 0x3c9a6417, 0x37d2cb90, 0x3a459ed7 },
{ 70, 0x40000000, 0x40800000, 0x3a9d4952, 0x3f99999a, 0x3bcddaca, 0x3c4ddaca, 0x3752cb90, 0x39c59ed7, 0x3bcddaca, 0x3c4ddaca, 0x3752cb90, 0x39c59ed7 },
{ 170, 0x40000000, 0x40000000, 0x3a9d4952, 0x3f99999a, 0x3b4ddaca, 0x3b4ddaca, 0x36d2cb90, 0x396d2501, 0x3b4ddaca, 0x3b4ddaca, 0x36d2cb90, 0x396d2501 },
{ 170, 0x40000000, 0x40000000, 0x3a9d4952, 0x3f99999a, 0x3b4ddaca, 0x3b4ddaca, 0x36d2cb90, 0x396d2501, 0x3b4ddaca, 0x3b4ddaca, 0x36d2cb90, 0x396d2501 },
#else
{ 90, 0x3f800000, 0x40000000, 0x3a83126f, 0x3f800000, 0x3bcddaca, 0x3bcddaca, 0x372fa9a2, 0x39a4af08, 0x3bcddaca, 0x3bcddaca, 0x372fa9a2, 0x39a4af08 },
{ 80, 0x3f800000, 0x40400000, 0x3b23d70a, 0x3dcccccd, 0x3c4ddaca, 0x3c9a6417, 0x37afa9a2, 0x3a24af08, 0x3c4ddaca, 0x3c9a6417, 0x37afa9a2, 0x3a24af08 },
{ 70, 0x40000000, 0x40800000, 0x3a83126f, 0x3f800000, 0x3bcddaca, 0x3c4ddaca, 0x372fa9a2, 0x39a4af08, 0x3bcddaca, 0x3c4ddaca, 0x372fa9a2, 0x39a4af08 },
{ 170, 0x40000000, 0x40000000, 0x3a83126f, 0x3f800000, 0x3b4ddaca, 0x3b4ddaca, 0x36afa9a2, 0x39459ed6, 0x3b4ddaca, 0x3b4ddaca, 0x36afa9a2, 0x39459ed6 },
{ 170, 0x40000000, 0x40000000, 0x3a83126f, 0x3f800000, 0x3b4ddaca, 0x3b4ddaca, 0x36afa9a2, 0x39459ed6, 0x3b4ddaca, 0x3b4ddaca, 0x36afa9a2, 0x39459ed6 },
#endif
};
void func0f070a1c(struct modelrodata_bbox *bbox, f32 rot[3][3], struct coord *pos, struct coord *vertices)
{
f32 sp54 = rot[0][0] * bbox->xmin;
f32 sp50 = rot[0][1] * bbox->xmin;
f32 sp4c = rot[0][2] * bbox->xmin;
f32 sp48 = rot[2][0] * bbox->zmin;
f32 sp44 = rot[2][1] * bbox->zmin;
f32 sp40 = rot[2][2] * bbox->zmin;
f32 sp3c = rot[0][0] * bbox->xmax;
f32 sp38 = rot[0][1] * bbox->xmax;
f32 sp34 = rot[0][2] * bbox->xmax;
f32 sp30 = rot[2][0] * bbox->zmax;
f32 sp2c = rot[2][1] * bbox->zmax;
f32 sp28 = rot[2][2] * bbox->zmax;
f32 sp24 = rot[1][0] * bbox->ymin + pos->f[0];
f32 sp20 = rot[1][1] * bbox->ymin + pos->f[1];
f32 sp1c = rot[1][2] * bbox->ymin + pos->f[2];
vertices[0].x = sp54 + sp24 + sp48;
vertices[0].y = sp50 + sp20 + sp44;
vertices[0].z = sp4c + sp1c + sp40;
vertices[1].x = sp54 + sp24 + sp30;
vertices[1].y = sp50 + sp20 + sp2c;
vertices[1].z = sp4c + sp1c + sp28;
vertices[2].x = sp3c + sp24 + sp30;
vertices[2].y = sp38 + sp20 + sp2c;
vertices[2].z = sp34 + sp1c + sp28;
vertices[3].x = sp3c + sp24 + sp48;
vertices[3].y = sp38 + sp20 + sp44;
vertices[3].z = sp34 + sp1c + sp40;
}
void func0f070bd0(struct modelrodata_type19 *rodata, f32 rot[3][3], struct coord *pos, struct coord *vertices)
{
s32 i;
for (i = 0; i < 4; i++) {
vertices[i].x = pos->x + rot[0][0] * rodata->vertices[i].x + rot[1][0] * rodata->vertices[i].y + rot[2][0] * rodata->vertices[i].z;
vertices[i].y = pos->y + rot[0][1] * rodata->vertices[i].x + rot[1][1] * rodata->vertices[i].y + rot[2][1] * rodata->vertices[i].z;
vertices[i].z = pos->z + rot[0][2] * rodata->vertices[i].x + rot[1][2] * rodata->vertices[i].y + rot[2][2] * rodata->vertices[i].z;
}
}
void func0f070ca0(struct defaultobj *obj, struct geotilef *tile, u32 flags, struct modelrodata_bbox *bbox, struct modelrodata_type19 *rodata)
{
struct coord vertices[4];
s32 i;
s32 j;
if (bbox != NULL) {
func0f070a1c(bbox, obj->realrot, &obj->prop->pos, vertices);
} else if (rodata != NULL) {
func0f070bd0(rodata, obj->realrot, &obj->prop->pos, vertices);
}
tile->header.type = GEOTYPE_TILE_F;
tile->header.flags = flags;
tile->header.numvertices = 4;
for (i = 0; i < 4; i++) {
tile->vertices[i].x = vertices[i].x;
tile->vertices[i].y = vertices[i].y;
tile->vertices[i].z = vertices[i].z;
}
tile->floorcol = 0xfff;
#if VERSION >= VERSION_NTSC_1_0
tile->floortype = FLOORTYPE_DEFAULT;
#endif
for (i = 0; i < 3; i++) {
tile->min[i] = 0;
tile->max[i] = 0;
for (j = 1; j < tile->header.numvertices; j++) {
if (tile->vertices[j].f[i] < tile->vertices[tile->min[i]].f[i]) {
tile->min[i] = j;
}
if (tile->vertices[j].f[i] > tile->vertices[tile->max[i]].f[i]) {
tile->max[i] = j;
}
}
}
}
void liftActivate(struct prop *prop, u8 liftnum)
{
if (liftnum > 0 && liftnum <= MAX_LIFTS) {
g_Lifts[liftnum - 1] = prop;
}
}
struct prop *liftFindByPad(s16 padnum)
{
struct pad pad;
padUnpack(padnum, PADFIELD_LIFT, &pad);
if (pad.liftnum <= 0 || pad.liftnum > MAX_LIFTS) {
return NULL;
}
return g_Lifts[pad.liftnum - 1];
}
f32 liftGetY(struct liftobj *lift)
{
f32 y = lift->base.prop->pos.y;
if (lift->base.geocount > 0) {
struct geotilef *tile = lift->base.geotilef;
if (tile && tile->header.type == GEOTYPE_TILE_F) {
if (tile->header.flags & GEOFLAG_0001) {
y = tile->vertices[tile->max[1]].y;
}
}
}
return y;
}
/**
* Recalculate a lift's tile/geometry information.
*
* The lift models and the part numbers in each model are:
*
* a51_lift_control 0
* a51_lift_hangar 0
* a51_lift_store 0
* a51_lift_thinwall 0
* a51dish 0
* airbase_lift_angle 0 1 2
* airbase_lift_enclosed 0 1 2
* al_docklift 5 6
* baggagecarrier 0
* chamber 0
* ci_lift 0
* dd_liftr 0 1 2 3 4
* lift_platform 0 1
* matrix_lift 0 1 2
* ravinelift 0
* sk_lift 0
* skedarbridge 0
*
* Part 0 is the floor if rectangular
* Parts 1-3 are walls (some lifts rely on BG geometry instead)
* Part 4 is a door blocker (used by dataDyne tower lifts)
* Part 5 is the first half of the floor if non-rectangular (Deep Sea lift)
* Part 6 is the second half of the floor if non-rectangular (Deep Sea lift)
*/
void liftUpdateTiles(struct liftobj *lift, bool stationary)
{
u8 *geo;
union modelrodata *rodata;
struct modelrodata_bbox *bbox;
s32 geocount;
u32 flags;
s32 i;
lift->base.geocount = 0;
i = 0;
do {
geo = (u8 *)lift->base.unkgeo + lift->base.geocount * 0x40;
bbox = NULL;
rodata = NULL;
do {
if (i == 0) {
#if VERSION >= VERSION_NTSC_1_0
flags = GEOFLAG_0001 | GEOFLAG_0002 | GEOFLAG_0008 | GEOFLAG_OPAQUE | GEOFLAG_LIFTFLOOR;
#else
flags = GEOFLAG_0001 | GEOFLAG_0002 | GEOFLAG_LIFTFLOOR;
#endif
// Look for a non-rectangular floor with fallback to rectangular
rodata = modelGetPartRodata(lift->base.model->filedata, MODELPART_LIFT_FLOORNONRECT1);
if (rodata == NULL) {
union modelrodata *tmp;
tmp = modelGetPartRodata(lift->base.model->filedata, MODELPART_LIFT_FLOORRECT);
bbox = &tmp->bbox;
if (bbox == NULL) {
bbox = objFindBboxRodata(&lift->base);
}
}
} else if (i == 1) {
flags = GEOFLAG_COLLISIONS;
rodata = modelGetPartRodata(lift->base.model->filedata, MODELPART_LIFT_WALL1);
} else if (i == 2) {
flags = GEOFLAG_COLLISIONS;
rodata = modelGetPartRodata(lift->base.model->filedata, MODELPART_LIFT_WALL2);
} else if (i == 3) {
flags = GEOFLAG_COLLISIONS;
rodata = modelGetPartRodata(lift->base.model->filedata, MODELPART_LIFT_WALL3);
} else if (i == 4) {
// The doorblock model part exists in the dataDyne tower lifts.
// It's a tile across the door that only applies while the lift
// is moving. Without it, the player could exit the lift through
// the doorway while it's moving.
if (!stationary) {
flags = GEOFLAG_COLLISIONS;
rodata = modelGetPartRodata(lift->base.model->filedata, MODELPART_LIFT_DOORBLOCK);
}
} else if (i == 5) {
#if VERSION >= VERSION_NTSC_1_0
flags = GEOFLAG_0001 | GEOFLAG_0002 | GEOFLAG_0008 | GEOFLAG_OPAQUE | GEOFLAG_LIFTFLOOR;
#else
flags = GEOFLAG_0001 | GEOFLAG_0002 | GEOFLAG_LIFTFLOOR;
#endif
rodata = modelGetPartRodata(lift->base.model->filedata, MODELPART_LIFT_FLOORNONRECT2);
} else {
break;
}
i++;
} while (!bbox && !rodata);
if (bbox || rodata) {
func0f070ca0(&lift->base, (struct geotilef *)geo, flags, bbox, &rodata->type19);
lift->base.geocount++;
}
} while (bbox || rodata);
}
void liftGoToStop(struct liftobj *lift, s32 stopnum)
{
#if VERSION >= VERSION_NTSC_1_0
u32 stack;
#endif
struct pad curpad;
struct pad aimpad;
struct pad reqpad;
if (lift->pads[stopnum] >= 0 && lift->levelaim != stopnum) {
#if VERSION >= VERSION_NTSC_1_0
// If lift is stopped (cur == aim)
// or door is not fully closed yet
if (lift->levelcur == lift->levelaim ||
(lift->doors[lift->levelcur] && !doorIsClosed(lift->doors[lift->levelcur]))) {
// Sanity check to make sure lift is actually not moving
if (lift->dist == 0 && lift->speed == 0) {
lift->levelaim = stopnum;
return;
}
}
#else
if (lift->levelcur == lift->levelaim) {
lift->levelaim = stopnum;
return;
}
#endif
padUnpack(lift->pads[lift->levelcur], PADFIELD_POS, &curpad);
padUnpack(lift->pads[lift->levelaim], PADFIELD_POS, &aimpad);
padUnpack(lift->pads[stopnum], PADFIELD_POS, &reqpad);
// Figure out if the lift needs to reverse direction on any axis
#if VERSION >= VERSION_NTSC_1_0
if (stopnum != lift->levelcur &&
((aimpad.pos.x >= curpad.pos.x && reqpad.pos.x >= curpad.pos.x) ||
(curpad.pos.x >= aimpad.pos.x && curpad.pos.x >= reqpad.pos.x)) &&
((aimpad.pos.y >= curpad.pos.y && reqpad.pos.y >= curpad.pos.y) ||
(curpad.pos.y >= aimpad.pos.y && curpad.pos.y >= reqpad.pos.y)) &&
((aimpad.pos.z >= curpad.pos.z && reqpad.pos.z >= curpad.pos.z) ||
(curpad.pos.z >= aimpad.pos.z && curpad.pos.z >= reqpad.pos.z)))
#else
if (((aimpad.pos.x >= curpad.pos.x && reqpad.pos.x >= aimpad.pos.x) ||
(curpad.pos.x >= aimpad.pos.x && aimpad.pos.x >= reqpad.pos.x)) &&
((aimpad.pos.y >= curpad.pos.y && reqpad.pos.y >= aimpad.pos.y) ||
(curpad.pos.y >= aimpad.pos.y && aimpad.pos.y >= reqpad.pos.y)) &&
((aimpad.pos.z >= curpad.pos.z && reqpad.pos.z >= aimpad.pos.z) ||
(curpad.pos.z >= aimpad.pos.z && aimpad.pos.z >= reqpad.pos.z)))
#endif
{
// Same direction
lift->levelaim = stopnum;
} else {
// Reverse direction
f32 xdiff = aimpad.pos.x - curpad.pos.x;
f32 ydiff = aimpad.pos.y - curpad.pos.y;
f32 zdiff = aimpad.pos.z - curpad.pos.z;
f32 result = sqrtf(xdiff * xdiff + ydiff * ydiff + zdiff * zdiff);
lift->levelcur = lift->levelaim;
lift->dist = result - lift->dist;
lift->speed = -lift->speed;
lift->levelaim = stopnum;
}
}
}
f32 objGetHov04(struct defaultobj *obj)
{
struct hov *hov = NULL;
f32 result;
if (obj->type == OBJTYPE_HOVERPROP) {
struct hoverpropobj *tmp = (struct hoverpropobj *) obj;
hov = &tmp->hov;
} else if (obj->type == OBJTYPE_HOVERBIKE) {
struct hoverbikeobj *tmp = (struct hoverbikeobj *) obj;
hov = &tmp->hov;
}
if (hov) {
result = hov->unk04;
} else {
struct modelrodata_bbox *bbox = objFindBboxRodata(obj);
f32 value = func0f06695c(bbox, obj->realrot);
result = func0f06a620(obj) - value;
}
return result;
}
void hovUpdateGround(struct defaultobj *obj, struct hov *hov, struct coord *pos, s16 *rooms, f32 matrix[3][3])
{
f32 ground;
s16 testrooms[8];
struct coord testpos;
if (g_Vars.lvframe60 > hov->groundnext60) {
testpos.x = pos->x;
testpos.y = pos->y - 50;
testpos.z = pos->z;
roomsCopy(rooms, testrooms);
setup0f09233c(obj, &testpos, matrix, testrooms);
ground = cdFindGroundYSimple(pos, 5, testrooms, &obj->floorcol, NULL);
if (ground < -30000) {
ground = hov->ground;
}
hov->ground = ground;
hov->groundprev60 = g_Vars.lvframe60;
}
}
#if VERSION == VERSION_PAL_FINAL
GLOBAL_ASM(
glabel func0f0714b8
.late_rodata
glabel var7f1ab570pf
.word 0x3f666666
glabel var7f1ab574pf
.word 0x3f666666
glabel var7f1ab578pf
.word 0xc6ea6000
glabel var7f1ab57cpf
.word 0x40490fdb
glabel var7f1ab580pf
.word 0x40c907a9
glabel var7f1ab584pf
.word 0x40490fdb
glabel var7f1ab588pf
.word 0x40c907a9
glabel var7f1ab58cpf
.word 0x40490fdb
glabel var7f1ab590pf
.word 0x40c907a9
glabel var7f1ab594pf
.word 0x40490fdb
glabel var7f1ab598pf
.word 0x40c907a9
glabel var7f1ab59cpf
.word 0x40490fdb
glabel var7f1ab5a0pf
.word 0x40c907a9
glabel var7f1ab5a4pf
.word 0x3dd0e561
glabel var7f1ab5a8pf
.word 0x3db6e2eb
glabel var7f1ab5acpf
.word 0x3e4ccccd
glabel var7f1ab5b0pf
.word 0x3f19999a
glabel var7f1ab5b4pf
.word 0x3f19999a
glabel var7f1ab5b8pf
.word 0x40c907a9
glabel var7f1ab5bcpf
.word 0x40c907a9
glabel var7f1ab5c0pf
.word 0x40c907a9
.text
/* f071740: 27bdfe28 */ addiu $sp,$sp,-472
/* f071744: afbf004c */ sw $ra,0x4c($sp)
/* f071748: afb10048 */ sw $s1,0x48($sp)
/* f07174c: afb00044 */ sw $s0,0x44($sp)
/* f071750: 3c0f800a */ lui $t7,0x800a
/* f071754: 8defa518 */ lw $t7,-0x5ae8($t7)
/* f071758: 8cae0038 */ lw $t6,0x38($a1)
/* f07175c: 00a08025 */ move $s0,$a1
/* f071760: 00808825 */ move $s1,$a0
/* f071764: 01cf082a */ slt $at,$t6,$t7
/* f071768: 502002ef */ beqzl $at,.PF0f072328
/* f07176c: 8fbf004c */ lw $ra,0x4c($sp)
/* f071770: 8c980014 */ lw $t8,0x14($a0)
/* f071774: 0fc1a361 */ jal objFindBboxRodata
/* f071778: afb801d4 */ sw $t8,0x1d4($sp)
/* f07177c: 92190000 */ lbu $t9,0x0($s0)
/* f071780: 3c0a8007 */ lui $t2,0x8007
/* f071784: 254a974c */ addiu $t2,$t2,-26804
/* f071788: 00194880 */ sll $t1,$t9,0x2
/* f07178c: 01394823 */ subu $t1,$t1,$t9
/* f071790: 00094880 */ sll $t1,$t1,0x2
/* f071794: 01394821 */ addu $t1,$t1,$t9
/* f071798: 00094880 */ sll $t1,$t1,0x2
/* f07179c: 012a5821 */ addu $t3,$t1,$t2
/* f0717a0: afab00c0 */ sw $t3,0xc0($sp)
/* f0717a4: afa0008c */ sw $zero,0x8c($sp)
/* f0717a8: 3c03800a */ lui $v1,0x800a
/* f0717ac: 8c63a518 */ lw $v1,-0x5ae8($v1)
/* f0717b0: 8e0c003c */ lw $t4,0x3c($s0)
/* f0717b4: 00404025 */ move $t0,$v0
/* f0717b8: 0183082a */ slt $at,$t4,$v1
/* f0717bc: 5020000e */ beqzl $at,.PF0f0717f8
/* f0717c0: ae030038 */ sw $v1,0x38($s0)
/* f0717c4: 8fa201d4 */ lw $v0,0x1d4($sp)
/* f0717c8: 262d001c */ addiu $t5,$s1,0x1c
/* f0717cc: afad0010 */ sw $t5,0x10($sp)
/* f0717d0: 02202025 */ move $a0,$s1
/* f0717d4: 02002825 */ move $a1,$s0
/* f0717d8: afa801c0 */ sw $t0,0x1c0($sp)
/* f0717dc: 24460008 */ addiu $a2,$v0,0x8
/* f0717e0: 0fc1c59b */ jal hovUpdateGround
/* f0717e4: 24470028 */ addiu $a3,$v0,0x28
/* f0717e8: 3c03800a */ lui $v1,0x800a
/* f0717ec: 8c63a518 */ lw $v1,-0x5ae8($v1)
/* f0717f0: 8fa801c0 */ lw $t0,0x1c0($sp)
/* f0717f4: ae030038 */ sw $v1,0x38($s0)
.PF0f0717f8:
/* f0717f8: 262e001c */ addiu $t6,$s1,0x1c
/* f0717fc: afae005c */ sw $t6,0x5c($sp)
/* f071800: 8e2f0008 */ lw $t7,0x8($s1)
/* f071804: 000fc0c0 */ sll $t8,$t7,0x3
/* f071808: 07030005 */ bgezl $t8,.PF0f071820
/* f07180c: 8fa401d4 */ lw $a0,0x1d4($sp)
/* f071810: 44802000 */ mtc1 $zero,$f4
/* f071814: 100000b6 */ b .PF0f071af0
/* f071818: e7a400b4 */ swc1 $f4,0xb4($sp)
/* f07181c: 8fa401d4 */ lw $a0,0x1d4($sp)
.PF0f071820:
/* f071820: 24990008 */ addiu $t9,$a0,0x8
/* f071824: 24890028 */ addiu $t1,$a0,0x28
/* f071828: afa90060 */ sw $t1,0x60($sp)
/* f07182c: afb90064 */ sw $t9,0x64($sp)
/* f071830: 8e2a0010 */ lw $t2,0x10($s1)
/* f071834: 000a5980 */ sll $t3,$t2,0x6
/* f071838: 0561000c */ bgez $t3,.PF0f07186c
/* f07183c: 27a50088 */ addiu $a1,$sp,0x88
/* f071840: 27a60084 */ addiu $a2,$sp,0x84
/* f071844: 0fc21def */ jal propObjGetBbox
/* f071848: 27a70080 */ addiu $a3,$sp,0x80
/* f07184c: 3c017f1b */ lui $at,0x7f1b
/* f071850: c422b570 */ lwc1 $f2,-0x4a90($at)
/* f071854: c7a60088 */ lwc1 $f6,0x88($sp)
/* f071858: 46023002 */ mul.s $f0,$f6,$f2
/* f07185c: 46000207 */ neg.s $f8,$f0
/* f071860: e7a001cc */ swc1 $f0,0x1cc($sp)
/* f071864: 1000000e */ b .PF0f0718a0
/* f071868: e7a801d0 */ swc1 $f8,0x1d0($sp)
.PF0f07186c:
/* f07186c: 3c017f1b */ lui $at,0x7f1b
/* f071870: c422b574 */ lwc1 $f2,-0x4a8c($at)
/* f071874: c50a0014 */ lwc1 $f10,0x14($t0)
/* f071878: 8e2c0018 */ lw $t4,0x18($s1)
/* f07187c: 46025102 */ mul.s $f4,$f10,$f2
/* f071880: c5800014 */ lwc1 $f0,0x14($t4)
/* f071884: 46002182 */ mul.s $f6,$f4,$f0
/* f071888: e7a601d0 */ swc1 $f6,0x1d0($sp)
/* f07188c: c5080018 */ lwc1 $f8,0x18($t0)
/* f071890: 46024282 */ mul.s $f10,$f8,$f2
/* f071894: 00000000 */ nop
/* f071898: 46005102 */ mul.s $f4,$f10,$f0
/* f07189c: e7a401cc */ swc1 $f4,0x1cc($sp)
.PF0f0718a0:
/* f0718a0: 0c006858 */ jal cosf
/* f0718a4: c60c0010 */ lwc1 $f12,0x10($s0)
/* f0718a8: c60c0010 */ lwc1 $f12,0x10($s0)
/* f0718ac: 0c00685b */ jal sinf
/* f0718b0: e7a000bc */ swc1 $f0,0xbc($sp)
/* f0718b4: c7ac01d0 */ lwc1 $f12,0x1d0($sp)
/* f0718b8: 8fa201d4 */ lw $v0,0x1d4($sp)
/* f0718bc: c7a200bc */ lwc1 $f2,0xbc($sp)
/* f0718c0: 46006202 */ mul.s $f8,$f12,$f0
/* f0718c4: c4460008 */ lwc1 $f6,0x8($v0)
/* f0718c8: c7ae01cc */ lwc1 $f14,0x1cc($sp)
/* f0718cc: 3c014248 */ lui $at,0x4248
/* f0718d0: 8fa40060 */ lw $a0,0x60($sp)
/* f0718d4: 27a5009c */ addiu $a1,$sp,0x9c
/* f0718d8: 46083280 */ add.s $f10,$f6,$f8
/* f0718dc: 46026202 */ mul.s $f8,$f12,$f2
/* f0718e0: e7aa01b4 */ swc1 $f10,0x1b4($sp)
/* f0718e4: c444000c */ lwc1 $f4,0xc($v0)
/* f0718e8: e7a401b8 */ swc1 $f4,0x1b8($sp)
/* f0718ec: c4460010 */ lwc1 $f6,0x10($v0)
/* f0718f0: 46083280 */ add.s $f10,$f6,$f8
/* f0718f4: 46007182 */ mul.s $f6,$f14,$f0
/* f0718f8: e7aa01bc */ swc1 $f10,0x1bc($sp)
/* f0718fc: c4440008 */ lwc1 $f4,0x8($v0)
/* f071900: 46062200 */ add.s $f8,$f4,$f6
/* f071904: 46027182 */ mul.s $f6,$f14,$f2
/* f071908: e7a801a8 */ swc1 $f8,0x1a8($sp)
/* f07190c: c44a000c */ lwc1 $f10,0xc($v0)
/* f071910: e7aa01ac */ swc1 $f10,0x1ac($sp)
/* f071914: c4440010 */ lwc1 $f4,0x10($v0)
/* f071918: 46062200 */ add.s $f8,$f4,$f6
/* f07191c: 44813000 */ mtc1 $at,$f6
/* f071920: e7a801b0 */ swc1 $f8,0x1b0($sp)
/* f071924: c44a0008 */ lwc1 $f10,0x8($v0)
/* f071928: e7aa0090 */ swc1 $f10,0x90($sp)
/* f07192c: c444000c */ lwc1 $f4,0xc($v0)
/* f071930: 46062201 */ sub.s $f8,$f4,$f6
/* f071934: e7a80094 */ swc1 $f8,0x94($sp)
/* f071938: c44a0010 */ lwc1 $f10,0x10($v0)
/* f07193c: 0fc1968d */ jal roomsCopy
/* f071940: e7aa0098 */ swc1 $f10,0x98($sp)
/* f071944: 02202025 */ move $a0,$s1
/* f071948: 27a50090 */ addiu $a1,$sp,0x90
/* f07194c: 8fa6005c */ lw $a2,0x5c($sp)
/* f071950: 0fc2488f */ jal setup0f09233c
/* f071954: 27a7009c */ addiu $a3,$sp,0x9c
/* f071958: 8fa40064 */ lw $a0,0x64($sp)
/* f07195c: 8fa50060 */ lw $a1,0x60($sp)
/* f071960: 27a601b4 */ addiu $a2,$sp,0x1b4
/* f071964: 0fc19841 */ jal func0f065e74
/* f071968: 27a70198 */ addiu $a3,$sp,0x198
/* f07196c: 27a4009c */ addiu $a0,$sp,0x9c
/* f071970: 27a50198 */ addiu $a1,$sp,0x198
/* f071974: 0fc1969a */ jal roomsAppend
/* f071978: 24060008 */ li $a2,0x8
/* f07197c: 27a401b4 */ addiu $a0,$sp,0x1b4
/* f071980: 3c0540a0 */ lui $a1,0x40a0
/* f071984: 27a60198 */ addiu $a2,$sp,0x198
/* f071988: 26270058 */ addiu $a3,$s1,0x58
/* f07198c: 0c00a70c */ jal cdFindGroundYSimple
/* f071990: afa00010 */ sw $zero,0x10($sp)
/* f071994: 8fa40064 */ lw $a0,0x64($sp)
/* f071998: 8fa50060 */ lw $a1,0x60($sp)
/* f07199c: 27a601a8 */ addiu $a2,$sp,0x1a8
/* f0719a0: 27a70188 */ addiu $a3,$sp,0x188
/* f0719a4: 0fc19841 */ jal func0f065e74
/* f0719a8: e7a001c8 */ swc1 $f0,0x1c8($sp)
/* f0719ac: 27a4009c */ addiu $a0,$sp,0x9c
/* f0719b0: 27a50188 */ addiu $a1,$sp,0x188
/* f0719b4: 0fc1969a */ jal roomsAppend
/* f0719b8: 24060008 */ li $a2,0x8
/* f0719bc: 27a401a8 */ addiu $a0,$sp,0x1a8
/* f0719c0: 3c0540a0 */ lui $a1,0x40a0
/* f0719c4: 27a60188 */ addiu $a2,$sp,0x188
/* f0719c8: 00003825 */ move $a3,$zero
/* f0719cc: 0c00a70c */ jal cdFindGroundYSimple
/* f0719d0: afa00010 */ sw $zero,0x10($sp)
/* f0719d4: 3c017f1b */ lui $at,0x7f1b
/* f0719d8: c42cb578 */ lwc1 $f12,-0x4a88($at)
/* f0719dc: c7a201c8 */ lwc1 $f2,0x1c8($sp)
/* f0719e0: 46000406 */ mov.s $f16,$f0
/* f0719e4: 4602603e */ c.le.s $f12,$f2
/* f0719e8: 00000000 */ nop
/* f0719ec: 45020016 */ bc1fl .PF0f071a48
/* f0719f0: 4602603e */ c.le.s $f12,$f2
/* f0719f4: 4600603e */ c.le.s $f12,$f0
/* f0719f8: c7a401cc */ lwc1 $f4,0x1cc($sp)
/* f0719fc: c7a601d0 */ lwc1 $f6,0x1d0($sp)
/* f071a00: 45020011 */ bc1fl .PF0f071a48
/* f071a04: 4602603e */ c.le.s $f12,$f2
/* f071a08: 46101301 */ sub.s $f12,$f2,$f16
/* f071a0c: 0fc2599c */ jal atan2f
/* f071a10: 46062381 */ sub.s $f14,$f4,$f6
/* f071a14: 3c017f1b */ lui $at,0x7f1b
/* f071a18: c428b57c */ lwc1 $f8,-0x4a84($at)
/* f071a1c: 46000086 */ mov.s $f2,$f0
/* f071a20: 3c017f1b */ lui $at,0x7f1b
/* f071a24: 4600403e */ c.le.s $f8,$f0
/* f071a28: 00000000 */ nop
/* f071a2c: 45000003 */ bc1f .PF0f071a3c
/* f071a30: 00000000 */ nop
/* f071a34: c42ab580 */ lwc1 $f10,-0x4a80($at)
/* f071a38: 460a0081 */ sub.s $f2,$f0,$f10
.PF0f071a3c:
/* f071a3c: 1000002c */ b .PF0f071af0
/* f071a40: e7a200b4 */ swc1 $f2,0xb4($sp)
/* f071a44: 4602603e */ c.le.s $f12,$f2
.PF0f071a48:
/* f071a48: c7ae01d0 */ lwc1 $f14,0x1d0($sp)
/* f071a4c: 45020012 */ bc1fl .PF0f071a98
/* f071a50: 4600603e */ c.le.s $f12,$f0
/* f071a54: c6040034 */ lwc1 $f4,0x34($s0)
/* f071a58: 46007387 */ neg.s $f14,$f14
/* f071a5c: 0fc2599c */ jal atan2f
/* f071a60: 46041301 */ sub.s $f12,$f2,$f4
/* f071a64: 3c017f1b */ lui $at,0x7f1b
/* f071a68: c426b584 */ lwc1 $f6,-0x4a7c($at)
/* f071a6c: 46000086 */ mov.s $f2,$f0
/* f071a70: 3c017f1b */ lui $at,0x7f1b
/* f071a74: 4600303e */ c.le.s $f6,$f0
/* f071a78: 00000000 */ nop
/* f071a7c: 45000003 */ bc1f .PF0f071a8c
/* f071a80: 00000000 */ nop
/* f071a84: c428b588 */ lwc1 $f8,-0x4a78($at)
/* f071a88: 46080081 */ sub.s $f2,$f0,$f8
.PF0f071a8c:
/* f071a8c: 10000018 */ b .PF0f071af0
/* f071a90: e7a200b4 */ swc1 $f2,0xb4($sp)
/* f071a94: 4600603e */ c.le.s $f12,$f0
.PF0f071a98:
/* f071a98: 00000000 */ nop
/* f071a9c: 45020012 */ bc1fl .PF0f071ae8
/* f071aa0: 44804000 */ mtc1 $zero,$f8
/* f071aa4: c60a0034 */ lwc1 $f10,0x34($s0)
/* f071aa8: c7ae01cc */ lwc1 $f14,0x1cc($sp)
/* f071aac: 0fc2599c */ jal atan2f
/* f071ab0: 46105301 */ sub.s $f12,$f10,$f16
/* f071ab4: 3c017f1b */ lui $at,0x7f1b
/* f071ab8: c424b58c */ lwc1 $f4,-0x4a74($at)
/* f071abc: 46000086 */ mov.s $f2,$f0
/* f071ac0: 3c017f1b */ lui $at,0x7f1b
/* f071ac4: 4600203e */ c.le.s $f4,$f0
/* f071ac8: 00000000 */ nop
/* f071acc: 45000003 */ bc1f .PF0f071adc
/* f071ad0: 00000000 */ nop
/* f071ad4: c426b590 */ lwc1 $f6,-0x4a70($at)
/* f071ad8: 46060081 */ sub.s $f2,$f0,$f6
.PF0f071adc:
/* f071adc: 10000004 */ b .PF0f071af0
/* f071ae0: e7a200b4 */ swc1 $f2,0xb4($sp)
/* f071ae4: 44804000 */ mtc1 $zero,$f8
.PF0f071ae8:
/* f071ae8: 00000000 */ nop
/* f071aec: e7a800b4 */ swc1 $f8,0xb4($sp)
.PF0f071af0:
/* f071af0: c60a0034 */ lwc1 $f10,0x34($s0)
/* f071af4: e7aa00ac */ swc1 $f10,0xac($sp)
/* f071af8: 8e2d0040 */ lw $t5,0x40($s1)
/* f071afc: 000d7100 */ sll $t6,$t5,0x4
/* f071b00: 05c1000c */ bgez $t6,.PF0f071b34
/* f071b04: 3c0f800a */ lui $t7,0x800a
/* f071b08: 8defa794 */ lw $t7,-0x586c($t7)
/* f071b0c: 3c01428c */ lui $at,0x428c
/* f071b10: 44813000 */ mtc1 $at,$f6
/* f071b14: c5e00078 */ lwc1 $f0,0x78($t7)
/* f071b18: c7a400ac */ lwc1 $f4,0xac($sp)
/* f071b1c: 46060201 */ sub.s $f8,$f0,$f6
/* f071b20: 4608203c */ c.lt.s $f4,$f8
/* f071b24: 00000000 */ nop
/* f071b28: 45020003 */ bc1fl .PF0f071b38
/* f071b2c: 92020001 */ lbu $v0,0x1($s0)
/* f071b30: e7a000ac */ swc1 $f0,0xac($sp)
.PF0f071b34:
/* f071b34: 92020001 */ lbu $v0,0x1($s0)
.PF0f071b38:
/* f071b38: 30580001 */ andi $t8,$v0,0x1
/* f071b3c: 53000023 */ beqzl $t8,.PF0f071bcc
/* f071b40: 8fae00c0 */ lw $t6,0xc0($sp)
/* f071b44: 8fa900c0 */ lw $t1,0xc0($sp)
/* f071b48: 24190001 */ li $t9,0x1
/* f071b4c: afb9008c */ sw $t9,0x8c($sp)
/* f071b50: c5200000 */ lwc1 $f0,0x0($t1)
/* f071b54: 304afffe */ andi $t2,$v0,0xfffe
/* f071b58: 24010033 */ li $at,0x33
/* f071b5c: e6000008 */ swc1 $f0,0x8($s0)
/* f071b60: e6000004 */ swc1 $f0,0x4($s0)
/* f071b64: c7aa00ac */ lwc1 $f10,0xac($sp)
/* f071b68: a20a0001 */ sb $t2,0x1($s0)
/* f071b6c: 00002025 */ move $a0,$zero
/* f071b70: e60a0030 */ swc1 $f10,0x30($s0)
/* f071b74: 922b0003 */ lbu $t3,0x3($s1)
/* f071b78: 240680af */ li $a2,-32593
/* f071b7c: 2407ffff */ li $a3,-1
/* f071b80: 15610011 */ bne $t3,$at,.PF0f071bc8
/* f071b84: 240cffff */ li $t4,-1
/* f071b88: 8e250014 */ lw $a1,0x14($s1)
/* f071b8c: 3c01bf80 */ lui $at,0xbf80
/* f071b90: 44810000 */ mtc1 $at,$f0
/* f071b94: 240dffff */ li $t5,-1
/* f071b98: afad002c */ sw $t5,0x2c($sp)
/* f071b9c: afa00028 */ sw $zero,0x28($sp)
/* f071ba0: afa00020 */ sw $zero,0x20($sp)
/* f071ba4: afa0001c */ sw $zero,0x1c($sp)
/* f071ba8: afa00018 */ sw $zero,0x18($sp)
/* f071bac: afa00014 */ sw $zero,0x14($sp)
/* f071bb0: afac0010 */ sw $t4,0x10($sp)
/* f071bb4: e7a00024 */ swc1 $f0,0x24($sp)
/* f071bb8: e7a00030 */ swc1 $f0,0x30($sp)
/* f071bbc: e7a00034 */ swc1 $f0,0x34($sp)
/* f071bc0: 0fc24e3a */ jal propsnd0f0939f8
/* f071bc4: e7a00038 */ swc1 $f0,0x38($sp)
.PF0f071bc8:
/* f071bc8: 8fae00c0 */ lw $t6,0xc0($sp)
.PF0f071bcc:
/* f071bcc: 8e050008 */ lw $a1,0x8($s0)
/* f071bd0: 26040004 */ addiu $a0,$s0,0x4
/* f071bd4: c5c0000c */ lwc1 $f0,0xc($t6)
/* f071bd8: 2606000c */ addiu $a2,$s0,0xc
/* f071bdc: e7a00010 */ swc1 $f0,0x10($sp)
/* f071be0: c5c60010 */ lwc1 $f6,0x10($t6)
/* f071be4: 44070000 */ mfc1 $a3,$f0
/* f071be8: 0fc1b6e5 */ jal applySpeed
/* f071bec: e7a60014 */ swc1 $f6,0x14($sp)
/* f071bf0: 8fa200c0 */ lw $v0,0xc0($sp)
/* f071bf4: c6000008 */ lwc1 $f0,0x8($s0)
/* f071bf8: c4420000 */ lwc1 $f2,0x0($v0)
/* f071bfc: 4600103e */ c.le.s $f2,$f0
/* f071c00: 00000000 */ nop
/* f071c04: 4502001f */ bc1fl .PF0f071c84
/* f071c08: 4602003c */ c.lt.s $f0,$f2
/* f071c0c: c6040004 */ lwc1 $f4,0x4($s0)
/* f071c10: 4604003e */ c.le.s $f0,$f4
/* f071c14: 00000000 */ nop
/* f071c18: 4502001a */ bc1fl .PF0f071c84
/* f071c1c: 4602003c */ c.lt.s $f0,$f2
/* f071c20: 44804000 */ mtc1 $zero,$f8
/* f071c24: 0c004ad4 */ jal random
/* f071c28: e608000c */ swc1 $f8,0xc($s0)
/* f071c2c: 8fa300c0 */ lw $v1,0xc0($sp)
/* f071c30: 44824000 */ mtc1 $v0,$f8
/* f071c34: 3c014f80 */ lui $at,0x4f80
/* f071c38: c46a0000 */ lwc1 $f10,0x0($v1)
/* f071c3c: c4660004 */ lwc1 $f6,0x4($v1)
/* f071c40: 46065101 */ sub.s $f4,$f10,$f6
/* f071c44: 04410004 */ bgez $v0,.PF0f071c58
/* f071c48: 468042a0 */ cvt.s.w $f10,$f8
/* f071c4c: 44813000 */ mtc1 $at,$f6
/* f071c50: 00000000 */ nop
/* f071c54: 46065280 */ add.s $f10,$f10,$f6
.PF0f071c58:
/* f071c58: 3c012f80 */ lui $at,0x2f80
/* f071c5c: 44814000 */ mtc1 $at,$f8
/* f071c60: 00000000 */ nop
/* f071c64: 46085182 */ mul.s $f6,$f10,$f8
/* f071c68: c46a0008 */ lwc1 $f10,0x8($v1)
/* f071c6c: 460a3202 */ mul.s $f8,$f6,$f10
/* f071c70: 46082181 */ sub.s $f6,$f4,$f8
/* f071c74: e6060008 */ swc1 $f6,0x8($s0)
/* f071c78: 10000020 */ b .PF0f071cfc
/* f071c7c: 8fa200c0 */ lw $v0,0xc0($sp)
/* f071c80: 4602003c */ c.lt.s $f0,$f2
.PF0f071c84:
/* f071c84: 00000000 */ nop
/* f071c88: 4502001d */ bc1fl .PF0f071d00
/* f071c8c: c440001c */ lwc1 $f0,0x1c($v0)
/* f071c90: c60a0004 */ lwc1 $f10,0x4($s0)
/* f071c94: 4600503e */ c.le.s $f10,$f0
/* f071c98: 00000000 */ nop
/* f071c9c: 45020018 */ bc1fl .PF0f071d00
/* f071ca0: c440001c */ lwc1 $f0,0x1c($v0)
/* f071ca4: 44802000 */ mtc1 $zero,$f4
/* f071ca8: 0c004ad4 */ jal random
/* f071cac: e604000c */ swc1 $f4,0xc($s0)
/* f071cb0: 44824000 */ mtc1 $v0,$f8
/* f071cb4: 3c014f80 */ lui $at,0x4f80
/* f071cb8: 04410004 */ bgez $v0,.PF0f071ccc
/* f071cbc: 468041a0 */ cvt.s.w $f6,$f8
/* f071cc0: 44815000 */ mtc1 $at,$f10
/* f071cc4: 00000000 */ nop
/* f071cc8: 460a3180 */ add.s $f6,$f6,$f10
.PF0f071ccc:
/* f071ccc: 3c012f80 */ lui $at,0x2f80
/* f071cd0: 44812000 */ mtc1 $at,$f4
/* f071cd4: 8faf00c0 */ lw $t7,0xc0($sp)
/* f071cd8: 46043202 */ mul.s $f8,$f6,$f4
/* f071cdc: c5ea0008 */ lwc1 $f10,0x8($t7)
/* f071ce0: c5e40000 */ lwc1 $f4,0x0($t7)
/* f071ce4: 460a4182 */ mul.s $f6,$f8,$f10
/* f071ce8: c5e80004 */ lwc1 $f8,0x4($t7)
/* f071cec: 46082280 */ add.s $f10,$f4,$f8
/* f071cf0: 460a3100 */ add.s $f4,$f6,$f10
/* f071cf4: e6040008 */ swc1 $f4,0x8($s0)
/* f071cf8: 8fa200c0 */ lw $v0,0xc0($sp)
.PF0f071cfc:
/* f071cfc: c440001c */ lwc1 $f0,0x1c($v0)
.PF0f071d00:
/* f071d00: 8e050018 */ lw $a1,0x18($s0)
/* f071d04: 26040014 */ addiu $a0,$s0,0x14
/* f071d08: e7a00010 */ swc1 $f0,0x10($sp)
/* f071d0c: c4480020 */ lwc1 $f8,0x20($v0)
/* f071d10: 44070000 */ mfc1 $a3,$f0
/* f071d14: 2606001c */ addiu $a2,$s0,0x1c
/* f071d18: 0fc1b762 */ jal applyRotation
/* f071d1c: e7a80014 */ swc1 $f8,0x14($sp)
/* f071d20: c60c0018 */ lwc1 $f12,0x18($s0)
/* f071d24: c6060014 */ lwc1 $f6,0x14($s0)
/* f071d28: 46066032 */ c.eq.s $f12,$f6
/* f071d2c: 00000000 */ nop
/* f071d30: 45020041 */ bc1fl .PF0f071e38
/* f071d34: 8fa200c0 */ lw $v0,0xc0($sp)
/* f071d38: 8fa200c0 */ lw $v0,0xc0($sp)
/* f071d3c: c60e001c */ lwc1 $f14,0x1c($s0)
/* f071d40: c440001c */ lwc1 $f0,0x1c($v0)
/* f071d44: 46000280 */ add.s $f10,$f0,$f0
/* f071d48: 460a703e */ c.le.s $f14,$f10
/* f071d4c: 00000000 */ nop
/* f071d50: 45020039 */ bc1fl .PF0f071e38
/* f071d54: 8fa200c0 */ lw $v0,0xc0($sp)
/* f071d58: 46000087 */ neg.s $f2,$f0
/* f071d5c: 46021100 */ add.s $f4,$f2,$f2
/* f071d60: 460e203e */ c.le.s $f4,$f14
/* f071d64: 00000000 */ nop
/* f071d68: 45020033 */ bc1fl .PF0f071e38
/* f071d6c: 8fa200c0 */ lw $v0,0xc0($sp)
/* f071d70: 44804000 */ mtc1 $zero,$f8
/* f071d74: 3c017f1b */ lui $at,0x7f1b
/* f071d78: e608001c */ swc1 $f8,0x1c($s0)
/* f071d7c: c426b594 */ lwc1 $f6,-0x4a6c($at)
/* f071d80: 4606603c */ c.lt.s $f12,$f6
/* f071d84: 00000000 */ nop
/* f071d88: 45000018 */ bc1f .PF0f071dec
/* f071d8c: 00000000 */ nop
/* f071d90: 0c004ad4 */ jal random
/* f071d94: 00000000 */ nop
/* f071d98: 8fa300c0 */ lw $v1,0xc0($sp)
/* f071d9c: 3c017f1b */ lui $at,0x7f1b
/* f071da0: c42ab598 */ lwc1 $f10,-0x4a68($at)
/* f071da4: c4640014 */ lwc1 $f4,0x14($v1)
/* f071da8: 44823000 */ mtc1 $v0,$f6
/* f071dac: 3c014f80 */ lui $at,0x4f80
/* f071db0: 46045201 */ sub.s $f8,$f10,$f4
/* f071db4: 04410004 */ bgez $v0,.PF0f071dc8
/* f071db8: 468032a0 */ cvt.s.w $f10,$f6
/* f071dbc: 44812000 */ mtc1 $at,$f4
/* f071dc0: 00000000 */ nop
/* f071dc4: 46045280 */ add.s $f10,$f10,$f4
.PF0f071dc8:
/* f071dc8: 3c012f80 */ lui $at,0x2f80
/* f071dcc: 44813000 */ mtc1 $at,$f6
/* f071dd0: 00000000 */ nop
/* f071dd4: 46065102 */ mul.s $f4,$f10,$f6
/* f071dd8: c46a0018 */ lwc1 $f10,0x18($v1)
/* f071ddc: 460a2182 */ mul.s $f6,$f4,$f10
/* f071de0: 46064101 */ sub.s $f4,$f8,$f6
/* f071de4: 10000013 */ b .PF0f071e34
/* f071de8: e6040018 */ swc1 $f4,0x18($s0)
.PF0f071dec:
/* f071dec: 0c004ad4 */ jal random
/* f071df0: 00000000 */ nop
/* f071df4: 44825000 */ mtc1 $v0,$f10
/* f071df8: 3c014f80 */ lui $at,0x4f80
/* f071dfc: 04410004 */ bgez $v0,.PF0f071e10
/* f071e00: 46805220 */ cvt.s.w $f8,$f10
/* f071e04: 44813000 */ mtc1 $at,$f6
/* f071e08: 00000000 */ nop
/* f071e0c: 46064200 */ add.s $f8,$f8,$f6
.PF0f071e10:
/* f071e10: 3c012f80 */ lui $at,0x2f80
/* f071e14: 44812000 */ mtc1 $at,$f4
/* f071e18: 8fb800c0 */ lw $t8,0xc0($sp)
/* f071e1c: 46044282 */ mul.s $f10,$f8,$f4
/* f071e20: c7060018 */ lwc1 $f6,0x18($t8)
/* f071e24: c7040014 */ lwc1 $f4,0x14($t8)
/* f071e28: 46065202 */ mul.s $f8,$f10,$f6
/* f071e2c: 46044280 */ add.s $f10,$f8,$f4
/* f071e30: e60a0018 */ swc1 $f10,0x18($s0)
.PF0f071e34:
/* f071e34: 8fa200c0 */ lw $v0,0xc0($sp)
.PF0f071e38:
/* f071e38: 8e050024 */ lw $a1,0x24($s0)
/* f071e3c: 26040020 */ addiu $a0,$s0,0x20
/* f071e40: c440002c */ lwc1 $f0,0x2c($v0)
/* f071e44: 26060028 */ addiu $a2,$s0,0x28
/* f071e48: e7a00010 */ swc1 $f0,0x10($sp)
/* f071e4c: c4460030 */ lwc1 $f6,0x30($v0)
/* f071e50: 44070000 */ mfc1 $a3,$f0
/* f071e54: 0fc1b762 */ jal applyRotation
/* f071e58: e7a60014 */ swc1 $f6,0x14($sp)
/* f071e5c: c60c0024 */ lwc1 $f12,0x24($s0)
/* f071e60: c6080020 */ lwc1 $f8,0x20($s0)
/* f071e64: 46086032 */ c.eq.s $f12,$f8
/* f071e68: 00000000 */ nop
/* f071e6c: 45000040 */ bc1f .PF0f071f70
/* f071e70: 00000000 */ nop
/* f071e74: 8fb900c0 */ lw $t9,0xc0($sp)
/* f071e78: c60e0028 */ lwc1 $f14,0x28($s0)
/* f071e7c: c720002c */ lwc1 $f0,0x2c($t9)
/* f071e80: 46000100 */ add.s $f4,$f0,$f0
/* f071e84: 4604703e */ c.le.s $f14,$f4
/* f071e88: 00000000 */ nop
/* f071e8c: 45000038 */ bc1f .PF0f071f70
/* f071e90: 00000000 */ nop
/* f071e94: 46000087 */ neg.s $f2,$f0
/* f071e98: 46021280 */ add.s $f10,$f2,$f2
/* f071e9c: 460e503e */ c.le.s $f10,$f14
/* f071ea0: 00000000 */ nop
/* f071ea4: 45000032 */ bc1f .PF0f071f70
/* f071ea8: 00000000 */ nop
/* f071eac: 44803000 */ mtc1 $zero,$f6
/* f071eb0: 3c017f1b */ lui $at,0x7f1b
/* f071eb4: e6060028 */ swc1 $f6,0x28($s0)
/* f071eb8: c428b59c */ lwc1 $f8,-0x4a64($at)
/* f071ebc: 4608603c */ c.lt.s $f12,$f8
/* f071ec0: 00000000 */ nop
/* f071ec4: 45000018 */ bc1f .PF0f071f28
/* f071ec8: 00000000 */ nop
/* f071ecc: 0c004ad4 */ jal random
/* f071ed0: 00000000 */ nop
/* f071ed4: 8fa900c0 */ lw $t1,0xc0($sp)
/* f071ed8: 3c017f1b */ lui $at,0x7f1b
/* f071edc: c424b5a0 */ lwc1 $f4,-0x4a60($at)
/* f071ee0: c52a0024 */ lwc1 $f10,0x24($t1)
/* f071ee4: 44824000 */ mtc1 $v0,$f8
/* f071ee8: 3c014f80 */ lui $at,0x4f80
/* f071eec: 460a2181 */ sub.s $f6,$f4,$f10
/* f071ef0: 04410004 */ bgez $v0,.PF0f071f04
/* f071ef4: 46804120 */ cvt.s.w $f4,$f8
/* f071ef8: 44815000 */ mtc1 $at,$f10
/* f071efc: 00000000 */ nop
/* f071f00: 460a2100 */ add.s $f4,$f4,$f10
.PF0f071f04:
/* f071f04: 3c012f80 */ lui $at,0x2f80
/* f071f08: 44814000 */ mtc1 $at,$f8
/* f071f0c: 00000000 */ nop
/* f071f10: 46082282 */ mul.s $f10,$f4,$f8
/* f071f14: c5240028 */ lwc1 $f4,0x28($t1)
/* f071f18: 46045202 */ mul.s $f8,$f10,$f4
/* f071f1c: 46083281 */ sub.s $f10,$f6,$f8
/* f071f20: 10000013 */ b .PF0f071f70
/* f071f24: e60a0024 */ swc1 $f10,0x24($s0)
.PF0f071f28:
/* f071f28: 0c004ad4 */ jal random
/* f071f2c: 00000000 */ nop
/* f071f30: 44822000 */ mtc1 $v0,$f4
/* f071f34: 3c014f80 */ lui $at,0x4f80
/* f071f38: 04410004 */ bgez $v0,.PF0f071f4c
/* f071f3c: 468021a0 */ cvt.s.w $f6,$f4
/* f071f40: 44814000 */ mtc1 $at,$f8
/* f071f44: 00000000 */ nop
/* f071f48: 46083180 */ add.s $f6,$f6,$f8
.PF0f071f4c:
/* f071f4c: 3c012f80 */ lui $at,0x2f80
/* f071f50: 44815000 */ mtc1 $at,$f10
/* f071f54: 8faa00c0 */ lw $t2,0xc0($sp)
/* f071f58: 460a3102 */ mul.s $f4,$f6,$f10
/* f071f5c: c5480028 */ lwc1 $f8,0x28($t2)
/* f071f60: c54a0024 */ lwc1 $f10,0x24($t2)
/* f071f64: 46082182 */ mul.s $f6,$f4,$f8
/* f071f68: 460a3100 */ add.s $f4,$f6,$f10
/* f071f6c: e6040024 */ swc1 $f4,0x24($s0)
.PF0f071f70:
/* f071f70: 3c04800a */ lui $a0,0x800a
/* f071f74: 2484a510 */ addiu $a0,$a0,-23280
/* f071f78: 8c8b0038 */ lw $t3,0x38($a0)
/* f071f7c: 00001025 */ move $v0,$zero
/* f071f80: 19600070 */ blez $t3,.PF0f072144
/* f071f84: 3c017f1b */ lui $at,0x7f1b
/* f071f88: c432b5a4 */ lwc1 $f18,-0x4a5c($at)
/* f071f8c: 3c014120 */ lui $at,0x4120
/* f071f90: 44818000 */ mtc1 $at,$f16
/* f071f94: 3c030400 */ lui $v1,0x400
/* f071f98: c602002c */ lwc1 $f2,0x2c($s0)
.PF0f071f9c:
/* f071f9c: c7a800b4 */ lwc1 $f8,0xb4($sp)
/* f071fa0: 3c017f1b */ lui $at,0x7f1b
/* f071fa4: c42ab5a8 */ lwc1 $f10,-0x4a58($at)
/* f071fa8: 46024181 */ sub.s $f6,$f8,$f2
/* f071fac: c60e0030 */ lwc1 $f14,0x30($s0)
/* f071fb0: 46009306 */ mov.s $f12,$f18
/* f071fb4: 240e0001 */ li $t6,0x1
/* f071fb8: 460a3102 */ mul.s $f4,$f6,$f10
/* f071fbc: c60a0034 */ lwc1 $f10,0x34($s0)
/* f071fc0: 460a703c */ c.lt.s $f14,$f10
/* f071fc4: 46041200 */ add.s $f8,$f2,$f4
/* f071fc8: e608002c */ swc1 $f8,0x2c($s0)
/* f071fcc: c7a600ac */ lwc1 $f6,0xac($sp)
/* f071fd0: 45000021 */ bc1f .PF0f072058
/* f071fd4: 460e3001 */ sub.s $f0,$f6,$f14
/* f071fd8: 44802000 */ mtc1 $zero,$f4
/* f071fdc: 3c017f1b */ lui $at,0x7f1b
/* f071fe0: 4600203e */ c.le.s $f4,$f0
/* f071fe4: 00000000 */ nop
/* f071fe8: 45020004 */ bc1fl .PF0f071ffc
/* f071fec: 46000087 */ neg.s $f2,$f0
/* f071ff0: 10000002 */ b .PF0f071ffc
/* f071ff4: 46000086 */ mov.s $f2,$f0
/* f071ff8: 46000087 */ neg.s $f2,$f0
.PF0f071ffc:
/* f071ffc: 4602803c */ c.lt.s $f16,$f2
/* f072000: 00000000 */ nop
/* f072004: 45000009 */ bc1f .PF0f07202c
/* f072008: 00000000 */ nop
/* f07200c: 46101201 */ sub.s $f8,$f2,$f16
/* f072010: c426b5ac */ lwc1 $f6,-0x4a54($at)
/* f072014: 3c013f80 */ lui $at,0x3f80
/* f072018: 44812000 */ mtc1 $at,$f4
/* f07201c: 46064282 */ mul.s $f10,$f8,$f6
/* f072020: 460a2200 */ add.s $f8,$f4,$f10
/* f072024: 46089302 */ mul.s $f12,$f18,$f8
/* f072028: 00000000 */ nop
.PF0f07202c:
/* f07202c: 3c017f1b */ lui $at,0x7f1b
/* f072030: c426b5b0 */ lwc1 $f6,-0x4a50($at)
/* f072034: 3c017f1b */ lui $at,0x7f1b
/* f072038: 460c303c */ c.lt.s $f6,$f12
/* f07203c: 00000000 */ nop
/* f072040: 45000002 */ bc1f .PF0f07204c
/* f072044: 00000000 */ nop
/* f072048: c42cb5b4 */ lwc1 $f12,-0x4a4c($at)
.PF0f07204c:
/* f07204c: 460c0002 */ mul.s $f0,$f0,$f12
/* f072050: 10000029 */ b .PF0f0720f8
/* f072054: 3c013f80 */ lui $at,0x3f80
.PF0f072058:
/* f072058: 8e2c0040 */ lw $t4,0x40($s1)
/* f07205c: 46120002 */ mul.s $f0,$f0,$f18
/* f072060: 3c0140a0 */ lui $at,0x40a0
/* f072064: 01836824 */ and $t5,$t4,$v1
/* f072068: 51a00011 */ beqzl $t5,.PF0f0720b0
/* f07206c: 44815000 */ mtc1 $at,$f10
/* f072070: 4600803c */ c.lt.s $f16,$f0
/* f072074: 3c01c120 */ lui $at,0xc120
/* f072078: 45020004 */ bc1fl .PF0f07208c
/* f07207c: 44812000 */ mtc1 $at,$f4
/* f072080: 1000001c */ b .PF0f0720f4
/* f072084: 46008006 */ mov.s $f0,$f16
/* f072088: 44812000 */ mtc1 $at,$f4
.PF0f07208c:
/* f07208c: 3c01c120 */ lui $at,0xc120
/* f072090: 4604003c */ c.lt.s $f0,$f4
/* f072094: 00000000 */ nop
/* f072098: 45020017 */ bc1fl .PF0f0720f8
/* f07209c: 3c013f80 */ lui $at,0x3f80
/* f0720a0: 44810000 */ mtc1 $at,$f0
/* f0720a4: 10000014 */ b .PF0f0720f8
/* f0720a8: 3c013f80 */ lui $at,0x3f80
/* f0720ac: 44815000 */ mtc1 $at,$f10
.PF0f0720b0:
/* f0720b0: 3c01c0a0 */ lui $at,0xc0a0
/* f0720b4: 4600503c */ c.lt.s $f10,$f0
/* f0720b8: 00000000 */ nop
/* f0720bc: 45020006 */ bc1fl .PF0f0720d8
/* f0720c0: 44814000 */ mtc1 $at,$f8
/* f0720c4: 3c0140a0 */ lui $at,0x40a0
/* f0720c8: 44810000 */ mtc1 $at,$f0
/* f0720cc: 1000000a */ b .PF0f0720f8
/* f0720d0: 3c013f80 */ lui $at,0x3f80
/* f0720d4: 44814000 */ mtc1 $at,$f8
.PF0f0720d8:
/* f0720d8: 3c01c0a0 */ lui $at,0xc0a0
/* f0720dc: 4608003c */ c.lt.s $f0,$f8
/* f0720e0: 00000000 */ nop
/* f0720e4: 45020004 */ bc1fl .PF0f0720f8
/* f0720e8: 3c013f80 */ lui $at,0x3f80
/* f0720ec: 44810000 */ mtc1 $at,$f0
/* f0720f0: 00000000 */ nop
.PF0f0720f4:
/* f0720f4: 3c013f80 */ lui $at,0x3f80
.PF0f0720f8:
/* f0720f8: 44812000 */ mtc1 $at,$f4
/* f0720fc: 46007180 */ add.s $f6,$f14,$f0
/* f072100: 3c01bf80 */ lui $at,0xbf80
/* f072104: 4600203c */ c.lt.s $f4,$f0
/* f072108: e6060030 */ swc1 $f6,0x30($s0)
/* f07210c: 45030008 */ bc1tl .PF0f072130
/* f072110: afae008c */ sw $t6,0x8c($sp)
/* f072114: 44815000 */ mtc1 $at,$f10
/* f072118: 00000000 */ nop
/* f07211c: 460a003c */ c.lt.s $f0,$f10
/* f072120: 00000000 */ nop
/* f072124: 45020003 */ bc1fl .PF0f072134
/* f072128: 8c8f0038 */ lw $t7,0x38($a0)
/* f07212c: afae008c */ sw $t6,0x8c($sp)
.PF0f072130:
/* f072130: 8c8f0038 */ lw $t7,0x38($a0)
.PF0f072134:
/* f072134: 24420001 */ addiu $v0,$v0,0x1
/* f072138: 004f082a */ slt $at,$v0,$t7
/* f07213c: 5420ff97 */ bnezl $at,.PF0f071f9c
/* f072140: c602002c */ lwc1 $f2,0x2c($s0)
.PF0f072144:
/* f072144: 8fb8008c */ lw $t8,0x8c($sp)
/* f072148: 13000004 */ beqz $t8,.PF0f07215c
/* f07214c: 02202025 */ move $a0,$s1
/* f072150: 24050001 */ li $a1,0x1
/* f072154: 0fc1a7be */ jal func0f069c70
/* f072158: 24060001 */ li $a2,0x1
.PF0f07215c:
/* f07215c: 3c0140a0 */ lui $at,0x40a0
/* f072160: 44811000 */ mtc1 $at,$f2
/* f072164: c6000034 */ lwc1 $f0,0x34($s0)
/* f072168: c60e0030 */ lwc1 $f14,0x30($s0)
/* f07216c: 46020201 */ sub.s $f8,$f0,$f2
/* f072170: 4608703c */ c.lt.s $f14,$f8
/* f072174: 00000000 */ nop
/* f072178: 45030007 */ bc1tl .PF0f072198
/* f07217c: 8e390008 */ lw $t9,0x8($s1)
/* f072180: 46020180 */ add.s $f6,$f0,$f2
/* f072184: 460e303c */ c.lt.s $f6,$f14
/* f072188: 00000000 */ nop
/* f07218c: 45020007 */ bc1fl .PF0f0721ac
/* f072190: 8e2a0008 */ lw $t2,0x8($s1)
/* f072194: 8e390008 */ lw $t9,0x8($s1)
.PF0f072198:
/* f072198: 3c018000 */ lui $at,0x8000
/* f07219c: 03214825 */ or $t1,$t9,$at
/* f0721a0: 10000006 */ b .PF0f0721bc
/* f0721a4: ae290008 */ sw $t1,0x8($s1)
/* f0721a8: 8e2a0008 */ lw $t2,0x8($s1)
.PF0f0721ac:
/* f0721ac: 3c017fff */ lui $at,0x7fff
/* f0721b0: 3421ffff */ ori $at,$at,0xffff
/* f0721b4: 01415824 */ and $t3,$t2,$at
/* f0721b8: ae2b0008 */ sw $t3,0x8($s1)
.PF0f0721bc:
/* f0721bc: 0fc1c57a */ jal objGetHov04
/* f0721c0: 02202025 */ move $a0,$s1
/* f0721c4: c6040030 */ lwc1 $f4,0x30($s0)
/* f0721c8: 8fac01d4 */ lw $t4,0x1d4($sp)
/* f0721cc: 27a50148 */ addiu $a1,$sp,0x148
/* f0721d0: 46040280 */ add.s $f10,$f0,$f4
/* f0721d4: e58a000c */ swc1 $f10,0xc($t4)
/* f0721d8: 0c005864 */ jal mtx4LoadZRotation
/* f0721dc: c60c0020 */ lwc1 $f12,0x20($s0)
/* f0721e0: c608002c */ lwc1 $f8,0x2c($s0)
/* f0721e4: c6060014 */ lwc1 $f6,0x14($s0)
/* f0721e8: 3c017f1b */ lui $at,0x7f1b
/* f0721ec: c424b5b8 */ lwc1 $f4,-0x4a48($at)
/* f0721f0: 46064300 */ add.s $f12,$f8,$f6
/* f0721f4: 3c017f1b */ lui $at,0x7f1b
/* f0721f8: 460c203e */ c.le.s $f4,$f12
/* f0721fc: 00000000 */ nop
/* f072200: 45020005 */ bc1fl .PF0f072218
/* f072204: 44804000 */ mtc1 $zero,$f8
/* f072208: c42ab5bc */ lwc1 $f10,-0x4a44($at)
/* f07220c: 10000009 */ b .PF0f072234
/* f072210: 460a6301 */ sub.s $f12,$f12,$f10
/* f072214: 44804000 */ mtc1 $zero,$f8
.PF0f072218:
/* f072218: 3c017f1b */ lui $at,0x7f1b
/* f07221c: 4608603c */ c.lt.s $f12,$f8
/* f072220: 00000000 */ nop
/* f072224: 45000003 */ bc1f .PF0f072234
/* f072228: 00000000 */ nop
/* f07222c: c426b5c0 */ lwc1 $f6,-0x4a40($at)
/* f072230: 46066300 */ add.s $f12,$f12,$f6
.PF0f072234:
/* f072234: 0c00581e */ jal mtx4LoadXRotation
/* f072238: 27a50108 */ addiu $a1,$sp,0x108
/* f07223c: 27a40108 */ addiu $a0,$sp,0x108
/* f072240: 0c00565c */ jal mtx00015be0
/* f072244: 27a50148 */ addiu $a1,$sp,0x148
/* f072248: c60c0010 */ lwc1 $f12,0x10($s0)
/* f07224c: 0c005841 */ jal mtx4LoadYRotation
/* f072250: 27a50108 */ addiu $a1,$sp,0x108
/* f072254: 27b00108 */ addiu $s0,$sp,0x108
/* f072258: 02002025 */ move $a0,$s0
/* f07225c: 0c00565c */ jal mtx00015be0
/* f072260: 27a50148 */ addiu $a1,$sp,0x148
/* f072264: 8e2d0018 */ lw $t5,0x18($s1)
/* f072268: 27a50148 */ addiu $a1,$sp,0x148
/* f07226c: 0c005725 */ jal mtx00015f04
/* f072270: c5ac0014 */ lwc1 $f12,0x14($t5)
/* f072274: 922e0003 */ lbu $t6,0x3($s1)
/* f072278: 24010033 */ li $at,0x33
/* f07227c: 55c10027 */ bnel $t6,$at,.PF0f07231c
/* f072280: 27a40148 */ addiu $a0,$sp,0x148
/* f072284: c62400bc */ lwc1 $f4,0xbc($s1)
/* f072288: c62a00c0 */ lwc1 $f10,0xc0($s1)
/* f07228c: 44803000 */ mtc1 $zero,$f6
/* f072290: 460a2200 */ add.s $f8,$f4,$f10
/* f072294: e7a8006c */ swc1 $f8,0x6c($sp)
/* f072298: c62c00b8 */ lwc1 $f12,0xb8($s1)
/* f07229c: 460c3032 */ c.eq.s $f6,$f12
/* f0722a0: 00000000 */ nop
/* f0722a4: 4503000c */ bc1tl .PF0f0722d8
/* f0722a8: c7a4006c */ lwc1 $f4,0x6c($sp)
/* f0722ac: 0c00581e */ jal mtx4LoadXRotation
/* f0722b0: 02002825 */ move $a1,$s0
/* f0722b4: 27b100c8 */ addiu $s1,$sp,0xc8
/* f0722b8: 02203025 */ move $a2,$s1
/* f0722bc: 27a40148 */ addiu $a0,$sp,0x148
/* f0722c0: 0c00565d */ jal mtx00015be4
/* f0722c4: 02002825 */ move $a1,$s0
/* f0722c8: 02202025 */ move $a0,$s1
/* f0722cc: 0c0056aa */ jal mtx4Copy
/* f0722d0: 27a50148 */ addiu $a1,$sp,0x148
/* f0722d4: c7a4006c */ lwc1 $f4,0x6c($sp)
.PF0f0722d8:
/* f0722d8: 44805000 */ mtc1 $zero,$f10
/* f0722dc: 27b100c8 */ addiu $s1,$sp,0xc8
/* f0722e0: 02002825 */ move $a1,$s0
/* f0722e4: 460a2032 */ c.eq.s $f4,$f10
/* f0722e8: 00000000 */ nop
/* f0722ec: 4503000b */ bc1tl .PF0f07231c
/* f0722f0: 27a40148 */ addiu $a0,$sp,0x148
/* f0722f4: 0c005864 */ jal mtx4LoadZRotation
/* f0722f8: 46002306 */ mov.s $f12,$f4
/* f0722fc: 27a40148 */ addiu $a0,$sp,0x148
/* f072300: 02002825 */ move $a1,$s0
/* f072304: 0c00565d */ jal mtx00015be4
/* f072308: 02203025 */ move $a2,$s1
/* f07230c: 02202025 */ move $a0,$s1
/* f072310: 0c0056aa */ jal mtx4Copy
/* f072314: 27a50148 */ addiu $a1,$sp,0x148
/* f072318: 27a40148 */ addiu $a0,$sp,0x148
.PF0f07231c:
/* f07231c: 0c0056cc */ jal mtx4ToMtx3
/* f072320: 8fa5005c */ lw $a1,0x5c($sp)
/* f072324: 8fbf004c */ lw $ra,0x4c($sp)
.PF0f072328:
/* f072328: 8fb00044 */ lw $s0,0x44($sp)
/* f07232c: 8fb10048 */ lw $s1,0x48($sp)
/* f072330: 03e00008 */ jr $ra
/* f072334: 27bd01d8 */ addiu $sp,$sp,0x1d8
);
#elif VERSION == VERSION_PAL_BETA
GLOBAL_ASM(
glabel func0f0714b8
.late_rodata
glabel var7f1ab570pf
.word 0x3f666666
glabel var7f1ab574pf
.word 0x3f666666
glabel var7f1ab578pf
.word 0xc6ea6000
glabel var7f1ab57cpf
.word 0x40490fdb
glabel var7f1ab580pf
.word 0x40c907a9
glabel var7f1ab584pf
.word 0x40490fdb
glabel var7f1ab588pf
.word 0x40c907a9
glabel var7f1ab58cpf
.word 0x40490fdb
glabel var7f1ab590pf
.word 0x40c907a9
glabel var7f1ab594pf
.word 0x40490fdb
glabel var7f1ab598pf
.word 0x40c907a9
glabel var7f1ab59cpf
.word 0x40490fdb
glabel var7f1ab5a0pf
.word 0x40c907a9
glabel var7f1ab5a4pf
.word 0x3dd0e561
glabel var7f1ab5a8pf
.word 0x3db6e2eb
glabel var7f1ab5acpf
.word 0x3e4ccccd
glabel var7f1ab5b0pf
.word 0x3f19999a
glabel var7f1ab5b4pf
.word 0x3f19999a
glabel var7f1ab5b8pf
.word 0x40c907a9
glabel var7f1ab5bcpf
.word 0x40c907a9
glabel var7f1ab5c0pf
.word 0x40c907a9
.text
/* f071690: 27bdfe28 */ addiu $sp,$sp,-472
/* f071694: afbf004c */ sw $ra,0x4c($sp)
/* f071698: afb10048 */ sw $s1,0x48($sp)
/* f07169c: afb00044 */ sw $s0,0x44($sp)
/* f0716a0: 3c0f800a */ lui $t7,0x800a
/* f0716a4: 8defe4d8 */ lw $t7,-0x1b28($t7)
/* f0716a8: 8cae0038 */ lw $t6,0x38($a1)
/* f0716ac: 00a08025 */ move $s0,$a1
/* f0716b0: 00808825 */ move $s1,$a0
/* f0716b4: 01cf082a */ slt $at,$t6,$t7
/* f0716b8: 502002ef */ beqzl $at,.PB0f072278
/* f0716bc: 8fbf004c */ lw $ra,0x4c($sp)
/* f0716c0: 8c980014 */ lw $t8,0x14($a0)
/* f0716c4: 0fc1a335 */ jal objFindBboxRodata
/* f0716c8: afb801d4 */ sw $t8,0x1d4($sp)
/* f0716cc: 92190000 */ lbu $t9,0x0($s0)
/* f0716d0: 3c0a8007 */ lui $t2,0x8007
/* f0716d4: 254ab13c */ addiu $t2,$t2,-20164
/* f0716d8: 00194880 */ sll $t1,$t9,0x2
/* f0716dc: 01394823 */ subu $t1,$t1,$t9
/* f0716e0: 00094880 */ sll $t1,$t1,0x2
/* f0716e4: 01394821 */ addu $t1,$t1,$t9
/* f0716e8: 00094880 */ sll $t1,$t1,0x2
/* f0716ec: 012a5821 */ addu $t3,$t1,$t2
/* f0716f0: afab00c0 */ sw $t3,0xc0($sp)
/* f0716f4: afa0008c */ sw $zero,0x8c($sp)
/* f0716f8: 3c03800a */ lui $v1,0x800a
/* f0716fc: 8c63e4d8 */ lw $v1,-0x1b28($v1)
/* f071700: 8e0c003c */ lw $t4,0x3c($s0)
/* f071704: 00404025 */ move $t0,$v0
/* f071708: 0183082a */ slt $at,$t4,$v1
/* f07170c: 5020000e */ beqzl $at,.PB0f071748
/* f071710: ae030038 */ sw $v1,0x38($s0)
/* f071714: 8fa201d4 */ lw $v0,0x1d4($sp)
/* f071718: 262d001c */ addiu $t5,$s1,0x1c
/* f07171c: afad0010 */ sw $t5,0x10($sp)
/* f071720: 02202025 */ move $a0,$s1
/* f071724: 02002825 */ move $a1,$s0
/* f071728: afa801c0 */ sw $t0,0x1c0($sp)
/* f07172c: 24460008 */ addiu $a2,$v0,0x8
/* f071730: 0fc1c56f */ jal hovUpdateGround
/* f071734: 24470028 */ addiu $a3,$v0,0x28
/* f071738: 3c03800a */ lui $v1,0x800a
/* f07173c: 8c63e4d8 */ lw $v1,-0x1b28($v1)
/* f071740: 8fa801c0 */ lw $t0,0x1c0($sp)
/* f071744: ae030038 */ sw $v1,0x38($s0)
.PB0f071748:
/* f071748: 262e001c */ addiu $t6,$s1,0x1c
/* f07174c: afae005c */ sw $t6,0x5c($sp)
/* f071750: 8e2f0008 */ lw $t7,0x8($s1)
/* f071754: 000fc0c0 */ sll $t8,$t7,0x3
/* f071758: 07030005 */ bgezl $t8,.PB0f071770
/* f07175c: 8fa401d4 */ lw $a0,0x1d4($sp)
/* f071760: 44802000 */ mtc1 $zero,$f4
/* f071764: 100000b6 */ b .PB0f071a40
/* f071768: e7a400b4 */ swc1 $f4,0xb4($sp)
/* f07176c: 8fa401d4 */ lw $a0,0x1d4($sp)
.PB0f071770:
/* f071770: 24990008 */ addiu $t9,$a0,0x8
/* f071774: 24890028 */ addiu $t1,$a0,0x28
/* f071778: afa90060 */ sw $t1,0x60($sp)
/* f07177c: afb90064 */ sw $t9,0x64($sp)
/* f071780: 8e2a0010 */ lw $t2,0x10($s1)
/* f071784: 000a5980 */ sll $t3,$t2,0x6
/* f071788: 0561000c */ bgez $t3,.PB0f0717bc
/* f07178c: 27a50088 */ addiu $a1,$sp,0x88
/* f071790: 27a60084 */ addiu $a2,$sp,0x84
/* f071794: 0fc21dc3 */ jal propObjGetBbox
/* f071798: 27a70080 */ addiu $a3,$sp,0x80
/* f07179c: 3c017f1b */ lui $at,0x7f1b
/* f0717a0: c422bfc0 */ lwc1 $f2,-0x4040($at)
/* f0717a4: c7a60088 */ lwc1 $f6,0x88($sp)
/* f0717a8: 46023002 */ mul.s $f0,$f6,$f2
/* f0717ac: 46000207 */ neg.s $f8,$f0
/* f0717b0: e7a001cc */ swc1 $f0,0x1cc($sp)
/* f0717b4: 1000000e */ b .PB0f0717f0
/* f0717b8: e7a801d0 */ swc1 $f8,0x1d0($sp)
.PB0f0717bc:
/* f0717bc: 3c017f1b */ lui $at,0x7f1b
/* f0717c0: c422bfc4 */ lwc1 $f2,-0x403c($at)
/* f0717c4: c50a0014 */ lwc1 $f10,0x14($t0)
/* f0717c8: 8e2c0018 */ lw $t4,0x18($s1)
/* f0717cc: 46025102 */ mul.s $f4,$f10,$f2
/* f0717d0: c5800014 */ lwc1 $f0,0x14($t4)
/* f0717d4: 46002182 */ mul.s $f6,$f4,$f0
/* f0717d8: e7a601d0 */ swc1 $f6,0x1d0($sp)
/* f0717dc: c5080018 */ lwc1 $f8,0x18($t0)
/* f0717e0: 46024282 */ mul.s $f10,$f8,$f2
/* f0717e4: 00000000 */ nop
/* f0717e8: 46005102 */ mul.s $f4,$f10,$f0
/* f0717ec: e7a401cc */ swc1 $f4,0x1cc($sp)
.PB0f0717f0:
/* f0717f0: 0c006b88 */ jal cosf
/* f0717f4: c60c0010 */ lwc1 $f12,0x10($s0)
/* f0717f8: c60c0010 */ lwc1 $f12,0x10($s0)
/* f0717fc: 0c006b8b */ jal sinf
/* f071800: e7a000bc */ swc1 $f0,0xbc($sp)
/* f071804: c7ac01d0 */ lwc1 $f12,0x1d0($sp)
/* f071808: 8fa201d4 */ lw $v0,0x1d4($sp)
/* f07180c: c7a200bc */ lwc1 $f2,0xbc($sp)
/* f071810: 46006202 */ mul.s $f8,$f12,$f0
/* f071814: c4460008 */ lwc1 $f6,0x8($v0)
/* f071818: c7ae01cc */ lwc1 $f14,0x1cc($sp)
/* f07181c: 3c014248 */ lui $at,0x4248
/* f071820: 8fa40060 */ lw $a0,0x60($sp)
/* f071824: 27a5009c */ addiu $a1,$sp,0x9c
/* f071828: 46083280 */ add.s $f10,$f6,$f8
/* f07182c: 46026202 */ mul.s $f8,$f12,$f2
/* f071830: e7aa01b4 */ swc1 $f10,0x1b4($sp)
/* f071834: c444000c */ lwc1 $f4,0xc($v0)
/* f071838: e7a401b8 */ swc1 $f4,0x1b8($sp)
/* f07183c: c4460010 */ lwc1 $f6,0x10($v0)
/* f071840: 46083280 */ add.s $f10,$f6,$f8
/* f071844: 46007182 */ mul.s $f6,$f14,$f0
/* f071848: e7aa01bc */ swc1 $f10,0x1bc($sp)
/* f07184c: c4440008 */ lwc1 $f4,0x8($v0)
/* f071850: 46062200 */ add.s $f8,$f4,$f6
/* f071854: 46027182 */ mul.s $f6,$f14,$f2
/* f071858: e7a801a8 */ swc1 $f8,0x1a8($sp)
/* f07185c: c44a000c */ lwc1 $f10,0xc($v0)
/* f071860: e7aa01ac */ swc1 $f10,0x1ac($sp)
/* f071864: c4440010 */ lwc1 $f4,0x10($v0)
/* f071868: 46062200 */ add.s $f8,$f4,$f6
/* f07186c: 44813000 */ mtc1 $at,$f6
/* f071870: e7a801b0 */ swc1 $f8,0x1b0($sp)
/* f071874: c44a0008 */ lwc1 $f10,0x8($v0)
/* f071878: e7aa0090 */ swc1 $f10,0x90($sp)
/* f07187c: c444000c */ lwc1 $f4,0xc($v0)
/* f071880: 46062201 */ sub.s $f8,$f4,$f6
/* f071884: e7a80094 */ swc1 $f8,0x94($sp)
/* f071888: c44a0010 */ lwc1 $f10,0x10($v0)
/* f07188c: 0fc19661 */ jal roomsCopy
/* f071890: e7aa0098 */ swc1 $f10,0x98($sp)
/* f071894: 02202025 */ move $a0,$s1
/* f071898: 27a50090 */ addiu $a1,$sp,0x90
/* f07189c: 8fa6005c */ lw $a2,0x5c($sp)
/* f0718a0: 0fc24863 */ jal setup0f09233c
/* f0718a4: 27a7009c */ addiu $a3,$sp,0x9c
/* f0718a8: 8fa40064 */ lw $a0,0x64($sp)
/* f0718ac: 8fa50060 */ lw $a1,0x60($sp)
/* f0718b0: 27a601b4 */ addiu $a2,$sp,0x1b4
/* f0718b4: 0fc19815 */ jal func0f065e74
/* f0718b8: 27a70198 */ addiu $a3,$sp,0x198
/* f0718bc: 27a4009c */ addiu $a0,$sp,0x9c
/* f0718c0: 27a50198 */ addiu $a1,$sp,0x198
/* f0718c4: 0fc1966e */ jal roomsAppend
/* f0718c8: 24060008 */ li $a2,0x8
/* f0718cc: 27a401b4 */ addiu $a0,$sp,0x1b4
/* f0718d0: 3c0540a0 */ lui $a1,0x40a0
/* f0718d4: 27a60198 */ addiu $a2,$sp,0x198
/* f0718d8: 26270058 */ addiu $a3,$s1,0x58
/* f0718dc: 0c00aa3c */ jal cdFindGroundYSimple
/* f0718e0: afa00010 */ sw $zero,0x10($sp)
/* f0718e4: 8fa40064 */ lw $a0,0x64($sp)
/* f0718e8: 8fa50060 */ lw $a1,0x60($sp)
/* f0718ec: 27a601a8 */ addiu $a2,$sp,0x1a8
/* f0718f0: 27a70188 */ addiu $a3,$sp,0x188
/* f0718f4: 0fc19815 */ jal func0f065e74
/* f0718f8: e7a001c8 */ swc1 $f0,0x1c8($sp)
/* f0718fc: 27a4009c */ addiu $a0,$sp,0x9c
/* f071900: 27a50188 */ addiu $a1,$sp,0x188
/* f071904: 0fc1966e */ jal roomsAppend
/* f071908: 24060008 */ li $a2,0x8
/* f07190c: 27a401a8 */ addiu $a0,$sp,0x1a8
/* f071910: 3c0540a0 */ lui $a1,0x40a0
/* f071914: 27a60188 */ addiu $a2,$sp,0x188
/* f071918: 00003825 */ move $a3,$zero
/* f07191c: 0c00aa3c */ jal cdFindGroundYSimple
/* f071920: afa00010 */ sw $zero,0x10($sp)
/* f071924: 3c017f1b */ lui $at,0x7f1b
/* f071928: c42cbfc8 */ lwc1 $f12,-0x4038($at)
/* f07192c: c7a201c8 */ lwc1 $f2,0x1c8($sp)
/* f071930: 46000406 */ mov.s $f16,$f0
/* f071934: 4602603e */ c.le.s $f12,$f2
/* f071938: 00000000 */ nop
/* f07193c: 45020016 */ bc1fl .PB0f071998
/* f071940: 4602603e */ c.le.s $f12,$f2
/* f071944: 4600603e */ c.le.s $f12,$f0
/* f071948: c7a401cc */ lwc1 $f4,0x1cc($sp)
/* f07194c: c7a601d0 */ lwc1 $f6,0x1d0($sp)
/* f071950: 45020011 */ bc1fl .PB0f071998
/* f071954: 4602603e */ c.le.s $f12,$f2
/* f071958: 46101301 */ sub.s $f12,$f2,$f16
/* f07195c: 0fc25970 */ jal atan2f
/* f071960: 46062381 */ sub.s $f14,$f4,$f6
/* f071964: 3c017f1b */ lui $at,0x7f1b
/* f071968: c428bfcc */ lwc1 $f8,-0x4034($at)
/* f07196c: 46000086 */ mov.s $f2,$f0
/* f071970: 3c017f1b */ lui $at,0x7f1b
/* f071974: 4600403e */ c.le.s $f8,$f0
/* f071978: 00000000 */ nop
/* f07197c: 45000003 */ bc1f .PB0f07198c
/* f071980: 00000000 */ nop
/* f071984: c42abfd0 */ lwc1 $f10,-0x4030($at)
/* f071988: 460a0081 */ sub.s $f2,$f0,$f10
.PB0f07198c:
/* f07198c: 1000002c */ b .PB0f071a40
/* f071990: e7a200b4 */ swc1 $f2,0xb4($sp)
/* f071994: 4602603e */ c.le.s $f12,$f2
.PB0f071998:
/* f071998: c7ae01d0 */ lwc1 $f14,0x1d0($sp)
/* f07199c: 45020012 */ bc1fl .PB0f0719e8
/* f0719a0: 4600603e */ c.le.s $f12,$f0
/* f0719a4: c6040034 */ lwc1 $f4,0x34($s0)
/* f0719a8: 46007387 */ neg.s $f14,$f14
/* f0719ac: 0fc25970 */ jal atan2f
/* f0719b0: 46041301 */ sub.s $f12,$f2,$f4
/* f0719b4: 3c017f1b */ lui $at,0x7f1b
/* f0719b8: c426bfd4 */ lwc1 $f6,-0x402c($at)
/* f0719bc: 46000086 */ mov.s $f2,$f0
/* f0719c0: 3c017f1b */ lui $at,0x7f1b
/* f0719c4: 4600303e */ c.le.s $f6,$f0
/* f0719c8: 00000000 */ nop
/* f0719cc: 45000003 */ bc1f .PB0f0719dc
/* f0719d0: 00000000 */ nop
/* f0719d4: c428bfd8 */ lwc1 $f8,-0x4028($at)
/* f0719d8: 46080081 */ sub.s $f2,$f0,$f8
.PB0f0719dc:
/* f0719dc: 10000018 */ b .PB0f071a40
/* f0719e0: e7a200b4 */ swc1 $f2,0xb4($sp)
/* f0719e4: 4600603e */ c.le.s $f12,$f0
.PB0f0719e8:
/* f0719e8: 00000000 */ nop
/* f0719ec: 45020012 */ bc1fl .PB0f071a38
/* f0719f0: 44804000 */ mtc1 $zero,$f8
/* f0719f4: c60a0034 */ lwc1 $f10,0x34($s0)
/* f0719f8: c7ae01cc */ lwc1 $f14,0x1cc($sp)
/* f0719fc: 0fc25970 */ jal atan2f
/* f071a00: 46105301 */ sub.s $f12,$f10,$f16
/* f071a04: 3c017f1b */ lui $at,0x7f1b
/* f071a08: c424bfdc */ lwc1 $f4,-0x4024($at)
/* f071a0c: 46000086 */ mov.s $f2,$f0
/* f071a10: 3c017f1b */ lui $at,0x7f1b
/* f071a14: 4600203e */ c.le.s $f4,$f0
/* f071a18: 00000000 */ nop
/* f071a1c: 45000003 */ bc1f .PB0f071a2c
/* f071a20: 00000000 */ nop
/* f071a24: c426bfe0 */ lwc1 $f6,-0x4020($at)
/* f071a28: 46060081 */ sub.s $f2,$f0,$f6
.PB0f071a2c:
/* f071a2c: 10000004 */ b .PB0f071a40
/* f071a30: e7a200b4 */ swc1 $f2,0xb4($sp)
/* f071a34: 44804000 */ mtc1 $zero,$f8
.PB0f071a38:
/* f071a38: 00000000 */ nop
/* f071a3c: e7a800b4 */ swc1 $f8,0xb4($sp)
.PB0f071a40:
/* f071a40: c60a0034 */ lwc1 $f10,0x34($s0)
/* f071a44: e7aa00ac */ swc1 $f10,0xac($sp)
/* f071a48: 8e2d0040 */ lw $t5,0x40($s1)
/* f071a4c: 000d7100 */ sll $t6,$t5,0x4
/* f071a50: 05c1000c */ bgez $t6,.PB0f071a84
/* f071a54: 3c0f800a */ lui $t7,0x800a
/* f071a58: 8defe754 */ lw $t7,-0x18ac($t7)
/* f071a5c: 3c01428c */ lui $at,0x428c
/* f071a60: 44813000 */ mtc1 $at,$f6
/* f071a64: c5e00078 */ lwc1 $f0,0x78($t7)
/* f071a68: c7a400ac */ lwc1 $f4,0xac($sp)
/* f071a6c: 46060201 */ sub.s $f8,$f0,$f6
/* f071a70: 4608203c */ c.lt.s $f4,$f8
/* f071a74: 00000000 */ nop
/* f071a78: 45020003 */ bc1fl .PB0f071a88
/* f071a7c: 92020001 */ lbu $v0,0x1($s0)
/* f071a80: e7a000ac */ swc1 $f0,0xac($sp)
.PB0f071a84:
/* f071a84: 92020001 */ lbu $v0,0x1($s0)
.PB0f071a88:
/* f071a88: 30580001 */ andi $t8,$v0,0x1
/* f071a8c: 53000023 */ beqzl $t8,.PB0f071b1c
/* f071a90: 8fae00c0 */ lw $t6,0xc0($sp)
/* f071a94: 8fa900c0 */ lw $t1,0xc0($sp)
/* f071a98: 24190001 */ li $t9,0x1
/* f071a9c: afb9008c */ sw $t9,0x8c($sp)
/* f071aa0: c5200000 */ lwc1 $f0,0x0($t1)
/* f071aa4: 304afffe */ andi $t2,$v0,0xfffe
/* f071aa8: 24010033 */ li $at,0x33
/* f071aac: e6000008 */ swc1 $f0,0x8($s0)
/* f071ab0: e6000004 */ swc1 $f0,0x4($s0)
/* f071ab4: c7aa00ac */ lwc1 $f10,0xac($sp)
/* f071ab8: a20a0001 */ sb $t2,0x1($s0)
/* f071abc: 00002025 */ move $a0,$zero
/* f071ac0: e60a0030 */ swc1 $f10,0x30($s0)
/* f071ac4: 922b0003 */ lbu $t3,0x3($s1)
/* f071ac8: 240680af */ li $a2,-32593
/* f071acc: 2407ffff */ li $a3,-1
/* f071ad0: 15610011 */ bne $t3,$at,.PB0f071b18
/* f071ad4: 240cffff */ li $t4,-1
/* f071ad8: 8e250014 */ lw $a1,0x14($s1)
/* f071adc: 3c01bf80 */ lui $at,0xbf80
/* f071ae0: 44810000 */ mtc1 $at,$f0
/* f071ae4: 240dffff */ li $t5,-1
/* f071ae8: afad002c */ sw $t5,0x2c($sp)
/* f071aec: afa00028 */ sw $zero,0x28($sp)
/* f071af0: afa00020 */ sw $zero,0x20($sp)
/* f071af4: afa0001c */ sw $zero,0x1c($sp)
/* f071af8: afa00018 */ sw $zero,0x18($sp)
/* f071afc: afa00014 */ sw $zero,0x14($sp)
/* f071b00: afac0010 */ sw $t4,0x10($sp)
/* f071b04: e7a00024 */ swc1 $f0,0x24($sp)
/* f071b08: e7a00030 */ swc1 $f0,0x30($sp)
/* f071b0c: e7a00034 */ swc1 $f0,0x34($sp)
/* f071b10: 0fc24e0e */ jal propsnd0f0939f8
/* f071b14: e7a00038 */ swc1 $f0,0x38($sp)
.PB0f071b18:
/* f071b18: 8fae00c0 */ lw $t6,0xc0($sp)
.PB0f071b1c:
/* f071b1c: 8e050008 */ lw $a1,0x8($s0)
/* f071b20: 26040004 */ addiu $a0,$s0,0x4
/* f071b24: c5c0000c */ lwc1 $f0,0xc($t6)
/* f071b28: 2606000c */ addiu $a2,$s0,0xc
/* f071b2c: e7a00010 */ swc1 $f0,0x10($sp)
/* f071b30: c5c60010 */ lwc1 $f6,0x10($t6)
/* f071b34: 44070000 */ mfc1 $a3,$f0
/* f071b38: 0fc1b6b9 */ jal applySpeed
/* f071b3c: e7a60014 */ swc1 $f6,0x14($sp)
/* f071b40: 8fa200c0 */ lw $v0,0xc0($sp)
/* f071b44: c6000008 */ lwc1 $f0,0x8($s0)
/* f071b48: c4420000 */ lwc1 $f2,0x0($v0)
/* f071b4c: 4600103e */ c.le.s $f2,$f0
/* f071b50: 00000000 */ nop
/* f071b54: 4502001f */ bc1fl .PB0f071bd4
/* f071b58: 4602003c */ c.lt.s $f0,$f2
/* f071b5c: c6040004 */ lwc1 $f4,0x4($s0)
/* f071b60: 4604003e */ c.le.s $f0,$f4
/* f071b64: 00000000 */ nop
/* f071b68: 4502001a */ bc1fl .PB0f071bd4
/* f071b6c: 4602003c */ c.lt.s $f0,$f2
/* f071b70: 44804000 */ mtc1 $zero,$f8
/* f071b74: 0c004be0 */ jal random
/* f071b78: e608000c */ swc1 $f8,0xc($s0)
/* f071b7c: 8fa300c0 */ lw $v1,0xc0($sp)
/* f071b80: 44824000 */ mtc1 $v0,$f8
/* f071b84: 3c014f80 */ lui $at,0x4f80
/* f071b88: c46a0000 */ lwc1 $f10,0x0($v1)
/* f071b8c: c4660004 */ lwc1 $f6,0x4($v1)
/* f071b90: 46065101 */ sub.s $f4,$f10,$f6
/* f071b94: 04410004 */ bgez $v0,.PB0f071ba8
/* f071b98: 468042a0 */ cvt.s.w $f10,$f8
/* f071b9c: 44813000 */ mtc1 $at,$f6
/* f071ba0: 00000000 */ nop
/* f071ba4: 46065280 */ add.s $f10,$f10,$f6
.PB0f071ba8:
/* f071ba8: 3c012f80 */ lui $at,0x2f80
/* f071bac: 44814000 */ mtc1 $at,$f8
/* f071bb0: 00000000 */ nop
/* f071bb4: 46085182 */ mul.s $f6,$f10,$f8
/* f071bb8: c46a0008 */ lwc1 $f10,0x8($v1)
/* f071bbc: 460a3202 */ mul.s $f8,$f6,$f10
/* f071bc0: 46082181 */ sub.s $f6,$f4,$f8
/* f071bc4: e6060008 */ swc1 $f6,0x8($s0)
/* f071bc8: 10000020 */ b .PB0f071c4c
/* f071bcc: 8fa200c0 */ lw $v0,0xc0($sp)
/* f071bd0: 4602003c */ c.lt.s $f0,$f2
.PB0f071bd4:
/* f071bd4: 00000000 */ nop
/* f071bd8: 4502001d */ bc1fl .PB0f071c50
/* f071bdc: c440001c */ lwc1 $f0,0x1c($v0)
/* f071be0: c60a0004 */ lwc1 $f10,0x4($s0)
/* f071be4: 4600503e */ c.le.s $f10,$f0
/* f071be8: 00000000 */ nop
/* f071bec: 45020018 */ bc1fl .PB0f071c50
/* f071bf0: c440001c */ lwc1 $f0,0x1c($v0)
/* f071bf4: 44802000 */ mtc1 $zero,$f4
/* f071bf8: 0c004be0 */ jal random
/* f071bfc: e604000c */ swc1 $f4,0xc($s0)
/* f071c00: 44824000 */ mtc1 $v0,$f8
/* f071c04: 3c014f80 */ lui $at,0x4f80
/* f071c08: 04410004 */ bgez $v0,.PB0f071c1c
/* f071c0c: 468041a0 */ cvt.s.w $f6,$f8
/* f071c10: 44815000 */ mtc1 $at,$f10
/* f071c14: 00000000 */ nop
/* f071c18: 460a3180 */ add.s $f6,$f6,$f10
.PB0f071c1c:
/* f071c1c: 3c012f80 */ lui $at,0x2f80
/* f071c20: 44812000 */ mtc1 $at,$f4
/* f071c24: 8faf00c0 */ lw $t7,0xc0($sp)
/* f071c28: 46043202 */ mul.s $f8,$f6,$f4
/* f071c2c: c5ea0008 */ lwc1 $f10,0x8($t7)
/* f071c30: c5e40000 */ lwc1 $f4,0x0($t7)
/* f071c34: 460a4182 */ mul.s $f6,$f8,$f10
/* f071c38: c5e80004 */ lwc1 $f8,0x4($t7)
/* f071c3c: 46082280 */ add.s $f10,$f4,$f8
/* f071c40: 460a3100 */ add.s $f4,$f6,$f10
/* f071c44: e6040008 */ swc1 $f4,0x8($s0)
/* f071c48: 8fa200c0 */ lw $v0,0xc0($sp)
.PB0f071c4c:
/* f071c4c: c440001c */ lwc1 $f0,0x1c($v0)
.PB0f071c50:
/* f071c50: 8e050018 */ lw $a1,0x18($s0)
/* f071c54: 26040014 */ addiu $a0,$s0,0x14
/* f071c58: e7a00010 */ swc1 $f0,0x10($sp)
/* f071c5c: c4480020 */ lwc1 $f8,0x20($v0)
/* f071c60: 44070000 */ mfc1 $a3,$f0
/* f071c64: 2606001c */ addiu $a2,$s0,0x1c
/* f071c68: 0fc1b736 */ jal applyRotation
/* f071c6c: e7a80014 */ swc1 $f8,0x14($sp)
/* f071c70: c60c0018 */ lwc1 $f12,0x18($s0)
/* f071c74: c6060014 */ lwc1 $f6,0x14($s0)
/* f071c78: 46066032 */ c.eq.s $f12,$f6
/* f071c7c: 00000000 */ nop
/* f071c80: 45020041 */ bc1fl .PB0f071d88
/* f071c84: 8fa200c0 */ lw $v0,0xc0($sp)
/* f071c88: 8fa200c0 */ lw $v0,0xc0($sp)
/* f071c8c: c60e001c */ lwc1 $f14,0x1c($s0)
/* f071c90: c440001c */ lwc1 $f0,0x1c($v0)
/* f071c94: 46000280 */ add.s $f10,$f0,$f0
/* f071c98: 460a703e */ c.le.s $f14,$f10
/* f071c9c: 00000000 */ nop
/* f071ca0: 45020039 */ bc1fl .PB0f071d88
/* f071ca4: 8fa200c0 */ lw $v0,0xc0($sp)
/* f071ca8: 46000087 */ neg.s $f2,$f0
/* f071cac: 46021100 */ add.s $f4,$f2,$f2
/* f071cb0: 460e203e */ c.le.s $f4,$f14
/* f071cb4: 00000000 */ nop
/* f071cb8: 45020033 */ bc1fl .PB0f071d88
/* f071cbc: 8fa200c0 */ lw $v0,0xc0($sp)
/* f071cc0: 44804000 */ mtc1 $zero,$f8
/* f071cc4: 3c017f1b */ lui $at,0x7f1b
/* f071cc8: e608001c */ swc1 $f8,0x1c($s0)
/* f071ccc: c426bfe4 */ lwc1 $f6,-0x401c($at)
/* f071cd0: 4606603c */ c.lt.s $f12,$f6
/* f071cd4: 00000000 */ nop
/* f071cd8: 45000018 */ bc1f .PB0f071d3c
/* f071cdc: 00000000 */ nop
/* f071ce0: 0c004be0 */ jal random
/* f071ce4: 00000000 */ nop
/* f071ce8: 8fa300c0 */ lw $v1,0xc0($sp)
/* f071cec: 3c017f1b */ lui $at,0x7f1b
/* f071cf0: c42abfe8 */ lwc1 $f10,-0x4018($at)
/* f071cf4: c4640014 */ lwc1 $f4,0x14($v1)
/* f071cf8: 44823000 */ mtc1 $v0,$f6
/* f071cfc: 3c014f80 */ lui $at,0x4f80
/* f071d00: 46045201 */ sub.s $f8,$f10,$f4
/* f071d04: 04410004 */ bgez $v0,.PB0f071d18
/* f071d08: 468032a0 */ cvt.s.w $f10,$f6
/* f071d0c: 44812000 */ mtc1 $at,$f4
/* f071d10: 00000000 */ nop
/* f071d14: 46045280 */ add.s $f10,$f10,$f4
.PB0f071d18:
/* f071d18: 3c012f80 */ lui $at,0x2f80
/* f071d1c: 44813000 */ mtc1 $at,$f6
/* f071d20: 00000000 */ nop
/* f071d24: 46065102 */ mul.s $f4,$f10,$f6
/* f071d28: c46a0018 */ lwc1 $f10,0x18($v1)
/* f071d2c: 460a2182 */ mul.s $f6,$f4,$f10
/* f071d30: 46064101 */ sub.s $f4,$f8,$f6
/* f071d34: 10000013 */ b .PB0f071d84
/* f071d38: e6040018 */ swc1 $f4,0x18($s0)
.PB0f071d3c:
/* f071d3c: 0c004be0 */ jal random
/* f071d40: 00000000 */ nop
/* f071d44: 44825000 */ mtc1 $v0,$f10
/* f071d48: 3c014f80 */ lui $at,0x4f80
/* f071d4c: 04410004 */ bgez $v0,.PB0f071d60
/* f071d50: 46805220 */ cvt.s.w $f8,$f10
/* f071d54: 44813000 */ mtc1 $at,$f6
/* f071d58: 00000000 */ nop
/* f071d5c: 46064200 */ add.s $f8,$f8,$f6
.PB0f071d60:
/* f071d60: 3c012f80 */ lui $at,0x2f80
/* f071d64: 44812000 */ mtc1 $at,$f4
/* f071d68: 8fb800c0 */ lw $t8,0xc0($sp)
/* f071d6c: 46044282 */ mul.s $f10,$f8,$f4
/* f071d70: c7060018 */ lwc1 $f6,0x18($t8)
/* f071d74: c7040014 */ lwc1 $f4,0x14($t8)
/* f071d78: 46065202 */ mul.s $f8,$f10,$f6
/* f071d7c: 46044280 */ add.s $f10,$f8,$f4
/* f071d80: e60a0018 */ swc1 $f10,0x18($s0)
.PB0f071d84:
/* f071d84: 8fa200c0 */ lw $v0,0xc0($sp)
.PB0f071d88:
/* f071d88: 8e050024 */ lw $a1,0x24($s0)
/* f071d8c: 26040020 */ addiu $a0,$s0,0x20
/* f071d90: c440002c */ lwc1 $f0,0x2c($v0)
/* f071d94: 26060028 */ addiu $a2,$s0,0x28
/* f071d98: e7a00010 */ swc1 $f0,0x10($sp)
/* f071d9c: c4460030 */ lwc1 $f6,0x30($v0)
/* f071da0: 44070000 */ mfc1 $a3,$f0
/* f071da4: 0fc1b736 */ jal applyRotation
/* f071da8: e7a60014 */ swc1 $f6,0x14($sp)
/* f071dac: c60c0024 */ lwc1 $f12,0x24($s0)
/* f071db0: c6080020 */ lwc1 $f8,0x20($s0)
/* f071db4: 46086032 */ c.eq.s $f12,$f8
/* f071db8: 00000000 */ nop
/* f071dbc: 45000040 */ bc1f .PB0f071ec0
/* f071dc0: 00000000 */ nop
/* f071dc4: 8fb900c0 */ lw $t9,0xc0($sp)
/* f071dc8: c60e0028 */ lwc1 $f14,0x28($s0)
/* f071dcc: c720002c */ lwc1 $f0,0x2c($t9)
/* f071dd0: 46000100 */ add.s $f4,$f0,$f0
/* f071dd4: 4604703e */ c.le.s $f14,$f4
/* f071dd8: 00000000 */ nop
/* f071ddc: 45000038 */ bc1f .PB0f071ec0
/* f071de0: 00000000 */ nop
/* f071de4: 46000087 */ neg.s $f2,$f0
/* f071de8: 46021280 */ add.s $f10,$f2,$f2
/* f071dec: 460e503e */ c.le.s $f10,$f14
/* f071df0: 00000000 */ nop
/* f071df4: 45000032 */ bc1f .PB0f071ec0
/* f071df8: 00000000 */ nop
/* f071dfc: 44803000 */ mtc1 $zero,$f6
/* f071e00: 3c017f1b */ lui $at,0x7f1b
/* f071e04: e6060028 */ swc1 $f6,0x28($s0)
/* f071e08: c428bfec */ lwc1 $f8,-0x4014($at)
/* f071e0c: 4608603c */ c.lt.s $f12,$f8
/* f071e10: 00000000 */ nop
/* f071e14: 45000018 */ bc1f .PB0f071e78
/* f071e18: 00000000 */ nop
/* f071e1c: 0c004be0 */ jal random
/* f071e20: 00000000 */ nop
/* f071e24: 8fa900c0 */ lw $t1,0xc0($sp)
/* f071e28: 3c017f1b */ lui $at,0x7f1b
/* f071e2c: c424bff0 */ lwc1 $f4,-0x4010($at)
/* f071e30: c52a0024 */ lwc1 $f10,0x24($t1)
/* f071e34: 44824000 */ mtc1 $v0,$f8
/* f071e38: 3c014f80 */ lui $at,0x4f80
/* f071e3c: 460a2181 */ sub.s $f6,$f4,$f10
/* f071e40: 04410004 */ bgez $v0,.PB0f071e54
/* f071e44: 46804120 */ cvt.s.w $f4,$f8
/* f071e48: 44815000 */ mtc1 $at,$f10
/* f071e4c: 00000000 */ nop
/* f071e50: 460a2100 */ add.s $f4,$f4,$f10
.PB0f071e54:
/* f071e54: 3c012f80 */ lui $at,0x2f80
/* f071e58: 44814000 */ mtc1 $at,$f8
/* f071e5c: 00000000 */ nop
/* f071e60: 46082282 */ mul.s $f10,$f4,$f8
/* f071e64: c5240028 */ lwc1 $f4,0x28($t1)
/* f071e68: 46045202 */ mul.s $f8,$f10,$f4
/* f071e6c: 46083281 */ sub.s $f10,$f6,$f8
/* f071e70: 10000013 */ b .PB0f071ec0
/* f071e74: e60a0024 */ swc1 $f10,0x24($s0)
.PB0f071e78:
/* f071e78: 0c004be0 */ jal random
/* f071e7c: 00000000 */ nop
/* f071e80: 44822000 */ mtc1 $v0,$f4
/* f071e84: 3c014f80 */ lui $at,0x4f80
/* f071e88: 04410004 */ bgez $v0,.PB0f071e9c
/* f071e8c: 468021a0 */ cvt.s.w $f6,$f4
/* f071e90: 44814000 */ mtc1 $at,$f8
/* f071e94: 00000000 */ nop
/* f071e98: 46083180 */ add.s $f6,$f6,$f8
.PB0f071e9c:
/* f071e9c: 3c012f80 */ lui $at,0x2f80
/* f071ea0: 44815000 */ mtc1 $at,$f10
/* f071ea4: 8faa00c0 */ lw $t2,0xc0($sp)
/* f071ea8: 460a3102 */ mul.s $f4,$f6,$f10
/* f071eac: c5480028 */ lwc1 $f8,0x28($t2)
/* f071eb0: c54a0024 */ lwc1 $f10,0x24($t2)
/* f071eb4: 46082182 */ mul.s $f6,$f4,$f8
/* f071eb8: 460a3100 */ add.s $f4,$f6,$f10
/* f071ebc: e6040024 */ swc1 $f4,0x24($s0)
.PB0f071ec0:
/* f071ec0: 3c04800a */ lui $a0,0x800a
/* f071ec4: 2484e4d0 */ addiu $a0,$a0,-6960
/* f071ec8: 8c8b0038 */ lw $t3,0x38($a0)
/* f071ecc: 00001025 */ move $v0,$zero
/* f071ed0: 19600070 */ blez $t3,.PB0f072094
/* f071ed4: 3c017f1b */ lui $at,0x7f1b
/* f071ed8: c432bff4 */ lwc1 $f18,-0x400c($at)
/* f071edc: 3c014120 */ lui $at,0x4120
/* f071ee0: 44818000 */ mtc1 $at,$f16
/* f071ee4: 3c030400 */ lui $v1,0x400
/* f071ee8: c602002c */ lwc1 $f2,0x2c($s0)
.PB0f071eec:
/* f071eec: c7a800b4 */ lwc1 $f8,0xb4($sp)
/* f071ef0: 3c017f1b */ lui $at,0x7f1b
/* f071ef4: c42abff8 */ lwc1 $f10,-0x4008($at)
/* f071ef8: 46024181 */ sub.s $f6,$f8,$f2
/* f071efc: c60e0030 */ lwc1 $f14,0x30($s0)
/* f071f00: 46009306 */ mov.s $f12,$f18
/* f071f04: 240e0001 */ li $t6,0x1
/* f071f08: 460a3102 */ mul.s $f4,$f6,$f10
/* f071f0c: c60a0034 */ lwc1 $f10,0x34($s0)
/* f071f10: 460a703c */ c.lt.s $f14,$f10
/* f071f14: 46041200 */ add.s $f8,$f2,$f4
/* f071f18: e608002c */ swc1 $f8,0x2c($s0)
/* f071f1c: c7a600ac */ lwc1 $f6,0xac($sp)
/* f071f20: 45000021 */ bc1f .PB0f071fa8
/* f071f24: 460e3001 */ sub.s $f0,$f6,$f14
/* f071f28: 44802000 */ mtc1 $zero,$f4
/* f071f2c: 3c017f1b */ lui $at,0x7f1b
/* f071f30: 4600203e */ c.le.s $f4,$f0
/* f071f34: 00000000 */ nop
/* f071f38: 45020004 */ bc1fl .PB0f071f4c
/* f071f3c: 46000087 */ neg.s $f2,$f0
/* f071f40: 10000002 */ b .PB0f071f4c
/* f071f44: 46000086 */ mov.s $f2,$f0
/* f071f48: 46000087 */ neg.s $f2,$f0
.PB0f071f4c:
/* f071f4c: 4602803c */ c.lt.s $f16,$f2
/* f071f50: 00000000 */ nop
/* f071f54: 45000009 */ bc1f .PB0f071f7c
/* f071f58: 00000000 */ nop
/* f071f5c: 46101201 */ sub.s $f8,$f2,$f16
/* f071f60: c426bffc */ lwc1 $f6,-0x4004($at)
/* f071f64: 3c013f80 */ lui $at,0x3f80
/* f071f68: 44812000 */ mtc1 $at,$f4
/* f071f6c: 46064282 */ mul.s $f10,$f8,$f6
/* f071f70: 460a2200 */ add.s $f8,$f4,$f10
/* f071f74: 46089302 */ mul.s $f12,$f18,$f8
/* f071f78: 00000000 */ nop
.PB0f071f7c:
/* f071f7c: 3c017f1b */ lui $at,0x7f1b
/* f071f80: c426c000 */ lwc1 $f6,-0x4000($at)
/* f071f84: 3c017f1b */ lui $at,0x7f1b
/* f071f88: 460c303c */ c.lt.s $f6,$f12
/* f071f8c: 00000000 */ nop
/* f071f90: 45000002 */ bc1f .PB0f071f9c
/* f071f94: 00000000 */ nop
/* f071f98: c42cc004 */ lwc1 $f12,-0x3ffc($at)
.PB0f071f9c:
/* f071f9c: 460c0002 */ mul.s $f0,$f0,$f12
/* f071fa0: 10000029 */ b .PB0f072048
/* f071fa4: 3c013f80 */ lui $at,0x3f80
.PB0f071fa8:
/* f071fa8: 8e2c0040 */ lw $t4,0x40($s1)
/* f071fac: 46120002 */ mul.s $f0,$f0,$f18
/* f071fb0: 3c0140a0 */ lui $at,0x40a0
/* f071fb4: 01836824 */ and $t5,$t4,$v1
/* f071fb8: 51a00011 */ beqzl $t5,.PB0f072000
/* f071fbc: 44815000 */ mtc1 $at,$f10
/* f071fc0: 4600803c */ c.lt.s $f16,$f0
/* f071fc4: 3c01c120 */ lui $at,0xc120
/* f071fc8: 45020004 */ bc1fl .PB0f071fdc
/* f071fcc: 44812000 */ mtc1 $at,$f4
/* f071fd0: 1000001c */ b .PB0f072044
/* f071fd4: 46008006 */ mov.s $f0,$f16
/* f071fd8: 44812000 */ mtc1 $at,$f4
.PB0f071fdc:
/* f071fdc: 3c01c120 */ lui $at,0xc120
/* f071fe0: 4604003c */ c.lt.s $f0,$f4
/* f071fe4: 00000000 */ nop
/* f071fe8: 45020017 */ bc1fl .PB0f072048
/* f071fec: 3c013f80 */ lui $at,0x3f80
/* f071ff0: 44810000 */ mtc1 $at,$f0
/* f071ff4: 10000014 */ b .PB0f072048
/* f071ff8: 3c013f80 */ lui $at,0x3f80
/* f071ffc: 44815000 */ mtc1 $at,$f10
.PB0f072000:
/* f072000: 3c01c0a0 */ lui $at,0xc0a0
/* f072004: 4600503c */ c.lt.s $f10,$f0
/* f072008: 00000000 */ nop
/* f07200c: 45020006 */ bc1fl .PB0f072028
/* f072010: 44814000 */ mtc1 $at,$f8
/* f072014: 3c0140a0 */ lui $at,0x40a0
/* f072018: 44810000 */ mtc1 $at,$f0
/* f07201c: 1000000a */ b .PB0f072048
/* f072020: 3c013f80 */ lui $at,0x3f80
/* f072024: 44814000 */ mtc1 $at,$f8
.PB0f072028:
/* f072028: 3c01c0a0 */ lui $at,0xc0a0
/* f07202c: 4608003c */ c.lt.s $f0,$f8
/* f072030: 00000000 */ nop
/* f072034: 45020004 */ bc1fl .PB0f072048
/* f072038: 3c013f80 */ lui $at,0x3f80
/* f07203c: 44810000 */ mtc1 $at,$f0
/* f072040: 00000000 */ nop
.PB0f072044:
/* f072044: 3c013f80 */ lui $at,0x3f80
.PB0f072048:
/* f072048: 44812000 */ mtc1 $at,$f4
/* f07204c: 46007180 */ add.s $f6,$f14,$f0
/* f072050: 3c01bf80 */ lui $at,0xbf80
/* f072054: 4600203c */ c.lt.s $f4,$f0
/* f072058: e6060030 */ swc1 $f6,0x30($s0)
/* f07205c: 45030008 */ bc1tl .PB0f072080
/* f072060: afae008c */ sw $t6,0x8c($sp)
/* f072064: 44815000 */ mtc1 $at,$f10
/* f072068: 00000000 */ nop
/* f07206c: 460a003c */ c.lt.s $f0,$f10
/* f072070: 00000000 */ nop
/* f072074: 45020003 */ bc1fl .PB0f072084
/* f072078: 8c8f0038 */ lw $t7,0x38($a0)
/* f07207c: afae008c */ sw $t6,0x8c($sp)
.PB0f072080:
/* f072080: 8c8f0038 */ lw $t7,0x38($a0)
.PB0f072084:
/* f072084: 24420001 */ addiu $v0,$v0,0x1
/* f072088: 004f082a */ slt $at,$v0,$t7
/* f07208c: 5420ff97 */ bnezl $at,.PB0f071eec
/* f072090: c602002c */ lwc1 $f2,0x2c($s0)
.PB0f072094:
/* f072094: 8fb8008c */ lw $t8,0x8c($sp)
/* f072098: 13000004 */ beqz $t8,.PB0f0720ac
/* f07209c: 02202025 */ move $a0,$s1
/* f0720a0: 24050001 */ li $a1,0x1
/* f0720a4: 0fc1a792 */ jal func0f069c70
/* f0720a8: 24060001 */ li $a2,0x1
.PB0f0720ac:
/* f0720ac: 3c0140a0 */ lui $at,0x40a0
/* f0720b0: 44811000 */ mtc1 $at,$f2
/* f0720b4: c6000034 */ lwc1 $f0,0x34($s0)
/* f0720b8: c60e0030 */ lwc1 $f14,0x30($s0)
/* f0720bc: 46020201 */ sub.s $f8,$f0,$f2
/* f0720c0: 4608703c */ c.lt.s $f14,$f8
/* f0720c4: 00000000 */ nop
/* f0720c8: 45030007 */ bc1tl .PB0f0720e8
/* f0720cc: 8e390008 */ lw $t9,0x8($s1)
/* f0720d0: 46020180 */ add.s $f6,$f0,$f2
/* f0720d4: 460e303c */ c.lt.s $f6,$f14
/* f0720d8: 00000000 */ nop
/* f0720dc: 45020007 */ bc1fl .PB0f0720fc
/* f0720e0: 8e2a0008 */ lw $t2,0x8($s1)
/* f0720e4: 8e390008 */ lw $t9,0x8($s1)
.PB0f0720e8:
/* f0720e8: 3c018000 */ lui $at,0x8000
/* f0720ec: 03214825 */ or $t1,$t9,$at
/* f0720f0: 10000006 */ b .PB0f07210c
/* f0720f4: ae290008 */ sw $t1,0x8($s1)
/* f0720f8: 8e2a0008 */ lw $t2,0x8($s1)
.PB0f0720fc:
/* f0720fc: 3c017fff */ lui $at,0x7fff
/* f072100: 3421ffff */ ori $at,$at,0xffff
/* f072104: 01415824 */ and $t3,$t2,$at
/* f072108: ae2b0008 */ sw $t3,0x8($s1)
.PB0f07210c:
/* f07210c: 0fc1c54e */ jal objGetHov04
/* f072110: 02202025 */ move $a0,$s1
/* f072114: c6040030 */ lwc1 $f4,0x30($s0)
/* f072118: 8fac01d4 */ lw $t4,0x1d4($sp)
/* f07211c: 27a50148 */ addiu $a1,$sp,0x148
/* f072120: 46040280 */ add.s $f10,$f0,$f4
/* f072124: e58a000c */ swc1 $f10,0xc($t4)
/* f072128: 0c005b94 */ jal mtx4LoadZRotation
/* f07212c: c60c0020 */ lwc1 $f12,0x20($s0)
/* f072130: c608002c */ lwc1 $f8,0x2c($s0)
/* f072134: c6060014 */ lwc1 $f6,0x14($s0)
/* f072138: 3c017f1b */ lui $at,0x7f1b
/* f07213c: c424c008 */ lwc1 $f4,-0x3ff8($at)
/* f072140: 46064300 */ add.s $f12,$f8,$f6
/* f072144: 3c017f1b */ lui $at,0x7f1b
/* f072148: 460c203e */ c.le.s $f4,$f12
/* f07214c: 00000000 */ nop
/* f072150: 45020005 */ bc1fl .PB0f072168
/* f072154: 44804000 */ mtc1 $zero,$f8
/* f072158: c42ac00c */ lwc1 $f10,-0x3ff4($at)
/* f07215c: 10000009 */ b .PB0f072184
/* f072160: 460a6301 */ sub.s $f12,$f12,$f10
/* f072164: 44804000 */ mtc1 $zero,$f8
.PB0f072168:
/* f072168: 3c017f1b */ lui $at,0x7f1b
/* f07216c: 4608603c */ c.lt.s $f12,$f8
/* f072170: 00000000 */ nop
/* f072174: 45000003 */ bc1f .PB0f072184
/* f072178: 00000000 */ nop
/* f07217c: c426c010 */ lwc1 $f6,-0x3ff0($at)
/* f072180: 46066300 */ add.s $f12,$f12,$f6
.PB0f072184:
/* f072184: 0c005b4e */ jal mtx4LoadXRotation
/* f072188: 27a50108 */ addiu $a1,$sp,0x108
/* f07218c: 27a40108 */ addiu $a0,$sp,0x108
/* f072190: 0c00598c */ jal mtx00015be0
/* f072194: 27a50148 */ addiu $a1,$sp,0x148
/* f072198: c60c0010 */ lwc1 $f12,0x10($s0)
/* f07219c: 0c005b71 */ jal mtx4LoadYRotation
/* f0721a0: 27a50108 */ addiu $a1,$sp,0x108
/* f0721a4: 27b00108 */ addiu $s0,$sp,0x108
/* f0721a8: 02002025 */ move $a0,$s0
/* f0721ac: 0c00598c */ jal mtx00015be0
/* f0721b0: 27a50148 */ addiu $a1,$sp,0x148
/* f0721b4: 8e2d0018 */ lw $t5,0x18($s1)
/* f0721b8: 27a50148 */ addiu $a1,$sp,0x148
/* f0721bc: 0c005a55 */ jal mtx00015f04
/* f0721c0: c5ac0014 */ lwc1 $f12,0x14($t5)
/* f0721c4: 922e0003 */ lbu $t6,0x3($s1)
/* f0721c8: 24010033 */ li $at,0x33
/* f0721cc: 55c10027 */ bnel $t6,$at,.PB0f07226c
/* f0721d0: 27a40148 */ addiu $a0,$sp,0x148
/* f0721d4: c62400bc */ lwc1 $f4,0xbc($s1)
/* f0721d8: c62a00c0 */ lwc1 $f10,0xc0($s1)
/* f0721dc: 44803000 */ mtc1 $zero,$f6
/* f0721e0: 460a2200 */ add.s $f8,$f4,$f10
/* f0721e4: e7a8006c */ swc1 $f8,0x6c($sp)
/* f0721e8: c62c00b8 */ lwc1 $f12,0xb8($s1)
/* f0721ec: 460c3032 */ c.eq.s $f6,$f12
/* f0721f0: 00000000 */ nop
/* f0721f4: 4503000c */ bc1tl .PB0f072228
/* f0721f8: c7a4006c */ lwc1 $f4,0x6c($sp)
/* f0721fc: 0c005b4e */ jal mtx4LoadXRotation
/* f072200: 02002825 */ move $a1,$s0
/* f072204: 27b100c8 */ addiu $s1,$sp,0xc8
/* f072208: 02203025 */ move $a2,$s1
/* f07220c: 27a40148 */ addiu $a0,$sp,0x148
/* f072210: 0c00598d */ jal mtx00015be4
/* f072214: 02002825 */ move $a1,$s0
/* f072218: 02202025 */ move $a0,$s1
/* f07221c: 0c0059da */ jal mtx4Copy
/* f072220: 27a50148 */ addiu $a1,$sp,0x148
/* f072224: c7a4006c */ lwc1 $f4,0x6c($sp)
.PB0f072228:
/* f072228: 44805000 */ mtc1 $zero,$f10
/* f07222c: 27b100c8 */ addiu $s1,$sp,0xc8
/* f072230: 02002825 */ move $a1,$s0
/* f072234: 460a2032 */ c.eq.s $f4,$f10
/* f072238: 00000000 */ nop
/* f07223c: 4503000b */ bc1tl .PB0f07226c
/* f072240: 27a40148 */ addiu $a0,$sp,0x148
/* f072244: 0c005b94 */ jal mtx4LoadZRotation
/* f072248: 46002306 */ mov.s $f12,$f4
/* f07224c: 27a40148 */ addiu $a0,$sp,0x148
/* f072250: 02002825 */ move $a1,$s0
/* f072254: 0c00598d */ jal mtx00015be4
/* f072258: 02203025 */ move $a2,$s1
/* f07225c: 02202025 */ move $a0,$s1
/* f072260: 0c0059da */ jal mtx4Copy
/* f072264: 27a50148 */ addiu $a1,$sp,0x148
/* f072268: 27a40148 */ addiu $a0,$sp,0x148
.PB0f07226c:
/* f07226c: 0c0059fc */ jal mtx4ToMtx3
/* f072270: 8fa5005c */ lw $a1,0x5c($sp)
/* f072274: 8fbf004c */ lw $ra,0x4c($sp)
.PB0f072278:
/* f072278: 8fb00044 */ lw $s0,0x44($sp)
/* f07227c: 8fb10048 */ lw $s1,0x48($sp)
/* f072280: 03e00008 */ jr $ra
/* f072284: 27bd01d8 */ addiu $sp,$sp,0x1d8
);
#else
GLOBAL_ASM(
glabel func0f0714b8
.late_rodata
glabel var7f1aa2cc
.word 0x3f666666
glabel var7f1aa2d0
.word 0x3f666666
glabel var7f1aa2d4
.word 0xc6ea6000
glabel var7f1aa2d8
.word 0x40490fdb
glabel var7f1aa2dc
.word 0x40c907a9
glabel var7f1aa2e0
.word 0x40490fdb
glabel var7f1aa2e4
.word 0x40c907a9
glabel var7f1aa2e8
.word 0x40490fdb
glabel var7f1aa2ec
.word 0x40c907a9
glabel var7f1aa2f0
.word 0x40490fdb
glabel var7f1aa2f4
.word 0x40c907a9
glabel var7f1aa2f8
.word 0x40490fdb
glabel var7f1aa2fc
.word 0x40c907a9
glabel var7f1aa300
.word 0x3dae147b
glabel var7f1aa304
.word 0x3d99999a
glabel var7f1aa308
.word 0x3e4ccccd
glabel var7f1aa30c
.word 0x40c907a9
glabel var7f1aa310
.word 0x40c907a9
glabel var7f1aa314
.word 0x40c907a9
.text
/* f0714b8: 27bdfe28 */ addiu $sp,$sp,-472
/* f0714bc: afbf004c */ sw $ra,0x4c($sp)
/* f0714c0: afb10048 */ sw $s1,0x48($sp)
/* f0714c4: afb00044 */ sw $s0,0x44($sp)
/* f0714c8: 3c0f800a */ lui $t7,%hi(g_Vars+0x8)
/* f0714cc: 8def9fc8 */ lw $t7,%lo(g_Vars+0x8)($t7)
/* f0714d0: 8cae0038 */ lw $t6,0x38($a1)
/* f0714d4: 00a08025 */ or $s0,$a1,$zero
/* f0714d8: 00808825 */ or $s1,$a0,$zero
/* f0714dc: 01cf082a */ slt $at,$t6,$t7
/* f0714e0: 502002f0 */ beqzl $at,.L0f0720a4
/* f0714e4: 8fbf004c */ lw $ra,0x4c($sp)
/* f0714e8: 8c980014 */ lw $t8,0x14($a0)
/* f0714ec: 0fc1a2bd */ jal objFindBboxRodata
/* f0714f0: afb801d4 */ sw $t8,0x1d4($sp)
/* f0714f4: 92190000 */ lbu $t9,0x0($s0)
/* f0714f8: 3c0a8007 */ lui $t2,%hi(var80069a70)
/* f0714fc: 254a9a70 */ addiu $t2,$t2,%lo(var80069a70)
/* f071500: 00194880 */ sll $t1,$t9,0x2
/* f071504: 01394823 */ subu $t1,$t1,$t9
/* f071508: 00094880 */ sll $t1,$t1,0x2
/* f07150c: 01394821 */ addu $t1,$t1,$t9
/* f071510: 00094880 */ sll $t1,$t1,0x2
/* f071514: 012a5821 */ addu $t3,$t1,$t2
/* f071518: afab00c0 */ sw $t3,0xc0($sp)
/* f07151c: afa0008c */ sw $zero,0x8c($sp)
/* f071520: 3c03800a */ lui $v1,%hi(g_Vars+0x8)
/* f071524: 8c639fc8 */ lw $v1,%lo(g_Vars+0x8)($v1)
/* f071528: 8e0c003c */ lw $t4,0x3c($s0)
/* f07152c: 00404025 */ or $t0,$v0,$zero
/* f071530: 0183082a */ slt $at,$t4,$v1
/* f071534: 5020000e */ beqzl $at,.L0f071570
/* f071538: ae030038 */ sw $v1,0x38($s0)
/* f07153c: 8fa201d4 */ lw $v0,0x1d4($sp)
/* f071540: 262d001c */ addiu $t5,$s1,0x1c
/* f071544: afad0010 */ sw $t5,0x10($sp)
/* f071548: 02202025 */ or $a0,$s1,$zero
/* f07154c: 02002825 */ or $a1,$s0,$zero
/* f071550: afa801c0 */ sw $t0,0x1c0($sp)
/* f071554: 24460008 */ addiu $a2,$v0,0x8
/* f071558: 0fc1c4f9 */ jal hovUpdateGround
/* f07155c: 24470028 */ addiu $a3,$v0,0x28
/* f071560: 3c03800a */ lui $v1,%hi(g_Vars+0x8)
/* f071564: 8c639fc8 */ lw $v1,%lo(g_Vars+0x8)($v1)
/* f071568: 8fa801c0 */ lw $t0,0x1c0($sp)
/* f07156c: ae030038 */ sw $v1,0x38($s0)
.L0f071570:
/* f071570: 262e001c */ addiu $t6,$s1,0x1c
/* f071574: afae005c */ sw $t6,0x5c($sp)
/* f071578: 8e2f0008 */ lw $t7,0x8($s1)
/* f07157c: 000fc0c0 */ sll $t8,$t7,0x3
/* f071580: 07030005 */ bgezl $t8,.L0f071598
/* f071584: 8fa401d4 */ lw $a0,0x1d4($sp)
/* f071588: 44802000 */ mtc1 $zero,$f4
/* f07158c: 100000b6 */ b .L0f071868
/* f071590: e7a400b4 */ swc1 $f4,0xb4($sp)
/* f071594: 8fa401d4 */ lw $a0,0x1d4($sp)
.L0f071598:
/* f071598: 24990008 */ addiu $t9,$a0,0x8
/* f07159c: 24890028 */ addiu $t1,$a0,0x28
/* f0715a0: afa90060 */ sw $t1,0x60($sp)
/* f0715a4: afb90064 */ sw $t9,0x64($sp)
/* f0715a8: 8e2a0010 */ lw $t2,0x10($s1)
/* f0715ac: 000a5980 */ sll $t3,$t2,0x6
/* f0715b0: 0561000c */ bgez $t3,.L0f0715e4
/* f0715b4: 27a50088 */ addiu $a1,$sp,0x88
/* f0715b8: 27a60084 */ addiu $a2,$sp,0x84
/* f0715bc: 0fc21d5b */ jal propObjGetBbox
/* f0715c0: 27a70080 */ addiu $a3,$sp,0x80
/* f0715c4: 3c017f1b */ lui $at,%hi(var7f1aa2cc)
/* f0715c8: c422a2cc */ lwc1 $f2,%lo(var7f1aa2cc)($at)
/* f0715cc: c7a60088 */ lwc1 $f6,0x88($sp)
/* f0715d0: 46023002 */ mul.s $f0,$f6,$f2
/* f0715d4: 46000207 */ neg.s $f8,$f0
/* f0715d8: e7a001cc */ swc1 $f0,0x1cc($sp)
/* f0715dc: 1000000e */ b .L0f071618
/* f0715e0: e7a801d0 */ swc1 $f8,0x1d0($sp)
.L0f0715e4:
/* f0715e4: 3c017f1b */ lui $at,%hi(var7f1aa2d0)
/* f0715e8: c422a2d0 */ lwc1 $f2,%lo(var7f1aa2d0)($at)
/* f0715ec: c50a0014 */ lwc1 $f10,0x14($t0)
/* f0715f0: 8e2c0018 */ lw $t4,0x18($s1)
/* f0715f4: 46025102 */ mul.s $f4,$f10,$f2
/* f0715f8: c5800014 */ lwc1 $f0,0x14($t4)
/* f0715fc: 46002182 */ mul.s $f6,$f4,$f0
/* f071600: e7a601d0 */ swc1 $f6,0x1d0($sp)
/* f071604: c5080018 */ lwc1 $f8,0x18($t0)
/* f071608: 46024282 */ mul.s $f10,$f8,$f2
/* f07160c: 00000000 */ nop
/* f071610: 46005102 */ mul.s $f4,$f10,$f0
/* f071614: e7a401cc */ swc1 $f4,0x1cc($sp)
.L0f071618:
/* f071618: 0c0068f4 */ jal cosf
/* f07161c: c60c0010 */ lwc1 $f12,0x10($s0)
/* f071620: c60c0010 */ lwc1 $f12,0x10($s0)
/* f071624: 0c0068f7 */ jal sinf
/* f071628: e7a000bc */ swc1 $f0,0xbc($sp)
/* f07162c: c7ac01d0 */ lwc1 $f12,0x1d0($sp)
/* f071630: 8fa201d4 */ lw $v0,0x1d4($sp)
/* f071634: c7a200bc */ lwc1 $f2,0xbc($sp)
/* f071638: 46006202 */ mul.s $f8,$f12,$f0
/* f07163c: c4460008 */ lwc1 $f6,0x8($v0)
/* f071640: c7ae01cc */ lwc1 $f14,0x1cc($sp)
/* f071644: 3c014248 */ lui $at,0x4248
/* f071648: 8fa40060 */ lw $a0,0x60($sp)
/* f07164c: 27a5009c */ addiu $a1,$sp,0x9c
/* f071650: 46083280 */ add.s $f10,$f6,$f8
/* f071654: 46026202 */ mul.s $f8,$f12,$f2
/* f071658: e7aa01b4 */ swc1 $f10,0x1b4($sp)
/* f07165c: c444000c */ lwc1 $f4,0xc($v0)
/* f071660: e7a401b8 */ swc1 $f4,0x1b8($sp)
/* f071664: c4460010 */ lwc1 $f6,0x10($v0)
/* f071668: 46083280 */ add.s $f10,$f6,$f8
/* f07166c: 46007182 */ mul.s $f6,$f14,$f0
/* f071670: e7aa01bc */ swc1 $f10,0x1bc($sp)
/* f071674: c4440008 */ lwc1 $f4,0x8($v0)
/* f071678: 46062200 */ add.s $f8,$f4,$f6
/* f07167c: 46027182 */ mul.s $f6,$f14,$f2
/* f071680: e7a801a8 */ swc1 $f8,0x1a8($sp)
/* f071684: c44a000c */ lwc1 $f10,0xc($v0)
/* f071688: e7aa01ac */ swc1 $f10,0x1ac($sp)
/* f07168c: c4440010 */ lwc1 $f4,0x10($v0)
/* f071690: 46062200 */ add.s $f8,$f4,$f6
/* f071694: 44813000 */ mtc1 $at,$f6
/* f071698: e7a801b0 */ swc1 $f8,0x1b0($sp)
/* f07169c: c44a0008 */ lwc1 $f10,0x8($v0)
/* f0716a0: e7aa0090 */ swc1 $f10,0x90($sp)
/* f0716a4: c444000c */ lwc1 $f4,0xc($v0)
/* f0716a8: 46062201 */ sub.s $f8,$f4,$f6
/* f0716ac: e7a80094 */ swc1 $f8,0x94($sp)
/* f0716b0: c44a0010 */ lwc1 $f10,0x10($v0)
/* f0716b4: 0fc195e9 */ jal roomsCopy
/* f0716b8: e7aa0098 */ swc1 $f10,0x98($sp)
/* f0716bc: 02202025 */ or $a0,$s1,$zero
/* f0716c0: 27a50090 */ addiu $a1,$sp,0x90
/* f0716c4: 8fa6005c */ lw $a2,0x5c($sp)
/* f0716c8: 0fc248cf */ jal setup0f09233c
/* f0716cc: 27a7009c */ addiu $a3,$sp,0x9c
/* f0716d0: 8fa40064 */ lw $a0,0x64($sp)
/* f0716d4: 8fa50060 */ lw $a1,0x60($sp)
/* f0716d8: 27a601b4 */ addiu $a2,$sp,0x1b4
/* f0716dc: 0fc1979d */ jal func0f065e74
/* f0716e0: 27a70198 */ addiu $a3,$sp,0x198
/* f0716e4: 27a4009c */ addiu $a0,$sp,0x9c
/* f0716e8: 27a50198 */ addiu $a1,$sp,0x198
/* f0716ec: 0fc195f6 */ jal roomsAppend
/* f0716f0: 24060008 */ addiu $a2,$zero,0x8
/* f0716f4: 27a401b4 */ addiu $a0,$sp,0x1b4
/* f0716f8: 3c0540a0 */ lui $a1,0x40a0
/* f0716fc: 27a60198 */ addiu $a2,$sp,0x198
/* f071700: 26270058 */ addiu $a3,$s1,0x58
/* f071704: 0c00a8cc */ jal cdFindGroundYSimple
/* f071708: afa00010 */ sw $zero,0x10($sp)
/* f07170c: 8fa40064 */ lw $a0,0x64($sp)
/* f071710: 8fa50060 */ lw $a1,0x60($sp)
/* f071714: 27a601a8 */ addiu $a2,$sp,0x1a8
/* f071718: 27a70188 */ addiu $a3,$sp,0x188
/* f07171c: 0fc1979d */ jal func0f065e74
/* f071720: e7a001c8 */ swc1 $f0,0x1c8($sp)
/* f071724: 27a4009c */ addiu $a0,$sp,0x9c
/* f071728: 27a50188 */ addiu $a1,$sp,0x188
/* f07172c: 0fc195f6 */ jal roomsAppend
/* f071730: 24060008 */ addiu $a2,$zero,0x8
/* f071734: 27a401a8 */ addiu $a0,$sp,0x1a8
/* f071738: 3c0540a0 */ lui $a1,0x40a0
/* f07173c: 27a60188 */ addiu $a2,$sp,0x188
/* f071740: 00003825 */ or $a3,$zero,$zero
/* f071744: 0c00a8cc */ jal cdFindGroundYSimple
/* f071748: afa00010 */ sw $zero,0x10($sp)
/* f07174c: 3c017f1b */ lui $at,%hi(var7f1aa2d4)
/* f071750: c42ca2d4 */ lwc1 $f12,%lo(var7f1aa2d4)($at)
/* f071754: c7a201c8 */ lwc1 $f2,0x1c8($sp)
/* f071758: 46000406 */ mov.s $f16,$f0
/* f07175c: 4602603e */ c.le.s $f12,$f2
/* f071760: 00000000 */ nop
/* f071764: 45020016 */ bc1fl .L0f0717c0
/* f071768: 4602603e */ c.le.s $f12,$f2
/* f07176c: 4600603e */ c.le.s $f12,$f0
/* f071770: c7a401cc */ lwc1 $f4,0x1cc($sp)
/* f071774: c7a601d0 */ lwc1 $f6,0x1d0($sp)
/* f071778: 45020011 */ bc1fl .L0f0717c0
/* f07177c: 4602603e */ c.le.s $f12,$f2
/* f071780: 46101301 */ sub.s $f12,$f2,$f16
/* f071784: 0fc259d4 */ jal atan2f
/* f071788: 46062381 */ sub.s $f14,$f4,$f6
/* f07178c: 3c017f1b */ lui $at,%hi(var7f1aa2d8)
/* f071790: c428a2d8 */ lwc1 $f8,%lo(var7f1aa2d8)($at)
/* f071794: 46000086 */ mov.s $f2,$f0
/* f071798: 3c017f1b */ lui $at,%hi(var7f1aa2dc)
/* f07179c: 4600403e */ c.le.s $f8,$f0
/* f0717a0: 00000000 */ nop
/* f0717a4: 45000003 */ bc1f .L0f0717b4
/* f0717a8: 00000000 */ nop
/* f0717ac: c42aa2dc */ lwc1 $f10,%lo(var7f1aa2dc)($at)
/* f0717b0: 460a0081 */ sub.s $f2,$f0,$f10
.L0f0717b4:
/* f0717b4: 1000002c */ b .L0f071868
/* f0717b8: e7a200b4 */ swc1 $f2,0xb4($sp)
/* f0717bc: 4602603e */ c.le.s $f12,$f2
.L0f0717c0:
/* f0717c0: c7ae01d0 */ lwc1 $f14,0x1d0($sp)
/* f0717c4: 45020012 */ bc1fl .L0f071810
/* f0717c8: 4600603e */ c.le.s $f12,$f0
/* f0717cc: c6040034 */ lwc1 $f4,0x34($s0)
/* f0717d0: 46007387 */ neg.s $f14,$f14
/* f0717d4: 0fc259d4 */ jal atan2f
/* f0717d8: 46041301 */ sub.s $f12,$f2,$f4
/* f0717dc: 3c017f1b */ lui $at,%hi(var7f1aa2e0)
/* f0717e0: c426a2e0 */ lwc1 $f6,%lo(var7f1aa2e0)($at)
/* f0717e4: 46000086 */ mov.s $f2,$f0
/* f0717e8: 3c017f1b */ lui $at,%hi(var7f1aa2e4)
/* f0717ec: 4600303e */ c.le.s $f6,$f0
/* f0717f0: 00000000 */ nop
/* f0717f4: 45000003 */ bc1f .L0f071804
/* f0717f8: 00000000 */ nop
/* f0717fc: c428a2e4 */ lwc1 $f8,%lo(var7f1aa2e4)($at)
/* f071800: 46080081 */ sub.s $f2,$f0,$f8
.L0f071804:
/* f071804: 10000018 */ b .L0f071868
/* f071808: e7a200b4 */ swc1 $f2,0xb4($sp)
/* f07180c: 4600603e */ c.le.s $f12,$f0
.L0f071810:
/* f071810: 00000000 */ nop
/* f071814: 45020012 */ bc1fl .L0f071860
/* f071818: 44804000 */ mtc1 $zero,$f8
/* f07181c: c60a0034 */ lwc1 $f10,0x34($s0)
/* f071820: c7ae01cc */ lwc1 $f14,0x1cc($sp)
/* f071824: 0fc259d4 */ jal atan2f
/* f071828: 46105301 */ sub.s $f12,$f10,$f16
/* f07182c: 3c017f1b */ lui $at,%hi(var7f1aa2e8)
/* f071830: c424a2e8 */ lwc1 $f4,%lo(var7f1aa2e8)($at)
/* f071834: 46000086 */ mov.s $f2,$f0
/* f071838: 3c017f1b */ lui $at,%hi(var7f1aa2ec)
/* f07183c: 4600203e */ c.le.s $f4,$f0
/* f071840: 00000000 */ nop
/* f071844: 45000003 */ bc1f .L0f071854
/* f071848: 00000000 */ nop
/* f07184c: c426a2ec */ lwc1 $f6,%lo(var7f1aa2ec)($at)
/* f071850: 46060081 */ sub.s $f2,$f0,$f6
.L0f071854:
/* f071854: 10000004 */ b .L0f071868
/* f071858: e7a200b4 */ swc1 $f2,0xb4($sp)
/* f07185c: 44804000 */ mtc1 $zero,$f8
.L0f071860:
/* f071860: 00000000 */ nop
/* f071864: e7a800b4 */ swc1 $f8,0xb4($sp)
.L0f071868:
/* f071868: c60a0034 */ lwc1 $f10,0x34($s0)
/* f07186c: e7aa00ac */ swc1 $f10,0xac($sp)
/* f071870: 8e2d0040 */ lw $t5,0x40($s1)
/* f071874: 000d7100 */ sll $t6,$t5,0x4
/* f071878: 05c1000c */ bgez $t6,.L0f0718ac
/* f07187c: 3c0f800a */ lui $t7,%hi(g_Vars+0x284)
/* f071880: 8defa244 */ lw $t7,%lo(g_Vars+0x284)($t7)
/* f071884: 3c01428c */ lui $at,0x428c
/* f071888: 44813000 */ mtc1 $at,$f6
/* f07188c: c5e00078 */ lwc1 $f0,0x78($t7)
/* f071890: c7a400ac */ lwc1 $f4,0xac($sp)
/* f071894: 46060201 */ sub.s $f8,$f0,$f6
/* f071898: 4608203c */ c.lt.s $f4,$f8
/* f07189c: 00000000 */ nop
/* f0718a0: 45020003 */ bc1fl .L0f0718b0
/* f0718a4: 92020001 */ lbu $v0,0x1($s0)
/* f0718a8: e7a000ac */ swc1 $f0,0xac($sp)
.L0f0718ac:
/* f0718ac: 92020001 */ lbu $v0,0x1($s0)
.L0f0718b0:
/* f0718b0: 30580001 */ andi $t8,$v0,0x1
/* f0718b4: 53000023 */ beqzl $t8,.L0f071944
/* f0718b8: 8fae00c0 */ lw $t6,0xc0($sp)
/* f0718bc: 8fa900c0 */ lw $t1,0xc0($sp)
/* f0718c0: 24190001 */ addiu $t9,$zero,0x1
/* f0718c4: afb9008c */ sw $t9,0x8c($sp)
/* f0718c8: c5200000 */ lwc1 $f0,0x0($t1)
/* f0718cc: 304afffe */ andi $t2,$v0,0xfffe
/* f0718d0: 24010033 */ addiu $at,$zero,0x33
/* f0718d4: e6000008 */ swc1 $f0,0x8($s0)
/* f0718d8: e6000004 */ swc1 $f0,0x4($s0)
/* f0718dc: c7aa00ac */ lwc1 $f10,0xac($sp)
/* f0718e0: a20a0001 */ sb $t2,0x1($s0)
/* f0718e4: 00002025 */ or $a0,$zero,$zero
/* f0718e8: e60a0030 */ swc1 $f10,0x30($s0)
/* f0718ec: 922b0003 */ lbu $t3,0x3($s1)
/* f0718f0: 240680af */ addiu $a2,$zero,-32593
/* f0718f4: 2407ffff */ addiu $a3,$zero,-1
/* f0718f8: 15610011 */ bne $t3,$at,.L0f071940
/* f0718fc: 240cffff */ addiu $t4,$zero,-1
/* f071900: 8e250014 */ lw $a1,0x14($s1)
/* f071904: 3c01bf80 */ lui $at,0xbf80
/* f071908: 44810000 */ mtc1 $at,$f0
/* f07190c: 240dffff */ addiu $t5,$zero,-1
/* f071910: afad002c */ sw $t5,0x2c($sp)
/* f071914: afa00028 */ sw $zero,0x28($sp)
/* f071918: afa00020 */ sw $zero,0x20($sp)
/* f07191c: afa0001c */ sw $zero,0x1c($sp)
/* f071920: afa00018 */ sw $zero,0x18($sp)
/* f071924: afa00014 */ sw $zero,0x14($sp)
/* f071928: afac0010 */ sw $t4,0x10($sp)
/* f07192c: e7a00024 */ swc1 $f0,0x24($sp)
/* f071930: e7a00030 */ swc1 $f0,0x30($sp)
/* f071934: e7a00034 */ swc1 $f0,0x34($sp)
/* f071938: 0fc24e7e */ jal propsnd0f0939f8
/* f07193c: e7a00038 */ swc1 $f0,0x38($sp)
.L0f071940:
/* f071940: 8fae00c0 */ lw $t6,0xc0($sp)
.L0f071944:
/* f071944: 8e050008 */ lw $a1,0x8($s0)
/* f071948: 26040004 */ addiu $a0,$s0,0x4
/* f07194c: c5c0000c */ lwc1 $f0,0xc($t6)
/* f071950: 2606000c */ addiu $a2,$s0,0xc
/* f071954: e7a00010 */ swc1 $f0,0x10($sp)
/* f071958: c5c60010 */ lwc1 $f6,0x10($t6)
/* f07195c: 44070000 */ mfc1 $a3,$f0
/* f071960: 0fc1b643 */ jal applySpeed
/* f071964: e7a60014 */ swc1 $f6,0x14($sp)
/* f071968: 8fa200c0 */ lw $v0,0xc0($sp)
/* f07196c: c6000008 */ lwc1 $f0,0x8($s0)
/* f071970: c4420000 */ lwc1 $f2,0x0($v0)
/* f071974: 4600103e */ c.le.s $f2,$f0
/* f071978: 00000000 */ nop
/* f07197c: 4502001f */ bc1fl .L0f0719fc
/* f071980: 4602003c */ c.lt.s $f0,$f2
/* f071984: c6040004 */ lwc1 $f4,0x4($s0)
/* f071988: 4604003e */ c.le.s $f0,$f4
/* f07198c: 00000000 */ nop
/* f071990: 4502001a */ bc1fl .L0f0719fc
/* f071994: 4602003c */ c.lt.s $f0,$f2
/* f071998: 44804000 */ mtc1 $zero,$f8
/* f07199c: 0c004b70 */ jal random
/* f0719a0: e608000c */ swc1 $f8,0xc($s0)
/* f0719a4: 8fa300c0 */ lw $v1,0xc0($sp)
/* f0719a8: 44824000 */ mtc1 $v0,$f8
/* f0719ac: 3c014f80 */ lui $at,0x4f80
/* f0719b0: c46a0000 */ lwc1 $f10,0x0($v1)
/* f0719b4: c4660004 */ lwc1 $f6,0x4($v1)
/* f0719b8: 46065101 */ sub.s $f4,$f10,$f6
/* f0719bc: 04410004 */ bgez $v0,.L0f0719d0
/* f0719c0: 468042a0 */ cvt.s.w $f10,$f8
/* f0719c4: 44813000 */ mtc1 $at,$f6
/* f0719c8: 00000000 */ nop
/* f0719cc: 46065280 */ add.s $f10,$f10,$f6
.L0f0719d0:
/* f0719d0: 3c012f80 */ lui $at,0x2f80
/* f0719d4: 44814000 */ mtc1 $at,$f8
/* f0719d8: 00000000 */ nop
/* f0719dc: 46085182 */ mul.s $f6,$f10,$f8
/* f0719e0: c46a0008 */ lwc1 $f10,0x8($v1)
/* f0719e4: 460a3202 */ mul.s $f8,$f6,$f10
/* f0719e8: 46082181 */ sub.s $f6,$f4,$f8
/* f0719ec: e6060008 */ swc1 $f6,0x8($s0)
/* f0719f0: 10000020 */ b .L0f071a74
/* f0719f4: 8fa200c0 */ lw $v0,0xc0($sp)
/* f0719f8: 4602003c */ c.lt.s $f0,$f2
.L0f0719fc:
/* f0719fc: 00000000 */ nop
/* f071a00: 4502001d */ bc1fl .L0f071a78
/* f071a04: c440001c */ lwc1 $f0,0x1c($v0)
/* f071a08: c60a0004 */ lwc1 $f10,0x4($s0)
/* f071a0c: 4600503e */ c.le.s $f10,$f0
/* f071a10: 00000000 */ nop
/* f071a14: 45020018 */ bc1fl .L0f071a78
/* f071a18: c440001c */ lwc1 $f0,0x1c($v0)
/* f071a1c: 44802000 */ mtc1 $zero,$f4
/* f071a20: 0c004b70 */ jal random
/* f071a24: e604000c */ swc1 $f4,0xc($s0)
/* f071a28: 44824000 */ mtc1 $v0,$f8
/* f071a2c: 3c014f80 */ lui $at,0x4f80
/* f071a30: 04410004 */ bgez $v0,.L0f071a44
/* f071a34: 468041a0 */ cvt.s.w $f6,$f8
/* f071a38: 44815000 */ mtc1 $at,$f10
/* f071a3c: 00000000 */ nop
/* f071a40: 460a3180 */ add.s $f6,$f6,$f10
.L0f071a44:
/* f071a44: 3c012f80 */ lui $at,0x2f80
/* f071a48: 44812000 */ mtc1 $at,$f4
/* f071a4c: 8faf00c0 */ lw $t7,0xc0($sp)
/* f071a50: 46043202 */ mul.s $f8,$f6,$f4
/* f071a54: c5ea0008 */ lwc1 $f10,0x8($t7)
/* f071a58: c5e40000 */ lwc1 $f4,0x0($t7)
/* f071a5c: 460a4182 */ mul.s $f6,$f8,$f10
/* f071a60: c5e80004 */ lwc1 $f8,0x4($t7)
/* f071a64: 46082280 */ add.s $f10,$f4,$f8
/* f071a68: 460a3100 */ add.s $f4,$f6,$f10
/* f071a6c: e6040008 */ swc1 $f4,0x8($s0)
/* f071a70: 8fa200c0 */ lw $v0,0xc0($sp)
.L0f071a74:
/* f071a74: c440001c */ lwc1 $f0,0x1c($v0)
.L0f071a78:
/* f071a78: 8e050018 */ lw $a1,0x18($s0)
/* f071a7c: 26040014 */ addiu $a0,$s0,0x14
/* f071a80: e7a00010 */ swc1 $f0,0x10($sp)
/* f071a84: c4480020 */ lwc1 $f8,0x20($v0)
/* f071a88: 44070000 */ mfc1 $a3,$f0
/* f071a8c: 2606001c */ addiu $a2,$s0,0x1c
/* f071a90: 0fc1b6c0 */ jal applyRotation
/* f071a94: e7a80014 */ swc1 $f8,0x14($sp)
/* f071a98: c60c0018 */ lwc1 $f12,0x18($s0)
/* f071a9c: c6060014 */ lwc1 $f6,0x14($s0)
/* f071aa0: 46066032 */ c.eq.s $f12,$f6
/* f071aa4: 00000000 */ nop
/* f071aa8: 45020041 */ bc1fl .L0f071bb0
/* f071aac: 8fa200c0 */ lw $v0,0xc0($sp)
/* f071ab0: 8fa200c0 */ lw $v0,0xc0($sp)
/* f071ab4: c60e001c */ lwc1 $f14,0x1c($s0)
/* f071ab8: c440001c */ lwc1 $f0,0x1c($v0)
/* f071abc: 46000280 */ add.s $f10,$f0,$f0
/* f071ac0: 460a703e */ c.le.s $f14,$f10
/* f071ac4: 00000000 */ nop
/* f071ac8: 45020039 */ bc1fl .L0f071bb0
/* f071acc: 8fa200c0 */ lw $v0,0xc0($sp)
/* f071ad0: 46000087 */ neg.s $f2,$f0
/* f071ad4: 46021100 */ add.s $f4,$f2,$f2
/* f071ad8: 460e203e */ c.le.s $f4,$f14
/* f071adc: 00000000 */ nop
/* f071ae0: 45020033 */ bc1fl .L0f071bb0
/* f071ae4: 8fa200c0 */ lw $v0,0xc0($sp)
/* f071ae8: 44804000 */ mtc1 $zero,$f8
/* f071aec: 3c017f1b */ lui $at,%hi(var7f1aa2f0)
/* f071af0: e608001c */ swc1 $f8,0x1c($s0)
/* f071af4: c426a2f0 */ lwc1 $f6,%lo(var7f1aa2f0)($at)
/* f071af8: 4606603c */ c.lt.s $f12,$f6
/* f071afc: 00000000 */ nop
/* f071b00: 45000018 */ bc1f .L0f071b64
/* f071b04: 00000000 */ nop
/* f071b08: 0c004b70 */ jal random
/* f071b0c: 00000000 */ nop
/* f071b10: 8fa300c0 */ lw $v1,0xc0($sp)
/* f071b14: 3c017f1b */ lui $at,%hi(var7f1aa2f4)
/* f071b18: c42aa2f4 */ lwc1 $f10,%lo(var7f1aa2f4)($at)
/* f071b1c: c4640014 */ lwc1 $f4,0x14($v1)
/* f071b20: 44823000 */ mtc1 $v0,$f6
/* f071b24: 3c014f80 */ lui $at,0x4f80
/* f071b28: 46045201 */ sub.s $f8,$f10,$f4
/* f071b2c: 04410004 */ bgez $v0,.L0f071b40
/* f071b30: 468032a0 */ cvt.s.w $f10,$f6
/* f071b34: 44812000 */ mtc1 $at,$f4
/* f071b38: 00000000 */ nop
/* f071b3c: 46045280 */ add.s $f10,$f10,$f4
.L0f071b40:
/* f071b40: 3c012f80 */ lui $at,0x2f80
/* f071b44: 44813000 */ mtc1 $at,$f6
/* f071b48: 00000000 */ nop
/* f071b4c: 46065102 */ mul.s $f4,$f10,$f6
/* f071b50: c46a0018 */ lwc1 $f10,0x18($v1)
/* f071b54: 460a2182 */ mul.s $f6,$f4,$f10
/* f071b58: 46064101 */ sub.s $f4,$f8,$f6
/* f071b5c: 10000013 */ b .L0f071bac
/* f071b60: e6040018 */ swc1 $f4,0x18($s0)
.L0f071b64:
/* f071b64: 0c004b70 */ jal random
/* f071b68: 00000000 */ nop
/* f071b6c: 44825000 */ mtc1 $v0,$f10
/* f071b70: 3c014f80 */ lui $at,0x4f80
/* f071b74: 04410004 */ bgez $v0,.L0f071b88
/* f071b78: 46805220 */ cvt.s.w $f8,$f10
/* f071b7c: 44813000 */ mtc1 $at,$f6
/* f071b80: 00000000 */ nop
/* f071b84: 46064200 */ add.s $f8,$f8,$f6
.L0f071b88:
/* f071b88: 3c012f80 */ lui $at,0x2f80
/* f071b8c: 44812000 */ mtc1 $at,$f4
/* f071b90: 8fb800c0 */ lw $t8,0xc0($sp)
/* f071b94: 46044282 */ mul.s $f10,$f8,$f4
/* f071b98: c7060018 */ lwc1 $f6,0x18($t8)
/* f071b9c: c7040014 */ lwc1 $f4,0x14($t8)
/* f071ba0: 46065202 */ mul.s $f8,$f10,$f6
/* f071ba4: 46044280 */ add.s $f10,$f8,$f4
/* f071ba8: e60a0018 */ swc1 $f10,0x18($s0)
.L0f071bac:
/* f071bac: 8fa200c0 */ lw $v0,0xc0($sp)
.L0f071bb0:
/* f071bb0: 8e050024 */ lw $a1,0x24($s0)
/* f071bb4: 26040020 */ addiu $a0,$s0,0x20
/* f071bb8: c440002c */ lwc1 $f0,0x2c($v0)
/* f071bbc: 26060028 */ addiu $a2,$s0,0x28
/* f071bc0: e7a00010 */ swc1 $f0,0x10($sp)
/* f071bc4: c4460030 */ lwc1 $f6,0x30($v0)
/* f071bc8: 44070000 */ mfc1 $a3,$f0
/* f071bcc: 0fc1b6c0 */ jal applyRotation
/* f071bd0: e7a60014 */ swc1 $f6,0x14($sp)
/* f071bd4: c60c0024 */ lwc1 $f12,0x24($s0)
/* f071bd8: c6080020 */ lwc1 $f8,0x20($s0)
/* f071bdc: 46086032 */ c.eq.s $f12,$f8
/* f071be0: 00000000 */ nop
/* f071be4: 45000040 */ bc1f .L0f071ce8
/* f071be8: 00000000 */ nop
/* f071bec: 8fb900c0 */ lw $t9,0xc0($sp)
/* f071bf0: c60e0028 */ lwc1 $f14,0x28($s0)
/* f071bf4: c720002c */ lwc1 $f0,0x2c($t9)
/* f071bf8: 46000100 */ add.s $f4,$f0,$f0
/* f071bfc: 4604703e */ c.le.s $f14,$f4
/* f071c00: 00000000 */ nop
/* f071c04: 45000038 */ bc1f .L0f071ce8
/* f071c08: 00000000 */ nop
/* f071c0c: 46000087 */ neg.s $f2,$f0
/* f071c10: 46021280 */ add.s $f10,$f2,$f2
/* f071c14: 460e503e */ c.le.s $f10,$f14
/* f071c18: 00000000 */ nop
/* f071c1c: 45000032 */ bc1f .L0f071ce8
/* f071c20: 00000000 */ nop
/* f071c24: 44803000 */ mtc1 $zero,$f6
/* f071c28: 3c017f1b */ lui $at,%hi(var7f1aa2f8)
/* f071c2c: e6060028 */ swc1 $f6,0x28($s0)
/* f071c30: c428a2f8 */ lwc1 $f8,%lo(var7f1aa2f8)($at)
/* f071c34: 4608603c */ c.lt.s $f12,$f8
/* f071c38: 00000000 */ nop
/* f071c3c: 45000018 */ bc1f .L0f071ca0
/* f071c40: 00000000 */ nop
/* f071c44: 0c004b70 */ jal random
/* f071c48: 00000000 */ nop
/* f071c4c: 8fa900c0 */ lw $t1,0xc0($sp)
/* f071c50: 3c017f1b */ lui $at,%hi(var7f1aa2fc)
/* f071c54: c424a2fc */ lwc1 $f4,%lo(var7f1aa2fc)($at)
/* f071c58: c52a0024 */ lwc1 $f10,0x24($t1)
/* f071c5c: 44824000 */ mtc1 $v0,$f8
/* f071c60: 3c014f80 */ lui $at,0x4f80
/* f071c64: 460a2181 */ sub.s $f6,$f4,$f10
/* f071c68: 04410004 */ bgez $v0,.L0f071c7c
/* f071c6c: 46804120 */ cvt.s.w $f4,$f8
/* f071c70: 44815000 */ mtc1 $at,$f10
/* f071c74: 00000000 */ nop
/* f071c78: 460a2100 */ add.s $f4,$f4,$f10
.L0f071c7c:
/* f071c7c: 3c012f80 */ lui $at,0x2f80
/* f071c80: 44814000 */ mtc1 $at,$f8
/* f071c84: 00000000 */ nop
/* f071c88: 46082282 */ mul.s $f10,$f4,$f8
/* f071c8c: c5240028 */ lwc1 $f4,0x28($t1)
/* f071c90: 46045202 */ mul.s $f8,$f10,$f4
/* f071c94: 46083281 */ sub.s $f10,$f6,$f8
/* f071c98: 10000013 */ b .L0f071ce8
/* f071c9c: e60a0024 */ swc1 $f10,0x24($s0)
.L0f071ca0:
/* f071ca0: 0c004b70 */ jal random
/* f071ca4: 00000000 */ nop
/* f071ca8: 44822000 */ mtc1 $v0,$f4
/* f071cac: 3c014f80 */ lui $at,0x4f80
/* f071cb0: 04410004 */ bgez $v0,.L0f071cc4
/* f071cb4: 468021a0 */ cvt.s.w $f6,$f4
/* f071cb8: 44814000 */ mtc1 $at,$f8
/* f071cbc: 00000000 */ nop
/* f071cc0: 46083180 */ add.s $f6,$f6,$f8
.L0f071cc4:
/* f071cc4: 3c012f80 */ lui $at,0x2f80
/* f071cc8: 44815000 */ mtc1 $at,$f10
/* f071ccc: 8faa00c0 */ lw $t2,0xc0($sp)
/* f071cd0: 460a3102 */ mul.s $f4,$f6,$f10
/* f071cd4: c5480028 */ lwc1 $f8,0x28($t2)
/* f071cd8: c54a0024 */ lwc1 $f10,0x24($t2)
/* f071cdc: 46082182 */ mul.s $f6,$f4,$f8
/* f071ce0: 460a3100 */ add.s $f4,$f6,$f10
/* f071ce4: e6040024 */ swc1 $f4,0x24($s0)
.L0f071ce8:
/* f071ce8: 3c04800a */ lui $a0,%hi(g_Vars)
/* f071cec: 24849fc0 */ addiu $a0,$a0,%lo(g_Vars)
/* f071cf0: 8c8b0038 */ lw $t3,0x38($a0)
/* f071cf4: 00001025 */ or $v0,$zero,$zero
/* f071cf8: 19600071 */ blez $t3,.L0f071ec0
/* f071cfc: 3c017f1b */ lui $at,%hi(var7f1aa300)
/* f071d00: c432a300 */ lwc1 $f18,%lo(var7f1aa300)($at)
/* f071d04: 3c014120 */ lui $at,0x4120
/* f071d08: 44818000 */ mtc1 $at,$f16
/* f071d0c: 3c030400 */ lui $v1,0x400
/* f071d10: c602002c */ lwc1 $f2,0x2c($s0)
.L0f071d14:
/* f071d14: c7a800b4 */ lwc1 $f8,0xb4($sp)
/* f071d18: 3c017f1b */ lui $at,%hi(var7f1aa304)
/* f071d1c: c42aa304 */ lwc1 $f10,%lo(var7f1aa304)($at)
/* f071d20: 46024181 */ sub.s $f6,$f8,$f2
/* f071d24: c60e0030 */ lwc1 $f14,0x30($s0)
/* f071d28: 46009306 */ mov.s $f12,$f18
/* f071d2c: 240e0001 */ addiu $t6,$zero,0x1
/* f071d30: 460a3102 */ mul.s $f4,$f6,$f10
/* f071d34: c60a0034 */ lwc1 $f10,0x34($s0)
/* f071d38: 460a703c */ c.lt.s $f14,$f10
/* f071d3c: 46041200 */ add.s $f8,$f2,$f4
/* f071d40: e608002c */ swc1 $f8,0x2c($s0)
/* f071d44: c7a600ac */ lwc1 $f6,0xac($sp)
/* f071d48: 45000022 */ bc1f .L0f071dd4
/* f071d4c: 460e3001 */ sub.s $f0,$f6,$f14
/* f071d50: 44802000 */ mtc1 $zero,$f4
/* f071d54: 3c017f1b */ lui $at,%hi(var7f1aa308)
/* f071d58: 4600203e */ c.le.s $f4,$f0
/* f071d5c: 00000000 */ nop
/* f071d60: 45020004 */ bc1fl .L0f071d74
/* f071d64: 46000087 */ neg.s $f2,$f0
/* f071d68: 10000002 */ b .L0f071d74
/* f071d6c: 46000086 */ mov.s $f2,$f0
/* f071d70: 46000087 */ neg.s $f2,$f0
.L0f071d74:
/* f071d74: 4602803c */ c.lt.s $f16,$f2
/* f071d78: 00000000 */ nop
/* f071d7c: 4502000a */ bc1fl .L0f071da8
/* f071d80: 3c013f00 */ lui $at,0x3f00
/* f071d84: 46101201 */ sub.s $f8,$f2,$f16
/* f071d88: c426a308 */ lwc1 $f6,%lo(var7f1aa308)($at)
/* f071d8c: 3c013f80 */ lui $at,0x3f80
/* f071d90: 44812000 */ mtc1 $at,$f4
/* f071d94: 46064282 */ mul.s $f10,$f8,$f6
/* f071d98: 460a2200 */ add.s $f8,$f4,$f10
/* f071d9c: 46089302 */ mul.s $f12,$f18,$f8
/* f071da0: 00000000 */ nop
/* f071da4: 3c013f00 */ lui $at,0x3f00
.L0f071da8:
/* f071da8: 44813000 */ mtc1 $at,$f6
/* f071dac: 3c013f00 */ lui $at,0x3f00
/* f071db0: 460c303c */ c.lt.s $f6,$f12
/* f071db4: 00000000 */ nop
/* f071db8: 45000003 */ bc1f .L0f071dc8
/* f071dbc: 00000000 */ nop
/* f071dc0: 44816000 */ mtc1 $at,$f12
/* f071dc4: 00000000 */ nop
.L0f071dc8:
/* f071dc8: 460c0002 */ mul.s $f0,$f0,$f12
/* f071dcc: 10000029 */ b .L0f071e74
/* f071dd0: 3c013f80 */ lui $at,0x3f80
.L0f071dd4:
/* f071dd4: 8e2c0040 */ lw $t4,0x40($s1)
/* f071dd8: 46120002 */ mul.s $f0,$f0,$f18
/* f071ddc: 3c0140a0 */ lui $at,0x40a0
/* f071de0: 01836824 */ and $t5,$t4,$v1
/* f071de4: 51a00011 */ beqzl $t5,.L0f071e2c
/* f071de8: 44815000 */ mtc1 $at,$f10
/* f071dec: 4600803c */ c.lt.s $f16,$f0
/* f071df0: 3c01c120 */ lui $at,0xc120
/* f071df4: 45020004 */ bc1fl .L0f071e08
/* f071df8: 44812000 */ mtc1 $at,$f4
/* f071dfc: 1000001c */ b .L0f071e70
/* f071e00: 46008006 */ mov.s $f0,$f16
/* f071e04: 44812000 */ mtc1 $at,$f4
.L0f071e08:
/* f071e08: 3c01c120 */ lui $at,0xc120
/* f071e0c: 4604003c */ c.lt.s $f0,$f4
/* f071e10: 00000000 */ nop
/* f071e14: 45020017 */ bc1fl .L0f071e74
/* f071e18: 3c013f80 */ lui $at,0x3f80
/* f071e1c: 44810000 */ mtc1 $at,$f0
/* f071e20: 10000014 */ b .L0f071e74
/* f071e24: 3c013f80 */ lui $at,0x3f80
/* f071e28: 44815000 */ mtc1 $at,$f10
.L0f071e2c:
/* f071e2c: 3c01c0a0 */ lui $at,0xc0a0
/* f071e30: 4600503c */ c.lt.s $f10,$f0
/* f071e34: 00000000 */ nop
/* f071e38: 45020006 */ bc1fl .L0f071e54
/* f071e3c: 44814000 */ mtc1 $at,$f8
/* f071e40: 3c0140a0 */ lui $at,0x40a0
/* f071e44: 44810000 */ mtc1 $at,$f0
/* f071e48: 1000000a */ b .L0f071e74
/* f071e4c: 3c013f80 */ lui $at,0x3f80
/* f071e50: 44814000 */ mtc1 $at,$f8
.L0f071e54:
/* f071e54: 3c01c0a0 */ lui $at,0xc0a0
/* f071e58: 4608003c */ c.lt.s $f0,$f8
/* f071e5c: 00000000 */ nop
/* f071e60: 45020004 */ bc1fl .L0f071e74
/* f071e64: 3c013f80 */ lui $at,0x3f80
/* f071e68: 44810000 */ mtc1 $at,$f0
/* f071e6c: 00000000 */ nop
.L0f071e70:
/* f071e70: 3c013f80 */ lui $at,0x3f80
.L0f071e74:
/* f071e74: 44812000 */ mtc1 $at,$f4
/* f071e78: 46007180 */ add.s $f6,$f14,$f0
/* f071e7c: 3c01bf80 */ lui $at,0xbf80
/* f071e80: 4600203c */ c.lt.s $f4,$f0
/* f071e84: e6060030 */ swc1 $f6,0x30($s0)
/* f071e88: 45030008 */ bc1tl .L0f071eac
/* f071e8c: afae008c */ sw $t6,0x8c($sp)
/* f071e90: 44815000 */ mtc1 $at,$f10
/* f071e94: 00000000 */ nop
/* f071e98: 460a003c */ c.lt.s $f0,$f10
/* f071e9c: 00000000 */ nop
/* f071ea0: 45020003 */ bc1fl .L0f071eb0
/* f071ea4: 8c8f0038 */ lw $t7,0x38($a0)
/* f071ea8: afae008c */ sw $t6,0x8c($sp)
.L0f071eac:
/* f071eac: 8c8f0038 */ lw $t7,0x38($a0)
.L0f071eb0:
/* f071eb0: 24420001 */ addiu $v0,$v0,0x1
/* f071eb4: 004f082a */ slt $at,$v0,$t7
/* f071eb8: 5420ff96 */ bnezl $at,.L0f071d14
/* f071ebc: c602002c */ lwc1 $f2,0x2c($s0)
.L0f071ec0:
/* f071ec0: 8fb8008c */ lw $t8,0x8c($sp)
/* f071ec4: 13000004 */ beqz $t8,.L0f071ed8
/* f071ec8: 02202025 */ or $a0,$s1,$zero
/* f071ecc: 24050001 */ addiu $a1,$zero,0x1
/* f071ed0: 0fc1a71c */ jal func0f069c70
/* f071ed4: 24060001 */ addiu $a2,$zero,0x1
.L0f071ed8:
/* f071ed8: 3c0140a0 */ lui $at,0x40a0
/* f071edc: 44811000 */ mtc1 $at,$f2
/* f071ee0: c6000034 */ lwc1 $f0,0x34($s0)
/* f071ee4: c60e0030 */ lwc1 $f14,0x30($s0)
/* f071ee8: 46020201 */ sub.s $f8,$f0,$f2
/* f071eec: 4608703c */ c.lt.s $f14,$f8
/* f071ef0: 00000000 */ nop
/* f071ef4: 45030007 */ bc1tl .L0f071f14
/* f071ef8: 8e390008 */ lw $t9,0x8($s1)
/* f071efc: 46020180 */ add.s $f6,$f0,$f2
/* f071f00: 460e303c */ c.lt.s $f6,$f14
/* f071f04: 00000000 */ nop
/* f071f08: 45020007 */ bc1fl .L0f071f28
/* f071f0c: 8e2a0008 */ lw $t2,0x8($s1)
/* f071f10: 8e390008 */ lw $t9,0x8($s1)
.L0f071f14:
/* f071f14: 3c018000 */ lui $at,0x8000
/* f071f18: 03214825 */ or $t1,$t9,$at
/* f071f1c: 10000006 */ b .L0f071f38
/* f071f20: ae290008 */ sw $t1,0x8($s1)
/* f071f24: 8e2a0008 */ lw $t2,0x8($s1)
.L0f071f28:
/* f071f28: 3c017fff */ lui $at,0x7fff
/* f071f2c: 3421ffff */ ori $at,$at,0xffff
/* f071f30: 01415824 */ and $t3,$t2,$at
/* f071f34: ae2b0008 */ sw $t3,0x8($s1)
.L0f071f38:
/* f071f38: 0fc1c4d8 */ jal objGetHov04
/* f071f3c: 02202025 */ or $a0,$s1,$zero
/* f071f40: c6040030 */ lwc1 $f4,0x30($s0)
/* f071f44: 8fac01d4 */ lw $t4,0x1d4($sp)
/* f071f48: 27a50148 */ addiu $a1,$sp,0x148
/* f071f4c: 46040280 */ add.s $f10,$f0,$f4
/* f071f50: e58a000c */ swc1 $f10,0xc($t4)
/* f071f54: 0c005900 */ jal mtx4LoadZRotation
/* f071f58: c60c0020 */ lwc1 $f12,0x20($s0)
/* f071f5c: c608002c */ lwc1 $f8,0x2c($s0)
/* f071f60: c6060014 */ lwc1 $f6,0x14($s0)
/* f071f64: 3c017f1b */ lui $at,%hi(var7f1aa30c)
/* f071f68: c424a30c */ lwc1 $f4,%lo(var7f1aa30c)($at)
/* f071f6c: 46064300 */ add.s $f12,$f8,$f6
/* f071f70: 3c017f1b */ lui $at,%hi(var7f1aa310)
/* f071f74: 460c203e */ c.le.s $f4,$f12
/* f071f78: 00000000 */ nop
/* f071f7c: 45020005 */ bc1fl .L0f071f94
/* f071f80: 44804000 */ mtc1 $zero,$f8
/* f071f84: c42aa310 */ lwc1 $f10,%lo(var7f1aa310)($at)
/* f071f88: 10000009 */ b .L0f071fb0
/* f071f8c: 460a6301 */ sub.s $f12,$f12,$f10
/* f071f90: 44804000 */ mtc1 $zero,$f8
.L0f071f94:
/* f071f94: 3c017f1b */ lui $at,%hi(var7f1aa314)
/* f071f98: 4608603c */ c.lt.s $f12,$f8
/* f071f9c: 00000000 */ nop
/* f071fa0: 45000003 */ bc1f .L0f071fb0
/* f071fa4: 00000000 */ nop
/* f071fa8: c426a314 */ lwc1 $f6,%lo(var7f1aa314)($at)
/* f071fac: 46066300 */ add.s $f12,$f12,$f6
.L0f071fb0:
/* f071fb0: 0c0058ba */ jal mtx4LoadXRotation
/* f071fb4: 27a50108 */ addiu $a1,$sp,0x108
/* f071fb8: 27a40108 */ addiu $a0,$sp,0x108
/* f071fbc: 0c0056f8 */ jal mtx00015be0
/* f071fc0: 27a50148 */ addiu $a1,$sp,0x148
/* f071fc4: c60c0010 */ lwc1 $f12,0x10($s0)
/* f071fc8: 0c0058dd */ jal mtx4LoadYRotation
/* f071fcc: 27a50108 */ addiu $a1,$sp,0x108
/* f071fd0: 27b00108 */ addiu $s0,$sp,0x108
/* f071fd4: 02002025 */ or $a0,$s0,$zero
/* f071fd8: 0c0056f8 */ jal mtx00015be0
/* f071fdc: 27a50148 */ addiu $a1,$sp,0x148
/* f071fe0: 8e2d0018 */ lw $t5,0x18($s1)
/* f071fe4: 27a50148 */ addiu $a1,$sp,0x148
/* f071fe8: 0c0057c1 */ jal mtx00015f04
/* f071fec: c5ac0014 */ lwc1 $f12,0x14($t5)
/* f071ff0: 922e0003 */ lbu $t6,0x3($s1)
/* f071ff4: 24010033 */ addiu $at,$zero,0x33
/* f071ff8: 55c10027 */ bnel $t6,$at,.L0f072098
/* f071ffc: 27a40148 */ addiu $a0,$sp,0x148
/* f072000: c62400bc */ lwc1 $f4,0xbc($s1)
/* f072004: c62a00c0 */ lwc1 $f10,0xc0($s1)
/* f072008: 44803000 */ mtc1 $zero,$f6
/* f07200c: 460a2200 */ add.s $f8,$f4,$f10
/* f072010: e7a8006c */ swc1 $f8,0x6c($sp)
/* f072014: c62c00b8 */ lwc1 $f12,0xb8($s1)
/* f072018: 460c3032 */ c.eq.s $f6,$f12
/* f07201c: 00000000 */ nop
/* f072020: 4503000c */ bc1tl .L0f072054
/* f072024: c7a4006c */ lwc1 $f4,0x6c($sp)
/* f072028: 0c0058ba */ jal mtx4LoadXRotation
/* f07202c: 02002825 */ or $a1,$s0,$zero
/* f072030: 27b100c8 */ addiu $s1,$sp,0xc8
/* f072034: 02203025 */ or $a2,$s1,$zero
/* f072038: 27a40148 */ addiu $a0,$sp,0x148
/* f07203c: 0c0056f9 */ jal mtx00015be4
/* f072040: 02002825 */ or $a1,$s0,$zero
/* f072044: 02202025 */ or $a0,$s1,$zero
/* f072048: 0c005746 */ jal mtx4Copy
/* f07204c: 27a50148 */ addiu $a1,$sp,0x148
/* f072050: c7a4006c */ lwc1 $f4,0x6c($sp)
.L0f072054:
/* f072054: 44805000 */ mtc1 $zero,$f10
/* f072058: 27b100c8 */ addiu $s1,$sp,0xc8
/* f07205c: 02002825 */ or $a1,$s0,$zero
/* f072060: 460a2032 */ c.eq.s $f4,$f10
/* f072064: 00000000 */ nop
/* f072068: 4503000b */ bc1tl .L0f072098
/* f07206c: 27a40148 */ addiu $a0,$sp,0x148
/* f072070: 0c005900 */ jal mtx4LoadZRotation
/* f072074: 46002306 */ mov.s $f12,$f4
/* f072078: 27a40148 */ addiu $a0,$sp,0x148
/* f07207c: 02002825 */ or $a1,$s0,$zero
/* f072080: 0c0056f9 */ jal mtx00015be4
/* f072084: 02203025 */ or $a2,$s1,$zero
/* f072088: 02202025 */ or $a0,$s1,$zero
/* f07208c: 0c005746 */ jal mtx4Copy
/* f072090: 27a50148 */ addiu $a1,$sp,0x148
/* f072094: 27a40148 */ addiu $a0,$sp,0x148
.L0f072098:
/* f072098: 0c005768 */ jal mtx4ToMtx3
/* f07209c: 8fa5005c */ lw $a1,0x5c($sp)
/* f0720a0: 8fbf004c */ lw $ra,0x4c($sp)
.L0f0720a4:
/* f0720a4: 8fb00044 */ lw $s0,0x44($sp)
/* f0720a8: 8fb10048 */ lw $s1,0x48($sp)
/* f0720ac: 03e00008 */ jr $ra
/* f0720b0: 27bd01d8 */ addiu $sp,$sp,0x1d8
);
#endif
s32 objIsHoverpropOrBike(struct defaultobj *obj)
{
return obj->type == OBJTYPE_HOVERPROP || obj->type == OBJTYPE_HOVERBIKE;
}
f32 hoverpropGetTurnAngle(struct defaultobj *obj)
{
f32 angle = 0;
if (obj->type == OBJTYPE_HOVERPROP) {
struct hoverpropobj *hoverprop = (struct hoverpropobj *)obj;
angle = hoverprop->hov.unk10;
} else if (obj->type == OBJTYPE_HOVERBIKE) {
struct hoverbikeobj *hoverbike = (struct hoverbikeobj *)obj;
angle = hoverbike->hov.unk10;
}
return angle;
}
void hoverpropSetTurnAngle(struct defaultobj *obj, f32 angle)
{
if (obj->type == OBJTYPE_HOVERPROP) {
struct hoverpropobj *hoverprop = (struct hoverpropobj *)obj;
hoverprop->hov.unk10 = angle;
} else if (obj->type == OBJTYPE_HOVERBIKE) {
struct hoverbikeobj *hoverbike = (struct hoverbikeobj *)obj;
hoverbike->hov.unk10 = angle;
}
}
s32 func0f072144(struct defaultobj *obj, struct coord *arg1, f32 arg2, bool arg3)
{
s32 cdresult = CDRESULT_NOCOLLISION;
f32 sp460[3][3];
f32 yrot;
struct coord pos;
s16 rooms[8];
struct hov prevhov;
struct hov *hov = NULL;
struct hoverbikeobj *hoverbike;
struct hoverpropobj *hoverprop;
u8 stack[0x2f0];
struct geocyl cyl;
struct prop *prop = obj->prop;
u32 stack2;
Mtxf spa4;
Mtxf sp64;
f32 sp40[3][3];
if (objIsHoverpropOrBike(obj)) {
if (arg2 != 0.0f) {
yrot = arg2 + hoverpropGetTurnAngle(obj);
if (yrot >= M_BADTAU) {
yrot -= M_BADTAU;
} else if (yrot < 0.0f) {
yrot += M_BADTAU;
}
} else {
yrot = hoverpropGetTurnAngle(obj);
}
mtx4LoadYRotation(yrot, &spa4);
mtx00015f04(obj->model->scale, &spa4);
mtx4ToMtx3(&spa4, sp460);
} else {
yrot = 0.0f;
if (arg2 != 0.0f) {
if (arg2 >= M_BADTAU) {
arg2 -= M_BADTAU;
} else if (arg2 < 0.0f) {
arg2 += M_BADTAU;
}
mtx4LoadYRotation(arg2, &sp64);
mtx4ToMtx3(&sp64, sp40);
mtx00016140(sp40, obj->realrot, sp460);
} else {
mtx3Copy(obj->realrot, sp460);
}
}
pos.x = prop->pos.x;
pos.y = prop->pos.y;
pos.z = prop->pos.z;
propSetPerimEnabled(prop, false);
if (arg1->x != 0.0f || arg1->z != 0.0f) {
pos.x += arg1->x;
pos.z += arg1->z;
func0f065e74(&prop->pos, prop->rooms, &pos, rooms);
setup0f09233c(obj, &pos, sp460, rooms);
if (obj->type == OBJTYPE_HOVERBIKE) {
hoverbike = (struct hoverbikeobj *)obj;
hov = &hoverbike->hov;
} else if (obj->type == OBJTYPE_HOVERPROP) {
hoverprop = (struct hoverpropobj *)obj;
hov = &hoverprop->hov;
}
if (hov != NULL) {
prevhov = *hov;
hovUpdateGround(obj, hov, &pos, rooms, sp460);
pos.y += hov->ground - prevhov.ground;
}
cdresult = cd0002d8b8(&prop->pos, prop->rooms, &pos, rooms, CDTYPE_ALL, true, 0.0f, 0.0f);
if (cdresult == CDRESULT_ERROR) {
// empty
} else if (cdresult == CDRESULT_COLLISION) {
cd00025314(&prop->pos, &pos);
}
} else {
roomsCopy(prop->rooms, rooms);
setup0f09233c(obj, &pos, sp460, rooms);
}
if (cdresult == CDRESULT_NOCOLLISION) {
func0f069850(obj, &pos, sp460, &cyl);
if (obj->flags3 & OBJFLAG3_GEOCYL) {
cdresult = cd0002a6fc(&prop->pos, &pos, cyl.radius, rooms, CDTYPE_ALL, true, cyl.ymax - pos.y, cyl.ymin - pos.y);
} else {
cdresult = cd0002f02c((struct geoblock *)&cyl, rooms, CDTYPE_ALL);
}
}
propSetPerimEnabled(prop, true);
if (cdresult == CDRESULT_NOCOLLISION && arg3) {
hoverpropSetTurnAngle(obj, yrot);
mtx3Copy(sp460, obj->realrot);
prop->pos.x = pos.x;
prop->pos.z = pos.z;
propDeregisterRooms(prop);
roomsCopy(rooms, prop->rooms);
if (obj->geocyl && (obj->hidden2 & OBJH2FLAG_08)) {
if (obj->flags3 & OBJFLAG3_GEOCYL) {
*obj->geocyl = cyl;
} else {
*obj->geoblock = *(struct geoblock *)&cyl;
}
}
} else if (hov) {
*hov = prevhov;
}
return cdresult;
}
void hovercarFindNextPath(struct hovercarobj *hovercar)
{
s32 index = hovercar->path - g_StageSetup.paths + 1;
while (true) {
if (g_StageSetup.paths[index].pads == NULL) {
index = 0;
}
if (&g_StageSetup.paths[index] == hovercar->path) {
break;
}
if ((g_StageSetup.paths[index].flags & PATHFLAG_FLYING)
&& (g_StageSetup.paths[index].flags & PATHFLAG_INUSE) == 0) {
hovercar->path->flags &= ~PATHFLAG_INUSE;
hovercar->path = &g_StageSetup.paths[index];
hovercar->path->flags |= PATHFLAG_INUSE;
return;
}
index++;
}
}
void hovercarStartNextPath(struct hovercarobj *hovercar)
{
s32 *pads;
struct pad pad;
Mtxf matrix;
s16 rooms[2];
hovercarFindNextPath(hovercar);
pads = hovercar->path->pads;
hovercar->nextstep = 0;
padUnpack(pads[0], PADFIELD_POS | PADFIELD_ROOM, &pad);
mtx3ToMtx4(hovercar->base.realrot, &matrix);
rooms[0] = pad.room;
rooms[1] = -1;
func0f06a730(&hovercar->base, &pad.pos, &matrix, rooms, &pad.pos);
hovercar->base.flags |= OBJFLAG_HOVERCAR_20000000;
}
void hovercarIncrementStep(struct hovercarobj *hovercar)
{
hovercar->nextstep++;
if (hovercar->path->pads[hovercar->nextstep] < 0) {
if (hovercar->path->flags & PATHFLAG_CIRCULAR) {
hovercar->nextstep = 0;
} else {
hovercarStartNextPath(hovercar);
}
}
}
/**
* Check if the given obj is colliding with another obj. If so, transfer
* velocity into the collided obj. Return a frac that should be applied to the
* moving obj's speed.
*
* Assumes the caller has used the collision system already, so any obstacle is
* already known by the collision system.
*
* For collisions with chrs, no transfer of intertia is done and the moving obj
* rebounds at full speed. For collisions with pushable objects, the force is
* applied half to both objects.
*/
f32 objCollide(struct defaultobj *movingobj, struct coord *movingvel, f32 rotation)
{
f32 force = 1.0f;
struct prop *obstacle = cdGetObstacle();
if (obstacle && g_Vars.lvupdate240 > 0) {
if (obstacle->type == PROPTYPE_CHR || obstacle->type == PROPTYPE_PLAYER) {
if (1);
} else if (obstacle->type == PROPTYPE_OBJ) {
struct defaultobj *obstacleobj = obstacle->obj;
if ((obstacleobj->hidden & OBJHFLAG_MOUNTED) == 0
&& (obstacleobj->hidden & OBJHFLAG_GRABBED) == 0
&& (obstacleobj->flags3 & OBJFLAG3_PUSHABLE)) {
struct coord sp88;
struct coord obstaclevel = {0, 0, 0};
struct coord sp70;
struct coord sp64;
struct coord sp58;
struct coord sp4c;
obstaclevel.x = movingvel->x * 0.5f / g_Vars.lvupdate240freal;
obstaclevel.y = 0.0f;
obstaclevel.z = movingvel->z * 0.5f / g_Vars.lvupdate240freal;
objApplyMomentum(obstacleobj, &obstaclevel, 0.0f, true, true);
#if VERSION >= VERSION_PAL_FINAL
cd00024e4c(&sp70, &sp64, 7356, "prop/propobj.c");
#elif VERSION >= VERSION_PAL_BETA
cd00024e4c(&sp70, &sp64, 7356, "propobj.c");
#elif VERSION >= VERSION_NTSC_1_0
cd00024e4c(&sp70, &sp64, 7355, "propobj.c");
#else
cd00024e4c(&sp70, &sp64, 7308, "propobj.c");
#endif
if (cd00025364(&sp58, &sp4c)) {
sp4c.x -= sp58.x;
sp4c.y -= sp58.y;
sp4c.z -= sp58.z;
} else {
sp58.x = movingobj->prop->pos.x;
sp58.y = movingobj->prop->pos.y;
sp58.z = movingobj->prop->pos.z;
sp4c.x = obstacle->pos.x - movingobj->prop->pos.x;
sp4c.y = obstacle->pos.y - movingobj->prop->pos.y;
sp4c.z = obstacle->pos.z - movingobj->prop->pos.z;
}
func0f02e3dc(&sp70, &sp64, &sp58, &sp4c, &sp88);
force = 0.5f;
if (rotation != 0.0f) {
f32 xdiff = sp88.f[0] - movingobj->prop->pos.f[0];
f32 zdiff = sp88.f[2] - movingobj->prop->pos.f[2];
f32 finalrotation = 0.0f;
struct coord speed = {0, 0, 0};
f32 mult = 1.0f / sqrtf(xdiff * xdiff + zdiff * zdiff);
xdiff *= mult;
zdiff *= mult;
rotation /= g_Vars.lvupdate240freal;
speed.f[0] += -zdiff * rotation * 10.0f;
speed.f[2] += xdiff * rotation * 10.0f;
finalrotation += rotation * 0.1f;
objApplyMomentum(obstacleobj, &speed, finalrotation, true, true);
}
}
}
}
return force;
}
#if VERSION >= VERSION_PAL_FINAL
const char var7f1a9fb8[] = "prop/propobj.c";
const char var7f1a9fc4[] = "prop/propobj.c";
#else
const char var7f1a9fb8[] = "propobj.c";
const char var7f1a9fc4[] = "propobj.c";
#endif
u32 var80069b8c = 0x00000000;
u32 var80069b90 = 0x00000000;
u32 var80069b94 = 0x00000000;
u32 var80069b98 = 0x00000000;
u32 var80069b9c = 0x00000000;
u32 var80069ba0 = 0x00000000;
u32 var80069ba4 = 0x00000000;
u32 var80069ba8 = 0x00000000;
u32 var80069bac = 0x3f800000;
u32 var80069bb0 = 0x00000000;
u32 var80069bb4 = 0x3f800000;
u32 var80069bb8 = 0x00000000;
u32 var80069bbc = 0x00270028;
u32 var80069bc0 = 0x0029002a;
u32 var80069bc4 = 0x00000000;
u32 var80069bc8 = 0x00000003;
u32 var80069bcc = 0x00000014;
u32 var80069bd0 = 0x00000078;
#if VERSION == VERSION_PAL_FINAL
GLOBAL_ASM(
glabel hoverbikeUpdateMovement
.late_rodata
glabel var7f1ab5d0pf
.word 0x3d32b179
glabel var7f1ab5d4pf
.word 0x3db6e2eb
glabel var7f1ab5d8pf
.word 0x3e99999a
glabel var7f1ab5dcpf
.word 0x3dcccccd
glabel var7f1ab5e0pf
.word 0x3e99999a
glabel var7f1ab5e4pf
.word 0x3dcccccd
glabel var7f1ab5e8pf
.word 0x3f6e147b
glabel var7f1ab5ecpf
.word 0x3f333333
glabel var7f1ab5f0pf
.word 0x3d23d70a
glabel var7f1ab5f4pf
.word 0x40c907a9
glabel var7f1ab5f8pf
.word 0x3dcccccd
glabel var7f1ab5fcpf
.word 0x3dcccccd
glabel var7f1ab600pf
.word 0x3ecccccd
glabel var7f1ab604pf
.word 0x3e80a8be
glabel var7f1ab608pf
.word 0x3fa5e355
glabel var7f1ab60cpf
.word 0x3f5d2f1c
glabel var7f1ab610pf
.word 0x3fa5e355
glabel var7f1ab614pf
.word 0x3f5d2f1c
glabel var7f1ab618pf
.word 0x3f76c8b4
glabel var7f1ab61cpf
.word 0x3e353f7d
glabel var7f1ab620pf
.word 0x3d43c9ef
glabel var7f1ab624pf
.word 0x3f7d70a4
glabel var7f1ab628pf
.word 0x3f4ccccd
glabel var7f1ab62cpf
.word 0xbdcccccd
glabel var7f1ab630pf
.word 0x459c4000
glabel var7f1ab634pf
.word 0x49f42400
glabel var7f1ab638pf
.word 0x3dcccccd
glabel var7f1ab63cpf
.word 0x3dcccccd
glabel var7f1ab640pf
.word 0x3a83126f
glabel var7f1ab644pf
.word 0x3dcccccd
glabel var7f1ab648pf
.word 0xbdcccccd
glabel var7f1ab64cpf
.word 0xbdcccccd
glabel var7f1ab650pf
.word 0xba83126f
glabel var7f1ab654pf
.word 0xbdcccccd
.text
/* f072d60: 27bdff78 */ addiu $sp,$sp,-136
/* f072d64: f7b40010 */ sdc1 $f20,0x10($sp)
/* f072d68: afa5008c */ sw $a1,0x8c($sp)
/* f072d6c: 4480a000 */ mtc1 $zero,$f20
/* f072d70: c7a6008c */ lwc1 $f6,0x8c($sp)
/* f072d74: 3c017f1b */ lui $at,0x7f1b
/* f072d78: 44877000 */ mtc1 $a3,$f14
/* f072d7c: 4614303c */ c.lt.s $f6,$f20
/* f072d80: c424b5d0 */ lwc1 $f4,-0x4a30($at)
/* f072d84: afbf001c */ sw $ra,0x1c($sp)
/* f072d88: afa60090 */ sw $a2,0x90($sp)
/* f072d8c: 46047302 */ mul.s $f12,$f14,$f4
/* f072d90: 45000009 */ bc1f .PF0f072db8
/* f072d94: 3c05800a */ lui $a1,0x800a
/* f072d98: 3c013f00 */ lui $at,0x3f00
/* f072d9c: 44814000 */ mtc1 $at,$f8
/* f072da0: 3c013f80 */ lui $at,0x3f80
/* f072da4: 44812000 */ mtc1 $at,$f4
/* f072da8: 46083282 */ mul.s $f10,$f6,$f8
/* f072dac: 460a2181 */ sub.s $f6,$f4,$f10
/* f072db0: 46066302 */ mul.s $f12,$f12,$f6
/* f072db4: 00000000 */ nop
.PF0f072db8:
/* f072db8: 3c013f00 */ lui $at,0x3f00
/* f072dbc: 44812000 */ mtc1 $at,$f4
/* f072dc0: c7a8008c */ lwc1 $f8,0x8c($sp)
/* f072dc4: 24a5a510 */ addiu $a1,$a1,-23280
/* f072dc8: 8cae0038 */ lw $t6,0x38($a1)
/* f072dcc: 46044382 */ mul.s $f14,$f8,$f4
/* f072dd0: 00001825 */ move $v1,$zero
/* f072dd4: 19c0000d */ blez $t6,.PF0f072e0c
/* f072dd8: 3c017f1b */ lui $at,0x7f1b
/* f072ddc: c420b5d4 */ lwc1 $f0,-0x4a2c($at)
/* f072de0: c48200ac */ lwc1 $f2,0xac($a0)
.PF0f072de4:
/* f072de4: 24630001 */ addiu $v1,$v1,0x1
/* f072de8: 46026281 */ sub.s $f10,$f12,$f2
/* f072dec: 46005182 */ mul.s $f6,$f10,$f0
/* f072df0: 46061200 */ add.s $f8,$f2,$f6
/* f072df4: e48800ac */ swc1 $f8,0xac($a0)
/* f072df8: 8caf0038 */ lw $t7,0x38($a1)
/* f072dfc: 006f082a */ slt $at,$v1,$t7
/* f072e00: 5420fff8 */ bnezl $at,.PF0f072de4
/* f072e04: c48200ac */ lwc1 $f2,0xac($a0)
/* f072e08: 00001825 */ move $v1,$zero
.PF0f072e0c:
/* f072e0c: 3c014140 */ lui $at,0x4140
/* f072e10: 44815000 */ mtc1 $at,$f10
/* f072e14: c48400ac */ lwc1 $f4,0xac($a0)
/* f072e18: e7ae0044 */ swc1 $f14,0x44($sp)
/* f072e1c: afa40088 */ sw $a0,0x88($sp)
/* f072e20: 460a2182 */ mul.s $f6,$f4,$f10
/* f072e24: afa30064 */ sw $v1,0x64($sp)
/* f072e28: 4606a200 */ add.s $f8,$f20,$f6
/* f072e2c: 0fc1c8d7 */ jal hoverpropGetTurnAngle
/* f072e30: e7a8006c */ swc1 $f8,0x6c($sp)
/* f072e34: e7a00080 */ swc1 $f0,0x80($sp)
/* f072e38: 0c00685b */ jal sinf
/* f072e3c: 46000306 */ mov.s $f12,$f0
/* f072e40: e7a0007c */ swc1 $f0,0x7c($sp)
/* f072e44: 0c006858 */ jal cosf
/* f072e48: c7ac0080 */ lwc1 $f12,0x80($sp)
/* f072e4c: c7b0008c */ lwc1 $f16,0x8c($sp)
/* f072e50: 3c05800a */ lui $a1,0x800a
/* f072e54: 24a5a510 */ addiu $a1,$a1,-23280
/* f072e58: 4610a03e */ c.le.s $f20,$f16
/* f072e5c: 8fa30064 */ lw $v1,0x64($sp)
/* f072e60: 8fa40088 */ lw $a0,0x88($sp)
/* f072e64: c7ae0044 */ lwc1 $f14,0x44($sp)
/* f072e68: 4500000c */ bc1f .PF0f072e9c
/* f072e6c: 3c017f1b */ lui $at,0x7f1b
/* f072e70: 3c017f1b */ lui $at,0x7f1b
/* f072e74: c432b5d8 */ lwc1 $f18,-0x4a28($at)
/* f072e78: 3c017f1b */ lui $at,0x7f1b
/* f072e7c: c424b5dc */ lwc1 $f4,-0x4a24($at)
/* f072e80: c4a8004c */ lwc1 $f8,0x4c($a1)
/* f072e84: 46048280 */ add.s $f10,$f16,$f4
/* f072e88: 46125182 */ mul.s $f6,$f10,$f18
/* f072e8c: 00000000 */ nop
/* f072e90: 46083082 */ mul.s $f2,$f6,$f8
/* f072e94: 1000000a */ b .PF0f072ec0
/* f072e98: 00000000 */ nop
.PF0f072e9c:
/* f072e9c: c432b5e0 */ lwc1 $f18,-0x4a20($at)
/* f072ea0: 3c017f1b */ lui $at,0x7f1b
/* f072ea4: c424b5e4 */ lwc1 $f4,-0x4a1c($at)
/* f072ea8: c4a8004c */ lwc1 $f8,0x4c($a1)
/* f072eac: 46102281 */ sub.s $f10,$f4,$f16
/* f072eb0: 46125182 */ mul.s $f6,$f10,$f18
/* f072eb4: 00000000 */ nop
/* f072eb8: 46083082 */ mul.s $f2,$f6,$f8
/* f072ebc: 00000000 */ nop
.PF0f072ec0:
/* f072ec0: c48c00b4 */ lwc1 $f12,0xb4($a0)
/* f072ec4: 3c013f80 */ lui $at,0x3f80
/* f072ec8: 460e603c */ c.lt.s $f12,$f14
/* f072ecc: 00000000 */ nop
/* f072ed0: 4502000b */ bc1fl .PF0f072f00
/* f072ed4: 46026181 */ sub.s $f6,$f12,$f2
/* f072ed8: 46026100 */ add.s $f4,$f12,$f2
/* f072edc: e48400b4 */ swc1 $f4,0xb4($a0)
/* f072ee0: c48a00b4 */ lwc1 $f10,0xb4($a0)
/* f072ee4: 460a703c */ c.lt.s $f14,$f10
/* f072ee8: 00000000 */ nop
/* f072eec: 4502000c */ bc1fl .PF0f072f20
/* f072ef0: 44816000 */ mtc1 $at,$f12
/* f072ef4: 10000009 */ b .PF0f072f1c
/* f072ef8: e48e00b4 */ swc1 $f14,0xb4($a0)
/* f072efc: 46026181 */ sub.s $f6,$f12,$f2
.PF0f072f00:
/* f072f00: e48600b4 */ swc1 $f6,0xb4($a0)
/* f072f04: c48800b4 */ lwc1 $f8,0xb4($a0)
/* f072f08: 460e403c */ c.lt.s $f8,$f14
/* f072f0c: 00000000 */ nop
/* f072f10: 45020003 */ bc1fl .PF0f072f20
/* f072f14: 44816000 */ mtc1 $at,$f12
/* f072f18: e48e00b4 */ swc1 $f14,0xb4($a0)
.PF0f072f1c:
/* f072f1c: 44816000 */ mtc1 $at,$f12
.PF0f072f20:
/* f072f20: 3c017f1b */ lui $at,0x7f1b
/* f072f24: c42ab5e8 */ lwc1 $f10,-0x4a18($at)
/* f072f28: c48400c8 */ lwc1 $f4,0xc8($a0)
/* f072f2c: 3c0140a0 */ lui $at,0x40a0
/* f072f30: 460a2182 */ mul.s $f6,$f4,$f10
/* f072f34: c48400c4 */ lwc1 $f4,0xc4($a0)
/* f072f38: e49000c4 */ swc1 $f16,0xc4($a0)
/* f072f3c: 46048281 */ sub.s $f10,$f16,$f4
/* f072f40: e48600c8 */ swc1 $f6,0xc8($a0)
/* f072f44: c48800c8 */ lwc1 $f8,0xc8($a0)
/* f072f48: 460a4180 */ add.s $f6,$f8,$f10
/* f072f4c: 44814000 */ mtc1 $at,$f8
/* f072f50: 3c01bf80 */ lui $at,0xbf80
/* f072f54: e48600c8 */ swc1 $f6,0xc8($a0)
/* f072f58: c48400c8 */ lwc1 $f4,0xc8($a0)
/* f072f5c: 46082082 */ mul.s $f2,$f4,$f8
/* f072f60: 4602603c */ c.lt.s $f12,$f2
/* f072f64: 00000000 */ nop
/* f072f68: 45020004 */ bc1fl .PF0f072f7c
/* f072f6c: 44816000 */ mtc1 $at,$f12
/* f072f70: 10000008 */ b .PF0f072f94
/* f072f74: 46006086 */ mov.s $f2,$f12
/* f072f78: 44816000 */ mtc1 $at,$f12
.PF0f072f7c:
/* f072f7c: 00000000 */ nop
/* f072f80: 460c103c */ c.lt.s $f2,$f12
/* f072f84: 00000000 */ nop
/* f072f88: 45020003 */ bc1fl .PF0f072f98
/* f072f8c: 4610a03e */ c.le.s $f20,$f16
/* f072f90: 46006086 */ mov.s $f2,$f12
.PF0f072f94:
/* f072f94: 4610a03e */ c.le.s $f20,$f16
.PF0f072f98:
/* f072f98: 00000000 */ nop
/* f072f9c: 45020010 */ bc1fl .PF0f072fe0
/* f072fa0: 4614103c */ c.lt.s $f2,$f20
/* f072fa4: 4602a03c */ c.lt.s $f20,$f2
/* f072fa8: 3c017f1b */ lui $at,0x7f1b
/* f072fac: 45000008 */ bc1f .PF0f072fd0
/* f072fb0: 00000000 */ nop
/* f072fb4: 46128282 */ mul.s $f10,$f16,$f18
/* f072fb8: c426b5ec */ lwc1 $f6,-0x4a14($at)
/* f072fbc: 46068102 */ mul.s $f4,$f16,$f6
/* f072fc0: 00000000 */ nop
/* f072fc4: 46022202 */ mul.s $f8,$f4,$f2
/* f072fc8: 1000000c */ b .PF0f072ffc
/* f072fcc: 46085300 */ add.s $f12,$f10,$f8
.PF0f072fd0:
/* f072fd0: 46128302 */ mul.s $f12,$f16,$f18
/* f072fd4: 10000009 */ b .PF0f072ffc
/* f072fd8: 00000000 */ nop
/* f072fdc: 4614103c */ c.lt.s $f2,$f20
.PF0f072fe0:
/* f072fe0: 00000000 */ nop
/* f072fe4: 45020005 */ bc1fl .PF0f072ffc
/* f072fe8: 46007306 */ mov.s $f12,$f14
/* f072fec: 46027182 */ mul.s $f6,$f14,$f2
/* f072ff0: 10000002 */ b .PF0f072ffc
/* f072ff4: 46067301 */ sub.s $f12,$f14,$f6
/* f072ff8: 46007306 */ mov.s $f12,$f14
.PF0f072ffc:
/* f072ffc: 3c017f1b */ lui $at,0x7f1b
/* f073000: c424b5f0 */ lwc1 $f4,-0x4a10($at)
/* f073004: 3c017f1b */ lui $at,0x7f1b
/* f073008: c428b5f4 */ lwc1 $f8,-0x4a0c($at)
/* f07300c: 46046282 */ mul.s $f10,$f12,$f4
/* f073010: 3c017f1b */ lui $at,0x7f1b
/* f073014: 46085182 */ mul.s $f6,$f10,$f8
/* f073018: c7aa0090 */ lwc1 $f10,0x90($sp)
/* f07301c: 460aa03e */ c.le.s $f20,$f10
/* f073020: 4606a100 */ add.s $f4,$f20,$f6
/* f073024: c7a60090 */ lwc1 $f6,0x90($sp)
/* f073028: 4500000a */ bc1f .PF0f073054
/* f07302c: e7a40070 */ swc1 $f4,0x70($sp)
/* f073030: 3c017f1b */ lui $at,0x7f1b
/* f073034: c428b5f8 */ lwc1 $f8,-0x4a08($at)
/* f073038: 46085180 */ add.s $f6,$f10,$f8
/* f07303c: c4aa004c */ lwc1 $f10,0x4c($a1)
/* f073040: 46123102 */ mul.s $f4,$f6,$f18
/* f073044: 00000000 */ nop
/* f073048: 460a2302 */ mul.s $f12,$f4,$f10
/* f07304c: 10000008 */ b .PF0f073070
/* f073050: 00000000 */ nop
.PF0f073054:
/* f073054: c428b5fc */ lwc1 $f8,-0x4a04($at)
/* f073058: 46064101 */ sub.s $f4,$f8,$f6
/* f07305c: c4a8004c */ lwc1 $f8,0x4c($a1)
/* f073060: 46122282 */ mul.s $f10,$f4,$f18
/* f073064: 00000000 */ nop
/* f073068: 46085302 */ mul.s $f12,$f10,$f8
/* f07306c: 00000000 */ nop
.PF0f073070:
/* f073070: 3c017f1b */ lui $at,0x7f1b
/* f073074: c426b600 */ lwc1 $f6,-0x4a00($at)
/* f073078: c7a40090 */ lwc1 $f4,0x90($sp)
/* f07307c: c48e00b0 */ lwc1 $f14,0xb0($a0)
/* f073080: 3c017f1b */ lui $at,0x7f1b
/* f073084: 46043082 */ mul.s $f2,$f6,$f4
/* f073088: 4602703c */ c.lt.s $f14,$f2
/* f07308c: 00000000 */ nop
/* f073090: 4502000b */ bc1fl .PF0f0730c0
/* f073094: 460c7181 */ sub.s $f6,$f14,$f12
/* f073098: 460c7280 */ add.s $f10,$f14,$f12
/* f07309c: e48a00b0 */ swc1 $f10,0xb0($a0)
/* f0730a0: c48800b0 */ lwc1 $f8,0xb0($a0)
/* f0730a4: 4608103c */ c.lt.s $f2,$f8
/* f0730a8: 00000000 */ nop
/* f0730ac: 4502000c */ bc1fl .PF0f0730e0
/* f0730b0: c7aa0090 */ lwc1 $f10,0x90($sp)
/* f0730b4: 10000009 */ b .PF0f0730dc
/* f0730b8: e48200b0 */ swc1 $f2,0xb0($a0)
/* f0730bc: 460c7181 */ sub.s $f6,$f14,$f12
.PF0f0730c0:
/* f0730c0: e48600b0 */ swc1 $f6,0xb0($a0)
/* f0730c4: c48400b0 */ lwc1 $f4,0xb0($a0)
/* f0730c8: 4602203c */ c.lt.s $f4,$f2
/* f0730cc: 00000000 */ nop
/* f0730d0: 45020003 */ bc1fl .PF0f0730e0
/* f0730d4: c7aa0090 */ lwc1 $f10,0x90($sp)
/* f0730d8: e48200b0 */ swc1 $f2,0xb0($a0)
.PF0f0730dc:
/* f0730dc: c7aa0090 */ lwc1 $f10,0x90($sp)
.PF0f0730e0:
/* f0730e0: c428b604 */ lwc1 $f8,-0x49fc($at)
/* f0730e4: 8ca20038 */ lw $v0,0x38($a1)
/* f0730e8: 46085182 */ mul.s $f6,$f10,$f8
/* f0730ec: c7a8007c */ lwc1 $f8,0x7c($sp)
/* f0730f0: 4606a100 */ add.s $f4,$f20,$f6
/* f0730f4: 18400033 */ blez $v0,.PF0f0731c4
/* f0730f8: e7a40068 */ swc1 $f4,0x68($sp)
/* f0730fc: c48a00b4 */ lwc1 $f10,0xb4($a0)
/* f073100: 3c017f1b */ lui $at,0x7f1b
/* f073104: c424b608 */ lwc1 $f4,-0x49f8($at)
/* f073108: 46085182 */ mul.s $f6,$f10,$f8
/* f07310c: c48a00b0 */ lwc1 $f10,0xb0($a0)
/* f073110: 3c017f1b */ lui $at,0x7f1b
/* f073114: 46043302 */ mul.s $f12,$f6,$f4
/* f073118: c424b60c */ lwc1 $f4,-0x49f4($at)
/* f07311c: 3c017f1b */ lui $at,0x7f1b
/* f073120: 46085182 */ mul.s $f6,$f10,$f8
/* f073124: c48a00b4 */ lwc1 $f10,0xb4($a0)
/* f073128: 46043382 */ mul.s $f14,$f6,$f4
/* f07312c: c426b610 */ lwc1 $f6,-0x49f0($at)
/* f073130: c48400b0 */ lwc1 $f4,0xb0($a0)
/* f073134: 46005202 */ mul.s $f8,$f10,$f0
/* f073138: 3c017f1b */ lui $at,0x7f1b
/* f07313c: 46002287 */ neg.s $f10,$f4
/* f073140: 46064402 */ mul.s $f16,$f8,$f6
/* f073144: c426b614 */ lwc1 $f6,-0x49ec($at)
/* f073148: 3c017f1b */ lui $at,0x7f1b
/* f07314c: 46005202 */ mul.s $f8,$f10,$f0
/* f073150: c422b618 */ lwc1 $f2,-0x49e8($at)
/* f073154: 46064482 */ mul.s $f18,$f8,$f6
/* f073158: 00000000 */ nop
.PF0f07315c:
/* f07315c: c48400d4 */ lwc1 $f4,0xd4($a0)
/* f073160: c48800d0 */ lwc1 $f8,0xd0($a0)
/* f073164: 24630001 */ addiu $v1,$v1,0x1
/* f073168: 46022282 */ mul.s $f10,$f4,$f2
/* f07316c: 00000000 */ nop
/* f073170: 46024182 */ mul.s $f6,$f8,$f2
/* f073174: e48a00d4 */ swc1 $f10,0xd4($a0)
/* f073178: c48400d4 */ lwc1 $f4,0xd4($a0)
/* f07317c: e48600d0 */ swc1 $f6,0xd0($a0)
/* f073180: c48800d0 */ lwc1 $f8,0xd0($a0)
/* f073184: 46102280 */ add.s $f10,$f4,$f16
/* f073188: 460c4180 */ add.s $f6,$f8,$f12
/* f07318c: e48a00d4 */ swc1 $f10,0xd4($a0)
/* f073190: c48400d4 */ lwc1 $f4,0xd4($a0)
/* f073194: e48600d0 */ swc1 $f6,0xd0($a0)
/* f073198: c48800d0 */ lwc1 $f8,0xd0($a0)
/* f07319c: 460e2280 */ add.s $f10,$f4,$f14
/* f0731a0: 46124180 */ add.s $f6,$f8,$f18
/* f0731a4: e48a00d4 */ swc1 $f10,0xd4($a0)
/* f0731a8: e48600d0 */ swc1 $f6,0xd0($a0)
/* f0731ac: 8ca20038 */ lw $v0,0x38($a1)
/* f0731b0: 0062082a */ slt $at,$v1,$v0
/* f0731b4: 1420ffe9 */ bnez $at,.PF0f07315c
/* f0731b8: 00000000 */ nop
/* f0731bc: 00001825 */ move $v1,$zero
/* f0731c0: c7b0008c */ lwc1 $f16,0x8c($sp)
.PF0f0731c4:
/* f0731c4: 1840001c */ blez $v0,.PF0f073238
/* f0731c8: 3c017f1b */ lui $at,0x7f1b
/* f0731cc: c42cb61c */ lwc1 $f12,-0x49e4($at)
/* f0731d0: 3c017f1b */ lui $at,0x7f1b
/* f0731d4: c422b620 */ lwc1 $f2,-0x49e0($at)
/* f0731d8: c48e00b8 */ lwc1 $f14,0xb8($a0)
.PF0f0731dc:
/* f0731dc: c7a40070 */ lwc1 $f4,0x70($sp)
/* f0731e0: c49000bc */ lwc1 $f16,0xbc($a0)
/* f0731e4: c49200c0 */ lwc1 $f18,0xc0($a0)
/* f0731e8: 460e2281 */ sub.s $f10,$f4,$f14
/* f0731ec: 24630001 */ addiu $v1,$v1,0x1
/* f0731f0: 46025202 */ mul.s $f8,$f10,$f2
/* f0731f4: 46087180 */ add.s $f6,$f14,$f8
/* f0731f8: e48600b8 */ swc1 $f6,0xb8($a0)
/* f0731fc: c7a4006c */ lwc1 $f4,0x6c($sp)
/* f073200: 46102281 */ sub.s $f10,$f4,$f16
/* f073204: 460c5202 */ mul.s $f8,$f10,$f12
/* f073208: 46088180 */ add.s $f6,$f16,$f8
/* f07320c: e48600bc */ swc1 $f6,0xbc($a0)
/* f073210: c7a40068 */ lwc1 $f4,0x68($sp)
/* f073214: 46122281 */ sub.s $f10,$f4,$f18
/* f073218: 46025202 */ mul.s $f8,$f10,$f2
/* f07321c: 46089180 */ add.s $f6,$f18,$f8
/* f073220: e48600c0 */ swc1 $f6,0xc0($a0)
/* f073224: 8cb80038 */ lw $t8,0x38($a1)
/* f073228: 0078082a */ slt $at,$v1,$t8
/* f07322c: 5420ffeb */ bnezl $at,.PF0f0731dc
/* f073230: c48e00b8 */ lwc1 $f14,0xb8($a0)
/* f073234: c7b0008c */ lwc1 $f16,0x8c($sp)
.PF0f073238:
/* f073238: 3c017f1b */ lui $at,0x7f1b
/* f07323c: c424b624 */ lwc1 $f4,-0x49dc($at)
/* f073240: 4610203e */ c.le.s $f4,$f16
/* f073244: 00000000 */ nop
/* f073248: 4502000b */ bc1fl .PF0f073278
/* f07324c: 8c8200cc */ lw $v0,0xcc($a0)
/* f073250: 8c9900cc */ lw $t9,0xcc($a0)
/* f073254: 8ca80034 */ lw $t0,0x34($a1)
/* f073258: 03281021 */ addu $v0,$t9,$t0
/* f07325c: 284107d1 */ slti $at,$v0,0x7d1
/* f073260: 1420001e */ bnez $at,.PF0f0732dc
/* f073264: ac8200cc */ sw $v0,0xcc($a0)
/* f073268: 240207d0 */ li $v0,0x7d0
/* f07326c: 1000001b */ b .PF0f0732dc
/* f073270: ac8200cc */ sw $v0,0xcc($a0)
/* f073274: 8c8200cc */ lw $v0,0xcc($a0)
.PF0f073278:
/* f073278: 3c017f1b */ lui $at,0x7f1b
/* f07327c: 58400018 */ blezl $v0,.PF0f0732e0
/* f073280: 44822000 */ mtc1 $v0,$f4
/* f073284: c42ab628 */ lwc1 $f10,-0x49d8($at)
/* f073288: 3c017f1b */ lui $at,0x7f1b
/* f07328c: c7a8008c */ lwc1 $f8,0x8c($sp)
/* f073290: 4610503e */ c.le.s $f10,$f16
/* f073294: 00000000 */ nop
/* f073298: 45030011 */ bc1tl .PF0f0732e0
/* f07329c: 44822000 */ mtc1 $v0,$f4
/* f0732a0: c426b62c */ lwc1 $f6,-0x49d4($at)
/* f0732a4: 4608303e */ c.le.s $f6,$f8
/* f0732a8: 00000000 */ nop
/* f0732ac: 4502000a */ bc1fl .PF0f0732d8
/* f0732b0: ac8000cc */ sw $zero,0xcc($a0)
/* f0732b4: 8cab0034 */ lw $t3,0x34($a1)
/* f0732b8: 004b6023 */ subu $t4,$v0,$t3
/* f0732bc: ac8c00cc */ sw $t4,0xcc($a0)
/* f0732c0: 05810006 */ bgez $t4,.PF0f0732dc
/* f0732c4: 01801025 */ move $v0,$t4
/* f0732c8: ac8000cc */ sw $zero,0xcc($a0)
/* f0732cc: 10000003 */ b .PF0f0732dc
/* f0732d0: 00001025 */ move $v0,$zero
/* f0732d4: ac8000cc */ sw $zero,0xcc($a0)
.PF0f0732d8:
/* f0732d8: 00001025 */ move $v0,$zero
.PF0f0732dc:
/* f0732dc: 44822000 */ mtc1 $v0,$f4
.PF0f0732e0:
/* f0732e0: 3c017f1b */ lui $at,0x7f1b
/* f0732e4: c428b630 */ lwc1 $f8,-0x49d0($at)
/* f0732e8: 468022a0 */ cvt.s.w $f10,$f4
/* f0732ec: 3c017f1b */ lui $at,0x7f1b
/* f0732f0: c424b634 */ lwc1 $f4,-0x49cc($at)
/* f0732f4: c48c00d8 */ lwc1 $f12,0xd8($a0)
/* f0732f8: 8c8d0008 */ lw $t5,0x8($a0)
/* f0732fc: 46085182 */ mul.s $f6,$f10,$f8
/* f073300: c48a00d4 */ lwc1 $f10,0xd4($a0)
/* f073304: 000d7040 */ sll $t6,$t5,0x1
/* f073308: 46043083 */ div.s $f2,$f6,$f4
/* f07330c: 46001202 */ mul.s $f8,$f2,$f0
/* f073310: e48200dc */ swc1 $f2,0xdc($a0)
/* f073314: c7a4007c */ lwc1 $f4,0x7c($sp)
/* f073318: 46085180 */ add.s $f6,$f10,$f8
/* f07331c: 46046282 */ mul.s $f10,$f12,$f4
/* f073320: c48400d0 */ lwc1 $f4,0xd0($a0)
/* f073324: 46065200 */ add.s $f8,$f10,$f6
/* f073328: e48800a0 */ swc1 $f8,0xa0($a0)
/* f07332c: c7aa007c */ lwc1 $f10,0x7c($sp)
/* f073330: 460a1182 */ mul.s $f6,$f2,$f10
/* f073334: 46062200 */ add.s $f8,$f4,$f6
/* f073338: 46006282 */ mul.s $f10,$f12,$f0
/* f07333c: 460a4101 */ sub.s $f4,$f8,$f10
/* f073340: 05c1007d */ bgez $t6,.PF0f073538
/* f073344: e484009c */ swc1 $f4,0x9c($a0)
/* f073348: c486009c */ lwc1 $f6,0x9c($a0)
/* f07334c: 3c017f1b */ lui $at,0x7f1b
/* f073350: c428b638 */ lwc1 $f8,-0x49c8($at)
/* f073354: e7a60028 */ swc1 $f6,0x28($sp)
/* f073358: c7aa0028 */ lwc1 $f10,0x28($sp)
/* f07335c: 460a403c */ c.lt.s $f8,$f10
/* f073360: 00000000 */ nop
/* f073364: 45030075 */ bc1tl .PF0f07353c
/* f073368: 8fbf001c */ lw $ra,0x1c($sp)
/* f07336c: c48400a0 */ lwc1 $f4,0xa0($a0)
/* f073370: 3c017f1b */ lui $at,0x7f1b
/* f073374: c426b63c */ lwc1 $f6,-0x49c4($at)
/* f073378: e7a40024 */ swc1 $f4,0x24($sp)
/* f07337c: c7a80024 */ lwc1 $f8,0x24($sp)
/* f073380: 3c017f1b */ lui $at,0x7f1b
/* f073384: 4608303c */ c.lt.s $f6,$f8
/* f073388: 00000000 */ nop
/* f07338c: 4503006b */ bc1tl .PF0f07353c
/* f073390: 8fbf001c */ lw $ra,0x1c($sp)
/* f073394: c420b640 */ lwc1 $f0,-0x49c0($at)
/* f073398: c48200ac */ lwc1 $f2,0xac($a0)
/* f07339c: 4602003c */ c.lt.s $f0,$f2
/* f0733a0: 00000000 */ nop
/* f0733a4: 45030065 */ bc1tl .PF0f07353c
/* f0733a8: 8fbf001c */ lw $ra,0x1c($sp)
/* f0733ac: c49200b0 */ lwc1 $f18,0xb0($a0)
/* f0733b0: 4612003c */ c.lt.s $f0,$f18
/* f0733b4: 00000000 */ nop
/* f0733b8: 45030060 */ bc1tl .PF0f07353c
/* f0733bc: 8fbf001c */ lw $ra,0x1c($sp)
/* f0733c0: c48c00b4 */ lwc1 $f12,0xb4($a0)
/* f0733c4: 460c003c */ c.lt.s $f0,$f12
/* f0733c8: 00000000 */ nop
/* f0733cc: 4503005b */ bc1tl .PF0f07353c
/* f0733d0: 8fbf001c */ lw $ra,0x1c($sp)
/* f0733d4: c48e00b8 */ lwc1 $f14,0xb8($a0)
/* f0733d8: 460e003c */ c.lt.s $f0,$f14
/* f0733dc: 00000000 */ nop
/* f0733e0: 45030056 */ bc1tl .PF0f07353c
/* f0733e4: 8fbf001c */ lw $ra,0x1c($sp)
/* f0733e8: c49000bc */ lwc1 $f16,0xbc($a0)
/* f0733ec: e7b20038 */ swc1 $f18,0x38($sp)
/* f0733f0: 4610003c */ c.lt.s $f0,$f16
/* f0733f4: 00000000 */ nop
/* f0733f8: 45030050 */ bc1tl .PF0f07353c
/* f0733fc: 8fbf001c */ lw $ra,0x1c($sp)
/* f073400: c49200c0 */ lwc1 $f18,0xc0($a0)
/* f073404: 3c017f1b */ lui $at,0x7f1b
/* f073408: 4612003c */ c.lt.s $f0,$f18
/* f07340c: 00000000 */ nop
/* f073410: 4503004a */ bc1tl .PF0f07353c
/* f073414: 8fbf001c */ lw $ra,0x1c($sp)
/* f073418: c48000c8 */ lwc1 $f0,0xc8($a0)
/* f07341c: c424b644 */ lwc1 $f4,-0x49bc($at)
/* f073420: 3c017f1b */ lui $at,0x7f1b
/* f073424: 4600203c */ c.lt.s $f4,$f0
/* f073428: 00000000 */ nop
/* f07342c: 45030043 */ bc1tl .PF0f07353c
/* f073430: 8fbf001c */ lw $ra,0x1c($sp)
/* f073434: c426b648 */ lwc1 $f6,-0x49b8($at)
/* f073438: 3c017f1b */ lui $at,0x7f1b
/* f07343c: 4606503c */ c.lt.s $f10,$f6
/* f073440: 00000000 */ nop
/* f073444: 4503003d */ bc1tl .PF0f07353c
/* f073448: 8fbf001c */ lw $ra,0x1c($sp)
/* f07344c: c424b64c */ lwc1 $f4,-0x49b4($at)
/* f073450: 3c017f1b */ lui $at,0x7f1b
/* f073454: e7a0003c */ swc1 $f0,0x3c($sp)
/* f073458: 4604403c */ c.lt.s $f8,$f4
/* f07345c: 00000000 */ nop
/* f073460: 45030036 */ bc1tl .PF0f07353c
/* f073464: 8fbf001c */ lw $ra,0x1c($sp)
/* f073468: c420b650 */ lwc1 $f0,-0x49b0($at)
/* f07346c: c7aa0038 */ lwc1 $f10,0x38($sp)
/* f073470: 4600103c */ c.lt.s $f2,$f0
/* f073474: 00000000 */ nop
/* f073478: 45030030 */ bc1tl .PF0f07353c
/* f07347c: 8fbf001c */ lw $ra,0x1c($sp)
/* f073480: 4600503c */ c.lt.s $f10,$f0
/* f073484: 00000000 */ nop
/* f073488: 4503002c */ bc1tl .PF0f07353c
/* f07348c: 8fbf001c */ lw $ra,0x1c($sp)
/* f073490: 4600603c */ c.lt.s $f12,$f0
/* f073494: 00000000 */ nop
/* f073498: 45030028 */ bc1tl .PF0f07353c
/* f07349c: 8fbf001c */ lw $ra,0x1c($sp)
/* f0734a0: 4600703c */ c.lt.s $f14,$f0
/* f0734a4: 00000000 */ nop
/* f0734a8: 45030024 */ bc1tl .PF0f07353c
/* f0734ac: 8fbf001c */ lw $ra,0x1c($sp)
/* f0734b0: 4600803c */ c.lt.s $f16,$f0
/* f0734b4: 00000000 */ nop
/* f0734b8: 45030020 */ bc1tl .PF0f07353c
/* f0734bc: 8fbf001c */ lw $ra,0x1c($sp)
/* f0734c0: 4600903c */ c.lt.s $f18,$f0
/* f0734c4: c7a6003c */ lwc1 $f6,0x3c($sp)
/* f0734c8: 3c017f1b */ lui $at,0x7f1b
/* f0734cc: 4503001b */ bc1tl .PF0f07353c
/* f0734d0: 8fbf001c */ lw $ra,0x1c($sp)
/* f0734d4: c428b654 */ lwc1 $f8,-0x49ac($at)
/* f0734d8: 3c01bfff */ lui $at,0xbfff
/* f0734dc: 3421ffff */ ori $at,$at,0xffff
/* f0734e0: 4608303c */ c.lt.s $f6,$f8
/* f0734e4: 00000000 */ nop
/* f0734e8: 45030014 */ bc1tl .PF0f07353c
/* f0734ec: 8fbf001c */ lw $ra,0x1c($sp)
/* f0734f0: 8c8f0008 */ lw $t7,0x8($a0)
/* f0734f4: e494009c */ swc1 $f20,0x9c($a0)
/* f0734f8: e49400a0 */ swc1 $f20,0xa0($a0)
/* f0734fc: 01e1c024 */ and $t8,$t7,$at
/* f073500: e49400ac */ swc1 $f20,0xac($a0)
/* f073504: e49400b0 */ swc1 $f20,0xb0($a0)
/* f073508: e49400b4 */ swc1 $f20,0xb4($a0)
/* f07350c: e49400b8 */ swc1 $f20,0xb8($a0)
/* f073510: e49400bc */ swc1 $f20,0xbc($a0)
/* f073514: e49400c0 */ swc1 $f20,0xc0($a0)
/* f073518: e49400c4 */ swc1 $f20,0xc4($a0)
/* f07351c: e49400c8 */ swc1 $f20,0xc8($a0)
/* f073520: ac8000cc */ sw $zero,0xcc($a0)
/* f073524: e49400d0 */ swc1 $f20,0xd0($a0)
/* f073528: e49400d4 */ swc1 $f20,0xd4($a0)
/* f07352c: e49400d8 */ swc1 $f20,0xd8($a0)
/* f073530: e49400dc */ swc1 $f20,0xdc($a0)
/* f073534: ac980008 */ sw $t8,0x8($a0)
.PF0f073538:
/* f073538: 8fbf001c */ lw $ra,0x1c($sp)
.PF0f07353c:
/* f07353c: d7b40010 */ ldc1 $f20,0x10($sp)
/* f073540: 27bd0088 */ addiu $sp,$sp,0x88
/* f073544: 03e00008 */ jr $ra
/* f073548: 00000000 */ nop
);
#elif VERSION == VERSION_PAL_BETA
GLOBAL_ASM(
glabel hoverbikeUpdateMovement
.late_rodata
glabel var7f1ab5d0pf
.word 0x3d32b179
glabel var7f1ab5d4pf
.word 0x3db6e2eb
glabel var7f1ab5d8pf
.word 0x3e99999a
glabel var7f1ab5dcpf
.word 0x3dcccccd
glabel var7f1ab5e0pf
.word 0x3e99999a
glabel var7f1ab5e4pf
.word 0x3dcccccd
glabel var7f1ab5e8pf
.word 0x3f6e147b
glabel var7f1ab5ecpf
.word 0x3f333333
glabel var7f1ab5f0pf
.word 0x3d23d70a
glabel var7f1ab5f4pf
.word 0x40c907a9
glabel var7f1ab5f8pf
.word 0x3dcccccd
glabel var7f1ab5fcpf
.word 0x3dcccccd
glabel var7f1ab600pf
.word 0x3ecccccd
glabel var7f1ab604pf
.word 0x3e80a8be
glabel var7f1ab608pf
.word 0x3fa5e355
glabel var7f1ab60cpf
.word 0x3f5d2f1c
glabel var7f1ab610pf
.word 0x3fa5e355
glabel var7f1ab614pf
.word 0x3f5d2f1c
glabel var7f1ab618pf
.word 0x3f76c8b4
glabel var7f1ab61cpf
.word 0x3e353f7d
glabel var7f1ab620pf
.word 0x3d43c9ef
glabel var7f1ab624pf
.word 0x3f7d70a4
glabel var7f1ab628pf
.word 0x3f4ccccd
glabel var7f1ab62cpf
.word 0xbdcccccd
glabel var7f1ab630pf
.word 0x459c4000
glabel var7f1ab634pf
.word 0x49f42400
glabel var7f1ab638pf
.word 0x3dcccccd
glabel var7f1ab63cpf
.word 0x3dcccccd
glabel var7f1ab640pf
.word 0x3a83126f
glabel var7f1ab644pf
.word 0x3dcccccd
glabel var7f1ab648pf
.word 0xbdcccccd
glabel var7f1ab64cpf
.word 0xbdcccccd
glabel var7f1ab650pf
.word 0xba83126f
glabel var7f1ab654pf
.word 0xbdcccccd
.text
/* f072cb0: 27bdff78 */ addiu $sp,$sp,-136
/* f072cb4: f7b40010 */ sdc1 $f20,0x10($sp)
/* f072cb8: afa5008c */ sw $a1,0x8c($sp)
/* f072cbc: 4480a000 */ mtc1 $zero,$f20
/* f072cc0: c7a6008c */ lwc1 $f6,0x8c($sp)
/* f072cc4: 3c017f1b */ lui $at,0x7f1b
/* f072cc8: 44877000 */ mtc1 $a3,$f14
/* f072ccc: 4614303c */ c.lt.s $f6,$f20
/* f072cd0: c424c020 */ lwc1 $f4,-0x3fe0($at)
/* f072cd4: afbf001c */ sw $ra,0x1c($sp)
/* f072cd8: afa60090 */ sw $a2,0x90($sp)
/* f072cdc: 46047302 */ mul.s $f12,$f14,$f4
/* f072ce0: 45000009 */ bc1f .PB0f072d08
/* f072ce4: 3c05800a */ lui $a1,0x800a
/* f072ce8: 3c013f00 */ lui $at,0x3f00
/* f072cec: 44814000 */ mtc1 $at,$f8
/* f072cf0: 3c013f80 */ lui $at,0x3f80
/* f072cf4: 44812000 */ mtc1 $at,$f4
/* f072cf8: 46083282 */ mul.s $f10,$f6,$f8
/* f072cfc: 460a2181 */ sub.s $f6,$f4,$f10
/* f072d00: 46066302 */ mul.s $f12,$f12,$f6
/* f072d04: 00000000 */ nop
.PB0f072d08:
/* f072d08: 3c013f00 */ lui $at,0x3f00
/* f072d0c: 44812000 */ mtc1 $at,$f4
/* f072d10: c7a8008c */ lwc1 $f8,0x8c($sp)
/* f072d14: 24a5e4d0 */ addiu $a1,$a1,-6960
/* f072d18: 8cae0038 */ lw $t6,0x38($a1)
/* f072d1c: 46044382 */ mul.s $f14,$f8,$f4
/* f072d20: 00001825 */ move $v1,$zero
/* f072d24: 19c0000d */ blez $t6,.PB0f072d5c
/* f072d28: 3c017f1b */ lui $at,0x7f1b
/* f072d2c: c420c024 */ lwc1 $f0,-0x3fdc($at)
/* f072d30: c48200ac */ lwc1 $f2,0xac($a0)
.PB0f072d34:
/* f072d34: 24630001 */ addiu $v1,$v1,0x1
/* f072d38: 46026281 */ sub.s $f10,$f12,$f2
/* f072d3c: 46005182 */ mul.s $f6,$f10,$f0
/* f072d40: 46061200 */ add.s $f8,$f2,$f6
/* f072d44: e48800ac */ swc1 $f8,0xac($a0)
/* f072d48: 8caf0038 */ lw $t7,0x38($a1)
/* f072d4c: 006f082a */ slt $at,$v1,$t7
/* f072d50: 5420fff8 */ bnezl $at,.PB0f072d34
/* f072d54: c48200ac */ lwc1 $f2,0xac($a0)
/* f072d58: 00001825 */ move $v1,$zero
.PB0f072d5c:
/* f072d5c: 3c014140 */ lui $at,0x4140
/* f072d60: 44815000 */ mtc1 $at,$f10
/* f072d64: c48400ac */ lwc1 $f4,0xac($a0)
/* f072d68: e7ae0044 */ swc1 $f14,0x44($sp)
/* f072d6c: afa40088 */ sw $a0,0x88($sp)
/* f072d70: 460a2182 */ mul.s $f6,$f4,$f10
/* f072d74: afa30064 */ sw $v1,0x64($sp)
/* f072d78: 4606a200 */ add.s $f8,$f20,$f6
/* f072d7c: 0fc1c8ab */ jal hoverpropGetTurnAngle
/* f072d80: e7a8006c */ swc1 $f8,0x6c($sp)
/* f072d84: e7a00080 */ swc1 $f0,0x80($sp)
/* f072d88: 0c006b8b */ jal sinf
/* f072d8c: 46000306 */ mov.s $f12,$f0
/* f072d90: e7a0007c */ swc1 $f0,0x7c($sp)
/* f072d94: 0c006b88 */ jal cosf
/* f072d98: c7ac0080 */ lwc1 $f12,0x80($sp)
/* f072d9c: c7b0008c */ lwc1 $f16,0x8c($sp)
/* f072da0: 3c05800a */ lui $a1,0x800a
/* f072da4: 24a5e4d0 */ addiu $a1,$a1,-6960
/* f072da8: 4610a03e */ c.le.s $f20,$f16
/* f072dac: 8fa30064 */ lw $v1,0x64($sp)
/* f072db0: 8fa40088 */ lw $a0,0x88($sp)
/* f072db4: c7ae0044 */ lwc1 $f14,0x44($sp)
/* f072db8: 4500000c */ bc1f .PB0f072dec
/* f072dbc: 3c017f1b */ lui $at,0x7f1b
/* f072dc0: 3c017f1b */ lui $at,0x7f1b
/* f072dc4: c432c028 */ lwc1 $f18,-0x3fd8($at)
/* f072dc8: 3c017f1b */ lui $at,0x7f1b
/* f072dcc: c424c02c */ lwc1 $f4,-0x3fd4($at)
/* f072dd0: c4a8004c */ lwc1 $f8,0x4c($a1)
/* f072dd4: 46048280 */ add.s $f10,$f16,$f4
/* f072dd8: 46125182 */ mul.s $f6,$f10,$f18
/* f072ddc: 00000000 */ nop
/* f072de0: 46083082 */ mul.s $f2,$f6,$f8
/* f072de4: 1000000a */ b .PB0f072e10
/* f072de8: 00000000 */ nop
.PB0f072dec:
/* f072dec: c432c030 */ lwc1 $f18,-0x3fd0($at)
/* f072df0: 3c017f1b */ lui $at,0x7f1b
/* f072df4: c424c034 */ lwc1 $f4,-0x3fcc($at)
/* f072df8: c4a8004c */ lwc1 $f8,0x4c($a1)
/* f072dfc: 46102281 */ sub.s $f10,$f4,$f16
/* f072e00: 46125182 */ mul.s $f6,$f10,$f18
/* f072e04: 00000000 */ nop
/* f072e08: 46083082 */ mul.s $f2,$f6,$f8
/* f072e0c: 00000000 */ nop
.PB0f072e10:
/* f072e10: c48c00b4 */ lwc1 $f12,0xb4($a0)
/* f072e14: 3c013f80 */ lui $at,0x3f80
/* f072e18: 460e603c */ c.lt.s $f12,$f14
/* f072e1c: 00000000 */ nop
/* f072e20: 4502000b */ bc1fl .PB0f072e50
/* f072e24: 46026181 */ sub.s $f6,$f12,$f2
/* f072e28: 46026100 */ add.s $f4,$f12,$f2
/* f072e2c: e48400b4 */ swc1 $f4,0xb4($a0)
/* f072e30: c48a00b4 */ lwc1 $f10,0xb4($a0)
/* f072e34: 460a703c */ c.lt.s $f14,$f10
/* f072e38: 00000000 */ nop
/* f072e3c: 4502000c */ bc1fl .PB0f072e70
/* f072e40: 44816000 */ mtc1 $at,$f12
/* f072e44: 10000009 */ b .PB0f072e6c
/* f072e48: e48e00b4 */ swc1 $f14,0xb4($a0)
/* f072e4c: 46026181 */ sub.s $f6,$f12,$f2
.PB0f072e50:
/* f072e50: e48600b4 */ swc1 $f6,0xb4($a0)
/* f072e54: c48800b4 */ lwc1 $f8,0xb4($a0)
/* f072e58: 460e403c */ c.lt.s $f8,$f14
/* f072e5c: 00000000 */ nop
/* f072e60: 45020003 */ bc1fl .PB0f072e70
/* f072e64: 44816000 */ mtc1 $at,$f12
/* f072e68: e48e00b4 */ swc1 $f14,0xb4($a0)
.PB0f072e6c:
/* f072e6c: 44816000 */ mtc1 $at,$f12
.PB0f072e70:
/* f072e70: 3c017f1b */ lui $at,0x7f1b
/* f072e74: c42ac038 */ lwc1 $f10,-0x3fc8($at)
/* f072e78: c48400c8 */ lwc1 $f4,0xc8($a0)
/* f072e7c: 3c0140a0 */ lui $at,0x40a0
/* f072e80: 460a2182 */ mul.s $f6,$f4,$f10
/* f072e84: c48400c4 */ lwc1 $f4,0xc4($a0)
/* f072e88: e49000c4 */ swc1 $f16,0xc4($a0)
/* f072e8c: 46048281 */ sub.s $f10,$f16,$f4
/* f072e90: e48600c8 */ swc1 $f6,0xc8($a0)
/* f072e94: c48800c8 */ lwc1 $f8,0xc8($a0)
/* f072e98: 460a4180 */ add.s $f6,$f8,$f10
/* f072e9c: 44814000 */ mtc1 $at,$f8
/* f072ea0: 3c01bf80 */ lui $at,0xbf80
/* f072ea4: e48600c8 */ swc1 $f6,0xc8($a0)
/* f072ea8: c48400c8 */ lwc1 $f4,0xc8($a0)
/* f072eac: 46082082 */ mul.s $f2,$f4,$f8
/* f072eb0: 4602603c */ c.lt.s $f12,$f2
/* f072eb4: 00000000 */ nop
/* f072eb8: 45020004 */ bc1fl .PB0f072ecc
/* f072ebc: 44816000 */ mtc1 $at,$f12
/* f072ec0: 10000008 */ b .PB0f072ee4
/* f072ec4: 46006086 */ mov.s $f2,$f12
/* f072ec8: 44816000 */ mtc1 $at,$f12
.PB0f072ecc:
/* f072ecc: 00000000 */ nop
/* f072ed0: 460c103c */ c.lt.s $f2,$f12
/* f072ed4: 00000000 */ nop
/* f072ed8: 45020003 */ bc1fl .PB0f072ee8
/* f072edc: 4610a03e */ c.le.s $f20,$f16
/* f072ee0: 46006086 */ mov.s $f2,$f12
.PB0f072ee4:
/* f072ee4: 4610a03e */ c.le.s $f20,$f16
.PB0f072ee8:
/* f072ee8: 00000000 */ nop
/* f072eec: 45020010 */ bc1fl .PB0f072f30
/* f072ef0: 4614103c */ c.lt.s $f2,$f20
/* f072ef4: 4602a03c */ c.lt.s $f20,$f2
/* f072ef8: 3c017f1b */ lui $at,0x7f1b
/* f072efc: 45000008 */ bc1f .PB0f072f20
/* f072f00: 00000000 */ nop
/* f072f04: 46128282 */ mul.s $f10,$f16,$f18
/* f072f08: c426c03c */ lwc1 $f6,-0x3fc4($at)
/* f072f0c: 46068102 */ mul.s $f4,$f16,$f6
/* f072f10: 00000000 */ nop
/* f072f14: 46022202 */ mul.s $f8,$f4,$f2
/* f072f18: 1000000c */ b .PB0f072f4c
/* f072f1c: 46085300 */ add.s $f12,$f10,$f8
.PB0f072f20:
/* f072f20: 46128302 */ mul.s $f12,$f16,$f18
/* f072f24: 10000009 */ b .PB0f072f4c
/* f072f28: 00000000 */ nop
/* f072f2c: 4614103c */ c.lt.s $f2,$f20
.PB0f072f30:
/* f072f30: 00000000 */ nop
/* f072f34: 45020005 */ bc1fl .PB0f072f4c
/* f072f38: 46007306 */ mov.s $f12,$f14
/* f072f3c: 46027182 */ mul.s $f6,$f14,$f2
/* f072f40: 10000002 */ b .PB0f072f4c
/* f072f44: 46067301 */ sub.s $f12,$f14,$f6
/* f072f48: 46007306 */ mov.s $f12,$f14
.PB0f072f4c:
/* f072f4c: 3c017f1b */ lui $at,0x7f1b
/* f072f50: c424c040 */ lwc1 $f4,-0x3fc0($at)
/* f072f54: 3c017f1b */ lui $at,0x7f1b
/* f072f58: c428c044 */ lwc1 $f8,-0x3fbc($at)
/* f072f5c: 46046282 */ mul.s $f10,$f12,$f4
/* f072f60: 3c017f1b */ lui $at,0x7f1b
/* f072f64: 46085182 */ mul.s $f6,$f10,$f8
/* f072f68: c7aa0090 */ lwc1 $f10,0x90($sp)
/* f072f6c: 460aa03e */ c.le.s $f20,$f10
/* f072f70: 4606a100 */ add.s $f4,$f20,$f6
/* f072f74: c7a60090 */ lwc1 $f6,0x90($sp)
/* f072f78: 4500000a */ bc1f .PB0f072fa4
/* f072f7c: e7a40070 */ swc1 $f4,0x70($sp)
/* f072f80: 3c017f1b */ lui $at,0x7f1b
/* f072f84: c428c048 */ lwc1 $f8,-0x3fb8($at)
/* f072f88: 46085180 */ add.s $f6,$f10,$f8
/* f072f8c: c4aa004c */ lwc1 $f10,0x4c($a1)
/* f072f90: 46123102 */ mul.s $f4,$f6,$f18
/* f072f94: 00000000 */ nop
/* f072f98: 460a2302 */ mul.s $f12,$f4,$f10
/* f072f9c: 10000008 */ b .PB0f072fc0
/* f072fa0: 00000000 */ nop
.PB0f072fa4:
/* f072fa4: c428c04c */ lwc1 $f8,-0x3fb4($at)
/* f072fa8: 46064101 */ sub.s $f4,$f8,$f6
/* f072fac: c4a8004c */ lwc1 $f8,0x4c($a1)
/* f072fb0: 46122282 */ mul.s $f10,$f4,$f18
/* f072fb4: 00000000 */ nop
/* f072fb8: 46085302 */ mul.s $f12,$f10,$f8
/* f072fbc: 00000000 */ nop
.PB0f072fc0:
/* f072fc0: 3c017f1b */ lui $at,0x7f1b
/* f072fc4: c426c050 */ lwc1 $f6,-0x3fb0($at)
/* f072fc8: c7a40090 */ lwc1 $f4,0x90($sp)
/* f072fcc: c48e00b0 */ lwc1 $f14,0xb0($a0)
/* f072fd0: 3c017f1b */ lui $at,0x7f1b
/* f072fd4: 46043082 */ mul.s $f2,$f6,$f4
/* f072fd8: 4602703c */ c.lt.s $f14,$f2
/* f072fdc: 00000000 */ nop
/* f072fe0: 4502000b */ bc1fl .PB0f073010
/* f072fe4: 460c7181 */ sub.s $f6,$f14,$f12
/* f072fe8: 460c7280 */ add.s $f10,$f14,$f12
/* f072fec: e48a00b0 */ swc1 $f10,0xb0($a0)
/* f072ff0: c48800b0 */ lwc1 $f8,0xb0($a0)
/* f072ff4: 4608103c */ c.lt.s $f2,$f8
/* f072ff8: 00000000 */ nop
/* f072ffc: 4502000c */ bc1fl .PB0f073030
/* f073000: c7aa0090 */ lwc1 $f10,0x90($sp)
/* f073004: 10000009 */ b .PB0f07302c
/* f073008: e48200b0 */ swc1 $f2,0xb0($a0)
/* f07300c: 460c7181 */ sub.s $f6,$f14,$f12
.PB0f073010:
/* f073010: e48600b0 */ swc1 $f6,0xb0($a0)
/* f073014: c48400b0 */ lwc1 $f4,0xb0($a0)
/* f073018: 4602203c */ c.lt.s $f4,$f2
/* f07301c: 00000000 */ nop
/* f073020: 45020003 */ bc1fl .PB0f073030
/* f073024: c7aa0090 */ lwc1 $f10,0x90($sp)
/* f073028: e48200b0 */ swc1 $f2,0xb0($a0)
.PB0f07302c:
/* f07302c: c7aa0090 */ lwc1 $f10,0x90($sp)
.PB0f073030:
/* f073030: c428c054 */ lwc1 $f8,-0x3fac($at)
/* f073034: 8ca20038 */ lw $v0,0x38($a1)
/* f073038: 46085182 */ mul.s $f6,$f10,$f8
/* f07303c: c7a8007c */ lwc1 $f8,0x7c($sp)
/* f073040: 4606a100 */ add.s $f4,$f20,$f6
/* f073044: 18400033 */ blez $v0,.PB0f073114
/* f073048: e7a40068 */ swc1 $f4,0x68($sp)
/* f07304c: c48a00b4 */ lwc1 $f10,0xb4($a0)
/* f073050: 3c017f1b */ lui $at,0x7f1b
/* f073054: c424c058 */ lwc1 $f4,-0x3fa8($at)
/* f073058: 46085182 */ mul.s $f6,$f10,$f8
/* f07305c: c48a00b0 */ lwc1 $f10,0xb0($a0)
/* f073060: 3c017f1b */ lui $at,0x7f1b
/* f073064: 46043302 */ mul.s $f12,$f6,$f4
/* f073068: c424c05c */ lwc1 $f4,-0x3fa4($at)
/* f07306c: 3c017f1b */ lui $at,0x7f1b
/* f073070: 46085182 */ mul.s $f6,$f10,$f8
/* f073074: c48a00b4 */ lwc1 $f10,0xb4($a0)
/* f073078: 46043382 */ mul.s $f14,$f6,$f4
/* f07307c: c426c060 */ lwc1 $f6,-0x3fa0($at)
/* f073080: c48400b0 */ lwc1 $f4,0xb0($a0)
/* f073084: 46005202 */ mul.s $f8,$f10,$f0
/* f073088: 3c017f1b */ lui $at,0x7f1b
/* f07308c: 46002287 */ neg.s $f10,$f4
/* f073090: 46064402 */ mul.s $f16,$f8,$f6
/* f073094: c426c064 */ lwc1 $f6,-0x3f9c($at)
/* f073098: 3c017f1b */ lui $at,0x7f1b
/* f07309c: 46005202 */ mul.s $f8,$f10,$f0
/* f0730a0: c422c068 */ lwc1 $f2,-0x3f98($at)
/* f0730a4: 46064482 */ mul.s $f18,$f8,$f6
/* f0730a8: 00000000 */ nop
.PB0f0730ac:
/* f0730ac: c48400d4 */ lwc1 $f4,0xd4($a0)
/* f0730b0: c48800d0 */ lwc1 $f8,0xd0($a0)
/* f0730b4: 24630001 */ addiu $v1,$v1,0x1
/* f0730b8: 46022282 */ mul.s $f10,$f4,$f2
/* f0730bc: 00000000 */ nop
/* f0730c0: 46024182 */ mul.s $f6,$f8,$f2
/* f0730c4: e48a00d4 */ swc1 $f10,0xd4($a0)
/* f0730c8: c48400d4 */ lwc1 $f4,0xd4($a0)
/* f0730cc: e48600d0 */ swc1 $f6,0xd0($a0)
/* f0730d0: c48800d0 */ lwc1 $f8,0xd0($a0)
/* f0730d4: 46102280 */ add.s $f10,$f4,$f16
/* f0730d8: 460c4180 */ add.s $f6,$f8,$f12
/* f0730dc: e48a00d4 */ swc1 $f10,0xd4($a0)
/* f0730e0: c48400d4 */ lwc1 $f4,0xd4($a0)
/* f0730e4: e48600d0 */ swc1 $f6,0xd0($a0)
/* f0730e8: c48800d0 */ lwc1 $f8,0xd0($a0)
/* f0730ec: 460e2280 */ add.s $f10,$f4,$f14
/* f0730f0: 46124180 */ add.s $f6,$f8,$f18
/* f0730f4: e48a00d4 */ swc1 $f10,0xd4($a0)
/* f0730f8: e48600d0 */ swc1 $f6,0xd0($a0)
/* f0730fc: 8ca20038 */ lw $v0,0x38($a1)
/* f073100: 0062082a */ slt $at,$v1,$v0
/* f073104: 1420ffe9 */ bnez $at,.PB0f0730ac
/* f073108: 00000000 */ nop
/* f07310c: 00001825 */ move $v1,$zero
/* f073110: c7b0008c */ lwc1 $f16,0x8c($sp)
.PB0f073114:
/* f073114: 1840001c */ blez $v0,.PB0f073188
/* f073118: 3c017f1b */ lui $at,0x7f1b
/* f07311c: c42cc06c */ lwc1 $f12,-0x3f94($at)
/* f073120: 3c017f1b */ lui $at,0x7f1b
/* f073124: c422c070 */ lwc1 $f2,-0x3f90($at)
/* f073128: c48e00b8 */ lwc1 $f14,0xb8($a0)
.PB0f07312c:
/* f07312c: c7a40070 */ lwc1 $f4,0x70($sp)
/* f073130: c49000bc */ lwc1 $f16,0xbc($a0)
/* f073134: c49200c0 */ lwc1 $f18,0xc0($a0)
/* f073138: 460e2281 */ sub.s $f10,$f4,$f14
/* f07313c: 24630001 */ addiu $v1,$v1,0x1
/* f073140: 46025202 */ mul.s $f8,$f10,$f2
/* f073144: 46087180 */ add.s $f6,$f14,$f8
/* f073148: e48600b8 */ swc1 $f6,0xb8($a0)
/* f07314c: c7a4006c */ lwc1 $f4,0x6c($sp)
/* f073150: 46102281 */ sub.s $f10,$f4,$f16
/* f073154: 460c5202 */ mul.s $f8,$f10,$f12
/* f073158: 46088180 */ add.s $f6,$f16,$f8
/* f07315c: e48600bc */ swc1 $f6,0xbc($a0)
/* f073160: c7a40068 */ lwc1 $f4,0x68($sp)
/* f073164: 46122281 */ sub.s $f10,$f4,$f18
/* f073168: 46025202 */ mul.s $f8,$f10,$f2
/* f07316c: 46089180 */ add.s $f6,$f18,$f8
/* f073170: e48600c0 */ swc1 $f6,0xc0($a0)
/* f073174: 8cb80038 */ lw $t8,0x38($a1)
/* f073178: 0078082a */ slt $at,$v1,$t8
/* f07317c: 5420ffeb */ bnezl $at,.PB0f07312c
/* f073180: c48e00b8 */ lwc1 $f14,0xb8($a0)
/* f073184: c7b0008c */ lwc1 $f16,0x8c($sp)
.PB0f073188:
/* f073188: 3c017f1b */ lui $at,0x7f1b
/* f07318c: c424c074 */ lwc1 $f4,-0x3f8c($at)
/* f073190: 4610203e */ c.le.s $f4,$f16
/* f073194: 00000000 */ nop
/* f073198: 4502000b */ bc1fl .PB0f0731c8
/* f07319c: 8c8200cc */ lw $v0,0xcc($a0)
/* f0731a0: 8c9900cc */ lw $t9,0xcc($a0)
/* f0731a4: 8ca80034 */ lw $t0,0x34($a1)
/* f0731a8: 03281021 */ addu $v0,$t9,$t0
/* f0731ac: 284107d1 */ slti $at,$v0,0x7d1
/* f0731b0: 1420001e */ bnez $at,.PB0f07322c
/* f0731b4: ac8200cc */ sw $v0,0xcc($a0)
/* f0731b8: 240207d0 */ li $v0,0x7d0
/* f0731bc: 1000001b */ b .PB0f07322c
/* f0731c0: ac8200cc */ sw $v0,0xcc($a0)
/* f0731c4: 8c8200cc */ lw $v0,0xcc($a0)
.PB0f0731c8:
/* f0731c8: 3c017f1b */ lui $at,0x7f1b
/* f0731cc: 58400018 */ blezl $v0,.PB0f073230
/* f0731d0: 44822000 */ mtc1 $v0,$f4
/* f0731d4: c42ac078 */ lwc1 $f10,-0x3f88($at)
/* f0731d8: 3c017f1b */ lui $at,0x7f1b
/* f0731dc: c7a8008c */ lwc1 $f8,0x8c($sp)
/* f0731e0: 4610503e */ c.le.s $f10,$f16
/* f0731e4: 00000000 */ nop
/* f0731e8: 45030011 */ bc1tl .PB0f073230
/* f0731ec: 44822000 */ mtc1 $v0,$f4
/* f0731f0: c426c07c */ lwc1 $f6,-0x3f84($at)
/* f0731f4: 4608303e */ c.le.s $f6,$f8
/* f0731f8: 00000000 */ nop
/* f0731fc: 4502000a */ bc1fl .PB0f073228
/* f073200: ac8000cc */ sw $zero,0xcc($a0)
/* f073204: 8cab0034 */ lw $t3,0x34($a1)
/* f073208: 004b6023 */ subu $t4,$v0,$t3
/* f07320c: ac8c00cc */ sw $t4,0xcc($a0)
/* f073210: 05810006 */ bgez $t4,.PB0f07322c
/* f073214: 01801025 */ move $v0,$t4
/* f073218: ac8000cc */ sw $zero,0xcc($a0)
/* f07321c: 10000003 */ b .PB0f07322c
/* f073220: 00001025 */ move $v0,$zero
/* f073224: ac8000cc */ sw $zero,0xcc($a0)
.PB0f073228:
/* f073228: 00001025 */ move $v0,$zero
.PB0f07322c:
/* f07322c: 44822000 */ mtc1 $v0,$f4
.PB0f073230:
/* f073230: 3c017f1b */ lui $at,0x7f1b
/* f073234: c428c080 */ lwc1 $f8,-0x3f80($at)
/* f073238: 468022a0 */ cvt.s.w $f10,$f4
/* f07323c: 3c017f1b */ lui $at,0x7f1b
/* f073240: c424c084 */ lwc1 $f4,-0x3f7c($at)
/* f073244: c48c00d8 */ lwc1 $f12,0xd8($a0)
/* f073248: 8c8d0008 */ lw $t5,0x8($a0)
/* f07324c: 46085182 */ mul.s $f6,$f10,$f8
/* f073250: c48a00d4 */ lwc1 $f10,0xd4($a0)
/* f073254: 000d7040 */ sll $t6,$t5,0x1
/* f073258: 46043083 */ div.s $f2,$f6,$f4
/* f07325c: 46001202 */ mul.s $f8,$f2,$f0
/* f073260: e48200dc */ swc1 $f2,0xdc($a0)
/* f073264: c7a4007c */ lwc1 $f4,0x7c($sp)
/* f073268: 46085180 */ add.s $f6,$f10,$f8
/* f07326c: 46046282 */ mul.s $f10,$f12,$f4
/* f073270: c48400d0 */ lwc1 $f4,0xd0($a0)
/* f073274: 46065200 */ add.s $f8,$f10,$f6
/* f073278: e48800a0 */ swc1 $f8,0xa0($a0)
/* f07327c: c7aa007c */ lwc1 $f10,0x7c($sp)
/* f073280: 460a1182 */ mul.s $f6,$f2,$f10
/* f073284: 46062200 */ add.s $f8,$f4,$f6
/* f073288: 46006282 */ mul.s $f10,$f12,$f0
/* f07328c: 460a4101 */ sub.s $f4,$f8,$f10
/* f073290: 05c1007d */ bgez $t6,.PB0f073488
/* f073294: e484009c */ swc1 $f4,0x9c($a0)
/* f073298: c486009c */ lwc1 $f6,0x9c($a0)
/* f07329c: 3c017f1b */ lui $at,0x7f1b
/* f0732a0: c428c088 */ lwc1 $f8,-0x3f78($at)
/* f0732a4: e7a60028 */ swc1 $f6,0x28($sp)
/* f0732a8: c7aa0028 */ lwc1 $f10,0x28($sp)
/* f0732ac: 460a403c */ c.lt.s $f8,$f10
/* f0732b0: 00000000 */ nop
/* f0732b4: 45030075 */ bc1tl .PB0f07348c
/* f0732b8: 8fbf001c */ lw $ra,0x1c($sp)
/* f0732bc: c48400a0 */ lwc1 $f4,0xa0($a0)
/* f0732c0: 3c017f1b */ lui $at,0x7f1b
/* f0732c4: c426c08c */ lwc1 $f6,-0x3f74($at)
/* f0732c8: e7a40024 */ swc1 $f4,0x24($sp)
/* f0732cc: c7a80024 */ lwc1 $f8,0x24($sp)
/* f0732d0: 3c017f1b */ lui $at,0x7f1b
/* f0732d4: 4608303c */ c.lt.s $f6,$f8
/* f0732d8: 00000000 */ nop
/* f0732dc: 4503006b */ bc1tl .PB0f07348c
/* f0732e0: 8fbf001c */ lw $ra,0x1c($sp)
/* f0732e4: c420c090 */ lwc1 $f0,-0x3f70($at)
/* f0732e8: c48200ac */ lwc1 $f2,0xac($a0)
/* f0732ec: 4602003c */ c.lt.s $f0,$f2
/* f0732f0: 00000000 */ nop
/* f0732f4: 45030065 */ bc1tl .PB0f07348c
/* f0732f8: 8fbf001c */ lw $ra,0x1c($sp)
/* f0732fc: c49200b0 */ lwc1 $f18,0xb0($a0)
/* f073300: 4612003c */ c.lt.s $f0,$f18
/* f073304: 00000000 */ nop
/* f073308: 45030060 */ bc1tl .PB0f07348c
/* f07330c: 8fbf001c */ lw $ra,0x1c($sp)
/* f073310: c48c00b4 */ lwc1 $f12,0xb4($a0)
/* f073314: 460c003c */ c.lt.s $f0,$f12
/* f073318: 00000000 */ nop
/* f07331c: 4503005b */ bc1tl .PB0f07348c
/* f073320: 8fbf001c */ lw $ra,0x1c($sp)
/* f073324: c48e00b8 */ lwc1 $f14,0xb8($a0)
/* f073328: 460e003c */ c.lt.s $f0,$f14
/* f07332c: 00000000 */ nop
/* f073330: 45030056 */ bc1tl .PB0f07348c
/* f073334: 8fbf001c */ lw $ra,0x1c($sp)
/* f073338: c49000bc */ lwc1 $f16,0xbc($a0)
/* f07333c: e7b20038 */ swc1 $f18,0x38($sp)
/* f073340: 4610003c */ c.lt.s $f0,$f16
/* f073344: 00000000 */ nop
/* f073348: 45030050 */ bc1tl .PB0f07348c
/* f07334c: 8fbf001c */ lw $ra,0x1c($sp)
/* f073350: c49200c0 */ lwc1 $f18,0xc0($a0)
/* f073354: 3c017f1b */ lui $at,0x7f1b
/* f073358: 4612003c */ c.lt.s $f0,$f18
/* f07335c: 00000000 */ nop
/* f073360: 4503004a */ bc1tl .PB0f07348c
/* f073364: 8fbf001c */ lw $ra,0x1c($sp)
/* f073368: c48000c8 */ lwc1 $f0,0xc8($a0)
/* f07336c: c424c094 */ lwc1 $f4,-0x3f6c($at)
/* f073370: 3c017f1b */ lui $at,0x7f1b
/* f073374: 4600203c */ c.lt.s $f4,$f0
/* f073378: 00000000 */ nop
/* f07337c: 45030043 */ bc1tl .PB0f07348c
/* f073380: 8fbf001c */ lw $ra,0x1c($sp)
/* f073384: c426c098 */ lwc1 $f6,-0x3f68($at)
/* f073388: 3c017f1b */ lui $at,0x7f1b
/* f07338c: 4606503c */ c.lt.s $f10,$f6
/* f073390: 00000000 */ nop
/* f073394: 4503003d */ bc1tl .PB0f07348c
/* f073398: 8fbf001c */ lw $ra,0x1c($sp)
/* f07339c: c424c09c */ lwc1 $f4,-0x3f64($at)
/* f0733a0: 3c017f1b */ lui $at,0x7f1b
/* f0733a4: e7a0003c */ swc1 $f0,0x3c($sp)
/* f0733a8: 4604403c */ c.lt.s $f8,$f4
/* f0733ac: 00000000 */ nop
/* f0733b0: 45030036 */ bc1tl .PB0f07348c
/* f0733b4: 8fbf001c */ lw $ra,0x1c($sp)
/* f0733b8: c420c0a0 */ lwc1 $f0,-0x3f60($at)
/* f0733bc: c7aa0038 */ lwc1 $f10,0x38($sp)
/* f0733c0: 4600103c */ c.lt.s $f2,$f0
/* f0733c4: 00000000 */ nop
/* f0733c8: 45030030 */ bc1tl .PB0f07348c
/* f0733cc: 8fbf001c */ lw $ra,0x1c($sp)
/* f0733d0: 4600503c */ c.lt.s $f10,$f0
/* f0733d4: 00000000 */ nop
/* f0733d8: 4503002c */ bc1tl .PB0f07348c
/* f0733dc: 8fbf001c */ lw $ra,0x1c($sp)
/* f0733e0: 4600603c */ c.lt.s $f12,$f0
/* f0733e4: 00000000 */ nop
/* f0733e8: 45030028 */ bc1tl .PB0f07348c
/* f0733ec: 8fbf001c */ lw $ra,0x1c($sp)
/* f0733f0: 4600703c */ c.lt.s $f14,$f0
/* f0733f4: 00000000 */ nop
/* f0733f8: 45030024 */ bc1tl .PB0f07348c
/* f0733fc: 8fbf001c */ lw $ra,0x1c($sp)
/* f073400: 4600803c */ c.lt.s $f16,$f0
/* f073404: 00000000 */ nop
/* f073408: 45030020 */ bc1tl .PB0f07348c
/* f07340c: 8fbf001c */ lw $ra,0x1c($sp)
/* f073410: 4600903c */ c.lt.s $f18,$f0
/* f073414: c7a6003c */ lwc1 $f6,0x3c($sp)
/* f073418: 3c017f1b */ lui $at,0x7f1b
/* f07341c: 4503001b */ bc1tl .PB0f07348c
/* f073420: 8fbf001c */ lw $ra,0x1c($sp)
/* f073424: c428c0a4 */ lwc1 $f8,-0x3f5c($at)
/* f073428: 3c01bfff */ lui $at,0xbfff
/* f07342c: 3421ffff */ ori $at,$at,0xffff
/* f073430: 4608303c */ c.lt.s $f6,$f8
/* f073434: 00000000 */ nop
/* f073438: 45030014 */ bc1tl .PB0f07348c
/* f07343c: 8fbf001c */ lw $ra,0x1c($sp)
/* f073440: 8c8f0008 */ lw $t7,0x8($a0)
/* f073444: e494009c */ swc1 $f20,0x9c($a0)
/* f073448: e49400a0 */ swc1 $f20,0xa0($a0)
/* f07344c: 01e1c024 */ and $t8,$t7,$at
/* f073450: e49400ac */ swc1 $f20,0xac($a0)
/* f073454: e49400b0 */ swc1 $f20,0xb0($a0)
/* f073458: e49400b4 */ swc1 $f20,0xb4($a0)
/* f07345c: e49400b8 */ swc1 $f20,0xb8($a0)
/* f073460: e49400bc */ swc1 $f20,0xbc($a0)
/* f073464: e49400c0 */ swc1 $f20,0xc0($a0)
/* f073468: e49400c4 */ swc1 $f20,0xc4($a0)
/* f07346c: e49400c8 */ swc1 $f20,0xc8($a0)
/* f073470: ac8000cc */ sw $zero,0xcc($a0)
/* f073474: e49400d0 */ swc1 $f20,0xd0($a0)
/* f073478: e49400d4 */ swc1 $f20,0xd4($a0)
/* f07347c: e49400d8 */ swc1 $f20,0xd8($a0)
/* f073480: e49400dc */ swc1 $f20,0xdc($a0)
/* f073484: ac980008 */ sw $t8,0x8($a0)
.PB0f073488:
/* f073488: 8fbf001c */ lw $ra,0x1c($sp)
.PB0f07348c:
/* f07348c: d7b40010 */ ldc1 $f20,0x10($sp)
/* f073490: 27bd0088 */ addiu $sp,$sp,0x88
/* f073494: 03e00008 */ jr $ra
/* f073498: 00000000 */ nop
);
#else
GLOBAL_ASM(
glabel hoverbikeUpdateMovement
.late_rodata
glabel var7f1aa324
.word 0x3d32b179
glabel var7f1aa328
.word 0x3d99999a
glabel var7f1aa32c
.word 0x3dcccccd
glabel var7f1aa330
.word 0x3e99999a
glabel var7f1aa334
.word 0x3dcccccd
glabel var7f1aa338
.word 0x3e99999a
glabel var7f1aa33c
.word 0x3f6e147b
glabel var7f1aa340
.word 0x3e99999a
glabel var7f1aa344
.word 0x3f333333
glabel var7f1aa348
.word 0x3e99999a
glabel var7f1aa34c
.word 0x3d23d70a
glabel var7f1aa350
.word 0x40c907a9
glabel var7f1aa354
.word 0x3dcccccd
glabel var7f1aa358
.word 0x3e99999a
glabel var7f1aa35c
.word 0x3dcccccd
glabel var7f1aa360
.word 0x3e99999a
glabel var7f1aa364
.word 0x3ecccccd
glabel var7f1aa368
.word 0x3e80a8be
glabel var7f1aa36c
.word 0x3f8a3d71
glabel var7f1aa370
.word 0x3f3851ec
glabel var7f1aa374
.word 0x3f8a3d71
glabel var7f1aa378
.word 0x3f3851ec
glabel var7f1aa37c
.word 0x3f7851ec
glabel var7f1aa380
.word 0x3d23d70a
glabel var7f1aa384
.word 0x3e19999a
glabel var7f1aa388
.word 0x3f7d70a4
glabel var7f1aa38c
.word 0x3f4ccccd
glabel var7f1aa390
.word 0xbdcccccd
glabel var7f1aa394
.word 0x459c4000
glabel var7f1aa398
.word 0x4a127c00
glabel var7f1aa39c
.word 0x3dcccccd
glabel var7f1aa3a0
.word 0x3dcccccd
glabel var7f1aa3a4
.word 0x3a83126f
glabel var7f1aa3a8
.word 0x3dcccccd
glabel var7f1aa3ac
.word 0xbdcccccd
glabel var7f1aa3b0
.word 0xbdcccccd
glabel var7f1aa3b4
.word 0xba83126f
glabel var7f1aa3b8
.word 0xbdcccccd
.text
/* f072adc: 27bdff78 */ addiu $sp,$sp,-136
/* f072ae0: f7b40010 */ sdc1 $f20,0x10($sp)
/* f072ae4: afa5008c */ sw $a1,0x8c($sp)
/* f072ae8: 4480a000 */ mtc1 $zero,$f20
/* f072aec: c7a6008c */ lwc1 $f6,0x8c($sp)
/* f072af0: 3c017f1b */ lui $at,%hi(var7f1aa324)
/* f072af4: 44877000 */ mtc1 $a3,$f14
/* f072af8: 4614303c */ c.lt.s $f6,$f20
/* f072afc: c424a324 */ lwc1 $f4,%lo(var7f1aa324)($at)
/* f072b00: afbf001c */ sw $ra,0x1c($sp)
/* f072b04: afa60090 */ sw $a2,0x90($sp)
/* f072b08: 46047302 */ mul.s $f12,$f14,$f4
/* f072b0c: 45000009 */ bc1f .L0f072b34
/* f072b10: 3c05800a */ lui $a1,%hi(g_Vars)
/* f072b14: 3c013f00 */ lui $at,0x3f00
/* f072b18: 44814000 */ mtc1 $at,$f8
/* f072b1c: 3c013f80 */ lui $at,0x3f80
/* f072b20: 44812000 */ mtc1 $at,$f4
/* f072b24: 46083282 */ mul.s $f10,$f6,$f8
/* f072b28: 460a2181 */ sub.s $f6,$f4,$f10
/* f072b2c: 46066302 */ mul.s $f12,$f12,$f6
/* f072b30: 00000000 */ nop
.L0f072b34:
/* f072b34: 3c013f00 */ lui $at,0x3f00
/* f072b38: 44812000 */ mtc1 $at,$f4
/* f072b3c: c7a8008c */ lwc1 $f8,0x8c($sp)
/* f072b40: 24a59fc0 */ addiu $a1,$a1,%lo(g_Vars)
/* f072b44: 8cae0038 */ lw $t6,0x38($a1)
/* f072b48: 46044382 */ mul.s $f14,$f8,$f4
/* f072b4c: 00001825 */ or $v1,$zero,$zero
/* f072b50: 19c0000d */ blez $t6,.L0f072b88
/* f072b54: 3c017f1b */ lui $at,%hi(var7f1aa328)
/* f072b58: c420a328 */ lwc1 $f0,%lo(var7f1aa328)($at)
/* f072b5c: c48200ac */ lwc1 $f2,0xac($a0)
.L0f072b60:
/* f072b60: 24630001 */ addiu $v1,$v1,0x1
/* f072b64: 46026281 */ sub.s $f10,$f12,$f2
/* f072b68: 46005182 */ mul.s $f6,$f10,$f0
/* f072b6c: 46061200 */ add.s $f8,$f2,$f6
/* f072b70: e48800ac */ swc1 $f8,0xac($a0)
/* f072b74: 8caf0038 */ lw $t7,0x38($a1)
/* f072b78: 006f082a */ slt $at,$v1,$t7
/* f072b7c: 5420fff8 */ bnezl $at,.L0f072b60
/* f072b80: c48200ac */ lwc1 $f2,0xac($a0)
/* f072b84: 00001825 */ or $v1,$zero,$zero
.L0f072b88:
/* f072b88: 3c014140 */ lui $at,0x4140
/* f072b8c: 44815000 */ mtc1 $at,$f10
/* f072b90: c48400ac */ lwc1 $f4,0xac($a0)
/* f072b94: e7ae0044 */ swc1 $f14,0x44($sp)
/* f072b98: afa40088 */ sw $a0,0x88($sp)
/* f072b9c: 460a2182 */ mul.s $f6,$f4,$f10
/* f072ba0: afa30064 */ sw $v1,0x64($sp)
/* f072ba4: 4606a200 */ add.s $f8,$f20,$f6
/* f072ba8: 0fc1c836 */ jal hoverpropGetTurnAngle
/* f072bac: e7a8006c */ swc1 $f8,0x6c($sp)
/* f072bb0: e7a00080 */ swc1 $f0,0x80($sp)
/* f072bb4: 0c0068f7 */ jal sinf
/* f072bb8: 46000306 */ mov.s $f12,$f0
/* f072bbc: e7a0007c */ swc1 $f0,0x7c($sp)
/* f072bc0: 0c0068f4 */ jal cosf
/* f072bc4: c7ac0080 */ lwc1 $f12,0x80($sp)
/* f072bc8: c7b0008c */ lwc1 $f16,0x8c($sp)
/* f072bcc: 3c05800a */ lui $a1,%hi(g_Vars)
/* f072bd0: 24a59fc0 */ addiu $a1,$a1,%lo(g_Vars)
/* f072bd4: 4610a03e */ c.le.s $f20,$f16
/* f072bd8: 8fa30064 */ lw $v1,0x64($sp)
/* f072bdc: 8fa40088 */ lw $a0,0x88($sp)
/* f072be0: c7ae0044 */ lwc1 $f14,0x44($sp)
/* f072be4: 4500000c */ bc1f .L0f072c18
/* f072be8: 3c017f1b */ lui $at,%hi(var7f1aa32c)
/* f072bec: 3c017f1b */ lui $at,%hi(var7f1aa330)
/* f072bf0: c424a32c */ lwc1 $f4,%lo(var7f1aa32c)($at)
/* f072bf4: 3c017f1b */ lui $at,%hi(var7f1aa334)
/* f072bf8: c426a330 */ lwc1 $f6,%lo(var7f1aa330)($at)
/* f072bfc: 46048280 */ add.s $f10,$f16,$f4
/* f072c00: c4a4004c */ lwc1 $f4,0x4c($a1)
/* f072c04: 46065202 */ mul.s $f8,$f10,$f6
/* f072c08: 00000000 */ nop
/* f072c0c: 46044082 */ mul.s $f2,$f8,$f4
/* f072c10: 1000000a */ b .L0f072c3c
/* f072c14: 00000000 */ nop
.L0f072c18:
/* f072c18: c42aa334 */ lwc1 $f10,%lo(var7f1aa334)($at)
/* f072c1c: 3c017f1b */ lui $at,%hi(var7f1aa338)
/* f072c20: c428a338 */ lwc1 $f8,%lo(var7f1aa338)($at)
/* f072c24: 46105181 */ sub.s $f6,$f10,$f16
/* f072c28: c4aa004c */ lwc1 $f10,0x4c($a1)
/* f072c2c: 46083102 */ mul.s $f4,$f6,$f8
/* f072c30: 00000000 */ nop
/* f072c34: 460a2082 */ mul.s $f2,$f4,$f10
/* f072c38: 00000000 */ nop
.L0f072c3c:
/* f072c3c: c49200b4 */ lwc1 $f18,0xb4($a0)
/* f072c40: 3c013f80 */ lui $at,0x3f80
/* f072c44: 44816000 */ mtc1 $at,$f12
/* f072c48: 460e903c */ c.lt.s $f18,$f14
/* f072c4c: 3c017f1b */ lui $at,%hi(var7f1aa33c)
/* f072c50: 4502000b */ bc1fl .L0f072c80
/* f072c54: 46029101 */ sub.s $f4,$f18,$f2
/* f072c58: 46029180 */ add.s $f6,$f18,$f2
/* f072c5c: e48600b4 */ swc1 $f6,0xb4($a0)
/* f072c60: c48800b4 */ lwc1 $f8,0xb4($a0)
/* f072c64: 4608703c */ c.lt.s $f14,$f8
/* f072c68: 00000000 */ nop
/* f072c6c: 4502000c */ bc1fl .L0f072ca0
/* f072c70: c48600c8 */ lwc1 $f6,0xc8($a0)
/* f072c74: 10000009 */ b .L0f072c9c
/* f072c78: e48e00b4 */ swc1 $f14,0xb4($a0)
/* f072c7c: 46029101 */ sub.s $f4,$f18,$f2
.L0f072c80:
/* f072c80: e48400b4 */ swc1 $f4,0xb4($a0)
/* f072c84: c48a00b4 */ lwc1 $f10,0xb4($a0)
/* f072c88: 460e503c */ c.lt.s $f10,$f14
/* f072c8c: 00000000 */ nop
/* f072c90: 45020003 */ bc1fl .L0f072ca0
/* f072c94: c48600c8 */ lwc1 $f6,0xc8($a0)
/* f072c98: e48e00b4 */ swc1 $f14,0xb4($a0)
.L0f072c9c:
/* f072c9c: c48600c8 */ lwc1 $f6,0xc8($a0)
.L0f072ca0:
/* f072ca0: c428a33c */ lwc1 $f8,%lo(var7f1aa33c)($at)
/* f072ca4: 3c0140a0 */ lui $at,0x40a0
/* f072ca8: 46083102 */ mul.s $f4,$f6,$f8
/* f072cac: c48600c4 */ lwc1 $f6,0xc4($a0)
/* f072cb0: e49000c4 */ swc1 $f16,0xc4($a0)
/* f072cb4: 46068201 */ sub.s $f8,$f16,$f6
/* f072cb8: e48400c8 */ swc1 $f4,0xc8($a0)
/* f072cbc: c48a00c8 */ lwc1 $f10,0xc8($a0)
/* f072cc0: 46085100 */ add.s $f4,$f10,$f8
/* f072cc4: 44815000 */ mtc1 $at,$f10
/* f072cc8: 3c01bf80 */ lui $at,0xbf80
/* f072ccc: e48400c8 */ swc1 $f4,0xc8($a0)
/* f072cd0: c48600c8 */ lwc1 $f6,0xc8($a0)
/* f072cd4: 460a3082 */ mul.s $f2,$f6,$f10
/* f072cd8: 4602603c */ c.lt.s $f12,$f2
/* f072cdc: 00000000 */ nop
/* f072ce0: 45020004 */ bc1fl .L0f072cf4
/* f072ce4: 44816000 */ mtc1 $at,$f12
/* f072ce8: 10000008 */ b .L0f072d0c
/* f072cec: 46006086 */ mov.s $f2,$f12
/* f072cf0: 44816000 */ mtc1 $at,$f12
.L0f072cf4:
/* f072cf4: 00000000 */ nop
/* f072cf8: 460c103c */ c.lt.s $f2,$f12
/* f072cfc: 00000000 */ nop
/* f072d00: 45020003 */ bc1fl .L0f072d10
/* f072d04: 4610a03e */ c.le.s $f20,$f16
/* f072d08: 46006086 */ mov.s $f2,$f12
.L0f072d0c:
/* f072d0c: 4610a03e */ c.le.s $f20,$f16
.L0f072d10:
/* f072d10: 00000000 */ nop
/* f072d14: 45020015 */ bc1fl .L0f072d6c
/* f072d18: 4614103c */ c.lt.s $f2,$f20
/* f072d1c: 4602a03c */ c.lt.s $f20,$f2
/* f072d20: 3c017f1b */ lui $at,%hi(var7f1aa340)
/* f072d24: 4500000c */ bc1f .L0f072d58
/* f072d28: 00000000 */ nop
/* f072d2c: 3c017f1b */ lui $at,%hi(var7f1aa344)
/* f072d30: c428a340 */ lwc1 $f8,%lo(var7f1aa340)($at)
/* f072d34: 3c017f1b */ lui $at,%hi(var7f1aa348)
/* f072d38: c426a344 */ lwc1 $f6,%lo(var7f1aa344)($at)
/* f072d3c: 46088102 */ mul.s $f4,$f16,$f8
/* f072d40: 00000000 */ nop
/* f072d44: 46068282 */ mul.s $f10,$f16,$f6
/* f072d48: 00000000 */ nop
/* f072d4c: 46025202 */ mul.s $f8,$f10,$f2
/* f072d50: 1000000d */ b .L0f072d88
/* f072d54: 46082300 */ add.s $f12,$f4,$f8
.L0f072d58:
/* f072d58: c426a348 */ lwc1 $f6,%lo(var7f1aa348)($at)
/* f072d5c: 46068302 */ mul.s $f12,$f16,$f6
/* f072d60: 10000009 */ b .L0f072d88
/* f072d64: 00000000 */ nop
/* f072d68: 4614103c */ c.lt.s $f2,$f20
.L0f072d6c:
/* f072d6c: 00000000 */ nop
/* f072d70: 45020005 */ bc1fl .L0f072d88
/* f072d74: 46007306 */ mov.s $f12,$f14
/* f072d78: 46027282 */ mul.s $f10,$f14,$f2
/* f072d7c: 10000002 */ b .L0f072d88
/* f072d80: 460a7301 */ sub.s $f12,$f14,$f10
/* f072d84: 46007306 */ mov.s $f12,$f14
.L0f072d88:
/* f072d88: 3c017f1b */ lui $at,%hi(var7f1aa34c)
/* f072d8c: c424a34c */ lwc1 $f4,%lo(var7f1aa34c)($at)
/* f072d90: 3c017f1b */ lui $at,%hi(var7f1aa350)
/* f072d94: c426a350 */ lwc1 $f6,%lo(var7f1aa350)($at)
/* f072d98: 46046202 */ mul.s $f8,$f12,$f4
/* f072d9c: c7b20090 */ lwc1 $f18,0x90($sp)
/* f072da0: 3c017f1b */ lui $at,%hi(var7f1aa354)
/* f072da4: 4612a03e */ c.le.s $f20,$f18
/* f072da8: 46064282 */ mul.s $f10,$f8,$f6
/* f072dac: 460aa100 */ add.s $f4,$f20,$f10
/* f072db0: 4500000c */ bc1f .L0f072de4
/* f072db4: e7a40070 */ swc1 $f4,0x70($sp)
/* f072db8: 3c017f1b */ lui $at,%hi(var7f1aa358)
/* f072dbc: c428a354 */ lwc1 $f8,%lo(var7f1aa354)($at)
/* f072dc0: 3c017f1b */ lui $at,%hi(var7f1aa35c)
/* f072dc4: c42aa358 */ lwc1 $f10,%lo(var7f1aa358)($at)
/* f072dc8: 46089180 */ add.s $f6,$f18,$f8
/* f072dcc: c4a8004c */ lwc1 $f8,0x4c($a1)
/* f072dd0: 460a3102 */ mul.s $f4,$f6,$f10
/* f072dd4: 00000000 */ nop
/* f072dd8: 46082302 */ mul.s $f12,$f4,$f8
/* f072ddc: 1000000a */ b .L0f072e08
/* f072de0: 00000000 */ nop
.L0f072de4:
/* f072de4: c426a35c */ lwc1 $f6,%lo(var7f1aa35c)($at)
/* f072de8: 3c017f1b */ lui $at,%hi(var7f1aa360)
/* f072dec: c424a360 */ lwc1 $f4,%lo(var7f1aa360)($at)
/* f072df0: 46123281 */ sub.s $f10,$f6,$f18
/* f072df4: c4a6004c */ lwc1 $f6,0x4c($a1)
/* f072df8: 46045202 */ mul.s $f8,$f10,$f4
/* f072dfc: 00000000 */ nop
/* f072e00: 46064302 */ mul.s $f12,$f8,$f6
/* f072e04: 00000000 */ nop
.L0f072e08:
/* f072e08: 3c017f1b */ lui $at,%hi(var7f1aa364)
/* f072e0c: c42aa364 */ lwc1 $f10,%lo(var7f1aa364)($at)
/* f072e10: c48e00b0 */ lwc1 $f14,0xb0($a0)
/* f072e14: 3c017f1b */ lui $at,%hi(var7f1aa368)
/* f072e18: 46125082 */ mul.s $f2,$f10,$f18
/* f072e1c: 4602703c */ c.lt.s $f14,$f2
/* f072e20: 00000000 */ nop
/* f072e24: 4502000b */ bc1fl .L0f072e54
/* f072e28: 460c7181 */ sub.s $f6,$f14,$f12
/* f072e2c: 460c7100 */ add.s $f4,$f14,$f12
/* f072e30: e48400b0 */ swc1 $f4,0xb0($a0)
/* f072e34: c48800b0 */ lwc1 $f8,0xb0($a0)
/* f072e38: 4608103c */ c.lt.s $f2,$f8
/* f072e3c: 00000000 */ nop
/* f072e40: 4500000b */ bc1f .L0f072e70
/* f072e44: 00000000 */ nop
/* f072e48: 10000009 */ b .L0f072e70
/* f072e4c: e48200b0 */ swc1 $f2,0xb0($a0)
/* f072e50: 460c7181 */ sub.s $f6,$f14,$f12
.L0f072e54:
/* f072e54: e48600b0 */ swc1 $f6,0xb0($a0)
/* f072e58: c48a00b0 */ lwc1 $f10,0xb0($a0)
/* f072e5c: 4602503c */ c.lt.s $f10,$f2
/* f072e60: 00000000 */ nop
/* f072e64: 45000002 */ bc1f .L0f072e70
/* f072e68: 00000000 */ nop
/* f072e6c: e48200b0 */ swc1 $f2,0xb0($a0)
.L0f072e70:
/* f072e70: c424a368 */ lwc1 $f4,%lo(var7f1aa368)($at)
/* f072e74: 8ca20038 */ lw $v0,0x38($a1)
/* f072e78: 46049202 */ mul.s $f8,$f18,$f4
/* f072e7c: c7a4007c */ lwc1 $f4,0x7c($sp)
/* f072e80: 4608a180 */ add.s $f6,$f20,$f8
/* f072e84: 18400032 */ blez $v0,.L0f072f50
/* f072e88: e7a60068 */ swc1 $f6,0x68($sp)
/* f072e8c: c48a00b4 */ lwc1 $f10,0xb4($a0)
/* f072e90: 3c017f1b */ lui $at,%hi(var7f1aa36c)
/* f072e94: c426a36c */ lwc1 $f6,%lo(var7f1aa36c)($at)
/* f072e98: 46045202 */ mul.s $f8,$f10,$f4
/* f072e9c: c48a00b0 */ lwc1 $f10,0xb0($a0)
/* f072ea0: 3c017f1b */ lui $at,%hi(var7f1aa370)
/* f072ea4: 46064302 */ mul.s $f12,$f8,$f6
/* f072ea8: c426a370 */ lwc1 $f6,%lo(var7f1aa370)($at)
/* f072eac: 3c017f1b */ lui $at,%hi(var7f1aa374)
/* f072eb0: 46045202 */ mul.s $f8,$f10,$f4
/* f072eb4: c48a00b4 */ lwc1 $f10,0xb4($a0)
/* f072eb8: 46064382 */ mul.s $f14,$f8,$f6
/* f072ebc: c428a374 */ lwc1 $f8,%lo(var7f1aa374)($at)
/* f072ec0: c48600b0 */ lwc1 $f6,0xb0($a0)
/* f072ec4: 46005102 */ mul.s $f4,$f10,$f0
/* f072ec8: 3c017f1b */ lui $at,%hi(var7f1aa378)
/* f072ecc: 46003287 */ neg.s $f10,$f6
/* f072ed0: 46082402 */ mul.s $f16,$f4,$f8
/* f072ed4: c428a378 */ lwc1 $f8,%lo(var7f1aa378)($at)
/* f072ed8: 3c017f1b */ lui $at,%hi(var7f1aa37c)
/* f072edc: 46005102 */ mul.s $f4,$f10,$f0
/* f072ee0: c422a37c */ lwc1 $f2,%lo(var7f1aa37c)($at)
/* f072ee4: 46082482 */ mul.s $f18,$f4,$f8
/* f072ee8: 00000000 */ nop
.L0f072eec:
/* f072eec: c48600d4 */ lwc1 $f6,0xd4($a0)
/* f072ef0: c48400d0 */ lwc1 $f4,0xd0($a0)
/* f072ef4: 24630001 */ addiu $v1,$v1,0x1
/* f072ef8: 46023282 */ mul.s $f10,$f6,$f2
/* f072efc: 00000000 */ nop
/* f072f00: 46022202 */ mul.s $f8,$f4,$f2
/* f072f04: e48a00d4 */ swc1 $f10,0xd4($a0)
/* f072f08: c48600d4 */ lwc1 $f6,0xd4($a0)
/* f072f0c: e48800d0 */ swc1 $f8,0xd0($a0)
/* f072f10: c48400d0 */ lwc1 $f4,0xd0($a0)
/* f072f14: 46103280 */ add.s $f10,$f6,$f16
/* f072f18: 460c2200 */ add.s $f8,$f4,$f12
/* f072f1c: e48a00d4 */ swc1 $f10,0xd4($a0)
/* f072f20: c48600d4 */ lwc1 $f6,0xd4($a0)
/* f072f24: e48800d0 */ swc1 $f8,0xd0($a0)
/* f072f28: c48400d0 */ lwc1 $f4,0xd0($a0)
/* f072f2c: 460e3280 */ add.s $f10,$f6,$f14
/* f072f30: 46122200 */ add.s $f8,$f4,$f18
/* f072f34: e48a00d4 */ swc1 $f10,0xd4($a0)
/* f072f38: e48800d0 */ swc1 $f8,0xd0($a0)
/* f072f3c: 8ca20038 */ lw $v0,0x38($a1)
/* f072f40: 0062082a */ slt $at,$v1,$v0
/* f072f44: 1420ffe9 */ bnez $at,.L0f072eec
/* f072f48: 00000000 */ nop
/* f072f4c: 00001825 */ or $v1,$zero,$zero
.L0f072f50:
/* f072f50: 1840001b */ blez $v0,.L0f072fc0
/* f072f54: 3c017f1b */ lui $at,%hi(var7f1aa380)
/* f072f58: c432a380 */ lwc1 $f18,%lo(var7f1aa380)($at)
/* f072f5c: 3c017f1b */ lui $at,%hi(var7f1aa384)
/* f072f60: c422a384 */ lwc1 $f2,%lo(var7f1aa384)($at)
/* f072f64: c48c00b8 */ lwc1 $f12,0xb8($a0)
.L0f072f68:
/* f072f68: c7a60070 */ lwc1 $f6,0x70($sp)
/* f072f6c: c48e00bc */ lwc1 $f14,0xbc($a0)
/* f072f70: c49000c0 */ lwc1 $f16,0xc0($a0)
/* f072f74: 460c3281 */ sub.s $f10,$f6,$f12
/* f072f78: 24630001 */ addiu $v1,$v1,0x1
/* f072f7c: 46125102 */ mul.s $f4,$f10,$f18
/* f072f80: 46046200 */ add.s $f8,$f12,$f4
/* f072f84: e48800b8 */ swc1 $f8,0xb8($a0)
/* f072f88: c7a6006c */ lwc1 $f6,0x6c($sp)
/* f072f8c: 460e3281 */ sub.s $f10,$f6,$f14
/* f072f90: 46025102 */ mul.s $f4,$f10,$f2
/* f072f94: 46047200 */ add.s $f8,$f14,$f4
/* f072f98: e48800bc */ swc1 $f8,0xbc($a0)
/* f072f9c: c7a60068 */ lwc1 $f6,0x68($sp)
/* f072fa0: 46103281 */ sub.s $f10,$f6,$f16
/* f072fa4: 46125102 */ mul.s $f4,$f10,$f18
/* f072fa8: 46048200 */ add.s $f8,$f16,$f4
/* f072fac: e48800c0 */ swc1 $f8,0xc0($a0)
/* f072fb0: 8cb80038 */ lw $t8,0x38($a1)
/* f072fb4: 0078082a */ slt $at,$v1,$t8
/* f072fb8: 5420ffeb */ bnezl $at,.L0f072f68
/* f072fbc: c48c00b8 */ lwc1 $f12,0xb8($a0)
.L0f072fc0:
/* f072fc0: 3c017f1b */ lui $at,%hi(var7f1aa388)
/* f072fc4: c7a2008c */ lwc1 $f2,0x8c($sp)
/* f072fc8: c426a388 */ lwc1 $f6,%lo(var7f1aa388)($at)
/* f072fcc: 4602303e */ c.le.s $f6,$f2
/* f072fd0: 00000000 */ nop
/* f072fd4: 4502000b */ bc1fl .L0f073004
/* f072fd8: 8c8200cc */ lw $v0,0xcc($a0)
/* f072fdc: 8c9900cc */ lw $t9,0xcc($a0)
/* f072fe0: 8ca80034 */ lw $t0,0x34($a1)
/* f072fe4: 03281021 */ addu $v0,$t9,$t0
/* f072fe8: 28410961 */ slti $at,$v0,0x961
/* f072fec: 1420001d */ bnez $at,.L0f073064
/* f072ff0: ac8200cc */ sw $v0,0xcc($a0)
/* f072ff4: 24020960 */ addiu $v0,$zero,0x960
/* f072ff8: 1000001a */ b .L0f073064
/* f072ffc: ac8200cc */ sw $v0,0xcc($a0)
/* f073000: 8c8200cc */ lw $v0,0xcc($a0)
.L0f073004:
/* f073004: 3c017f1b */ lui $at,%hi(var7f1aa38c)
/* f073008: 58400017 */ blezl $v0,.L0f073068
/* f07300c: 44824000 */ mtc1 $v0,$f8
/* f073010: c42aa38c */ lwc1 $f10,%lo(var7f1aa38c)($at)
/* f073014: 3c017f1b */ lui $at,%hi(var7f1aa390)
/* f073018: 4602503e */ c.le.s $f10,$f2
/* f07301c: 00000000 */ nop
/* f073020: 45030011 */ bc1tl .L0f073068
/* f073024: 44824000 */ mtc1 $v0,$f8
/* f073028: c424a390 */ lwc1 $f4,%lo(var7f1aa390)($at)
/* f07302c: 4602203e */ c.le.s $f4,$f2
/* f073030: 00000000 */ nop
/* f073034: 4502000a */ bc1fl .L0f073060
/* f073038: ac8000cc */ sw $zero,0xcc($a0)
/* f07303c: 8cab0034 */ lw $t3,0x34($a1)
/* f073040: 004b6023 */ subu $t4,$v0,$t3
/* f073044: ac8c00cc */ sw $t4,0xcc($a0)
/* f073048: 05810006 */ bgez $t4,.L0f073064
/* f07304c: 01801025 */ or $v0,$t4,$zero
/* f073050: ac8000cc */ sw $zero,0xcc($a0)
/* f073054: 10000003 */ b .L0f073064
/* f073058: 00001025 */ or $v0,$zero,$zero
/* f07305c: ac8000cc */ sw $zero,0xcc($a0)
.L0f073060:
/* f073060: 00001025 */ or $v0,$zero,$zero
.L0f073064:
/* f073064: 44824000 */ mtc1 $v0,$f8
.L0f073068:
/* f073068: 3c017f1b */ lui $at,%hi(var7f1aa394)
/* f07306c: c42aa394 */ lwc1 $f10,%lo(var7f1aa394)($at)
/* f073070: 468041a0 */ cvt.s.w $f6,$f8
/* f073074: 3c017f1b */ lui $at,%hi(var7f1aa398)
/* f073078: c428a398 */ lwc1 $f8,%lo(var7f1aa398)($at)
/* f07307c: c48c00d8 */ lwc1 $f12,0xd8($a0)
/* f073080: 8c8d0008 */ lw $t5,0x8($a0)
/* f073084: 460a3102 */ mul.s $f4,$f6,$f10
/* f073088: c48600d4 */ lwc1 $f6,0xd4($a0)
/* f07308c: 000d7040 */ sll $t6,$t5,0x1
/* f073090: 46082083 */ div.s $f2,$f4,$f8
/* f073094: 46001282 */ mul.s $f10,$f2,$f0
/* f073098: e48200dc */ swc1 $f2,0xdc($a0)
/* f07309c: c7a8007c */ lwc1 $f8,0x7c($sp)
/* f0730a0: 460a3100 */ add.s $f4,$f6,$f10
/* f0730a4: 46086182 */ mul.s $f6,$f12,$f8
/* f0730a8: c48800d0 */ lwc1 $f8,0xd0($a0)
/* f0730ac: 46043280 */ add.s $f10,$f6,$f4
/* f0730b0: e48a00a0 */ swc1 $f10,0xa0($a0)
/* f0730b4: c7a6007c */ lwc1 $f6,0x7c($sp)
/* f0730b8: 46061102 */ mul.s $f4,$f2,$f6
/* f0730bc: 46044280 */ add.s $f10,$f8,$f4
/* f0730c0: 46006182 */ mul.s $f6,$f12,$f0
/* f0730c4: 46065201 */ sub.s $f8,$f10,$f6
/* f0730c8: 05c1007d */ bgez $t6,.L0f0732c0
/* f0730cc: e488009c */ swc1 $f8,0x9c($a0)
/* f0730d0: c484009c */ lwc1 $f4,0x9c($a0)
/* f0730d4: 3c017f1b */ lui $at,%hi(var7f1aa39c)
/* f0730d8: c42aa39c */ lwc1 $f10,%lo(var7f1aa39c)($at)
/* f0730dc: e7a40028 */ swc1 $f4,0x28($sp)
/* f0730e0: c7a60028 */ lwc1 $f6,0x28($sp)
/* f0730e4: 4606503c */ c.lt.s $f10,$f6
/* f0730e8: 00000000 */ nop
/* f0730ec: 45030075 */ bc1tl .L0f0732c4
/* f0730f0: 8fbf001c */ lw $ra,0x1c($sp)
/* f0730f4: c48800a0 */ lwc1 $f8,0xa0($a0)
/* f0730f8: 3c017f1b */ lui $at,%hi(var7f1aa3a0)
/* f0730fc: c424a3a0 */ lwc1 $f4,%lo(var7f1aa3a0)($at)
/* f073100: e7a80024 */ swc1 $f8,0x24($sp)
/* f073104: c7aa0024 */ lwc1 $f10,0x24($sp)
/* f073108: 3c017f1b */ lui $at,%hi(var7f1aa3a4)
/* f07310c: 460a203c */ c.lt.s $f4,$f10
/* f073110: 00000000 */ nop
/* f073114: 4503006b */ bc1tl .L0f0732c4
/* f073118: 8fbf001c */ lw $ra,0x1c($sp)
/* f07311c: c420a3a4 */ lwc1 $f0,%lo(var7f1aa3a4)($at)
/* f073120: c48200ac */ lwc1 $f2,0xac($a0)
/* f073124: 4602003c */ c.lt.s $f0,$f2
/* f073128: 00000000 */ nop
/* f07312c: 45030065 */ bc1tl .L0f0732c4
/* f073130: 8fbf001c */ lw $ra,0x1c($sp)
/* f073134: c49000b0 */ lwc1 $f16,0xb0($a0)
/* f073138: 4610003c */ c.lt.s $f0,$f16
/* f07313c: 00000000 */ nop
/* f073140: 45030060 */ bc1tl .L0f0732c4
/* f073144: 8fbf001c */ lw $ra,0x1c($sp)
/* f073148: c49200b4 */ lwc1 $f18,0xb4($a0)
/* f07314c: 4612003c */ c.lt.s $f0,$f18
/* f073150: 00000000 */ nop
/* f073154: 4503005b */ bc1tl .L0f0732c4
/* f073158: 8fbf001c */ lw $ra,0x1c($sp)
/* f07315c: c48c00b8 */ lwc1 $f12,0xb8($a0)
/* f073160: 460c003c */ c.lt.s $f0,$f12
/* f073164: 00000000 */ nop
/* f073168: 45030056 */ bc1tl .L0f0732c4
/* f07316c: 8fbf001c */ lw $ra,0x1c($sp)
/* f073170: c48e00bc */ lwc1 $f14,0xbc($a0)
/* f073174: e7b00038 */ swc1 $f16,0x38($sp)
/* f073178: 460e003c */ c.lt.s $f0,$f14
/* f07317c: 00000000 */ nop
/* f073180: 45030050 */ bc1tl .L0f0732c4
/* f073184: 8fbf001c */ lw $ra,0x1c($sp)
/* f073188: c49000c0 */ lwc1 $f16,0xc0($a0)
/* f07318c: 3c017f1b */ lui $at,%hi(var7f1aa3a8)
/* f073190: 4610003c */ c.lt.s $f0,$f16
/* f073194: 00000000 */ nop
/* f073198: 4503004a */ bc1tl .L0f0732c4
/* f07319c: 8fbf001c */ lw $ra,0x1c($sp)
/* f0731a0: c48000c8 */ lwc1 $f0,0xc8($a0)
/* f0731a4: c428a3a8 */ lwc1 $f8,%lo(var7f1aa3a8)($at)
/* f0731a8: 3c017f1b */ lui $at,%hi(var7f1aa3ac)
/* f0731ac: 4600403c */ c.lt.s $f8,$f0
/* f0731b0: 00000000 */ nop
/* f0731b4: 45030043 */ bc1tl .L0f0732c4
/* f0731b8: 8fbf001c */ lw $ra,0x1c($sp)
/* f0731bc: c424a3ac */ lwc1 $f4,%lo(var7f1aa3ac)($at)
/* f0731c0: 3c017f1b */ lui $at,%hi(var7f1aa3b0)
/* f0731c4: 4604303c */ c.lt.s $f6,$f4
/* f0731c8: 00000000 */ nop
/* f0731cc: 4503003d */ bc1tl .L0f0732c4
/* f0731d0: 8fbf001c */ lw $ra,0x1c($sp)
/* f0731d4: c428a3b0 */ lwc1 $f8,%lo(var7f1aa3b0)($at)
/* f0731d8: 3c017f1b */ lui $at,%hi(var7f1aa3b4)
/* f0731dc: e7a0003c */ swc1 $f0,0x3c($sp)
/* f0731e0: 4608503c */ c.lt.s $f10,$f8
/* f0731e4: 00000000 */ nop
/* f0731e8: 45030036 */ bc1tl .L0f0732c4
/* f0731ec: 8fbf001c */ lw $ra,0x1c($sp)
/* f0731f0: c420a3b4 */ lwc1 $f0,%lo(var7f1aa3b4)($at)
/* f0731f4: c7a60038 */ lwc1 $f6,0x38($sp)
/* f0731f8: 4600103c */ c.lt.s $f2,$f0
/* f0731fc: 00000000 */ nop
/* f073200: 45030030 */ bc1tl .L0f0732c4
/* f073204: 8fbf001c */ lw $ra,0x1c($sp)
/* f073208: 4600303c */ c.lt.s $f6,$f0
/* f07320c: 00000000 */ nop
/* f073210: 4503002c */ bc1tl .L0f0732c4
/* f073214: 8fbf001c */ lw $ra,0x1c($sp)
/* f073218: 4600903c */ c.lt.s $f18,$f0
/* f07321c: 00000000 */ nop
/* f073220: 45030028 */ bc1tl .L0f0732c4
/* f073224: 8fbf001c */ lw $ra,0x1c($sp)
/* f073228: 4600603c */ c.lt.s $f12,$f0
/* f07322c: 00000000 */ nop
/* f073230: 45030024 */ bc1tl .L0f0732c4
/* f073234: 8fbf001c */ lw $ra,0x1c($sp)
/* f073238: 4600703c */ c.lt.s $f14,$f0
/* f07323c: 00000000 */ nop
/* f073240: 45030020 */ bc1tl .L0f0732c4
/* f073244: 8fbf001c */ lw $ra,0x1c($sp)
/* f073248: 4600803c */ c.lt.s $f16,$f0
/* f07324c: c7a4003c */ lwc1 $f4,0x3c($sp)
/* f073250: 3c017f1b */ lui $at,%hi(var7f1aa3b8)
/* f073254: 4503001b */ bc1tl .L0f0732c4
/* f073258: 8fbf001c */ lw $ra,0x1c($sp)
/* f07325c: c42aa3b8 */ lwc1 $f10,%lo(var7f1aa3b8)($at)
/* f073260: 3c01bfff */ lui $at,0xbfff
/* f073264: 3421ffff */ ori $at,$at,0xffff
/* f073268: 460a203c */ c.lt.s $f4,$f10
/* f07326c: 00000000 */ nop
/* f073270: 45030014 */ bc1tl .L0f0732c4
/* f073274: 8fbf001c */ lw $ra,0x1c($sp)
/* f073278: 8c8f0008 */ lw $t7,0x8($a0)
/* f07327c: e494009c */ swc1 $f20,0x9c($a0)
/* f073280: e49400a0 */ swc1 $f20,0xa0($a0)
/* f073284: 01e1c024 */ and $t8,$t7,$at
/* f073288: e49400ac */ swc1 $f20,0xac($a0)
/* f07328c: e49400b0 */ swc1 $f20,0xb0($a0)
/* f073290: e49400b4 */ swc1 $f20,0xb4($a0)
/* f073294: e49400b8 */ swc1 $f20,0xb8($a0)
/* f073298: e49400bc */ swc1 $f20,0xbc($a0)
/* f07329c: e49400c0 */ swc1 $f20,0xc0($a0)
/* f0732a0: e49400c4 */ swc1 $f20,0xc4($a0)
/* f0732a4: e49400c8 */ swc1 $f20,0xc8($a0)
/* f0732a8: ac8000cc */ sw $zero,0xcc($a0)
/* f0732ac: e49400d0 */ swc1 $f20,0xd0($a0)
/* f0732b0: e49400d4 */ swc1 $f20,0xd4($a0)
/* f0732b4: e49400d8 */ swc1 $f20,0xd8($a0)
/* f0732b8: e49400dc */ swc1 $f20,0xdc($a0)
/* f0732bc: ac980008 */ sw $t8,0x8($a0)
.L0f0732c0:
/* f0732c0: 8fbf001c */ lw $ra,0x1c($sp)
.L0f0732c4:
/* f0732c4: d7b40010 */ ldc1 $f20,0x10($sp)
/* f0732c8: 27bd0088 */ addiu $sp,$sp,0x88
/* f0732cc: 03e00008 */ jr $ra
/* f0732d0: 00000000 */ nop
);
#endif
// Mismatches:
// Goal loads 1.0f earlier for use with leanmult
// Mine loads 1.0f twice for leanmult
// Mine loads speedfowards twice while goal keeps in f2 (near maxspeedtime240)
//void hoverbikeUpdateMovement(struct hoverbikeobj *bike, f32 speedforwards, f32 speedsideways, f32 speedtheta)
//{
// f32 fVar6;
// f32 angle; // 80
// f32 sinangle; // 7c
// f32 cosangle;
// f32 f2;
// f32 sp70 = 0;
// f32 sp6c = 0;
// f32 sp68 = 0;
// s32 i; // 64
// f32 leanmult;
// f32 fVar7;
// f32 fVar10;
// f32 prevleanspeed;
// u32 stack;
// f32 tmp;
// f32 sp44;
//
// tmp = speedtheta * 0.04362628236413f;
//
// if (speedforwards < 0) {
// tmp *= 1.0f - speedforwards * 0.5f;
// }
//
// for (i = 0; i < g_Vars.lvupdate240_60; i++) {
// bike->w += (tmp - bike->w) * 0.075f;
// }
//
// // b84
// sp6c += bike->w * 12;
// angle = hoverpropGetTurnAngle(&bike->base);
// sinangle = sinf(angle);
// cosangle = cosf(angle);
//
// if (speedforwards >= 0) {
// f2 = (0.1f + speedforwards) * 0.3f * g_Vars.lvupdate240freal;
// } else {
// f2 = (0.1f - speedforwards) * 0.3f * g_Vars.lvupdate240freal;
// }
//
// // c3c
// if (bike->rels[1] < speedforwards * 0.5f) {
// bike->rels[1] += f2;
//
// if (bike->rels[1] > speedforwards * 0.5f) {
// bike->rels[1] = speedforwards * 0.5f;
// }
// } else {
// bike->rels[1] -= f2;
//
// if (bike->rels[1] < speedforwards * 0.5f) {
// bike->rels[1] = speedforwards * 0.5f;
// }
// }
//
// prevleanspeed = bike->leanspeed;
// bike->leanspeed = speedforwards;
// bike->leandiff *= 0.93f;
// bike->leandiff += speedforwards - prevleanspeed;
//
// leanmult = bike->leandiff * 5;
//
// if (leanmult > 1.0f) {
// leanmult = 1.0f;
// } else if (leanmult < -1.0f) {
// leanmult = -1.0f;
// }
//
// // d14
// if (speedforwards >= 0) {
// if (leanmult > 0) {
// fVar7 = speedforwards * 0.3f + speedforwards * 0.7f * leanmult;
// } else {
// fVar7 = speedforwards * 0.3f;
// }
// } else {
// if (leanmult < 0) {
// fVar7 = speedforwards * 0.5f - speedforwards * 0.5f * leanmult;
// } else {
// fVar7 = speedforwards * 0.5f;
// }
// }
//
// // d84
// sp70 += fVar7 * 0.04f * M_BADTAU;
//
// if (speedsideways >= 0) {
// f2 = (0.1f + speedsideways) * 0.3f * g_Vars.lvupdate240freal;
// } else {
// f2 = (0.1f - speedsideways) * 0.3f * g_Vars.lvupdate240freal;
// }
//
// if (bike->rels[0] < speedsideways * 0.4f) {
// bike->rels[0] += f2;
//
// if (bike->rels[0] > speedsideways * 0.4f) {
// bike->rels[0] = speedsideways * 0.4f;
// }
// } else {
// bike->rels[0] -= f2;
//
// if (bike->rels[0] < speedsideways * 0.4f) {
// bike->rels[0] = speedsideways * 0.4f;
// }
// }
//
// sp68 += speedsideways * 0.2512874007225f;
//
// for (i = 0; i < g_Vars.lvupdate240_60; i++) {
// bike->speedabs[1] *= 0.97f;
// bike->speedabs[0] *= 0.97f;
// bike->speedabs[1] += bike->rels[1] * cosangle * 1.08f;
// bike->speedabs[0] += bike->rels[1] * sinangle * 1.08f;
// bike->speedabs[1] += bike->rels[0] * sinangle * 0.72f;
// bike->speedabs[0] += -bike->rels[0] * cosangle * 0.72f;
// }
//
// for (i = 0; i < g_Vars.lvupdate240_60; i++) {
// bike->exreal += (sp70 - bike->exreal) * 0.04f;
// bike->ezreal += (sp6c - bike->ezreal) * 0.15f;
// bike->ezreal2 += (sp68 - bike->ezreal2) * 0.04f;
// }
//
// if (speedforwards >= 0.99f) {
// bike->maxspeedtime240 += g_Vars.lvupdate240;
//
// if (bike->maxspeedtime240 > 2400) {
// bike->maxspeedtime240 = 2400;
// }
// } else if (bike->maxspeedtime240 > 0) {
// if (speedforwards >= 0.8f) {
// // empty
// } else if (speedforwards >= -0.1f) {
// bike->maxspeedtime240 -= g_Vars.lvupdate240;
//
// if (bike->maxspeedtime240 < 0) {
// bike->maxspeedtime240 = 0;
// }
// } else {
// bike->maxspeedtime240 = 0;
// }
// }
//
// bike->speedrel[1] = bike->maxspeedtime240 * 50000.0f / 2400000;
//
// bike->speed[1] = bike->speedabs[1] + bike->speedrel[0] * sinangle + bike->speedrel[1] * cosangle;
// bike->speed[0] = bike->speedabs[0] + bike->speedrel[1] * sinangle - bike->speedrel[0] * cosangle;
//
// if (bike->base.flags & OBJFLAG_HOVERBIKE_MOVINGWHILEEMPTY) {
// if (bike->speed[0] > 0.1f
// || bike->speed[1] > 0.1f
// || bike->w > 0.001f
// || bike->rels[0] > 0.001f
// || bike->rels[1] > 0.001f
// || bike->exreal > 0.001f
// || bike->ezreal > 0.001f
// || bike->ezreal2 > 0.001f
// || bike->leandiff > 0.1f
// || (bike->speed[0] < -0.1f)
// || (bike->speed[1] < -0.1f)
// || (bike->w < -0.001f)
// || (bike->rels[0] < -0.001f)
// || (bike->rels[1] < -0.001f)
// || (bike->exreal < -0.001f)
// || (bike->ezreal < -0.001f)
// || (bike->ezreal2 < -0.001f)
// || (bike->leandiff < -0.1f)) {
// // still moving
// } else {
// bike->speed[0] = 0;
// bike->speed[1] = 0;
// bike->w = 0;
// bike->rels[0] = 0;
// bike->rels[1] = 0;
// bike->exreal = 0;
// bike->ezreal = 0;
// bike->ezreal2 = 0;
// bike->leanspeed = 0;
// bike->leandiff = 0;
// bike->maxspeedtime240 = 0;
// bike->speedabs[0] = 0;
// bike->speedabs[1] = 0;
// bike->speedrel[0] = 0;
// bike->speedrel[1] = 0;
//
// if (1);
//
// bike->base.flags &= ~OBJFLAG_HOVERBIKE_MOVINGWHILEEMPTY;
// }
// }
//}
void platformDisplaceProps2(struct prop *platform, Mtxf *arg1)
{
struct prop *prop;
s16 *propnumptr;
s16 propnums[256];
u8 *sp9c;
u8 *sp98;
Mtxf sp58;
if (propUpdateGeometry(platform, &sp9c, &sp98)) {
roomGetProps(platform->rooms, propnums, 256);
propnumptr = propnums;
while (*propnumptr >= 0) {
prop = &g_Vars.props[*propnumptr];
if (prop->type == PROPTYPE_OBJ || prop->type == PROPTYPE_WEAPON) {
struct defaultobj *obj = prop->obj;
if (prop->pos.y > platform->pos.y
&& (obj->hidden & OBJHFLAG_00008000)
&& func000266a4(prop->pos.x, prop->pos.z, (struct geo *)sp9c)) {
mtx3ToMtx4(obj->realrot, &sp58);
mtx4SetTranslation(&prop->pos, &sp58);
mtx4MultMtx4InPlace(arg1, &sp58);
mtx4ToMtx3(&sp58, obj->realrot);
prop->pos.x = sp58.m[3][0];
prop->pos.y = sp58.m[3][1];
prop->pos.z = sp58.m[3][2];
propDeregisterRooms(prop);
func0f065e74(&platform->pos, platform->rooms, &prop->pos, prop->rooms);
func0f069c70(obj, true, true);
}
}
propnumptr++;
}
}
}
/**
* Tick a Slayer fly-by-wire rocket that's being controlled by a bot.
*/
bool rocketTickFbw(struct weaponobj *rocket)
{
bool ok;
f32 speed;
s32 i;
struct projectile *projectile = rocket->base.projectile;
struct prop *rocketprop = rocket->base.prop;
struct chrdata *ownerchr;
struct coord sp164;
struct coord sp158;
Mtxf sp118;
Mtxf spd8;
Mtxf sp98;
f32 xdist;
f32 ydist;
f32 zdist;
struct prop *targetprop;
f32 xrot;
f32 yrot;
struct coord newpos;
struct coord dir;
u32 stack[2];
s16 newrooms[8];
if (projectile->ownerprop && projectile->ownerprop->type == PROPTYPE_CHR) {
ownerchr = projectile->ownerprop->chr;
} else {
ownerchr = NULL;
}
// If close to the next step (ie. a waypoint)
// then advance to the one after that
xdist = projectile->nextsteppos.x - rocketprop->pos.x;
ydist = projectile->nextsteppos.y - rocketprop->pos.y;
zdist = projectile->nextsteppos.z - rocketprop->pos.z;
if (ownerchr && xdist * xdist + ydist * ydist + zdist * zdist < 100 * 100) {
projectile->step++;
if (projectile->numwaypads <= 0 || projectile->step >= projectile->numwaypads) {
targetprop = chrGetTargetProp(ownerchr);
if (!botactFindRocketRoute(ownerchr, &rocketprop->pos, &targetprop->pos, rocketprop->rooms, targetprop->rooms, projectile)) {
rocket->timer240 = 0;
}
} else {
botactGetRocketNextStepPos(projectile->waypads[projectile->step], &projectile->nextsteppos);
}
}
if (ownerchr) {
xrot = atan2f(xdist, zdist);
yrot = atan2f(ydist, sqrtf(xdist * xdist + zdist * zdist));
for (i = 0; i < g_Vars.lvupdate240; i++) {
projectile->unk018 = model0001afe8(projectile->unk018, xrot, PAL ? 0.02246f : 0.01875f);
projectile->unk014 = model0001afe8(projectile->unk014, yrot, PAL ? 0.02246f : 0.01875f);
}
mtx4LoadXRotation(M_BADTAU - projectile->unk014, &sp118);
mtx4LoadYRotation(projectile->unk018, &spd8);
mtx4MultMtx4(&spd8, &sp118, &sp98);
mtx00015f04(rocket->base.model->scale, &sp98);
mtx4ToMtx3(&sp98, rocket->base.realrot);
}
// Calculate new pos
dir.f[0] = sinf(projectile->unk018) * cosf(projectile->unk014);
dir.f[1] = sinf(projectile->unk014);
dir.f[2] = cosf(projectile->unk018) * cosf(projectile->unk014);
newpos.x = rocketprop->pos.x;
newpos.y = rocketprop->pos.y;
newpos.z = rocketprop->pos.z;
for (i = 0; i < g_Vars.lvupdate240_60; i++) {
projectile->unk010 += PAL ? 0.0021600001f : 0.0018f;
speed = projectile->unk010;
if (ownerchr && ownerchr->target == -1) {
speed = PAL ? 0.120000004f : 0.10f;
}
newpos.x += dir.x * speed;
newpos.y += dir.y * speed;
newpos.z += dir.z * speed;
}
// Check if new pos would collide with anything
if (projectile->ownerprop) {
propSetPerimEnabled(projectile->ownerprop, false);
}
ok = func0f06cd00(&rocket->base, &newpos, &sp164, &sp158);
if (projectile->ownerprop) {
propSetPerimEnabled(projectile->ownerprop, true);
}
if (ok == true) {
// Not colliding
func0f065e74(&rocketprop->pos, rocketprop->rooms, &newpos, newrooms);
rocketprop->pos.x = newpos.x;
rocketprop->pos.y = newpos.y;
rocketprop->pos.z = newpos.z;
propDeregisterRooms(rocketprop);
roomsCopy(newrooms, rocketprop->rooms);
func0f069c70(&rocket->base, true, true);
} else {
// Boom
rocket->timer240 = 0;
}
// Create smoke behind the rocket
if (projectile->smoketimer240 <= 0) {
projectile->smoketimer240 = TICKS(24);
smokeCreateSimple(&rocketprop->pos, rocketprop->rooms, SMOKETYPE_ROCKETTAIL);
} else {
projectile->smoketimer240 -= g_Vars.lvupdate240;
}
// Blow up rocket if it's gone too high
if (rocketprop->pos.y > 10000.0f) {
rocket->timer240 = 0;
}
// Check if close to an enemy
if (ownerchr && rocket->timer240) {
for (i = 0; i < g_MpNumChrs; i++) {
struct chrdata *chr = mpGetChrFromPlayerIndex(i);
if (chr != ownerchr
&& !chrIsDead(chr)
&& chrCompareTeams(ownerchr, chr, COMPARE_ENEMIES)
&& !botIsTargetInvisible(NULL, chr)) {
// Explode if within 250 units
xdist = rocketprop->pos.x - chr->prop->pos.x;
ydist = rocketprop->pos.y - chr->prop->pos.y;
zdist = rocketprop->pos.z - chr->prop->pos.z;
if (xdist * xdist + ydist * ydist + zdist * zdist < 250 * 250) {
rocket->timer240 = 0;
break;
}
// Check if rocket can fly directly to target
if (chrGetTargetProp(ownerchr) == chr->prop
&& mpPlayerGetIndex(ownerchr) == g_Vars.lvframenum % g_MpNumChrs
&& cdHasLineOfSight(&rocketprop->pos, rocketprop->rooms, &chr->prop->pos, chr->prop->rooms, CDTYPE_OBJS | CDTYPE_DOORS | CDTYPE_PATHBLOCKER | CDTYPE_BG | CDTYPE_AIOPAQUE, 8)) {
projectile->nextsteppos.x = chr->prop->pos.x;
projectile->nextsteppos.y = chr->prop->pos.y;
projectile->nextsteppos.z = chr->prop->pos.z;
projectile->numwaypads = 0;
}
}
}
}
// If target is lost for 8 seconds, explode
if (ownerchr && ownerchr->target == -1) {
projectile->numwaypads = 0;
projectile->losttimer240 += g_Vars.lvupdate240;
if (projectile->losttimer240 > 8 * TICKS(240)) {
rocket->timer240 = 0;
}
} else {
projectile->losttimer240 = 0;
}
// If bot is killed, rocket becomes uncontrolled
if (ownerchr && ((ownerchr->aibot && ownerchr->aibot->skrocket == NULL) || chrIsDead(ownerchr))) {
projectile->ownerprop = NULL;
}
return ok;
}
s32 func0f073ae8(struct defaultobj *obj, struct projectile *projectile, struct coord *arg2, struct coord *arg3)
{
s32 result;
struct prop *prop = obj->prop;
if (projectile->ownerprop) {
propSetPerimEnabled(projectile->ownerprop, false);
}
result = func0f06cd00(obj, &projectile->nextsteppos, arg2, arg3);
if (projectile->ownerprop) {
propSetPerimEnabled(projectile->ownerprop, true);
}
if (result == 1) {
s16 rooms[8];
func0f065e74(&prop->pos, prop->rooms, &projectile->nextsteppos, rooms);
prop->pos.x = projectile->nextsteppos.x;
prop->pos.y = projectile->nextsteppos.y;
prop->pos.z = projectile->nextsteppos.z;
propDeregisterRooms(prop);
roomsCopy(rooms, prop->rooms);
} else if (result != 1 && obj->type == OBJTYPE_WEAPON) {
struct weaponobj *weapon = (struct weaponobj *)obj;
s16 rooms[8];
if (weapon->weaponnum == WEAPON_ROCKET || weapon->weaponnum == WEAPON_HOMINGROCKET) {
weapon->timer240 = 0;
func0f065e74(&prop->pos, prop->rooms, arg2, rooms);
prop->pos.x = arg2->x;
prop->pos.y = arg2->y;
prop->pos.z = arg2->z;
propDeregisterRooms(prop);
roomsCopy(rooms, prop->rooms);
}
}
projectile->flags &= ~PROJECTILEFLAG_00000080;
return result;
}
const char var7f1a9fd0[] = "kkg";
const char var7f1a9fd4[] = "kkd";
const char var7f1a9fd8[] = "kkp";
#if VERSION >= VERSION_JPN_FINAL
GLOBAL_ASM(
glabel func0f073c6c
.late_rodata
glabel var7f1ab110jf
.word 0x3c23d70a
.word 0x3c23d70a
.word 0x38d1b717
.word 0x3c23d70a
.word 0x3c23d70a
.word 0x3c23d70a
.word 0xc6ea6000
.word 0xc69c4000
.word 0x3e8e38e4
.word 0x3c360b61
.word 0x3d8f5c29
.word 0x3e8e38e4
.word 0x3a83126f
.word 0xba83126f
.word 0x3e8e38e4
.word 0x3e0e38e4
.word 0x400e38e4
.word 0x46d9038c
.word 0x3dcccccd
.word 0xbdcccccd
.word 0xbdcccccd
.word 0x3f8ccccd
.word 0x3f666666
.word 0x3f666666
.word 0x3dcccccd
.word 0xbdcccccd
.text
/* f074d84: 27bdf9f8 */ addiu $sp,$sp,-1544
/* f074d88: 3c03800a */ lui $v1,0x800a
/* f074d8c: 2463a630 */ addiu $v1,$v1,-22992
/* f074d90: 8c6e0034 */ lw $t6,0x34($v1)
/* f074d94: afbf005c */ sw $ra,0x5c($sp)
/* f074d98: afb20058 */ sw $s2,0x58($sp)
/* f074d9c: afb10054 */ sw $s1,0x54($sp)
/* f074da0: afb00050 */ sw $s0,0x50($sp)
/* f074da4: f7b40048 */ sdc1 $f20,0x48($sp)
/* f074da8: afa5060c */ sw $a1,0x60c($sp)
/* f074dac: 8c900048 */ lw $s0,0x48($a0)
/* f074db0: afa005d8 */ sw $zero,0x5d8($sp)
/* f074db4: 00808825 */ move $s1,$a0
/* f074db8: 19c00c9e */ blez $t6,.JF0f078034
/* f074dbc: 8c920014 */ lw $s2,0x14($a0)
/* f074dc0: 908f0003 */ lbu $t7,0x3($a0)
/* f074dc4: 24010008 */ li $at,0x8
/* f074dc8: 55e1000a */ bnel $t7,$at,.JF0f074df4
/* f074dcc: 8e020000 */ lw $v0,0x0($s0)
/* f074dd0: 9098005c */ lbu $t8,0x5c($a0)
/* f074dd4: 24010058 */ li $at,0x58
/* f074dd8: 57010006 */ bnel $t8,$at,.JF0f074df4
/* f074ddc: 8e020000 */ lw $v0,0x0($s0)
/* f074de0: 0fc1d164 */ jal rocketTickFbw
/* f074de4: 00000000 */ nop
/* f074de8: 10000c92 */ b .JF0f078034
/* f074dec: afa205d8 */ sw $v0,0x5d8($sp)
/* f074df0: 8e020000 */ lw $v0,0x0($s0)
.JF0f074df4:
/* f074df4: 2401cfff */ li $at,-12289
/* f074df8: 30591000 */ andi $t9,$v0,0x1000
/* f074dfc: 13200006 */ beqz $t9,.JF0f074e18
/* f074e00: 30492000 */ andi $t1,$v0,0x2000
/* f074e04: 0009502b */ sltu $t2,$zero,$t1
/* f074e08: afaa05d8 */ sw $t2,0x5d8($sp)
/* f074e0c: 00415824 */ and $t3,$v0,$at
/* f074e10: 10000c88 */ b .JF0f078034
/* f074e14: ae0b0000 */ sw $t3,0x0($s0)
.JF0f074e18:
/* f074e18: 8e2c0040 */ lw $t4,0x40($s1)
/* f074e1c: 3c01fffd */ lui $at,0xfffd
/* f074e20: 3421ffff */ ori $at,$at,0xffff
/* f074e24: 01816824 */ and $t5,$t4,$at
/* f074e28: ae2d0040 */ sw $t5,0x40($s1)
/* f074e2c: 8e0e0000 */ lw $t6,0x0($s0)
/* f074e30: 02202025 */ move $a0,$s1
/* f074e34: 02002825 */ move $a1,$s0
/* f074e38: 31cf0080 */ andi $t7,$t6,0x80
/* f074e3c: 11e00005 */ beqz $t7,.JF0f074e54
/* f074e40: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f074e44: 0fc1d300 */ jal func0f073ae8
/* f074e48: 27a705f4 */ addiu $a3,$sp,0x5f4
/* f074e4c: 3c03800a */ lui $v1,0x800a
/* f074e50: 2463a630 */ addiu $v1,$v1,-22992
.JF0f074e54:
/* f074e54: c6440008 */ lwc1 $f4,0x8($s2)
/* f074e58: 2624001c */ addiu $a0,$s1,0x1c
/* f074e5c: 27a50504 */ addiu $a1,$sp,0x504
/* f074e60: e7a405dc */ swc1 $f4,0x5dc($sp)
/* f074e64: c646000c */ lwc1 $f6,0xc($s2)
/* f074e68: e7a605e0 */ swc1 $f6,0x5e0($sp)
/* f074e6c: c6480010 */ lwc1 $f8,0x10($s2)
/* f074e70: e7a805e4 */ swc1 $f8,0x5e4($sp)
/* f074e74: 8e0200b4 */ lw $v0,0xb4($s0)
/* f074e78: 58400005 */ blezl $v0,.JF0f074e90
/* f074e7c: 8e020000 */ lw $v0,0x0($s0)
/* f074e80: 8c780034 */ lw $t8,0x34($v1)
/* f074e84: 0058c823 */ subu $t9,$v0,$t8
/* f074e88: ae1900b4 */ sw $t9,0xb4($s0)
/* f074e8c: 8e020000 */ lw $v0,0x0($s0)
.JF0f074e90:
/* f074e90: 30490800 */ andi $t1,$v0,0x800
/* f074e94: 11200379 */ beqz $t1,.JF0f075c7c
/* f074e98: 304e0001 */ andi $t6,$v0,0x1
/* f074e9c: 0c00573d */ jal mtx3ToMtx4
/* f074ea0: afa40074 */ sw $a0,0x74($sp)
/* f074ea4: 26440008 */ addiu $a0,$s2,0x8
/* f074ea8: afa40070 */ sw $a0,0x70($sp)
/* f074eac: 0c00575d */ jal mtx4SetTranslation
/* f074eb0: 27a50504 */ addiu $a1,$sp,0x504
/* f074eb4: 4480a000 */ mtc1 $zero,$f20
/* f074eb8: c60000dc */ lwc1 $f0,0xdc($s0)
/* f074ebc: 3c01800a */ lui $at,0x800a
/* f074ec0: 4600a03c */ c.lt.s $f20,$f0
/* f074ec4: 00000000 */ nop
/* f074ec8: 4502002c */ bc1fl .JF0f074f7c
/* f074ecc: 4614003c */ c.lt.s $f0,$f20
/* f074ed0: c60a00e0 */ lwc1 $f10,0xe0($s0)
/* f074ed4: c424a67c */ lwc1 $f4,-0x5984($at)
/* f074ed8: 3c013f80 */ lui $at,0x3f80
/* f074edc: 46045182 */ mul.s $f6,$f10,$f4
/* f074ee0: 46060201 */ sub.s $f8,$f0,$f6
/* f074ee4: e60800dc */ swc1 $f8,0xdc($s0)
/* f074ee8: c60a00dc */ lwc1 $f10,0xdc($s0)
/* f074eec: 4614503c */ c.lt.s $f10,$f20
/* f074ef0: 00000000 */ nop
/* f074ef4: 45020004 */ bc1fl .JF0f074f08
/* f074ef8: c61000e4 */ lwc1 $f16,0xe4($s0)
/* f074efc: 1000004b */ b .JF0f07502c
/* f074f00: e61400dc */ swc1 $f20,0xdc($s0)
/* f074f04: c61000e4 */ lwc1 $f16,0xe4($s0)
.JF0f074f08:
/* f074f08: 44812000 */ mtc1 $at,$f4
/* f074f0c: 3c03800a */ lui $v1,0x800a
/* f074f10: 4604803c */ c.lt.s $f16,$f4
/* f074f14: 00000000 */ nop
/* f074f18: 45020045 */ bc1fl .JF0f075030
/* f074f1c: c60e0004 */ lwc1 $f14,0x4($s0)
/* f074f20: 8c63a668 */ lw $v1,-0x5998($v1)
/* f074f24: 00001025 */ move $v0,$zero
/* f074f28: 58600041 */ blezl $v1,.JF0f075030
/* f074f2c: c60e0004 */ lwc1 $f14,0x4($s0)
/* f074f30: c60200ec */ lwc1 $f2,0xec($s0)
/* f074f34: c60000dc */ lwc1 $f0,0xdc($s0)
.JF0f074f38:
/* f074f38: 24420001 */ addiu $v0,$v0,0x1
/* f074f3c: 4600103c */ c.lt.s $f2,$f0
/* f074f40: 00000000 */ nop
/* f074f44: 45020008 */ bc1fl .JF0f074f68
/* f074f48: 0043082a */ slt $at,$v0,$v1
/* f074f4c: 46020181 */ sub.s $f6,$f0,$f2
/* f074f50: 3c03800a */ lui $v1,0x800a
/* f074f54: 46103202 */ mul.s $f8,$f6,$f16
/* f074f58: 46081280 */ add.s $f10,$f2,$f8
/* f074f5c: e60a00dc */ swc1 $f10,0xdc($s0)
/* f074f60: 8c63a668 */ lw $v1,-0x5998($v1)
/* f074f64: 0043082a */ slt $at,$v0,$v1
.JF0f074f68:
/* f074f68: 5420fff3 */ bnezl $at,.JF0f074f38
/* f074f6c: c60000dc */ lwc1 $f0,0xdc($s0)
/* f074f70: 1000002f */ b .JF0f075030
/* f074f74: c60e0004 */ lwc1 $f14,0x4($s0)
/* f074f78: 4614003c */ c.lt.s $f0,$f20
.JF0f074f7c:
/* f074f7c: 3c04800a */ lui $a0,0x800a
/* f074f80: 2484a630 */ addiu $a0,$a0,-22992
/* f074f84: 4502002a */ bc1fl .JF0f075030
/* f074f88: c60e0004 */ lwc1 $f14,0x4($s0)
/* f074f8c: c60400e0 */ lwc1 $f4,0xe0($s0)
/* f074f90: c486004c */ lwc1 $f6,0x4c($a0)
/* f074f94: 3c013f80 */ lui $at,0x3f80
/* f074f98: 46062202 */ mul.s $f8,$f4,$f6
/* f074f9c: 46080280 */ add.s $f10,$f0,$f8
/* f074fa0: e60a00dc */ swc1 $f10,0xdc($s0)
/* f074fa4: c60400dc */ lwc1 $f4,0xdc($s0)
/* f074fa8: 4604a03c */ c.lt.s $f20,$f4
/* f074fac: 00000000 */ nop
/* f074fb0: 45020004 */ bc1fl .JF0f074fc4
/* f074fb4: c61000e4 */ lwc1 $f16,0xe4($s0)
/* f074fb8: 1000001c */ b .JF0f07502c
/* f074fbc: e61400dc */ swc1 $f20,0xdc($s0)
/* f074fc0: c61000e4 */ lwc1 $f16,0xe4($s0)
.JF0f074fc4:
/* f074fc4: 44813000 */ mtc1 $at,$f6
/* f074fc8: 00000000 */ nop
/* f074fcc: 4606803c */ c.lt.s $f16,$f6
/* f074fd0: 00000000 */ nop
/* f074fd4: 45020016 */ bc1fl .JF0f075030
/* f074fd8: c60e0004 */ lwc1 $f14,0x4($s0)
/* f074fdc: 8c830038 */ lw $v1,0x38($a0)
/* f074fe0: 00001025 */ move $v0,$zero
/* f074fe4: 58600012 */ blezl $v1,.JF0f075030
/* f074fe8: c60e0004 */ lwc1 $f14,0x4($s0)
/* f074fec: c60200ec */ lwc1 $f2,0xec($s0)
/* f074ff0: 46001307 */ neg.s $f12,$f2
/* f074ff4: c60000dc */ lwc1 $f0,0xdc($s0)
.JF0f074ff8:
/* f074ff8: 24420001 */ addiu $v0,$v0,0x1
/* f074ffc: 460c003c */ c.lt.s $f0,$f12
/* f075000: 00000000 */ nop
/* f075004: 45020007 */ bc1fl .JF0f075024
/* f075008: 0043082a */ slt $at,$v0,$v1
/* f07500c: 46020200 */ add.s $f8,$f0,$f2
/* f075010: 46104282 */ mul.s $f10,$f8,$f16
/* f075014: 460a6100 */ add.s $f4,$f12,$f10
/* f075018: e60400dc */ swc1 $f4,0xdc($s0)
/* f07501c: 8c830038 */ lw $v1,0x38($a0)
/* f075020: 0043082a */ slt $at,$v0,$v1
.JF0f075024:
/* f075024: 5420fff4 */ bnezl $at,.JF0f074ff8
/* f075028: c60000dc */ lwc1 $f0,0xdc($s0)
.JF0f07502c:
/* f07502c: c60e0004 */ lwc1 $f14,0x4($s0)
.JF0f075030:
/* f075030: 460ea032 */ c.eq.s $f20,$f14
/* f075034: 00000000 */ nop
/* f075038: 45020007 */ bc1fl .JF0f075058
/* f07503c: c6080098 */ lwc1 $f8,0x98($s0)
/* f075040: c606000c */ lwc1 $f6,0xc($s0)
/* f075044: 4606a032 */ c.eq.s $f20,$f6
/* f075048: 00000000 */ nop
/* f07504c: 45030061 */ bc1tl .JF0f0751d4
/* f075050: 8e040088 */ lw $a0,0x88($s0)
/* f075054: c6080098 */ lwc1 $f8,0x98($s0)
.JF0f075058:
/* f075058: 4608a03c */ c.lt.s $f20,$f8
/* f07505c: 00000000 */ nop
/* f075060: 4502005c */ bc1fl .JF0f0751d4
/* f075064: 8e040088 */ lw $a0,0x88($s0)
/* f075068: c602000c */ lwc1 $f2,0xc($s0)
/* f07506c: 46021282 */ mul.s $f10,$f2,$f2
/* f075070: 00000000 */ nop
/* f075074: 460e7102 */ mul.s $f4,$f14,$f14
/* f075078: 0c012838 */ jal sqrtf
/* f07507c: 46045300 */ add.s $f12,$f10,$f4
/* f075080: 4600a03c */ c.lt.s $f20,$f0
/* f075084: 3c03800a */ lui $v1,0x800a
/* f075088: 2463a630 */ addiu $v1,$v1,-22992
/* f07508c: 4502004f */ bc1fl .JF0f0751cc
/* f075090: e6140004 */ swc1 $f20,0x4($s0)
/* f075094: c6060098 */ lwc1 $f6,0x98($s0)
/* f075098: c468004c */ lwc1 $f8,0x4c($v1)
/* f07509c: 3c013f80 */ lui $at,0x3f80
/* f0750a0: 44812000 */ mtc1 $at,$f4
/* f0750a4: 46083282 */ mul.s $f10,$f6,$f8
/* f0750a8: 46005303 */ div.s $f12,$f10,$f0
/* f0750ac: 460c203e */ c.le.s $f4,$f12
/* f0750b0: 00000000 */ nop
/* f0750b4: 45020005 */ bc1fl .JF0f0750cc
/* f0750b8: c60e0004 */ lwc1 $f14,0x4($s0)
/* f0750bc: e6140004 */ swc1 $f20,0x4($s0)
/* f0750c0: 10000043 */ b .JF0f0751d0
/* f0750c4: e614000c */ swc1 $f20,0xc($s0)
/* f0750c8: c60e0004 */ lwc1 $f14,0x4($s0)
.JF0f0750cc:
/* f0750cc: c602000c */ lwc1 $f2,0xc($s0)
/* f0750d0: 3c013f80 */ lui $at,0x3f80
/* f0750d4: 460c7182 */ mul.s $f6,$f14,$f12
/* f0750d8: c61000e4 */ lwc1 $f16,0xe4($s0)
/* f0750dc: 460c1282 */ mul.s $f10,$f2,$f12
/* f0750e0: 46067201 */ sub.s $f8,$f14,$f6
/* f0750e4: 44813000 */ mtc1 $at,$f6
/* f0750e8: 460a1101 */ sub.s $f4,$f2,$f10
/* f0750ec: e6080004 */ swc1 $f8,0x4($s0)
/* f0750f0: 4606803c */ c.lt.s $f16,$f6
/* f0750f4: e604000c */ swc1 $f4,0xc($s0)
/* f0750f8: 45020036 */ bc1fl .JF0f0751d4
/* f0750fc: 8e040088 */ lw $a0,0x88($s0)
/* f075100: 8c6a0038 */ lw $t2,0x38($v1)
/* f075104: 00001025 */ move $v0,$zero
/* f075108: 59400032 */ blezl $t2,.JF0f0751d4
/* f07510c: 8e040088 */ lw $a0,0x88($s0)
/* f075110: c60c00f0 */ lwc1 $f12,0xf0($s0)
/* f075114: c60e0004 */ lwc1 $f14,0x4($s0)
.JF0f075118:
/* f075118: 460e603c */ c.lt.s $f12,$f14
/* f07511c: 00000000 */ nop
/* f075120: 45020007 */ bc1fl .JF0f075140
/* f075124: 46006007 */ neg.s $f0,$f12
/* f075128: 460c7201 */ sub.s $f8,$f14,$f12
/* f07512c: 46104282 */ mul.s $f10,$f8,$f16
/* f075130: 460c5100 */ add.s $f4,$f10,$f12
/* f075134: 1000000a */ b .JF0f075160
/* f075138: e6040004 */ swc1 $f4,0x4($s0)
/* f07513c: 46006007 */ neg.s $f0,$f12
.JF0f075140:
/* f075140: 4600703c */ c.lt.s $f14,$f0
/* f075144: 00000000 */ nop
/* f075148: 45020006 */ bc1fl .JF0f075164
/* f07514c: c602000c */ lwc1 $f2,0xc($s0)
/* f075150: 460c7180 */ add.s $f6,$f14,$f12
/* f075154: 46103202 */ mul.s $f8,$f6,$f16
/* f075158: 46004280 */ add.s $f10,$f8,$f0
/* f07515c: e60a0004 */ swc1 $f10,0x4($s0)
.JF0f075160:
/* f075160: c602000c */ lwc1 $f2,0xc($s0)
.JF0f075164:
/* f075164: 4602603c */ c.lt.s $f12,$f2
/* f075168: 00000000 */ nop
/* f07516c: 45020007 */ bc1fl .JF0f07518c
/* f075170: 46006007 */ neg.s $f0,$f12
/* f075174: 460c1101 */ sub.s $f4,$f2,$f12
/* f075178: 46102182 */ mul.s $f6,$f4,$f16
/* f07517c: 460c3200 */ add.s $f8,$f6,$f12
/* f075180: 1000000a */ b .JF0f0751ac
/* f075184: e608000c */ swc1 $f8,0xc($s0)
/* f075188: 46006007 */ neg.s $f0,$f12
.JF0f07518c:
/* f07518c: 4600103c */ c.lt.s $f2,$f0
/* f075190: 00000000 */ nop
/* f075194: 45020006 */ bc1fl .JF0f0751b0
/* f075198: 8c6b0038 */ lw $t3,0x38($v1)
/* f07519c: 460c1280 */ add.s $f10,$f2,$f12
/* f0751a0: 46105102 */ mul.s $f4,$f10,$f16
/* f0751a4: 46002180 */ add.s $f6,$f4,$f0
/* f0751a8: e606000c */ swc1 $f6,0xc($s0)
.JF0f0751ac:
/* f0751ac: 8c6b0038 */ lw $t3,0x38($v1)
.JF0f0751b0:
/* f0751b0: 24420001 */ addiu $v0,$v0,0x1
/* f0751b4: 004b082a */ slt $at,$v0,$t3
/* f0751b8: 5420ffd7 */ bnezl $at,.JF0f075118
/* f0751bc: c60e0004 */ lwc1 $f14,0x4($s0)
/* f0751c0: 10000004 */ b .JF0f0751d4
/* f0751c4: 8e040088 */ lw $a0,0x88($s0)
/* f0751c8: e6140004 */ swc1 $f20,0x4($s0)
.JF0f0751cc:
/* f0751cc: e614000c */ swc1 $f20,0xc($s0)
.JF0f0751d0:
/* f0751d0: 8e040088 */ lw $a0,0x88($s0)
.JF0f0751d4:
/* f0751d4: 50800004 */ beqzl $a0,.JF0f0751e8
/* f0751d8: 86240006 */ lh $a0,0x6($s1)
/* f0751dc: 0fc194a6 */ jal propSetPerimEnabled
/* f0751e0: 00002825 */ move $a1,$zero
/* f0751e4: 86240006 */ lh $a0,0x6($s1)
.JF0f0751e8:
/* f0751e8: 288c0000 */ slti $t4,$a0,0x0
/* f0751ec: 398c0001 */ xori $t4,$t4,0x1
/* f0751f0: 11800007 */ beqz $t4,.JF0f075210
/* f0751f4: afac0088 */ sw $t4,0x88($sp)
/* f0751f8: 8e2e0010 */ lw $t6,0x10($s1)
/* f0751fc: 3c010100 */ lui $at,0x100
/* f075200: 34210002 */ ori $at,$at,0x2
/* f075204: 01c17824 */ and $t7,$t6,$at
/* f075208: 2df80001 */ sltiu $t8,$t7,0x1
/* f07520c: afb80088 */ sw $t8,0x88($sp)
.JF0f075210:
/* f075210: 8fb90088 */ lw $t9,0x88($sp)
/* f075214: 1320003b */ beqz $t9,.JF0f075304
/* f075218: 24050002 */ li $a1,0x2
/* f07521c: 0fc45798 */ jal padUnpack
/* f075220: 27a60430 */ addiu $a2,$sp,0x430
/* f075224: 3c014348 */ lui $at,0x4348
/* f075228: 44811000 */ mtc1 $at,$f2
/* f07522c: 8e290010 */ lw $t1,0x10($s1)
/* f075230: 3c014396 */ lui $at,0x4396
/* f075234: 44816000 */ mtc1 $at,$f12
/* f075238: 00095200 */ sll $t2,$t1,0x8
/* f07523c: 46001406 */ mov.s $f16,$f2
/* f075240: 05410006 */ bgez $t2,.JF0f07525c
/* f075244: 46006386 */ mov.s $f14,$f12
/* f075248: 3c01442f */ lui $at,0x442f
/* f07524c: 44810000 */ mtc1 $at,$f0
/* f075250: 00000000 */ nop
/* f075254: 46001400 */ add.s $f16,$f2,$f0
/* f075258: 46006380 */ add.s $f14,$f12,$f0
.JF0f07525c:
/* f07525c: 862b0004 */ lh $t3,0x4($s1)
/* f075260: 240101a8 */ li $at,0x1a8
/* f075264: c7aa0430 */ lwc1 $f10,0x430($sp)
/* f075268: 15610006 */ bne $t3,$at,.JF0f075284
/* f07526c: 3c0141a0 */ lui $at,0x41a0
/* f075270: 44810000 */ mtc1 $at,$f0
/* f075274: 3c014248 */ lui $at,0x4248
/* f075278: 44814000 */ mtc1 $at,$f8
/* f07527c: 46007380 */ add.s $f14,$f14,$f0
/* f075280: 46088400 */ add.s $f16,$f16,$f8
.JF0f075284:
/* f075284: c6440008 */ lwc1 $f4,0x8($s2)
/* f075288: c7a60438 */ lwc1 $f6,0x438($sp)
/* f07528c: c6480010 */ lwc1 $f8,0x10($s2)
/* f075290: 46045001 */ sub.s $f0,$f10,$f4
/* f075294: e7b0041c */ swc1 $f16,0x41c($sp)
/* f075298: e7ae0418 */ swc1 $f14,0x418($sp)
/* f07529c: 46083081 */ sub.s $f2,$f6,$f8
/* f0752a0: 46000282 */ mul.s $f10,$f0,$f0
/* f0752a4: 00000000 */ nop
/* f0752a8: 46021102 */ mul.s $f4,$f2,$f2
/* f0752ac: 0c012838 */ jal sqrtf
/* f0752b0: 46045300 */ add.s $f12,$f10,$f4
/* f0752b4: c7a60418 */ lwc1 $f6,0x418($sp)
/* f0752b8: c7a8041c */ lwc1 $f8,0x41c($sp)
/* f0752bc: 4600303c */ c.lt.s $f6,$f0
/* f0752c0: 00000000 */ nop
/* f0752c4: 45020004 */ bc1fl .JF0f0752d8
/* f0752c8: 4600403c */ c.lt.s $f8,$f0
/* f0752cc: 1000000d */ b .JF0f075304
/* f0752d0: e61400dc */ swc1 $f20,0xdc($s0)
/* f0752d4: 4600403c */ c.lt.s $f8,$f0
.JF0f0752d8:
/* f0752d8: c7aa0418 */ lwc1 $f10,0x418($sp)
/* f0752dc: 3c017f1b */ lui $at,0x7f1b
/* f0752e0: 45000008 */ bc1f .JF0f075304
/* f0752e4: 00000000 */ nop
/* f0752e8: 46005101 */ sub.s $f4,$f10,$f0
/* f0752ec: c426b110 */ lwc1 $f6,-0x4ef0($at)
/* f0752f0: c60a00dc */ lwc1 $f10,0xdc($s0)
/* f0752f4: 46062202 */ mul.s $f8,$f4,$f6
/* f0752f8: 00000000 */ nop
/* f0752fc: 46085102 */ mul.s $f4,$f10,$f8
/* f075300: e60400dc */ swc1 $f4,0xdc($s0)
.JF0f075304:
/* f075304: 3c01800a */ lui $at,0x800a
/* f075308: c42aa67c */ lwc1 $f10,-0x5984($at)
/* f07530c: c60600dc */ lwc1 $f6,0xdc($s0)
/* f075310: 460a3002 */ mul.s $f0,$f6,$f10
/* f075314: 46140032 */ c.eq.s $f0,$f20
/* f075318: 00000000 */ nop
/* f07531c: 4501001c */ bc1t .JF0f075390
/* f075320: 3c0c8007 */ lui $t4,0x8007
/* f075324: 258c9ad8 */ addiu $t4,$t4,-25896
/* f075328: 8d810000 */ lw $at,0x0($t4)
/* f07532c: 27a50404 */ addiu $a1,$sp,0x404
/* f075330: 44060000 */ mfc1 $a2,$f0
/* f075334: aca10000 */ sw $at,0x0($a1)
/* f075338: 8d8e0004 */ lw $t6,0x4($t4)
/* f07533c: 02202025 */ move $a0,$s1
/* f075340: 24070001 */ li $a3,0x1
/* f075344: acae0004 */ sw $t6,0x4($a1)
/* f075348: 8d810008 */ lw $at,0x8($t4)
/* f07534c: aca10008 */ sw $at,0x8($a1)
/* f075350: 0fc1cc97 */ jal func0f072144
/* f075354: e7a005a8 */ swc1 $f0,0x5a8($sp)
/* f075358: 2401ffff */ li $at,-1
/* f07535c: 1041000c */ beq $v0,$at,.JF0f075390
/* f075360: c7a005a8 */ lwc1 $f0,0x5a8($sp)
/* f075364: 1440000a */ bnez $v0,.JF0f075390
/* f075368: 00000000 */ nop
/* f07536c: c60800dc */ lwc1 $f8,0xdc($s0)
/* f075370: c606008c */ lwc1 $f6,0x8c($s0)
/* f075374: 44060000 */ mfc1 $a2,$f0
/* f075378: 46004107 */ neg.s $f4,$f8
/* f07537c: 02202025 */ move $a0,$s1
/* f075380: 46062282 */ mul.s $f10,$f4,$f6
/* f075384: 27a50404 */ addiu $a1,$sp,0x404
/* f075388: 0fc1ce3b */ jal objCollide
/* f07538c: e60a00dc */ swc1 $f10,0xdc($s0)
.JF0f075390:
/* f075390: 3c01800a */ lui $at,0x800a
/* f075394: c422a67c */ lwc1 $f2,-0x5984($at)
/* f075398: c6080004 */ lwc1 $f8,0x4($s0)
/* f07539c: e7b405a0 */ swc1 $f20,0x5a0($sp)
/* f0753a0: 8faf0088 */ lw $t7,0x88($sp)
/* f0753a4: 46024102 */ mul.s $f4,$f8,$f2
/* f0753a8: e7a4059c */ swc1 $f4,0x59c($sp)
/* f0753ac: c606000c */ lwc1 $f6,0xc($s0)
/* f0753b0: 46023282 */ mul.s $f10,$f6,$f2
/* f0753b4: 11e00031 */ beqz $t7,.JF0f07547c
/* f0753b8: e7aa05a4 */ swc1 $f10,0x5a4($sp)
/* f0753bc: c7a80430 */ lwc1 $f8,0x430($sp)
/* f0753c0: c6440008 */ lwc1 $f4,0x8($s2)
/* f0753c4: c7aa059c */ lwc1 $f10,0x59c($sp)
/* f0753c8: 46044181 */ sub.s $f6,$f8,$f4
/* f0753cc: c6440010 */ lwc1 $f4,0x10($s2)
/* f0753d0: c7a80438 */ lwc1 $f8,0x438($sp)
/* f0753d4: 460a3001 */ sub.s $f0,$f6,$f10
/* f0753d8: c7aa05a4 */ lwc1 $f10,0x5a4($sp)
/* f0753dc: 46044181 */ sub.s $f6,$f8,$f4
/* f0753e0: 46000202 */ mul.s $f8,$f0,$f0
/* f0753e4: 460a3081 */ sub.s $f2,$f6,$f10
/* f0753e8: 46021102 */ mul.s $f4,$f2,$f2
/* f0753ec: 0c012838 */ jal sqrtf
/* f0753f0: 46044300 */ add.s $f12,$f8,$f4
/* f0753f4: c7ac0418 */ lwc1 $f12,0x418($sp)
/* f0753f8: c7a6041c */ lwc1 $f6,0x41c($sp)
/* f0753fc: 4600603c */ c.lt.s $f12,$f0
/* f075400: 00000000 */ nop
/* f075404: 45020009 */ bc1fl .JF0f07542c
/* f075408: 4600303c */ c.lt.s $f6,$f0
/* f07540c: e7b405a4 */ swc1 $f20,0x5a4($sp)
/* f075410: c7a005a4 */ lwc1 $f0,0x5a4($sp)
/* f075414: e7a0059c */ swc1 $f0,0x59c($sp)
/* f075418: e6000004 */ swc1 $f0,0x4($s0)
/* f07541c: e600000c */ swc1 $f0,0xc($s0)
/* f075420: 10000016 */ b .JF0f07547c
/* f075424: e60000dc */ swc1 $f0,0xdc($s0)
/* f075428: 4600303c */ c.lt.s $f6,$f0
.JF0f07542c:
/* f07542c: 3c017f1b */ lui $at,0x7f1b
/* f075430: 45020013 */ bc1fl .JF0f075480
/* f075434: 4406a000 */ mfc1 $a2,$f20
/* f075438: 46006281 */ sub.s $f10,$f12,$f0
/* f07543c: c428b114 */ lwc1 $f8,-0x4eec($at)
/* f075440: c6040004 */ lwc1 $f4,0x4($s0)
/* f075444: 46085082 */ mul.s $f2,$f10,$f8
/* f075448: c60a000c */ lwc1 $f10,0xc($s0)
/* f07544c: 46022182 */ mul.s $f6,$f4,$f2
/* f075450: 00000000 */ nop
/* f075454: 46025202 */ mul.s $f8,$f10,$f2
/* f075458: e6060004 */ swc1 $f6,0x4($s0)
/* f07545c: e608000c */ swc1 $f8,0xc($s0)
/* f075460: c7a4059c */ lwc1 $f4,0x59c($sp)
/* f075464: c7aa05a4 */ lwc1 $f10,0x5a4($sp)
/* f075468: 46022182 */ mul.s $f6,$f4,$f2
/* f07546c: 00000000 */ nop
/* f075470: 46025202 */ mul.s $f8,$f10,$f2
/* f075474: e7a6059c */ swc1 $f6,0x59c($sp)
/* f075478: e7a805a4 */ swc1 $f8,0x5a4($sp)
.JF0f07547c:
/* f07547c: 4406a000 */ mfc1 $a2,$f20
.JF0f075480:
/* f075480: 02202025 */ move $a0,$s1
/* f075484: 27a5059c */ addiu $a1,$sp,0x59c
/* f075488: 0fc1cc97 */ jal func0f072144
/* f07548c: 24070001 */ li $a3,0x1
/* f075490: 144001ae */ bnez $v0,.JF0f075b4c
/* f075494: afa20600 */ sw $v0,0x600($sp)
/* f075498: 4406a000 */ mfc1 $a2,$f20
/* f07549c: 02202025 */ move $a0,$s1
/* f0754a0: 0fc1ce3b */ jal objCollide
/* f0754a4: 27a5059c */ addiu $a1,$sp,0x59c
/* f0754a8: c604008c */ lwc1 $f4,0x8c($s0)
/* f0754ac: 27a403d0 */ addiu $a0,$sp,0x3d0
/* f0754b0: 27a503c4 */ addiu $a1,$sp,0x3c4
/* f0754b4: 46040402 */ mul.s $f16,$f0,$f4
/* f0754b8: 4610a03c */ c.lt.s $f20,$f16
/* f0754bc: 00000000 */ nop
/* f0754c0: 450201a3 */ bc1fl .JF0f075b50
/* f0754c4: 8fab0600 */ lw $t3,0x600($sp)
/* f0754c8: 0c00939d */ jal cd00025364
/* f0754cc: e7b0058c */ swc1 $f16,0x58c($sp)
/* f0754d0: 1040000e */ beqz $v0,.JF0f07550c
/* f0754d4: c7b0058c */ lwc1 $f16,0x58c($sp)
/* f0754d8: c7a603c4 */ lwc1 $f6,0x3c4($sp)
/* f0754dc: c7aa03d0 */ lwc1 $f10,0x3d0($sp)
/* f0754e0: c7a403c8 */ lwc1 $f4,0x3c8($sp)
/* f0754e4: 460a3201 */ sub.s $f8,$f6,$f10
/* f0754e8: c7a603d4 */ lwc1 $f6,0x3d4($sp)
/* f0754ec: 46062281 */ sub.s $f10,$f4,$f6
/* f0754f0: e7a803c4 */ swc1 $f8,0x3c4($sp)
/* f0754f4: c7a803cc */ lwc1 $f8,0x3cc($sp)
/* f0754f8: c7a403d8 */ lwc1 $f4,0x3d8($sp)
/* f0754fc: e7aa03c8 */ swc1 $f10,0x3c8($sp)
/* f075500: 46044181 */ sub.s $f6,$f8,$f4
/* f075504: 10000020 */ b .JF0f075588
/* f075508: e7a603cc */ swc1 $f6,0x3cc($sp)
.JF0f07550c:
/* f07550c: 3c077f1b */ lui $a3,0x7f1b
/* f075510: 24e7ace0 */ addiu $a3,$a3,-21280
/* f075514: 27a403d0 */ addiu $a0,$sp,0x3d0
/* f075518: 27a503c4 */ addiu $a1,$sp,0x3c4
/* f07551c: 240620a8 */ li $a2,0x20a8
/* f075520: 0c009257 */ jal cd00024e4c
/* f075524: e7b0058c */ swc1 $f16,0x58c($sp)
/* f075528: c7aa03d0 */ lwc1 $f10,0x3d0($sp)
/* f07552c: c7a803c4 */ lwc1 $f8,0x3c4($sp)
/* f075530: c7a603d4 */ lwc1 $f6,0x3d4($sp)
/* f075534: c7b0058c */ lwc1 $f16,0x58c($sp)
/* f075538: 46085101 */ sub.s $f4,$f10,$f8
/* f07553c: c7aa03c8 */ lwc1 $f10,0x3c8($sp)
/* f075540: 460a3201 */ sub.s $f8,$f6,$f10
/* f075544: e7a403d0 */ swc1 $f4,0x3d0($sp)
/* f075548: c7a403d8 */ lwc1 $f4,0x3d8($sp)
/* f07554c: c7a603cc */ lwc1 $f6,0x3cc($sp)
/* f075550: e7a803d4 */ swc1 $f8,0x3d4($sp)
/* f075554: e7a803c8 */ swc1 $f8,0x3c8($sp)
/* f075558: 46062281 */ sub.s $f10,$f4,$f6
/* f07555c: c7a603d0 */ lwc1 $f6,0x3d0($sp)
/* f075560: 46005107 */ neg.s $f4,$f10
/* f075564: e7aa03d8 */ swc1 $f10,0x3d8($sp)
/* f075568: e7a403c4 */ swc1 $f4,0x3c4($sp)
/* f07556c: e7a603cc */ swc1 $f6,0x3cc($sp)
/* f075570: c64a0008 */ lwc1 $f10,0x8($s2)
/* f075574: e7aa03d0 */ swc1 $f10,0x3d0($sp)
/* f075578: c644000c */ lwc1 $f4,0xc($s2)
/* f07557c: e7a403d4 */ swc1 $f4,0x3d4($sp)
/* f075580: c6480010 */ lwc1 $f8,0x10($s2)
/* f075584: e7a803d8 */ swc1 $f8,0x3d8($sp)
.JF0f075588:
/* f075588: 27a403d0 */ addiu $a0,$sp,0x3d0
/* f07558c: 27a503c4 */ addiu $a1,$sp,0x3c4
/* f075590: 27a603b8 */ addiu $a2,$sp,0x3b8
/* f075594: 0fc0bdbe */ jal func0f02e4f8
/* f075598: e7b0058c */ swc1 $f16,0x58c($sp)
/* f07559c: c6460008 */ lwc1 $f6,0x8($s2)
/* f0755a0: c7aa05dc */ lwc1 $f10,0x5dc($sp)
/* f0755a4: e7b403b0 */ swc1 $f20,0x3b0($sp)
/* f0755a8: 3c017f1b */ lui $at,0x7f1b
/* f0755ac: 460a3101 */ sub.s $f4,$f6,$f10
/* f0755b0: c7a605e4 */ lwc1 $f6,0x5e4($sp)
/* f0755b4: c7b0058c */ lwc1 $f16,0x58c($sp)
/* f0755b8: e7a403ac */ swc1 $f4,0x3ac($sp)
/* f0755bc: c6480010 */ lwc1 $f8,0x10($s2)
/* f0755c0: c7a403b8 */ lwc1 $f4,0x3b8($sp)
/* f0755c4: 46064281 */ sub.s $f10,$f8,$f6
/* f0755c8: e7aa03b4 */ swc1 $f10,0x3b4($sp)
/* f0755cc: c6480008 */ lwc1 $f8,0x8($s2)
/* f0755d0: c7aa03c0 */ lwc1 $f10,0x3c0($sp)
/* f0755d4: 46082181 */ sub.s $f6,$f4,$f8
/* f0755d8: e7a603b8 */ swc1 $f6,0x3b8($sp)
/* f0755dc: c6440010 */ lwc1 $f4,0x10($s2)
/* f0755e0: 46045201 */ sub.s $f8,$f10,$f4
/* f0755e4: c7aa03ac */ lwc1 $f10,0x3ac($sp)
/* f0755e8: 46085102 */ mul.s $f4,$f10,$f8
/* f0755ec: e7a803c0 */ swc1 $f8,0x3c0($sp)
/* f0755f0: c7a803b4 */ lwc1 $f8,0x3b4($sp)
/* f0755f4: 46003287 */ neg.s $f10,$f6
/* f0755f8: c60200ec */ lwc1 $f2,0xec($s0)
/* f0755fc: 46085182 */ mul.s $f6,$f10,$f8
/* f075600: c428b118 */ lwc1 $f8,-0x4ee8($at)
/* f075604: 46062280 */ add.s $f10,$f4,$f6
/* f075608: 46085382 */ mul.s $f14,$f10,$f8
/* f07560c: 460e103c */ c.lt.s $f2,$f14
/* f075610: 46007006 */ mov.s $f0,$f14
/* f075614: 45020004 */ bc1fl .JF0f075628
/* f075618: 46001307 */ neg.s $f12,$f2
/* f07561c: 10000007 */ b .JF0f07563c
/* f075620: 46001006 */ mov.s $f0,$f2
/* f075624: 46001307 */ neg.s $f12,$f2
.JF0f075628:
/* f075628: 460c703c */ c.lt.s $f14,$f12
/* f07562c: 00000000 */ nop
/* f075630: 45020003 */ bc1fl .JF0f075640
/* f075634: c60400dc */ lwc1 $f4,0xdc($s0)
/* f075638: 46006006 */ mov.s $f0,$f12
.JF0f07563c:
/* f07563c: c60400dc */ lwc1 $f4,0xdc($s0)
.JF0f075640:
/* f075640: 3c077f1b */ lui $a3,0x7f1b
/* f075644: 24e7acf0 */ addiu $a3,$a3,-21264
/* f075648: 46002180 */ add.s $f6,$f4,$f0
/* f07564c: 27a403e8 */ addiu $a0,$sp,0x3e8
/* f075650: 27a503dc */ addiu $a1,$sp,0x3dc
/* f075654: 240620ce */ li $a2,0x20ce
/* f075658: e60600dc */ swc1 $f6,0xdc($s0)
/* f07565c: 0c009257 */ jal cd00024e4c
/* f075660: e7b0058c */ swc1 $f16,0x58c($sp)
/* f075664: c7aa03e4 */ lwc1 $f10,0x3e4($sp)
/* f075668: c7a803f0 */ lwc1 $f8,0x3f0($sp)
/* f07566c: c7ae03e8 */ lwc1 $f14,0x3e8($sp)
/* f075670: c7b203dc */ lwc1 $f18,0x3dc($sp)
/* f075674: 46085001 */ sub.s $f0,$f10,$f8
/* f075678: c7b0058c */ lwc1 $f16,0x58c($sp)
/* f07567c: e7b403f8 */ swc1 $f20,0x3f8($sp)
/* f075680: 46127101 */ sub.s $f4,$f14,$f18
/* f075684: e7a003f4 */ swc1 $f0,0x3f4($sp)
/* f075688: 27a403f4 */ addiu $a0,$sp,0x3f4
/* f07568c: 4600a032 */ c.eq.s $f20,$f0
/* f075690: e7a403fc */ swc1 $f4,0x3fc($sp)
/* f075694: c7a603fc */ lwc1 $f6,0x3fc($sp)
/* f075698: 27a503f8 */ addiu $a1,$sp,0x3f8
/* f07569c: 45000005 */ bc1f .JF0f0756b4
/* f0756a0: 27a603fc */ addiu $a2,$sp,0x3fc
/* f0756a4: 4606a032 */ c.eq.s $f20,$f6
/* f0756a8: 3c013f80 */ lui $at,0x3f80
/* f0756ac: 45030006 */ bc1tl .JF0f0756c8
/* f0756b0: 44815000 */ mtc1 $at,$f10
.JF0f0756b4:
/* f0756b4: 0c0011e4 */ jal guNormalize
/* f0756b8: e7b0058c */ swc1 $f16,0x58c($sp)
/* f0756bc: 10000004 */ b .JF0f0756d0
/* f0756c0: c7b0058c */ lwc1 $f16,0x58c($sp)
/* f0756c4: 44815000 */ mtc1 $at,$f10
.JF0f0756c8:
/* f0756c8: 00000000 */ nop
/* f0756cc: e7aa03fc */ swc1 $f10,0x3fc($sp)
.JF0f0756d0:
/* f0756d0: c7a803fc */ lwc1 $f8,0x3fc($sp)
/* f0756d4: c604000c */ lwc1 $f4,0xc($s0)
/* f0756d8: c60e0004 */ lwc1 $f14,0x4($s0)
/* f0756dc: c7aa03f4 */ lwc1 $f10,0x3f4($sp)
/* f0756e0: 46044182 */ mul.s $f6,$f8,$f4
/* f0756e4: 3c013f80 */ lui $at,0x3f80
/* f0756e8: e7b40594 */ swc1 $f20,0x594($sp)
/* f0756ec: 460a7102 */ mul.s $f4,$f14,$f10
/* f0756f0: 8fb80088 */ lw $t8,0x88($sp)
/* f0756f4: 46043000 */ add.s $f0,$f6,$f4
/* f0756f8: 44813000 */ mtc1 $at,$f6
/* f0756fc: 3c01800a */ lui $at,0x800a
/* f075700: c422a67c */ lwc1 $f2,-0x5984($at)
/* f075704: 46068100 */ add.s $f4,$f16,$f6
/* f075708: 46002187 */ neg.s $f6,$f4
/* f07570c: 46060002 */ mul.s $f0,$f0,$f6
/* f075710: 00000000 */ nop
/* f075714: 46005102 */ mul.s $f4,$f10,$f0
/* f075718: 460e2180 */ add.s $f6,$f4,$f14
/* f07571c: 46004282 */ mul.s $f10,$f8,$f0
/* f075720: e7a60590 */ swc1 $f6,0x590($sp)
/* f075724: c604000c */ lwc1 $f4,0xc($s0)
/* f075728: e7b405a0 */ swc1 $f20,0x5a0($sp)
/* f07572c: 46045200 */ add.s $f8,$f10,$f4
/* f075730: 46023282 */ mul.s $f10,$f6,$f2
/* f075734: c7a60430 */ lwc1 $f6,0x430($sp)
/* f075738: 46024102 */ mul.s $f4,$f8,$f2
/* f07573c: e7a80598 */ swc1 $f8,0x598($sp)
/* f075740: e7aa059c */ swc1 $f10,0x59c($sp)
/* f075744: 1300002f */ beqz $t8,.JF0f075804
/* f075748: e7a405a4 */ swc1 $f4,0x5a4($sp)
/* f07574c: c6480008 */ lwc1 $f8,0x8($s2)
/* f075750: 46083181 */ sub.s $f6,$f6,$f8
/* f075754: c7a80438 */ lwc1 $f8,0x438($sp)
/* f075758: 460a3001 */ sub.s $f0,$f6,$f10
/* f07575c: c6460010 */ lwc1 $f6,0x10($s2)
/* f075760: 46064281 */ sub.s $f10,$f8,$f6
/* f075764: 46000202 */ mul.s $f8,$f0,$f0
/* f075768: 46045081 */ sub.s $f2,$f10,$f4
/* f07576c: 46021182 */ mul.s $f6,$f2,$f2
/* f075770: 0c012838 */ jal sqrtf
/* f075774: 46064300 */ add.s $f12,$f8,$f6
/* f075778: c7aa0418 */ lwc1 $f10,0x418($sp)
/* f07577c: c7a4041c */ lwc1 $f4,0x41c($sp)
/* f075780: 4600503c */ c.lt.s $f10,$f0
/* f075784: 00000000 */ nop
/* f075788: 45020009 */ bc1fl .JF0f0757b0
/* f07578c: 4600203c */ c.lt.s $f4,$f0
/* f075790: e7b405a4 */ swc1 $f20,0x5a4($sp)
/* f075794: c7a005a4 */ lwc1 $f0,0x5a4($sp)
/* f075798: e7a0059c */ swc1 $f0,0x59c($sp)
/* f07579c: e6000004 */ swc1 $f0,0x4($s0)
/* f0757a0: e600000c */ swc1 $f0,0xc($s0)
/* f0757a4: 10000017 */ b .JF0f075804
/* f0757a8: e60000dc */ swc1 $f0,0xdc($s0)
/* f0757ac: 4600203c */ c.lt.s $f4,$f0
.JF0f0757b0:
/* f0757b0: c7a80418 */ lwc1 $f8,0x418($sp)
/* f0757b4: 3c017f1b */ lui $at,0x7f1b
/* f0757b8: 45020013 */ bc1fl .JF0f075808
/* f0757bc: 4406a000 */ mfc1 $a2,$f20
/* f0757c0: 46004181 */ sub.s $f6,$f8,$f0
/* f0757c4: c42ab11c */ lwc1 $f10,-0x4ee4($at)
/* f0757c8: c6040004 */ lwc1 $f4,0x4($s0)
/* f0757cc: 460a3082 */ mul.s $f2,$f6,$f10
/* f0757d0: c606000c */ lwc1 $f6,0xc($s0)
/* f0757d4: 46022202 */ mul.s $f8,$f4,$f2
/* f0757d8: 00000000 */ nop
/* f0757dc: 46023282 */ mul.s $f10,$f6,$f2
/* f0757e0: e6080004 */ swc1 $f8,0x4($s0)
/* f0757e4: e60a000c */ swc1 $f10,0xc($s0)
/* f0757e8: c7a4059c */ lwc1 $f4,0x59c($sp)
/* f0757ec: c7a605a4 */ lwc1 $f6,0x5a4($sp)
/* f0757f0: 46022202 */ mul.s $f8,$f4,$f2
/* f0757f4: 00000000 */ nop
/* f0757f8: 46023282 */ mul.s $f10,$f6,$f2
/* f0757fc: e7a8059c */ swc1 $f8,0x59c($sp)
/* f075800: e7aa05a4 */ swc1 $f10,0x5a4($sp)
.JF0f075804:
/* f075804: 4406a000 */ mfc1 $a2,$f20
.JF0f075808:
/* f075808: 02202025 */ move $a0,$s1
/* f07580c: 27a5059c */ addiu $a1,$sp,0x59c
/* f075810: 0fc1cc97 */ jal func0f072144
/* f075814: 24070001 */ li $a3,0x1
/* f075818: 144000c2 */ bnez $v0,.JF0f075b24
/* f07581c: afa20600 */ sw $v0,0x600($sp)
/* f075820: 4406a000 */ mfc1 $a2,$f20
/* f075824: 02202025 */ move $a0,$s1
/* f075828: 0fc1ce3b */ jal objCollide
/* f07582c: 27a5059c */ addiu $a1,$sp,0x59c
/* f075830: c604008c */ lwc1 $f4,0x8c($s0)
/* f075834: c6080004 */ lwc1 $f8,0x4($s0)
/* f075838: e7b40594 */ swc1 $f20,0x594($sp)
/* f07583c: 46040402 */ mul.s $f16,$f0,$f4
/* f075840: 46004187 */ neg.s $f6,$f8
/* f075844: 3c01800a */ lui $at,0x800a
/* f075848: c422a67c */ lwc1 $f2,-0x5984($at)
/* f07584c: 8fb90088 */ lw $t9,0x88($sp)
/* f075850: 46103282 */ mul.s $f10,$f6,$f16
/* f075854: e7aa0590 */ swc1 $f10,0x590($sp)
/* f075858: c604000c */ lwc1 $f4,0xc($s0)
/* f07585c: e7b405a0 */ swc1 $f20,0x5a0($sp)
/* f075860: 46002207 */ neg.s $f8,$f4
/* f075864: 46104182 */ mul.s $f6,$f8,$f16
/* f075868: 00000000 */ nop
/* f07586c: 46025102 */ mul.s $f4,$f10,$f2
/* f075870: c7aa0430 */ lwc1 $f10,0x430($sp)
/* f075874: 46023202 */ mul.s $f8,$f6,$f2
/* f075878: e7a60598 */ swc1 $f6,0x598($sp)
/* f07587c: e7a4059c */ swc1 $f4,0x59c($sp)
/* f075880: 1320002f */ beqz $t9,.JF0f075940
/* f075884: e7a805a4 */ swc1 $f8,0x5a4($sp)
/* f075888: c6460008 */ lwc1 $f6,0x8($s2)
/* f07588c: 46065281 */ sub.s $f10,$f10,$f6
/* f075890: c7a60438 */ lwc1 $f6,0x438($sp)
/* f075894: 46045001 */ sub.s $f0,$f10,$f4
/* f075898: c64a0010 */ lwc1 $f10,0x10($s2)
/* f07589c: 460a3101 */ sub.s $f4,$f6,$f10
/* f0758a0: 46000182 */ mul.s $f6,$f0,$f0
/* f0758a4: 46082081 */ sub.s $f2,$f4,$f8
/* f0758a8: 46021282 */ mul.s $f10,$f2,$f2
/* f0758ac: 0c012838 */ jal sqrtf
/* f0758b0: 460a3300 */ add.s $f12,$f6,$f10
/* f0758b4: c7a40418 */ lwc1 $f4,0x418($sp)
/* f0758b8: c7a8041c */ lwc1 $f8,0x41c($sp)
/* f0758bc: 4600203c */ c.lt.s $f4,$f0
/* f0758c0: 00000000 */ nop
/* f0758c4: 45020009 */ bc1fl .JF0f0758ec
/* f0758c8: 4600403c */ c.lt.s $f8,$f0
/* f0758cc: e7b405a4 */ swc1 $f20,0x5a4($sp)
/* f0758d0: c7a005a4 */ lwc1 $f0,0x5a4($sp)
/* f0758d4: e7a0059c */ swc1 $f0,0x59c($sp)
/* f0758d8: e6000004 */ swc1 $f0,0x4($s0)
/* f0758dc: e600000c */ swc1 $f0,0xc($s0)
/* f0758e0: 10000017 */ b .JF0f075940
/* f0758e4: e60000dc */ swc1 $f0,0xdc($s0)
/* f0758e8: 4600403c */ c.lt.s $f8,$f0
.JF0f0758ec:
/* f0758ec: c7a60418 */ lwc1 $f6,0x418($sp)
/* f0758f0: 3c017f1b */ lui $at,0x7f1b
/* f0758f4: 45020013 */ bc1fl .JF0f075944
/* f0758f8: 4406a000 */ mfc1 $a2,$f20
/* f0758fc: 46003281 */ sub.s $f10,$f6,$f0
/* f075900: c424b120 */ lwc1 $f4,-0x4ee0($at)
/* f075904: c6080004 */ lwc1 $f8,0x4($s0)
/* f075908: 46045082 */ mul.s $f2,$f10,$f4
/* f07590c: c60a000c */ lwc1 $f10,0xc($s0)
/* f075910: 46024182 */ mul.s $f6,$f8,$f2
/* f075914: 00000000 */ nop
/* f075918: 46025102 */ mul.s $f4,$f10,$f2
/* f07591c: e6060004 */ swc1 $f6,0x4($s0)
/* f075920: e604000c */ swc1 $f4,0xc($s0)
/* f075924: c7a8059c */ lwc1 $f8,0x59c($sp)
/* f075928: c7aa05a4 */ lwc1 $f10,0x5a4($sp)
/* f07592c: 46024182 */ mul.s $f6,$f8,$f2
/* f075930: 00000000 */ nop
/* f075934: 46025102 */ mul.s $f4,$f10,$f2
/* f075938: e7a6059c */ swc1 $f6,0x59c($sp)
/* f07593c: e7a405a4 */ swc1 $f4,0x5a4($sp)
.JF0f075940:
/* f075940: 4406a000 */ mfc1 $a2,$f20
.JF0f075944:
/* f075944: 02202025 */ move $a0,$s1
/* f075948: 27a5059c */ addiu $a1,$sp,0x59c
/* f07594c: 0fc1cc97 */ jal func0f072144
/* f075950: 24070001 */ li $a3,0x1
/* f075954: 14400073 */ bnez $v0,.JF0f075b24
/* f075958: afa20600 */ sw $v0,0x600($sp)
/* f07595c: 4406a000 */ mfc1 $a2,$f20
/* f075960: 02202025 */ move $a0,$s1
/* f075964: 0fc1ce3b */ jal objCollide
/* f075968: 27a5059c */ addiu $a1,$sp,0x59c
/* f07596c: c7ae03e8 */ lwc1 $f14,0x3e8($sp)
/* f075970: c7b203dc */ lwc1 $f18,0x3dc($sp)
/* f075974: c7a803f0 */ lwc1 $f8,0x3f0($sp)
/* f075978: c7a603e4 */ lwc1 $f6,0x3e4($sp)
/* f07597c: 46127032 */ c.eq.s $f14,$f18
/* f075980: c7aa03e4 */ lwc1 $f10,0x3e4($sp)
/* f075984: c7a403f0 */ lwc1 $f4,0x3f0($sp)
/* f075988: 45020006 */ bc1fl .JF0f0759a4
/* f07598c: 46045081 */ sub.s $f2,$f10,$f4
/* f075990: 46064032 */ c.eq.s $f8,$f6
/* f075994: 00000000 */ nop
/* f075998: 45030063 */ bc1tl .JF0f075b28
/* f07599c: 8faa0600 */ lw $t2,0x600($sp)
/* f0759a0: 46045081 */ sub.s $f2,$f10,$f4
.JF0f0759a4:
/* f0759a4: 460e9001 */ sub.s $f0,$f18,$f14
/* f0759a8: 46021202 */ mul.s $f8,$f2,$f2
/* f0759ac: e7a203a0 */ swc1 $f2,0x3a0($sp)
/* f0759b0: 46000182 */ mul.s $f6,$f0,$f0
/* f0759b4: e7a00398 */ swc1 $f0,0x398($sp)
/* f0759b8: 0c012838 */ jal sqrtf
/* f0759bc: 46064300 */ add.s $f12,$f8,$f6
/* f0759c0: 3c013f80 */ lui $at,0x3f80
/* f0759c4: 44815000 */ mtc1 $at,$f10
/* f0759c8: c7a40398 */ lwc1 $f4,0x398($sp)
/* f0759cc: c7a603a0 */ lwc1 $f6,0x3a0($sp)
/* f0759d0: 46005303 */ div.s $f12,$f10,$f0
/* f0759d4: 3c01800a */ lui $at,0x800a
/* f0759d8: c422a67c */ lwc1 $f2,-0x5984($at)
/* f0759dc: 8fa90088 */ lw $t1,0x88($sp)
/* f0759e0: 460c2202 */ mul.s $f8,$f4,$f12
/* f0759e4: 00000000 */ nop
/* f0759e8: 460c3282 */ mul.s $f10,$f6,$f12
/* f0759ec: e7a80398 */ swc1 $f8,0x398($sp)
/* f0759f0: e7aa03a0 */ swc1 $f10,0x3a0($sp)
/* f0759f4: c604000c */ lwc1 $f4,0xc($s0)
/* f0759f8: 46045182 */ mul.s $f6,$f10,$f4
/* f0759fc: c6040004 */ lwc1 $f4,0x4($s0)
/* f075a00: e7b40594 */ swc1 $f20,0x594($sp)
/* f075a04: e7b405a0 */ swc1 $f20,0x5a0($sp)
/* f075a08: 46082102 */ mul.s $f4,$f4,$f8
/* f075a0c: 46043380 */ add.s $f14,$f6,$f4
/* f075a10: 460e4182 */ mul.s $f6,$f8,$f14
/* f075a14: 00000000 */ nop
/* f075a18: 460e5102 */ mul.s $f4,$f10,$f14
/* f075a1c: 00000000 */ nop
/* f075a20: 46023202 */ mul.s $f8,$f6,$f2
/* f075a24: e7a60590 */ swc1 $f6,0x590($sp)
/* f075a28: c7a60430 */ lwc1 $f6,0x430($sp)
/* f075a2c: 46022282 */ mul.s $f10,$f4,$f2
/* f075a30: e7a40598 */ swc1 $f4,0x598($sp)
/* f075a34: e7a8059c */ swc1 $f8,0x59c($sp)
/* f075a38: 1120002f */ beqz $t1,.JF0f075af8
/* f075a3c: e7aa05a4 */ swc1 $f10,0x5a4($sp)
/* f075a40: c6440008 */ lwc1 $f4,0x8($s2)
/* f075a44: 46043181 */ sub.s $f6,$f6,$f4
/* f075a48: c7a40438 */ lwc1 $f4,0x438($sp)
/* f075a4c: 46083001 */ sub.s $f0,$f6,$f8
/* f075a50: c6460010 */ lwc1 $f6,0x10($s2)
/* f075a54: 46062201 */ sub.s $f8,$f4,$f6
/* f075a58: 46000102 */ mul.s $f4,$f0,$f0
/* f075a5c: 460a4081 */ sub.s $f2,$f8,$f10
/* f075a60: 46021182 */ mul.s $f6,$f2,$f2
/* f075a64: 0c012838 */ jal sqrtf
/* f075a68: 46062300 */ add.s $f12,$f4,$f6
/* f075a6c: c7a80418 */ lwc1 $f8,0x418($sp)
/* f075a70: c7aa041c */ lwc1 $f10,0x41c($sp)
/* f075a74: 4600403c */ c.lt.s $f8,$f0
/* f075a78: 00000000 */ nop
/* f075a7c: 45020009 */ bc1fl .JF0f075aa4
/* f075a80: 4600503c */ c.lt.s $f10,$f0
/* f075a84: e7b405a4 */ swc1 $f20,0x5a4($sp)
/* f075a88: c7a005a4 */ lwc1 $f0,0x5a4($sp)
/* f075a8c: e7a0059c */ swc1 $f0,0x59c($sp)
/* f075a90: e6000004 */ swc1 $f0,0x4($s0)
/* f075a94: e600000c */ swc1 $f0,0xc($s0)
/* f075a98: 10000017 */ b .JF0f075af8
/* f075a9c: e60000dc */ swc1 $f0,0xdc($s0)
/* f075aa0: 4600503c */ c.lt.s $f10,$f0
.JF0f075aa4:
/* f075aa4: c7a40418 */ lwc1 $f4,0x418($sp)
/* f075aa8: 3c017f1b */ lui $at,0x7f1b
/* f075aac: 45020013 */ bc1fl .JF0f075afc
/* f075ab0: 4406a000 */ mfc1 $a2,$f20
/* f075ab4: 46002181 */ sub.s $f6,$f4,$f0
/* f075ab8: c428b124 */ lwc1 $f8,-0x4edc($at)
/* f075abc: c60a0004 */ lwc1 $f10,0x4($s0)
/* f075ac0: 46083082 */ mul.s $f2,$f6,$f8
/* f075ac4: c606000c */ lwc1 $f6,0xc($s0)
/* f075ac8: 46025102 */ mul.s $f4,$f10,$f2
/* f075acc: 00000000 */ nop
/* f075ad0: 46023202 */ mul.s $f8,$f6,$f2
/* f075ad4: e6040004 */ swc1 $f4,0x4($s0)
/* f075ad8: e608000c */ swc1 $f8,0xc($s0)
/* f075adc: c7aa059c */ lwc1 $f10,0x59c($sp)
/* f075ae0: c7a605a4 */ lwc1 $f6,0x5a4($sp)
/* f075ae4: 46025102 */ mul.s $f4,$f10,$f2
/* f075ae8: 00000000 */ nop
/* f075aec: 46023202 */ mul.s $f8,$f6,$f2
/* f075af0: e7a4059c */ swc1 $f4,0x59c($sp)
/* f075af4: e7a805a4 */ swc1 $f8,0x5a4($sp)
.JF0f075af8:
/* f075af8: 4406a000 */ mfc1 $a2,$f20
.JF0f075afc:
/* f075afc: 02202025 */ move $a0,$s1
/* f075b00: 27a5059c */ addiu $a1,$sp,0x59c
/* f075b04: 0fc1cc97 */ jal func0f072144
/* f075b08: 24070001 */ li $a3,0x1
/* f075b0c: 14400005 */ bnez $v0,.JF0f075b24
/* f075b10: afa20600 */ sw $v0,0x600($sp)
/* f075b14: 4406a000 */ mfc1 $a2,$f20
/* f075b18: 02202025 */ move $a0,$s1
/* f075b1c: 0fc1ce3b */ jal objCollide
/* f075b20: 27a5059c */ addiu $a1,$sp,0x59c
.JF0f075b24:
/* f075b24: 8faa0600 */ lw $t2,0x600($sp)
.JF0f075b28:
/* f075b28: 24010001 */ li $at,0x1
/* f075b2c: c7aa0590 */ lwc1 $f10,0x590($sp)
/* f075b30: 55410007 */ bnel $t2,$at,.JF0f075b50
/* f075b34: 8fab0600 */ lw $t3,0x600($sp)
/* f075b38: e60a0004 */ swc1 $f10,0x4($s0)
/* f075b3c: c7a40594 */ lwc1 $f4,0x594($sp)
/* f075b40: e6040008 */ swc1 $f4,0x8($s0)
/* f075b44: c7a60598 */ lwc1 $f6,0x598($sp)
/* f075b48: e606000c */ swc1 $f6,0xc($s0)
.JF0f075b4c:
/* f075b4c: 8fab0600 */ lw $t3,0x600($sp)
.JF0f075b50:
/* f075b50: 24010001 */ li $at,0x1
/* f075b54: 51610005 */ beql $t3,$at,.JF0f075b6c
/* f075b58: 8e040088 */ lw $a0,0x88($s0)
/* f075b5c: e61400dc */ swc1 $f20,0xdc($s0)
/* f075b60: e614000c */ swc1 $f20,0xc($s0)
/* f075b64: e6140004 */ swc1 $f20,0x4($s0)
/* f075b68: 8e040088 */ lw $a0,0x88($s0)
.JF0f075b6c:
/* f075b6c: 50800004 */ beqzl $a0,.JF0f075b80
/* f075b70: c6080004 */ lwc1 $f8,0x4($s0)
/* f075b74: 0fc194a6 */ jal propSetPerimEnabled
/* f075b78: 24050001 */ li $a1,0x1
/* f075b7c: c6080004 */ lwc1 $f8,0x4($s0)
.JF0f075b80:
/* f075b80: 4608a032 */ c.eq.s $f20,$f8
/* f075b84: 00000000 */ nop
/* f075b88: 4502000e */ bc1fl .JF0f075bc4
/* f075b8c: 8fad0600 */ lw $t5,0x600($sp)
/* f075b90: c60a000c */ lwc1 $f10,0xc($s0)
/* f075b94: 460aa032 */ c.eq.s $f20,$f10
/* f075b98: 00000000 */ nop
/* f075b9c: 45020009 */ bc1fl .JF0f075bc4
/* f075ba0: 8fad0600 */ lw $t5,0x600($sp)
/* f075ba4: c60400dc */ lwc1 $f4,0xdc($s0)
/* f075ba8: 4604a032 */ c.eq.s $f20,$f4
/* f075bac: 00000000 */ nop
/* f075bb0: 45020004 */ bc1fl .JF0f075bc4
/* f075bb4: 8fad0600 */ lw $t5,0x600($sp)
/* f075bb8: 0fc1af56 */ jal objEndFlight
/* f075bbc: 02202025 */ move $a0,$s1
/* f075bc0: 8fad0600 */ lw $t5,0x600($sp)
.JF0f075bc4:
/* f075bc4: 24010001 */ li $at,0x1
/* f075bc8: 8fa40070 */ lw $a0,0x70($sp)
/* f075bcc: 15a10012 */ bne $t5,$at,.JF0f075c18
/* f075bd0: 3c054000 */ lui $a1,0x4000
/* f075bd4: 26460028 */ addiu $a2,$s2,0x28
/* f075bd8: 26270058 */ addiu $a3,$s1,0x58
/* f075bdc: 0c00a790 */ jal cdFindGroundYSimple
/* f075be0: afa00010 */ sw $zero,0x10($sp)
/* f075be4: 3c017f1b */ lui $at,0x7f1b
/* f075be8: c426b128 */ lwc1 $f6,-0x4ed8($at)
/* f075bec: 46000086 */ mov.s $f2,$f0
/* f075bf0: 02202025 */ move $a0,$s1
/* f075bf4: 4600303c */ c.lt.s $f6,$f0
/* f075bf8: 00000000 */ nop
/* f075bfc: 45020007 */ bc1fl .JF0f075c1c
/* f075c00: 02202025 */ move $a0,$s1
/* f075c04: 0fc1c91e */ jal objGetHov04
/* f075c08: e7a20584 */ swc1 $f2,0x584($sp)
/* f075c0c: c7a20584 */ lwc1 $f2,0x584($sp)
/* f075c10: 46020200 */ add.s $f8,$f0,$f2
/* f075c14: e648000c */ swc1 $f8,0xc($s2)
.JF0f075c18:
/* f075c18: 02202025 */ move $a0,$s1
.JF0f075c1c:
/* f075c1c: 00002825 */ move $a1,$zero
/* f075c20: 0fc1ab62 */ jal func0f069c70
/* f075c24: 24060001 */ li $a2,0x1
/* f075c28: 27b00484 */ addiu $s0,$sp,0x484
/* f075c2c: 02002825 */ move $a1,$s0
/* f075c30: 0c00573d */ jal mtx3ToMtx4
/* f075c34: 8fa40074 */ lw $a0,0x74($sp)
/* f075c38: 8fa40070 */ lw $a0,0x70($sp)
/* f075c3c: 0c00575d */ jal mtx4SetTranslation
/* f075c40: 02002825 */ move $a1,$s0
/* f075c44: 27b104c4 */ addiu $s1,$sp,0x4c4
/* f075c48: 02202825 */ move $a1,$s1
/* f075c4c: 0c005ca4 */ jal mtx000172f0
/* f075c50: 27a40504 */ addiu $a0,$sp,0x504
/* f075c54: 02002025 */ move $a0,$s0
/* f075c58: 02202825 */ move $a1,$s1
/* f075c5c: 0c005668 */ jal mtx4MultMtx4
/* f075c60: 27a60544 */ addiu $a2,$sp,0x544
/* f075c64: 02402025 */ move $a0,$s2
/* f075c68: 0fc1d0fb */ jal platformDisplaceProps2
/* f075c6c: 27a50544 */ addiu $a1,$sp,0x544
/* f075c70: 240c0001 */ li $t4,0x1
/* f075c74: 100008ef */ b .JF0f078034
/* f075c78: afac05d8 */ sw $t4,0x5d8($sp)
.JF0f075c7c:
/* f075c7c: 11c007c2 */ beqz $t6,.JF0f077b88
/* f075c80: 304c0400 */ andi $t4,$v0,0x400
/* f075c84: afa00354 */ sw $zero,0x354($sp)
/* f075c88: afa00350 */ sw $zero,0x350($sp)
/* f075c8c: afa0034c */ sw $zero,0x34c($sp)
/* f075c90: 8e0f00d0 */ lw $t7,0xd0($s0)
/* f075c94: 8c780034 */ lw $t8,0x34($v1)
/* f075c98: 30494000 */ andi $t1,$v0,0x4000
/* f075c9c: 01f8c821 */ addu $t9,$t7,$t8
/* f075ca0: 15200003 */ bnez $t1,.JF0f075cb0
/* f075ca4: ae1900d0 */ sw $t9,0xd0($s0)
/* f075ca8: 2b212581 */ slti $at,$t9,0x2581
/* f075cac: 10200021 */ beqz $at,.JF0f075d34
.JF0f075cb0:
/* f075cb0: 3c017f1b */ lui $at,0x7f1b
/* f075cb4: c42ab12c */ lwc1 $f10,-0x4ed4($at)
/* f075cb8: c640000c */ lwc1 $f0,0xc($s2)
/* f075cbc: 3c0146fa */ lui $at,0x46fa
/* f075cc0: 460a003c */ c.lt.s $f0,$f10
/* f075cc4: 00000000 */ nop
/* f075cc8: 4503001b */ bc1tl .JF0f075d38
/* f075ccc: 8e2b0040 */ lw $t3,0x40($s1)
/* f075cd0: 44811000 */ mtc1 $at,$f2
/* f075cd4: 3c01c6fa */ lui $at,0xc6fa
/* f075cd8: 4600103c */ c.lt.s $f2,$f0
/* f075cdc: 00000000 */ nop
/* f075ce0: 45030015 */ bc1tl .JF0f075d38
/* f075ce4: 8e2b0040 */ lw $t3,0x40($s1)
/* f075ce8: 44816000 */ mtc1 $at,$f12
/* f075cec: c6400008 */ lwc1 $f0,0x8($s2)
/* f075cf0: 460c003c */ c.lt.s $f0,$f12
/* f075cf4: 00000000 */ nop
/* f075cf8: 4503000f */ bc1tl .JF0f075d38
/* f075cfc: 8e2b0040 */ lw $t3,0x40($s1)
/* f075d00: 4600103c */ c.lt.s $f2,$f0
/* f075d04: 00000000 */ nop
/* f075d08: 4503000b */ bc1tl .JF0f075d38
/* f075d0c: 8e2b0040 */ lw $t3,0x40($s1)
/* f075d10: c6400010 */ lwc1 $f0,0x10($s2)
/* f075d14: 460c003c */ c.lt.s $f0,$f12
/* f075d18: 00000000 */ nop
/* f075d1c: 45030006 */ bc1tl .JF0f075d38
/* f075d20: 8e2b0040 */ lw $t3,0x40($s1)
/* f075d24: 4600103c */ c.lt.s $f2,$f0
/* f075d28: 00000000 */ nop
/* f075d2c: 45020005 */ bc1fl .JF0f075d44
/* f075d30: 8e0c00a0 */ lw $t4,0xa0($s0)
.JF0f075d34:
/* f075d34: 8e2b0040 */ lw $t3,0x40($s1)
.JF0f075d38:
/* f075d38: 356d0004 */ ori $t5,$t3,0x4
/* f075d3c: ae2d0040 */ sw $t5,0x40($s1)
/* f075d40: 8e0c00a0 */ lw $t4,0xa0($s0)
.JF0f075d44:
/* f075d44: 8c6e0034 */ lw $t6,0x34($v1)
/* f075d48: 2624001c */ addiu $a0,$s1,0x1c
/* f075d4c: 27a50358 */ addiu $a1,$sp,0x358
/* f075d50: 018e7821 */ addu $t7,$t4,$t6
/* f075d54: ae0f00a0 */ sw $t7,0xa0($s0)
/* f075d58: 0c00571e */ jal mtx3Copy
/* f075d5c: afa40074 */ sw $a0,0x74($sp)
/* f075d60: 8e180000 */ lw $t8,0x0($s0)
/* f075d64: 3c017f1b */ lui $at,0x7f1b
/* f075d68: 33190020 */ andi $t9,$t8,0x20
/* f075d6c: 5320004b */ beqzl $t9,.JF0f075e9c
/* f075d70: 922c0003 */ lbu $t4,0x3($s1)
/* f075d74: c430b130 */ lwc1 $f16,-0x4ed0($at)
/* f075d78: c600001c */ lwc1 $f0,0x1c($s0)
/* f075d7c: 3c03800a */ lui $v1,0x800a
/* f075d80: 2463a630 */ addiu $v1,$v1,-22992
/* f075d84: 4610003c */ c.lt.s $f0,$f16
/* f075d88: 00000000 */ nop
/* f075d8c: 4502001b */ bc1fl .JF0f075dfc
/* f075d90: c60000a8 */ lwc1 $f0,0xa8($s0)
/* f075d94: c6040014 */ lwc1 $f4,0x14($s0)
/* f075d98: c466004c */ lwc1 $f6,0x4c($v1)
/* f075d9c: c60a00ac */ lwc1 $f10,0xac($s0)
/* f075da0: 3c017f1b */ lui $at,0x7f1b
/* f075da4: 46062202 */ mul.s $f8,$f4,$f6
/* f075da8: 46085100 */ add.s $f4,$f10,$f8
/* f075dac: e60400ac */ swc1 $f4,0xac($s0)
/* f075db0: c46a004c */ lwc1 $f10,0x4c($v1)
/* f075db4: c60600ac */ lwc1 $f6,0xac($s0)
/* f075db8: c60400a8 */ lwc1 $f4,0xa8($s0)
/* f075dbc: 460a3202 */ mul.s $f8,$f6,$f10
/* f075dc0: 46082180 */ add.s $f6,$f4,$f8
/* f075dc4: e60600a8 */ swc1 $f6,0xa8($s0)
/* f075dc8: c464004c */ lwc1 $f4,0x4c($v1)
/* f075dcc: c42ab134 */ lwc1 $f10,-0x4ecc($at)
/* f075dd0: 46045202 */ mul.s $f8,$f10,$f4
/* f075dd4: 46080180 */ add.s $f6,$f0,$f8
/* f075dd8: e606001c */ swc1 $f6,0x1c($s0)
/* f075ddc: c60a001c */ lwc1 $f10,0x1c($s0)
/* f075de0: 460a803c */ c.lt.s $f16,$f10
/* f075de4: 00000000 */ nop
/* f075de8: 4502002c */ bc1fl .JF0f075e9c
/* f075dec: 922c0003 */ lbu $t4,0x3($s1)
/* f075df0: 10000029 */ b .JF0f075e98
/* f075df4: e610001c */ swc1 $f16,0x1c($s0)
/* f075df8: c60000a8 */ lwc1 $f0,0xa8($s0)
.JF0f075dfc:
/* f075dfc: c7a405e0 */ lwc1 $f4,0x5e0($sp)
/* f075e00: 4600203c */ c.lt.s $f4,$f0
/* f075e04: 00000000 */ nop
/* f075e08: 45000018 */ bc1f .JF0f075e6c
/* f075e0c: 3c01800a */ lui $at,0x800a
/* f075e10: c426a67c */ lwc1 $f6,-0x5984($at)
/* f075e14: c6080014 */ lwc1 $f8,0x14($s0)
/* f075e18: c60400ac */ lwc1 $f4,0xac($s0)
/* f075e1c: 46064282 */ mul.s $f10,$f8,$f6
/* f075e20: 460a2200 */ add.s $f8,$f4,$f10
/* f075e24: e60800ac */ swc1 $f8,0xac($s0)
/* f075e28: c424a67c */ lwc1 $f4,-0x5984($at)
/* f075e2c: c60600ac */ lwc1 $f6,0xac($s0)
/* f075e30: 3c017f1b */ lui $at,0x7f1b
/* f075e34: 46043282 */ mul.s $f10,$f6,$f4
/* f075e38: 460a0200 */ add.s $f8,$f0,$f10
/* f075e3c: e60800a8 */ swc1 $f8,0xa8($s0)
/* f075e40: c7a405e0 */ lwc1 $f4,0x5e0($sp)
/* f075e44: c60600a8 */ lwc1 $f6,0xa8($s0)
/* f075e48: c428b138 */ lwc1 $f8,-0x4ec8($at)
/* f075e4c: 3c01800a */ lui $at,0x800a
/* f075e50: 46043281 */ sub.s $f10,$f6,$f4
/* f075e54: 460a4182 */ mul.s $f6,$f8,$f10
/* f075e58: c428a67c */ lwc1 $f8,-0x5984($at)
/* f075e5c: 46083282 */ mul.s $f10,$f6,$f8
/* f075e60: 460a2180 */ add.s $f6,$f4,$f10
/* f075e64: 1000000c */ b .JF0f075e98
/* f075e68: e7a605e0 */ swc1 $f6,0x5e0($sp)
.JF0f075e6c:
/* f075e6c: e7a005e0 */ swc1 $f0,0x5e0($sp)
/* f075e70: 8e090000 */ lw $t1,0x0($s0)
/* f075e74: 2401ffdf */ li $at,-33
/* f075e78: 4480a000 */ mtc1 $zero,$f20
/* f075e7c: c60800ac */ lwc1 $f8,0xac($s0)
/* f075e80: 01215024 */ and $t2,$t1,$at
/* f075e84: ae0a0000 */ sw $t2,0x0($s0)
/* f075e88: 354d0010 */ ori $t5,$t2,0x10
/* f075e8c: ae0d0000 */ sw $t5,0x0($s0)
/* f075e90: e6080008 */ swc1 $f8,0x8($s0)
/* f075e94: e614001c */ swc1 $f20,0x1c($s0)
.JF0f075e98:
/* f075e98: 922c0003 */ lbu $t4,0x3($s1)
.JF0f075e9c:
/* f075e9c: 4480a000 */ mtc1 $zero,$f20
/* f075ea0: 24010008 */ li $at,0x8
/* f075ea4: 15810006 */ bne $t4,$at,.JF0f075ec0
/* f075ea8: 00001025 */ move $v0,$zero
/* f075eac: 922e005c */ lbu $t6,0x5c($s1)
/* f075eb0: 24010054 */ li $at,0x54
/* f075eb4: 15c10002 */ bne $t6,$at,.JF0f075ec0
/* f075eb8: 00000000 */ nop
/* f075ebc: 24020001 */ li $v0,0x1
.JF0f075ec0:
/* f075ec0: 10400129 */ beqz $v0,.JF0f076368
/* f075ec4: 3c188007 */ lui $t8,0x8007
/* f075ec8: 27189ae4 */ addiu $t8,$t8,-25884
/* f075ecc: 8f010000 */ lw $at,0x0($t8)
/* f075ed0: 27af02f8 */ addiu $t7,$sp,0x2f8
/* f075ed4: 8f090004 */ lw $t1,0x4($t8)
/* f075ed8: ade10000 */ sw $at,0x0($t7)
/* f075edc: 8f010008 */ lw $at,0x8($t8)
/* f075ee0: 3c0b8007 */ lui $t3,0x8007
/* f075ee4: 256b9af0 */ addiu $t3,$t3,-25872
/* f075ee8: ade90004 */ sw $t1,0x4($t7)
/* f075eec: ade10008 */ sw $at,0x8($t7)
/* f075ef0: 8d610000 */ lw $at,0x0($t3)
/* f075ef4: 27aa02ec */ addiu $t2,$sp,0x2ec
/* f075ef8: 8d6c0004 */ lw $t4,0x4($t3)
/* f075efc: ad410000 */ sw $at,0x0($t2)
/* f075f00: 8d610008 */ lw $at,0x8($t3)
/* f075f04: 3c198007 */ lui $t9,0x8007
/* f075f08: 27399afc */ addiu $t9,$t9,-25860
/* f075f0c: ad4c0004 */ sw $t4,0x4($t2)
/* f075f10: ad410008 */ sw $at,0x8($t2)
/* f075f14: 8f210000 */ lw $at,0x0($t9)
/* f075f18: 27ae02e0 */ addiu $t6,$sp,0x2e0
/* f075f1c: 8f380004 */ lw $t8,0x4($t9)
/* f075f20: adc10000 */ sw $at,0x0($t6)
/* f075f24: 8f210008 */ lw $at,0x8($t9)
/* f075f28: add80004 */ sw $t8,0x4($t6)
/* f075f2c: 1220010e */ beqz $s1,.JF0f076368
/* f075f30: adc10008 */ sw $at,0x8($t6)
/* f075f34: 8e290014 */ lw $t1,0x14($s1)
/* f075f38: 5120010c */ beqzl $t1,.JF0f07636c
/* f075f3c: 8e020000 */ lw $v0,0x0($s0)
/* f075f40: 8e0d00e8 */ lw $t5,0xe8($s0)
/* f075f44: 51a00109 */ beqzl $t5,.JF0f07636c
/* f075f48: 8e020000 */ lw $v0,0x0($s0)
/* f075f4c: c622001c */ lwc1 $f2,0x1c($s1)
/* f075f50: c62e0028 */ lwc1 $f14,0x28($s1)
/* f075f54: c6200034 */ lwc1 $f0,0x34($s1)
/* f075f58: 46021102 */ mul.s $f4,$f2,$f2
/* f075f5c: 00000000 */ nop
/* f075f60: 460e7282 */ mul.s $f10,$f14,$f14
/* f075f64: 460a2180 */ add.s $f6,$f4,$f10
/* f075f68: 46000202 */ mul.s $f8,$f0,$f0
/* f075f6c: 0c012838 */ jal sqrtf
/* f075f70: 46064300 */ add.s $f12,$f8,$f6
/* f075f74: 27a402a0 */ addiu $a0,$sp,0x2a0
/* f075f78: 0c005654 */ jal mtx4LoadIdentity
/* f075f7c: e7a0029c */ swc1 $f0,0x29c($sp)
/* f075f80: c7ae029c */ lwc1 $f14,0x29c($sp)
/* f075f84: c624001c */ lwc1 $f4,0x1c($s1)
/* f075f88: 27a40290 */ addiu $a0,$sp,0x290
/* f075f8c: 27a50294 */ addiu $a1,$sp,0x294
/* f075f90: 460e2283 */ div.s $f10,$f4,$f14
/* f075f94: 27a60298 */ addiu $a2,$sp,0x298
/* f075f98: e7aa02a0 */ swc1 $f10,0x2a0($sp)
/* f075f9c: c6280020 */ lwc1 $f8,0x20($s1)
/* f075fa0: 460e4183 */ div.s $f6,$f8,$f14
/* f075fa4: e7a602a4 */ swc1 $f6,0x2a4($sp)
/* f075fa8: c6240024 */ lwc1 $f4,0x24($s1)
/* f075fac: 460e2283 */ div.s $f10,$f4,$f14
/* f075fb0: e7aa02a8 */ swc1 $f10,0x2a8($sp)
/* f075fb4: c6280028 */ lwc1 $f8,0x28($s1)
/* f075fb8: 460e4183 */ div.s $f6,$f8,$f14
/* f075fbc: e7a602b0 */ swc1 $f6,0x2b0($sp)
/* f075fc0: c624002c */ lwc1 $f4,0x2c($s1)
/* f075fc4: 460e2283 */ div.s $f10,$f4,$f14
/* f075fc8: e7aa02b4 */ swc1 $f10,0x2b4($sp)
/* f075fcc: c6280030 */ lwc1 $f8,0x30($s1)
/* f075fd0: 460e4183 */ div.s $f6,$f8,$f14
/* f075fd4: e7a602b8 */ swc1 $f6,0x2b8($sp)
/* f075fd8: c6240034 */ lwc1 $f4,0x34($s1)
/* f075fdc: 460e2283 */ div.s $f10,$f4,$f14
/* f075fe0: e7aa02c0 */ swc1 $f10,0x2c0($sp)
/* f075fe4: c6280038 */ lwc1 $f8,0x38($s1)
/* f075fe8: 460e4183 */ div.s $f6,$f8,$f14
/* f075fec: e7a602c4 */ swc1 $f6,0x2c4($sp)
/* f075ff0: c624003c */ lwc1 $f4,0x3c($s1)
/* f075ff4: 460e2283 */ div.s $f10,$f4,$f14
/* f075ff8: e7aa02c8 */ swc1 $f10,0x2c8($sp)
/* f075ffc: 8e2a0014 */ lw $t2,0x14($s1)
/* f076000: c5480008 */ lwc1 $f8,0x8($t2)
/* f076004: e7a802f8 */ swc1 $f8,0x2f8($sp)
/* f076008: 8e2b0014 */ lw $t3,0x14($s1)
/* f07600c: c7a802f8 */ lwc1 $f8,0x2f8($sp)
/* f076010: c566000c */ lwc1 $f6,0xc($t3)
/* f076014: e7a602fc */ swc1 $f6,0x2fc($sp)
/* f076018: 8e2c0014 */ lw $t4,0x14($s1)
/* f07601c: c5840010 */ lwc1 $f4,0x10($t4)
/* f076020: e7a40300 */ swc1 $f4,0x300($sp)
/* f076024: 8e0f00e8 */ lw $t7,0xe8($s0)
/* f076028: c5ea0008 */ lwc1 $f10,0x8($t7)
/* f07602c: 46085181 */ sub.s $f6,$f10,$f8
/* f076030: c7aa02fc */ lwc1 $f10,0x2fc($sp)
/* f076034: e7a60290 */ swc1 $f6,0x290($sp)
/* f076038: 8e0e00e8 */ lw $t6,0xe8($s0)
/* f07603c: c5c4000c */ lwc1 $f4,0xc($t6)
/* f076040: 460a2201 */ sub.s $f8,$f4,$f10
/* f076044: c7a40300 */ lwc1 $f4,0x300($sp)
/* f076048: e7a80294 */ swc1 $f8,0x294($sp)
/* f07604c: 8e1900e8 */ lw $t9,0xe8($s0)
/* f076050: c7260010 */ lwc1 $f6,0x10($t9)
/* f076054: e7ae029c */ swc1 $f14,0x29c($sp)
/* f076058: 46043281 */ sub.s $f10,$f6,$f4
/* f07605c: 0c0011e4 */ jal guNormalize
/* f076060: e7aa0298 */ swc1 $f10,0x298($sp)
/* f076064: c6080004 */ lwc1 $f8,0x4($s0)
/* f076068: 27a402ec */ addiu $a0,$sp,0x2ec
/* f07606c: 27a502f0 */ addiu $a1,$sp,0x2f0
/* f076070: e7a802ec */ swc1 $f8,0x2ec($sp)
/* f076074: c6060008 */ lwc1 $f6,0x8($s0)
/* f076078: 27a602f4 */ addiu $a2,$sp,0x2f4
/* f07607c: e7a602f0 */ swc1 $f6,0x2f0($sp)
/* f076080: c604000c */ lwc1 $f4,0xc($s0)
/* f076084: 0c0011e4 */ jal guNormalize
/* f076088: e7a402f4 */ swc1 $f4,0x2f4($sp)
/* f07608c: c7aa0298 */ lwc1 $f10,0x298($sp)
/* f076090: c7a802f4 */ lwc1 $f8,0x2f4($sp)
/* f076094: c7b00290 */ lwc1 $f16,0x290($sp)
/* f076098: c7a402ec */ lwc1 $f4,0x2ec($sp)
/* f07609c: 46085182 */ mul.s $f6,$f10,$f8
/* f0760a0: c7b20294 */ lwc1 $f18,0x294($sp)
/* f0760a4: c7a802f0 */ lwc1 $f8,0x2f0($sp)
/* f0760a8: 46102282 */ mul.s $f10,$f4,$f16
/* f0760ac: 00000000 */ nop
/* f0760b0: 46124102 */ mul.s $f4,$f8,$f18
/* f0760b4: 46045200 */ add.s $f8,$f10,$f4
/* f0760b8: 0fc25ddc */ jal acosf
/* f0760bc: 46083300 */ add.s $f12,$f6,$f8
/* f0760c0: 3c017f1b */ lui $at,0x7f1b
/* f0760c4: c42ab140 */ lwc1 $f10,-0x4ec0($at)
/* f0760c8: 3c047f1b */ lui $a0,0x7f1b
/* f0760cc: c7ae029c */ lwc1 $f14,0x29c($sp)
/* f0760d0: 4600503c */ c.lt.s $f10,$f0
/* f0760d4: e7a0028c */ swc1 $f0,0x28c($sp)
/* f0760d8: 3c017f1b */ lui $at,0x7f1b
/* f0760dc: 2484ad00 */ addiu $a0,$a0,-21248
/* f0760e0: 45010005 */ bc1t .JF0f0760f8
/* f0760e4: 3c058007 */ lui $a1,0x8007
/* f0760e8: c424b144 */ lwc1 $f4,-0x4ebc($at)
/* f0760ec: 4604003c */ c.lt.s $f0,$f4
/* f0760f0: 00000000 */ nop
/* f0760f4: 4500009c */ bc1f .JF0f076368
.JF0f0760f8:
/* f0760f8: 24a59b14 */ addiu $a1,$a1,-25836
/* f0760fc: 0c0036b4 */ jal mainOverrideVariable
/* f076100: e7ae029c */ swc1 $f14,0x29c($sp)
/* f076104: 3c047f1b */ lui $a0,0x7f1b
/* f076108: 3c058007 */ lui $a1,0x8007
/* f07610c: 24a59b18 */ addiu $a1,$a1,-25832
/* f076110: 0c0036b4 */ jal mainOverrideVariable
/* f076114: 2484ad04 */ addiu $a0,$a0,-21244
/* f076118: 3c047f1b */ lui $a0,0x7f1b
/* f07611c: 3c058007 */ lui $a1,0x8007
/* f076120: 24a59b1c */ addiu $a1,$a1,-25828
/* f076124: 0c0036b4 */ jal mainOverrideVariable
/* f076128: 2484ad08 */ addiu $a0,$a0,-21240
/* f07612c: 3c188007 */ lui $t8,0x8007
/* f076130: 8f189b18 */ lw $t8,-0x64e8($t8)
/* f076134: 3c01800a */ lui $at,0x800a
/* f076138: c7b00290 */ lwc1 $f16,0x290($sp)
/* f07613c: 44983000 */ mtc1 $t8,$f6
/* f076140: c7b20294 */ lwc1 $f18,0x294($sp)
/* f076144: c422a67c */ lwc1 $f2,-0x5984($at)
/* f076148: 07010005 */ bgez $t8,.JF0f076160
/* f07614c: 46803220 */ cvt.s.w $f8,$f6
/* f076150: 3c014f80 */ lui $at,0x4f80
/* f076154: 44815000 */ mtc1 $at,$f10
/* f076158: 00000000 */ nop
/* f07615c: 460a4200 */ add.s $f8,$f8,$f10
.JF0f076160:
/* f076160: 3c0142c8 */ lui $at,0x42c8
/* f076164: 44812000 */ mtc1 $at,$f4
/* f076168: 3c018007 */ lui $at,0x8007
/* f07616c: c42a9b10 */ lwc1 $f10,-0x64f0($at)
/* f076170: 46044183 */ div.s $f6,$f8,$f4
/* f076174: 3c098007 */ lui $t1,0x8007
/* f076178: 8d299b1c */ lw $t1,-0x64e4($t1)
/* f07617c: 460a3202 */ mul.s $f8,$f6,$f10
/* f076180: 44893000 */ mtc1 $t1,$f6
/* f076184: 00000000 */ nop
/* f076188: 468032a0 */ cvt.s.w $f10,$f6
/* f07618c: 05210005 */ bgez $t1,.JF0f0761a4
/* f076190: 46024103 */ div.s $f4,$f8,$f2
/* f076194: 3c014f80 */ lui $at,0x4f80
/* f076198: 44814000 */ mtc1 $at,$f8
/* f07619c: 00000000 */ nop
/* f0761a0: 46085280 */ add.s $f10,$f10,$f8
.JF0f0761a4:
/* f0761a4: 3c0142c8 */ lui $at,0x42c8
/* f0761a8: 44813000 */ mtc1 $at,$f6
/* f0761ac: 3c0d8007 */ lui $t5,0x8007
/* f0761b0: 8dad9b14 */ lw $t5,-0x64ec($t5)
/* f0761b4: 46065203 */ div.s $f8,$f10,$f6
/* f0761b8: c7aa028c */ lwc1 $f10,0x28c($sp)
/* f0761bc: 3c014f80 */ lui $at,0x4f80
/* f0761c0: 460a4182 */ mul.s $f6,$f8,$f10
/* f0761c4: 00000000 */ nop
/* f0761c8: 46023202 */ mul.s $f8,$f6,$f2
/* f0761cc: 46082180 */ add.s $f6,$f4,$f8
/* f0761d0: 448d2000 */ mtc1 $t5,$f4
/* f0761d4: 05a10004 */ bgez $t5,.JF0f0761e8
/* f0761d8: 46802220 */ cvt.s.w $f8,$f4
/* f0761dc: 44812000 */ mtc1 $at,$f4
/* f0761e0: 00000000 */ nop
/* f0761e4: 46044200 */ add.s $f8,$f8,$f4
.JF0f0761e8:
/* f0761e8: 3c0142c8 */ lui $at,0x42c8
/* f0761ec: 44812000 */ mtc1 $at,$f4
/* f0761f0: 3c018007 */ lui $at,0x8007
/* f0761f4: e42a9b10 */ swc1 $f10,-0x64f0($at)
/* f0761f8: 46044203 */ div.s $f8,$f8,$f4
/* f0761fc: c7a402f0 */ lwc1 $f4,0x2f0($sp)
/* f076200: c7aa02f4 */ lwc1 $f10,0x2f4($sp)
/* f076204: 3c013f00 */ lui $at,0x3f00
/* f076208: 46083002 */ mul.s $f0,$f6,$f8
/* f07620c: c7a60298 */ lwc1 $f6,0x298($sp)
/* f076210: 46062202 */ mul.s $f8,$f4,$f6
/* f076214: 00000000 */ nop
/* f076218: 460a9182 */ mul.s $f6,$f18,$f10
/* f07621c: 46064281 */ sub.s $f10,$f8,$f6
/* f076220: c7a60298 */ lwc1 $f6,0x298($sp)
/* f076224: c7a802ec */ lwc1 $f8,0x2ec($sp)
/* f076228: e7aa0280 */ swc1 $f10,0x280($sp)
/* f07622c: 46064282 */ mul.s $f10,$f8,$f6
/* f076230: c7a802f4 */ lwc1 $f8,0x2f4($sp)
/* f076234: 46088182 */ mul.s $f6,$f16,$f8
/* f076238: 46065201 */ sub.s $f8,$f10,$f6
/* f07623c: c7a602ec */ lwc1 $f6,0x2ec($sp)
/* f076240: 46004287 */ neg.s $f10,$f8
/* f076244: 46123202 */ mul.s $f8,$f6,$f18
/* f076248: e7aa0284 */ swc1 $f10,0x284($sp)
/* f07624c: 46048282 */ mul.s $f10,$f16,$f4
/* f076250: 44812000 */ mtc1 $at,$f4
/* f076254: 00000000 */ nop
/* f076258: 46040302 */ mul.s $f12,$f0,$f4
/* f07625c: 460a4181 */ sub.s $f6,$f8,$f10
/* f076260: e7ac0078 */ swc1 $f12,0x78($sp)
/* f076264: 0c0068dc */ jal cosf
/* f076268: e7a60288 */ swc1 $f6,0x288($sp)
/* f07626c: e7a00260 */ swc1 $f0,0x260($sp)
/* f076270: 0c0068df */ jal sinf
/* f076274: c7ac0078 */ lwc1 $f12,0x78($sp)
/* f076278: c7a80280 */ lwc1 $f8,0x280($sp)
/* f07627c: c7ac0078 */ lwc1 $f12,0x78($sp)
/* f076280: 46080282 */ mul.s $f10,$f0,$f8
/* f076284: 0c0068df */ jal sinf
/* f076288: e7aa0264 */ swc1 $f10,0x264($sp)
/* f07628c: c7a60284 */ lwc1 $f6,0x284($sp)
/* f076290: c7ac0078 */ lwc1 $f12,0x78($sp)
/* f076294: 46060102 */ mul.s $f4,$f0,$f6
/* f076298: 0c0068df */ jal sinf
/* f07629c: e7a40268 */ swc1 $f4,0x268($sp)
/* f0762a0: c7a80288 */ lwc1 $f8,0x288($sp)
/* f0762a4: 27a40260 */ addiu $a0,$sp,0x260
/* f0762a8: 27a5020c */ addiu $a1,$sp,0x20c
/* f0762ac: 46080282 */ mul.s $f10,$f0,$f8
/* f0762b0: 0fc25f1d */ jal quaternionToMtx
/* f0762b4: e7aa026c */ swc1 $f10,0x26c($sp)
/* f0762b8: e6140018 */ swc1 $f20,0x18($s0)
/* f0762bc: e6140014 */ swc1 $f20,0x14($s0)
/* f0762c0: e6140010 */ swc1 $f20,0x10($s0)
/* f0762c4: 27a4020c */ addiu $a0,$sp,0x20c
/* f0762c8: 0c0056ac */ jal mtx4RotateVecInPlace
/* f0762cc: 26050004 */ addiu $a1,$s0,0x4
/* f0762d0: 27a402a0 */ addiu $a0,$sp,0x2a0
/* f0762d4: 0fc25f79 */ jal quaternion0f097044
/* f0762d8: 27a50270 */ addiu $a1,$sp,0x270
/* f0762dc: 27a40270 */ addiu $a0,$sp,0x270
/* f0762e0: 27a50260 */ addiu $a1,$sp,0x260
/* f0762e4: 0fc26136 */ jal quaternionMultQuaternion
/* f0762e8: 27a60250 */ addiu $a2,$sp,0x250
/* f0762ec: 27a40250 */ addiu $a0,$sp,0x250
/* f0762f0: 0fc25f1d */ jal quaternionToMtx
/* f0762f4: 27a5020c */ addiu $a1,$sp,0x20c
/* f0762f8: c7ae029c */ lwc1 $f14,0x29c($sp)
/* f0762fc: c7a6020c */ lwc1 $f6,0x20c($sp)
/* f076300: 460e3102 */ mul.s $f4,$f6,$f14
/* f076304: e624001c */ swc1 $f4,0x1c($s1)
/* f076308: c7a80210 */ lwc1 $f8,0x210($sp)
/* f07630c: 460e4282 */ mul.s $f10,$f8,$f14
/* f076310: e62a0020 */ swc1 $f10,0x20($s1)
/* f076314: c7a60214 */ lwc1 $f6,0x214($sp)
/* f076318: 460e3102 */ mul.s $f4,$f6,$f14
/* f07631c: e6240024 */ swc1 $f4,0x24($s1)
/* f076320: c7a8021c */ lwc1 $f8,0x21c($sp)
/* f076324: 460e4282 */ mul.s $f10,$f8,$f14
/* f076328: e62a0028 */ swc1 $f10,0x28($s1)
/* f07632c: c7a60220 */ lwc1 $f6,0x220($sp)
/* f076330: 460e3102 */ mul.s $f4,$f6,$f14
/* f076334: e624002c */ swc1 $f4,0x2c($s1)
/* f076338: c7a80224 */ lwc1 $f8,0x224($sp)
/* f07633c: 460e4282 */ mul.s $f10,$f8,$f14
/* f076340: e62a0030 */ swc1 $f10,0x30($s1)
/* f076344: c7a6022c */ lwc1 $f6,0x22c($sp)
/* f076348: 460e3102 */ mul.s $f4,$f6,$f14
/* f07634c: e6240034 */ swc1 $f4,0x34($s1)
/* f076350: c7a80230 */ lwc1 $f8,0x230($sp)
/* f076354: 460e4282 */ mul.s $f10,$f8,$f14
/* f076358: e62a0038 */ swc1 $f10,0x38($s1)
/* f07635c: c7a60234 */ lwc1 $f6,0x234($sp)
/* f076360: 460e3102 */ mul.s $f4,$f6,$f14
/* f076364: e624003c */ swc1 $f4,0x3c($s1)
.JF0f076368:
/* f076368: 8e020000 */ lw $v0,0x0($s0)
.JF0f07636c:
/* f07636c: 3c03800a */ lui $v1,0x800a
/* f076370: 2463a630 */ addiu $v1,$v1,-22992
/* f076374: 3c017f1b */ lui $at,0x7f1b
/* f076378: 304a0010 */ andi $t2,$v0,0x10
/* f07637c: c430b148 */ lwc1 $f16,-0x4eb8($at)
/* f076380: c462004c */ lwc1 $f2,0x4c($v1)
/* f076384: c600001c */ lwc1 $f0,0x1c($s0)
/* f076388: 1540001e */ bnez $t2,.JF0f076404
/* f07638c: c60c0014 */ lwc1 $f12,0x14($s0)
/* f076390: 46006280 */ add.s $f10,$f12,$f0
/* f076394: c6080008 */ lwc1 $f8,0x8($s0)
/* f076398: 00025840 */ sll $t3,$v0,0x1
/* f07639c: 3c017f1b */ lui $at,0x7f1b
/* f0763a0: 46025182 */ mul.s $f6,$f10,$f2
/* f0763a4: 46064100 */ add.s $f4,$f8,$f6
/* f0763a8: 05610007 */ bgez $t3,.JF0f0763c8
/* f0763ac: e6040008 */ swc1 $f4,0x8($s0)
/* f0763b0: c462004c */ lwc1 $f2,0x4c($v1)
/* f0763b4: c42ab14c */ lwc1 $f10,-0x4eb4($at)
/* f0763b8: c60c0008 */ lwc1 $f12,0x8($s0)
/* f0763bc: 46025202 */ mul.s $f8,$f10,$f2
/* f0763c0: 10000005 */ b .JF0f0763d8
/* f0763c4: 46086001 */ sub.s $f0,$f12,$f8
.JF0f0763c8:
/* f0763c8: c462004c */ lwc1 $f2,0x4c($v1)
/* f0763cc: c60c0008 */ lwc1 $f12,0x8($s0)
/* f0763d0: 46028182 */ mul.s $f6,$f16,$f2
/* f0763d4: 46066001 */ sub.s $f0,$f12,$f6
.JF0f0763d8:
/* f0763d8: 46006100 */ add.s $f4,$f12,$f0
/* f0763dc: 3c013f00 */ lui $at,0x3f00
/* f0763e0: 44814000 */ mtc1 $at,$f8
/* f0763e4: 46041282 */ mul.s $f10,$f2,$f4
/* f0763e8: c7a405e0 */ lwc1 $f4,0x5e0($sp)
/* f0763ec: 46085182 */ mul.s $f6,$f10,$f8
/* f0763f0: 46062280 */ add.s $f10,$f4,$f6
/* f0763f4: e7aa05e0 */ swc1 $f10,0x5e0($sp)
/* f0763f8: e6000008 */ swc1 $f0,0x8($s0)
/* f0763fc: 1000000c */ b .JF0f076430
/* f076400: c462004c */ lwc1 $f2,0x4c($v1)
.JF0f076404:
/* f076404: 46006100 */ add.s $f4,$f12,$f0
/* f076408: c6080008 */ lwc1 $f8,0x8($s0)
/* f07640c: 46022182 */ mul.s $f6,$f4,$f2
/* f076410: 46064280 */ add.s $f10,$f8,$f6
/* f076414: e60a0008 */ swc1 $f10,0x8($s0)
/* f076418: c6080008 */ lwc1 $f8,0x8($s0)
/* f07641c: c462004c */ lwc1 $f2,0x4c($v1)
/* f076420: c7a405e0 */ lwc1 $f4,0x5e0($sp)
/* f076424: 46024182 */ mul.s $f6,$f8,$f2
/* f076428: 46062280 */ add.s $f10,$f4,$f6
/* f07642c: e7aa05e0 */ swc1 $f10,0x5e0($sp)
.JF0f076430:
/* f076430: c6040010 */ lwc1 $f4,0x10($s0)
/* f076434: c6080004 */ lwc1 $f8,0x4($s0)
/* f076438: 27a5030c */ addiu $a1,$sp,0x30c
/* f07643c: 46022182 */ mul.s $f6,$f4,$f2
/* f076440: c6040018 */ lwc1 $f4,0x18($s0)
/* f076444: 46064280 */ add.s $f10,$f8,$f6
/* f076448: e60a0004 */ swc1 $f10,0x4($s0)
/* f07644c: c468004c */ lwc1 $f8,0x4c($v1)
/* f076450: c60a000c */ lwc1 $f10,0xc($s0)
/* f076454: 46082182 */ mul.s $f6,$f4,$f8
/* f076458: 46065100 */ add.s $f4,$f10,$f6
/* f07645c: c60a0004 */ lwc1 $f10,0x4($s0)
/* f076460: e604000c */ swc1 $f4,0xc($s0)
/* f076464: c462004c */ lwc1 $f2,0x4c($v1)
/* f076468: c7a805dc */ lwc1 $f8,0x5dc($sp)
/* f07646c: 8fa40074 */ lw $a0,0x74($sp)
/* f076470: 46025182 */ mul.s $f6,$f10,$f2
/* f076474: c7aa05e4 */ lwc1 $f10,0x5e4($sp)
/* f076478: 46064100 */ add.s $f4,$f8,$f6
/* f07647c: e7a405dc */ swc1 $f4,0x5dc($sp)
/* f076480: c608000c */ lwc1 $f8,0xc($s0)
/* f076484: 46024182 */ mul.s $f6,$f8,$f2
/* f076488: 46065100 */ add.s $f4,$f10,$f6
/* f07648c: 0c00573d */ jal mtx3ToMtx4
/* f076490: e7a405e4 */ swc1 $f4,0x5e4($sp)
/* f076494: 26050020 */ addiu $a1,$s0,0x20
/* f076498: 3c06800a */ lui $a2,0x800a
/* f07649c: 8cc6a664 */ lw $a2,-0x599c($a2)
/* f0764a0: afa50064 */ sw $a1,0x64($sp)
/* f0764a4: 0fc25d0e */ jal func0f096698
/* f0764a8: 27a4030c */ addiu $a0,$sp,0x30c
/* f0764ac: 27a4030c */ addiu $a0,$sp,0x30c
/* f0764b0: 0c005750 */ jal mtx4ToMtx3
/* f0764b4: 8fa50074 */ lw $a1,0x74($sp)
/* f0764b8: c6480008 */ lwc1 $f8,0x8($s2)
/* f0764bc: 26440028 */ addiu $a0,$s2,0x28
/* f0764c0: 27a505b8 */ addiu $a1,$sp,0x5b8
/* f0764c4: e7a805c8 */ swc1 $f8,0x5c8($sp)
/* f0764c8: c64a000c */ lwc1 $f10,0xc($s2)
/* f0764cc: e7aa05cc */ swc1 $f10,0x5cc($sp)
/* f0764d0: c6460010 */ lwc1 $f6,0x10($s2)
/* f0764d4: afa4006c */ sw $a0,0x6c($sp)
/* f0764d8: 0fc19a31 */ jal roomsCopy
/* f0764dc: e7a605d0 */ swc1 $f6,0x5d0($sp)
/* f0764e0: 8e040088 */ lw $a0,0x88($s0)
/* f0764e4: 50800004 */ beqzl $a0,.JF0f0764f8
/* f0764e8: 8e0c0000 */ lw $t4,0x0($s0)
/* f0764ec: 0fc194a6 */ jal propSetPerimEnabled
/* f0764f0: 00002825 */ move $a1,$zero
/* f0764f4: 8e0c0000 */ lw $t4,0x0($s0)
.JF0f0764f8:
/* f0764f8: 318f0004 */ andi $t7,$t4,0x4
/* f0764fc: 11e00007 */ beqz $t7,.JF0f07651c
/* f076500: 02202025 */ move $a0,$s1
/* f076504: 27a505dc */ addiu $a1,$sp,0x5dc
/* f076508: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f07650c: 0fc1b786 */ jal func0f06cd00
/* f076510: 27a705f4 */ addiu $a3,$sp,0x5f4
/* f076514: 10000007 */ b .JF0f076534
/* f076518: afa20600 */ sw $v0,0x600($sp)
.JF0f07651c:
/* f07651c: 02202025 */ move $a0,$s1
/* f076520: 27a505dc */ addiu $a1,$sp,0x5dc
/* f076524: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f076528: 0fc1b925 */ jal func0f06d37c
/* f07652c: 27a705f4 */ addiu $a3,$sp,0x5f4
/* f076530: afa20600 */ sw $v0,0x600($sp)
.JF0f076534:
/* f076534: 8e040088 */ lw $a0,0x88($s0)
/* f076538: 50800004 */ beqzl $a0,.JF0f07654c
/* f07653c: 240e0001 */ li $t6,0x1
/* f076540: 0fc194a6 */ jal propSetPerimEnabled
/* f076544: 24050001 */ li $a1,0x1
/* f076548: 240e0001 */ li $t6,0x1
.JF0f07654c:
/* f07654c: afae05d8 */ sw $t6,0x5d8($sp)
/* f076550: 8e190000 */ lw $t9,0x0($s0)
/* f076554: 33380004 */ andi $t8,$t9,0x4
/* f076558: 53000318 */ beqzl $t8,.JF0f0771bc
/* f07655c: 8fae034c */ lw $t6,0x34c($sp)
/* f076560: 8fa90600 */ lw $t1,0x600($sp)
/* f076564: 3c038007 */ lui $v1,0x8007
/* f076568: 552002da */ bnezl $t1,.JF0f0770d4
/* f07656c: 8faa034c */ lw $t2,0x34c($sp)
/* f076570: 8c639880 */ lw $v1,-0x6780($v1)
/* f076574: afa001f8 */ sw $zero,0x1f8($sp)
/* f076578: afa001f4 */ sw $zero,0x1f4($sp)
/* f07657c: 5060000a */ beqzl $v1,.JF0f0765a8
/* f076580: 92220003 */ lbu $v0,0x3($s1)
/* f076584: afa301f4 */ sw $v1,0x1f4($sp)
/* f076588: 8c620018 */ lw $v0,0x18($v1)
/* f07658c: 10400005 */ beqz $v0,.JF0f0765a4
/* f076590: 00401825 */ move $v1,$v0
.JF0f076594:
/* f076594: 8c420018 */ lw $v0,0x18($v0)
/* f076598: 5440fffe */ bnezl $v0,.JF0f076594
/* f07659c: 00401825 */ move $v1,$v0
/* f0765a0: afa301f4 */ sw $v1,0x1f4($sp)
.JF0f0765a4:
/* f0765a4: 92220003 */ lbu $v0,0x3($s1)
.JF0f0765a8:
/* f0765a8: 2401000d */ li $at,0xd
/* f0765ac: 8faa01f4 */ lw $t2,0x1f4($sp)
/* f0765b0: 54410006 */ bnel $v0,$at,.JF0f0765cc
/* f0765b4: 24010008 */ li $at,0x8
/* f0765b8: 15400030 */ bnez $t2,.JF0f07667c
/* f0765bc: 240b0001 */ li $t3,0x1
/* f0765c0: 1000002e */ b .JF0f07667c
/* f0765c4: afab01f8 */ sw $t3,0x1f8($sp)
/* f0765c8: 24010008 */ li $at,0x8
.JF0f0765cc:
/* f0765cc: 5441002c */ bnel $v0,$at,.JF0f076680
/* f0765d0: 8fb801f8 */ lw $t8,0x1f8($sp)
/* f0765d4: 9227005c */ lbu $a3,0x5c($s1)
/* f0765d8: 24010022 */ li $at,0x22
/* f0765dc: 10e10016 */ beq $a3,$at,.JF0f076638
/* f0765e0: 24010020 */ li $at,0x20
/* f0765e4: 10e10014 */ beq $a3,$at,.JF0f076638
/* f0765e8: 24010021 */ li $at,0x21
/* f0765ec: 10e10012 */ beq $a3,$at,.JF0f076638
/* f0765f0: 2401003d */ li $at,0x3d
/* f0765f4: 10e10010 */ beq $a3,$at,.JF0f076638
/* f0765f8: 2401003e */ li $at,0x3e
/* f0765fc: 10e1000e */ beq $a3,$at,.JF0f076638
/* f076600: 2401003f */ li $at,0x3f
/* f076604: 10e1000c */ beq $a3,$at,.JF0f076638
/* f076608: 24010056 */ li $at,0x56
/* f07660c: 10e1000a */ beq $a3,$at,.JF0f076638
/* f076610: 2401001a */ li $at,0x1a
/* f076614: 10e10008 */ beq $a3,$at,.JF0f076638
/* f076618: 24010035 */ li $at,0x35
/* f07661c: 10e10006 */ beq $a3,$at,.JF0f076638
/* f076620: 2624005c */ addiu $a0,$s1,0x5c
/* f076624: 0fc2cbcb */ jal gsetHasFunctionFlags
/* f076628: 24050100 */ li $a1,0x100
/* f07662c: 50400014 */ beqzl $v0,.JF0f076680
/* f076630: 8fb801f8 */ lw $t8,0x1f8($sp)
/* f076634: 9227005c */ lbu $a3,0x5c($s1)
.JF0f076638:
/* f076638: 240c0001 */ li $t4,0x1
/* f07663c: 24010055 */ li $at,0x55
/* f076640: 14e1000e */ bne $a3,$at,.JF0f07667c
/* f076644: afac01f8 */ sw $t4,0x1f8($sp)
/* f076648: 922f005f */ lbu $t7,0x5f($s1)
/* f07664c: 24010001 */ li $at,0x1
/* f076650: 55e1000b */ bnel $t7,$at,.JF0f076680
/* f076654: 8fb801f8 */ lw $t8,0x1f8($sp)
/* f076658: 862e0062 */ lh $t6,0x62($s1)
/* f07665c: 24010001 */ li $at,0x1
/* f076660: 241901e0 */ li $t9,0x1e0
/* f076664: 55c10005 */ bnel $t6,$at,.JF0f07667c
/* f076668: a6390062 */ sh $t9,0x62($s1)
/* f07666c: afa001f8 */ sw $zero,0x1f8($sp)
/* f076670: 10000002 */ b .JF0f07667c
/* f076674: a6200062 */ sh $zero,0x62($s1)
/* f076678: a6390062 */ sh $t9,0x62($s1)
.JF0f07667c:
/* f07667c: 8fb801f8 */ lw $t8,0x1f8($sp)
.JF0f076680:
/* f076680: 00004025 */ move $t0,$zero
/* f076684: 53000071 */ beqzl $t8,.JF0f07684c
/* f076688: 8fae034c */ lw $t6,0x34c($sp)
/* f07668c: 92290003 */ lbu $t1,0x3($s1)
/* f076690: 3c038007 */ lui $v1,0x8007
/* f076694: 24010008 */ li $at,0x8
/* f076698: 15210002 */ bne $t1,$at,.JF0f0766a4
/* f07669c: 8c639880 */ lw $v1,-0x6780($v1)
/* f0766a0: 02204025 */ move $t0,$s1
.JF0f0766a4:
/* f0766a4: 50600017 */ beqzl $v1,.JF0f076704
/* f0766a8: 8faa01f4 */ lw $t2,0x1f4($sp)
/* f0766ac: 90620000 */ lbu $v0,0x0($v1)
/* f0766b0: 24010001 */ li $at,0x1
/* f0766b4: 10410005 */ beq $v0,$at,.JF0f0766cc
/* f0766b8: 24010004 */ li $at,0x4
/* f0766bc: 10410003 */ beq $v0,$at,.JF0f0766cc
/* f0766c0: 24010002 */ li $at,0x2
/* f0766c4: 5441000f */ bnel $v0,$at,.JF0f076704
/* f0766c8: 8faa01f4 */ lw $t2,0x1f4($sp)
.JF0f0766cc:
/* f0766cc: 1100000c */ beqz $t0,.JF0f076700
/* f0766d0: 8c640004 */ lw $a0,0x4($v1)
/* f0766d4: 9102005c */ lbu $v0,0x5c($t0)
/* f0766d8: 24010056 */ li $at,0x56
/* f0766dc: 10410003 */ beq $v0,$at,.JF0f0766ec
/* f0766e0: 2401001a */ li $at,0x1a
/* f0766e4: 54410007 */ bnel $v0,$at,.JF0f076704
/* f0766e8: 8faa01f4 */ lw $t2,0x1f4($sp)
.JF0f0766ec:
/* f0766ec: 908d0003 */ lbu $t5,0x3($a0)
/* f0766f0: 24010008 */ li $at,0x8
/* f0766f4: 55a10003 */ bnel $t5,$at,.JF0f076704
/* f0766f8: 8faa01f4 */ lw $t2,0x1f4($sp)
/* f0766fc: afa001f8 */ sw $zero,0x1f8($sp)
.JF0f076700:
/* f076700: 8faa01f4 */ lw $t2,0x1f4($sp)
.JF0f076704:
/* f076704: 51400051 */ beqzl $t2,.JF0f07684c
/* f076708: 8fae034c */ lw $t6,0x34c($sp)
/* f07670c: 91420000 */ lbu $v0,0x0($t2)
/* f076710: 24010001 */ li $at,0x1
/* f076714: 8fab01f4 */ lw $t3,0x1f4($sp)
/* f076718: 10410006 */ beq $v0,$at,.JF0f076734
/* f07671c: 3c098007 */ lui $t1,0x8007
/* f076720: 24010004 */ li $at,0x4
/* f076724: 10410003 */ beq $v0,$at,.JF0f076734
/* f076728: 24010002 */ li $at,0x2
/* f07672c: 5441003a */ bnel $v0,$at,.JF0f076818
/* f076730: 24010003 */ li $at,0x3
.JF0f076734:
/* f076734: 8d630004 */ lw $v1,0x4($t3)
/* f076738: 8c6c0040 */ lw $t4,0x40($v1)
/* f07673c: 318f0080 */ andi $t7,$t4,0x80
/* f076740: 11e00007 */ beqz $t7,.JF0f076760
/* f076744: 00000000 */ nop
/* f076748: 8c6e0048 */ lw $t6,0x48($v1)
/* f07674c: 8dd90000 */ lw $t9,0x0($t6)
/* f076750: 33380800 */ andi $t8,$t9,0x800
/* f076754: 17000002 */ bnez $t8,.JF0f076760
/* f076758: 00000000 */ nop
/* f07675c: afa001f8 */ sw $zero,0x1f8($sp)
.JF0f076760:
/* f076760: 8d299894 */ lw $t1,-0x676c($t1)
/* f076764: 24012710 */ li $at,0x2710
/* f076768: 15210002 */ bne $t1,$at,.JF0f076774
/* f07676c: 00000000 */ nop
/* f076770: afa001f8 */ sw $zero,0x1f8($sp)
.JF0f076774:
/* f076774: 51000035 */ beqzl $t0,.JF0f07684c
/* f076778: 8fae034c */ lw $t6,0x34c($sp)
/* f07677c: 9102005c */ lbu $v0,0x5c($t0)
/* f076780: 24010056 */ li $at,0x56
/* f076784: 10410003 */ beq $v0,$at,.JF0f076794
/* f076788: 2401001a */ li $at,0x1a
/* f07678c: 5441002f */ bnel $v0,$at,.JF0f07684c
/* f076790: 8fae034c */ lw $t6,0x34c($sp)
.JF0f076794:
/* f076794: 90620003 */ lbu $v0,0x3($v1)
/* f076798: 2401002a */ li $at,0x2a
/* f07679c: 26440008 */ addiu $a0,$s2,0x8
/* f0767a0: 10410003 */ beq $v0,$at,.JF0f0767b0
/* f0767a4: 8fa5006c */ lw $a1,0x6c($sp)
/* f0767a8: 2401002f */ li $at,0x2f
/* f0767ac: 14410026 */ bne $v0,$at,.JF0f076848
.JF0f0767b0:
/* f0767b0: 2406ffff */ li $a2,-1
/* f0767b4: afa301e4 */ sw $v1,0x1e4($sp)
/* f0767b8: afa40070 */ sw $a0,0x70($sp)
/* f0767bc: 0fc2a521 */ jal bgunPlayGlassHitSound
/* f0767c0: afa801ec */ sw $t0,0x1ec($sp)
/* f0767c4: 8fa401e4 */ lw $a0,0x1e4($sp)
/* f0767c8: 8fa801ec */ lw $t0,0x1ec($sp)
/* f0767cc: 3c0542c8 */ lui $a1,0x42c8
/* f0767d0: 8c8d000c */ lw $t5,0xc($a0)
/* f0767d4: 8fa60070 */ lw $a2,0x70($sp)
/* f0767d8: 3c0b800a */ lui $t3,0x800a
/* f0767dc: 31aa4000 */ andi $t2,$t5,0x4000
/* f0767e0: 5540001a */ bnezl $t2,.JF0f07684c
/* f0767e4: 8fae034c */ lw $t6,0x34c($sp)
/* f0767e8: 8d6ba8bc */ lw $t3,-0x5744($t3)
/* f0767ec: 9107005c */ lbu $a3,0x5c($t0)
/* f0767f0: afa001f8 */ sw $zero,0x1f8($sp)
/* f0767f4: 0fc218ca */ jal objTakeGunfire
/* f0767f8: afab0010 */ sw $t3,0x10($sp)
/* f0767fc: 8fa401f4 */ lw $a0,0x1f4($sp)
/* f076800: 0fc1c5ec */ jal objDropRecursively
/* f076804: 00002825 */ move $a1,$zero
/* f076808: 240c0001 */ li $t4,0x1
/* f07680c: 1000000e */ b .JF0f076848
/* f076810: afac034c */ sw $t4,0x34c($sp)
/* f076814: 24010003 */ li $at,0x3
.JF0f076818:
/* f076818: 10410004 */ beq $v0,$at,.JF0f07682c
/* f07681c: 8faf01f4 */ lw $t7,0x1f4($sp)
/* f076820: 24010006 */ li $at,0x6
/* f076824: 54410009 */ bnel $v0,$at,.JF0f07684c
/* f076828: 8fae034c */ lw $t6,0x34c($sp)
.JF0f07682c:
/* f07682c: 0fc0d471 */ jal chrGetShield
/* f076830: 8de40004 */ lw $a0,0x4($t7)
/* f076834: 4600a03c */ c.lt.s $f20,$f0
/* f076838: 00000000 */ nop
/* f07683c: 45020003 */ bc1fl .JF0f07684c
/* f076840: 8fae034c */ lw $t6,0x34c($sp)
/* f076844: afa001f8 */ sw $zero,0x1f8($sp)
.JF0f076848:
/* f076848: 8fae034c */ lw $t6,0x34c($sp)
.JF0f07684c:
/* f07684c: 3c198007 */ lui $t9,0x8007
/* f076850: 55c00163 */ bnezl $t6,.JF0f076de0
/* f076854: 8faf034c */ lw $t7,0x34c($sp)
/* f076858: 8f399880 */ lw $t9,-0x6780($t9)
/* f07685c: 1320015f */ beqz $t9,.JF0f076ddc
/* f076860: afb90068 */ sw $t9,0x68($sp)
/* f076864: 92380003 */ lbu $t8,0x3($s1)
/* f076868: 24010008 */ li $at,0x8
/* f07686c: 5701015c */ bnel $t8,$at,.JF0f076de0
/* f076870: 8faf034c */ lw $t7,0x34c($sp)
/* f076874: 9227005c */ lbu $a3,0x5c($s1)
/* f076878: 24010056 */ li $at,0x56
/* f07687c: 8fa901f4 */ lw $t1,0x1f4($sp)
/* f076880: 10e10003 */ beq $a3,$at,.JF0f076890
/* f076884: 2401001a */ li $at,0x1a
/* f076888: 54e100aa */ bnel $a3,$at,.JF0f076b34
/* f07688c: 24010053 */ li $at,0x53
.JF0f076890:
/* f076890: 91220000 */ lbu $v0,0x0($t1)
/* f076894: 24010003 */ li $at,0x3
/* f076898: 10410006 */ beq $v0,$at,.JF0f0768b4
/* f07689c: 24010006 */ li $at,0x6
/* f0768a0: 54410072 */ bnel $v0,$at,.JF0f076a6c
/* f0768a4: 24010001 */ li $at,0x1
/* f0768a8: 8d2d0004 */ lw $t5,0x4($t1)
/* f0768ac: 51a0006f */ beqzl $t5,.JF0f076a6c
/* f0768b0: 24010001 */ li $at,0x1
.JF0f0768b4:
/* f0768b4: 8e220048 */ lw $v0,0x48($s1)
/* f0768b8: 8faa01f4 */ lw $t2,0x1f4($sp)
/* f0768bc: 8c4b0000 */ lw $t3,0x0($v0)
/* f0768c0: 8d440004 */ lw $a0,0x4($t2)
/* f0768c4: 316c0001 */ andi $t4,$t3,0x1
/* f0768c8: 51800145 */ beqzl $t4,.JF0f076de0
/* f0768cc: 8faf034c */ lw $t7,0x34c($sp)
/* f0768d0: 8c4f0090 */ lw $t7,0x90($v0)
/* f0768d4: 2627005c */ addiu $a3,$s1,0x5c
/* f0768d8: 5de00141 */ bgtzl $t7,.JF0f076de0
/* f0768dc: 8faf034c */ lw $t7,0x34c($sp)
/* f0768e0: 8c4e0088 */ lw $t6,0x88($v0)
/* f0768e4: afa70070 */ sw $a3,0x70($sp)
/* f0768e8: afa401dc */ sw $a0,0x1dc($sp)
/* f0768ec: 0fc0d471 */ jal chrGetShield
/* f0768f0: afae01d4 */ sw $t6,0x1d4($sp)
/* f0768f4: 8fa40070 */ lw $a0,0x70($sp)
/* f0768f8: 0fc2cb6a */ jal gsetGetDamage
/* f0768fc: e7a001d8 */ swc1 $f0,0x1d8($sp)
/* f076900: 3c188007 */ lui $t8,0x8007
/* f076904: 3c098007 */ lui $t1,0x8007
/* f076908: 3c0d800a */ lui $t5,0x800a
/* f07690c: 3c0a800a */ lui $t2,0x800a
/* f076910: 3c0b8007 */ lui $t3,0x8007
/* f076914: 8d6b9888 */ lw $t3,-0x6778($t3)
/* f076918: 8d4ad530 */ lw $t2,-0x2ad0($t2)
/* f07691c: 8dadd534 */ lw $t5,-0x2acc($t5)
/* f076920: 8d299880 */ lw $t1,-0x6780($t1)
/* f076924: 8f189884 */ lw $t8,-0x677c($t8)
/* f076928: 8fb901d4 */ lw $t9,0x1d4($sp)
/* f07692c: 3c0c8007 */ lui $t4,0x8007
/* f076930: 258c988c */ addiu $t4,$t4,-26484
/* f076934: 44050000 */ mfc1 $a1,$f0
/* f076938: 3c06800a */ lui $a2,0x800a
/* f07693c: 24c6d538 */ addiu $a2,$a2,-10952
/* f076940: afac0028 */ sw $t4,0x28($sp)
/* f076944: 8fa70070 */ lw $a3,0x70($sp)
/* f076948: 8fa401dc */ lw $a0,0x1dc($sp)
/* f07694c: afab0024 */ sw $t3,0x24($sp)
/* f076950: afaa0020 */ sw $t2,0x20($sp)
/* f076954: afad001c */ sw $t5,0x1c($sp)
/* f076958: afa90018 */ sw $t1,0x18($sp)
/* f07695c: afb80014 */ sw $t8,0x14($sp)
/* f076960: 0fc0d500 */ jal func0f0341dc
/* f076964: afb90010 */ sw $t9,0x10($sp)
/* f076968: c7a401d8 */ lwc1 $f4,0x1d8($sp)
/* f07696c: 8faf01d4 */ lw $t7,0x1d4($sp)
/* f076970: 3c058007 */ lui $a1,0x8007
/* f076974: 4614203e */ c.le.s $f4,$f20
/* f076978: 3c068007 */ lui $a2,0x8007
/* f07697c: 27a705e8 */ addiu $a3,$sp,0x5e8
/* f076980: 27b905f4 */ addiu $t9,$sp,0x5f4
/* f076984: 45020116 */ bc1fl .JF0f076de0
/* f076988: 8faf034c */ lw $t7,0x34c($sp)
/* f07698c: 51e00005 */ beqzl $t7,.JF0f0769a4
/* f076990: afa00088 */ sw $zero,0x88($sp)
/* f076994: 8dee0004 */ lw $t6,0x4($t7)
/* f076998: 10000002 */ b .JF0f0769a4
/* f07699c: afae0088 */ sw $t6,0x88($sp)
/* f0769a0: afa00088 */ sw $zero,0x88($sp)
.JF0f0769a4:
/* f0769a4: 8fb80088 */ lw $t8,0x88($sp)
/* f0769a8: 8fa401dc */ lw $a0,0x1dc($sp)
/* f0769ac: 8ca59880 */ lw $a1,-0x6780($a1)
/* f0769b0: 8cc69884 */ lw $a2,-0x677c($a2)
/* f0769b4: afb90010 */ sw $t9,0x10($sp)
/* f0769b8: 0fc09c2b */ jal chrEmitSparks
/* f0769bc: afb80014 */ sw $t8,0x14($sp)
/* f0769c0: 3c098007 */ lui $t1,0x8007
/* f0769c4: 8d299880 */ lw $t1,-0x6780($t1)
/* f0769c8: 3c04800a */ lui $a0,0x800a
/* f0769cc: 912d0001 */ lbu $t5,0x1($t1)
/* f0769d0: 31aa0002 */ andi $t2,$t5,0x2
/* f0769d4: 51400102 */ beqzl $t2,.JF0f076de0
/* f0769d8: 8faf034c */ lw $t7,0x34c($sp)
/* f0769dc: 8c84d530 */ lw $a0,-0x2ad0($a0)
/* f0769e0: 3c028007 */ lui $v0,0x8007
/* f0769e4: 508000fe */ beqzl $a0,.JF0f076de0
/* f0769e8: 8faf034c */ lw $t7,0x34c($sp)
/* f0769ec: 8c429884 */ lw $v0,-0x677c($v0)
/* f0769f0: 24010064 */ li $at,0x64
/* f0769f4: 104100f9 */ beq $v0,$at,.JF0f076ddc
/* f0769f8: 2401006e */ li $at,0x6e
/* f0769fc: 104100f7 */ beq $v0,$at,.JF0f076ddc
/* f076a00: 3c05800a */ lui $a1,0x800a
/* f076a04: 8ca5d534 */ lw $a1,-0x2acc($a1)
/* f076a08: 0c00695b */ jal model0001a5cc
/* f076a0c: 00003025 */ move $a2,$zero
/* f076a10: 0fc2d9de */ jal camGetWorldToScreenMtxf
/* f076a14: afa20184 */ sw $v0,0x184($sp)
/* f076a18: 00402025 */ move $a0,$v0
/* f076a1c: 27a505e8 */ addiu $a1,$sp,0x5e8
/* f076a20: 0c0056c2 */ jal mtx4TransformVec
/* f076a24: 27a601c8 */ addiu $a2,$sp,0x1c8
/* f076a28: 8fa40184 */ lw $a0,0x184($sp)
/* f076a2c: 0c005c4f */ jal mtx0001719c
/* f076a30: 27a50188 */ addiu $a1,$sp,0x188
/* f076a34: 27a40188 */ addiu $a0,$sp,0x188
/* f076a38: 0c0056c1 */ jal mtx4TransformVecInPlace
/* f076a3c: 27a501c8 */ addiu $a1,$sp,0x1c8
/* f076a40: 3c04800a */ lui $a0,0x800a
/* f076a44: 3c058007 */ lui $a1,0x8007
/* f076a48: 3c06800a */ lui $a2,0x800a
/* f076a4c: 8cc6d534 */ lw $a2,-0x2acc($a2)
/* f076a50: 8ca59884 */ lw $a1,-0x677c($a1)
/* f076a54: 8c84d530 */ lw $a0,-0x2ad0($a0)
/* f076a58: 0fc09ca3 */ jal chr0f0260c4
/* f076a5c: 27a701c8 */ addiu $a3,$sp,0x1c8
/* f076a60: 100000df */ b .JF0f076de0
/* f076a64: 8faf034c */ lw $t7,0x34c($sp)
/* f076a68: 24010001 */ li $at,0x1
.JF0f076a6c:
/* f076a6c: 144100db */ bne $v0,$at,.JF0f076ddc
/* f076a70: 8fab01f4 */ lw $t3,0x1f4($sp)
/* f076a74: 3c0f8007 */ lui $t7,0x8007
/* f076a78: 8def9894 */ lw $t7,-0x676c($t7)
/* f076a7c: 8d6c0004 */ lw $t4,0x4($t3)
/* f076a80: 24012710 */ li $at,0x2710
/* f076a84: 15e1001a */ bne $t7,$at,.JF0f076af0
/* f076a88: afac0180 */ sw $t4,0x180($sp)
/* f076a8c: 8d8e0010 */ lw $t6,0x10($t4)
/* f076a90: 8fa60068 */ lw $a2,0x68($sp)
/* f076a94: 8fa401f4 */ lw $a0,0x1f4($sp)
/* f076a98: 31d91000 */ andi $t9,$t6,0x1000
/* f076a9c: 13200005 */ beqz $t9,.JF0f076ab4
/* f076aa0: 3c07800a */ lui $a3,0x800a
/* f076aa4: 3c014080 */ lui $at,0x4080
/* f076aa8: 44810000 */ mtc1 $at,$f0
/* f076aac: 10000004 */ b .JF0f076ac0
/* f076ab0: 00000000 */ nop
.JF0f076ab4:
/* f076ab4: 3c014100 */ lui $at,0x4100
/* f076ab8: 44810000 */ mtc1 $at,$f0
/* f076abc: 00000000 */ nop
.JF0f076ac0:
/* f076ac0: 3c18800a */ lui $t8,0x800a
/* f076ac4: 3c098007 */ lui $t1,0x8007
/* f076ac8: 8d299888 */ lw $t1,-0x6778($t1)
/* f076acc: 8f18d530 */ lw $t8,-0x2ad0($t8)
/* f076ad0: 3c0d8007 */ lui $t5,0x8007
/* f076ad4: 25ad988c */ addiu $t5,$t5,-26484
/* f076ad8: 44050000 */ mfc1 $a1,$f0
/* f076adc: afad0018 */ sw $t5,0x18($sp)
/* f076ae0: 8ce7d534 */ lw $a3,-0x2acc($a3)
/* f076ae4: afa90014 */ sw $t1,0x14($sp)
/* f076ae8: 0fc0a851 */ jal shieldhitCreate
/* f076aec: afb80010 */ sw $t8,0x10($sp)
.JF0f076af0:
/* f076af0: 8faa0180 */ lw $t2,0x180($sp)
/* f076af4: 2401014c */ li $at,0x14c
/* f076af8: 3c0f8007 */ lui $t7,0x8007
/* f076afc: 854b0004 */ lh $t3,0x4($t2)
/* f076b00: 556100b7 */ bnel $t3,$at,.JF0f076de0
/* f076b04: 8faf034c */ lw $t7,0x34c($sp)
/* f076b08: 8def9894 */ lw $t7,-0x676c($t7)
/* f076b0c: 24010b9e */ li $at,0xb9e
/* f076b10: 01402025 */ move $a0,$t2
/* f076b14: 55e100b2 */ bnel $t7,$at,.JF0f076de0
/* f076b18: 8faf034c */ lw $t7,0x34c($sp)
/* f076b1c: 4406a000 */ mfc1 $a2,$f20
/* f076b20: 0fc6858b */ jal frCalculateHit
/* f076b24: 27a505e8 */ addiu $a1,$sp,0x5e8
/* f076b28: 100000ad */ b .JF0f076de0
/* f076b2c: 8faf034c */ lw $t7,0x34c($sp)
/* f076b30: 24010053 */ li $at,0x53
.JF0f076b34:
/* f076b34: 10e10003 */ beq $a3,$at,.JF0f076b44
/* f076b38: 24010054 */ li $at,0x54
/* f076b3c: 14e1006b */ bne $a3,$at,.JF0f076cec
/* f076b40: 8fa901f4 */ lw $t1,0x1f4($sp)
.JF0f076b44:
/* f076b44: 8e2c0040 */ lw $t4,0x40($s1)
/* f076b48: 3c01f000 */ lui $at,0xf000
/* f076b4c: 8fb80068 */ lw $t8,0x68($sp)
/* f076b50: 01817024 */ and $t6,$t4,$at
/* f076b54: 000ecf02 */ srl $t9,$t6,0x1c
/* f076b58: afb9017c */ sw $t9,0x17c($sp)
/* f076b5c: 93020000 */ lbu $v0,0x0($t8)
/* f076b60: 24010003 */ li $at,0x3
/* f076b64: 24090001 */ li $t1,0x1
/* f076b68: 10410006 */ beq $v0,$at,.JF0f076b84
/* f076b6c: afa9034c */ sw $t1,0x34c($sp)
/* f076b70: 24010006 */ li $at,0x6
/* f076b74: 5441002b */ bnel $v0,$at,.JF0f076c24
/* f076b78: 24010001 */ li $at,0x1
/* f076b7c: 8f0d0004 */ lw $t5,0x4($t8)
/* f076b80: 11a00027 */ beqz $t5,.JF0f076c20
.JF0f076b84:
/* f076b84: 3c0b800a */ lui $t3,0x800a
/* f076b88: 8d6ba948 */ lw $t3,-0x56b8($t3)
/* f076b8c: 00001825 */ move $v1,$zero
/* f076b90: 2627005c */ addiu $a3,$s1,0x5c
/* f076b94: 11600008 */ beqz $t3,.JF0f076bb8
/* f076b98: 8fa4017c */ lw $a0,0x17c($sp)
/* f076b9c: afa00178 */ sw $zero,0x178($sp)
/* f076ba0: 0fc63653 */ jal mpGetChrFromPlayerIndex
/* f076ba4: afa70070 */ sw $a3,0x70($sp)
/* f076ba8: 8fa30178 */ lw $v1,0x178($sp)
/* f076bac: 10400002 */ beqz $v0,.JF0f076bb8
/* f076bb0: 8fa70070 */ lw $a3,0x70($sp)
/* f076bb4: 8c43001c */ lw $v1,0x1c($v0)
.JF0f076bb8:
/* f076bb8: 3c028007 */ lui $v0,0x8007
/* f076bbc: 8c429880 */ lw $v0,-0x6780($v0)
/* f076bc0: 3c0f8007 */ lui $t7,0x8007
/* f076bc4: 3c0a800a */ lui $t2,0x800a
/* f076bc8: 8c440004 */ lw $a0,0x4($v0)
/* f076bcc: 3c0c800a */ lui $t4,0x800a
/* f076bd0: 3c0e8007 */ lui $t6,0x8007
/* f076bd4: 8dce9888 */ lw $t6,-0x6778($t6)
/* f076bd8: 8d8cd530 */ lw $t4,-0x2ad0($t4)
/* f076bdc: 8d4ad534 */ lw $t2,-0x2acc($t2)
/* f076be0: 8def9884 */ lw $t7,-0x677c($t7)
/* f076be4: 3c198007 */ lui $t9,0x8007
/* f076be8: 2739988c */ addiu $t9,$t9,-26484
/* f076bec: 3c06800a */ lui $a2,0x800a
/* f076bf0: 24c6d538 */ addiu $a2,$a2,-10952
/* f076bf4: afb90028 */ sw $t9,0x28($sp)
/* f076bf8: afa30010 */ sw $v1,0x10($sp)
/* f076bfc: 3c054000 */ lui $a1,0x4000
/* f076c00: afa20018 */ sw $v0,0x18($sp)
/* f076c04: afae0024 */ sw $t6,0x24($sp)
/* f076c08: afac0020 */ sw $t4,0x20($sp)
/* f076c0c: afaa001c */ sw $t2,0x1c($sp)
/* f076c10: 0fc0d500 */ jal func0f0341dc
/* f076c14: afaf0014 */ sw $t7,0x14($sp)
/* f076c18: 1000002f */ b .JF0f076cd8
/* f076c1c: 02202025 */ move $a0,$s1
.JF0f076c20:
/* f076c20: 24010001 */ li $at,0x1
.JF0f076c24:
/* f076c24: 10410003 */ beq $v0,$at,.JF0f076c34
/* f076c28: 8fa60068 */ lw $a2,0x68($sp)
/* f076c2c: 24010004 */ li $at,0x4
/* f076c30: 14410028 */ bne $v0,$at,.JF0f076cd4
.JF0f076c34:
/* f076c34: 3c188007 */ lui $t8,0x8007
/* f076c38: 8f189894 */ lw $t8,-0x676c($t8)
/* f076c3c: 26490008 */ addiu $t1,$s2,0x8
/* f076c40: afa90070 */ sw $t1,0x70($sp)
/* f076c44: 24012710 */ li $at,0x2710
/* f076c48: 1701001d */ bne $t8,$at,.JF0f076cc0
/* f076c4c: 8cc40004 */ lw $a0,0x4($a2)
/* f076c50: 8c8d0010 */ lw $t5,0x10($a0)
/* f076c54: 8fa401f4 */ lw $a0,0x1f4($sp)
/* f076c58: 3c07800a */ lui $a3,0x800a
/* f076c5c: 31ab1000 */ andi $t3,$t5,0x1000
/* f076c60: 11600005 */ beqz $t3,.JF0f076c78
/* f076c64: 3c0f800a */ lui $t7,0x800a
/* f076c68: 3c014080 */ lui $at,0x4080
/* f076c6c: 44810000 */ mtc1 $at,$f0
/* f076c70: 10000004 */ b .JF0f076c84
/* f076c74: 00000000 */ nop
.JF0f076c78:
/* f076c78: 3c014100 */ lui $at,0x4100
/* f076c7c: 44810000 */ mtc1 $at,$f0
/* f076c80: 00000000 */ nop
.JF0f076c84:
/* f076c84: 3c0a8007 */ lui $t2,0x8007
/* f076c88: 8d4a9888 */ lw $t2,-0x6778($t2)
/* f076c8c: 8defd530 */ lw $t7,-0x2ad0($t7)
/* f076c90: 3c0c8007 */ lui $t4,0x8007
/* f076c94: 258c988c */ addiu $t4,$t4,-26484
/* f076c98: 44050000 */ mfc1 $a1,$f0
/* f076c9c: afac0018 */ sw $t4,0x18($sp)
/* f076ca0: 8ce7d534 */ lw $a3,-0x2acc($a3)
/* f076ca4: afaa0014 */ sw $t2,0x14($sp)
/* f076ca8: 0fc0a851 */ jal shieldhitCreate
/* f076cac: afaf0010 */ sw $t7,0x10($sp)
/* f076cb0: 3c0e8007 */ lui $t6,0x8007
/* f076cb4: 8dce9880 */ lw $t6,-0x6780($t6)
/* f076cb8: 9227005c */ lbu $a3,0x5c($s1)
/* f076cbc: 8dc40004 */ lw $a0,0x4($t6)
.JF0f076cc0:
/* f076cc0: 8fb9017c */ lw $t9,0x17c($sp)
/* f076cc4: 3c0542c8 */ lui $a1,0x42c8
/* f076cc8: 8fa60070 */ lw $a2,0x70($sp)
/* f076ccc: 0fc218d9 */ jal objDamage
/* f076cd0: afb90010 */ sw $t9,0x10($sp)
.JF0f076cd4:
/* f076cd4: 02202025 */ move $a0,$s1
.JF0f076cd8:
/* f076cd8: 24050001 */ li $a1,0x1
/* f076cdc: 0fc1ab62 */ jal func0f069c70
/* f076ce0: 24060001 */ li $a2,0x1
/* f076ce4: 1000003d */ b .JF0f076ddc
/* f076ce8: a6200062 */ sh $zero,0x62($s1)
.JF0f076cec:
/* f076cec: 91220000 */ lbu $v0,0x0($t1)
/* f076cf0: 24010003 */ li $at,0x3
/* f076cf4: 8fa60068 */ lw $a2,0x68($sp)
/* f076cf8: 10410006 */ beq $v0,$at,.JF0f076d14
/* f076cfc: 8fad01f4 */ lw $t5,0x1f4($sp)
/* f076d00: 24010006 */ li $at,0x6
/* f076d04: 54410012 */ bnel $v0,$at,.JF0f076d50
/* f076d08: 24010001 */ li $at,0x1
/* f076d0c: 8d380004 */ lw $t8,0x4($t1)
/* f076d10: 1300000e */ beqz $t8,.JF0f076d4c
.JF0f076d14:
/* f076d14: 3c0b8007 */ lui $t3,0x8007
/* f076d18: 8d6b9888 */ lw $t3,-0x6778($t3)
/* f076d1c: 3c0f8007 */ lui $t7,0x8007
/* f076d20: 8da40004 */ lw $a0,0x4($t5)
/* f076d24: 25ef988c */ addiu $t7,$t7,-26484
/* f076d28: 3c05800a */ lui $a1,0x800a
/* f076d2c: 3c07800a */ lui $a3,0x800a
/* f076d30: 8ce7d530 */ lw $a3,-0x2ad0($a3)
/* f076d34: 8ca5d534 */ lw $a1,-0x2acc($a1)
/* f076d38: afaf0014 */ sw $t7,0x14($sp)
/* f076d3c: 0fc0d4a9 */ jal func0f034080
/* f076d40: afab0010 */ sw $t3,0x10($sp)
/* f076d44: 10000026 */ b .JF0f076de0
/* f076d48: 8faf034c */ lw $t7,0x34c($sp)
.JF0f076d4c:
/* f076d4c: 24010001 */ li $at,0x1
.JF0f076d50:
/* f076d50: 10410004 */ beq $v0,$at,.JF0f076d64
/* f076d54: 3c0a8007 */ lui $t2,0x8007
/* f076d58: 24010004 */ li $at,0x4
/* f076d5c: 54410020 */ bnel $v0,$at,.JF0f076de0
/* f076d60: 8faf034c */ lw $t7,0x34c($sp)
.JF0f076d64:
/* f076d64: 8d4a9894 */ lw $t2,-0x676c($t2)
/* f076d68: 24012710 */ li $at,0x2710
/* f076d6c: 8fac01f4 */ lw $t4,0x1f4($sp)
/* f076d70: 1541001a */ bne $t2,$at,.JF0f076ddc
/* f076d74: 8fa60068 */ lw $a2,0x68($sp)
/* f076d78: 8d8e0004 */ lw $t6,0x4($t4)
/* f076d7c: 8fa401f4 */ lw $a0,0x1f4($sp)
/* f076d80: 3c07800a */ lui $a3,0x800a
/* f076d84: 8dd90010 */ lw $t9,0x10($t6)
/* f076d88: 3c18800a */ lui $t8,0x800a
/* f076d8c: 3c0d8007 */ lui $t5,0x8007
/* f076d90: 33291000 */ andi $t1,$t9,0x1000
/* f076d94: 11200005 */ beqz $t1,.JF0f076dac
/* f076d98: 3c0b8007 */ lui $t3,0x8007
/* f076d9c: 3c014080 */ lui $at,0x4080
/* f076da0: 44810000 */ mtc1 $at,$f0
/* f076da4: 10000004 */ b .JF0f076db8
/* f076da8: 00000000 */ nop
.JF0f076dac:
/* f076dac: 3c014100 */ lui $at,0x4100
/* f076db0: 44810000 */ mtc1 $at,$f0
/* f076db4: 00000000 */ nop
.JF0f076db8:
/* f076db8: 8f18d530 */ lw $t8,-0x2ad0($t8)
/* f076dbc: 8dad9888 */ lw $t5,-0x6778($t5)
/* f076dc0: 44050000 */ mfc1 $a1,$f0
/* f076dc4: 256b988c */ addiu $t3,$t3,-26484
/* f076dc8: afab0018 */ sw $t3,0x18($sp)
/* f076dcc: 8ce7d534 */ lw $a3,-0x2acc($a3)
/* f076dd0: afb80010 */ sw $t8,0x10($sp)
/* f076dd4: 0fc0a851 */ jal shieldhitCreate
/* f076dd8: afad0014 */ sw $t5,0x14($sp)
.JF0f076ddc:
/* f076ddc: 8faf034c */ lw $t7,0x34c($sp)
.JF0f076de0:
/* f076de0: 8faa01f8 */ lw $t2,0x1f8($sp)
/* f076de4: 55e000bb */ bnezl $t7,.JF0f0770d4
/* f076de8: 8faa034c */ lw $t2,0x34c($sp)
/* f076dec: 114000b8 */ beqz $t2,.JF0f0770d0
/* f076df0: 240c0001 */ li $t4,0x1
/* f076df4: afac034c */ sw $t4,0x34c($sp)
/* f076df8: 02202025 */ move $a0,$s1
/* f076dfc: 24050001 */ li $a1,0x1
/* f076e00: 0fc1ab62 */ jal func0f069c70
/* f076e04: 24060001 */ li $a2,0x1
/* f076e08: 922e0003 */ lbu $t6,0x3($s1)
/* f076e0c: 24010008 */ li $at,0x8
/* f076e10: 55c100ab */ bnel $t6,$at,.JF0f0770c0
/* f076e14: 02402025 */ move $a0,$s2
/* f076e18: 9227005c */ lbu $a3,0x5c($s1)
/* f076e1c: 24010056 */ li $at,0x56
/* f076e20: 10e10003 */ beq $a3,$at,.JF0f076e30
/* f076e24: 2401001a */ li $at,0x1a
/* f076e28: 54e100a5 */ bnel $a3,$at,.JF0f0770c0
/* f076e2c: 02402025 */ move $a0,$s2
.JF0f076e30:
/* f076e30: 8e390048 */ lw $t9,0x48($s1)
/* f076e34: 8f240088 */ lw $a0,0x88($t9)
/* f076e38: 5080006b */ beqzl $a0,.JF0f076fe8
/* f076e3c: 8fae01f4 */ lw $t6,0x1f4($sp)
/* f076e40: 90890000 */ lbu $t1,0x0($a0)
/* f076e44: 24010006 */ li $at,0x6
/* f076e48: 3c18800a */ lui $t8,0x800a
/* f076e4c: 15210065 */ bne $t1,$at,.JF0f076fe4
/* f076e50: 2627005c */ addiu $a3,$s1,0x5c
/* f076e54: 8f18a8bc */ lw $t8,-0x5744($t8)
/* f076e58: afa70070 */ sw $a3,0x70($sp)
/* f076e5c: 0fc4a361 */ jal playermgrGetPlayerNumByProp
/* f076e60: afb80164 */ sw $t8,0x164($sp)
/* f076e64: 0fc4a34d */ jal setCurrentPlayerNum
/* f076e68: 00402025 */ move $a0,$v0
/* f076e6c: 8fa40070 */ lw $a0,0x70($sp)
/* f076e70: 0fc2c528 */ jal mpstatsIncrementPlayerShotCount
/* f076e74: 00002825 */ move $a1,$zero
/* f076e78: 3c058007 */ lui $a1,0x8007
/* f076e7c: 8ca59880 */ lw $a1,-0x6780($a1)
/* f076e80: 8fa70070 */ lw $a3,0x70($sp)
/* f076e84: 10a00055 */ beqz $a1,.JF0f076fdc
/* f076e88: 00000000 */ nop
/* f076e8c: 90a20000 */ lbu $v0,0x0($a1)
/* f076e90: 24010001 */ li $at,0x1
/* f076e94: 5441000c */ bnel $v0,$at,.JF0f076ec8
/* f076e98: 24010003 */ li $at,0x3
/* f076e9c: 8ca40004 */ lw $a0,0x4($a1)
/* f076ea0: 0fc21e98 */ jal objIsHealthy
/* f076ea4: afa70070 */ sw $a3,0x70($sp)
/* f076ea8: 1040004c */ beqz $v0,.JF0f076fdc
/* f076eac: 8fa70070 */ lw $a3,0x70($sp)
/* f076eb0: 00e02025 */ move $a0,$a3
/* f076eb4: 0fc2c528 */ jal mpstatsIncrementPlayerShotCount
/* f076eb8: 24050006 */ li $a1,0x6
/* f076ebc: 10000047 */ b .JF0f076fdc
/* f076ec0: 00000000 */ nop
/* f076ec4: 24010003 */ li $at,0x3
.JF0f076ec8:
/* f076ec8: 10410003 */ beq $v0,$at,.JF0f076ed8
/* f076ecc: 24010006 */ li $at,0x6
/* f076ed0: 14410042 */ bne $v0,$at,.JF0f076fdc
/* f076ed4: 00000000 */ nop
.JF0f076ed8:
/* f076ed8: 8ca30004 */ lw $v1,0x4($a1)
/* f076edc: 00003025 */ move $a2,$zero
/* f076ee0: 00a02025 */ move $a0,$a1
/* f076ee4: 50600007 */ beqzl $v1,.JF0f076f04
/* f076ee8: 24010006 */ li $at,0x6
/* f076eec: 806d0007 */ lb $t5,0x7($v1)
/* f076ef0: 24010005 */ li $at,0x5
/* f076ef4: 55a10003 */ bnel $t5,$at,.JF0f076f04
/* f076ef8: 24010006 */ li $at,0x6
/* f076efc: 24060001 */ li $a2,0x1
/* f076f00: 24010006 */ li $at,0x6
.JF0f076f04:
/* f076f04: 1441000e */ bne $v0,$at,.JF0f076f40
/* f076f08: 00000000 */ nop
/* f076f0c: afa6015c */ sw $a2,0x15c($sp)
/* f076f10: 0fc4a361 */ jal playermgrGetPlayerNumByProp
/* f076f14: afa70070 */ sw $a3,0x70($sp)
/* f076f18: 00025880 */ sll $t3,$v0,0x2
/* f076f1c: 3c0f800a */ lui $t7,0x800a
/* f076f20: 01eb7821 */ addu $t7,$t7,$t3
/* f076f24: 8defa694 */ lw $t7,-0x596c($t7)
/* f076f28: 8fa6015c */ lw $a2,0x15c($sp)
/* f076f2c: 8fa70070 */ lw $a3,0x70($sp)
/* f076f30: 8dea00d8 */ lw $t2,0xd8($t7)
/* f076f34: 11400002 */ beqz $t2,.JF0f076f40
/* f076f38: 00000000 */ nop
/* f076f3c: 24060001 */ li $a2,0x1
.JF0f076f40:
/* f076f40: 14c00026 */ bnez $a2,.JF0f076fdc
/* f076f44: 3c0c8007 */ lui $t4,0x8007
/* f076f48: 8d8c9884 */ lw $t4,-0x677c($t4)
/* f076f4c: 24010007 */ li $at,0x7
/* f076f50: 11800022 */ beqz $t4,.JF0f076fdc
/* f076f54: afac0088 */ sw $t4,0x88($sp)
/* f076f58: 1181001a */ beq $t4,$at,.JF0f076fc4
/* f076f5c: 00e02025 */ move $a0,$a3
/* f076f60: 24010008 */ li $at,0x8
/* f076f64: 1181000b */ beq $t4,$at,.JF0f076f94
/* f076f68: 24050001 */ li $a1,0x1
/* f076f6c: 2401000f */ li $at,0xf
/* f076f70: 11810014 */ beq $t4,$at,.JF0f076fc4
/* f076f74: 24010064 */ li $at,0x64
/* f076f78: 1181000a */ beq $t4,$at,.JF0f076fa4
/* f076f7c: 00e02025 */ move $a0,$a3
/* f076f80: 2401006e */ li $at,0x6e
/* f076f84: 1181000b */ beq $t4,$at,.JF0f076fb4
/* f076f88: 00e02025 */ move $a0,$a3
/* f076f8c: 10000011 */ b .JF0f076fd4
/* f076f90: 00e02025 */ move $a0,$a3
.JF0f076f94:
/* f076f94: 0fc2c528 */ jal mpstatsIncrementPlayerShotCount
/* f076f98: 00e02025 */ move $a0,$a3
/* f076f9c: 1000000f */ b .JF0f076fdc
/* f076fa0: 00000000 */ nop
.JF0f076fa4:
/* f076fa4: 0fc2c528 */ jal mpstatsIncrementPlayerShotCount
/* f076fa8: 24050004 */ li $a1,0x4
/* f076fac: 1000000b */ b .JF0f076fdc
/* f076fb0: 00000000 */ nop
.JF0f076fb4:
/* f076fb4: 0fc2c528 */ jal mpstatsIncrementPlayerShotCount
/* f076fb8: 24050005 */ li $a1,0x5
/* f076fbc: 10000007 */ b .JF0f076fdc
/* f076fc0: 00000000 */ nop
.JF0f076fc4:
/* f076fc4: 0fc2c528 */ jal mpstatsIncrementPlayerShotCount
/* f076fc8: 24050002 */ li $a1,0x2
/* f076fcc: 10000003 */ b .JF0f076fdc
/* f076fd0: 00000000 */ nop
.JF0f076fd4:
/* f076fd4: 0fc2c528 */ jal mpstatsIncrementPlayerShotCount
/* f076fd8: 24050003 */ li $a1,0x3
.JF0f076fdc:
/* f076fdc: 0fc4a34d */ jal setCurrentPlayerNum
/* f076fe0: 8fa40164 */ lw $a0,0x164($sp)
.JF0f076fe4:
/* f076fe4: 8fae01f4 */ lw $t6,0x1f4($sp)
.JF0f076fe8:
/* f076fe8: 51c0000a */ beqzl $t6,.JF0f077014
/* f076fec: 8e390048 */ lw $t9,0x48($s1)
/* f076ff0: 91c20000 */ lbu $v0,0x0($t6)
/* f076ff4: 24010001 */ li $at,0x1
/* f076ff8: 10410005 */ beq $v0,$at,.JF0f077010
/* f076ffc: 24010004 */ li $at,0x4
/* f077000: 10410003 */ beq $v0,$at,.JF0f077010
/* f077004: 24010002 */ li $at,0x2
/* f077008: 5441002d */ bnel $v0,$at,.JF0f0770c0
/* f07700c: 02402025 */ move $a0,$s2
.JF0f077010:
/* f077010: 8e390048 */ lw $t9,0x48($s1)
.JF0f077014:
/* f077014: c6080004 */ lwc1 $f8,0x4($s0)
/* f077018: 27a40150 */ addiu $a0,$sp,0x150
/* f07701c: 8f220088 */ lw $v0,0x88($t9)
/* f077020: e7a80150 */ swc1 $f8,0x150($sp)
/* f077024: c60a0008 */ lwc1 $f10,0x8($s0)
/* f077028: 27a50154 */ addiu $a1,$sp,0x154
/* f07702c: 27a60158 */ addiu $a2,$sp,0x158
/* f077030: e7aa0154 */ swc1 $f10,0x154($sp)
/* f077034: c606000c */ lwc1 $f6,0xc($s0)
/* f077038: afa2014c */ sw $v0,0x14c($sp)
/* f07703c: 0c0011e4 */ jal guNormalize
/* f077040: e7a60158 */ swc1 $f6,0x158($sp)
/* f077044: 8fa2014c */ lw $v0,0x14c($sp)
/* f077048: 50400005 */ beqzl $v0,.JF0f077060
/* f07704c: afa00088 */ sw $zero,0x88($sp)
/* f077050: 8c490004 */ lw $t1,0x4($v0)
/* f077054: 10000002 */ b .JF0f077060
/* f077058: afa90088 */ sw $t1,0x88($sp)
/* f07705c: afa00088 */ sw $zero,0x88($sp)
.JF0f077060:
/* f077060: 0fc4fa2a */ jal chrIsUsingPaintball
/* f077064: 8fa40088 */ lw $a0,0x88($sp)
/* f077068: 1040000c */ beqz $v0,.JF0f07709c
/* f07706c: 02402825 */ move $a1,$s2
/* f077070: 86440028 */ lh $a0,0x28($s2)
/* f077074: 27b805f4 */ addiu $t8,$sp,0x5f4
/* f077078: 240d0019 */ li $t5,0x19
/* f07707c: afad0014 */ sw $t5,0x14($sp)
/* f077080: afb80010 */ sw $t8,0x10($sp)
/* f077084: 02402825 */ move $a1,$s2
/* f077088: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f07708c: 0fc4bf7c */ jal sparksCreate
/* f077090: 27a70150 */ addiu $a3,$sp,0x150
/* f077094: 1000000a */ b .JF0f0770c0
/* f077098: 02402025 */ move $a0,$s2
.JF0f07709c:
/* f07709c: 86440028 */ lh $a0,0x28($s2)
/* f0770a0: 27ab05f4 */ addiu $t3,$sp,0x5f4
/* f0770a4: 240f0010 */ li $t7,0x10
/* f0770a8: afaf0014 */ sw $t7,0x14($sp)
/* f0770ac: afab0010 */ sw $t3,0x10($sp)
/* f0770b0: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f0770b4: 0fc4bf7c */ jal sparksCreate
/* f0770b8: 27a70150 */ addiu $a3,$sp,0x150
/* f0770bc: 02402025 */ move $a0,$s2
.JF0f0770c0:
/* f0770c0: 27a505e8 */ addiu $a1,$sp,0x5e8
/* f0770c4: 27a605f4 */ addiu $a2,$sp,0x5f4
/* f0770c8: 0fc1c06e */ jal objLand
/* f0770cc: 8fa7060c */ lw $a3,0x60c($sp)
.JF0f0770d0:
/* f0770d0: 8faa034c */ lw $t2,0x34c($sp)
.JF0f0770d4:
/* f0770d4: 8fac0600 */ lw $t4,0x600($sp)
/* f0770d8: 55400038 */ bnezl $t2,.JF0f0771bc
/* f0770dc: 8fae034c */ lw $t6,0x34c($sp)
/* f0770e0: 11800012 */ beqz $t4,.JF0f07712c
/* f0770e4: 26440008 */ addiu $a0,$s2,0x8
/* f0770e8: 8fa5006c */ lw $a1,0x6c($sp)
/* f0770ec: 27a605dc */ addiu $a2,$sp,0x5dc
/* f0770f0: 0fc19be5 */ jal func0f065e74
/* f0770f4: 27a7013c */ addiu $a3,$sp,0x13c
/* f0770f8: c7a405dc */ lwc1 $f4,0x5dc($sp)
/* f0770fc: 02402025 */ move $a0,$s2
/* f077100: e6440008 */ swc1 $f4,0x8($s2)
/* f077104: c7a805e0 */ lwc1 $f8,0x5e0($sp)
/* f077108: e648000c */ swc1 $f8,0xc($s2)
/* f07710c: c7aa05e4 */ lwc1 $f10,0x5e4($sp)
/* f077110: 0fc19b59 */ jal propDeregisterRooms
/* f077114: e64a0010 */ swc1 $f10,0x10($s2)
/* f077118: 27a4013c */ addiu $a0,$sp,0x13c
/* f07711c: 0fc19a31 */ jal roomsCopy
/* f077120: 8fa5006c */ lw $a1,0x6c($sp)
/* f077124: 10000025 */ b .JF0f0771bc
/* f077128: 8fae034c */ lw $t6,0x34c($sp)
.JF0f07712c:
/* f07712c: 3c038007 */ lui $v1,0x8007
/* f077130: 8c639880 */ lw $v1,-0x6780($v1)
/* f077134: c7a805e8 */ lwc1 $f8,0x5e8($sp)
/* f077138: 27a605dc */ addiu $a2,$sp,0x5dc
/* f07713c: 1060000c */ beqz $v1,.JF0f077170
/* f077140: 27a7012c */ addiu $a3,$sp,0x12c
/* f077144: 90620000 */ lbu $v0,0x0($v1)
/* f077148: 24010003 */ li $at,0x3
/* f07714c: 10410003 */ beq $v0,$at,.JF0f07715c
/* f077150: 24010006 */ li $at,0x6
/* f077154: 54410007 */ bnel $v0,$at,.JF0f077174
/* f077158: c7aa05ec */ lwc1 $f10,0x5ec($sp)
.JF0f07715c:
/* f07715c: c6460008 */ lwc1 $f6,0x8($s2)
/* f077160: e7a605dc */ swc1 $f6,0x5dc($sp)
/* f077164: c6440010 */ lwc1 $f4,0x10($s2)
/* f077168: 10000006 */ b .JF0f077184
/* f07716c: e7a405e4 */ swc1 $f4,0x5e4($sp)
.JF0f077170:
/* f077170: c7aa05ec */ lwc1 $f10,0x5ec($sp)
.JF0f077174:
/* f077174: c7a605f0 */ lwc1 $f6,0x5f0($sp)
/* f077178: e7a805dc */ swc1 $f8,0x5dc($sp)
/* f07717c: e7aa05e0 */ swc1 $f10,0x5e0($sp)
/* f077180: e7a605e4 */ swc1 $f6,0x5e4($sp)
.JF0f077184:
/* f077184: 0fc19be5 */ jal func0f065e74
/* f077188: 8fa5006c */ lw $a1,0x6c($sp)
/* f07718c: c7a405dc */ lwc1 $f4,0x5dc($sp)
/* f077190: 02402025 */ move $a0,$s2
/* f077194: e6440008 */ swc1 $f4,0x8($s2)
/* f077198: c7a805e0 */ lwc1 $f8,0x5e0($sp)
/* f07719c: e648000c */ swc1 $f8,0xc($s2)
/* f0771a0: c7aa05e4 */ lwc1 $f10,0x5e4($sp)
/* f0771a4: 0fc19b59 */ jal propDeregisterRooms
/* f0771a8: e64a0010 */ swc1 $f10,0x10($s2)
/* f0771ac: 27a4012c */ addiu $a0,$sp,0x12c
/* f0771b0: 0fc19a31 */ jal roomsCopy
/* f0771b4: 8fa5006c */ lw $a1,0x6c($sp)
/* f0771b8: 8fae034c */ lw $t6,0x34c($sp)
.JF0f0771bc:
/* f0771bc: 55c0039e */ bnezl $t6,.JF0f078038
/* f0771c0: 8fbf005c */ lw $ra,0x5c($sp)
/* f0771c4: 0fc1a705 */ jal objFindBboxRodata
/* f0771c8: 02202025 */ move $a0,$s1
/* f0771cc: 00402025 */ move $a0,$v0
/* f0771d0: 0fc19e9f */ jal func0f06695c
/* f0771d4: 8fa50074 */ lw $a1,0x74($sp)
/* f0771d8: e7a0037c */ swc1 $f0,0x37c($sp)
/* f0771dc: c6460008 */ lwc1 $f6,0x8($s2)
/* f0771e0: 26270058 */ addiu $a3,$s1,0x58
/* f0771e4: 27b9012a */ addiu $t9,$sp,0x12a
/* f0771e8: e7a605ac */ swc1 $f6,0x5ac($sp)
/* f0771ec: c644000c */ lwc1 $f4,0xc($s2)
/* f0771f0: 27a90380 */ addiu $t1,$sp,0x380
/* f0771f4: 27a405ac */ addiu $a0,$sp,0x5ac
/* f0771f8: 46002200 */ add.s $f8,$f4,$f0
/* f0771fc: 8fa5006c */ lw $a1,0x6c($sp)
/* f077200: 27a60390 */ addiu $a2,$sp,0x390
/* f077204: e7a805b0 */ swc1 $f8,0x5b0($sp)
/* f077208: c64a0010 */ lwc1 $f10,0x10($s2)
/* f07720c: afa70074 */ sw $a3,0x74($sp)
/* f077210: afa90014 */ sw $t1,0x14($sp)
/* f077214: afb90010 */ sw $t9,0x10($sp)
/* f077218: 0c00a83d */ jal cd0002a5e4
/* f07721c: e7aa05b4 */ swc1 $f10,0x5b4($sp)
/* f077220: 00021c00 */ sll $v1,$v0,0x10
/* f077224: 1840002e */ blez $v0,.JF0f0772e0
/* f077228: 0003c403 */ sra $t8,$v1,0x10
/* f07722c: c646000c */ lwc1 $f6,0xc($s2)
/* f077230: c7a4037c */ lwc1 $f4,0x37c($sp)
/* f077234: c7aa0390 */ lwc1 $f10,0x390($sp)
/* f077238: 27a405c8 */ addiu $a0,$sp,0x5c8
/* f07723c: 46043200 */ add.s $f8,$f6,$f4
/* f077240: 27a505b8 */ addiu $a1,$sp,0x5b8
/* f077244: 27a605ac */ addiu $a2,$sp,0x5ac
/* f077248: 24070021 */ li $a3,0x21
/* f07724c: 460a403c */ c.lt.s $f8,$f10
/* f077250: 240d0003 */ li $t5,0x3
/* f077254: 45020023 */ bc1fl .JF0f0772e4
/* f077258: 26440008 */ addiu $a0,$s2,0x8
/* f07725c: afad0010 */ sw $t5,0x10($sp)
/* f077260: 0c00b5aa */ jal cd0002db98
/* f077264: a7b8038e */ sh $t8,0x38e($sp)
/* f077268: 1440001d */ bnez $v0,.JF0f0772e0
/* f07726c: 87a3038e */ lh $v1,0x38e($sp)
/* f077270: c7a60380 */ lwc1 $f6,0x380($sp)
/* f077274: c7a40384 */ lwc1 $f4,0x384($sp)
/* f077278: c7a80388 */ lwc1 $f8,0x388($sp)
/* f07727c: 240b0001 */ li $t3,0x1
/* f077280: afab0354 */ sw $t3,0x354($sp)
/* f077284: 27a405f4 */ addiu $a0,$sp,0x5f4
/* f077288: 27a505f8 */ addiu $a1,$sp,0x5f8
/* f07728c: 27a605fc */ addiu $a2,$sp,0x5fc
/* f077290: a7a3038e */ sh $v1,0x38e($sp)
/* f077294: e7a605f4 */ swc1 $f6,0x5f4($sp)
/* f077298: e7a405f8 */ swc1 $f4,0x5f8($sp)
/* f07729c: 0c0011e4 */ jal guNormalize
/* f0772a0: e7a805fc */ swc1 $f8,0x5fc($sp)
/* f0772a4: c64a0008 */ lwc1 $f10,0x8($s2)
/* f0772a8: c7a60390 */ lwc1 $f6,0x390($sp)
/* f0772ac: 97af012a */ lhu $t7,0x12a($sp)
/* f0772b0: e7aa05e8 */ swc1 $f10,0x5e8($sp)
/* f0772b4: e7a605ec */ swc1 $f6,0x5ec($sp)
/* f0772b8: c6440010 */ lwc1 $f4,0x10($s2)
/* f0772bc: 31ea4000 */ andi $t2,$t7,0x4000
/* f0772c0: 87a3038e */ lh $v1,0x38e($sp)
/* f0772c4: afa00600 */ sw $zero,0x600($sp)
/* f0772c8: 1140003d */ beqz $t2,.JF0f0773c0
/* f0772cc: e7a405f0 */ swc1 $f4,0x5f0($sp)
/* f0772d0: 8e2c0040 */ lw $t4,0x40($s1)
/* f0772d4: 358e0004 */ ori $t6,$t4,0x4
/* f0772d8: 10000039 */ b .JF0f0773c0
/* f0772dc: ae2e0040 */ sw $t6,0x40($s1)
.JF0f0772e0:
/* f0772e0: 26440008 */ addiu $a0,$s2,0x8
.JF0f0772e4:
/* f0772e4: 27b90380 */ addiu $t9,$sp,0x380
/* f0772e8: afb90010 */ sw $t9,0x10($sp)
/* f0772ec: afa40070 */ sw $a0,0x70($sp)
/* f0772f0: 8fa5006c */ lw $a1,0x6c($sp)
/* f0772f4: 27a60390 */ addiu $a2,$sp,0x390
/* f0772f8: 8fa70074 */ lw $a3,0x74($sp)
/* f0772fc: 0c00a81d */ jal cd0002a564
/* f077300: afa00014 */ sw $zero,0x14($sp)
/* f077304: 00021c00 */ sll $v1,$v0,0x10
/* f077308: 00034c03 */ sra $t1,$v1,0x10
/* f07730c: 1c40002c */ bgtz $v0,.JF0f0773c0
/* f077310: 01201825 */ move $v1,$t1
/* f077314: 8e020000 */ lw $v0,0x0($s0)
/* f077318: 30580004 */ andi $t8,$v0,0x4
/* f07731c: 17000028 */ bnez $t8,.JF0f0773c0
/* f077320: 00026bc0 */ sll $t5,$v0,0xf
/* f077324: 05a0000c */ bltz $t5,.JF0f077358
/* f077328: 3c010001 */ lui $at,0x1
/* f07732c: 00415825 */ or $t3,$v0,$at
/* f077330: ae0b0000 */ sw $t3,0x0($s0)
/* f077334: a7a9038e */ sh $t1,0x38e($sp)
/* f077338: 27a405c8 */ addiu $a0,$sp,0x5c8
/* f07733c: 0c00a7c4 */ jal cd0002a400
/* f077340: 27a505b8 */ addiu $a1,$sp,0x5b8
/* f077344: 18400004 */ blez $v0,.JF0f077358
/* f077348: 87a3038e */ lh $v1,0x38e($sp)
/* f07734c: 8e0f0000 */ lw $t7,0x0($s0)
/* f077350: 35ea8000 */ ori $t2,$t7,0x8000
/* f077354: ae0a0000 */ sw $t2,0x0($s0)
.JF0f077358:
/* f077358: 8e0c0000 */ lw $t4,0x0($s0)
/* f07735c: c7a805c8 */ lwc1 $f8,0x5c8($sp)
/* f077360: 318e8000 */ andi $t6,$t4,0x8000
/* f077364: 11c00016 */ beqz $t6,.JF0f0773c0
/* f077368: 00000000 */ nop
/* f07736c: e6480008 */ swc1 $f8,0x8($s2)
/* f077370: c7aa05cc */ lwc1 $f10,0x5cc($sp)
/* f077374: 02402025 */ move $a0,$s2
/* f077378: e64a000c */ swc1 $f10,0xc($s2)
/* f07737c: c7a605d0 */ lwc1 $f6,0x5d0($sp)
/* f077380: 0fc19b59 */ jal propDeregisterRooms
/* f077384: e6460010 */ swc1 $f6,0x10($s2)
/* f077388: 27a405b8 */ addiu $a0,$sp,0x5b8
/* f07738c: 0fc19a31 */ jal roomsCopy
/* f077390: 8fa5006c */ lw $a1,0x6c($sp)
/* f077394: 8fa40070 */ lw $a0,0x70($sp)
/* f077398: 8fa5006c */ lw $a1,0x6c($sp)
/* f07739c: 27a60390 */ addiu $a2,$sp,0x390
/* f0773a0: 8fa70074 */ lw $a3,0x74($sp)
/* f0773a4: 0c00a7d4 */ jal cd0002a440
/* f0773a8: afa00010 */ sw $zero,0x10($sp)
/* f0773ac: 00021c00 */ sll $v1,$v0,0x10
/* f0773b0: 0003cc03 */ sra $t9,$v1,0x10
/* f0773b4: 03201825 */ move $v1,$t9
/* f0773b8: e6140004 */ swc1 $f20,0x4($s0)
/* f0773bc: e614000c */ swc1 $f20,0xc($s0)
.JF0f0773c0:
/* f0773c0: 18600004 */ blez $v1,.JF0f0773d4
/* f0773c4: 8e020000 */ lw $v0,0x0($s0)
/* f0773c8: 34498000 */ ori $t1,$v0,0x8000
/* f0773cc: 10000005 */ b .JF0f0773e4
/* f0773d0: ae090000 */ sw $t1,0x0($s0)
.JF0f0773d4:
/* f0773d4: 3c01ffff */ lui $at,0xffff
/* f0773d8: 34217fff */ ori $at,$at,0x7fff
/* f0773dc: 0041c024 */ and $t8,$v0,$at
/* f0773e0: ae180000 */ sw $t8,0x0($s0)
.JF0f0773e4:
/* f0773e4: 8fad0600 */ lw $t5,0x600($sp)
/* f0773e8: 55a000ac */ bnezl $t5,.JF0f07769c
/* f0773ec: 922b0003 */ lbu $t3,0x3($s1)
/* f0773f0: c60c0008 */ lwc1 $f12,0x8($s0)
/* f0773f4: c7a805cc */ lwc1 $f8,0x5cc($sp)
/* f0773f8: 4614603e */ c.le.s $f12,$f20
/* f0773fc: 00000000 */ nop
/* f077400: 45020007 */ bc1fl .JF0f077420
/* f077404: 8e0b0000 */ lw $t3,0x0($s0)
/* f077408: c644000c */ lwc1 $f4,0xc($s2)
/* f07740c: 4604403e */ c.le.s $f8,$f4
/* f077410: 00000000 */ nop
/* f077414: 45030008 */ bc1tl .JF0f077438
/* f077418: 240c0001 */ li $t4,0x1
/* f07741c: 8e0b0000 */ lw $t3,0x0($s0)
.JF0f077420:
/* f077420: 8faa0354 */ lw $t2,0x354($sp)
/* f077424: 316f0004 */ andi $t7,$t3,0x4
/* f077428: 55e00005 */ bnezl $t7,.JF0f077440
/* f07742c: c612008c */ lwc1 $f18,0x8c($s0)
/* f077430: 11400002 */ beqz $t2,.JF0f07743c
/* f077434: 240c0001 */ li $t4,0x1
.JF0f077438:
/* f077438: afac0350 */ sw $t4,0x350($sp)
.JF0f07743c:
/* f07743c: c612008c */ lwc1 $f18,0x8c($s0)
.JF0f077440:
/* f077440: c7aa05f4 */ lwc1 $f10,0x5f4($sp)
/* f077444: 4612a03c */ c.lt.s $f20,$f18
/* f077448: 00000000 */ nop
/* f07744c: 45020034 */ bc1fl .JF0f077520
/* f077450: 8fad0350 */ lw $t5,0x350($sp)
/* f077454: c60e0004 */ lwc1 $f14,0x4($s0)
/* f077458: c7a405f8 */ lwc1 $f4,0x5f8($sp)
/* f07745c: c602000c */ lwc1 $f2,0xc($s0)
/* f077460: 460a7182 */ mul.s $f6,$f14,$f10
/* f077464: 3c013f80 */ lui $at,0x3f80
/* f077468: 4614603e */ c.le.s $f12,$f20
/* f07746c: 46046202 */ mul.s $f8,$f12,$f4
/* f077470: 46083100 */ add.s $f4,$f6,$f8
/* f077474: c7a605fc */ lwc1 $f6,0x5fc($sp)
/* f077478: 46023202 */ mul.s $f8,$f6,$f2
/* f07747c: 44813000 */ mtc1 $at,$f6
/* f077480: 46044000 */ add.s $f0,$f8,$f4
/* f077484: 46069200 */ add.s $f8,$f18,$f6
/* f077488: 46004107 */ neg.s $f4,$f8
/* f07748c: 46040002 */ mul.s $f0,$f0,$f4
/* f077490: 00000000 */ nop
/* f077494: 460a0182 */ mul.s $f6,$f0,$f10
/* f077498: 46067200 */ add.s $f8,$f14,$f6
/* f07749c: e6080004 */ swc1 $f8,0x4($s0)
/* f0774a0: c7a405f8 */ lwc1 $f4,0x5f8($sp)
/* f0774a4: 46040282 */ mul.s $f10,$f0,$f4
/* f0774a8: 460a6180 */ add.s $f6,$f12,$f10
/* f0774ac: e6060008 */ swc1 $f6,0x8($s0)
/* f0774b0: c7a805fc */ lwc1 $f8,0x5fc($sp)
/* f0774b4: 46080102 */ mul.s $f4,$f0,$f8
/* f0774b8: 46041280 */ add.s $f10,$f2,$f4
/* f0774bc: 45000008 */ bc1f .JF0f0774e0
/* f0774c0: e60a000c */ swc1 $f10,0xc($s0)
/* f0774c4: c6060008 */ lwc1 $f6,0x8($s0)
/* f0774c8: 240e0001 */ li $t6,0x1
/* f0774cc: 4606a03e */ c.le.s $f20,$f6
/* f0774d0: 00000000 */ nop
/* f0774d4: 45020003 */ bc1fl .JF0f0774e4
/* f0774d8: 92390003 */ lbu $t9,0x3($s1)
/* f0774dc: afae0350 */ sw $t6,0x350($sp)
.JF0f0774e0:
/* f0774e0: 92390003 */ lbu $t9,0x3($s1)
.JF0f0774e4:
/* f0774e4: 24010008 */ li $at,0x8
/* f0774e8: 5721000d */ bnel $t9,$at,.JF0f077520
/* f0774ec: 8fad0350 */ lw $t5,0x350($sp)
/* f0774f0: 9229005c */ lbu $t1,0x5c($s1)
/* f0774f4: 2401001e */ li $at,0x1e
/* f0774f8: 55210009 */ bnel $t1,$at,.JF0f077520
/* f0774fc: 8fad0350 */ lw $t5,0x350($sp)
/* f077500: 9238005f */ lbu $t8,0x5f($s1)
/* f077504: 24010001 */ li $at,0x1
/* f077508: 02402025 */ move $a0,$s2
/* f07750c: 57010004 */ bnel $t8,$at,.JF0f077520
/* f077510: 8fad0350 */ lw $t5,0x350($sp)
/* f077514: 0fc4bac5 */ jal smokeCreateAtProp
/* f077518: 24050013 */ li $a1,0x13
/* f07751c: 8fad0350 */ lw $t5,0x350($sp)
.JF0f077520:
/* f077520: c7a805ec */ lwc1 $f8,0x5ec($sp)
/* f077524: c7a4037c */ lwc1 $f4,0x37c($sp)
/* f077528: 51a0000c */ beqzl $t5,.JF0f07755c
/* f07752c: 8e0f0000 */ lw $t7,0x0($s0)
/* f077530: 46044281 */ sub.s $f10,$f8,$f4
/* f077534: e64a000c */ swc1 $f10,0xc($s2)
/* f077538: 8fab0354 */ lw $t3,0x354($sp)
/* f07753c: 51600007 */ beqzl $t3,.JF0f07755c
/* f077540: 8e0f0000 */ lw $t7,0x0($s0)
/* f077544: 0fc1adce */ jal func0f06a620
/* f077548: 02202025 */ move $a0,$s1
/* f07754c: c646000c */ lwc1 $f6,0xc($s2)
/* f077550: 46003200 */ add.s $f8,$f6,$f0
/* f077554: e648000c */ swc1 $f8,0xc($s2)
/* f077558: 8e0f0000 */ lw $t7,0x0($s0)
.JF0f07755c:
/* f07755c: 31ea0100 */ andi $t2,$t7,0x100
/* f077560: 5540000d */ bnezl $t2,.JF0f077598
/* f077564: 8e190090 */ lw $t9,0x90($s0)
/* f077568: 8e020094 */ lw $v0,0x94($s0)
/* f07756c: 3c0c800a */ lui $t4,0x800a
/* f077570: 04400006 */ bltz $v0,.JF0f07758c
/* f077574: 00000000 */ nop
/* f077578: 8d8ca638 */ lw $t4,-0x59c8($t4)
/* f07757c: 258effc4 */ addiu $t6,$t4,-60
/* f077580: 004e082a */ slt $at,$v0,$t6
/* f077584: 50200004 */ beqzl $at,.JF0f077598
/* f077588: 8e190090 */ lw $t9,0x90($s0)
.JF0f07758c:
/* f07758c: 0fc25c40 */ jal func0f096360
/* f077590: 8fa40064 */ lw $a0,0x64($sp)
/* f077594: 8e190090 */ lw $t9,0x90($s0)
.JF0f077598:
/* f077598: 3c18800a */ lui $t8,0x800a
/* f07759c: 27290001 */ addiu $t1,$t9,0x1
/* f0775a0: ae090090 */ sw $t1,0x90($s0)
/* f0775a4: 8f18a638 */ lw $t8,-0x59c8($t8)
/* f0775a8: ae180094 */ sw $t8,0x94($s0)
/* f0775ac: 8e220040 */ lw $v0,0x40($s1)
/* f0775b0: 00026bc0 */ sll $t5,$v0,0xf
/* f0775b4: 05a00002 */ bltz $t5,.JF0f0775c0
/* f0775b8: 344b0100 */ ori $t3,$v0,0x100
/* f0775bc: ae2b0040 */ sw $t3,0x40($s1)
.JF0f0775c0:
/* f0775c0: 8faf0350 */ lw $t7,0x350($sp)
/* f0775c4: 51e00035 */ beqzl $t7,.JF0f07769c
/* f0775c8: 922b0003 */ lbu $t3,0x3($s1)
/* f0775cc: 8e020000 */ lw $v0,0x0($s0)
/* f0775d0: 304a0004 */ andi $t2,$v0,0x4
/* f0775d4: 5540000d */ bnezl $t2,.JF0f07760c
/* f0775d8: c604008c */ lwc1 $f4,0x8c($s0)
/* f0775dc: 8e0c0090 */ lw $t4,0x90($s0)
/* f0775e0: 8fae0354 */ lw $t6,0x354($sp)
/* f0775e4: 29810006 */ slti $at,$t4,0x6
/* f0775e8: 54200008 */ bnezl $at,.JF0f07760c
/* f0775ec: c604008c */ lwc1 $f4,0x8c($s0)
/* f0775f0: 11c00029 */ beqz $t6,.JF0f077698
/* f0775f4: 02202025 */ move $a0,$s1
/* f0775f8: 0fc1bb3c */ jal func0f06dbd8
/* f0775fc: 27a50358 */ addiu $a1,$sp,0x358
/* f077600: 10000026 */ b .JF0f07769c
/* f077604: 922b0003 */ lbu $t3,0x3($s1)
/* f077608: c604008c */ lwc1 $f4,0x8c($s0)
.JF0f07760c:
/* f07760c: 8fad0354 */ lw $t5,0x354($sp)
/* f077610: 4604a03c */ c.lt.s $f20,$f4
/* f077614: 00000000 */ nop
/* f077618: 4500001b */ bc1f .JF0f077688
/* f07761c: 00000000 */ nop
/* f077620: c60c0008 */ lwc1 $f12,0x8($s0)
/* f077624: 3c017f1b */ lui $at,0x7f1b
/* f077628: 460ca03e */ c.le.s $f20,$f12
/* f07762c: 00000000 */ nop
/* f077630: 4502001a */ bc1fl .JF0f07769c
/* f077634: 922b0003 */ lbu $t3,0x3($s1)
/* f077638: c420b150 */ lwc1 $f0,-0x4eb0($at)
/* f07763c: 30590002 */ andi $t9,$v0,0x2
/* f077640: 4600603c */ c.lt.s $f12,$f0
/* f077644: 00000000 */ nop
/* f077648: 45020014 */ bc1fl .JF0f07769c
/* f07764c: 922b0003 */ lbu $t3,0x3($s1)
/* f077650: 13200007 */ beqz $t9,.JF0f077670
/* f077654: 8fb80354 */ lw $t8,0x354($sp)
/* f077658: 8e090090 */ lw $t1,0x90($s0)
/* f07765c: 24010001 */ li $at,0x1
/* f077660: 15210003 */ bne $t1,$at,.JF0f077670
/* f077664: 00000000 */ nop
/* f077668: 1000000b */ b .JF0f077698
/* f07766c: e6000008 */ swc1 $f0,0x8($s0)
.JF0f077670:
/* f077670: 13000009 */ beqz $t8,.JF0f077698
/* f077674: 02202025 */ move $a0,$s1
/* f077678: 0fc1bb3c */ jal func0f06dbd8
/* f07767c: 27a50358 */ addiu $a1,$sp,0x358
/* f077680: 10000006 */ b .JF0f07769c
/* f077684: 922b0003 */ lbu $t3,0x3($s1)
.JF0f077688:
/* f077688: 11a00003 */ beqz $t5,.JF0f077698
/* f07768c: 02202025 */ move $a0,$s1
/* f077690: 0fc1bb3c */ jal func0f06dbd8
/* f077694: 27a50358 */ addiu $a1,$sp,0x358
.JF0f077698:
/* f077698: 922b0003 */ lbu $t3,0x3($s1)
.JF0f07769c:
/* f07769c: 24010008 */ li $at,0x8
/* f0776a0: 55610134 */ bnel $t3,$at,.JF0f077b74
/* f0776a4: 02202025 */ move $a0,$s1
/* f0776a8: 9227005c */ lbu $a3,0x5c($s1)
/* f0776ac: 2401001a */ li $at,0x1a
/* f0776b0: 54e1000a */ bnel $a3,$at,.JF0f0776dc
/* f0776b4: 24010053 */ li $at,0x53
/* f0776b8: 922f005f */ lbu $t7,0x5f($s1)
/* f0776bc: 24010001 */ li $at,0x1
/* f0776c0: 55e10006 */ bnel $t7,$at,.JF0f0776dc
/* f0776c4: 24010053 */ li $at,0x53
/* f0776c8: 0fc1be65 */ jal knifePlayWooshSound
/* f0776cc: 02202025 */ move $a0,$s1
/* f0776d0: 100000b0 */ b .JF0f077994
/* f0776d4: 8fac0600 */ lw $t4,0x600($sp)
/* f0776d8: 24010053 */ li $at,0x53
.JF0f0776dc:
/* f0776dc: 14e10044 */ bne $a3,$at,.JF0f0777f0
/* f0776e0: 8faa0600 */ lw $t2,0x600($sp)
/* f0776e4: 55400004 */ bnezl $t2,.JF0f0776f8
/* f0776e8: c60e0004 */ lwc1 $f14,0x4($s0)
/* f0776ec: 100000a8 */ b .JF0f077990
/* f0776f0: a6200062 */ sh $zero,0x62($s1)
/* f0776f4: c60e0004 */ lwc1 $f14,0x4($s0)
.JF0f0776f8:
/* f0776f8: c60c0008 */ lwc1 $f12,0x8($s0)
/* f0776fc: c602000c */ lwc1 $f2,0xc($s0)
/* f077700: 460e7282 */ mul.s $f10,$f14,$f14
/* f077704: 3c017f1b */ lui $at,0x7f1b
/* f077708: 460c6182 */ mul.s $f6,$f12,$f12
/* f07770c: 46065200 */ add.s $f8,$f10,$f6
/* f077710: 46021102 */ mul.s $f4,$f2,$f2
/* f077714: c42ab154 */ lwc1 $f10,-0x4eac($at)
/* f077718: 46082000 */ add.s $f0,$f4,$f8
/* f07771c: 4600503c */ c.lt.s $f10,$f0
/* f077720: 00000000 */ nop
/* f077724: 45020005 */ bc1fl .JF0f07773c
/* f077728: 860200b2 */ lh $v0,0xb2($s0)
/* f07772c: e6140010 */ swc1 $f20,0x10($s0)
/* f077730: e6140014 */ swc1 $f20,0x14($s0)
/* f077734: e6140018 */ swc1 $f20,0x18($s0)
/* f077738: 860200b2 */ lh $v0,0xb2($s0)
.JF0f07773c:
/* f07773c: 0442000c */ bltzl $v0,.JF0f077770
/* f077740: c6060004 */ lwc1 $f6,0x4($s0)
/* f077744: 8e0c00a0 */ lw $t4,0xa0($s0)
/* f077748: 004c082a */ slt $at,$v0,$t4
/* f07774c: 50200008 */ beqzl $at,.JF0f077770
/* f077750: c6060004 */ lwc1 $f6,0x4($s0)
/* f077754: 8e0e0000 */ lw $t6,0x0($s0)
/* f077758: 2401ffcf */ li $at,-49
/* f07775c: e614001c */ swc1 $f20,0x1c($s0)
/* f077760: 01c1c824 */ and $t9,$t6,$at
/* f077764: 1000008a */ b .JF0f077990
/* f077768: ae190000 */ sw $t9,0x0($s0)
/* f07776c: c6060004 */ lwc1 $f6,0x4($s0)
.JF0f077770:
/* f077770: 27a40108 */ addiu $a0,$sp,0x108
/* f077774: 27a5010c */ addiu $a1,$sp,0x10c
/* f077778: e7a60108 */ swc1 $f6,0x108($sp)
/* f07777c: c6040008 */ lwc1 $f4,0x8($s0)
/* f077780: 27a60110 */ addiu $a2,$sp,0x110
/* f077784: e7a4010c */ swc1 $f4,0x10c($sp)
/* f077788: c608000c */ lwc1 $f8,0xc($s0)
/* f07778c: 0c0011e4 */ jal guNormalize
/* f077790: e7a80110 */ swc1 $f8,0x110($sp)
/* f077794: 3c0141a0 */ lui $at,0x41a0
/* f077798: 44810000 */ mtc1 $at,$f0
/* f07779c: c7a60108 */ lwc1 $f6,0x108($sp)
/* f0777a0: c64a0008 */ lwc1 $f10,0x8($s2)
/* f0777a4: 27a40108 */ addiu $a0,$sp,0x108
/* f0777a8: 46003102 */ mul.s $f4,$f6,$f0
/* f0777ac: 8fa5006c */ lw $a1,0x6c($sp)
/* f0777b0: 24060008 */ li $a2,0x8
/* f0777b4: 46045201 */ sub.s $f8,$f10,$f4
/* f0777b8: c7aa010c */ lwc1 $f10,0x10c($sp)
/* f0777bc: 46005102 */ mul.s $f4,$f10,$f0
/* f0777c0: e7a80108 */ swc1 $f8,0x108($sp)
/* f0777c4: c646000c */ lwc1 $f6,0xc($s2)
/* f0777c8: 46043201 */ sub.s $f8,$f6,$f4
/* f0777cc: c7a60110 */ lwc1 $f6,0x110($sp)
/* f0777d0: 46003102 */ mul.s $f4,$f6,$f0
/* f0777d4: e7a8010c */ swc1 $f8,0x10c($sp)
/* f0777d8: c64a0010 */ lwc1 $f10,0x10($s2)
/* f0777dc: 46045201 */ sub.s $f8,$f10,$f4
/* f0777e0: 0fc4bb08 */ jal smokeCreateSimple
/* f0777e4: e7a80110 */ swc1 $f8,0x110($sp)
/* f0777e8: 1000006a */ b .JF0f077994
/* f0777ec: 8fac0600 */ lw $t4,0x600($sp)
.JF0f0777f0:
/* f0777f0: 24010054 */ li $at,0x54
/* f0777f4: 14e1000a */ bne $a3,$at,.JF0f077820
/* f0777f8: 8fa90600 */ lw $t1,0x600($sp)
/* f0777fc: 15200003 */ bnez $t1,.JF0f07780c
/* f077800: 26440008 */ addiu $a0,$s2,0x8
/* f077804: 10000062 */ b .JF0f077990
/* f077808: a6200062 */ sh $zero,0x62($s1)
.JF0f07780c:
/* f07780c: 8fa5006c */ lw $a1,0x6c($sp)
/* f077810: 0fc4bb08 */ jal smokeCreateSimple
/* f077814: 2406000b */ li $a2,0xb
/* f077818: 1000005e */ b .JF0f077994
/* f07781c: 8fac0600 */ lw $t4,0x600($sp)
.JF0f077820:
/* f077820: 24010055 */ li $at,0x55
/* f077824: 10e10006 */ beq $a3,$at,.JF0f077840
/* f077828: 2402001f */ li $v0,0x1f
/* f07782c: 54470059 */ bnel $v0,$a3,.JF0f077994
/* f077830: 8fac0600 */ lw $t4,0x600($sp)
/* f077834: 9238005f */ lbu $t8,0x5f($s1)
/* f077838: 57000056 */ bnezl $t8,.JF0f077994
/* f07783c: 8fac0600 */ lw $t4,0x600($sp)
.JF0f077840:
/* f077840: 8fad0350 */ lw $t5,0x350($sp)
/* f077844: 2402001f */ li $v0,0x1f
/* f077848: 15a00045 */ bnez $t5,.JF0f077960
/* f07784c: 00000000 */ nop
/* f077850: 8e0b0000 */ lw $t3,0x0($s0)
/* f077854: 3c017f1b */ lui $at,0x7f1b
/* f077858: 316f0400 */ andi $t7,$t3,0x400
/* f07785c: 15e00040 */ bnez $t7,.JF0f077960
/* f077860: 00000000 */ nop
/* f077864: c430b158 */ lwc1 $f16,-0x4ea8($at)
/* f077868: c60e0004 */ lwc1 $f14,0x4($s0)
/* f07786c: 3c017f1b */ lui $at,0x7f1b
/* f077870: c7aa05c8 */ lwc1 $f10,0x5c8($sp)
/* f077874: 4610703c */ c.lt.s $f14,$f16
/* f077878: 00000000 */ nop
/* f07787c: 45020019 */ bc1fl .JF0f0778e4
/* f077880: c6460008 */ lwc1 $f6,0x8($s2)
/* f077884: c432b15c */ lwc1 $f18,-0x4ea4($at)
/* f077888: 460e903c */ c.lt.s $f18,$f14
/* f07788c: 00000000 */ nop
/* f077890: 45020014 */ bc1fl .JF0f0778e4
/* f077894: c6460008 */ lwc1 $f6,0x8($s2)
/* f077898: c60c0008 */ lwc1 $f12,0x8($s0)
/* f07789c: 4610603c */ c.lt.s $f12,$f16
/* f0778a0: 00000000 */ nop
/* f0778a4: 4502000f */ bc1fl .JF0f0778e4
/* f0778a8: c6460008 */ lwc1 $f6,0x8($s2)
/* f0778ac: 460c903c */ c.lt.s $f18,$f12
/* f0778b0: 00000000 */ nop
/* f0778b4: 4502000b */ bc1fl .JF0f0778e4
/* f0778b8: c6460008 */ lwc1 $f6,0x8($s2)
/* f0778bc: c602000c */ lwc1 $f2,0xc($s0)
/* f0778c0: 4610103c */ c.lt.s $f2,$f16
/* f0778c4: 00000000 */ nop
/* f0778c8: 45020006 */ bc1fl .JF0f0778e4
/* f0778cc: c6460008 */ lwc1 $f6,0x8($s2)
/* f0778d0: 4602903c */ c.lt.s $f18,$f2
/* f0778d4: 00000000 */ nop
/* f0778d8: 45010021 */ bc1t .JF0f077960
/* f0778dc: 00000000 */ nop
/* f0778e0: c6460008 */ lwc1 $f6,0x8($s2)
.JF0f0778e4:
/* f0778e4: 3c017f1b */ lui $at,0x7f1b
/* f0778e8: c432b160 */ lwc1 $f18,-0x4ea0($at)
/* f0778ec: 460a3001 */ sub.s $f0,$f6,$f10
/* f0778f0: 4610003c */ c.lt.s $f0,$f16
/* f0778f4: 00000000 */ nop
/* f0778f8: 45000020 */ bc1f .JF0f07797c
/* f0778fc: 00000000 */ nop
/* f077900: 4600903c */ c.lt.s $f18,$f0
/* f077904: c7a805cc */ lwc1 $f8,0x5cc($sp)
/* f077908: 4500001c */ bc1f .JF0f07797c
/* f07790c: 00000000 */ nop
/* f077910: c644000c */ lwc1 $f4,0xc($s2)
/* f077914: 46082001 */ sub.s $f0,$f4,$f8
/* f077918: 4610003c */ c.lt.s $f0,$f16
/* f07791c: 00000000 */ nop
/* f077920: 45000016 */ bc1f .JF0f07797c
/* f077924: 00000000 */ nop
/* f077928: 4600903c */ c.lt.s $f18,$f0
/* f07792c: c7aa05d0 */ lwc1 $f10,0x5d0($sp)
/* f077930: 45000012 */ bc1f .JF0f07797c
/* f077934: 00000000 */ nop
/* f077938: c6460010 */ lwc1 $f6,0x10($s2)
/* f07793c: 460a3001 */ sub.s $f0,$f6,$f10
/* f077940: 4610003c */ c.lt.s $f0,$f16
/* f077944: 00000000 */ nop
/* f077948: 4500000c */ bc1f .JF0f07797c
/* f07794c: 00000000 */ nop
/* f077950: 4600903c */ c.lt.s $f18,$f0
/* f077954: 00000000 */ nop
/* f077958: 45000008 */ bc1f .JF0f07797c
/* f07795c: 00000000 */ nop
.JF0f077960:
/* f077960: 14470004 */ bne $v0,$a3,.JF0f077974
/* f077964: 00000000 */ nop
/* f077968: 862a0062 */ lh $t2,0x62($s1)
/* f07796c: 05420009 */ bltzl $t2,.JF0f077994
/* f077970: 8fac0600 */ lw $t4,0x600($sp)
.JF0f077974:
/* f077974: 10000006 */ b .JF0f077990
/* f077978: a6200062 */ sh $zero,0x62($s1)
.JF0f07797c:
/* f07797c: 10470004 */ beq $v0,$a3,.JF0f077990
/* f077980: 26440008 */ addiu $a0,$s2,0x8
/* f077984: 8fa5006c */ lw $a1,0x6c($sp)
/* f077988: 0fc4bb08 */ jal smokeCreateSimple
/* f07798c: 24060009 */ li $a2,0x9
.JF0f077990:
/* f077990: 8fac0600 */ lw $t4,0x600($sp)
.JF0f077994:
/* f077994: 3c03800a */ lui $v1,0x800a
/* f077998: 55800076 */ bnezl $t4,.JF0f077b74
/* f07799c: 02202025 */ move $a0,$s1
/* f0779a0: 8c63a63c */ lw $v1,-0x59c4($v1)
/* f0779a4: 8e0e00a4 */ lw $t6,0xa4($s0)
/* f0779a8: 2479fffe */ addiu $t9,$v1,-2
/* f0779ac: 01d9082a */ slt $at,$t6,$t9
/* f0779b0: 5020006f */ beqzl $at,.JF0f077b70
/* f0779b4: ae0300a4 */ sw $v1,0xa4($s0)
/* f0779b8: 9227005c */ lbu $a3,0x5c($s1)
/* f0779bc: 2401001a */ li $at,0x1a
/* f0779c0: 00002025 */ move $a0,$zero
/* f0779c4: 10e10003 */ beq $a3,$at,.JF0f0779d4
/* f0779c8: 02402825 */ move $a1,$s2
/* f0779cc: 2401001a */ li $at,0x1a
/* f0779d0: 14e10015 */ bne $a3,$at,.JF0f077a28
.JF0f0779d4:
/* f0779d4: 3c01bf80 */ lui $at,0xbf80
/* f0779d8: 44810000 */ mtc1 $at,$f0
/* f0779dc: 2409ffff */ li $t1,-1
/* f0779e0: 2418ffff */ li $t8,-1
/* f0779e4: afb8002c */ sw $t8,0x2c($sp)
/* f0779e8: afa90010 */ sw $t1,0x10($sp)
/* f0779ec: 2406808b */ li $a2,-32629
/* f0779f0: 2407ffff */ li $a3,-1
/* f0779f4: afa00014 */ sw $zero,0x14($sp)
/* f0779f8: afa00018 */ sw $zero,0x18($sp)
/* f0779fc: afa0001c */ sw $zero,0x1c($sp)
/* f077a00: afa00020 */ sw $zero,0x20($sp)
/* f077a04: afa00028 */ sw $zero,0x28($sp)
/* f077a08: e7a00024 */ swc1 $f0,0x24($sp)
/* f077a0c: e7a00030 */ swc1 $f0,0x30($sp)
/* f077a10: e7a00034 */ swc1 $f0,0x34($sp)
/* f077a14: 0fc251de */ jal propsnd0f0939f8
/* f077a18: e7a00038 */ swc1 $f0,0x38($sp)
/* f077a1c: 3c03800a */ lui $v1,0x800a
/* f077a20: 10000052 */ b .JF0f077b6c
/* f077a24: 8c63a63c */ lw $v1,-0x59c4($v1)
.JF0f077a28:
/* f077a28: 2401001e */ li $at,0x1e
/* f077a2c: 14e1003a */ bne $a3,$at,.JF0f077b18
/* f077a30: 00002025 */ move $a0,$zero
/* f077a34: 922d005f */ lbu $t5,0x5f($s1)
/* f077a38: 24010001 */ li $at,0x1
/* f077a3c: 3c0f8007 */ lui $t7,0x8007
/* f077a40: 15a10035 */ bne $t5,$at,.JF0f077b18
/* f077a44: 25ef9b08 */ addiu $t7,$t7,-25848
/* f077a48: 8de10000 */ lw $at,0x0($t7)
/* f077a4c: 8dec0004 */ lw $t4,0x4($t7)
/* f077a50: 27ab0100 */ addiu $t3,$sp,0x100
/* f077a54: ad610000 */ sw $at,0x0($t3)
/* f077a58: 0c004b60 */ jal random
/* f077a5c: ad6c0004 */ sw $t4,0x4($t3)
/* f077a60: 304e0003 */ andi $t6,$v0,0x3
/* f077a64: 000ec840 */ sll $t9,$t6,0x1
/* f077a68: 03b93021 */ addu $a2,$sp,$t9
/* f077a6c: 84c60100 */ lh $a2,0x100($a2)
/* f077a70: 3c01bf80 */ lui $at,0xbf80
/* f077a74: 44810000 */ mtc1 $at,$f0
/* f077a78: 2409ffff */ li $t1,-1
/* f077a7c: 2418ffff */ li $t8,-1
/* f077a80: afb8002c */ sw $t8,0x2c($sp)
/* f077a84: afa90010 */ sw $t1,0x10($sp)
/* f077a88: afa00028 */ sw $zero,0x28($sp)
/* f077a8c: afa00020 */ sw $zero,0x20($sp)
/* f077a90: afa0001c */ sw $zero,0x1c($sp)
/* f077a94: afa00018 */ sw $zero,0x18($sp)
/* f077a98: afa00014 */ sw $zero,0x14($sp)
/* f077a9c: 00002025 */ move $a0,$zero
/* f077aa0: 02402825 */ move $a1,$s2
/* f077aa4: 2407ffff */ li $a3,-1
/* f077aa8: e7a00024 */ swc1 $f0,0x24($sp)
/* f077aac: e7a00030 */ swc1 $f0,0x30($sp)
/* f077ab0: e7a00034 */ swc1 $f0,0x34($sp)
/* f077ab4: 0fc251de */ jal propsnd0f0939f8
/* f077ab8: e7a00038 */ swc1 $f0,0x38($sp)
/* f077abc: 3c01bf80 */ lui $at,0xbf80
/* f077ac0: 44810000 */ mtc1 $at,$f0
/* f077ac4: 240dffff */ li $t5,-1
/* f077ac8: 240affff */ li $t2,-1
/* f077acc: afaa002c */ sw $t2,0x2c($sp)
/* f077ad0: afad0010 */ sw $t5,0x10($sp)
/* f077ad4: 00002025 */ move $a0,$zero
/* f077ad8: 02402825 */ move $a1,$s2
/* f077adc: 2406808c */ li $a2,-32628
/* f077ae0: 2407ffff */ li $a3,-1
/* f077ae4: afa00014 */ sw $zero,0x14($sp)
/* f077ae8: afa00018 */ sw $zero,0x18($sp)
/* f077aec: afa0001c */ sw $zero,0x1c($sp)
/* f077af0: afa00020 */ sw $zero,0x20($sp)
/* f077af4: afa00028 */ sw $zero,0x28($sp)
/* f077af8: e7a00024 */ swc1 $f0,0x24($sp)
/* f077afc: e7a00030 */ swc1 $f0,0x30($sp)
/* f077b00: e7a00034 */ swc1 $f0,0x34($sp)
/* f077b04: 0fc251de */ jal propsnd0f0939f8
/* f077b08: e7a00038 */ swc1 $f0,0x38($sp)
/* f077b0c: 3c03800a */ lui $v1,0x800a
/* f077b10: 10000016 */ b .JF0f077b6c
/* f077b14: 8c63a63c */ lw $v1,-0x59c4($v1)
.JF0f077b18:
/* f077b18: 3c01bf80 */ lui $at,0xbf80
/* f077b1c: 44810000 */ mtc1 $at,$f0
/* f077b20: 240bffff */ li $t3,-1
/* f077b24: 240fffff */ li $t7,-1
/* f077b28: afaf002c */ sw $t7,0x2c($sp)
/* f077b2c: afab0010 */ sw $t3,0x10($sp)
/* f077b30: 02402825 */ move $a1,$s2
/* f077b34: 2406808c */ li $a2,-32628
/* f077b38: 2407ffff */ li $a3,-1
/* f077b3c: afa00014 */ sw $zero,0x14($sp)
/* f077b40: afa00018 */ sw $zero,0x18($sp)
/* f077b44: afa0001c */ sw $zero,0x1c($sp)
/* f077b48: afa00020 */ sw $zero,0x20($sp)
/* f077b4c: afa00028 */ sw $zero,0x28($sp)
/* f077b50: e7a00024 */ swc1 $f0,0x24($sp)
/* f077b54: e7a00030 */ swc1 $f0,0x30($sp)
/* f077b58: e7a00034 */ swc1 $f0,0x34($sp)
/* f077b5c: 0fc251de */ jal propsnd0f0939f8
/* f077b60: e7a00038 */ swc1 $f0,0x38($sp)
/* f077b64: 3c03800a */ lui $v1,0x800a
/* f077b68: 8c63a63c */ lw $v1,-0x59c4($v1)
.JF0f077b6c:
/* f077b6c: ae0300a4 */ sw $v1,0xa4($s0)
.JF0f077b70:
/* f077b70: 02202025 */ move $a0,$s1
.JF0f077b74:
/* f077b74: 24050001 */ li $a1,0x1
/* f077b78: 0fc1ab62 */ jal func0f069c70
/* f077b7c: 24060001 */ li $a2,0x1
/* f077b80: 1000012d */ b .JF0f078038
/* f077b84: 8fbf005c */ lw $ra,0x5c($sp)
.JF0f077b88:
/* f077b88: 1180012a */ beqz $t4,.JF0f078034
/* f077b8c: 3c013f80 */ lui $at,0x3f80
/* f077b90: 240e0001 */ li $t6,0x1
/* f077b94: afae00fc */ sw $t6,0xfc($sp)
/* f077b98: 44816000 */ mtc1 $at,$f12
/* f077b9c: c6000060 */ lwc1 $f0,0x60($s0)
/* f077ba0: 26040068 */ addiu $a0,$s0,0x68
/* f077ba4: 26050078 */ addiu $a1,$s0,0x78
/* f077ba8: 460c003c */ c.lt.s $f0,$f12
/* f077bac: 00000000 */ nop
/* f077bb0: 4502002a */ bc1fl .JF0f077c5c
/* f077bb4: 4480a000 */ mtc1 $zero,$f20
/* f077bb8: c6020064 */ lwc1 $f2,0x64($s0)
/* f077bbc: c464004c */ lwc1 $f4,0x4c($v1)
/* f077bc0: 3c017f1b */ lui $at,0x7f1b
/* f077bc4: 46041202 */ mul.s $f8,$f2,$f4
/* f077bc8: 46080180 */ add.s $f6,$f0,$f8
/* f077bcc: e6060060 */ swc1 $f6,0x60($s0)
/* f077bd0: 8c790038 */ lw $t9,0x38($v1)
/* f077bd4: 5b200005 */ blezl $t9,.JF0f077bec
/* f077bd8: c6000060 */ lwc1 $f0,0x60($s0)
/* f077bdc: c42ab164 */ lwc1 $f10,-0x4e9c($at)
/* f077be0: 460a1102 */ mul.s $f4,$f2,$f10
/* f077be4: e6040064 */ swc1 $f4,0x64($s0)
/* f077be8: c6000060 */ lwc1 $f0,0x60($s0)
.JF0f077bec:
/* f077bec: 4600603c */ c.lt.s $f12,$f0
/* f077bf0: 00000000 */ nop
/* f077bf4: 45020004 */ bc1fl .JF0f077c08
/* f077bf8: 44060000 */ mfc1 $a2,$f0
/* f077bfc: e60c0060 */ swc1 $f12,0x60($s0)
/* f077c00: c6000060 */ lwc1 $f0,0x60($s0)
/* f077c04: 44060000 */ mfc1 $a2,$f0
.JF0f077c08:
/* f077c08: 0fc26016 */ jal quaternionSlerp
/* f077c0c: 27a700ec */ addiu $a3,$sp,0xec
/* f077c10: 27a400ec */ addiu $a0,$sp,0xec
/* f077c14: 0fc25f1d */ jal quaternionToMtx
/* f077c18: 27a500ac */ addiu $a1,$sp,0xac
/* f077c1c: c60c00b8 */ lwc1 $f12,0xb8($s0)
/* f077c20: 0c005771 */ jal mtx00015e24
/* f077c24: 27a500ac */ addiu $a1,$sp,0xac
/* f077c28: c60c00bc */ lwc1 $f12,0xbc($s0)
/* f077c2c: 0c005788 */ jal mtx00015e80
/* f077c30: 27a500ac */ addiu $a1,$sp,0xac
/* f077c34: c60c00c0 */ lwc1 $f12,0xc0($s0)
/* f077c38: 0c00579f */ jal mtx00015edc
/* f077c3c: 27a500ac */ addiu $a1,$sp,0xac
/* f077c40: 27a400ac */ addiu $a0,$sp,0xac
/* f077c44: 0c005750 */ jal mtx4ToMtx3
/* f077c48: 2625001c */ addiu $a1,$s1,0x1c
/* f077c4c: 3c013f80 */ lui $at,0x3f80
/* f077c50: 44816000 */ mtc1 $at,$f12
/* f077c54: afa000fc */ sw $zero,0xfc($sp)
/* f077c58: 4480a000 */ mtc1 $zero,$f20
.JF0f077c5c:
/* f077c5c: c6080004 */ lwc1 $f8,0x4($s0)
/* f077c60: 02202025 */ move $a0,$s1
/* f077c64: 2629001c */ addiu $t1,$s1,0x1c
/* f077c68: 4608a032 */ c.eq.s $f20,$f8
/* f077c6c: 00000000 */ nop
/* f077c70: 4502000c */ bc1fl .JF0f077ca4
/* f077c74: afa90074 */ sw $t1,0x74($sp)
/* f077c78: c606000c */ lwc1 $f6,0xc($s0)
/* f077c7c: 4606a032 */ c.eq.s $f20,$f6
/* f077c80: 00000000 */ nop
/* f077c84: 45020007 */ bc1fl .JF0f077ca4
/* f077c88: afa90074 */ sw $t1,0x74($sp)
/* f077c8c: c60a0060 */ lwc1 $f10,0x60($s0)
/* f077c90: 460c503c */ c.lt.s $f10,$f12
/* f077c94: 00000000 */ nop
/* f077c98: 450200d4 */ bc1fl .JF0f077fec
/* f077c9c: 8faf00fc */ lw $t7,0xfc($sp)
/* f077ca0: afa90074 */ sw $t1,0x74($sp)
.JF0f077ca4:
/* f077ca4: 0fc1a705 */ jal objFindBboxRodata
/* f077ca8: afa000fc */ sw $zero,0xfc($sp)
/* f077cac: 00402025 */ move $a0,$v0
/* f077cb0: 0fc19e9f */ jal func0f06695c
/* f077cb4: 8fa50074 */ lw $a1,0x74($sp)
/* f077cb8: 3c03800a */ lui $v1,0x800a
/* f077cbc: 8c63a668 */ lw $v1,-0x5998($v1)
/* f077cc0: e7a00098 */ swc1 $f0,0x98($sp)
/* f077cc4: 00001025 */ move $v0,$zero
/* f077cc8: 1860004d */ blez $v1,.JF0f077e00
/* f077ccc: 3c017f1b */ lui $at,0x7f1b
/* f077cd0: c430b168 */ lwc1 $f16,-0x4e98($at)
/* f077cd4: c7a405dc */ lwc1 $f4,0x5dc($sp)
.JF0f077cd8:
/* f077cd8: c6080004 */ lwc1 $f8,0x4($s0)
/* f077cdc: c7aa05e4 */ lwc1 $f10,0x5e4($sp)
/* f077ce0: 3c013f80 */ lui $at,0x3f80
/* f077ce4: 46082180 */ add.s $f6,$f4,$f8
/* f077ce8: e7a605dc */ swc1 $f6,0x5dc($sp)
/* f077cec: c604000c */ lwc1 $f4,0xc($s0)
/* f077cf0: 46045200 */ add.s $f8,$f10,$f4
/* f077cf4: 44815000 */ mtc1 $at,$f10
/* f077cf8: e7a805e4 */ swc1 $f8,0x5e4($sp)
/* f077cfc: c6060060 */ lwc1 $f6,0x60($s0)
/* f077d00: 4606503e */ c.le.s $f10,$f6
/* f077d04: 00000000 */ nop
/* f077d08: 4502003a */ bc1fl .JF0f077df4
/* f077d0c: 24420001 */ addiu $v0,$v0,0x1
/* f077d10: c6040098 */ lwc1 $f4,0x98($s0)
/* f077d14: 4604a03c */ c.lt.s $f20,$f4
/* f077d18: 00000000 */ nop
/* f077d1c: 4502002c */ bc1fl .JF0f077dd0
/* f077d20: c60a0004 */ lwc1 $f10,0x4($s0)
/* f077d24: c602000c */ lwc1 $f2,0xc($s0)
/* f077d28: c60e0004 */ lwc1 $f14,0x4($s0)
/* f077d2c: afa2009c */ sw $v0,0x9c($sp)
/* f077d30: 46021202 */ mul.s $f8,$f2,$f2
/* f077d34: 00000000 */ nop
/* f077d38: 460e7182 */ mul.s $f6,$f14,$f14
/* f077d3c: 0c012838 */ jal sqrtf
/* f077d40: 46064300 */ add.s $f12,$f8,$f6
/* f077d44: 4600a03c */ c.lt.s $f20,$f0
/* f077d48: 3c017f1b */ lui $at,0x7f1b
/* f077d4c: c430b16c */ lwc1 $f16,-0x4e94($at)
/* f077d50: 8fa2009c */ lw $v0,0x9c($sp)
/* f077d54: 45000019 */ bc1f .JF0f077dbc
/* f077d58: 3c03800a */ lui $v1,0x800a
/* f077d5c: 3c01800a */ lui $at,0x800a
/* f077d60: c424a67c */ lwc1 $f4,-0x5984($at)
/* f077d64: c60a0098 */ lwc1 $f10,0x98($s0)
/* f077d68: 3c013f80 */ lui $at,0x3f80
/* f077d6c: 44813000 */ mtc1 $at,$f6
/* f077d70: 46045202 */ mul.s $f8,$f10,$f4
/* f077d74: 46004303 */ div.s $f12,$f8,$f0
/* f077d78: 460c303e */ c.le.s $f6,$f12
/* f077d7c: 00000000 */ nop
/* f077d80: 45020005 */ bc1fl .JF0f077d98
/* f077d84: c60e0004 */ lwc1 $f14,0x4($s0)
/* f077d88: e6140004 */ swc1 $f20,0x4($s0)
/* f077d8c: 1000000d */ b .JF0f077dc4
/* f077d90: e614000c */ swc1 $f20,0xc($s0)
/* f077d94: c60e0004 */ lwc1 $f14,0x4($s0)
.JF0f077d98:
/* f077d98: c602000c */ lwc1 $f2,0xc($s0)
/* f077d9c: 460c7282 */ mul.s $f10,$f14,$f12
/* f077da0: 00000000 */ nop
/* f077da4: 460c1202 */ mul.s $f8,$f2,$f12
/* f077da8: 460a7101 */ sub.s $f4,$f14,$f10
/* f077dac: 46081181 */ sub.s $f6,$f2,$f8
/* f077db0: e6040004 */ swc1 $f4,0x4($s0)
/* f077db4: 10000003 */ b .JF0f077dc4
/* f077db8: e606000c */ swc1 $f6,0xc($s0)
.JF0f077dbc:
/* f077dbc: e6140004 */ swc1 $f20,0x4($s0)
/* f077dc0: e614000c */ swc1 $f20,0xc($s0)
.JF0f077dc4:
/* f077dc4: 1000000a */ b .JF0f077df0
/* f077dc8: 8c63a668 */ lw $v1,-0x5998($v1)
/* f077dcc: c60a0004 */ lwc1 $f10,0x4($s0)
.JF0f077dd0:
/* f077dd0: c608000c */ lwc1 $f8,0xc($s0)
/* f077dd4: 3c03800a */ lui $v1,0x800a
/* f077dd8: 46105102 */ mul.s $f4,$f10,$f16
/* f077ddc: 00000000 */ nop
/* f077de0: 46104182 */ mul.s $f6,$f8,$f16
/* f077de4: e6040004 */ swc1 $f4,0x4($s0)
/* f077de8: e606000c */ swc1 $f6,0xc($s0)
/* f077dec: 8c63a668 */ lw $v1,-0x5998($v1)
.JF0f077df0:
/* f077df0: 24420001 */ addiu $v0,$v0,0x1
.JF0f077df4:
/* f077df4: 0043082a */ slt $at,$v0,$v1
/* f077df8: 5420ffb7 */ bnezl $at,.JF0f077cd8
/* f077dfc: c7a405dc */ lwc1 $f4,0x5dc($sp)
.JF0f077e00:
/* f077e00: c64a0008 */ lwc1 $f10,0x8($s2)
/* f077e04: 26440028 */ addiu $a0,$s2,0x28
/* f077e08: 27a505b8 */ addiu $a1,$sp,0x5b8
/* f077e0c: e7aa05c8 */ swc1 $f10,0x5c8($sp)
/* f077e10: c644000c */ lwc1 $f4,0xc($s2)
/* f077e14: e7a405cc */ swc1 $f4,0x5cc($sp)
/* f077e18: c6480010 */ lwc1 $f8,0x10($s2)
/* f077e1c: afa4006c */ sw $a0,0x6c($sp)
/* f077e20: 0fc19a31 */ jal roomsCopy
/* f077e24: e7a805d0 */ swc1 $f8,0x5d0($sp)
/* f077e28: 02202025 */ move $a0,$s1
/* f077e2c: 27a505dc */ addiu $a1,$sp,0x5dc
/* f077e30: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f077e34: 0fc1b925 */ jal func0f06d37c
/* f077e38: 27a705f4 */ addiu $a3,$sp,0x5f4
/* f077e3c: 24180001 */ li $t8,0x1
/* f077e40: afb805d8 */ sw $t8,0x5d8($sp)
/* f077e44: c6460008 */ lwc1 $f6,0x8($s2)
/* f077e48: c7a40098 */ lwc1 $f4,0x98($sp)
/* f077e4c: 26270058 */ addiu $a3,$s1,0x58
/* f077e50: e7a605ac */ swc1 $f6,0x5ac($sp)
/* f077e54: c64a000c */ lwc1 $f10,0xc($s2)
/* f077e58: 27ad0096 */ addiu $t5,$sp,0x96
/* f077e5c: 27a405ac */ addiu $a0,$sp,0x5ac
/* f077e60: 46045200 */ add.s $f8,$f10,$f4
/* f077e64: 8fa5006c */ lw $a1,0x6c($sp)
/* f077e68: 27a600a4 */ addiu $a2,$sp,0xa4
/* f077e6c: e7a805b0 */ swc1 $f8,0x5b0($sp)
/* f077e70: c6460010 */ lwc1 $f6,0x10($s2)
/* f077e74: afa70074 */ sw $a3,0x74($sp)
/* f077e78: afad0010 */ sw $t5,0x10($sp)
/* f077e7c: 0c00a7f8 */ jal cd0002a4d0
/* f077e80: e7a605b4 */ swc1 $f6,0x5b4($sp)
/* f077e84: 00021c00 */ sll $v1,$v0,0x10
/* f077e88: 1840000b */ blez $v0,.JF0f077eb8
/* f077e8c: 00035403 */ sra $t2,$v1,0x10
/* f077e90: 240b0003 */ li $t3,0x3
/* f077e94: afab0010 */ sw $t3,0x10($sp)
/* f077e98: 27a405c8 */ addiu $a0,$sp,0x5c8
/* f077e9c: 27a505b8 */ addiu $a1,$sp,0x5b8
/* f077ea0: 27a605ac */ addiu $a2,$sp,0x5ac
/* f077ea4: 24070021 */ li $a3,0x21
/* f077ea8: 0c00b5aa */ jal cd0002db98
/* f077eac: a7aa00a2 */ sh $t2,0xa2($sp)
/* f077eb0: 1040000b */ beqz $v0,.JF0f077ee0
/* f077eb4: 87a300a2 */ lh $v1,0xa2($sp)
.JF0f077eb8:
/* f077eb8: 27af0096 */ addiu $t7,$sp,0x96
/* f077ebc: afaf0010 */ sw $t7,0x10($sp)
/* f077ec0: 26440008 */ addiu $a0,$s2,0x8
/* f077ec4: 8fa5006c */ lw $a1,0x6c($sp)
/* f077ec8: 27a600a4 */ addiu $a2,$sp,0xa4
/* f077ecc: 0c00a7d4 */ jal cd0002a440
/* f077ed0: 8fa70074 */ lw $a3,0x74($sp)
/* f077ed4: 00021c00 */ sll $v1,$v0,0x10
/* f077ed8: 00036403 */ sra $t4,$v1,0x10
/* f077edc: 01801825 */ move $v1,$t4
.JF0f077ee0:
/* f077ee0: 1c600017 */ bgtz $v1,.JF0f077f40
/* f077ee4: c7aa05c8 */ lwc1 $f10,0x5c8($sp)
/* f077ee8: e64a0008 */ swc1 $f10,0x8($s2)
/* f077eec: c7a405d0 */ lwc1 $f4,0x5d0($sp)
/* f077ef0: 264e0008 */ addiu $t6,$s2,0x8
/* f077ef4: 02402025 */ move $a0,$s2
/* f077ef8: e6440010 */ swc1 $f4,0x10($s2)
/* f077efc: 0fc19b59 */ jal propDeregisterRooms
/* f077f00: afae0070 */ sw $t6,0x70($sp)
/* f077f04: 27a405b8 */ addiu $a0,$sp,0x5b8
/* f077f08: 0fc19a31 */ jal roomsCopy
/* f077f0c: 8fa5006c */ lw $a1,0x6c($sp)
/* f077f10: 27b90096 */ addiu $t9,$sp,0x96
/* f077f14: afb90010 */ sw $t9,0x10($sp)
/* f077f18: 8fa40070 */ lw $a0,0x70($sp)
/* f077f1c: 8fa5006c */ lw $a1,0x6c($sp)
/* f077f20: 27a600a4 */ addiu $a2,$sp,0xa4
/* f077f24: 0c00a7d4 */ jal cd0002a440
/* f077f28: 8fa70074 */ lw $a3,0x74($sp)
/* f077f2c: 00021c00 */ sll $v1,$v0,0x10
/* f077f30: 00034c03 */ sra $t1,$v1,0x10
/* f077f34: 01201825 */ move $v1,$t1
/* f077f38: e6140004 */ swc1 $f20,0x4($s0)
/* f077f3c: e614000c */ swc1 $f20,0xc($s0)
.JF0f077f40:
/* f077f40: 18600010 */ blez $v1,.JF0f077f84
/* f077f44: c7a805cc */ lwc1 $f8,0x5cc($sp)
/* f077f48: 0fc1adce */ jal func0f06a620
/* f077f4c: 02202025 */ move $a0,$s1
/* f077f50: c7a800a4 */ lwc1 $f8,0xa4($sp)
/* f077f54: c7a60098 */ lwc1 $f6,0x98($sp)
/* f077f58: 46064281 */ sub.s $f10,$f8,$f6
/* f077f5c: 460a0100 */ add.s $f4,$f0,$f10
/* f077f60: e644000c */ swc1 $f4,0xc($s2)
/* f077f64: 97b80096 */ lhu $t8,0x96($sp)
/* f077f68: 330d4000 */ andi $t5,$t8,0x4000
/* f077f6c: 11a00006 */ beqz $t5,.JF0f077f88
/* f077f70: 00000000 */ nop
/* f077f74: 8e2a0040 */ lw $t2,0x40($s1)
/* f077f78: 354b0004 */ ori $t3,$t2,0x4
/* f077f7c: 10000002 */ b .JF0f077f88
/* f077f80: ae2b0040 */ sw $t3,0x40($s1)
.JF0f077f84:
/* f077f84: e648000c */ swc1 $f8,0xc($s2)
.JF0f077f88:
/* f077f88: 3c017f1b */ lui $at,0x7f1b
/* f077f8c: c430b170 */ lwc1 $f16,-0x4e90($at)
/* f077f90: c60e0004 */ lwc1 $f14,0x4($s0)
/* f077f94: 3c017f1b */ lui $at,0x7f1b
/* f077f98: 4610703c */ c.lt.s $f14,$f16
/* f077f9c: 00000000 */ nop
/* f077fa0: 45020012 */ bc1fl .JF0f077fec
/* f077fa4: 8faf00fc */ lw $t7,0xfc($sp)
/* f077fa8: c432b174 */ lwc1 $f18,-0x4e8c($at)
/* f077fac: 460e903c */ c.lt.s $f18,$f14
/* f077fb0: 00000000 */ nop
/* f077fb4: 4502000d */ bc1fl .JF0f077fec
/* f077fb8: 8faf00fc */ lw $t7,0xfc($sp)
/* f077fbc: c602000c */ lwc1 $f2,0xc($s0)
/* f077fc0: 4610103c */ c.lt.s $f2,$f16
/* f077fc4: 00000000 */ nop
/* f077fc8: 45020008 */ bc1fl .JF0f077fec
/* f077fcc: 8faf00fc */ lw $t7,0xfc($sp)
/* f077fd0: 4602903c */ c.lt.s $f18,$f2
/* f077fd4: 00000000 */ nop
/* f077fd8: 45020004 */ bc1fl .JF0f077fec
/* f077fdc: 8faf00fc */ lw $t7,0xfc($sp)
/* f077fe0: e614000c */ swc1 $f20,0xc($s0)
/* f077fe4: e6140004 */ swc1 $f20,0x4($s0)
/* f077fe8: 8faf00fc */ lw $t7,0xfc($sp)
.JF0f077fec:
/* f077fec: 51e0000b */ beqzl $t7,.JF0f07801c
/* f077ff0: 8fae05d8 */ lw $t6,0x5d8($sp)
/* f077ff4: 0fc1af56 */ jal objEndFlight
/* f077ff8: 02202025 */ move $a0,$s1
/* f077ffc: 922c0003 */ lbu $t4,0x3($s1)
/* f078000: 24010008 */ li $at,0x8
/* f078004: 26450028 */ addiu $a1,$s2,0x28
/* f078008: 55810004 */ bnel $t4,$at,.JF0f07801c
/* f07800c: 8fae05d8 */ lw $t6,0x5d8($sp)
/* f078010: 0fc25b5e */ jal objectiveCheckThrowInRoom
/* f078014: 9224005c */ lbu $a0,0x5c($s1)
/* f078018: 8fae05d8 */ lw $t6,0x5d8($sp)
.JF0f07801c:
/* f07801c: 02202025 */ move $a0,$s1
/* f078020: 24050001 */ li $a1,0x1
/* f078024: 51c00004 */ beqzl $t6,.JF0f078038
/* f078028: 8fbf005c */ lw $ra,0x5c($sp)
/* f07802c: 0fc1ab62 */ jal func0f069c70
/* f078030: 24060001 */ li $a2,0x1
.JF0f078034:
/* f078034: 8fbf005c */ lw $ra,0x5c($sp)
.JF0f078038:
/* f078038: 8fa205d8 */ lw $v0,0x5d8($sp)
/* f07803c: d7b40048 */ ldc1 $f20,0x48($sp)
/* f078040: 8fb00050 */ lw $s0,0x50($sp)
/* f078044: 8fb10054 */ lw $s1,0x54($sp)
/* f078048: 8fb20058 */ lw $s2,0x58($sp)
/* f07804c: 03e00008 */ jr $ra
/* f078050: 27bd0608 */ addiu $sp,$sp,0x608
);
#elif VERSION >= VERSION_PAL_FINAL
GLOBAL_ASM(
glabel func0f073c6c
.late_rodata
glabel var7f1ab670pf
.word 0x3c23d70a
glabel var7f1ab674pf
.word 0x3c23d70a
glabel var7f1ab678pf
.word 0x38d1b717
glabel var7f1ab67cpf
.word 0x3c23d70a
glabel var7f1ab680pf
.word 0x3c23d70a
glabel var7f1ab684pf
.word 0x3c23d70a
glabel var7f1ab688pf
.word 0xc6ea6000
glabel var7f1ab68cpf
.word 0xc69c4000
glabel var7f1ab690pf
.word 0x3e8e38e4
glabel var7f1ab694pf
.word 0x3c360b61
glabel var7f1ab698pf
.word 0x3d8f5c29
glabel var7f1ab69cpf
.word 0x3e8e38e4
glabel var7f1ab6a0pf
.word 0x3a83126f
glabel var7f1ab6a4pf
.word 0xba83126f
glabel var7f1ab6a8pf
.word 0x3e8e38e4
glabel var7f1ab6acpf
.word 0x3e0e38e4
glabel var7f1ab6b0pf
.word 0x400e38e4
glabel var7f1ab6b4pf
.word 0x46d9038c
glabel var7f1ab6b8pf
.word 0x3dcccccd
glabel var7f1ab6bcpf
.word 0xbdcccccd
glabel var7f1ab6c0pf
.word 0xbdcccccd
glabel var7f1ab6c4pf
.word 0x3f8ccccd
glabel var7f1ab6c8pf
.word 0x3f666666
glabel var7f1ab6ccpf
.word 0x3f99999a
glabel var7f1ab6d0pf
.word 0x3f99999a
glabel var7f1ab6d4pf
.word 0x3f666666
glabel var7f1ab6d8pf
.word 0x3dcccccd
glabel var7f1ab6dcpf
.word 0xbdcccccd
.text
/* f073ee4: 27bdf9f8 */ addiu $sp,$sp,-1544
/* f073ee8: 3c03800a */ lui $v1,0x800a
/* f073eec: 2463a510 */ addiu $v1,$v1,-23280
/* f073ef0: 8c6e0034 */ lw $t6,0x34($v1)
/* f073ef4: afbf005c */ sw $ra,0x5c($sp)
/* f073ef8: afb20058 */ sw $s2,0x58($sp)
/* f073efc: afb10054 */ sw $s1,0x54($sp)
/* f073f00: afb00050 */ sw $s0,0x50($sp)
/* f073f04: f7b40048 */ sdc1 $f20,0x48($sp)
/* f073f08: afa5060c */ sw $a1,0x60c($sp)
/* f073f0c: 8c900048 */ lw $s0,0x48($a0)
/* f073f10: afa005d8 */ sw $zero,0x5d8($sp)
/* f073f14: 00808825 */ move $s1,$a0
/* f073f18: 19c00ca4 */ blez $t6,.PF0f0771ac
/* f073f1c: 8c920014 */ lw $s2,0x14($a0)
/* f073f20: 908f0003 */ lbu $t7,0x3($a0)
/* f073f24: 24010008 */ li $at,0x8
/* f073f28: 55e1000a */ bnel $t7,$at,.PF0f073f54
/* f073f2c: 8e020000 */ lw $v0,0x0($s0)
/* f073f30: 9098005c */ lbu $t8,0x5c($a0)
/* f073f34: 24010058 */ li $at,0x58
/* f073f38: 57010006 */ bnel $t8,$at,.PF0f073f54
/* f073f3c: 8e020000 */ lw $v0,0x0($s0)
/* f073f40: 0fc1cdbc */ jal rocketTickFbw
/* f073f44: 00000000 */ nop
/* f073f48: 10000c98 */ b .PF0f0771ac
/* f073f4c: afa205d8 */ sw $v0,0x5d8($sp)
/* f073f50: 8e020000 */ lw $v0,0x0($s0)
.PF0f073f54:
/* f073f54: 2401cfff */ li $at,-12289
/* f073f58: 30591000 */ andi $t9,$v0,0x1000
/* f073f5c: 13200006 */ beqz $t9,.PF0f073f78
/* f073f60: 30492000 */ andi $t1,$v0,0x2000
/* f073f64: 0009502b */ sltu $t2,$zero,$t1
/* f073f68: afaa05d8 */ sw $t2,0x5d8($sp)
/* f073f6c: 00415824 */ and $t3,$v0,$at
/* f073f70: 10000c8e */ b .PF0f0771ac
/* f073f74: ae0b0000 */ sw $t3,0x0($s0)
.PF0f073f78:
/* f073f78: 8e2c0040 */ lw $t4,0x40($s1)
/* f073f7c: 3c01fffd */ lui $at,0xfffd
/* f073f80: 3421ffff */ ori $at,$at,0xffff
/* f073f84: 01816824 */ and $t5,$t4,$at
/* f073f88: ae2d0040 */ sw $t5,0x40($s1)
/* f073f8c: 8e0e0000 */ lw $t6,0x0($s0)
/* f073f90: 02202025 */ move $a0,$s1
/* f073f94: 02002825 */ move $a1,$s0
/* f073f98: 31cf0080 */ andi $t7,$t6,0x80
/* f073f9c: 11e00005 */ beqz $t7,.PF0f073fb4
/* f073fa0: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f073fa4: 0fc1cf58 */ jal func0f073ae8
/* f073fa8: 27a705f4 */ addiu $a3,$sp,0x5f4
/* f073fac: 3c03800a */ lui $v1,0x800a
/* f073fb0: 2463a510 */ addiu $v1,$v1,-23280
.PF0f073fb4:
/* f073fb4: c6440008 */ lwc1 $f4,0x8($s2)
/* f073fb8: 2624001c */ addiu $a0,$s1,0x1c
/* f073fbc: 27a50504 */ addiu $a1,$sp,0x504
/* f073fc0: e7a405dc */ swc1 $f4,0x5dc($sp)
/* f073fc4: c646000c */ lwc1 $f6,0xc($s2)
/* f073fc8: e7a605e0 */ swc1 $f6,0x5e0($sp)
/* f073fcc: c6480010 */ lwc1 $f8,0x10($s2)
/* f073fd0: e7a805e4 */ swc1 $f8,0x5e4($sp)
/* f073fd4: 8e0200b4 */ lw $v0,0xb4($s0)
/* f073fd8: 58400005 */ blezl $v0,.PF0f073ff0
/* f073fdc: 8e020000 */ lw $v0,0x0($s0)
/* f073fe0: 8c780034 */ lw $t8,0x34($v1)
/* f073fe4: 0058c823 */ subu $t9,$v0,$t8
/* f073fe8: ae1900b4 */ sw $t9,0xb4($s0)
/* f073fec: 8e020000 */ lw $v0,0x0($s0)
.PF0f073ff0:
/* f073ff0: 30490800 */ andi $t1,$v0,0x800
/* f073ff4: 11200379 */ beqz $t1,.PF0f074ddc
/* f073ff8: 304e0001 */ andi $t6,$v0,0x1
/* f073ffc: 0c0056b9 */ jal mtx3ToMtx4
/* f074000: afa40074 */ sw $a0,0x74($sp)
/* f074004: 26440008 */ addiu $a0,$s2,0x8
/* f074008: afa40070 */ sw $a0,0x70($sp)
/* f07400c: 0c0056d9 */ jal mtx4SetTranslation
/* f074010: 27a50504 */ addiu $a1,$sp,0x504
/* f074014: 4480a000 */ mtc1 $zero,$f20
/* f074018: c60000dc */ lwc1 $f0,0xdc($s0)
/* f07401c: 3c01800a */ lui $at,0x800a
/* f074020: 4600a03c */ c.lt.s $f20,$f0
/* f074024: 00000000 */ nop
/* f074028: 4502002c */ bc1fl .PF0f0740dc
/* f07402c: 4614003c */ c.lt.s $f0,$f20
/* f074030: c60a00e0 */ lwc1 $f10,0xe0($s0)
/* f074034: c424a55c */ lwc1 $f4,-0x5aa4($at)
/* f074038: 3c013f80 */ lui $at,0x3f80
/* f07403c: 46045182 */ mul.s $f6,$f10,$f4
/* f074040: 46060201 */ sub.s $f8,$f0,$f6
/* f074044: e60800dc */ swc1 $f8,0xdc($s0)
/* f074048: c60a00dc */ lwc1 $f10,0xdc($s0)
/* f07404c: 4614503c */ c.lt.s $f10,$f20
/* f074050: 00000000 */ nop
/* f074054: 45020004 */ bc1fl .PF0f074068
/* f074058: c61000e4 */ lwc1 $f16,0xe4($s0)
/* f07405c: 1000004b */ b .PF0f07418c
/* f074060: e61400dc */ swc1 $f20,0xdc($s0)
/* f074064: c61000e4 */ lwc1 $f16,0xe4($s0)
.PF0f074068:
/* f074068: 44812000 */ mtc1 $at,$f4
/* f07406c: 3c03800a */ lui $v1,0x800a
/* f074070: 4604803c */ c.lt.s $f16,$f4
/* f074074: 00000000 */ nop
/* f074078: 45020045 */ bc1fl .PF0f074190
/* f07407c: c60e0004 */ lwc1 $f14,0x4($s0)
/* f074080: 8c63a548 */ lw $v1,-0x5ab8($v1)
/* f074084: 00001025 */ move $v0,$zero
/* f074088: 58600041 */ blezl $v1,.PF0f074190
/* f07408c: c60e0004 */ lwc1 $f14,0x4($s0)
/* f074090: c60200ec */ lwc1 $f2,0xec($s0)
/* f074094: c60000dc */ lwc1 $f0,0xdc($s0)
.PF0f074098:
/* f074098: 24420001 */ addiu $v0,$v0,0x1
/* f07409c: 4600103c */ c.lt.s $f2,$f0
/* f0740a0: 00000000 */ nop
/* f0740a4: 45020008 */ bc1fl .PF0f0740c8
/* f0740a8: 0043082a */ slt $at,$v0,$v1
/* f0740ac: 46020181 */ sub.s $f6,$f0,$f2
/* f0740b0: 3c03800a */ lui $v1,0x800a
/* f0740b4: 46103202 */ mul.s $f8,$f6,$f16
/* f0740b8: 46081280 */ add.s $f10,$f2,$f8
/* f0740bc: e60a00dc */ swc1 $f10,0xdc($s0)
/* f0740c0: 8c63a548 */ lw $v1,-0x5ab8($v1)
/* f0740c4: 0043082a */ slt $at,$v0,$v1
.PF0f0740c8:
/* f0740c8: 5420fff3 */ bnezl $at,.PF0f074098
/* f0740cc: c60000dc */ lwc1 $f0,0xdc($s0)
/* f0740d0: 1000002f */ b .PF0f074190
/* f0740d4: c60e0004 */ lwc1 $f14,0x4($s0)
/* f0740d8: 4614003c */ c.lt.s $f0,$f20
.PF0f0740dc:
/* f0740dc: 3c04800a */ lui $a0,0x800a
/* f0740e0: 2484a510 */ addiu $a0,$a0,-23280
/* f0740e4: 4502002a */ bc1fl .PF0f074190
/* f0740e8: c60e0004 */ lwc1 $f14,0x4($s0)
/* f0740ec: c60400e0 */ lwc1 $f4,0xe0($s0)
/* f0740f0: c486004c */ lwc1 $f6,0x4c($a0)
/* f0740f4: 3c013f80 */ lui $at,0x3f80
/* f0740f8: 46062202 */ mul.s $f8,$f4,$f6
/* f0740fc: 46080280 */ add.s $f10,$f0,$f8
/* f074100: e60a00dc */ swc1 $f10,0xdc($s0)
/* f074104: c60400dc */ lwc1 $f4,0xdc($s0)
/* f074108: 4604a03c */ c.lt.s $f20,$f4
/* f07410c: 00000000 */ nop
/* f074110: 45020004 */ bc1fl .PF0f074124
/* f074114: c61000e4 */ lwc1 $f16,0xe4($s0)
/* f074118: 1000001c */ b .PF0f07418c
/* f07411c: e61400dc */ swc1 $f20,0xdc($s0)
/* f074120: c61000e4 */ lwc1 $f16,0xe4($s0)
.PF0f074124:
/* f074124: 44813000 */ mtc1 $at,$f6
/* f074128: 00000000 */ nop
/* f07412c: 4606803c */ c.lt.s $f16,$f6
/* f074130: 00000000 */ nop
/* f074134: 45020016 */ bc1fl .PF0f074190
/* f074138: c60e0004 */ lwc1 $f14,0x4($s0)
/* f07413c: 8c830038 */ lw $v1,0x38($a0)
/* f074140: 00001025 */ move $v0,$zero
/* f074144: 58600012 */ blezl $v1,.PF0f074190
/* f074148: c60e0004 */ lwc1 $f14,0x4($s0)
/* f07414c: c60200ec */ lwc1 $f2,0xec($s0)
/* f074150: 46001307 */ neg.s $f12,$f2
/* f074154: c60000dc */ lwc1 $f0,0xdc($s0)
.PF0f074158:
/* f074158: 24420001 */ addiu $v0,$v0,0x1
/* f07415c: 460c003c */ c.lt.s $f0,$f12
/* f074160: 00000000 */ nop
/* f074164: 45020007 */ bc1fl .PF0f074184
/* f074168: 0043082a */ slt $at,$v0,$v1
/* f07416c: 46020200 */ add.s $f8,$f0,$f2
/* f074170: 46104282 */ mul.s $f10,$f8,$f16
/* f074174: 460a6100 */ add.s $f4,$f12,$f10
/* f074178: e60400dc */ swc1 $f4,0xdc($s0)
/* f07417c: 8c830038 */ lw $v1,0x38($a0)
/* f074180: 0043082a */ slt $at,$v0,$v1
.PF0f074184:
/* f074184: 5420fff4 */ bnezl $at,.PF0f074158
/* f074188: c60000dc */ lwc1 $f0,0xdc($s0)
.PF0f07418c:
/* f07418c: c60e0004 */ lwc1 $f14,0x4($s0)
.PF0f074190:
/* f074190: 460ea032 */ c.eq.s $f20,$f14
/* f074194: 00000000 */ nop
/* f074198: 45020007 */ bc1fl .PF0f0741b8
/* f07419c: c6080098 */ lwc1 $f8,0x98($s0)
/* f0741a0: c606000c */ lwc1 $f6,0xc($s0)
/* f0741a4: 4606a032 */ c.eq.s $f20,$f6
/* f0741a8: 00000000 */ nop
/* f0741ac: 45030061 */ bc1tl .PF0f074334
/* f0741b0: 8e040088 */ lw $a0,0x88($s0)
/* f0741b4: c6080098 */ lwc1 $f8,0x98($s0)
.PF0f0741b8:
/* f0741b8: 4608a03c */ c.lt.s $f20,$f8
/* f0741bc: 00000000 */ nop
/* f0741c0: 4502005c */ bc1fl .PF0f074334
/* f0741c4: 8e040088 */ lw $a0,0x88($s0)
/* f0741c8: c602000c */ lwc1 $f2,0xc($s0)
/* f0741cc: 46021282 */ mul.s $f10,$f2,$f2
/* f0741d0: 00000000 */ nop
/* f0741d4: 460e7102 */ mul.s $f4,$f14,$f14
/* f0741d8: 0c0127b4 */ jal sqrtf
/* f0741dc: 46045300 */ add.s $f12,$f10,$f4
/* f0741e0: 4600a03c */ c.lt.s $f20,$f0
/* f0741e4: 3c03800a */ lui $v1,0x800a
/* f0741e8: 2463a510 */ addiu $v1,$v1,-23280
/* f0741ec: 4502004f */ bc1fl .PF0f07432c
/* f0741f0: e6140004 */ swc1 $f20,0x4($s0)
/* f0741f4: c6060098 */ lwc1 $f6,0x98($s0)
/* f0741f8: c468004c */ lwc1 $f8,0x4c($v1)
/* f0741fc: 3c013f80 */ lui $at,0x3f80
/* f074200: 44812000 */ mtc1 $at,$f4
/* f074204: 46083282 */ mul.s $f10,$f6,$f8
/* f074208: 46005303 */ div.s $f12,$f10,$f0
/* f07420c: 460c203e */ c.le.s $f4,$f12
/* f074210: 00000000 */ nop
/* f074214: 45020005 */ bc1fl .PF0f07422c
/* f074218: c60e0004 */ lwc1 $f14,0x4($s0)
/* f07421c: e6140004 */ swc1 $f20,0x4($s0)
/* f074220: 10000043 */ b .PF0f074330
/* f074224: e614000c */ swc1 $f20,0xc($s0)
/* f074228: c60e0004 */ lwc1 $f14,0x4($s0)
.PF0f07422c:
/* f07422c: c602000c */ lwc1 $f2,0xc($s0)
/* f074230: 3c013f80 */ lui $at,0x3f80
/* f074234: 460c7182 */ mul.s $f6,$f14,$f12
/* f074238: c61000e4 */ lwc1 $f16,0xe4($s0)
/* f07423c: 460c1282 */ mul.s $f10,$f2,$f12
/* f074240: 46067201 */ sub.s $f8,$f14,$f6
/* f074244: 44813000 */ mtc1 $at,$f6
/* f074248: 460a1101 */ sub.s $f4,$f2,$f10
/* f07424c: e6080004 */ swc1 $f8,0x4($s0)
/* f074250: 4606803c */ c.lt.s $f16,$f6
/* f074254: e604000c */ swc1 $f4,0xc($s0)
/* f074258: 45020036 */ bc1fl .PF0f074334
/* f07425c: 8e040088 */ lw $a0,0x88($s0)
/* f074260: 8c6a0038 */ lw $t2,0x38($v1)
/* f074264: 00001025 */ move $v0,$zero
/* f074268: 59400032 */ blezl $t2,.PF0f074334
/* f07426c: 8e040088 */ lw $a0,0x88($s0)
/* f074270: c60c00f0 */ lwc1 $f12,0xf0($s0)
/* f074274: c60e0004 */ lwc1 $f14,0x4($s0)
.PF0f074278:
/* f074278: 460e603c */ c.lt.s $f12,$f14
/* f07427c: 00000000 */ nop
/* f074280: 45020007 */ bc1fl .PF0f0742a0
/* f074284: 46006007 */ neg.s $f0,$f12
/* f074288: 460c7201 */ sub.s $f8,$f14,$f12
/* f07428c: 46104282 */ mul.s $f10,$f8,$f16
/* f074290: 460c5100 */ add.s $f4,$f10,$f12
/* f074294: 1000000a */ b .PF0f0742c0
/* f074298: e6040004 */ swc1 $f4,0x4($s0)
/* f07429c: 46006007 */ neg.s $f0,$f12
.PF0f0742a0:
/* f0742a0: 4600703c */ c.lt.s $f14,$f0
/* f0742a4: 00000000 */ nop
/* f0742a8: 45020006 */ bc1fl .PF0f0742c4
/* f0742ac: c602000c */ lwc1 $f2,0xc($s0)
/* f0742b0: 460c7180 */ add.s $f6,$f14,$f12
/* f0742b4: 46103202 */ mul.s $f8,$f6,$f16
/* f0742b8: 46004280 */ add.s $f10,$f8,$f0
/* f0742bc: e60a0004 */ swc1 $f10,0x4($s0)
.PF0f0742c0:
/* f0742c0: c602000c */ lwc1 $f2,0xc($s0)
.PF0f0742c4:
/* f0742c4: 4602603c */ c.lt.s $f12,$f2
/* f0742c8: 00000000 */ nop
/* f0742cc: 45020007 */ bc1fl .PF0f0742ec
/* f0742d0: 46006007 */ neg.s $f0,$f12
/* f0742d4: 460c1101 */ sub.s $f4,$f2,$f12
/* f0742d8: 46102182 */ mul.s $f6,$f4,$f16
/* f0742dc: 460c3200 */ add.s $f8,$f6,$f12
/* f0742e0: 1000000a */ b .PF0f07430c
/* f0742e4: e608000c */ swc1 $f8,0xc($s0)
/* f0742e8: 46006007 */ neg.s $f0,$f12
.PF0f0742ec:
/* f0742ec: 4600103c */ c.lt.s $f2,$f0
/* f0742f0: 00000000 */ nop
/* f0742f4: 45020006 */ bc1fl .PF0f074310
/* f0742f8: 8c6b0038 */ lw $t3,0x38($v1)
/* f0742fc: 460c1280 */ add.s $f10,$f2,$f12
/* f074300: 46105102 */ mul.s $f4,$f10,$f16
/* f074304: 46002180 */ add.s $f6,$f4,$f0
/* f074308: e606000c */ swc1 $f6,0xc($s0)
.PF0f07430c:
/* f07430c: 8c6b0038 */ lw $t3,0x38($v1)
.PF0f074310:
/* f074310: 24420001 */ addiu $v0,$v0,0x1
/* f074314: 004b082a */ slt $at,$v0,$t3
/* f074318: 5420ffd7 */ bnezl $at,.PF0f074278
/* f07431c: c60e0004 */ lwc1 $f14,0x4($s0)
/* f074320: 10000004 */ b .PF0f074334
/* f074324: 8e040088 */ lw $a0,0x88($s0)
/* f074328: e6140004 */ swc1 $f20,0x4($s0)
.PF0f07432c:
/* f07432c: e614000c */ swc1 $f20,0xc($s0)
.PF0f074330:
/* f074330: 8e040088 */ lw $a0,0x88($s0)
.PF0f074334:
/* f074334: 50800004 */ beqzl $a0,.PF0f074348
/* f074338: 86240006 */ lh $a0,0x6($s1)
/* f07433c: 0fc19102 */ jal propSetPerimEnabled
/* f074340: 00002825 */ move $a1,$zero
/* f074344: 86240006 */ lh $a0,0x6($s1)
.PF0f074348:
/* f074348: 288c0000 */ slti $t4,$a0,0x0
/* f07434c: 398c0001 */ xori $t4,$t4,0x1
/* f074350: 11800007 */ beqz $t4,.PF0f074370
/* f074354: afac0088 */ sw $t4,0x88($sp)
/* f074358: 8e2e0010 */ lw $t6,0x10($s1)
/* f07435c: 3c010100 */ lui $at,0x100
/* f074360: 34210002 */ ori $at,$at,0x2
/* f074364: 01c17824 */ and $t7,$t6,$at
/* f074368: 2df80001 */ sltiu $t8,$t7,0x1
/* f07436c: afb80088 */ sw $t8,0x88($sp)
.PF0f074370:
/* f074370: 8fb90088 */ lw $t9,0x88($sp)
/* f074374: 1320003b */ beqz $t9,.PF0f074464
/* f074378: 24050002 */ li $a1,0x2
/* f07437c: 0fc45964 */ jal padUnpack
/* f074380: 27a60430 */ addiu $a2,$sp,0x430
/* f074384: 3c014348 */ lui $at,0x4348
/* f074388: 44811000 */ mtc1 $at,$f2
/* f07438c: 8e290010 */ lw $t1,0x10($s1)
/* f074390: 3c014396 */ lui $at,0x4396
/* f074394: 44816000 */ mtc1 $at,$f12
/* f074398: 00095200 */ sll $t2,$t1,0x8
/* f07439c: 46001406 */ mov.s $f16,$f2
/* f0743a0: 05410006 */ bgez $t2,.PF0f0743bc
/* f0743a4: 46006386 */ mov.s $f14,$f12
/* f0743a8: 3c01442f */ lui $at,0x442f
/* f0743ac: 44810000 */ mtc1 $at,$f0
/* f0743b0: 00000000 */ nop
/* f0743b4: 46001400 */ add.s $f16,$f2,$f0
/* f0743b8: 46006380 */ add.s $f14,$f12,$f0
.PF0f0743bc:
/* f0743bc: 862b0004 */ lh $t3,0x4($s1)
/* f0743c0: 240101a8 */ li $at,0x1a8
/* f0743c4: c7aa0430 */ lwc1 $f10,0x430($sp)
/* f0743c8: 15610006 */ bne $t3,$at,.PF0f0743e4
/* f0743cc: 3c0141a0 */ lui $at,0x41a0
/* f0743d0: 44810000 */ mtc1 $at,$f0
/* f0743d4: 3c014248 */ lui $at,0x4248
/* f0743d8: 44814000 */ mtc1 $at,$f8
/* f0743dc: 46007380 */ add.s $f14,$f14,$f0
/* f0743e0: 46088400 */ add.s $f16,$f16,$f8
.PF0f0743e4:
/* f0743e4: c6440008 */ lwc1 $f4,0x8($s2)
/* f0743e8: c7a60438 */ lwc1 $f6,0x438($sp)
/* f0743ec: c6480010 */ lwc1 $f8,0x10($s2)
/* f0743f0: 46045001 */ sub.s $f0,$f10,$f4
/* f0743f4: e7b0041c */ swc1 $f16,0x41c($sp)
/* f0743f8: e7ae0418 */ swc1 $f14,0x418($sp)
/* f0743fc: 46083081 */ sub.s $f2,$f6,$f8
/* f074400: 46000282 */ mul.s $f10,$f0,$f0
/* f074404: 00000000 */ nop
/* f074408: 46021102 */ mul.s $f4,$f2,$f2
/* f07440c: 0c0127b4 */ jal sqrtf
/* f074410: 46045300 */ add.s $f12,$f10,$f4
/* f074414: c7a60418 */ lwc1 $f6,0x418($sp)
/* f074418: c7a8041c */ lwc1 $f8,0x41c($sp)
/* f07441c: 4600303c */ c.lt.s $f6,$f0
/* f074420: 00000000 */ nop
/* f074424: 45020004 */ bc1fl .PF0f074438
/* f074428: 4600403c */ c.lt.s $f8,$f0
/* f07442c: 1000000d */ b .PF0f074464
/* f074430: e61400dc */ swc1 $f20,0xdc($s0)
/* f074434: 4600403c */ c.lt.s $f8,$f0
.PF0f074438:
/* f074438: c7aa0418 */ lwc1 $f10,0x418($sp)
/* f07443c: 3c017f1b */ lui $at,0x7f1b
/* f074440: 45000008 */ bc1f .PF0f074464
/* f074444: 00000000 */ nop
/* f074448: 46005101 */ sub.s $f4,$f10,$f0
/* f07444c: c426b670 */ lwc1 $f6,-0x4990($at)
/* f074450: c60a00dc */ lwc1 $f10,0xdc($s0)
/* f074454: 46062202 */ mul.s $f8,$f4,$f6
/* f074458: 00000000 */ nop
/* f07445c: 46085102 */ mul.s $f4,$f10,$f8
/* f074460: e60400dc */ swc1 $f4,0xdc($s0)
.PF0f074464:
/* f074464: 3c01800a */ lui $at,0x800a
/* f074468: c42aa55c */ lwc1 $f10,-0x5aa4($at)
/* f07446c: c60600dc */ lwc1 $f6,0xdc($s0)
/* f074470: 460a3002 */ mul.s $f0,$f6,$f10
/* f074474: 46140032 */ c.eq.s $f0,$f20
/* f074478: 00000000 */ nop
/* f07447c: 4501001c */ bc1t .PF0f0744f0
/* f074480: 3c0c8007 */ lui $t4,0x8007
/* f074484: 258c9868 */ addiu $t4,$t4,-26520
/* f074488: 8d810000 */ lw $at,0x0($t4)
/* f07448c: 27a50404 */ addiu $a1,$sp,0x404
/* f074490: 44060000 */ mfc1 $a2,$f0
/* f074494: aca10000 */ sw $at,0x0($a1)
/* f074498: 8d8e0004 */ lw $t6,0x4($t4)
/* f07449c: 02202025 */ move $a0,$s1
/* f0744a0: 24070001 */ li $a3,0x1
/* f0744a4: acae0004 */ sw $t6,0x4($a1)
/* f0744a8: 8d810008 */ lw $at,0x8($t4)
/* f0744ac: aca10008 */ sw $at,0x8($a1)
/* f0744b0: 0fc1c8f2 */ jal func0f072144
/* f0744b4: e7a005a8 */ swc1 $f0,0x5a8($sp)
/* f0744b8: 2401ffff */ li $at,-1
/* f0744bc: 1041000c */ beq $v0,$at,.PF0f0744f0
/* f0744c0: c7a005a8 */ lwc1 $f0,0x5a8($sp)
/* f0744c4: 1440000a */ bnez $v0,.PF0f0744f0
/* f0744c8: 00000000 */ nop
/* f0744cc: c60800dc */ lwc1 $f8,0xdc($s0)
/* f0744d0: c606008c */ lwc1 $f6,0x8c($s0)
/* f0744d4: 44060000 */ mfc1 $a2,$f0
/* f0744d8: 46004107 */ neg.s $f4,$f8
/* f0744dc: 02202025 */ move $a0,$s1
/* f0744e0: 46062282 */ mul.s $f10,$f4,$f6
/* f0744e4: 27a50404 */ addiu $a1,$sp,0x404
/* f0744e8: 0fc1ca96 */ jal objCollide
/* f0744ec: e60a00dc */ swc1 $f10,0xdc($s0)
.PF0f0744f0:
/* f0744f0: 3c01800a */ lui $at,0x800a
/* f0744f4: c422a55c */ lwc1 $f2,-0x5aa4($at)
/* f0744f8: c6080004 */ lwc1 $f8,0x4($s0)
/* f0744fc: e7b405a0 */ swc1 $f20,0x5a0($sp)
/* f074500: 8faf0088 */ lw $t7,0x88($sp)
/* f074504: 46024102 */ mul.s $f4,$f8,$f2
/* f074508: e7a4059c */ swc1 $f4,0x59c($sp)
/* f07450c: c606000c */ lwc1 $f6,0xc($s0)
/* f074510: 46023282 */ mul.s $f10,$f6,$f2
/* f074514: 11e00031 */ beqz $t7,.PF0f0745dc
/* f074518: e7aa05a4 */ swc1 $f10,0x5a4($sp)
/* f07451c: c7a80430 */ lwc1 $f8,0x430($sp)
/* f074520: c6440008 */ lwc1 $f4,0x8($s2)
/* f074524: c7aa059c */ lwc1 $f10,0x59c($sp)
/* f074528: 46044181 */ sub.s $f6,$f8,$f4
/* f07452c: c6440010 */ lwc1 $f4,0x10($s2)
/* f074530: c7a80438 */ lwc1 $f8,0x438($sp)
/* f074534: 460a3001 */ sub.s $f0,$f6,$f10
/* f074538: c7aa05a4 */ lwc1 $f10,0x5a4($sp)
/* f07453c: 46044181 */ sub.s $f6,$f8,$f4
/* f074540: 46000202 */ mul.s $f8,$f0,$f0
/* f074544: 460a3081 */ sub.s $f2,$f6,$f10
/* f074548: 46021102 */ mul.s $f4,$f2,$f2
/* f07454c: 0c0127b4 */ jal sqrtf
/* f074550: 46044300 */ add.s $f12,$f8,$f4
/* f074554: c7ac0418 */ lwc1 $f12,0x418($sp)
/* f074558: c7a6041c */ lwc1 $f6,0x41c($sp)
/* f07455c: 4600603c */ c.lt.s $f12,$f0
/* f074560: 00000000 */ nop
/* f074564: 45020009 */ bc1fl .PF0f07458c
/* f074568: 4600303c */ c.lt.s $f6,$f0
/* f07456c: e7b405a4 */ swc1 $f20,0x5a4($sp)
/* f074570: c7a005a4 */ lwc1 $f0,0x5a4($sp)
/* f074574: e7a0059c */ swc1 $f0,0x59c($sp)
/* f074578: e6000004 */ swc1 $f0,0x4($s0)
/* f07457c: e600000c */ swc1 $f0,0xc($s0)
/* f074580: 10000016 */ b .PF0f0745dc
/* f074584: e60000dc */ swc1 $f0,0xdc($s0)
/* f074588: 4600303c */ c.lt.s $f6,$f0
.PF0f07458c:
/* f07458c: 3c017f1b */ lui $at,0x7f1b
/* f074590: 45020013 */ bc1fl .PF0f0745e0
/* f074594: 4406a000 */ mfc1 $a2,$f20
/* f074598: 46006281 */ sub.s $f10,$f12,$f0
/* f07459c: c428b674 */ lwc1 $f8,-0x498c($at)
/* f0745a0: c6040004 */ lwc1 $f4,0x4($s0)
/* f0745a4: 46085082 */ mul.s $f2,$f10,$f8
/* f0745a8: c60a000c */ lwc1 $f10,0xc($s0)
/* f0745ac: 46022182 */ mul.s $f6,$f4,$f2
/* f0745b0: 00000000 */ nop
/* f0745b4: 46025202 */ mul.s $f8,$f10,$f2
/* f0745b8: e6060004 */ swc1 $f6,0x4($s0)
/* f0745bc: e608000c */ swc1 $f8,0xc($s0)
/* f0745c0: c7a4059c */ lwc1 $f4,0x59c($sp)
/* f0745c4: c7aa05a4 */ lwc1 $f10,0x5a4($sp)
/* f0745c8: 46022182 */ mul.s $f6,$f4,$f2
/* f0745cc: 00000000 */ nop
/* f0745d0: 46025202 */ mul.s $f8,$f10,$f2
/* f0745d4: e7a6059c */ swc1 $f6,0x59c($sp)
/* f0745d8: e7a805a4 */ swc1 $f8,0x5a4($sp)
.PF0f0745dc:
/* f0745dc: 4406a000 */ mfc1 $a2,$f20
.PF0f0745e0:
/* f0745e0: 02202025 */ move $a0,$s1
/* f0745e4: 27a5059c */ addiu $a1,$sp,0x59c
/* f0745e8: 0fc1c8f2 */ jal func0f072144
/* f0745ec: 24070001 */ li $a3,0x1
/* f0745f0: 144001ae */ bnez $v0,.PF0f074cac
/* f0745f4: afa20600 */ sw $v0,0x600($sp)
/* f0745f8: 4406a000 */ mfc1 $a2,$f20
/* f0745fc: 02202025 */ move $a0,$s1
/* f074600: 0fc1ca96 */ jal objCollide
/* f074604: 27a5059c */ addiu $a1,$sp,0x59c
/* f074608: c604008c */ lwc1 $f4,0x8c($s0)
/* f07460c: 27a403d0 */ addiu $a0,$sp,0x3d0
/* f074610: 27a503c4 */ addiu $a1,$sp,0x3c4
/* f074614: 46040402 */ mul.s $f16,$f0,$f4
/* f074618: 4610a03c */ c.lt.s $f20,$f16
/* f07461c: 00000000 */ nop
/* f074620: 450201a3 */ bc1fl .PF0f074cb0
/* f074624: 8fab0600 */ lw $t3,0x600($sp)
/* f074628: 0c009319 */ jal cd00025364
/* f07462c: e7b0058c */ swc1 $f16,0x58c($sp)
/* f074630: 1040000e */ beqz $v0,.PF0f07466c
/* f074634: c7b0058c */ lwc1 $f16,0x58c($sp)
/* f074638: c7a603c4 */ lwc1 $f6,0x3c4($sp)
/* f07463c: c7aa03d0 */ lwc1 $f10,0x3d0($sp)
/* f074640: c7a403c8 */ lwc1 $f4,0x3c8($sp)
/* f074644: 460a3201 */ sub.s $f8,$f6,$f10
/* f074648: c7a603d4 */ lwc1 $f6,0x3d4($sp)
/* f07464c: 46062281 */ sub.s $f10,$f4,$f6
/* f074650: e7a803c4 */ swc1 $f8,0x3c4($sp)
/* f074654: c7a803cc */ lwc1 $f8,0x3cc($sp)
/* f074658: c7a403d8 */ lwc1 $f4,0x3d8($sp)
/* f07465c: e7aa03c8 */ swc1 $f10,0x3c8($sp)
/* f074660: 46044181 */ sub.s $f6,$f8,$f4
/* f074664: 10000020 */ b .PF0f0746e8
/* f074668: e7a603cc */ swc1 $f6,0x3cc($sp)
.PF0f07466c:
/* f07466c: 3c077f1b */ lui $a3,0x7f1b
/* f074670: 24e7b240 */ addiu $a3,$a3,-19904
/* f074674: 27a403d0 */ addiu $a0,$sp,0x3d0
/* f074678: 27a503c4 */ addiu $a1,$sp,0x3c4
/* f07467c: 240620a8 */ li $a2,0x20a8
/* f074680: 0c0091d3 */ jal cd00024e4c
/* f074684: e7b0058c */ swc1 $f16,0x58c($sp)
/* f074688: c7aa03d0 */ lwc1 $f10,0x3d0($sp)
/* f07468c: c7a803c4 */ lwc1 $f8,0x3c4($sp)
/* f074690: c7a603d4 */ lwc1 $f6,0x3d4($sp)
/* f074694: c7b0058c */ lwc1 $f16,0x58c($sp)
/* f074698: 46085101 */ sub.s $f4,$f10,$f8
/* f07469c: c7aa03c8 */ lwc1 $f10,0x3c8($sp)
/* f0746a0: 460a3201 */ sub.s $f8,$f6,$f10
/* f0746a4: e7a403d0 */ swc1 $f4,0x3d0($sp)
/* f0746a8: c7a403d8 */ lwc1 $f4,0x3d8($sp)
/* f0746ac: c7a603cc */ lwc1 $f6,0x3cc($sp)
/* f0746b0: e7a803d4 */ swc1 $f8,0x3d4($sp)
/* f0746b4: e7a803c8 */ swc1 $f8,0x3c8($sp)
/* f0746b8: 46062281 */ sub.s $f10,$f4,$f6
/* f0746bc: c7a603d0 */ lwc1 $f6,0x3d0($sp)
/* f0746c0: 46005107 */ neg.s $f4,$f10
/* f0746c4: e7aa03d8 */ swc1 $f10,0x3d8($sp)
/* f0746c8: e7a403c4 */ swc1 $f4,0x3c4($sp)
/* f0746cc: e7a603cc */ swc1 $f6,0x3cc($sp)
/* f0746d0: c64a0008 */ lwc1 $f10,0x8($s2)
/* f0746d4: e7aa03d0 */ swc1 $f10,0x3d0($sp)
/* f0746d8: c644000c */ lwc1 $f4,0xc($s2)
/* f0746dc: e7a403d4 */ swc1 $f4,0x3d4($sp)
/* f0746e0: c6480010 */ lwc1 $f8,0x10($s2)
/* f0746e4: e7a803d8 */ swc1 $f8,0x3d8($sp)
.PF0f0746e8:
/* f0746e8: 27a403d0 */ addiu $a0,$sp,0x3d0
/* f0746ec: 27a503c4 */ addiu $a1,$sp,0x3c4
/* f0746f0: 27a603b8 */ addiu $a2,$sp,0x3b8
/* f0746f4: 0fc0b986 */ jal func0f02e4f8
/* f0746f8: e7b0058c */ swc1 $f16,0x58c($sp)
/* f0746fc: c6460008 */ lwc1 $f6,0x8($s2)
/* f074700: c7aa05dc */ lwc1 $f10,0x5dc($sp)
/* f074704: e7b403b0 */ swc1 $f20,0x3b0($sp)
/* f074708: 3c017f1b */ lui $at,0x7f1b
/* f07470c: 460a3101 */ sub.s $f4,$f6,$f10
/* f074710: c7a605e4 */ lwc1 $f6,0x5e4($sp)
/* f074714: c7b0058c */ lwc1 $f16,0x58c($sp)
/* f074718: e7a403ac */ swc1 $f4,0x3ac($sp)
/* f07471c: c6480010 */ lwc1 $f8,0x10($s2)
/* f074720: c7a403b8 */ lwc1 $f4,0x3b8($sp)
/* f074724: 46064281 */ sub.s $f10,$f8,$f6
/* f074728: e7aa03b4 */ swc1 $f10,0x3b4($sp)
/* f07472c: c6480008 */ lwc1 $f8,0x8($s2)
/* f074730: c7aa03c0 */ lwc1 $f10,0x3c0($sp)
/* f074734: 46082181 */ sub.s $f6,$f4,$f8
/* f074738: e7a603b8 */ swc1 $f6,0x3b8($sp)
/* f07473c: c6440010 */ lwc1 $f4,0x10($s2)
/* f074740: 46045201 */ sub.s $f8,$f10,$f4
/* f074744: c7aa03ac */ lwc1 $f10,0x3ac($sp)
/* f074748: 46085102 */ mul.s $f4,$f10,$f8
/* f07474c: e7a803c0 */ swc1 $f8,0x3c0($sp)
/* f074750: c7a803b4 */ lwc1 $f8,0x3b4($sp)
/* f074754: 46003287 */ neg.s $f10,$f6
/* f074758: c60200ec */ lwc1 $f2,0xec($s0)
/* f07475c: 46085182 */ mul.s $f6,$f10,$f8
/* f074760: c428b678 */ lwc1 $f8,-0x4988($at)
/* f074764: 46062280 */ add.s $f10,$f4,$f6
/* f074768: 46085382 */ mul.s $f14,$f10,$f8
/* f07476c: 460e103c */ c.lt.s $f2,$f14
/* f074770: 46007006 */ mov.s $f0,$f14
/* f074774: 45020004 */ bc1fl .PF0f074788
/* f074778: 46001307 */ neg.s $f12,$f2
/* f07477c: 10000007 */ b .PF0f07479c
/* f074780: 46001006 */ mov.s $f0,$f2
/* f074784: 46001307 */ neg.s $f12,$f2
.PF0f074788:
/* f074788: 460c703c */ c.lt.s $f14,$f12
/* f07478c: 00000000 */ nop
/* f074790: 45020003 */ bc1fl .PF0f0747a0
/* f074794: c60400dc */ lwc1 $f4,0xdc($s0)
/* f074798: 46006006 */ mov.s $f0,$f12
.PF0f07479c:
/* f07479c: c60400dc */ lwc1 $f4,0xdc($s0)
.PF0f0747a0:
/* f0747a0: 3c077f1b */ lui $a3,0x7f1b
/* f0747a4: 24e7b250 */ addiu $a3,$a3,-19888
/* f0747a8: 46002180 */ add.s $f6,$f4,$f0
/* f0747ac: 27a403e8 */ addiu $a0,$sp,0x3e8
/* f0747b0: 27a503dc */ addiu $a1,$sp,0x3dc
/* f0747b4: 240620ce */ li $a2,0x20ce
/* f0747b8: e60600dc */ swc1 $f6,0xdc($s0)
/* f0747bc: 0c0091d3 */ jal cd00024e4c
/* f0747c0: e7b0058c */ swc1 $f16,0x58c($sp)
/* f0747c4: c7aa03e4 */ lwc1 $f10,0x3e4($sp)
/* f0747c8: c7a803f0 */ lwc1 $f8,0x3f0($sp)
/* f0747cc: c7ae03e8 */ lwc1 $f14,0x3e8($sp)
/* f0747d0: c7b203dc */ lwc1 $f18,0x3dc($sp)
/* f0747d4: 46085001 */ sub.s $f0,$f10,$f8
/* f0747d8: c7b0058c */ lwc1 $f16,0x58c($sp)
/* f0747dc: e7b403f8 */ swc1 $f20,0x3f8($sp)
/* f0747e0: 46127101 */ sub.s $f4,$f14,$f18
/* f0747e4: e7a003f4 */ swc1 $f0,0x3f4($sp)
/* f0747e8: 27a403f4 */ addiu $a0,$sp,0x3f4
/* f0747ec: 4600a032 */ c.eq.s $f20,$f0
/* f0747f0: e7a403fc */ swc1 $f4,0x3fc($sp)
/* f0747f4: c7a603fc */ lwc1 $f6,0x3fc($sp)
/* f0747f8: 27a503f8 */ addiu $a1,$sp,0x3f8
/* f0747fc: 45000005 */ bc1f .PF0f074814
/* f074800: 27a603fc */ addiu $a2,$sp,0x3fc
/* f074804: 4606a032 */ c.eq.s $f20,$f6
/* f074808: 3c013f80 */ lui $at,0x3f80
/* f07480c: 45030006 */ bc1tl .PF0f074828
/* f074810: 44815000 */ mtc1 $at,$f10
.PF0f074814:
/* f074814: 0c0011d8 */ jal guNormalize
/* f074818: e7b0058c */ swc1 $f16,0x58c($sp)
/* f07481c: 10000004 */ b .PF0f074830
/* f074820: c7b0058c */ lwc1 $f16,0x58c($sp)
/* f074824: 44815000 */ mtc1 $at,$f10
.PF0f074828:
/* f074828: 00000000 */ nop
/* f07482c: e7aa03fc */ swc1 $f10,0x3fc($sp)
.PF0f074830:
/* f074830: c7a803fc */ lwc1 $f8,0x3fc($sp)
/* f074834: c604000c */ lwc1 $f4,0xc($s0)
/* f074838: c60e0004 */ lwc1 $f14,0x4($s0)
/* f07483c: c7aa03f4 */ lwc1 $f10,0x3f4($sp)
/* f074840: 46044182 */ mul.s $f6,$f8,$f4
/* f074844: 3c013f80 */ lui $at,0x3f80
/* f074848: e7b40594 */ swc1 $f20,0x594($sp)
/* f07484c: 460a7102 */ mul.s $f4,$f14,$f10
/* f074850: 8fb80088 */ lw $t8,0x88($sp)
/* f074854: 46043000 */ add.s $f0,$f6,$f4
/* f074858: 44813000 */ mtc1 $at,$f6
/* f07485c: 3c01800a */ lui $at,0x800a
/* f074860: c422a55c */ lwc1 $f2,-0x5aa4($at)
/* f074864: 46068100 */ add.s $f4,$f16,$f6
/* f074868: 46002187 */ neg.s $f6,$f4
/* f07486c: 46060002 */ mul.s $f0,$f0,$f6
/* f074870: 00000000 */ nop
/* f074874: 46005102 */ mul.s $f4,$f10,$f0
/* f074878: 460e2180 */ add.s $f6,$f4,$f14
/* f07487c: 46004282 */ mul.s $f10,$f8,$f0
/* f074880: e7a60590 */ swc1 $f6,0x590($sp)
/* f074884: c604000c */ lwc1 $f4,0xc($s0)
/* f074888: e7b405a0 */ swc1 $f20,0x5a0($sp)
/* f07488c: 46045200 */ add.s $f8,$f10,$f4
/* f074890: 46023282 */ mul.s $f10,$f6,$f2
/* f074894: c7a60430 */ lwc1 $f6,0x430($sp)
/* f074898: 46024102 */ mul.s $f4,$f8,$f2
/* f07489c: e7a80598 */ swc1 $f8,0x598($sp)
/* f0748a0: e7aa059c */ swc1 $f10,0x59c($sp)
/* f0748a4: 1300002f */ beqz $t8,.PF0f074964
/* f0748a8: e7a405a4 */ swc1 $f4,0x5a4($sp)
/* f0748ac: c6480008 */ lwc1 $f8,0x8($s2)
/* f0748b0: 46083181 */ sub.s $f6,$f6,$f8
/* f0748b4: c7a80438 */ lwc1 $f8,0x438($sp)
/* f0748b8: 460a3001 */ sub.s $f0,$f6,$f10
/* f0748bc: c6460010 */ lwc1 $f6,0x10($s2)
/* f0748c0: 46064281 */ sub.s $f10,$f8,$f6
/* f0748c4: 46000202 */ mul.s $f8,$f0,$f0
/* f0748c8: 46045081 */ sub.s $f2,$f10,$f4
/* f0748cc: 46021182 */ mul.s $f6,$f2,$f2
/* f0748d0: 0c0127b4 */ jal sqrtf
/* f0748d4: 46064300 */ add.s $f12,$f8,$f6
/* f0748d8: c7aa0418 */ lwc1 $f10,0x418($sp)
/* f0748dc: c7a4041c */ lwc1 $f4,0x41c($sp)
/* f0748e0: 4600503c */ c.lt.s $f10,$f0
/* f0748e4: 00000000 */ nop
/* f0748e8: 45020009 */ bc1fl .PF0f074910
/* f0748ec: 4600203c */ c.lt.s $f4,$f0
/* f0748f0: e7b405a4 */ swc1 $f20,0x5a4($sp)
/* f0748f4: c7a005a4 */ lwc1 $f0,0x5a4($sp)
/* f0748f8: e7a0059c */ swc1 $f0,0x59c($sp)
/* f0748fc: e6000004 */ swc1 $f0,0x4($s0)
/* f074900: e600000c */ swc1 $f0,0xc($s0)
/* f074904: 10000017 */ b .PF0f074964
/* f074908: e60000dc */ swc1 $f0,0xdc($s0)
/* f07490c: 4600203c */ c.lt.s $f4,$f0
.PF0f074910:
/* f074910: c7a80418 */ lwc1 $f8,0x418($sp)
/* f074914: 3c017f1b */ lui $at,0x7f1b
/* f074918: 45020013 */ bc1fl .PF0f074968
/* f07491c: 4406a000 */ mfc1 $a2,$f20
/* f074920: 46004181 */ sub.s $f6,$f8,$f0
/* f074924: c42ab67c */ lwc1 $f10,-0x4984($at)
/* f074928: c6040004 */ lwc1 $f4,0x4($s0)
/* f07492c: 460a3082 */ mul.s $f2,$f6,$f10
/* f074930: c606000c */ lwc1 $f6,0xc($s0)
/* f074934: 46022202 */ mul.s $f8,$f4,$f2
/* f074938: 00000000 */ nop
/* f07493c: 46023282 */ mul.s $f10,$f6,$f2
/* f074940: e6080004 */ swc1 $f8,0x4($s0)
/* f074944: e60a000c */ swc1 $f10,0xc($s0)
/* f074948: c7a4059c */ lwc1 $f4,0x59c($sp)
/* f07494c: c7a605a4 */ lwc1 $f6,0x5a4($sp)
/* f074950: 46022202 */ mul.s $f8,$f4,$f2
/* f074954: 00000000 */ nop
/* f074958: 46023282 */ mul.s $f10,$f6,$f2
/* f07495c: e7a8059c */ swc1 $f8,0x59c($sp)
/* f074960: e7aa05a4 */ swc1 $f10,0x5a4($sp)
.PF0f074964:
/* f074964: 4406a000 */ mfc1 $a2,$f20
.PF0f074968:
/* f074968: 02202025 */ move $a0,$s1
/* f07496c: 27a5059c */ addiu $a1,$sp,0x59c
/* f074970: 0fc1c8f2 */ jal func0f072144
/* f074974: 24070001 */ li $a3,0x1
/* f074978: 144000c2 */ bnez $v0,.PF0f074c84
/* f07497c: afa20600 */ sw $v0,0x600($sp)
/* f074980: 4406a000 */ mfc1 $a2,$f20
/* f074984: 02202025 */ move $a0,$s1
/* f074988: 0fc1ca96 */ jal objCollide
/* f07498c: 27a5059c */ addiu $a1,$sp,0x59c
/* f074990: c604008c */ lwc1 $f4,0x8c($s0)
/* f074994: c6080004 */ lwc1 $f8,0x4($s0)
/* f074998: e7b40594 */ swc1 $f20,0x594($sp)
/* f07499c: 46040402 */ mul.s $f16,$f0,$f4
/* f0749a0: 46004187 */ neg.s $f6,$f8
/* f0749a4: 3c01800a */ lui $at,0x800a
/* f0749a8: c422a55c */ lwc1 $f2,-0x5aa4($at)
/* f0749ac: 8fb90088 */ lw $t9,0x88($sp)
/* f0749b0: 46103282 */ mul.s $f10,$f6,$f16
/* f0749b4: e7aa0590 */ swc1 $f10,0x590($sp)
/* f0749b8: c604000c */ lwc1 $f4,0xc($s0)
/* f0749bc: e7b405a0 */ swc1 $f20,0x5a0($sp)
/* f0749c0: 46002207 */ neg.s $f8,$f4
/* f0749c4: 46104182 */ mul.s $f6,$f8,$f16
/* f0749c8: 00000000 */ nop
/* f0749cc: 46025102 */ mul.s $f4,$f10,$f2
/* f0749d0: c7aa0430 */ lwc1 $f10,0x430($sp)
/* f0749d4: 46023202 */ mul.s $f8,$f6,$f2
/* f0749d8: e7a60598 */ swc1 $f6,0x598($sp)
/* f0749dc: e7a4059c */ swc1 $f4,0x59c($sp)
/* f0749e0: 1320002f */ beqz $t9,.PF0f074aa0
/* f0749e4: e7a805a4 */ swc1 $f8,0x5a4($sp)
/* f0749e8: c6460008 */ lwc1 $f6,0x8($s2)
/* f0749ec: 46065281 */ sub.s $f10,$f10,$f6
/* f0749f0: c7a60438 */ lwc1 $f6,0x438($sp)
/* f0749f4: 46045001 */ sub.s $f0,$f10,$f4
/* f0749f8: c64a0010 */ lwc1 $f10,0x10($s2)
/* f0749fc: 460a3101 */ sub.s $f4,$f6,$f10
/* f074a00: 46000182 */ mul.s $f6,$f0,$f0
/* f074a04: 46082081 */ sub.s $f2,$f4,$f8
/* f074a08: 46021282 */ mul.s $f10,$f2,$f2
/* f074a0c: 0c0127b4 */ jal sqrtf
/* f074a10: 460a3300 */ add.s $f12,$f6,$f10
/* f074a14: c7a40418 */ lwc1 $f4,0x418($sp)
/* f074a18: c7a8041c */ lwc1 $f8,0x41c($sp)
/* f074a1c: 4600203c */ c.lt.s $f4,$f0
/* f074a20: 00000000 */ nop
/* f074a24: 45020009 */ bc1fl .PF0f074a4c
/* f074a28: 4600403c */ c.lt.s $f8,$f0
/* f074a2c: e7b405a4 */ swc1 $f20,0x5a4($sp)
/* f074a30: c7a005a4 */ lwc1 $f0,0x5a4($sp)
/* f074a34: e7a0059c */ swc1 $f0,0x59c($sp)
/* f074a38: e6000004 */ swc1 $f0,0x4($s0)
/* f074a3c: e600000c */ swc1 $f0,0xc($s0)
/* f074a40: 10000017 */ b .PF0f074aa0
/* f074a44: e60000dc */ swc1 $f0,0xdc($s0)
/* f074a48: 4600403c */ c.lt.s $f8,$f0
.PF0f074a4c:
/* f074a4c: c7a60418 */ lwc1 $f6,0x418($sp)
/* f074a50: 3c017f1b */ lui $at,0x7f1b
/* f074a54: 45020013 */ bc1fl .PF0f074aa4
/* f074a58: 4406a000 */ mfc1 $a2,$f20
/* f074a5c: 46003281 */ sub.s $f10,$f6,$f0
/* f074a60: c424b680 */ lwc1 $f4,-0x4980($at)
/* f074a64: c6080004 */ lwc1 $f8,0x4($s0)
/* f074a68: 46045082 */ mul.s $f2,$f10,$f4
/* f074a6c: c60a000c */ lwc1 $f10,0xc($s0)
/* f074a70: 46024182 */ mul.s $f6,$f8,$f2
/* f074a74: 00000000 */ nop
/* f074a78: 46025102 */ mul.s $f4,$f10,$f2
/* f074a7c: e6060004 */ swc1 $f6,0x4($s0)
/* f074a80: e604000c */ swc1 $f4,0xc($s0)
/* f074a84: c7a8059c */ lwc1 $f8,0x59c($sp)
/* f074a88: c7aa05a4 */ lwc1 $f10,0x5a4($sp)
/* f074a8c: 46024182 */ mul.s $f6,$f8,$f2
/* f074a90: 00000000 */ nop
/* f074a94: 46025102 */ mul.s $f4,$f10,$f2
/* f074a98: e7a6059c */ swc1 $f6,0x59c($sp)
/* f074a9c: e7a405a4 */ swc1 $f4,0x5a4($sp)
.PF0f074aa0:
/* f074aa0: 4406a000 */ mfc1 $a2,$f20
.PF0f074aa4:
/* f074aa4: 02202025 */ move $a0,$s1
/* f074aa8: 27a5059c */ addiu $a1,$sp,0x59c
/* f074aac: 0fc1c8f2 */ jal func0f072144
/* f074ab0: 24070001 */ li $a3,0x1
/* f074ab4: 14400073 */ bnez $v0,.PF0f074c84
/* f074ab8: afa20600 */ sw $v0,0x600($sp)
/* f074abc: 4406a000 */ mfc1 $a2,$f20
/* f074ac0: 02202025 */ move $a0,$s1
/* f074ac4: 0fc1ca96 */ jal objCollide
/* f074ac8: 27a5059c */ addiu $a1,$sp,0x59c
/* f074acc: c7ae03e8 */ lwc1 $f14,0x3e8($sp)
/* f074ad0: c7b203dc */ lwc1 $f18,0x3dc($sp)
/* f074ad4: c7a803f0 */ lwc1 $f8,0x3f0($sp)
/* f074ad8: c7a603e4 */ lwc1 $f6,0x3e4($sp)
/* f074adc: 46127032 */ c.eq.s $f14,$f18
/* f074ae0: c7aa03e4 */ lwc1 $f10,0x3e4($sp)
/* f074ae4: c7a403f0 */ lwc1 $f4,0x3f0($sp)
/* f074ae8: 45020006 */ bc1fl .PF0f074b04
/* f074aec: 46045081 */ sub.s $f2,$f10,$f4
/* f074af0: 46064032 */ c.eq.s $f8,$f6
/* f074af4: 00000000 */ nop
/* f074af8: 45030063 */ bc1tl .PF0f074c88
/* f074afc: 8faa0600 */ lw $t2,0x600($sp)
/* f074b00: 46045081 */ sub.s $f2,$f10,$f4
.PF0f074b04:
/* f074b04: 460e9001 */ sub.s $f0,$f18,$f14
/* f074b08: 46021202 */ mul.s $f8,$f2,$f2
/* f074b0c: e7a203a0 */ swc1 $f2,0x3a0($sp)
/* f074b10: 46000182 */ mul.s $f6,$f0,$f0
/* f074b14: e7a00398 */ swc1 $f0,0x398($sp)
/* f074b18: 0c0127b4 */ jal sqrtf
/* f074b1c: 46064300 */ add.s $f12,$f8,$f6
/* f074b20: 3c013f80 */ lui $at,0x3f80
/* f074b24: 44815000 */ mtc1 $at,$f10
/* f074b28: c7a40398 */ lwc1 $f4,0x398($sp)
/* f074b2c: c7a603a0 */ lwc1 $f6,0x3a0($sp)
/* f074b30: 46005303 */ div.s $f12,$f10,$f0
/* f074b34: 3c01800a */ lui $at,0x800a
/* f074b38: c422a55c */ lwc1 $f2,-0x5aa4($at)
/* f074b3c: 8fa90088 */ lw $t1,0x88($sp)
/* f074b40: 460c2202 */ mul.s $f8,$f4,$f12
/* f074b44: 00000000 */ nop
/* f074b48: 460c3282 */ mul.s $f10,$f6,$f12
/* f074b4c: e7a80398 */ swc1 $f8,0x398($sp)
/* f074b50: e7aa03a0 */ swc1 $f10,0x3a0($sp)
/* f074b54: c604000c */ lwc1 $f4,0xc($s0)
/* f074b58: 46045182 */ mul.s $f6,$f10,$f4
/* f074b5c: c6040004 */ lwc1 $f4,0x4($s0)
/* f074b60: e7b40594 */ swc1 $f20,0x594($sp)
/* f074b64: e7b405a0 */ swc1 $f20,0x5a0($sp)
/* f074b68: 46082102 */ mul.s $f4,$f4,$f8
/* f074b6c: 46043380 */ add.s $f14,$f6,$f4
/* f074b70: 460e4182 */ mul.s $f6,$f8,$f14
/* f074b74: 00000000 */ nop
/* f074b78: 460e5102 */ mul.s $f4,$f10,$f14
/* f074b7c: 00000000 */ nop
/* f074b80: 46023202 */ mul.s $f8,$f6,$f2
/* f074b84: e7a60590 */ swc1 $f6,0x590($sp)
/* f074b88: c7a60430 */ lwc1 $f6,0x430($sp)
/* f074b8c: 46022282 */ mul.s $f10,$f4,$f2
/* f074b90: e7a40598 */ swc1 $f4,0x598($sp)
/* f074b94: e7a8059c */ swc1 $f8,0x59c($sp)
/* f074b98: 1120002f */ beqz $t1,.PF0f074c58
/* f074b9c: e7aa05a4 */ swc1 $f10,0x5a4($sp)
/* f074ba0: c6440008 */ lwc1 $f4,0x8($s2)
/* f074ba4: 46043181 */ sub.s $f6,$f6,$f4
/* f074ba8: c7a40438 */ lwc1 $f4,0x438($sp)
/* f074bac: 46083001 */ sub.s $f0,$f6,$f8
/* f074bb0: c6460010 */ lwc1 $f6,0x10($s2)
/* f074bb4: 46062201 */ sub.s $f8,$f4,$f6
/* f074bb8: 46000102 */ mul.s $f4,$f0,$f0
/* f074bbc: 460a4081 */ sub.s $f2,$f8,$f10
/* f074bc0: 46021182 */ mul.s $f6,$f2,$f2
/* f074bc4: 0c0127b4 */ jal sqrtf
/* f074bc8: 46062300 */ add.s $f12,$f4,$f6
/* f074bcc: c7a80418 */ lwc1 $f8,0x418($sp)
/* f074bd0: c7aa041c */ lwc1 $f10,0x41c($sp)
/* f074bd4: 4600403c */ c.lt.s $f8,$f0
/* f074bd8: 00000000 */ nop
/* f074bdc: 45020009 */ bc1fl .PF0f074c04
/* f074be0: 4600503c */ c.lt.s $f10,$f0
/* f074be4: e7b405a4 */ swc1 $f20,0x5a4($sp)
/* f074be8: c7a005a4 */ lwc1 $f0,0x5a4($sp)
/* f074bec: e7a0059c */ swc1 $f0,0x59c($sp)
/* f074bf0: e6000004 */ swc1 $f0,0x4($s0)
/* f074bf4: e600000c */ swc1 $f0,0xc($s0)
/* f074bf8: 10000017 */ b .PF0f074c58
/* f074bfc: e60000dc */ swc1 $f0,0xdc($s0)
/* f074c00: 4600503c */ c.lt.s $f10,$f0
.PF0f074c04:
/* f074c04: c7a40418 */ lwc1 $f4,0x418($sp)
/* f074c08: 3c017f1b */ lui $at,0x7f1b
/* f074c0c: 45020013 */ bc1fl .PF0f074c5c
/* f074c10: 4406a000 */ mfc1 $a2,$f20
/* f074c14: 46002181 */ sub.s $f6,$f4,$f0
/* f074c18: c428b684 */ lwc1 $f8,-0x497c($at)
/* f074c1c: c60a0004 */ lwc1 $f10,0x4($s0)
/* f074c20: 46083082 */ mul.s $f2,$f6,$f8
/* f074c24: c606000c */ lwc1 $f6,0xc($s0)
/* f074c28: 46025102 */ mul.s $f4,$f10,$f2
/* f074c2c: 00000000 */ nop
/* f074c30: 46023202 */ mul.s $f8,$f6,$f2
/* f074c34: e6040004 */ swc1 $f4,0x4($s0)
/* f074c38: e608000c */ swc1 $f8,0xc($s0)
/* f074c3c: c7aa059c */ lwc1 $f10,0x59c($sp)
/* f074c40: c7a605a4 */ lwc1 $f6,0x5a4($sp)
/* f074c44: 46025102 */ mul.s $f4,$f10,$f2
/* f074c48: 00000000 */ nop
/* f074c4c: 46023202 */ mul.s $f8,$f6,$f2
/* f074c50: e7a4059c */ swc1 $f4,0x59c($sp)
/* f074c54: e7a805a4 */ swc1 $f8,0x5a4($sp)
.PF0f074c58:
/* f074c58: 4406a000 */ mfc1 $a2,$f20
.PF0f074c5c:
/* f074c5c: 02202025 */ move $a0,$s1
/* f074c60: 27a5059c */ addiu $a1,$sp,0x59c
/* f074c64: 0fc1c8f2 */ jal func0f072144
/* f074c68: 24070001 */ li $a3,0x1
/* f074c6c: 14400005 */ bnez $v0,.PF0f074c84
/* f074c70: afa20600 */ sw $v0,0x600($sp)
/* f074c74: 4406a000 */ mfc1 $a2,$f20
/* f074c78: 02202025 */ move $a0,$s1
/* f074c7c: 0fc1ca96 */ jal objCollide
/* f074c80: 27a5059c */ addiu $a1,$sp,0x59c
.PF0f074c84:
/* f074c84: 8faa0600 */ lw $t2,0x600($sp)
.PF0f074c88:
/* f074c88: 24010001 */ li $at,0x1
/* f074c8c: c7aa0590 */ lwc1 $f10,0x590($sp)
/* f074c90: 55410007 */ bnel $t2,$at,.PF0f074cb0
/* f074c94: 8fab0600 */ lw $t3,0x600($sp)
/* f074c98: e60a0004 */ swc1 $f10,0x4($s0)
/* f074c9c: c7a40594 */ lwc1 $f4,0x594($sp)
/* f074ca0: e6040008 */ swc1 $f4,0x8($s0)
/* f074ca4: c7a60598 */ lwc1 $f6,0x598($sp)
/* f074ca8: e606000c */ swc1 $f6,0xc($s0)
.PF0f074cac:
/* f074cac: 8fab0600 */ lw $t3,0x600($sp)
.PF0f074cb0:
/* f074cb0: 24010001 */ li $at,0x1
/* f074cb4: 51610005 */ beql $t3,$at,.PF0f074ccc
/* f074cb8: 8e040088 */ lw $a0,0x88($s0)
/* f074cbc: e61400dc */ swc1 $f20,0xdc($s0)
/* f074cc0: e614000c */ swc1 $f20,0xc($s0)
/* f074cc4: e6140004 */ swc1 $f20,0x4($s0)
/* f074cc8: 8e040088 */ lw $a0,0x88($s0)
.PF0f074ccc:
/* f074ccc: 50800004 */ beqzl $a0,.PF0f074ce0
/* f074cd0: c6080004 */ lwc1 $f8,0x4($s0)
/* f074cd4: 0fc19102 */ jal propSetPerimEnabled
/* f074cd8: 24050001 */ li $a1,0x1
/* f074cdc: c6080004 */ lwc1 $f8,0x4($s0)
.PF0f074ce0:
/* f074ce0: 4608a032 */ c.eq.s $f20,$f8
/* f074ce4: 00000000 */ nop
/* f074ce8: 4502000e */ bc1fl .PF0f074d24
/* f074cec: 8fad0600 */ lw $t5,0x600($sp)
/* f074cf0: c60a000c */ lwc1 $f10,0xc($s0)
/* f074cf4: 460aa032 */ c.eq.s $f20,$f10
/* f074cf8: 00000000 */ nop
/* f074cfc: 45020009 */ bc1fl .PF0f074d24
/* f074d00: 8fad0600 */ lw $t5,0x600($sp)
/* f074d04: c60400dc */ lwc1 $f4,0xdc($s0)
/* f074d08: 4604a032 */ c.eq.s $f20,$f4
/* f074d0c: 00000000 */ nop
/* f074d10: 45020004 */ bc1fl .PF0f074d24
/* f074d14: 8fad0600 */ lw $t5,0x600($sp)
/* f074d18: 0fc1abb2 */ jal objEndFlight
/* f074d1c: 02202025 */ move $a0,$s1
/* f074d20: 8fad0600 */ lw $t5,0x600($sp)
.PF0f074d24:
/* f074d24: 24010001 */ li $at,0x1
/* f074d28: 8fa40070 */ lw $a0,0x70($sp)
/* f074d2c: 15a10012 */ bne $t5,$at,.PF0f074d78
/* f074d30: 3c054000 */ lui $a1,0x4000
/* f074d34: 26460028 */ addiu $a2,$s2,0x28
/* f074d38: 26270058 */ addiu $a3,$s1,0x58
/* f074d3c: 0c00a70c */ jal cdFindGroundYSimple
/* f074d40: afa00010 */ sw $zero,0x10($sp)
/* f074d44: 3c017f1b */ lui $at,0x7f1b
/* f074d48: c426b688 */ lwc1 $f6,-0x4978($at)
/* f074d4c: 46000086 */ mov.s $f2,$f0
/* f074d50: 02202025 */ move $a0,$s1
/* f074d54: 4600303c */ c.lt.s $f6,$f0
/* f074d58: 00000000 */ nop
/* f074d5c: 45020007 */ bc1fl .PF0f074d7c
/* f074d60: 02202025 */ move $a0,$s1
/* f074d64: 0fc1c57a */ jal objGetHov04
/* f074d68: e7a20584 */ swc1 $f2,0x584($sp)
/* f074d6c: c7a20584 */ lwc1 $f2,0x584($sp)
/* f074d70: 46020200 */ add.s $f8,$f0,$f2
/* f074d74: e648000c */ swc1 $f8,0xc($s2)
.PF0f074d78:
/* f074d78: 02202025 */ move $a0,$s1
.PF0f074d7c:
/* f074d7c: 00002825 */ move $a1,$zero
/* f074d80: 0fc1a7be */ jal func0f069c70
/* f074d84: 24060001 */ li $a2,0x1
/* f074d88: 27b00484 */ addiu $s0,$sp,0x484
/* f074d8c: 02002825 */ move $a1,$s0
/* f074d90: 0c0056b9 */ jal mtx3ToMtx4
/* f074d94: 8fa40074 */ lw $a0,0x74($sp)
/* f074d98: 8fa40070 */ lw $a0,0x70($sp)
/* f074d9c: 0c0056d9 */ jal mtx4SetTranslation
/* f074da0: 02002825 */ move $a1,$s0
/* f074da4: 27b104c4 */ addiu $s1,$sp,0x4c4
/* f074da8: 02202825 */ move $a1,$s1
/* f074dac: 0c005c20 */ jal mtx000172f0
/* f074db0: 27a40504 */ addiu $a0,$sp,0x504
/* f074db4: 02002025 */ move $a0,$s0
/* f074db8: 02202825 */ move $a1,$s1
/* f074dbc: 0c0055e4 */ jal mtx4MultMtx4
/* f074dc0: 27a60544 */ addiu $a2,$sp,0x544
/* f074dc4: 02402025 */ move $a0,$s2
/* f074dc8: 0fc1cd53 */ jal platformDisplaceProps2
/* f074dcc: 27a50544 */ addiu $a1,$sp,0x544
/* f074dd0: 240c0001 */ li $t4,0x1
/* f074dd4: 100008f5 */ b .PF0f0771ac
/* f074dd8: afac05d8 */ sw $t4,0x5d8($sp)
.PF0f074ddc:
/* f074ddc: 11c007c2 */ beqz $t6,.PF0f076ce8
/* f074de0: 304c0400 */ andi $t4,$v0,0x400
/* f074de4: afa00354 */ sw $zero,0x354($sp)
/* f074de8: afa00350 */ sw $zero,0x350($sp)
/* f074dec: afa0034c */ sw $zero,0x34c($sp)
/* f074df0: 8e0f00d0 */ lw $t7,0xd0($s0)
/* f074df4: 8c780034 */ lw $t8,0x34($v1)
/* f074df8: 30494000 */ andi $t1,$v0,0x4000
/* f074dfc: 01f8c821 */ addu $t9,$t7,$t8
/* f074e00: 15200003 */ bnez $t1,.PF0f074e10
/* f074e04: ae1900d0 */ sw $t9,0xd0($s0)
/* f074e08: 2b211f41 */ slti $at,$t9,0x1f41
/* f074e0c: 10200021 */ beqz $at,.PF0f074e94
.PF0f074e10:
/* f074e10: 3c017f1b */ lui $at,0x7f1b
/* f074e14: c42ab68c */ lwc1 $f10,-0x4974($at)
/* f074e18: c640000c */ lwc1 $f0,0xc($s2)
/* f074e1c: 3c0146fa */ lui $at,0x46fa
/* f074e20: 460a003c */ c.lt.s $f0,$f10
/* f074e24: 00000000 */ nop
/* f074e28: 4503001b */ bc1tl .PF0f074e98
/* f074e2c: 8e2b0040 */ lw $t3,0x40($s1)
/* f074e30: 44811000 */ mtc1 $at,$f2
/* f074e34: 3c01c6fa */ lui $at,0xc6fa
/* f074e38: 4600103c */ c.lt.s $f2,$f0
/* f074e3c: 00000000 */ nop
/* f074e40: 45030015 */ bc1tl .PF0f074e98
/* f074e44: 8e2b0040 */ lw $t3,0x40($s1)
/* f074e48: 44816000 */ mtc1 $at,$f12
/* f074e4c: c6400008 */ lwc1 $f0,0x8($s2)
/* f074e50: 460c003c */ c.lt.s $f0,$f12
/* f074e54: 00000000 */ nop
/* f074e58: 4503000f */ bc1tl .PF0f074e98
/* f074e5c: 8e2b0040 */ lw $t3,0x40($s1)
/* f074e60: 4600103c */ c.lt.s $f2,$f0
/* f074e64: 00000000 */ nop
/* f074e68: 4503000b */ bc1tl .PF0f074e98
/* f074e6c: 8e2b0040 */ lw $t3,0x40($s1)
/* f074e70: c6400010 */ lwc1 $f0,0x10($s2)
/* f074e74: 460c003c */ c.lt.s $f0,$f12
/* f074e78: 00000000 */ nop
/* f074e7c: 45030006 */ bc1tl .PF0f074e98
/* f074e80: 8e2b0040 */ lw $t3,0x40($s1)
/* f074e84: 4600103c */ c.lt.s $f2,$f0
/* f074e88: 00000000 */ nop
/* f074e8c: 45020005 */ bc1fl .PF0f074ea4
/* f074e90: 8e0c00a0 */ lw $t4,0xa0($s0)
.PF0f074e94:
/* f074e94: 8e2b0040 */ lw $t3,0x40($s1)
.PF0f074e98:
/* f074e98: 356d0004 */ ori $t5,$t3,0x4
/* f074e9c: ae2d0040 */ sw $t5,0x40($s1)
/* f074ea0: 8e0c00a0 */ lw $t4,0xa0($s0)
.PF0f074ea4:
/* f074ea4: 8c6e0034 */ lw $t6,0x34($v1)
/* f074ea8: 2624001c */ addiu $a0,$s1,0x1c
/* f074eac: 27a50358 */ addiu $a1,$sp,0x358
/* f074eb0: 018e7821 */ addu $t7,$t4,$t6
/* f074eb4: ae0f00a0 */ sw $t7,0xa0($s0)
/* f074eb8: 0c00569a */ jal mtx3Copy
/* f074ebc: afa40074 */ sw $a0,0x74($sp)
/* f074ec0: 8e180000 */ lw $t8,0x0($s0)
/* f074ec4: 3c017f1b */ lui $at,0x7f1b
/* f074ec8: 33190020 */ andi $t9,$t8,0x20
/* f074ecc: 5320004b */ beqzl $t9,.PF0f074ffc
/* f074ed0: 922c0003 */ lbu $t4,0x3($s1)
/* f074ed4: c430b690 */ lwc1 $f16,-0x4970($at)
/* f074ed8: c600001c */ lwc1 $f0,0x1c($s0)
/* f074edc: 3c03800a */ lui $v1,0x800a
/* f074ee0: 2463a510 */ addiu $v1,$v1,-23280
/* f074ee4: 4610003c */ c.lt.s $f0,$f16
/* f074ee8: 00000000 */ nop
/* f074eec: 4502001b */ bc1fl .PF0f074f5c
/* f074ef0: c60000a8 */ lwc1 $f0,0xa8($s0)
/* f074ef4: c6040014 */ lwc1 $f4,0x14($s0)
/* f074ef8: c466004c */ lwc1 $f6,0x4c($v1)
/* f074efc: c60a00ac */ lwc1 $f10,0xac($s0)
/* f074f00: 3c017f1b */ lui $at,0x7f1b
/* f074f04: 46062202 */ mul.s $f8,$f4,$f6
/* f074f08: 46085100 */ add.s $f4,$f10,$f8
/* f074f0c: e60400ac */ swc1 $f4,0xac($s0)
/* f074f10: c46a004c */ lwc1 $f10,0x4c($v1)
/* f074f14: c60600ac */ lwc1 $f6,0xac($s0)
/* f074f18: c60400a8 */ lwc1 $f4,0xa8($s0)
/* f074f1c: 460a3202 */ mul.s $f8,$f6,$f10
/* f074f20: 46082180 */ add.s $f6,$f4,$f8
/* f074f24: e60600a8 */ swc1 $f6,0xa8($s0)
/* f074f28: c464004c */ lwc1 $f4,0x4c($v1)
/* f074f2c: c42ab694 */ lwc1 $f10,-0x496c($at)
/* f074f30: 46045202 */ mul.s $f8,$f10,$f4
/* f074f34: 46080180 */ add.s $f6,$f0,$f8
/* f074f38: e606001c */ swc1 $f6,0x1c($s0)
/* f074f3c: c60a001c */ lwc1 $f10,0x1c($s0)
/* f074f40: 460a803c */ c.lt.s $f16,$f10
/* f074f44: 00000000 */ nop
/* f074f48: 4502002c */ bc1fl .PF0f074ffc
/* f074f4c: 922c0003 */ lbu $t4,0x3($s1)
/* f074f50: 10000029 */ b .PF0f074ff8
/* f074f54: e610001c */ swc1 $f16,0x1c($s0)
/* f074f58: c60000a8 */ lwc1 $f0,0xa8($s0)
.PF0f074f5c:
/* f074f5c: c7a405e0 */ lwc1 $f4,0x5e0($sp)
/* f074f60: 4600203c */ c.lt.s $f4,$f0
/* f074f64: 00000000 */ nop
/* f074f68: 45000018 */ bc1f .PF0f074fcc
/* f074f6c: 3c01800a */ lui $at,0x800a
/* f074f70: c426a55c */ lwc1 $f6,-0x5aa4($at)
/* f074f74: c6080014 */ lwc1 $f8,0x14($s0)
/* f074f78: c60400ac */ lwc1 $f4,0xac($s0)
/* f074f7c: 46064282 */ mul.s $f10,$f8,$f6
/* f074f80: 460a2200 */ add.s $f8,$f4,$f10
/* f074f84: e60800ac */ swc1 $f8,0xac($s0)
/* f074f88: c424a55c */ lwc1 $f4,-0x5aa4($at)
/* f074f8c: c60600ac */ lwc1 $f6,0xac($s0)
/* f074f90: 3c017f1b */ lui $at,0x7f1b
/* f074f94: 46043282 */ mul.s $f10,$f6,$f4
/* f074f98: 460a0200 */ add.s $f8,$f0,$f10
/* f074f9c: e60800a8 */ swc1 $f8,0xa8($s0)
/* f074fa0: c7a405e0 */ lwc1 $f4,0x5e0($sp)
/* f074fa4: c60600a8 */ lwc1 $f6,0xa8($s0)
/* f074fa8: c428b698 */ lwc1 $f8,-0x4968($at)
/* f074fac: 3c01800a */ lui $at,0x800a
/* f074fb0: 46043281 */ sub.s $f10,$f6,$f4
/* f074fb4: 460a4182 */ mul.s $f6,$f8,$f10
/* f074fb8: c428a55c */ lwc1 $f8,-0x5aa4($at)
/* f074fbc: 46083282 */ mul.s $f10,$f6,$f8
/* f074fc0: 460a2180 */ add.s $f6,$f4,$f10
/* f074fc4: 1000000c */ b .PF0f074ff8
/* f074fc8: e7a605e0 */ swc1 $f6,0x5e0($sp)
.PF0f074fcc:
/* f074fcc: e7a005e0 */ swc1 $f0,0x5e0($sp)
/* f074fd0: 8e090000 */ lw $t1,0x0($s0)
/* f074fd4: 2401ffdf */ li $at,-33
/* f074fd8: 4480a000 */ mtc1 $zero,$f20
/* f074fdc: c60800ac */ lwc1 $f8,0xac($s0)
/* f074fe0: 01215024 */ and $t2,$t1,$at
/* f074fe4: ae0a0000 */ sw $t2,0x0($s0)
/* f074fe8: 354d0010 */ ori $t5,$t2,0x10
/* f074fec: ae0d0000 */ sw $t5,0x0($s0)
/* f074ff0: e6080008 */ swc1 $f8,0x8($s0)
/* f074ff4: e614001c */ swc1 $f20,0x1c($s0)
.PF0f074ff8:
/* f074ff8: 922c0003 */ lbu $t4,0x3($s1)
.PF0f074ffc:
/* f074ffc: 4480a000 */ mtc1 $zero,$f20
/* f075000: 24010008 */ li $at,0x8
/* f075004: 15810006 */ bne $t4,$at,.PF0f075020
/* f075008: 00001025 */ move $v0,$zero
/* f07500c: 922e005c */ lbu $t6,0x5c($s1)
/* f075010: 24010054 */ li $at,0x54
/* f075014: 15c10002 */ bne $t6,$at,.PF0f075020
/* f075018: 00000000 */ nop
/* f07501c: 24020001 */ li $v0,0x1
.PF0f075020:
/* f075020: 10400129 */ beqz $v0,.PF0f0754c8
/* f075024: 3c188007 */ lui $t8,0x8007
/* f075028: 27189874 */ addiu $t8,$t8,-26508
/* f07502c: 8f010000 */ lw $at,0x0($t8)
/* f075030: 27af02f8 */ addiu $t7,$sp,0x2f8
/* f075034: 8f090004 */ lw $t1,0x4($t8)
/* f075038: ade10000 */ sw $at,0x0($t7)
/* f07503c: 8f010008 */ lw $at,0x8($t8)
/* f075040: 3c0b8007 */ lui $t3,0x8007
/* f075044: 256b9880 */ addiu $t3,$t3,-26496
/* f075048: ade90004 */ sw $t1,0x4($t7)
/* f07504c: ade10008 */ sw $at,0x8($t7)
/* f075050: 8d610000 */ lw $at,0x0($t3)
/* f075054: 27aa02ec */ addiu $t2,$sp,0x2ec
/* f075058: 8d6c0004 */ lw $t4,0x4($t3)
/* f07505c: ad410000 */ sw $at,0x0($t2)
/* f075060: 8d610008 */ lw $at,0x8($t3)
/* f075064: 3c198007 */ lui $t9,0x8007
/* f075068: 2739988c */ addiu $t9,$t9,-26484
/* f07506c: ad4c0004 */ sw $t4,0x4($t2)
/* f075070: ad410008 */ sw $at,0x8($t2)
/* f075074: 8f210000 */ lw $at,0x0($t9)
/* f075078: 27ae02e0 */ addiu $t6,$sp,0x2e0
/* f07507c: 8f380004 */ lw $t8,0x4($t9)
/* f075080: adc10000 */ sw $at,0x0($t6)
/* f075084: 8f210008 */ lw $at,0x8($t9)
/* f075088: add80004 */ sw $t8,0x4($t6)
/* f07508c: 1220010e */ beqz $s1,.PF0f0754c8
/* f075090: adc10008 */ sw $at,0x8($t6)
/* f075094: 8e290014 */ lw $t1,0x14($s1)
/* f075098: 5120010c */ beqzl $t1,.PF0f0754cc
/* f07509c: 8e020000 */ lw $v0,0x0($s0)
/* f0750a0: 8e0d00e8 */ lw $t5,0xe8($s0)
/* f0750a4: 51a00109 */ beqzl $t5,.PF0f0754cc
/* f0750a8: 8e020000 */ lw $v0,0x0($s0)
/* f0750ac: c622001c */ lwc1 $f2,0x1c($s1)
/* f0750b0: c62e0028 */ lwc1 $f14,0x28($s1)
/* f0750b4: c6200034 */ lwc1 $f0,0x34($s1)
/* f0750b8: 46021102 */ mul.s $f4,$f2,$f2
/* f0750bc: 00000000 */ nop
/* f0750c0: 460e7282 */ mul.s $f10,$f14,$f14
/* f0750c4: 460a2180 */ add.s $f6,$f4,$f10
/* f0750c8: 46000202 */ mul.s $f8,$f0,$f0
/* f0750cc: 0c0127b4 */ jal sqrtf
/* f0750d0: 46064300 */ add.s $f12,$f8,$f6
/* f0750d4: 27a402a0 */ addiu $a0,$sp,0x2a0
/* f0750d8: 0c0055d0 */ jal mtx4LoadIdentity
/* f0750dc: e7a0029c */ swc1 $f0,0x29c($sp)
/* f0750e0: c7ae029c */ lwc1 $f14,0x29c($sp)
/* f0750e4: c624001c */ lwc1 $f4,0x1c($s1)
/* f0750e8: 27a40290 */ addiu $a0,$sp,0x290
/* f0750ec: 27a50294 */ addiu $a1,$sp,0x294
/* f0750f0: 460e2283 */ div.s $f10,$f4,$f14
/* f0750f4: 27a60298 */ addiu $a2,$sp,0x298
/* f0750f8: e7aa02a0 */ swc1 $f10,0x2a0($sp)
/* f0750fc: c6280020 */ lwc1 $f8,0x20($s1)
/* f075100: 460e4183 */ div.s $f6,$f8,$f14
/* f075104: e7a602a4 */ swc1 $f6,0x2a4($sp)
/* f075108: c6240024 */ lwc1 $f4,0x24($s1)
/* f07510c: 460e2283 */ div.s $f10,$f4,$f14
/* f075110: e7aa02a8 */ swc1 $f10,0x2a8($sp)
/* f075114: c6280028 */ lwc1 $f8,0x28($s1)
/* f075118: 460e4183 */ div.s $f6,$f8,$f14
/* f07511c: e7a602b0 */ swc1 $f6,0x2b0($sp)
/* f075120: c624002c */ lwc1 $f4,0x2c($s1)
/* f075124: 460e2283 */ div.s $f10,$f4,$f14
/* f075128: e7aa02b4 */ swc1 $f10,0x2b4($sp)
/* f07512c: c6280030 */ lwc1 $f8,0x30($s1)
/* f075130: 460e4183 */ div.s $f6,$f8,$f14
/* f075134: e7a602b8 */ swc1 $f6,0x2b8($sp)
/* f075138: c6240034 */ lwc1 $f4,0x34($s1)
/* f07513c: 460e2283 */ div.s $f10,$f4,$f14
/* f075140: e7aa02c0 */ swc1 $f10,0x2c0($sp)
/* f075144: c6280038 */ lwc1 $f8,0x38($s1)
/* f075148: 460e4183 */ div.s $f6,$f8,$f14
/* f07514c: e7a602c4 */ swc1 $f6,0x2c4($sp)
/* f075150: c624003c */ lwc1 $f4,0x3c($s1)
/* f075154: 460e2283 */ div.s $f10,$f4,$f14
/* f075158: e7aa02c8 */ swc1 $f10,0x2c8($sp)
/* f07515c: 8e2a0014 */ lw $t2,0x14($s1)
/* f075160: c5480008 */ lwc1 $f8,0x8($t2)
/* f075164: e7a802f8 */ swc1 $f8,0x2f8($sp)
/* f075168: 8e2b0014 */ lw $t3,0x14($s1)
/* f07516c: c7a802f8 */ lwc1 $f8,0x2f8($sp)
/* f075170: c566000c */ lwc1 $f6,0xc($t3)
/* f075174: e7a602fc */ swc1 $f6,0x2fc($sp)
/* f075178: 8e2c0014 */ lw $t4,0x14($s1)
/* f07517c: c5840010 */ lwc1 $f4,0x10($t4)
/* f075180: e7a40300 */ swc1 $f4,0x300($sp)
/* f075184: 8e0f00e8 */ lw $t7,0xe8($s0)
/* f075188: c5ea0008 */ lwc1 $f10,0x8($t7)
/* f07518c: 46085181 */ sub.s $f6,$f10,$f8
/* f075190: c7aa02fc */ lwc1 $f10,0x2fc($sp)
/* f075194: e7a60290 */ swc1 $f6,0x290($sp)
/* f075198: 8e0e00e8 */ lw $t6,0xe8($s0)
/* f07519c: c5c4000c */ lwc1 $f4,0xc($t6)
/* f0751a0: 460a2201 */ sub.s $f8,$f4,$f10
/* f0751a4: c7a40300 */ lwc1 $f4,0x300($sp)
/* f0751a8: e7a80294 */ swc1 $f8,0x294($sp)
/* f0751ac: 8e1900e8 */ lw $t9,0xe8($s0)
/* f0751b0: c7260010 */ lwc1 $f6,0x10($t9)
/* f0751b4: e7ae029c */ swc1 $f14,0x29c($sp)
/* f0751b8: 46043281 */ sub.s $f10,$f6,$f4
/* f0751bc: 0c0011d8 */ jal guNormalize
/* f0751c0: e7aa0298 */ swc1 $f10,0x298($sp)
/* f0751c4: c6080004 */ lwc1 $f8,0x4($s0)
/* f0751c8: 27a402ec */ addiu $a0,$sp,0x2ec
/* f0751cc: 27a502f0 */ addiu $a1,$sp,0x2f0
/* f0751d0: e7a802ec */ swc1 $f8,0x2ec($sp)
/* f0751d4: c6060008 */ lwc1 $f6,0x8($s0)
/* f0751d8: 27a602f4 */ addiu $a2,$sp,0x2f4
/* f0751dc: e7a602f0 */ swc1 $f6,0x2f0($sp)
/* f0751e0: c604000c */ lwc1 $f4,0xc($s0)
/* f0751e4: 0c0011d8 */ jal guNormalize
/* f0751e8: e7a402f4 */ swc1 $f4,0x2f4($sp)
/* f0751ec: c7aa0298 */ lwc1 $f10,0x298($sp)
/* f0751f0: c7a802f4 */ lwc1 $f8,0x2f4($sp)
/* f0751f4: c7b00290 */ lwc1 $f16,0x290($sp)
/* f0751f8: c7a402ec */ lwc1 $f4,0x2ec($sp)
/* f0751fc: 46085182 */ mul.s $f6,$f10,$f8
/* f075200: c7b20294 */ lwc1 $f18,0x294($sp)
/* f075204: c7a802f0 */ lwc1 $f8,0x2f0($sp)
/* f075208: 46102282 */ mul.s $f10,$f4,$f16
/* f07520c: 00000000 */ nop
/* f075210: 46124102 */ mul.s $f4,$f8,$f18
/* f075214: 46045200 */ add.s $f8,$f10,$f4
/* f075218: 0fc25a3c */ jal acosf
/* f07521c: 46083300 */ add.s $f12,$f6,$f8
/* f075220: 3c017f1b */ lui $at,0x7f1b
/* f075224: c42ab6a0 */ lwc1 $f10,-0x4960($at)
/* f075228: 3c047f1b */ lui $a0,0x7f1b
/* f07522c: c7ae029c */ lwc1 $f14,0x29c($sp)
/* f075230: 4600503c */ c.lt.s $f10,$f0
/* f075234: e7a0028c */ swc1 $f0,0x28c($sp)
/* f075238: 3c017f1b */ lui $at,0x7f1b
/* f07523c: 2484b260 */ addiu $a0,$a0,-19872
/* f075240: 45010005 */ bc1t .PF0f075258
/* f075244: 3c058007 */ lui $a1,0x8007
/* f075248: c424b6a4 */ lwc1 $f4,-0x495c($at)
/* f07524c: 4604003c */ c.lt.s $f0,$f4
/* f075250: 00000000 */ nop
/* f075254: 4500009c */ bc1f .PF0f0754c8
.PF0f075258:
/* f075258: 24a598a4 */ addiu $a1,$a1,-26460
/* f07525c: 0c003624 */ jal mainOverrideVariable
/* f075260: e7ae029c */ swc1 $f14,0x29c($sp)
/* f075264: 3c047f1b */ lui $a0,0x7f1b
/* f075268: 3c058007 */ lui $a1,0x8007
/* f07526c: 24a598a8 */ addiu $a1,$a1,-26456
/* f075270: 0c003624 */ jal mainOverrideVariable
/* f075274: 2484b264 */ addiu $a0,$a0,-19868
/* f075278: 3c047f1b */ lui $a0,0x7f1b
/* f07527c: 3c058007 */ lui $a1,0x8007
/* f075280: 24a598ac */ addiu $a1,$a1,-26452
/* f075284: 0c003624 */ jal mainOverrideVariable
/* f075288: 2484b268 */ addiu $a0,$a0,-19864
/* f07528c: 3c188007 */ lui $t8,0x8007
/* f075290: 8f1898a8 */ lw $t8,-0x6758($t8)
/* f075294: 3c01800a */ lui $at,0x800a
/* f075298: c7b00290 */ lwc1 $f16,0x290($sp)
/* f07529c: 44983000 */ mtc1 $t8,$f6
/* f0752a0: c7b20294 */ lwc1 $f18,0x294($sp)
/* f0752a4: c422a55c */ lwc1 $f2,-0x5aa4($at)
/* f0752a8: 07010005 */ bgez $t8,.PF0f0752c0
/* f0752ac: 46803220 */ cvt.s.w $f8,$f6
/* f0752b0: 3c014f80 */ lui $at,0x4f80
/* f0752b4: 44815000 */ mtc1 $at,$f10
/* f0752b8: 00000000 */ nop
/* f0752bc: 460a4200 */ add.s $f8,$f8,$f10
.PF0f0752c0:
/* f0752c0: 3c0142c8 */ lui $at,0x42c8
/* f0752c4: 44812000 */ mtc1 $at,$f4
/* f0752c8: 3c018007 */ lui $at,0x8007
/* f0752cc: c42a98a0 */ lwc1 $f10,-0x6760($at)
/* f0752d0: 46044183 */ div.s $f6,$f8,$f4
/* f0752d4: 3c098007 */ lui $t1,0x8007
/* f0752d8: 8d2998ac */ lw $t1,-0x6754($t1)
/* f0752dc: 460a3202 */ mul.s $f8,$f6,$f10
/* f0752e0: 44893000 */ mtc1 $t1,$f6
/* f0752e4: 00000000 */ nop
/* f0752e8: 468032a0 */ cvt.s.w $f10,$f6
/* f0752ec: 05210005 */ bgez $t1,.PF0f075304
/* f0752f0: 46024103 */ div.s $f4,$f8,$f2
/* f0752f4: 3c014f80 */ lui $at,0x4f80
/* f0752f8: 44814000 */ mtc1 $at,$f8
/* f0752fc: 00000000 */ nop
/* f075300: 46085280 */ add.s $f10,$f10,$f8
.PF0f075304:
/* f075304: 3c0142c8 */ lui $at,0x42c8
/* f075308: 44813000 */ mtc1 $at,$f6
/* f07530c: 3c0d8007 */ lui $t5,0x8007
/* f075310: 8dad98a4 */ lw $t5,-0x675c($t5)
/* f075314: 46065203 */ div.s $f8,$f10,$f6
/* f075318: c7aa028c */ lwc1 $f10,0x28c($sp)
/* f07531c: 3c014f80 */ lui $at,0x4f80
/* f075320: 460a4182 */ mul.s $f6,$f8,$f10
/* f075324: 00000000 */ nop
/* f075328: 46023202 */ mul.s $f8,$f6,$f2
/* f07532c: 46082180 */ add.s $f6,$f4,$f8
/* f075330: 448d2000 */ mtc1 $t5,$f4
/* f075334: 05a10004 */ bgez $t5,.PF0f075348
/* f075338: 46802220 */ cvt.s.w $f8,$f4
/* f07533c: 44812000 */ mtc1 $at,$f4
/* f075340: 00000000 */ nop
/* f075344: 46044200 */ add.s $f8,$f8,$f4
.PF0f075348:
/* f075348: 3c0142c8 */ lui $at,0x42c8
/* f07534c: 44812000 */ mtc1 $at,$f4
/* f075350: 3c018007 */ lui $at,0x8007
/* f075354: e42a98a0 */ swc1 $f10,-0x6760($at)
/* f075358: 46044203 */ div.s $f8,$f8,$f4
/* f07535c: c7a402f0 */ lwc1 $f4,0x2f0($sp)
/* f075360: c7aa02f4 */ lwc1 $f10,0x2f4($sp)
/* f075364: 3c013f00 */ lui $at,0x3f00
/* f075368: 46083002 */ mul.s $f0,$f6,$f8
/* f07536c: c7a60298 */ lwc1 $f6,0x298($sp)
/* f075370: 46062202 */ mul.s $f8,$f4,$f6
/* f075374: 00000000 */ nop
/* f075378: 460a9182 */ mul.s $f6,$f18,$f10
/* f07537c: 46064281 */ sub.s $f10,$f8,$f6
/* f075380: c7a60298 */ lwc1 $f6,0x298($sp)
/* f075384: c7a802ec */ lwc1 $f8,0x2ec($sp)
/* f075388: e7aa0280 */ swc1 $f10,0x280($sp)
/* f07538c: 46064282 */ mul.s $f10,$f8,$f6
/* f075390: c7a802f4 */ lwc1 $f8,0x2f4($sp)
/* f075394: 46088182 */ mul.s $f6,$f16,$f8
/* f075398: 46065201 */ sub.s $f8,$f10,$f6
/* f07539c: c7a602ec */ lwc1 $f6,0x2ec($sp)
/* f0753a0: 46004287 */ neg.s $f10,$f8
/* f0753a4: 46123202 */ mul.s $f8,$f6,$f18
/* f0753a8: e7aa0284 */ swc1 $f10,0x284($sp)
/* f0753ac: 46048282 */ mul.s $f10,$f16,$f4
/* f0753b0: 44812000 */ mtc1 $at,$f4
/* f0753b4: 00000000 */ nop
/* f0753b8: 46040302 */ mul.s $f12,$f0,$f4
/* f0753bc: 460a4181 */ sub.s $f6,$f8,$f10
/* f0753c0: e7ac0078 */ swc1 $f12,0x78($sp)
/* f0753c4: 0c006858 */ jal cosf
/* f0753c8: e7a60288 */ swc1 $f6,0x288($sp)
/* f0753cc: e7a00260 */ swc1 $f0,0x260($sp)
/* f0753d0: 0c00685b */ jal sinf
/* f0753d4: c7ac0078 */ lwc1 $f12,0x78($sp)
/* f0753d8: c7a80280 */ lwc1 $f8,0x280($sp)
/* f0753dc: c7ac0078 */ lwc1 $f12,0x78($sp)
/* f0753e0: 46080282 */ mul.s $f10,$f0,$f8
/* f0753e4: 0c00685b */ jal sinf
/* f0753e8: e7aa0264 */ swc1 $f10,0x264($sp)
/* f0753ec: c7a60284 */ lwc1 $f6,0x284($sp)
/* f0753f0: c7ac0078 */ lwc1 $f12,0x78($sp)
/* f0753f4: 46060102 */ mul.s $f4,$f0,$f6
/* f0753f8: 0c00685b */ jal sinf
/* f0753fc: e7a40268 */ swc1 $f4,0x268($sp)
/* f075400: c7a80288 */ lwc1 $f8,0x288($sp)
/* f075404: 27a40260 */ addiu $a0,$sp,0x260
/* f075408: 27a5020c */ addiu $a1,$sp,0x20c
/* f07540c: 46080282 */ mul.s $f10,$f0,$f8
/* f075410: 0fc25b7d */ jal quaternionToMtx
/* f075414: e7aa026c */ swc1 $f10,0x26c($sp)
/* f075418: e6140018 */ swc1 $f20,0x18($s0)
/* f07541c: e6140014 */ swc1 $f20,0x14($s0)
/* f075420: e6140010 */ swc1 $f20,0x10($s0)
/* f075424: 27a4020c */ addiu $a0,$sp,0x20c
/* f075428: 0c005628 */ jal mtx4RotateVecInPlace
/* f07542c: 26050004 */ addiu $a1,$s0,0x4
/* f075430: 27a402a0 */ addiu $a0,$sp,0x2a0
/* f075434: 0fc25bd9 */ jal quaternion0f097044
/* f075438: 27a50270 */ addiu $a1,$sp,0x270
/* f07543c: 27a40270 */ addiu $a0,$sp,0x270
/* f075440: 27a50260 */ addiu $a1,$sp,0x260
/* f075444: 0fc25d96 */ jal quaternionMultQuaternion
/* f075448: 27a60250 */ addiu $a2,$sp,0x250
/* f07544c: 27a40250 */ addiu $a0,$sp,0x250
/* f075450: 0fc25b7d */ jal quaternionToMtx
/* f075454: 27a5020c */ addiu $a1,$sp,0x20c
/* f075458: c7ae029c */ lwc1 $f14,0x29c($sp)
/* f07545c: c7a6020c */ lwc1 $f6,0x20c($sp)
/* f075460: 460e3102 */ mul.s $f4,$f6,$f14
/* f075464: e624001c */ swc1 $f4,0x1c($s1)
/* f075468: c7a80210 */ lwc1 $f8,0x210($sp)
/* f07546c: 460e4282 */ mul.s $f10,$f8,$f14
/* f075470: e62a0020 */ swc1 $f10,0x20($s1)
/* f075474: c7a60214 */ lwc1 $f6,0x214($sp)
/* f075478: 460e3102 */ mul.s $f4,$f6,$f14
/* f07547c: e6240024 */ swc1 $f4,0x24($s1)
/* f075480: c7a8021c */ lwc1 $f8,0x21c($sp)
/* f075484: 460e4282 */ mul.s $f10,$f8,$f14
/* f075488: e62a0028 */ swc1 $f10,0x28($s1)
/* f07548c: c7a60220 */ lwc1 $f6,0x220($sp)
/* f075490: 460e3102 */ mul.s $f4,$f6,$f14
/* f075494: e624002c */ swc1 $f4,0x2c($s1)
/* f075498: c7a80224 */ lwc1 $f8,0x224($sp)
/* f07549c: 460e4282 */ mul.s $f10,$f8,$f14
/* f0754a0: e62a0030 */ swc1 $f10,0x30($s1)
/* f0754a4: c7a6022c */ lwc1 $f6,0x22c($sp)
/* f0754a8: 460e3102 */ mul.s $f4,$f6,$f14
/* f0754ac: e6240034 */ swc1 $f4,0x34($s1)
/* f0754b0: c7a80230 */ lwc1 $f8,0x230($sp)
/* f0754b4: 460e4282 */ mul.s $f10,$f8,$f14
/* f0754b8: e62a0038 */ swc1 $f10,0x38($s1)
/* f0754bc: c7a60234 */ lwc1 $f6,0x234($sp)
/* f0754c0: 460e3102 */ mul.s $f4,$f6,$f14
/* f0754c4: e624003c */ swc1 $f4,0x3c($s1)
.PF0f0754c8:
/* f0754c8: 8e020000 */ lw $v0,0x0($s0)
.PF0f0754cc:
/* f0754cc: 3c03800a */ lui $v1,0x800a
/* f0754d0: 2463a510 */ addiu $v1,$v1,-23280
/* f0754d4: 3c017f1b */ lui $at,0x7f1b
/* f0754d8: 304a0010 */ andi $t2,$v0,0x10
/* f0754dc: c430b6a8 */ lwc1 $f16,-0x4958($at)
/* f0754e0: c462004c */ lwc1 $f2,0x4c($v1)
/* f0754e4: c600001c */ lwc1 $f0,0x1c($s0)
/* f0754e8: 1540001e */ bnez $t2,.PF0f075564
/* f0754ec: c60c0014 */ lwc1 $f12,0x14($s0)
/* f0754f0: 46006280 */ add.s $f10,$f12,$f0
/* f0754f4: c6080008 */ lwc1 $f8,0x8($s0)
/* f0754f8: 00025840 */ sll $t3,$v0,0x1
/* f0754fc: 3c017f1b */ lui $at,0x7f1b
/* f075500: 46025182 */ mul.s $f6,$f10,$f2
/* f075504: 46064100 */ add.s $f4,$f8,$f6
/* f075508: 05610007 */ bgez $t3,.PF0f075528
/* f07550c: e6040008 */ swc1 $f4,0x8($s0)
/* f075510: c462004c */ lwc1 $f2,0x4c($v1)
/* f075514: c42ab6ac */ lwc1 $f10,-0x4954($at)
/* f075518: c60c0008 */ lwc1 $f12,0x8($s0)
/* f07551c: 46025202 */ mul.s $f8,$f10,$f2
/* f075520: 10000005 */ b .PF0f075538
/* f075524: 46086001 */ sub.s $f0,$f12,$f8
.PF0f075528:
/* f075528: c462004c */ lwc1 $f2,0x4c($v1)
/* f07552c: c60c0008 */ lwc1 $f12,0x8($s0)
/* f075530: 46028182 */ mul.s $f6,$f16,$f2
/* f075534: 46066001 */ sub.s $f0,$f12,$f6
.PF0f075538:
/* f075538: 46006100 */ add.s $f4,$f12,$f0
/* f07553c: 3c013f00 */ lui $at,0x3f00
/* f075540: 44814000 */ mtc1 $at,$f8
/* f075544: 46041282 */ mul.s $f10,$f2,$f4
/* f075548: c7a405e0 */ lwc1 $f4,0x5e0($sp)
/* f07554c: 46085182 */ mul.s $f6,$f10,$f8
/* f075550: 46062280 */ add.s $f10,$f4,$f6
/* f075554: e7aa05e0 */ swc1 $f10,0x5e0($sp)
/* f075558: e6000008 */ swc1 $f0,0x8($s0)
/* f07555c: 1000000c */ b .PF0f075590
/* f075560: c462004c */ lwc1 $f2,0x4c($v1)
.PF0f075564:
/* f075564: 46006100 */ add.s $f4,$f12,$f0
/* f075568: c6080008 */ lwc1 $f8,0x8($s0)
/* f07556c: 46022182 */ mul.s $f6,$f4,$f2
/* f075570: 46064280 */ add.s $f10,$f8,$f6
/* f075574: e60a0008 */ swc1 $f10,0x8($s0)
/* f075578: c6080008 */ lwc1 $f8,0x8($s0)
/* f07557c: c462004c */ lwc1 $f2,0x4c($v1)
/* f075580: c7a405e0 */ lwc1 $f4,0x5e0($sp)
/* f075584: 46024182 */ mul.s $f6,$f8,$f2
/* f075588: 46062280 */ add.s $f10,$f4,$f6
/* f07558c: e7aa05e0 */ swc1 $f10,0x5e0($sp)
.PF0f075590:
/* f075590: c6040010 */ lwc1 $f4,0x10($s0)
/* f075594: c6080004 */ lwc1 $f8,0x4($s0)
/* f075598: 27a5030c */ addiu $a1,$sp,0x30c
/* f07559c: 46022182 */ mul.s $f6,$f4,$f2
/* f0755a0: c6040018 */ lwc1 $f4,0x18($s0)
/* f0755a4: 46064280 */ add.s $f10,$f8,$f6
/* f0755a8: e60a0004 */ swc1 $f10,0x4($s0)
/* f0755ac: c468004c */ lwc1 $f8,0x4c($v1)
/* f0755b0: c60a000c */ lwc1 $f10,0xc($s0)
/* f0755b4: 46082182 */ mul.s $f6,$f4,$f8
/* f0755b8: 46065100 */ add.s $f4,$f10,$f6
/* f0755bc: c60a0004 */ lwc1 $f10,0x4($s0)
/* f0755c0: e604000c */ swc1 $f4,0xc($s0)
/* f0755c4: c462004c */ lwc1 $f2,0x4c($v1)
/* f0755c8: c7a805dc */ lwc1 $f8,0x5dc($sp)
/* f0755cc: 8fa40074 */ lw $a0,0x74($sp)
/* f0755d0: 46025182 */ mul.s $f6,$f10,$f2
/* f0755d4: c7aa05e4 */ lwc1 $f10,0x5e4($sp)
/* f0755d8: 46064100 */ add.s $f4,$f8,$f6
/* f0755dc: e7a405dc */ swc1 $f4,0x5dc($sp)
/* f0755e0: c608000c */ lwc1 $f8,0xc($s0)
/* f0755e4: 46024182 */ mul.s $f6,$f8,$f2
/* f0755e8: 46065100 */ add.s $f4,$f10,$f6
/* f0755ec: 0c0056b9 */ jal mtx3ToMtx4
/* f0755f0: e7a405e4 */ swc1 $f4,0x5e4($sp)
/* f0755f4: 26050020 */ addiu $a1,$s0,0x20
/* f0755f8: 3c06800a */ lui $a2,0x800a
/* f0755fc: 8cc6a544 */ lw $a2,-0x5abc($a2)
/* f075600: afa50064 */ sw $a1,0x64($sp)
/* f075604: 0fc2596e */ jal func0f096698
/* f075608: 27a4030c */ addiu $a0,$sp,0x30c
/* f07560c: 27a4030c */ addiu $a0,$sp,0x30c
/* f075610: 0c0056cc */ jal mtx4ToMtx3
/* f075614: 8fa50074 */ lw $a1,0x74($sp)
/* f075618: c6480008 */ lwc1 $f8,0x8($s2)
/* f07561c: 26440028 */ addiu $a0,$s2,0x28
/* f075620: 27a505b8 */ addiu $a1,$sp,0x5b8
/* f075624: e7a805c8 */ swc1 $f8,0x5c8($sp)
/* f075628: c64a000c */ lwc1 $f10,0xc($s2)
/* f07562c: e7aa05cc */ swc1 $f10,0x5cc($sp)
/* f075630: c6460010 */ lwc1 $f6,0x10($s2)
/* f075634: afa4006c */ sw $a0,0x6c($sp)
/* f075638: 0fc1968d */ jal roomsCopy
/* f07563c: e7a605d0 */ swc1 $f6,0x5d0($sp)
/* f075640: 8e040088 */ lw $a0,0x88($s0)
/* f075644: 50800004 */ beqzl $a0,.PF0f075658
/* f075648: 8e0c0000 */ lw $t4,0x0($s0)
/* f07564c: 0fc19102 */ jal propSetPerimEnabled
/* f075650: 00002825 */ move $a1,$zero
/* f075654: 8e0c0000 */ lw $t4,0x0($s0)
.PF0f075658:
/* f075658: 318f0004 */ andi $t7,$t4,0x4
/* f07565c: 11e00007 */ beqz $t7,.PF0f07567c
/* f075660: 02202025 */ move $a0,$s1
/* f075664: 27a505dc */ addiu $a1,$sp,0x5dc
/* f075668: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f07566c: 0fc1b3e2 */ jal func0f06cd00
/* f075670: 27a705f4 */ addiu $a3,$sp,0x5f4
/* f075674: 10000007 */ b .PF0f075694
/* f075678: afa20600 */ sw $v0,0x600($sp)
.PF0f07567c:
/* f07567c: 02202025 */ move $a0,$s1
/* f075680: 27a505dc */ addiu $a1,$sp,0x5dc
/* f075684: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f075688: 0fc1b581 */ jal func0f06d37c
/* f07568c: 27a705f4 */ addiu $a3,$sp,0x5f4
/* f075690: afa20600 */ sw $v0,0x600($sp)
.PF0f075694:
/* f075694: 8e040088 */ lw $a0,0x88($s0)
/* f075698: 50800004 */ beqzl $a0,.PF0f0756ac
/* f07569c: 240e0001 */ li $t6,0x1
/* f0756a0: 0fc19102 */ jal propSetPerimEnabled
/* f0756a4: 24050001 */ li $a1,0x1
/* f0756a8: 240e0001 */ li $t6,0x1
.PF0f0756ac:
/* f0756ac: afae05d8 */ sw $t6,0x5d8($sp)
/* f0756b0: 8e190000 */ lw $t9,0x0($s0)
/* f0756b4: 33380004 */ andi $t8,$t9,0x4
/* f0756b8: 53000318 */ beqzl $t8,.PF0f07631c
/* f0756bc: 8fae034c */ lw $t6,0x34c($sp)
/* f0756c0: 8fa90600 */ lw $t1,0x600($sp)
/* f0756c4: 3c038007 */ lui $v1,0x8007
/* f0756c8: 552002da */ bnezl $t1,.PF0f076234
/* f0756cc: 8faa034c */ lw $t2,0x34c($sp)
/* f0756d0: 8c639610 */ lw $v1,-0x69f0($v1)
/* f0756d4: afa001f8 */ sw $zero,0x1f8($sp)
/* f0756d8: afa001f4 */ sw $zero,0x1f4($sp)
/* f0756dc: 5060000a */ beqzl $v1,.PF0f075708
/* f0756e0: 92220003 */ lbu $v0,0x3($s1)
/* f0756e4: afa301f4 */ sw $v1,0x1f4($sp)
/* f0756e8: 8c620018 */ lw $v0,0x18($v1)
/* f0756ec: 10400005 */ beqz $v0,.PF0f075704
/* f0756f0: 00401825 */ move $v1,$v0
.PF0f0756f4:
/* f0756f4: 8c420018 */ lw $v0,0x18($v0)
/* f0756f8: 5440fffe */ bnezl $v0,.PF0f0756f4
/* f0756fc: 00401825 */ move $v1,$v0
/* f075700: afa301f4 */ sw $v1,0x1f4($sp)
.PF0f075704:
/* f075704: 92220003 */ lbu $v0,0x3($s1)
.PF0f075708:
/* f075708: 2401000d */ li $at,0xd
/* f07570c: 8faa01f4 */ lw $t2,0x1f4($sp)
/* f075710: 54410006 */ bnel $v0,$at,.PF0f07572c
/* f075714: 24010008 */ li $at,0x8
/* f075718: 15400030 */ bnez $t2,.PF0f0757dc
/* f07571c: 240b0001 */ li $t3,0x1
/* f075720: 1000002e */ b .PF0f0757dc
/* f075724: afab01f8 */ sw $t3,0x1f8($sp)
/* f075728: 24010008 */ li $at,0x8
.PF0f07572c:
/* f07572c: 5441002c */ bnel $v0,$at,.PF0f0757e0
/* f075730: 8fb801f8 */ lw $t8,0x1f8($sp)
/* f075734: 9227005c */ lbu $a3,0x5c($s1)
/* f075738: 24010022 */ li $at,0x22
/* f07573c: 10e10016 */ beq $a3,$at,.PF0f075798
/* f075740: 24010020 */ li $at,0x20
/* f075744: 10e10014 */ beq $a3,$at,.PF0f075798
/* f075748: 24010021 */ li $at,0x21
/* f07574c: 10e10012 */ beq $a3,$at,.PF0f075798
/* f075750: 2401003d */ li $at,0x3d
/* f075754: 10e10010 */ beq $a3,$at,.PF0f075798
/* f075758: 2401003e */ li $at,0x3e
/* f07575c: 10e1000e */ beq $a3,$at,.PF0f075798
/* f075760: 2401003f */ li $at,0x3f
/* f075764: 10e1000c */ beq $a3,$at,.PF0f075798
/* f075768: 24010056 */ li $at,0x56
/* f07576c: 10e1000a */ beq $a3,$at,.PF0f075798
/* f075770: 2401001a */ li $at,0x1a
/* f075774: 10e10008 */ beq $a3,$at,.PF0f075798
/* f075778: 24010035 */ li $at,0x35
/* f07577c: 10e10006 */ beq $a3,$at,.PF0f075798
/* f075780: 2624005c */ addiu $a0,$s1,0x5c
/* f075784: 0fc2c8e8 */ jal gsetHasFunctionFlags
/* f075788: 24050100 */ li $a1,0x100
/* f07578c: 50400014 */ beqzl $v0,.PF0f0757e0
/* f075790: 8fb801f8 */ lw $t8,0x1f8($sp)
/* f075794: 9227005c */ lbu $a3,0x5c($s1)
.PF0f075798:
/* f075798: 240c0001 */ li $t4,0x1
/* f07579c: 24010055 */ li $at,0x55
/* f0757a0: 14e1000e */ bne $a3,$at,.PF0f0757dc
/* f0757a4: afac01f8 */ sw $t4,0x1f8($sp)
/* f0757a8: 922f005f */ lbu $t7,0x5f($s1)
/* f0757ac: 24010001 */ li $at,0x1
/* f0757b0: 55e1000b */ bnel $t7,$at,.PF0f0757e0
/* f0757b4: 8fb801f8 */ lw $t8,0x1f8($sp)
/* f0757b8: 862e0062 */ lh $t6,0x62($s1)
/* f0757bc: 24010001 */ li $at,0x1
/* f0757c0: 24190190 */ li $t9,0x190
/* f0757c4: 55c10005 */ bnel $t6,$at,.PF0f0757dc
/* f0757c8: a6390062 */ sh $t9,0x62($s1)
/* f0757cc: afa001f8 */ sw $zero,0x1f8($sp)
/* f0757d0: 10000002 */ b .PF0f0757dc
/* f0757d4: a6200062 */ sh $zero,0x62($s1)
/* f0757d8: a6390062 */ sh $t9,0x62($s1)
.PF0f0757dc:
/* f0757dc: 8fb801f8 */ lw $t8,0x1f8($sp)
.PF0f0757e0:
/* f0757e0: 00004025 */ move $t0,$zero
/* f0757e4: 53000071 */ beqzl $t8,.PF0f0759ac
/* f0757e8: 8fae034c */ lw $t6,0x34c($sp)
/* f0757ec: 92290003 */ lbu $t1,0x3($s1)
/* f0757f0: 3c038007 */ lui $v1,0x8007
/* f0757f4: 24010008 */ li $at,0x8
/* f0757f8: 15210002 */ bne $t1,$at,.PF0f075804
/* f0757fc: 8c639610 */ lw $v1,-0x69f0($v1)
/* f075800: 02204025 */ move $t0,$s1
.PF0f075804:
/* f075804: 50600017 */ beqzl $v1,.PF0f075864
/* f075808: 8faa01f4 */ lw $t2,0x1f4($sp)
/* f07580c: 90620000 */ lbu $v0,0x0($v1)
/* f075810: 24010001 */ li $at,0x1
/* f075814: 10410005 */ beq $v0,$at,.PF0f07582c
/* f075818: 24010004 */ li $at,0x4
/* f07581c: 10410003 */ beq $v0,$at,.PF0f07582c
/* f075820: 24010002 */ li $at,0x2
/* f075824: 5441000f */ bnel $v0,$at,.PF0f075864
/* f075828: 8faa01f4 */ lw $t2,0x1f4($sp)
.PF0f07582c:
/* f07582c: 1100000c */ beqz $t0,.PF0f075860
/* f075830: 8c640004 */ lw $a0,0x4($v1)
/* f075834: 9102005c */ lbu $v0,0x5c($t0)
/* f075838: 24010056 */ li $at,0x56
/* f07583c: 10410003 */ beq $v0,$at,.PF0f07584c
/* f075840: 2401001a */ li $at,0x1a
/* f075844: 54410007 */ bnel $v0,$at,.PF0f075864
/* f075848: 8faa01f4 */ lw $t2,0x1f4($sp)
.PF0f07584c:
/* f07584c: 908d0003 */ lbu $t5,0x3($a0)
/* f075850: 24010008 */ li $at,0x8
/* f075854: 55a10003 */ bnel $t5,$at,.PF0f075864
/* f075858: 8faa01f4 */ lw $t2,0x1f4($sp)
/* f07585c: afa001f8 */ sw $zero,0x1f8($sp)
.PF0f075860:
/* f075860: 8faa01f4 */ lw $t2,0x1f4($sp)
.PF0f075864:
/* f075864: 51400051 */ beqzl $t2,.PF0f0759ac
/* f075868: 8fae034c */ lw $t6,0x34c($sp)
/* f07586c: 91420000 */ lbu $v0,0x0($t2)
/* f075870: 24010001 */ li $at,0x1
/* f075874: 8fab01f4 */ lw $t3,0x1f4($sp)
/* f075878: 10410006 */ beq $v0,$at,.PF0f075894
/* f07587c: 3c098007 */ lui $t1,0x8007
/* f075880: 24010004 */ li $at,0x4
/* f075884: 10410003 */ beq $v0,$at,.PF0f075894
/* f075888: 24010002 */ li $at,0x2
/* f07588c: 5441003a */ bnel $v0,$at,.PF0f075978
/* f075890: 24010003 */ li $at,0x3
.PF0f075894:
/* f075894: 8d630004 */ lw $v1,0x4($t3)
/* f075898: 8c6c0040 */ lw $t4,0x40($v1)
/* f07589c: 318f0080 */ andi $t7,$t4,0x80
/* f0758a0: 11e00007 */ beqz $t7,.PF0f0758c0
/* f0758a4: 00000000 */ nop
/* f0758a8: 8c6e0048 */ lw $t6,0x48($v1)
/* f0758ac: 8dd90000 */ lw $t9,0x0($t6)
/* f0758b0: 33380800 */ andi $t8,$t9,0x800
/* f0758b4: 17000002 */ bnez $t8,.PF0f0758c0
/* f0758b8: 00000000 */ nop
/* f0758bc: afa001f8 */ sw $zero,0x1f8($sp)
.PF0f0758c0:
/* f0758c0: 8d299624 */ lw $t1,-0x69dc($t1)
/* f0758c4: 24012710 */ li $at,0x2710
/* f0758c8: 15210002 */ bne $t1,$at,.PF0f0758d4
/* f0758cc: 00000000 */ nop
/* f0758d0: afa001f8 */ sw $zero,0x1f8($sp)
.PF0f0758d4:
/* f0758d4: 51000035 */ beqzl $t0,.PF0f0759ac
/* f0758d8: 8fae034c */ lw $t6,0x34c($sp)
/* f0758dc: 9102005c */ lbu $v0,0x5c($t0)
/* f0758e0: 24010056 */ li $at,0x56
/* f0758e4: 10410003 */ beq $v0,$at,.PF0f0758f4
/* f0758e8: 2401001a */ li $at,0x1a
/* f0758ec: 5441002f */ bnel $v0,$at,.PF0f0759ac
/* f0758f0: 8fae034c */ lw $t6,0x34c($sp)
.PF0f0758f4:
/* f0758f4: 90620003 */ lbu $v0,0x3($v1)
/* f0758f8: 2401002a */ li $at,0x2a
/* f0758fc: 26440008 */ addiu $a0,$s2,0x8
/* f075900: 10410003 */ beq $v0,$at,.PF0f075910
/* f075904: 8fa5006c */ lw $a1,0x6c($sp)
/* f075908: 2401002f */ li $at,0x2f
/* f07590c: 14410026 */ bne $v0,$at,.PF0f0759a8
.PF0f075910:
/* f075910: 2406ffff */ li $a2,-1
/* f075914: afa301e4 */ sw $v1,0x1e4($sp)
/* f075918: afa40070 */ sw $a0,0x70($sp)
/* f07591c: 0fc2a214 */ jal bgunPlayGlassHitSound
/* f075920: afa801ec */ sw $t0,0x1ec($sp)
/* f075924: 8fa401e4 */ lw $a0,0x1e4($sp)
/* f075928: 8fa801ec */ lw $t0,0x1ec($sp)
/* f07592c: 3c0542c8 */ lui $a1,0x42c8
/* f075930: 8c8d000c */ lw $t5,0xc($a0)
/* f075934: 8fa60070 */ lw $a2,0x70($sp)
/* f075938: 3c0b800a */ lui $t3,0x800a
/* f07593c: 31aa4000 */ andi $t2,$t5,0x4000
/* f075940: 5540001a */ bnezl $t2,.PF0f0759ac
/* f075944: 8fae034c */ lw $t6,0x34c($sp)
/* f075948: 8d6ba79c */ lw $t3,-0x5864($t3)
/* f07594c: 9107005c */ lbu $a3,0x5c($t0)
/* f075950: afa001f8 */ sw $zero,0x1f8($sp)
/* f075954: 0fc21530 */ jal objTakeGunfire
/* f075958: afab0010 */ sw $t3,0x10($sp)
/* f07595c: 8fa401f4 */ lw $a0,0x1f4($sp)
/* f075960: 0fc1c248 */ jal objDropRecursively
/* f075964: 00002825 */ move $a1,$zero
/* f075968: 240c0001 */ li $t4,0x1
/* f07596c: 1000000e */ b .PF0f0759a8
/* f075970: afac034c */ sw $t4,0x34c($sp)
/* f075974: 24010003 */ li $at,0x3
.PF0f075978:
/* f075978: 10410004 */ beq $v0,$at,.PF0f07598c
/* f07597c: 8faf01f4 */ lw $t7,0x1f4($sp)
/* f075980: 24010006 */ li $at,0x6
/* f075984: 54410009 */ bnel $v0,$at,.PF0f0759ac
/* f075988: 8fae034c */ lw $t6,0x34c($sp)
.PF0f07598c:
/* f07598c: 0fc0d042 */ jal chrGetShield
/* f075990: 8de40004 */ lw $a0,0x4($t7)
/* f075994: 4600a03c */ c.lt.s $f20,$f0
/* f075998: 00000000 */ nop
/* f07599c: 45020003 */ bc1fl .PF0f0759ac
/* f0759a0: 8fae034c */ lw $t6,0x34c($sp)
/* f0759a4: afa001f8 */ sw $zero,0x1f8($sp)
.PF0f0759a8:
/* f0759a8: 8fae034c */ lw $t6,0x34c($sp)
.PF0f0759ac:
/* f0759ac: 3c198007 */ lui $t9,0x8007
/* f0759b0: 55c00163 */ bnezl $t6,.PF0f075f40
/* f0759b4: 8faf034c */ lw $t7,0x34c($sp)
/* f0759b8: 8f399610 */ lw $t9,-0x69f0($t9)
/* f0759bc: 1320015f */ beqz $t9,.PF0f075f3c
/* f0759c0: afb90068 */ sw $t9,0x68($sp)
/* f0759c4: 92380003 */ lbu $t8,0x3($s1)
/* f0759c8: 24010008 */ li $at,0x8
/* f0759cc: 5701015c */ bnel $t8,$at,.PF0f075f40
/* f0759d0: 8faf034c */ lw $t7,0x34c($sp)
/* f0759d4: 9227005c */ lbu $a3,0x5c($s1)
/* f0759d8: 24010056 */ li $at,0x56
/* f0759dc: 8fa901f4 */ lw $t1,0x1f4($sp)
/* f0759e0: 10e10003 */ beq $a3,$at,.PF0f0759f0
/* f0759e4: 2401001a */ li $at,0x1a
/* f0759e8: 54e100aa */ bnel $a3,$at,.PF0f075c94
/* f0759ec: 24010053 */ li $at,0x53
.PF0f0759f0:
/* f0759f0: 91220000 */ lbu $v0,0x0($t1)
/* f0759f4: 24010003 */ li $at,0x3
/* f0759f8: 10410006 */ beq $v0,$at,.PF0f075a14
/* f0759fc: 24010006 */ li $at,0x6
/* f075a00: 54410072 */ bnel $v0,$at,.PF0f075bcc
/* f075a04: 24010001 */ li $at,0x1
/* f075a08: 8d2d0004 */ lw $t5,0x4($t1)
/* f075a0c: 51a0006f */ beqzl $t5,.PF0f075bcc
/* f075a10: 24010001 */ li $at,0x1
.PF0f075a14:
/* f075a14: 8e220048 */ lw $v0,0x48($s1)
/* f075a18: 8faa01f4 */ lw $t2,0x1f4($sp)
/* f075a1c: 8c4b0000 */ lw $t3,0x0($v0)
/* f075a20: 8d440004 */ lw $a0,0x4($t2)
/* f075a24: 316c0001 */ andi $t4,$t3,0x1
/* f075a28: 51800145 */ beqzl $t4,.PF0f075f40
/* f075a2c: 8faf034c */ lw $t7,0x34c($sp)
/* f075a30: 8c4f0090 */ lw $t7,0x90($v0)
/* f075a34: 2627005c */ addiu $a3,$s1,0x5c
/* f075a38: 5de00141 */ bgtzl $t7,.PF0f075f40
/* f075a3c: 8faf034c */ lw $t7,0x34c($sp)
/* f075a40: 8c4e0088 */ lw $t6,0x88($v0)
/* f075a44: afa70070 */ sw $a3,0x70($sp)
/* f075a48: afa401dc */ sw $a0,0x1dc($sp)
/* f075a4c: 0fc0d042 */ jal chrGetShield
/* f075a50: afae01d4 */ sw $t6,0x1d4($sp)
/* f075a54: 8fa40070 */ lw $a0,0x70($sp)
/* f075a58: 0fc2c87a */ jal gsetGetDamage
/* f075a5c: e7a001d8 */ swc1 $f0,0x1d8($sp)
/* f075a60: 3c188007 */ lui $t8,0x8007
/* f075a64: 3c098007 */ lui $t1,0x8007
/* f075a68: 3c0d800a */ lui $t5,0x800a
/* f075a6c: 3c0a800a */ lui $t2,0x800a
/* f075a70: 3c0b8007 */ lui $t3,0x8007
/* f075a74: 8d6b9618 */ lw $t3,-0x69e8($t3)
/* f075a78: 8d4ad3d0 */ lw $t2,-0x2c30($t2)
/* f075a7c: 8dadd3d4 */ lw $t5,-0x2c2c($t5)
/* f075a80: 8d299610 */ lw $t1,-0x69f0($t1)
/* f075a84: 8f189614 */ lw $t8,-0x69ec($t8)
/* f075a88: 8fb901d4 */ lw $t9,0x1d4($sp)
/* f075a8c: 3c0c8007 */ lui $t4,0x8007
/* f075a90: 258c961c */ addiu $t4,$t4,-27108
/* f075a94: 44050000 */ mfc1 $a1,$f0
/* f075a98: 3c06800a */ lui $a2,0x800a
/* f075a9c: 24c6d3d8 */ addiu $a2,$a2,-11304
/* f075aa0: afac0028 */ sw $t4,0x28($sp)
/* f075aa4: 8fa70070 */ lw $a3,0x70($sp)
/* f075aa8: 8fa401dc */ lw $a0,0x1dc($sp)
/* f075aac: afab0024 */ sw $t3,0x24($sp)
/* f075ab0: afaa0020 */ sw $t2,0x20($sp)
/* f075ab4: afad001c */ sw $t5,0x1c($sp)
/* f075ab8: afa90018 */ sw $t1,0x18($sp)
/* f075abc: afb80014 */ sw $t8,0x14($sp)
/* f075ac0: 0fc0d0d1 */ jal func0f0341dc
/* f075ac4: afb90010 */ sw $t9,0x10($sp)
/* f075ac8: c7a401d8 */ lwc1 $f4,0x1d8($sp)
/* f075acc: 8faf01d4 */ lw $t7,0x1d4($sp)
/* f075ad0: 3c058007 */ lui $a1,0x8007
/* f075ad4: 4614203e */ c.le.s $f4,$f20
/* f075ad8: 3c068007 */ lui $a2,0x8007
/* f075adc: 27a705e8 */ addiu $a3,$sp,0x5e8
/* f075ae0: 27b905f4 */ addiu $t9,$sp,0x5f4
/* f075ae4: 45020116 */ bc1fl .PF0f075f40
/* f075ae8: 8faf034c */ lw $t7,0x34c($sp)
/* f075aec: 51e00005 */ beqzl $t7,.PF0f075b04
/* f075af0: afa00088 */ sw $zero,0x88($sp)
/* f075af4: 8dee0004 */ lw $t6,0x4($t7)
/* f075af8: 10000002 */ b .PF0f075b04
/* f075afc: afae0088 */ sw $t6,0x88($sp)
/* f075b00: afa00088 */ sw $zero,0x88($sp)
.PF0f075b04:
/* f075b04: 8fb80088 */ lw $t8,0x88($sp)
/* f075b08: 8fa401dc */ lw $a0,0x1dc($sp)
/* f075b0c: 8ca59610 */ lw $a1,-0x69f0($a1)
/* f075b10: 8cc69614 */ lw $a2,-0x69ec($a2)
/* f075b14: afb90010 */ sw $t9,0x10($sp)
/* f075b18: 0fc097f2 */ jal chrEmitSparks
/* f075b1c: afb80014 */ sw $t8,0x14($sp)
/* f075b20: 3c098007 */ lui $t1,0x8007
/* f075b24: 8d299610 */ lw $t1,-0x69f0($t1)
/* f075b28: 3c04800a */ lui $a0,0x800a
/* f075b2c: 912d0001 */ lbu $t5,0x1($t1)
/* f075b30: 31aa0002 */ andi $t2,$t5,0x2
/* f075b34: 51400102 */ beqzl $t2,.PF0f075f40
/* f075b38: 8faf034c */ lw $t7,0x34c($sp)
/* f075b3c: 8c84d3d0 */ lw $a0,-0x2c30($a0)
/* f075b40: 3c028007 */ lui $v0,0x8007
/* f075b44: 508000fe */ beqzl $a0,.PF0f075f40
/* f075b48: 8faf034c */ lw $t7,0x34c($sp)
/* f075b4c: 8c429614 */ lw $v0,-0x69ec($v0)
/* f075b50: 24010064 */ li $at,0x64
/* f075b54: 104100f9 */ beq $v0,$at,.PF0f075f3c
/* f075b58: 2401006e */ li $at,0x6e
/* f075b5c: 104100f7 */ beq $v0,$at,.PF0f075f3c
/* f075b60: 3c05800a */ lui $a1,0x800a
/* f075b64: 8ca5d3d4 */ lw $a1,-0x2c2c($a1)
/* f075b68: 0c0068d7 */ jal model0001a5cc
/* f075b6c: 00003025 */ move $a2,$zero
/* f075b70: 0fc2d706 */ jal camGetWorldToScreenMtxf
/* f075b74: afa20184 */ sw $v0,0x184($sp)
/* f075b78: 00402025 */ move $a0,$v0
/* f075b7c: 27a505e8 */ addiu $a1,$sp,0x5e8
/* f075b80: 0c00563e */ jal mtx4TransformVec
/* f075b84: 27a601c8 */ addiu $a2,$sp,0x1c8
/* f075b88: 8fa40184 */ lw $a0,0x184($sp)
/* f075b8c: 0c005bcb */ jal mtx0001719c
/* f075b90: 27a50188 */ addiu $a1,$sp,0x188
/* f075b94: 27a40188 */ addiu $a0,$sp,0x188
/* f075b98: 0c00563d */ jal mtx4TransformVecInPlace
/* f075b9c: 27a501c8 */ addiu $a1,$sp,0x1c8
/* f075ba0: 3c04800a */ lui $a0,0x800a
/* f075ba4: 3c058007 */ lui $a1,0x8007
/* f075ba8: 3c06800a */ lui $a2,0x800a
/* f075bac: 8cc6d3d4 */ lw $a2,-0x2c2c($a2)
/* f075bb0: 8ca59614 */ lw $a1,-0x69ec($a1)
/* f075bb4: 8c84d3d0 */ lw $a0,-0x2c30($a0)
/* f075bb8: 0fc0987a */ jal chr0f0260c4
/* f075bbc: 27a701c8 */ addiu $a3,$sp,0x1c8
/* f075bc0: 100000df */ b .PF0f075f40
/* f075bc4: 8faf034c */ lw $t7,0x34c($sp)
/* f075bc8: 24010001 */ li $at,0x1
.PF0f075bcc:
/* f075bcc: 144100db */ bne $v0,$at,.PF0f075f3c
/* f075bd0: 8fab01f4 */ lw $t3,0x1f4($sp)
/* f075bd4: 3c0f8007 */ lui $t7,0x8007
/* f075bd8: 8def9624 */ lw $t7,-0x69dc($t7)
/* f075bdc: 8d6c0004 */ lw $t4,0x4($t3)
/* f075be0: 24012710 */ li $at,0x2710
/* f075be4: 15e1001a */ bne $t7,$at,.PF0f075c50
/* f075be8: afac0180 */ sw $t4,0x180($sp)
/* f075bec: 8d8e0010 */ lw $t6,0x10($t4)
/* f075bf0: 8fa60068 */ lw $a2,0x68($sp)
/* f075bf4: 8fa401f4 */ lw $a0,0x1f4($sp)
/* f075bf8: 31d91000 */ andi $t9,$t6,0x1000
/* f075bfc: 13200005 */ beqz $t9,.PF0f075c14
/* f075c00: 3c07800a */ lui $a3,0x800a
/* f075c04: 3c014080 */ lui $at,0x4080
/* f075c08: 44810000 */ mtc1 $at,$f0
/* f075c0c: 10000004 */ b .PF0f075c20
/* f075c10: 00000000 */ nop
.PF0f075c14:
/* f075c14: 3c014100 */ lui $at,0x4100
/* f075c18: 44810000 */ mtc1 $at,$f0
/* f075c1c: 00000000 */ nop
.PF0f075c20:
/* f075c20: 3c18800a */ lui $t8,0x800a
/* f075c24: 3c098007 */ lui $t1,0x8007
/* f075c28: 8d299618 */ lw $t1,-0x69e8($t1)
/* f075c2c: 8f18d3d0 */ lw $t8,-0x2c30($t8)
/* f075c30: 3c0d8007 */ lui $t5,0x8007
/* f075c34: 25ad961c */ addiu $t5,$t5,-27108
/* f075c38: 44050000 */ mfc1 $a1,$f0
/* f075c3c: afad0018 */ sw $t5,0x18($sp)
/* f075c40: 8ce7d3d4 */ lw $a3,-0x2c2c($a3)
/* f075c44: afa90014 */ sw $t1,0x14($sp)
/* f075c48: 0fc0a428 */ jal shieldhitCreate
/* f075c4c: afb80010 */ sw $t8,0x10($sp)
.PF0f075c50:
/* f075c50: 8faa0180 */ lw $t2,0x180($sp)
/* f075c54: 2401014c */ li $at,0x14c
/* f075c58: 3c0f8007 */ lui $t7,0x8007
/* f075c5c: 854b0004 */ lh $t3,0x4($t2)
/* f075c60: 556100b7 */ bnel $t3,$at,.PF0f075f40
/* f075c64: 8faf034c */ lw $t7,0x34c($sp)
/* f075c68: 8def9624 */ lw $t7,-0x69dc($t7)
/* f075c6c: 24010b9e */ li $at,0xb9e
/* f075c70: 01402025 */ move $a0,$t2
/* f075c74: 55e100b2 */ bnel $t7,$at,.PF0f075f40
/* f075c78: 8faf034c */ lw $t7,0x34c($sp)
/* f075c7c: 4406a000 */ mfc1 $a2,$f20
/* f075c80: 0fc6876a */ jal frCalculateHit
/* f075c84: 27a505e8 */ addiu $a1,$sp,0x5e8
/* f075c88: 100000ad */ b .PF0f075f40
/* f075c8c: 8faf034c */ lw $t7,0x34c($sp)
/* f075c90: 24010053 */ li $at,0x53
.PF0f075c94:
/* f075c94: 10e10003 */ beq $a3,$at,.PF0f075ca4
/* f075c98: 24010054 */ li $at,0x54
/* f075c9c: 14e1006b */ bne $a3,$at,.PF0f075e4c
/* f075ca0: 8fa901f4 */ lw $t1,0x1f4($sp)
.PF0f075ca4:
/* f075ca4: 8e2c0040 */ lw $t4,0x40($s1)
/* f075ca8: 3c01f000 */ lui $at,0xf000
/* f075cac: 8fb80068 */ lw $t8,0x68($sp)
/* f075cb0: 01817024 */ and $t6,$t4,$at
/* f075cb4: 000ecf02 */ srl $t9,$t6,0x1c
/* f075cb8: afb9017c */ sw $t9,0x17c($sp)
/* f075cbc: 93020000 */ lbu $v0,0x0($t8)
/* f075cc0: 24010003 */ li $at,0x3
/* f075cc4: 24090001 */ li $t1,0x1
/* f075cc8: 10410006 */ beq $v0,$at,.PF0f075ce4
/* f075ccc: afa9034c */ sw $t1,0x34c($sp)
/* f075cd0: 24010006 */ li $at,0x6
/* f075cd4: 5441002b */ bnel $v0,$at,.PF0f075d84
/* f075cd8: 24010001 */ li $at,0x1
/* f075cdc: 8f0d0004 */ lw $t5,0x4($t8)
/* f075ce0: 11a00027 */ beqz $t5,.PF0f075d80
.PF0f075ce4:
/* f075ce4: 3c0b800a */ lui $t3,0x800a
/* f075ce8: 8d6ba828 */ lw $t3,-0x57d8($t3)
/* f075cec: 00001825 */ move $v1,$zero
/* f075cf0: 2627005c */ addiu $a3,$s1,0x5c
/* f075cf4: 11600008 */ beqz $t3,.PF0f075d18
/* f075cf8: 8fa4017c */ lw $a0,0x17c($sp)
/* f075cfc: afa00178 */ sw $zero,0x178($sp)
/* f075d00: 0fc63843 */ jal mpGetChrFromPlayerIndex
/* f075d04: afa70070 */ sw $a3,0x70($sp)
/* f075d08: 8fa30178 */ lw $v1,0x178($sp)
/* f075d0c: 10400002 */ beqz $v0,.PF0f075d18
/* f075d10: 8fa70070 */ lw $a3,0x70($sp)
/* f075d14: 8c43001c */ lw $v1,0x1c($v0)
.PF0f075d18:
/* f075d18: 3c028007 */ lui $v0,0x8007
/* f075d1c: 8c429610 */ lw $v0,-0x69f0($v0)
/* f075d20: 3c0f8007 */ lui $t7,0x8007
/* f075d24: 3c0a800a */ lui $t2,0x800a
/* f075d28: 8c440004 */ lw $a0,0x4($v0)
/* f075d2c: 3c0c800a */ lui $t4,0x800a
/* f075d30: 3c0e8007 */ lui $t6,0x8007
/* f075d34: 8dce9618 */ lw $t6,-0x69e8($t6)
/* f075d38: 8d8cd3d0 */ lw $t4,-0x2c30($t4)
/* f075d3c: 8d4ad3d4 */ lw $t2,-0x2c2c($t2)
/* f075d40: 8def9614 */ lw $t7,-0x69ec($t7)
/* f075d44: 3c198007 */ lui $t9,0x8007
/* f075d48: 2739961c */ addiu $t9,$t9,-27108
/* f075d4c: 3c06800a */ lui $a2,0x800a
/* f075d50: 24c6d3d8 */ addiu $a2,$a2,-11304
/* f075d54: afb90028 */ sw $t9,0x28($sp)
/* f075d58: afa30010 */ sw $v1,0x10($sp)
/* f075d5c: 3c054000 */ lui $a1,0x4000
/* f075d60: afa20018 */ sw $v0,0x18($sp)
/* f075d64: afae0024 */ sw $t6,0x24($sp)
/* f075d68: afac0020 */ sw $t4,0x20($sp)
/* f075d6c: afaa001c */ sw $t2,0x1c($sp)
/* f075d70: 0fc0d0d1 */ jal func0f0341dc
/* f075d74: afaf0014 */ sw $t7,0x14($sp)
/* f075d78: 1000002f */ b .PF0f075e38
/* f075d7c: 02202025 */ move $a0,$s1
.PF0f075d80:
/* f075d80: 24010001 */ li $at,0x1
.PF0f075d84:
/* f075d84: 10410003 */ beq $v0,$at,.PF0f075d94
/* f075d88: 8fa60068 */ lw $a2,0x68($sp)
/* f075d8c: 24010004 */ li $at,0x4
/* f075d90: 14410028 */ bne $v0,$at,.PF0f075e34
.PF0f075d94:
/* f075d94: 3c188007 */ lui $t8,0x8007
/* f075d98: 8f189624 */ lw $t8,-0x69dc($t8)
/* f075d9c: 26490008 */ addiu $t1,$s2,0x8
/* f075da0: afa90070 */ sw $t1,0x70($sp)
/* f075da4: 24012710 */ li $at,0x2710
/* f075da8: 1701001d */ bne $t8,$at,.PF0f075e20
/* f075dac: 8cc40004 */ lw $a0,0x4($a2)
/* f075db0: 8c8d0010 */ lw $t5,0x10($a0)
/* f075db4: 8fa401f4 */ lw $a0,0x1f4($sp)
/* f075db8: 3c07800a */ lui $a3,0x800a
/* f075dbc: 31ab1000 */ andi $t3,$t5,0x1000
/* f075dc0: 11600005 */ beqz $t3,.PF0f075dd8
/* f075dc4: 3c0f800a */ lui $t7,0x800a
/* f075dc8: 3c014080 */ lui $at,0x4080
/* f075dcc: 44810000 */ mtc1 $at,$f0
/* f075dd0: 10000004 */ b .PF0f075de4
/* f075dd4: 00000000 */ nop
.PF0f075dd8:
/* f075dd8: 3c014100 */ lui $at,0x4100
/* f075ddc: 44810000 */ mtc1 $at,$f0
/* f075de0: 00000000 */ nop
.PF0f075de4:
/* f075de4: 3c0a8007 */ lui $t2,0x8007
/* f075de8: 8d4a9618 */ lw $t2,-0x69e8($t2)
/* f075dec: 8defd3d0 */ lw $t7,-0x2c30($t7)
/* f075df0: 3c0c8007 */ lui $t4,0x8007
/* f075df4: 258c961c */ addiu $t4,$t4,-27108
/* f075df8: 44050000 */ mfc1 $a1,$f0
/* f075dfc: afac0018 */ sw $t4,0x18($sp)
/* f075e00: 8ce7d3d4 */ lw $a3,-0x2c2c($a3)
/* f075e04: afaa0014 */ sw $t2,0x14($sp)
/* f075e08: 0fc0a428 */ jal shieldhitCreate
/* f075e0c: afaf0010 */ sw $t7,0x10($sp)
/* f075e10: 3c0e8007 */ lui $t6,0x8007
/* f075e14: 8dce9610 */ lw $t6,-0x69f0($t6)
/* f075e18: 9227005c */ lbu $a3,0x5c($s1)
/* f075e1c: 8dc40004 */ lw $a0,0x4($t6)
.PF0f075e20:
/* f075e20: 8fb9017c */ lw $t9,0x17c($sp)
/* f075e24: 3c0542c8 */ lui $a1,0x42c8
/* f075e28: 8fa60070 */ lw $a2,0x70($sp)
/* f075e2c: 0fc2153f */ jal objDamage
/* f075e30: afb90010 */ sw $t9,0x10($sp)
.PF0f075e34:
/* f075e34: 02202025 */ move $a0,$s1
.PF0f075e38:
/* f075e38: 24050001 */ li $a1,0x1
/* f075e3c: 0fc1a7be */ jal func0f069c70
/* f075e40: 24060001 */ li $a2,0x1
/* f075e44: 1000003d */ b .PF0f075f3c
/* f075e48: a6200062 */ sh $zero,0x62($s1)
.PF0f075e4c:
/* f075e4c: 91220000 */ lbu $v0,0x0($t1)
/* f075e50: 24010003 */ li $at,0x3
/* f075e54: 8fa60068 */ lw $a2,0x68($sp)
/* f075e58: 10410006 */ beq $v0,$at,.PF0f075e74
/* f075e5c: 8fad01f4 */ lw $t5,0x1f4($sp)
/* f075e60: 24010006 */ li $at,0x6
/* f075e64: 54410012 */ bnel $v0,$at,.PF0f075eb0
/* f075e68: 24010001 */ li $at,0x1
/* f075e6c: 8d380004 */ lw $t8,0x4($t1)
/* f075e70: 1300000e */ beqz $t8,.PF0f075eac
.PF0f075e74:
/* f075e74: 3c0b8007 */ lui $t3,0x8007
/* f075e78: 8d6b9618 */ lw $t3,-0x69e8($t3)
/* f075e7c: 3c0f8007 */ lui $t7,0x8007
/* f075e80: 8da40004 */ lw $a0,0x4($t5)
/* f075e84: 25ef961c */ addiu $t7,$t7,-27108
/* f075e88: 3c05800a */ lui $a1,0x800a
/* f075e8c: 3c07800a */ lui $a3,0x800a
/* f075e90: 8ce7d3d0 */ lw $a3,-0x2c30($a3)
/* f075e94: 8ca5d3d4 */ lw $a1,-0x2c2c($a1)
/* f075e98: afaf0014 */ sw $t7,0x14($sp)
/* f075e9c: 0fc0d07a */ jal func0f034080
/* f075ea0: afab0010 */ sw $t3,0x10($sp)
/* f075ea4: 10000026 */ b .PF0f075f40
/* f075ea8: 8faf034c */ lw $t7,0x34c($sp)
.PF0f075eac:
/* f075eac: 24010001 */ li $at,0x1
.PF0f075eb0:
/* f075eb0: 10410004 */ beq $v0,$at,.PF0f075ec4
/* f075eb4: 3c0a8007 */ lui $t2,0x8007
/* f075eb8: 24010004 */ li $at,0x4
/* f075ebc: 54410020 */ bnel $v0,$at,.PF0f075f40
/* f075ec0: 8faf034c */ lw $t7,0x34c($sp)
.PF0f075ec4:
/* f075ec4: 8d4a9624 */ lw $t2,-0x69dc($t2)
/* f075ec8: 24012710 */ li $at,0x2710
/* f075ecc: 8fac01f4 */ lw $t4,0x1f4($sp)
/* f075ed0: 1541001a */ bne $t2,$at,.PF0f075f3c
/* f075ed4: 8fa60068 */ lw $a2,0x68($sp)
/* f075ed8: 8d8e0004 */ lw $t6,0x4($t4)
/* f075edc: 8fa401f4 */ lw $a0,0x1f4($sp)
/* f075ee0: 3c07800a */ lui $a3,0x800a
/* f075ee4: 8dd90010 */ lw $t9,0x10($t6)
/* f075ee8: 3c18800a */ lui $t8,0x800a
/* f075eec: 3c0d8007 */ lui $t5,0x8007
/* f075ef0: 33291000 */ andi $t1,$t9,0x1000
/* f075ef4: 11200005 */ beqz $t1,.PF0f075f0c
/* f075ef8: 3c0b8007 */ lui $t3,0x8007
/* f075efc: 3c014080 */ lui $at,0x4080
/* f075f00: 44810000 */ mtc1 $at,$f0
/* f075f04: 10000004 */ b .PF0f075f18
/* f075f08: 00000000 */ nop
.PF0f075f0c:
/* f075f0c: 3c014100 */ lui $at,0x4100
/* f075f10: 44810000 */ mtc1 $at,$f0
/* f075f14: 00000000 */ nop
.PF0f075f18:
/* f075f18: 8f18d3d0 */ lw $t8,-0x2c30($t8)
/* f075f1c: 8dad9618 */ lw $t5,-0x69e8($t5)
/* f075f20: 44050000 */ mfc1 $a1,$f0
/* f075f24: 256b961c */ addiu $t3,$t3,-27108
/* f075f28: afab0018 */ sw $t3,0x18($sp)
/* f075f2c: 8ce7d3d4 */ lw $a3,-0x2c2c($a3)
/* f075f30: afb80010 */ sw $t8,0x10($sp)
/* f075f34: 0fc0a428 */ jal shieldhitCreate
/* f075f38: afad0014 */ sw $t5,0x14($sp)
.PF0f075f3c:
/* f075f3c: 8faf034c */ lw $t7,0x34c($sp)
.PF0f075f40:
/* f075f40: 8faa01f8 */ lw $t2,0x1f8($sp)
/* f075f44: 55e000bb */ bnezl $t7,.PF0f076234
/* f075f48: 8faa034c */ lw $t2,0x34c($sp)
/* f075f4c: 114000b8 */ beqz $t2,.PF0f076230
/* f075f50: 240c0001 */ li $t4,0x1
/* f075f54: afac034c */ sw $t4,0x34c($sp)
/* f075f58: 02202025 */ move $a0,$s1
/* f075f5c: 24050001 */ li $a1,0x1
/* f075f60: 0fc1a7be */ jal func0f069c70
/* f075f64: 24060001 */ li $a2,0x1
/* f075f68: 922e0003 */ lbu $t6,0x3($s1)
/* f075f6c: 24010008 */ li $at,0x8
/* f075f70: 55c100ab */ bnel $t6,$at,.PF0f076220
/* f075f74: 02402025 */ move $a0,$s2
/* f075f78: 9227005c */ lbu $a3,0x5c($s1)
/* f075f7c: 24010056 */ li $at,0x56
/* f075f80: 10e10003 */ beq $a3,$at,.PF0f075f90
/* f075f84: 2401001a */ li $at,0x1a
/* f075f88: 54e100a5 */ bnel $a3,$at,.PF0f076220
/* f075f8c: 02402025 */ move $a0,$s2
.PF0f075f90:
/* f075f90: 8e390048 */ lw $t9,0x48($s1)
/* f075f94: 8f240088 */ lw $a0,0x88($t9)
/* f075f98: 5080006b */ beqzl $a0,.PF0f076148
/* f075f9c: 8fae01f4 */ lw $t6,0x1f4($sp)
/* f075fa0: 90890000 */ lbu $t1,0x0($a0)
/* f075fa4: 24010006 */ li $at,0x6
/* f075fa8: 3c18800a */ lui $t8,0x800a
/* f075fac: 15210065 */ bne $t1,$at,.PF0f076144
/* f075fb0: 2627005c */ addiu $a3,$s1,0x5c
/* f075fb4: 8f18a79c */ lw $t8,-0x5864($t8)
/* f075fb8: afa70070 */ sw $a3,0x70($sp)
/* f075fbc: 0fc4a513 */ jal playermgrGetPlayerNumByProp
/* f075fc0: afb80164 */ sw $t8,0x164($sp)
/* f075fc4: 0fc4a4ff */ jal setCurrentPlayerNum
/* f075fc8: 00402025 */ move $a0,$v0
/* f075fcc: 8fa40070 */ lw $a0,0x70($sp)
/* f075fd0: 0fc2c238 */ jal mpstatsIncrementPlayerShotCount
/* f075fd4: 00002825 */ move $a1,$zero
/* f075fd8: 3c058007 */ lui $a1,0x8007
/* f075fdc: 8ca59610 */ lw $a1,-0x69f0($a1)
/* f075fe0: 8fa70070 */ lw $a3,0x70($sp)
/* f075fe4: 10a00055 */ beqz $a1,.PF0f07613c
/* f075fe8: 00000000 */ nop
/* f075fec: 90a20000 */ lbu $v0,0x0($a1)
/* f075ff0: 24010001 */ li $at,0x1
/* f075ff4: 5441000c */ bnel $v0,$at,.PF0f076028
/* f075ff8: 24010003 */ li $at,0x3
/* f075ffc: 8ca40004 */ lw $a0,0x4($a1)
/* f076000: 0fc21afe */ jal objIsHealthy
/* f076004: afa70070 */ sw $a3,0x70($sp)
/* f076008: 1040004c */ beqz $v0,.PF0f07613c
/* f07600c: 8fa70070 */ lw $a3,0x70($sp)
/* f076010: 00e02025 */ move $a0,$a3
/* f076014: 0fc2c238 */ jal mpstatsIncrementPlayerShotCount
/* f076018: 24050006 */ li $a1,0x6
/* f07601c: 10000047 */ b .PF0f07613c
/* f076020: 00000000 */ nop
/* f076024: 24010003 */ li $at,0x3
.PF0f076028:
/* f076028: 10410003 */ beq $v0,$at,.PF0f076038
/* f07602c: 24010006 */ li $at,0x6
/* f076030: 14410042 */ bne $v0,$at,.PF0f07613c
/* f076034: 00000000 */ nop
.PF0f076038:
/* f076038: 8ca30004 */ lw $v1,0x4($a1)
/* f07603c: 00003025 */ move $a2,$zero
/* f076040: 00a02025 */ move $a0,$a1
/* f076044: 50600007 */ beqzl $v1,.PF0f076064
/* f076048: 24010006 */ li $at,0x6
/* f07604c: 806d0007 */ lb $t5,0x7($v1)
/* f076050: 24010005 */ li $at,0x5
/* f076054: 55a10003 */ bnel $t5,$at,.PF0f076064
/* f076058: 24010006 */ li $at,0x6
/* f07605c: 24060001 */ li $a2,0x1
/* f076060: 24010006 */ li $at,0x6
.PF0f076064:
/* f076064: 1441000e */ bne $v0,$at,.PF0f0760a0
/* f076068: 00000000 */ nop
/* f07606c: afa6015c */ sw $a2,0x15c($sp)
/* f076070: 0fc4a513 */ jal playermgrGetPlayerNumByProp
/* f076074: afa70070 */ sw $a3,0x70($sp)
/* f076078: 00025880 */ sll $t3,$v0,0x2
/* f07607c: 3c0f800a */ lui $t7,0x800a
/* f076080: 01eb7821 */ addu $t7,$t7,$t3
/* f076084: 8defa574 */ lw $t7,-0x5a8c($t7)
/* f076088: 8fa6015c */ lw $a2,0x15c($sp)
/* f07608c: 8fa70070 */ lw $a3,0x70($sp)
/* f076090: 8dea00d8 */ lw $t2,0xd8($t7)
/* f076094: 11400002 */ beqz $t2,.PF0f0760a0
/* f076098: 00000000 */ nop
/* f07609c: 24060001 */ li $a2,0x1
.PF0f0760a0:
/* f0760a0: 14c00026 */ bnez $a2,.PF0f07613c
/* f0760a4: 3c0c8007 */ lui $t4,0x8007
/* f0760a8: 8d8c9614 */ lw $t4,-0x69ec($t4)
/* f0760ac: 24010007 */ li $at,0x7
/* f0760b0: 11800022 */ beqz $t4,.PF0f07613c
/* f0760b4: afac0088 */ sw $t4,0x88($sp)
/* f0760b8: 1181001a */ beq $t4,$at,.PF0f076124
/* f0760bc: 00e02025 */ move $a0,$a3
/* f0760c0: 24010008 */ li $at,0x8
/* f0760c4: 1181000b */ beq $t4,$at,.PF0f0760f4
/* f0760c8: 24050001 */ li $a1,0x1
/* f0760cc: 2401000f */ li $at,0xf
/* f0760d0: 11810014 */ beq $t4,$at,.PF0f076124
/* f0760d4: 24010064 */ li $at,0x64
/* f0760d8: 1181000a */ beq $t4,$at,.PF0f076104
/* f0760dc: 00e02025 */ move $a0,$a3
/* f0760e0: 2401006e */ li $at,0x6e
/* f0760e4: 1181000b */ beq $t4,$at,.PF0f076114
/* f0760e8: 00e02025 */ move $a0,$a3
/* f0760ec: 10000011 */ b .PF0f076134
/* f0760f0: 00e02025 */ move $a0,$a3
.PF0f0760f4:
/* f0760f4: 0fc2c238 */ jal mpstatsIncrementPlayerShotCount
/* f0760f8: 00e02025 */ move $a0,$a3
/* f0760fc: 1000000f */ b .PF0f07613c
/* f076100: 00000000 */ nop
.PF0f076104:
/* f076104: 0fc2c238 */ jal mpstatsIncrementPlayerShotCount
/* f076108: 24050004 */ li $a1,0x4
/* f07610c: 1000000b */ b .PF0f07613c
/* f076110: 00000000 */ nop
.PF0f076114:
/* f076114: 0fc2c238 */ jal mpstatsIncrementPlayerShotCount
/* f076118: 24050005 */ li $a1,0x5
/* f07611c: 10000007 */ b .PF0f07613c
/* f076120: 00000000 */ nop
.PF0f076124:
/* f076124: 0fc2c238 */ jal mpstatsIncrementPlayerShotCount
/* f076128: 24050002 */ li $a1,0x2
/* f07612c: 10000003 */ b .PF0f07613c
/* f076130: 00000000 */ nop
.PF0f076134:
/* f076134: 0fc2c238 */ jal mpstatsIncrementPlayerShotCount
/* f076138: 24050003 */ li $a1,0x3
.PF0f07613c:
/* f07613c: 0fc4a4ff */ jal setCurrentPlayerNum
/* f076140: 8fa40164 */ lw $a0,0x164($sp)
.PF0f076144:
/* f076144: 8fae01f4 */ lw $t6,0x1f4($sp)
.PF0f076148:
/* f076148: 51c0000a */ beqzl $t6,.PF0f076174
/* f07614c: 8e390048 */ lw $t9,0x48($s1)
/* f076150: 91c20000 */ lbu $v0,0x0($t6)
/* f076154: 24010001 */ li $at,0x1
/* f076158: 10410005 */ beq $v0,$at,.PF0f076170
/* f07615c: 24010004 */ li $at,0x4
/* f076160: 10410003 */ beq $v0,$at,.PF0f076170
/* f076164: 24010002 */ li $at,0x2
/* f076168: 5441002d */ bnel $v0,$at,.PF0f076220
/* f07616c: 02402025 */ move $a0,$s2
.PF0f076170:
/* f076170: 8e390048 */ lw $t9,0x48($s1)
.PF0f076174:
/* f076174: c6080004 */ lwc1 $f8,0x4($s0)
/* f076178: 27a40150 */ addiu $a0,$sp,0x150
/* f07617c: 8f220088 */ lw $v0,0x88($t9)
/* f076180: e7a80150 */ swc1 $f8,0x150($sp)
/* f076184: c60a0008 */ lwc1 $f10,0x8($s0)
/* f076188: 27a50154 */ addiu $a1,$sp,0x154
/* f07618c: 27a60158 */ addiu $a2,$sp,0x158
/* f076190: e7aa0154 */ swc1 $f10,0x154($sp)
/* f076194: c606000c */ lwc1 $f6,0xc($s0)
/* f076198: afa2014c */ sw $v0,0x14c($sp)
/* f07619c: 0c0011d8 */ jal guNormalize
/* f0761a0: e7a60158 */ swc1 $f6,0x158($sp)
/* f0761a4: 8fa2014c */ lw $v0,0x14c($sp)
/* f0761a8: 50400005 */ beqzl $v0,.PF0f0761c0
/* f0761ac: afa00088 */ sw $zero,0x88($sp)
/* f0761b0: 8c490004 */ lw $t1,0x4($v0)
/* f0761b4: 10000002 */ b .PF0f0761c0
/* f0761b8: afa90088 */ sw $t1,0x88($sp)
/* f0761bc: afa00088 */ sw $zero,0x88($sp)
.PF0f0761c0:
/* f0761c0: 0fc4fc06 */ jal chrIsUsingPaintball
/* f0761c4: 8fa40088 */ lw $a0,0x88($sp)
/* f0761c8: 1040000c */ beqz $v0,.PF0f0761fc
/* f0761cc: 02402825 */ move $a1,$s2
/* f0761d0: 86440028 */ lh $a0,0x28($s2)
/* f0761d4: 27b805f4 */ addiu $t8,$sp,0x5f4
/* f0761d8: 240d0019 */ li $t5,0x19
/* f0761dc: afad0014 */ sw $t5,0x14($sp)
/* f0761e0: afb80010 */ sw $t8,0x10($sp)
/* f0761e4: 02402825 */ move $a1,$s2
/* f0761e8: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f0761ec: 0fc4c159 */ jal sparksCreate
/* f0761f0: 27a70150 */ addiu $a3,$sp,0x150
/* f0761f4: 1000000a */ b .PF0f076220
/* f0761f8: 02402025 */ move $a0,$s2
.PF0f0761fc:
/* f0761fc: 86440028 */ lh $a0,0x28($s2)
/* f076200: 27ab05f4 */ addiu $t3,$sp,0x5f4
/* f076204: 240f0010 */ li $t7,0x10
/* f076208: afaf0014 */ sw $t7,0x14($sp)
/* f07620c: afab0010 */ sw $t3,0x10($sp)
/* f076210: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f076214: 0fc4c159 */ jal sparksCreate
/* f076218: 27a70150 */ addiu $a3,$sp,0x150
/* f07621c: 02402025 */ move $a0,$s2
.PF0f076220:
/* f076220: 27a505e8 */ addiu $a1,$sp,0x5e8
/* f076224: 27a605f4 */ addiu $a2,$sp,0x5f4
/* f076228: 0fc1bcca */ jal objLand
/* f07622c: 8fa7060c */ lw $a3,0x60c($sp)
.PF0f076230:
/* f076230: 8faa034c */ lw $t2,0x34c($sp)
.PF0f076234:
/* f076234: 8fac0600 */ lw $t4,0x600($sp)
/* f076238: 55400038 */ bnezl $t2,.PF0f07631c
/* f07623c: 8fae034c */ lw $t6,0x34c($sp)
/* f076240: 11800012 */ beqz $t4,.PF0f07628c
/* f076244: 26440008 */ addiu $a0,$s2,0x8
/* f076248: 8fa5006c */ lw $a1,0x6c($sp)
/* f07624c: 27a605dc */ addiu $a2,$sp,0x5dc
/* f076250: 0fc19841 */ jal func0f065e74
/* f076254: 27a7013c */ addiu $a3,$sp,0x13c
/* f076258: c7a405dc */ lwc1 $f4,0x5dc($sp)
/* f07625c: 02402025 */ move $a0,$s2
/* f076260: e6440008 */ swc1 $f4,0x8($s2)
/* f076264: c7a805e0 */ lwc1 $f8,0x5e0($sp)
/* f076268: e648000c */ swc1 $f8,0xc($s2)
/* f07626c: c7aa05e4 */ lwc1 $f10,0x5e4($sp)
/* f076270: 0fc197b5 */ jal propDeregisterRooms
/* f076274: e64a0010 */ swc1 $f10,0x10($s2)
/* f076278: 27a4013c */ addiu $a0,$sp,0x13c
/* f07627c: 0fc1968d */ jal roomsCopy
/* f076280: 8fa5006c */ lw $a1,0x6c($sp)
/* f076284: 10000025 */ b .PF0f07631c
/* f076288: 8fae034c */ lw $t6,0x34c($sp)
.PF0f07628c:
/* f07628c: 3c038007 */ lui $v1,0x8007
/* f076290: 8c639610 */ lw $v1,-0x69f0($v1)
/* f076294: c7a805e8 */ lwc1 $f8,0x5e8($sp)
/* f076298: 27a605dc */ addiu $a2,$sp,0x5dc
/* f07629c: 1060000c */ beqz $v1,.PF0f0762d0
/* f0762a0: 27a7012c */ addiu $a3,$sp,0x12c
/* f0762a4: 90620000 */ lbu $v0,0x0($v1)
/* f0762a8: 24010003 */ li $at,0x3
/* f0762ac: 10410003 */ beq $v0,$at,.PF0f0762bc
/* f0762b0: 24010006 */ li $at,0x6
/* f0762b4: 54410007 */ bnel $v0,$at,.PF0f0762d4
/* f0762b8: c7aa05ec */ lwc1 $f10,0x5ec($sp)
.PF0f0762bc:
/* f0762bc: c6460008 */ lwc1 $f6,0x8($s2)
/* f0762c0: e7a605dc */ swc1 $f6,0x5dc($sp)
/* f0762c4: c6440010 */ lwc1 $f4,0x10($s2)
/* f0762c8: 10000006 */ b .PF0f0762e4
/* f0762cc: e7a405e4 */ swc1 $f4,0x5e4($sp)
.PF0f0762d0:
/* f0762d0: c7aa05ec */ lwc1 $f10,0x5ec($sp)
.PF0f0762d4:
/* f0762d4: c7a605f0 */ lwc1 $f6,0x5f0($sp)
/* f0762d8: e7a805dc */ swc1 $f8,0x5dc($sp)
/* f0762dc: e7aa05e0 */ swc1 $f10,0x5e0($sp)
/* f0762e0: e7a605e4 */ swc1 $f6,0x5e4($sp)
.PF0f0762e4:
/* f0762e4: 0fc19841 */ jal func0f065e74
/* f0762e8: 8fa5006c */ lw $a1,0x6c($sp)
/* f0762ec: c7a405dc */ lwc1 $f4,0x5dc($sp)
/* f0762f0: 02402025 */ move $a0,$s2
/* f0762f4: e6440008 */ swc1 $f4,0x8($s2)
/* f0762f8: c7a805e0 */ lwc1 $f8,0x5e0($sp)
/* f0762fc: e648000c */ swc1 $f8,0xc($s2)
/* f076300: c7aa05e4 */ lwc1 $f10,0x5e4($sp)
/* f076304: 0fc197b5 */ jal propDeregisterRooms
/* f076308: e64a0010 */ swc1 $f10,0x10($s2)
/* f07630c: 27a4012c */ addiu $a0,$sp,0x12c
/* f076310: 0fc1968d */ jal roomsCopy
/* f076314: 8fa5006c */ lw $a1,0x6c($sp)
/* f076318: 8fae034c */ lw $t6,0x34c($sp)
.PF0f07631c:
/* f07631c: 55c003a4 */ bnezl $t6,.PF0f0771b0
/* f076320: 8fbf005c */ lw $ra,0x5c($sp)
/* f076324: 0fc1a361 */ jal objFindBboxRodata
/* f076328: 02202025 */ move $a0,$s1
/* f07632c: 00402025 */ move $a0,$v0
/* f076330: 0fc19afb */ jal func0f06695c
/* f076334: 8fa50074 */ lw $a1,0x74($sp)
/* f076338: e7a0037c */ swc1 $f0,0x37c($sp)
/* f07633c: c6460008 */ lwc1 $f6,0x8($s2)
/* f076340: 26270058 */ addiu $a3,$s1,0x58
/* f076344: 27b9012a */ addiu $t9,$sp,0x12a
/* f076348: e7a605ac */ swc1 $f6,0x5ac($sp)
/* f07634c: c644000c */ lwc1 $f4,0xc($s2)
/* f076350: 27a90380 */ addiu $t1,$sp,0x380
/* f076354: 27a405ac */ addiu $a0,$sp,0x5ac
/* f076358: 46002200 */ add.s $f8,$f4,$f0
/* f07635c: 8fa5006c */ lw $a1,0x6c($sp)
/* f076360: 27a60390 */ addiu $a2,$sp,0x390
/* f076364: e7a805b0 */ swc1 $f8,0x5b0($sp)
/* f076368: c64a0010 */ lwc1 $f10,0x10($s2)
/* f07636c: afa70074 */ sw $a3,0x74($sp)
/* f076370: afa90014 */ sw $t1,0x14($sp)
/* f076374: afb90010 */ sw $t9,0x10($sp)
/* f076378: 0c00a7b9 */ jal cd0002a5e4
/* f07637c: e7aa05b4 */ swc1 $f10,0x5b4($sp)
/* f076380: 00021c00 */ sll $v1,$v0,0x10
/* f076384: 1840002e */ blez $v0,.PF0f076440
/* f076388: 0003c403 */ sra $t8,$v1,0x10
/* f07638c: c646000c */ lwc1 $f6,0xc($s2)
/* f076390: c7a4037c */ lwc1 $f4,0x37c($sp)
/* f076394: c7aa0390 */ lwc1 $f10,0x390($sp)
/* f076398: 27a405c8 */ addiu $a0,$sp,0x5c8
/* f07639c: 46043200 */ add.s $f8,$f6,$f4
/* f0763a0: 27a505b8 */ addiu $a1,$sp,0x5b8
/* f0763a4: 27a605ac */ addiu $a2,$sp,0x5ac
/* f0763a8: 24070021 */ li $a3,0x21
/* f0763ac: 460a403c */ c.lt.s $f8,$f10
/* f0763b0: 240d0003 */ li $t5,0x3
/* f0763b4: 45020023 */ bc1fl .PF0f076444
/* f0763b8: 26440008 */ addiu $a0,$s2,0x8
/* f0763bc: afad0010 */ sw $t5,0x10($sp)
/* f0763c0: 0c00b526 */ jal cd0002db98
/* f0763c4: a7b8038e */ sh $t8,0x38e($sp)
/* f0763c8: 1440001d */ bnez $v0,.PF0f076440
/* f0763cc: 87a3038e */ lh $v1,0x38e($sp)
/* f0763d0: c7a60380 */ lwc1 $f6,0x380($sp)
/* f0763d4: c7a40384 */ lwc1 $f4,0x384($sp)
/* f0763d8: c7a80388 */ lwc1 $f8,0x388($sp)
/* f0763dc: 240b0001 */ li $t3,0x1
/* f0763e0: afab0354 */ sw $t3,0x354($sp)
/* f0763e4: 27a405f4 */ addiu $a0,$sp,0x5f4
/* f0763e8: 27a505f8 */ addiu $a1,$sp,0x5f8
/* f0763ec: 27a605fc */ addiu $a2,$sp,0x5fc
/* f0763f0: a7a3038e */ sh $v1,0x38e($sp)
/* f0763f4: e7a605f4 */ swc1 $f6,0x5f4($sp)
/* f0763f8: e7a405f8 */ swc1 $f4,0x5f8($sp)
/* f0763fc: 0c0011d8 */ jal guNormalize
/* f076400: e7a805fc */ swc1 $f8,0x5fc($sp)
/* f076404: c64a0008 */ lwc1 $f10,0x8($s2)
/* f076408: c7a60390 */ lwc1 $f6,0x390($sp)
/* f07640c: 97af012a */ lhu $t7,0x12a($sp)
/* f076410: e7aa05e8 */ swc1 $f10,0x5e8($sp)
/* f076414: e7a605ec */ swc1 $f6,0x5ec($sp)
/* f076418: c6440010 */ lwc1 $f4,0x10($s2)
/* f07641c: 31ea4000 */ andi $t2,$t7,0x4000
/* f076420: 87a3038e */ lh $v1,0x38e($sp)
/* f076424: afa00600 */ sw $zero,0x600($sp)
/* f076428: 1140003d */ beqz $t2,.PF0f076520
/* f07642c: e7a405f0 */ swc1 $f4,0x5f0($sp)
/* f076430: 8e2c0040 */ lw $t4,0x40($s1)
/* f076434: 358e0004 */ ori $t6,$t4,0x4
/* f076438: 10000039 */ b .PF0f076520
/* f07643c: ae2e0040 */ sw $t6,0x40($s1)
.PF0f076440:
/* f076440: 26440008 */ addiu $a0,$s2,0x8
.PF0f076444:
/* f076444: 27b90380 */ addiu $t9,$sp,0x380
/* f076448: afb90010 */ sw $t9,0x10($sp)
/* f07644c: afa40070 */ sw $a0,0x70($sp)
/* f076450: 8fa5006c */ lw $a1,0x6c($sp)
/* f076454: 27a60390 */ addiu $a2,$sp,0x390
/* f076458: 8fa70074 */ lw $a3,0x74($sp)
/* f07645c: 0c00a799 */ jal cd0002a564
/* f076460: afa00014 */ sw $zero,0x14($sp)
/* f076464: 00021c00 */ sll $v1,$v0,0x10
/* f076468: 00034c03 */ sra $t1,$v1,0x10
/* f07646c: 1c40002c */ bgtz $v0,.PF0f076520
/* f076470: 01201825 */ move $v1,$t1
/* f076474: 8e020000 */ lw $v0,0x0($s0)
/* f076478: 30580004 */ andi $t8,$v0,0x4
/* f07647c: 17000028 */ bnez $t8,.PF0f076520
/* f076480: 00026bc0 */ sll $t5,$v0,0xf
/* f076484: 05a0000c */ bltz $t5,.PF0f0764b8
/* f076488: 3c010001 */ lui $at,0x1
/* f07648c: 00415825 */ or $t3,$v0,$at
/* f076490: ae0b0000 */ sw $t3,0x0($s0)
/* f076494: a7a9038e */ sh $t1,0x38e($sp)
/* f076498: 27a405c8 */ addiu $a0,$sp,0x5c8
/* f07649c: 0c00a740 */ jal cd0002a400
/* f0764a0: 27a505b8 */ addiu $a1,$sp,0x5b8
/* f0764a4: 18400004 */ blez $v0,.PF0f0764b8
/* f0764a8: 87a3038e */ lh $v1,0x38e($sp)
/* f0764ac: 8e0f0000 */ lw $t7,0x0($s0)
/* f0764b0: 35ea8000 */ ori $t2,$t7,0x8000
/* f0764b4: ae0a0000 */ sw $t2,0x0($s0)
.PF0f0764b8:
/* f0764b8: 8e0c0000 */ lw $t4,0x0($s0)
/* f0764bc: c7a805c8 */ lwc1 $f8,0x5c8($sp)
/* f0764c0: 318e8000 */ andi $t6,$t4,0x8000
/* f0764c4: 11c00016 */ beqz $t6,.PF0f076520
/* f0764c8: 00000000 */ nop
/* f0764cc: e6480008 */ swc1 $f8,0x8($s2)
/* f0764d0: c7aa05cc */ lwc1 $f10,0x5cc($sp)
/* f0764d4: 02402025 */ move $a0,$s2
/* f0764d8: e64a000c */ swc1 $f10,0xc($s2)
/* f0764dc: c7a605d0 */ lwc1 $f6,0x5d0($sp)
/* f0764e0: 0fc197b5 */ jal propDeregisterRooms
/* f0764e4: e6460010 */ swc1 $f6,0x10($s2)
/* f0764e8: 27a405b8 */ addiu $a0,$sp,0x5b8
/* f0764ec: 0fc1968d */ jal roomsCopy
/* f0764f0: 8fa5006c */ lw $a1,0x6c($sp)
/* f0764f4: 8fa40070 */ lw $a0,0x70($sp)
/* f0764f8: 8fa5006c */ lw $a1,0x6c($sp)
/* f0764fc: 27a60390 */ addiu $a2,$sp,0x390
/* f076500: 8fa70074 */ lw $a3,0x74($sp)
/* f076504: 0c00a750 */ jal cd0002a440
/* f076508: afa00010 */ sw $zero,0x10($sp)
/* f07650c: 00021c00 */ sll $v1,$v0,0x10
/* f076510: 0003cc03 */ sra $t9,$v1,0x10
/* f076514: 03201825 */ move $v1,$t9
/* f076518: e6140004 */ swc1 $f20,0x4($s0)
/* f07651c: e614000c */ swc1 $f20,0xc($s0)
.PF0f076520:
/* f076520: 18600004 */ blez $v1,.PF0f076534
/* f076524: 8e020000 */ lw $v0,0x0($s0)
/* f076528: 34498000 */ ori $t1,$v0,0x8000
/* f07652c: 10000005 */ b .PF0f076544
/* f076530: ae090000 */ sw $t1,0x0($s0)
.PF0f076534:
/* f076534: 3c01ffff */ lui $at,0xffff
/* f076538: 34217fff */ ori $at,$at,0x7fff
/* f07653c: 0041c024 */ and $t8,$v0,$at
/* f076540: ae180000 */ sw $t8,0x0($s0)
.PF0f076544:
/* f076544: 8fad0600 */ lw $t5,0x600($sp)
/* f076548: 55a000ac */ bnezl $t5,.PF0f0767fc
/* f07654c: 922b0003 */ lbu $t3,0x3($s1)
/* f076550: c60c0008 */ lwc1 $f12,0x8($s0)
/* f076554: c7a805cc */ lwc1 $f8,0x5cc($sp)
/* f076558: 4614603e */ c.le.s $f12,$f20
/* f07655c: 00000000 */ nop
/* f076560: 45020007 */ bc1fl .PF0f076580
/* f076564: 8e0b0000 */ lw $t3,0x0($s0)
/* f076568: c644000c */ lwc1 $f4,0xc($s2)
/* f07656c: 4604403e */ c.le.s $f8,$f4
/* f076570: 00000000 */ nop
/* f076574: 45030008 */ bc1tl .PF0f076598
/* f076578: 240c0001 */ li $t4,0x1
/* f07657c: 8e0b0000 */ lw $t3,0x0($s0)
.PF0f076580:
/* f076580: 8faa0354 */ lw $t2,0x354($sp)
/* f076584: 316f0004 */ andi $t7,$t3,0x4
/* f076588: 55e00005 */ bnezl $t7,.PF0f0765a0
/* f07658c: c612008c */ lwc1 $f18,0x8c($s0)
/* f076590: 11400002 */ beqz $t2,.PF0f07659c
/* f076594: 240c0001 */ li $t4,0x1
.PF0f076598:
/* f076598: afac0350 */ sw $t4,0x350($sp)
.PF0f07659c:
/* f07659c: c612008c */ lwc1 $f18,0x8c($s0)
.PF0f0765a0:
/* f0765a0: c7aa05f4 */ lwc1 $f10,0x5f4($sp)
/* f0765a4: 4612a03c */ c.lt.s $f20,$f18
/* f0765a8: 00000000 */ nop
/* f0765ac: 45020034 */ bc1fl .PF0f076680
/* f0765b0: 8fad0350 */ lw $t5,0x350($sp)
/* f0765b4: c60e0004 */ lwc1 $f14,0x4($s0)
/* f0765b8: c7a405f8 */ lwc1 $f4,0x5f8($sp)
/* f0765bc: c602000c */ lwc1 $f2,0xc($s0)
/* f0765c0: 460a7182 */ mul.s $f6,$f14,$f10
/* f0765c4: 3c013f80 */ lui $at,0x3f80
/* f0765c8: 4614603e */ c.le.s $f12,$f20
/* f0765cc: 46046202 */ mul.s $f8,$f12,$f4
/* f0765d0: 46083100 */ add.s $f4,$f6,$f8
/* f0765d4: c7a605fc */ lwc1 $f6,0x5fc($sp)
/* f0765d8: 46023202 */ mul.s $f8,$f6,$f2
/* f0765dc: 44813000 */ mtc1 $at,$f6
/* f0765e0: 46044000 */ add.s $f0,$f8,$f4
/* f0765e4: 46069200 */ add.s $f8,$f18,$f6
/* f0765e8: 46004107 */ neg.s $f4,$f8
/* f0765ec: 46040002 */ mul.s $f0,$f0,$f4
/* f0765f0: 00000000 */ nop
/* f0765f4: 460a0182 */ mul.s $f6,$f0,$f10
/* f0765f8: 46067200 */ add.s $f8,$f14,$f6
/* f0765fc: e6080004 */ swc1 $f8,0x4($s0)
/* f076600: c7a405f8 */ lwc1 $f4,0x5f8($sp)
/* f076604: 46040282 */ mul.s $f10,$f0,$f4
/* f076608: 460a6180 */ add.s $f6,$f12,$f10
/* f07660c: e6060008 */ swc1 $f6,0x8($s0)
/* f076610: c7a805fc */ lwc1 $f8,0x5fc($sp)
/* f076614: 46080102 */ mul.s $f4,$f0,$f8
/* f076618: 46041280 */ add.s $f10,$f2,$f4
/* f07661c: 45000008 */ bc1f .PF0f076640
/* f076620: e60a000c */ swc1 $f10,0xc($s0)
/* f076624: c6060008 */ lwc1 $f6,0x8($s0)
/* f076628: 240e0001 */ li $t6,0x1
/* f07662c: 4606a03e */ c.le.s $f20,$f6
/* f076630: 00000000 */ nop
/* f076634: 45020003 */ bc1fl .PF0f076644
/* f076638: 92390003 */ lbu $t9,0x3($s1)
/* f07663c: afae0350 */ sw $t6,0x350($sp)
.PF0f076640:
/* f076640: 92390003 */ lbu $t9,0x3($s1)
.PF0f076644:
/* f076644: 24010008 */ li $at,0x8
/* f076648: 5721000d */ bnel $t9,$at,.PF0f076680
/* f07664c: 8fad0350 */ lw $t5,0x350($sp)
/* f076650: 9229005c */ lbu $t1,0x5c($s1)
/* f076654: 2401001e */ li $at,0x1e
/* f076658: 55210009 */ bnel $t1,$at,.PF0f076680
/* f07665c: 8fad0350 */ lw $t5,0x350($sp)
/* f076660: 9238005f */ lbu $t8,0x5f($s1)
/* f076664: 24010001 */ li $at,0x1
/* f076668: 02402025 */ move $a0,$s2
/* f07666c: 57010004 */ bnel $t8,$at,.PF0f076680
/* f076670: 8fad0350 */ lw $t5,0x350($sp)
/* f076674: 0fc4bc95 */ jal smokeCreateAtProp
/* f076678: 24050013 */ li $a1,0x13
/* f07667c: 8fad0350 */ lw $t5,0x350($sp)
.PF0f076680:
/* f076680: c7a805ec */ lwc1 $f8,0x5ec($sp)
/* f076684: c7a4037c */ lwc1 $f4,0x37c($sp)
/* f076688: 51a0000c */ beqzl $t5,.PF0f0766bc
/* f07668c: 8e0f0000 */ lw $t7,0x0($s0)
/* f076690: 46044281 */ sub.s $f10,$f8,$f4
/* f076694: e64a000c */ swc1 $f10,0xc($s2)
/* f076698: 8fab0354 */ lw $t3,0x354($sp)
/* f07669c: 51600007 */ beqzl $t3,.PF0f0766bc
/* f0766a0: 8e0f0000 */ lw $t7,0x0($s0)
/* f0766a4: 0fc1aa2a */ jal func0f06a620
/* f0766a8: 02202025 */ move $a0,$s1
/* f0766ac: c646000c */ lwc1 $f6,0xc($s2)
/* f0766b0: 46003200 */ add.s $f8,$f6,$f0
/* f0766b4: e648000c */ swc1 $f8,0xc($s2)
/* f0766b8: 8e0f0000 */ lw $t7,0x0($s0)
.PF0f0766bc:
/* f0766bc: 31ea0100 */ andi $t2,$t7,0x100
/* f0766c0: 5540000d */ bnezl $t2,.PF0f0766f8
/* f0766c4: 8e190090 */ lw $t9,0x90($s0)
/* f0766c8: 8e020094 */ lw $v0,0x94($s0)
/* f0766cc: 3c0c800a */ lui $t4,0x800a
/* f0766d0: 04400006 */ bltz $v0,.PF0f0766ec
/* f0766d4: 00000000 */ nop
/* f0766d8: 8d8ca518 */ lw $t4,-0x5ae8($t4)
/* f0766dc: 258effce */ addiu $t6,$t4,-50
/* f0766e0: 004e082a */ slt $at,$v0,$t6
/* f0766e4: 50200004 */ beqzl $at,.PF0f0766f8
/* f0766e8: 8e190090 */ lw $t9,0x90($s0)
.PF0f0766ec:
/* f0766ec: 0fc258a0 */ jal func0f096360
/* f0766f0: 8fa40064 */ lw $a0,0x64($sp)
/* f0766f4: 8e190090 */ lw $t9,0x90($s0)
.PF0f0766f8:
/* f0766f8: 3c18800a */ lui $t8,0x800a
/* f0766fc: 27290001 */ addiu $t1,$t9,0x1
/* f076700: ae090090 */ sw $t1,0x90($s0)
/* f076704: 8f18a518 */ lw $t8,-0x5ae8($t8)
/* f076708: ae180094 */ sw $t8,0x94($s0)
/* f07670c: 8e220040 */ lw $v0,0x40($s1)
/* f076710: 00026bc0 */ sll $t5,$v0,0xf
/* f076714: 05a00002 */ bltz $t5,.PF0f076720
/* f076718: 344b0100 */ ori $t3,$v0,0x100
/* f07671c: ae2b0040 */ sw $t3,0x40($s1)
.PF0f076720:
/* f076720: 8faf0350 */ lw $t7,0x350($sp)
/* f076724: 51e00035 */ beqzl $t7,.PF0f0767fc
/* f076728: 922b0003 */ lbu $t3,0x3($s1)
/* f07672c: 8e020000 */ lw $v0,0x0($s0)
/* f076730: 304a0004 */ andi $t2,$v0,0x4
/* f076734: 5540000d */ bnezl $t2,.PF0f07676c
/* f076738: c604008c */ lwc1 $f4,0x8c($s0)
/* f07673c: 8e0c0090 */ lw $t4,0x90($s0)
/* f076740: 8fae0354 */ lw $t6,0x354($sp)
/* f076744: 29810006 */ slti $at,$t4,0x6
/* f076748: 54200008 */ bnezl $at,.PF0f07676c
/* f07674c: c604008c */ lwc1 $f4,0x8c($s0)
/* f076750: 11c00029 */ beqz $t6,.PF0f0767f8
/* f076754: 02202025 */ move $a0,$s1
/* f076758: 0fc1b798 */ jal func0f06dbd8
/* f07675c: 27a50358 */ addiu $a1,$sp,0x358
/* f076760: 10000026 */ b .PF0f0767fc
/* f076764: 922b0003 */ lbu $t3,0x3($s1)
/* f076768: c604008c */ lwc1 $f4,0x8c($s0)
.PF0f07676c:
/* f07676c: 8fad0354 */ lw $t5,0x354($sp)
/* f076770: 4604a03c */ c.lt.s $f20,$f4
/* f076774: 00000000 */ nop
/* f076778: 4500001b */ bc1f .PF0f0767e8
/* f07677c: 00000000 */ nop
/* f076780: c60c0008 */ lwc1 $f12,0x8($s0)
/* f076784: 3c017f1b */ lui $at,0x7f1b
/* f076788: 460ca03e */ c.le.s $f20,$f12
/* f07678c: 00000000 */ nop
/* f076790: 4502001a */ bc1fl .PF0f0767fc
/* f076794: 922b0003 */ lbu $t3,0x3($s1)
/* f076798: c420b6b0 */ lwc1 $f0,-0x4950($at)
/* f07679c: 30590002 */ andi $t9,$v0,0x2
/* f0767a0: 4600603c */ c.lt.s $f12,$f0
/* f0767a4: 00000000 */ nop
/* f0767a8: 45020014 */ bc1fl .PF0f0767fc
/* f0767ac: 922b0003 */ lbu $t3,0x3($s1)
/* f0767b0: 13200007 */ beqz $t9,.PF0f0767d0
/* f0767b4: 8fb80354 */ lw $t8,0x354($sp)
/* f0767b8: 8e090090 */ lw $t1,0x90($s0)
/* f0767bc: 24010001 */ li $at,0x1
/* f0767c0: 15210003 */ bne $t1,$at,.PF0f0767d0
/* f0767c4: 00000000 */ nop
/* f0767c8: 1000000b */ b .PF0f0767f8
/* f0767cc: e6000008 */ swc1 $f0,0x8($s0)
.PF0f0767d0:
/* f0767d0: 13000009 */ beqz $t8,.PF0f0767f8
/* f0767d4: 02202025 */ move $a0,$s1
/* f0767d8: 0fc1b798 */ jal func0f06dbd8
/* f0767dc: 27a50358 */ addiu $a1,$sp,0x358
/* f0767e0: 10000006 */ b .PF0f0767fc
/* f0767e4: 922b0003 */ lbu $t3,0x3($s1)
.PF0f0767e8:
/* f0767e8: 11a00003 */ beqz $t5,.PF0f0767f8
/* f0767ec: 02202025 */ move $a0,$s1
/* f0767f0: 0fc1b798 */ jal func0f06dbd8
/* f0767f4: 27a50358 */ addiu $a1,$sp,0x358
.PF0f0767f8:
/* f0767f8: 922b0003 */ lbu $t3,0x3($s1)
.PF0f0767fc:
/* f0767fc: 24010008 */ li $at,0x8
/* f076800: 55610134 */ bnel $t3,$at,.PF0f076cd4
/* f076804: 02202025 */ move $a0,$s1
/* f076808: 9227005c */ lbu $a3,0x5c($s1)
/* f07680c: 2401001a */ li $at,0x1a
/* f076810: 54e1000a */ bnel $a3,$at,.PF0f07683c
/* f076814: 24010053 */ li $at,0x53
/* f076818: 922f005f */ lbu $t7,0x5f($s1)
/* f07681c: 24010001 */ li $at,0x1
/* f076820: 55e10006 */ bnel $t7,$at,.PF0f07683c
/* f076824: 24010053 */ li $at,0x53
/* f076828: 0fc1bac1 */ jal knifePlayWooshSound
/* f07682c: 02202025 */ move $a0,$s1
/* f076830: 100000b0 */ b .PF0f076af4
/* f076834: 8fac0600 */ lw $t4,0x600($sp)
/* f076838: 24010053 */ li $at,0x53
.PF0f07683c:
/* f07683c: 14e10044 */ bne $a3,$at,.PF0f076950
/* f076840: 8faa0600 */ lw $t2,0x600($sp)
/* f076844: 55400004 */ bnezl $t2,.PF0f076858
/* f076848: c60e0004 */ lwc1 $f14,0x4($s0)
/* f07684c: 100000a8 */ b .PF0f076af0
/* f076850: a6200062 */ sh $zero,0x62($s1)
/* f076854: c60e0004 */ lwc1 $f14,0x4($s0)
.PF0f076858:
/* f076858: c60c0008 */ lwc1 $f12,0x8($s0)
/* f07685c: c602000c */ lwc1 $f2,0xc($s0)
/* f076860: 460e7282 */ mul.s $f10,$f14,$f14
/* f076864: 3c017f1b */ lui $at,0x7f1b
/* f076868: 460c6182 */ mul.s $f6,$f12,$f12
/* f07686c: 46065200 */ add.s $f8,$f10,$f6
/* f076870: 46021102 */ mul.s $f4,$f2,$f2
/* f076874: c42ab6b4 */ lwc1 $f10,-0x494c($at)
/* f076878: 46082000 */ add.s $f0,$f4,$f8
/* f07687c: 4600503c */ c.lt.s $f10,$f0
/* f076880: 00000000 */ nop
/* f076884: 45020005 */ bc1fl .PF0f07689c
/* f076888: 860200b2 */ lh $v0,0xb2($s0)
/* f07688c: e6140010 */ swc1 $f20,0x10($s0)
/* f076890: e6140014 */ swc1 $f20,0x14($s0)
/* f076894: e6140018 */ swc1 $f20,0x18($s0)
/* f076898: 860200b2 */ lh $v0,0xb2($s0)
.PF0f07689c:
/* f07689c: 0442000c */ bltzl $v0,.PF0f0768d0
/* f0768a0: c6060004 */ lwc1 $f6,0x4($s0)
/* f0768a4: 8e0c00a0 */ lw $t4,0xa0($s0)
/* f0768a8: 004c082a */ slt $at,$v0,$t4
/* f0768ac: 50200008 */ beqzl $at,.PF0f0768d0
/* f0768b0: c6060004 */ lwc1 $f6,0x4($s0)
/* f0768b4: 8e0e0000 */ lw $t6,0x0($s0)
/* f0768b8: 2401ffcf */ li $at,-49
/* f0768bc: e614001c */ swc1 $f20,0x1c($s0)
/* f0768c0: 01c1c824 */ and $t9,$t6,$at
/* f0768c4: 1000008a */ b .PF0f076af0
/* f0768c8: ae190000 */ sw $t9,0x0($s0)
/* f0768cc: c6060004 */ lwc1 $f6,0x4($s0)
.PF0f0768d0:
/* f0768d0: 27a40108 */ addiu $a0,$sp,0x108
/* f0768d4: 27a5010c */ addiu $a1,$sp,0x10c
/* f0768d8: e7a60108 */ swc1 $f6,0x108($sp)
/* f0768dc: c6040008 */ lwc1 $f4,0x8($s0)
/* f0768e0: 27a60110 */ addiu $a2,$sp,0x110
/* f0768e4: e7a4010c */ swc1 $f4,0x10c($sp)
/* f0768e8: c608000c */ lwc1 $f8,0xc($s0)
/* f0768ec: 0c0011d8 */ jal guNormalize
/* f0768f0: e7a80110 */ swc1 $f8,0x110($sp)
/* f0768f4: 3c0141a0 */ lui $at,0x41a0
/* f0768f8: 44810000 */ mtc1 $at,$f0
/* f0768fc: c7a60108 */ lwc1 $f6,0x108($sp)
/* f076900: c64a0008 */ lwc1 $f10,0x8($s2)
/* f076904: 27a40108 */ addiu $a0,$sp,0x108
/* f076908: 46003102 */ mul.s $f4,$f6,$f0
/* f07690c: 8fa5006c */ lw $a1,0x6c($sp)
/* f076910: 24060008 */ li $a2,0x8
/* f076914: 46045201 */ sub.s $f8,$f10,$f4
/* f076918: c7aa010c */ lwc1 $f10,0x10c($sp)
/* f07691c: 46005102 */ mul.s $f4,$f10,$f0
/* f076920: e7a80108 */ swc1 $f8,0x108($sp)
/* f076924: c646000c */ lwc1 $f6,0xc($s2)
/* f076928: 46043201 */ sub.s $f8,$f6,$f4
/* f07692c: c7a60110 */ lwc1 $f6,0x110($sp)
/* f076930: 46003102 */ mul.s $f4,$f6,$f0
/* f076934: e7a8010c */ swc1 $f8,0x10c($sp)
/* f076938: c64a0010 */ lwc1 $f10,0x10($s2)
/* f07693c: 46045201 */ sub.s $f8,$f10,$f4
/* f076940: 0fc4bcd8 */ jal smokeCreateSimple
/* f076944: e7a80110 */ swc1 $f8,0x110($sp)
/* f076948: 1000006a */ b .PF0f076af4
/* f07694c: 8fac0600 */ lw $t4,0x600($sp)
.PF0f076950:
/* f076950: 24010054 */ li $at,0x54
/* f076954: 14e1000a */ bne $a3,$at,.PF0f076980
/* f076958: 8fa90600 */ lw $t1,0x600($sp)
/* f07695c: 15200003 */ bnez $t1,.PF0f07696c
/* f076960: 26440008 */ addiu $a0,$s2,0x8
/* f076964: 10000062 */ b .PF0f076af0
/* f076968: a6200062 */ sh $zero,0x62($s1)
.PF0f07696c:
/* f07696c: 8fa5006c */ lw $a1,0x6c($sp)
/* f076970: 0fc4bcd8 */ jal smokeCreateSimple
/* f076974: 2406000b */ li $a2,0xb
/* f076978: 1000005e */ b .PF0f076af4
/* f07697c: 8fac0600 */ lw $t4,0x600($sp)
.PF0f076980:
/* f076980: 24010055 */ li $at,0x55
/* f076984: 10e10006 */ beq $a3,$at,.PF0f0769a0
/* f076988: 2402001f */ li $v0,0x1f
/* f07698c: 54470059 */ bnel $v0,$a3,.PF0f076af4
/* f076990: 8fac0600 */ lw $t4,0x600($sp)
/* f076994: 9238005f */ lbu $t8,0x5f($s1)
/* f076998: 57000056 */ bnezl $t8,.PF0f076af4
/* f07699c: 8fac0600 */ lw $t4,0x600($sp)
.PF0f0769a0:
/* f0769a0: 8fad0350 */ lw $t5,0x350($sp)
/* f0769a4: 2402001f */ li $v0,0x1f
/* f0769a8: 15a00045 */ bnez $t5,.PF0f076ac0
/* f0769ac: 00000000 */ nop
/* f0769b0: 8e0b0000 */ lw $t3,0x0($s0)
/* f0769b4: 3c017f1b */ lui $at,0x7f1b
/* f0769b8: 316f0400 */ andi $t7,$t3,0x400
/* f0769bc: 15e00040 */ bnez $t7,.PF0f076ac0
/* f0769c0: 00000000 */ nop
/* f0769c4: c430b6b8 */ lwc1 $f16,-0x4948($at)
/* f0769c8: c60e0004 */ lwc1 $f14,0x4($s0)
/* f0769cc: 3c017f1b */ lui $at,0x7f1b
/* f0769d0: c7aa05c8 */ lwc1 $f10,0x5c8($sp)
/* f0769d4: 4610703c */ c.lt.s $f14,$f16
/* f0769d8: 00000000 */ nop
/* f0769dc: 45020019 */ bc1fl .PF0f076a44
/* f0769e0: c6460008 */ lwc1 $f6,0x8($s2)
/* f0769e4: c432b6bc */ lwc1 $f18,-0x4944($at)
/* f0769e8: 460e903c */ c.lt.s $f18,$f14
/* f0769ec: 00000000 */ nop
/* f0769f0: 45020014 */ bc1fl .PF0f076a44
/* f0769f4: c6460008 */ lwc1 $f6,0x8($s2)
/* f0769f8: c60c0008 */ lwc1 $f12,0x8($s0)
/* f0769fc: 4610603c */ c.lt.s $f12,$f16
/* f076a00: 00000000 */ nop
/* f076a04: 4502000f */ bc1fl .PF0f076a44
/* f076a08: c6460008 */ lwc1 $f6,0x8($s2)
/* f076a0c: 460c903c */ c.lt.s $f18,$f12
/* f076a10: 00000000 */ nop
/* f076a14: 4502000b */ bc1fl .PF0f076a44
/* f076a18: c6460008 */ lwc1 $f6,0x8($s2)
/* f076a1c: c602000c */ lwc1 $f2,0xc($s0)
/* f076a20: 4610103c */ c.lt.s $f2,$f16
/* f076a24: 00000000 */ nop
/* f076a28: 45020006 */ bc1fl .PF0f076a44
/* f076a2c: c6460008 */ lwc1 $f6,0x8($s2)
/* f076a30: 4602903c */ c.lt.s $f18,$f2
/* f076a34: 00000000 */ nop
/* f076a38: 45010021 */ bc1t .PF0f076ac0
/* f076a3c: 00000000 */ nop
/* f076a40: c6460008 */ lwc1 $f6,0x8($s2)
.PF0f076a44:
/* f076a44: 3c017f1b */ lui $at,0x7f1b
/* f076a48: c432b6c0 */ lwc1 $f18,-0x4940($at)
/* f076a4c: 460a3001 */ sub.s $f0,$f6,$f10
/* f076a50: 4610003c */ c.lt.s $f0,$f16
/* f076a54: 00000000 */ nop
/* f076a58: 45000020 */ bc1f .PF0f076adc
/* f076a5c: 00000000 */ nop
/* f076a60: 4600903c */ c.lt.s $f18,$f0
/* f076a64: c7a805cc */ lwc1 $f8,0x5cc($sp)
/* f076a68: 4500001c */ bc1f .PF0f076adc
/* f076a6c: 00000000 */ nop
/* f076a70: c644000c */ lwc1 $f4,0xc($s2)
/* f076a74: 46082001 */ sub.s $f0,$f4,$f8
/* f076a78: 4610003c */ c.lt.s $f0,$f16
/* f076a7c: 00000000 */ nop
/* f076a80: 45000016 */ bc1f .PF0f076adc
/* f076a84: 00000000 */ nop
/* f076a88: 4600903c */ c.lt.s $f18,$f0
/* f076a8c: c7aa05d0 */ lwc1 $f10,0x5d0($sp)
/* f076a90: 45000012 */ bc1f .PF0f076adc
/* f076a94: 00000000 */ nop
/* f076a98: c6460010 */ lwc1 $f6,0x10($s2)
/* f076a9c: 460a3001 */ sub.s $f0,$f6,$f10
/* f076aa0: 4610003c */ c.lt.s $f0,$f16
/* f076aa4: 00000000 */ nop
/* f076aa8: 4500000c */ bc1f .PF0f076adc
/* f076aac: 00000000 */ nop
/* f076ab0: 4600903c */ c.lt.s $f18,$f0
/* f076ab4: 00000000 */ nop
/* f076ab8: 45000008 */ bc1f .PF0f076adc
/* f076abc: 00000000 */ nop
.PF0f076ac0:
/* f076ac0: 14470004 */ bne $v0,$a3,.PF0f076ad4
/* f076ac4: 00000000 */ nop
/* f076ac8: 862a0062 */ lh $t2,0x62($s1)
/* f076acc: 05420009 */ bltzl $t2,.PF0f076af4
/* f076ad0: 8fac0600 */ lw $t4,0x600($sp)
.PF0f076ad4:
/* f076ad4: 10000006 */ b .PF0f076af0
/* f076ad8: a6200062 */ sh $zero,0x62($s1)
.PF0f076adc:
/* f076adc: 10470004 */ beq $v0,$a3,.PF0f076af0
/* f076ae0: 26440008 */ addiu $a0,$s2,0x8
/* f076ae4: 8fa5006c */ lw $a1,0x6c($sp)
/* f076ae8: 0fc4bcd8 */ jal smokeCreateSimple
/* f076aec: 24060009 */ li $a2,0x9
.PF0f076af0:
/* f076af0: 8fac0600 */ lw $t4,0x600($sp)
.PF0f076af4:
/* f076af4: 3c03800a */ lui $v1,0x800a
/* f076af8: 55800076 */ bnezl $t4,.PF0f076cd4
/* f076afc: 02202025 */ move $a0,$s1
/* f076b00: 8c63a51c */ lw $v1,-0x5ae4($v1)
/* f076b04: 8e0e00a4 */ lw $t6,0xa4($s0)
/* f076b08: 2479fffe */ addiu $t9,$v1,-2
/* f076b0c: 01d9082a */ slt $at,$t6,$t9
/* f076b10: 5020006f */ beqzl $at,.PF0f076cd0
/* f076b14: ae0300a4 */ sw $v1,0xa4($s0)
/* f076b18: 9227005c */ lbu $a3,0x5c($s1)
/* f076b1c: 2401001a */ li $at,0x1a
/* f076b20: 00002025 */ move $a0,$zero
/* f076b24: 10e10003 */ beq $a3,$at,.PF0f076b34
/* f076b28: 02402825 */ move $a1,$s2
/* f076b2c: 2401001a */ li $at,0x1a
/* f076b30: 14e10015 */ bne $a3,$at,.PF0f076b88
.PF0f076b34:
/* f076b34: 3c01bf80 */ lui $at,0xbf80
/* f076b38: 44810000 */ mtc1 $at,$f0
/* f076b3c: 2409ffff */ li $t1,-1
/* f076b40: 2418ffff */ li $t8,-1
/* f076b44: afb8002c */ sw $t8,0x2c($sp)
/* f076b48: afa90010 */ sw $t1,0x10($sp)
/* f076b4c: 2406808b */ li $a2,-32629
/* f076b50: 2407ffff */ li $a3,-1
/* f076b54: afa00014 */ sw $zero,0x14($sp)
/* f076b58: afa00018 */ sw $zero,0x18($sp)
/* f076b5c: afa0001c */ sw $zero,0x1c($sp)
/* f076b60: afa00020 */ sw $zero,0x20($sp)
/* f076b64: afa00028 */ sw $zero,0x28($sp)
/* f076b68: e7a00024 */ swc1 $f0,0x24($sp)
/* f076b6c: e7a00030 */ swc1 $f0,0x30($sp)
/* f076b70: e7a00034 */ swc1 $f0,0x34($sp)
/* f076b74: 0fc24e3a */ jal propsnd0f0939f8
/* f076b78: e7a00038 */ swc1 $f0,0x38($sp)
/* f076b7c: 3c03800a */ lui $v1,0x800a
/* f076b80: 10000052 */ b .PF0f076ccc
/* f076b84: 8c63a51c */ lw $v1,-0x5ae4($v1)
.PF0f076b88:
/* f076b88: 2401001e */ li $at,0x1e
/* f076b8c: 14e1003a */ bne $a3,$at,.PF0f076c78
/* f076b90: 00002025 */ move $a0,$zero
/* f076b94: 922d005f */ lbu $t5,0x5f($s1)
/* f076b98: 24010001 */ li $at,0x1
/* f076b9c: 3c0f8007 */ lui $t7,0x8007
/* f076ba0: 15a10035 */ bne $t5,$at,.PF0f076c78
/* f076ba4: 25ef9898 */ addiu $t7,$t7,-26472
/* f076ba8: 8de10000 */ lw $at,0x0($t7)
/* f076bac: 8dec0004 */ lw $t4,0x4($t7)
/* f076bb0: 27ab0100 */ addiu $t3,$sp,0x100
/* f076bb4: ad610000 */ sw $at,0x0($t3)
/* f076bb8: 0c004ad4 */ jal random
/* f076bbc: ad6c0004 */ sw $t4,0x4($t3)
/* f076bc0: 304e0003 */ andi $t6,$v0,0x3
/* f076bc4: 000ec840 */ sll $t9,$t6,0x1
/* f076bc8: 03b93021 */ addu $a2,$sp,$t9
/* f076bcc: 84c60100 */ lh $a2,0x100($a2)
/* f076bd0: 3c01bf80 */ lui $at,0xbf80
/* f076bd4: 44810000 */ mtc1 $at,$f0
/* f076bd8: 2409ffff */ li $t1,-1
/* f076bdc: 2418ffff */ li $t8,-1
/* f076be0: afb8002c */ sw $t8,0x2c($sp)
/* f076be4: afa90010 */ sw $t1,0x10($sp)
/* f076be8: afa00028 */ sw $zero,0x28($sp)
/* f076bec: afa00020 */ sw $zero,0x20($sp)
/* f076bf0: afa0001c */ sw $zero,0x1c($sp)
/* f076bf4: afa00018 */ sw $zero,0x18($sp)
/* f076bf8: afa00014 */ sw $zero,0x14($sp)
/* f076bfc: 00002025 */ move $a0,$zero
/* f076c00: 02402825 */ move $a1,$s2
/* f076c04: 2407ffff */ li $a3,-1
/* f076c08: e7a00024 */ swc1 $f0,0x24($sp)
/* f076c0c: e7a00030 */ swc1 $f0,0x30($sp)
/* f076c10: e7a00034 */ swc1 $f0,0x34($sp)
/* f076c14: 0fc24e3a */ jal propsnd0f0939f8
/* f076c18: e7a00038 */ swc1 $f0,0x38($sp)
/* f076c1c: 3c01bf80 */ lui $at,0xbf80
/* f076c20: 44810000 */ mtc1 $at,$f0
/* f076c24: 240dffff */ li $t5,-1
/* f076c28: 240affff */ li $t2,-1
/* f076c2c: afaa002c */ sw $t2,0x2c($sp)
/* f076c30: afad0010 */ sw $t5,0x10($sp)
/* f076c34: 00002025 */ move $a0,$zero
/* f076c38: 02402825 */ move $a1,$s2
/* f076c3c: 2406808c */ li $a2,-32628
/* f076c40: 2407ffff */ li $a3,-1
/* f076c44: afa00014 */ sw $zero,0x14($sp)
/* f076c48: afa00018 */ sw $zero,0x18($sp)
/* f076c4c: afa0001c */ sw $zero,0x1c($sp)
/* f076c50: afa00020 */ sw $zero,0x20($sp)
/* f076c54: afa00028 */ sw $zero,0x28($sp)
/* f076c58: e7a00024 */ swc1 $f0,0x24($sp)
/* f076c5c: e7a00030 */ swc1 $f0,0x30($sp)
/* f076c60: e7a00034 */ swc1 $f0,0x34($sp)
/* f076c64: 0fc24e3a */ jal propsnd0f0939f8
/* f076c68: e7a00038 */ swc1 $f0,0x38($sp)
/* f076c6c: 3c03800a */ lui $v1,0x800a
/* f076c70: 10000016 */ b .PF0f076ccc
/* f076c74: 8c63a51c */ lw $v1,-0x5ae4($v1)
.PF0f076c78:
/* f076c78: 3c01bf80 */ lui $at,0xbf80
/* f076c7c: 44810000 */ mtc1 $at,$f0
/* f076c80: 240bffff */ li $t3,-1
/* f076c84: 240fffff */ li $t7,-1
/* f076c88: afaf002c */ sw $t7,0x2c($sp)
/* f076c8c: afab0010 */ sw $t3,0x10($sp)
/* f076c90: 02402825 */ move $a1,$s2
/* f076c94: 2406808c */ li $a2,-32628
/* f076c98: 2407ffff */ li $a3,-1
/* f076c9c: afa00014 */ sw $zero,0x14($sp)
/* f076ca0: afa00018 */ sw $zero,0x18($sp)
/* f076ca4: afa0001c */ sw $zero,0x1c($sp)
/* f076ca8: afa00020 */ sw $zero,0x20($sp)
/* f076cac: afa00028 */ sw $zero,0x28($sp)
/* f076cb0: e7a00024 */ swc1 $f0,0x24($sp)
/* f076cb4: e7a00030 */ swc1 $f0,0x30($sp)
/* f076cb8: e7a00034 */ swc1 $f0,0x34($sp)
/* f076cbc: 0fc24e3a */ jal propsnd0f0939f8
/* f076cc0: e7a00038 */ swc1 $f0,0x38($sp)
/* f076cc4: 3c03800a */ lui $v1,0x800a
/* f076cc8: 8c63a51c */ lw $v1,-0x5ae4($v1)
.PF0f076ccc:
/* f076ccc: ae0300a4 */ sw $v1,0xa4($s0)
.PF0f076cd0:
/* f076cd0: 02202025 */ move $a0,$s1
.PF0f076cd4:
/* f076cd4: 24050001 */ li $a1,0x1
/* f076cd8: 0fc1a7be */ jal func0f069c70
/* f076cdc: 24060001 */ li $a2,0x1
/* f076ce0: 10000133 */ b .PF0f0771b0
/* f076ce4: 8fbf005c */ lw $ra,0x5c($sp)
.PF0f076ce8:
/* f076ce8: 11800130 */ beqz $t4,.PF0f0771ac
/* f076cec: 3c013f80 */ lui $at,0x3f80
/* f076cf0: 240e0001 */ li $t6,0x1
/* f076cf4: afae00fc */ sw $t6,0xfc($sp)
/* f076cf8: 44816000 */ mtc1 $at,$f12
/* f076cfc: c6000060 */ lwc1 $f0,0x60($s0)
/* f076d00: 26040068 */ addiu $a0,$s0,0x68
/* f076d04: 26050078 */ addiu $a1,$s0,0x78
/* f076d08: 460c003c */ c.lt.s $f0,$f12
/* f076d0c: 00000000 */ nop
/* f076d10: 4502002a */ bc1fl .PF0f076dbc
/* f076d14: 4480a000 */ mtc1 $zero,$f20
/* f076d18: c6020064 */ lwc1 $f2,0x64($s0)
/* f076d1c: c464004c */ lwc1 $f4,0x4c($v1)
/* f076d20: 3c017f1b */ lui $at,0x7f1b
/* f076d24: 46041202 */ mul.s $f8,$f2,$f4
/* f076d28: 46080180 */ add.s $f6,$f0,$f8
/* f076d2c: e6060060 */ swc1 $f6,0x60($s0)
/* f076d30: 8c790038 */ lw $t9,0x38($v1)
/* f076d34: 5b200005 */ blezl $t9,.PF0f076d4c
/* f076d38: c6000060 */ lwc1 $f0,0x60($s0)
/* f076d3c: c42ab6c4 */ lwc1 $f10,-0x493c($at)
/* f076d40: 460a1102 */ mul.s $f4,$f2,$f10
/* f076d44: e6040064 */ swc1 $f4,0x64($s0)
/* f076d48: c6000060 */ lwc1 $f0,0x60($s0)
.PF0f076d4c:
/* f076d4c: 4600603c */ c.lt.s $f12,$f0
/* f076d50: 00000000 */ nop
/* f076d54: 45020004 */ bc1fl .PF0f076d68
/* f076d58: 44060000 */ mfc1 $a2,$f0
/* f076d5c: e60c0060 */ swc1 $f12,0x60($s0)
/* f076d60: c6000060 */ lwc1 $f0,0x60($s0)
/* f076d64: 44060000 */ mfc1 $a2,$f0
.PF0f076d68:
/* f076d68: 0fc25c76 */ jal quaternionSlerp
/* f076d6c: 27a700ec */ addiu $a3,$sp,0xec
/* f076d70: 27a400ec */ addiu $a0,$sp,0xec
/* f076d74: 0fc25b7d */ jal quaternionToMtx
/* f076d78: 27a500ac */ addiu $a1,$sp,0xac
/* f076d7c: c60c00b8 */ lwc1 $f12,0xb8($s0)
/* f076d80: 0c0056ed */ jal mtx00015e24
/* f076d84: 27a500ac */ addiu $a1,$sp,0xac
/* f076d88: c60c00bc */ lwc1 $f12,0xbc($s0)
/* f076d8c: 0c005704 */ jal mtx00015e80
/* f076d90: 27a500ac */ addiu $a1,$sp,0xac
/* f076d94: c60c00c0 */ lwc1 $f12,0xc0($s0)
/* f076d98: 0c00571b */ jal mtx00015edc
/* f076d9c: 27a500ac */ addiu $a1,$sp,0xac
/* f076da0: 27a400ac */ addiu $a0,$sp,0xac
/* f076da4: 0c0056cc */ jal mtx4ToMtx3
/* f076da8: 2625001c */ addiu $a1,$s1,0x1c
/* f076dac: 3c013f80 */ lui $at,0x3f80
/* f076db0: 44816000 */ mtc1 $at,$f12
/* f076db4: afa000fc */ sw $zero,0xfc($sp)
/* f076db8: 4480a000 */ mtc1 $zero,$f20
.PF0f076dbc:
/* f076dbc: c6080004 */ lwc1 $f8,0x4($s0)
/* f076dc0: 02202025 */ move $a0,$s1
/* f076dc4: 2629001c */ addiu $t1,$s1,0x1c
/* f076dc8: 4608a032 */ c.eq.s $f20,$f8
/* f076dcc: 00000000 */ nop
/* f076dd0: 4502000c */ bc1fl .PF0f076e04
/* f076dd4: afa90074 */ sw $t1,0x74($sp)
/* f076dd8: c606000c */ lwc1 $f6,0xc($s0)
/* f076ddc: 4606a032 */ c.eq.s $f20,$f6
/* f076de0: 00000000 */ nop
/* f076de4: 45020007 */ bc1fl .PF0f076e04
/* f076de8: afa90074 */ sw $t1,0x74($sp)
/* f076dec: c60a0060 */ lwc1 $f10,0x60($s0)
/* f076df0: 460c503c */ c.lt.s $f10,$f12
/* f076df4: 00000000 */ nop
/* f076df8: 450200da */ bc1fl .PF0f077164
/* f076dfc: 8faf00fc */ lw $t7,0xfc($sp)
/* f076e00: afa90074 */ sw $t1,0x74($sp)
.PF0f076e04:
/* f076e04: 0fc1a361 */ jal objFindBboxRodata
/* f076e08: afa000fc */ sw $zero,0xfc($sp)
/* f076e0c: 00402025 */ move $a0,$v0
/* f076e10: 0fc19afb */ jal func0f06695c
/* f076e14: 8fa50074 */ lw $a1,0x74($sp)
/* f076e18: 3c03800a */ lui $v1,0x800a
/* f076e1c: 8c63a548 */ lw $v1,-0x5ab8($v1)
/* f076e20: e7a00098 */ swc1 $f0,0x98($sp)
/* f076e24: 00001025 */ move $v0,$zero
/* f076e28: 18600053 */ blez $v1,.PF0f076f78
/* f076e2c: 3c017f1b */ lui $at,0x7f1b
/* f076e30: c432b6c8 */ lwc1 $f18,-0x4938($at)
/* f076e34: 3c017f1b */ lui $at,0x7f1b
/* f076e38: c430b6cc */ lwc1 $f16,-0x4934($at)
/* f076e3c: c6080004 */ lwc1 $f8,0x4($s0)
.PF0f076e40:
/* f076e40: c7a405dc */ lwc1 $f4,0x5dc($sp)
/* f076e44: 3c013f80 */ lui $at,0x3f80
/* f076e48: 46104182 */ mul.s $f6,$f8,$f16
/* f076e4c: c7a805e4 */ lwc1 $f8,0x5e4($sp)
/* f076e50: 46062280 */ add.s $f10,$f4,$f6
/* f076e54: e7aa05dc */ swc1 $f10,0x5dc($sp)
/* f076e58: c604000c */ lwc1 $f4,0xc($s0)
/* f076e5c: 46102182 */ mul.s $f6,$f4,$f16
/* f076e60: 46064280 */ add.s $f10,$f8,$f6
/* f076e64: 44814000 */ mtc1 $at,$f8
/* f076e68: e7aa05e4 */ swc1 $f10,0x5e4($sp)
/* f076e6c: c6040060 */ lwc1 $f4,0x60($s0)
/* f076e70: 4604403e */ c.le.s $f8,$f4
/* f076e74: 00000000 */ nop
/* f076e78: 4502003c */ bc1fl .PF0f076f6c
/* f076e7c: 24420001 */ addiu $v0,$v0,0x1
/* f076e80: c6060098 */ lwc1 $f6,0x98($s0)
/* f076e84: 4606a03c */ c.lt.s $f20,$f6
/* f076e88: 00000000 */ nop
/* f076e8c: 4502002e */ bc1fl .PF0f076f48
/* f076e90: c6080004 */ lwc1 $f8,0x4($s0)
/* f076e94: c602000c */ lwc1 $f2,0xc($s0)
/* f076e98: c60e0004 */ lwc1 $f14,0x4($s0)
/* f076e9c: afa2009c */ sw $v0,0x9c($sp)
/* f076ea0: 46021282 */ mul.s $f10,$f2,$f2
/* f076ea4: 00000000 */ nop
/* f076ea8: 460e7102 */ mul.s $f4,$f14,$f14
/* f076eac: 0c0127b4 */ jal sqrtf
/* f076eb0: 46045300 */ add.s $f12,$f10,$f4
/* f076eb4: 4600a03c */ c.lt.s $f20,$f0
/* f076eb8: 3c017f1b */ lui $at,0x7f1b
/* f076ebc: c430b6d0 */ lwc1 $f16,-0x4930($at)
/* f076ec0: 3c017f1b */ lui $at,0x7f1b
/* f076ec4: c432b6d4 */ lwc1 $f18,-0x492c($at)
/* f076ec8: 45000019 */ bc1f .PF0f076f30
/* f076ecc: 8fa2009c */ lw $v0,0x9c($sp)
/* f076ed0: 3c01800a */ lui $at,0x800a
/* f076ed4: c426a55c */ lwc1 $f6,-0x5aa4($at)
/* f076ed8: c6080098 */ lwc1 $f8,0x98($s0)
/* f076edc: 3c013f80 */ lui $at,0x3f80
/* f076ee0: 44812000 */ mtc1 $at,$f4
/* f076ee4: 46064282 */ mul.s $f10,$f8,$f6
/* f076ee8: 46005303 */ div.s $f12,$f10,$f0
/* f076eec: 460c203e */ c.le.s $f4,$f12
/* f076ef0: 00000000 */ nop
/* f076ef4: 45020005 */ bc1fl .PF0f076f0c
/* f076ef8: c60e0004 */ lwc1 $f14,0x4($s0)
/* f076efc: e6140004 */ swc1 $f20,0x4($s0)
/* f076f00: 1000000d */ b .PF0f076f38
/* f076f04: e614000c */ swc1 $f20,0xc($s0)
/* f076f08: c60e0004 */ lwc1 $f14,0x4($s0)
.PF0f076f0c:
/* f076f0c: c602000c */ lwc1 $f2,0xc($s0)
/* f076f10: 460c7202 */ mul.s $f8,$f14,$f12
/* f076f14: 00000000 */ nop
/* f076f18: 460c1282 */ mul.s $f10,$f2,$f12
/* f076f1c: 46087181 */ sub.s $f6,$f14,$f8
/* f076f20: 460a1101 */ sub.s $f4,$f2,$f10
/* f076f24: e6060004 */ swc1 $f6,0x4($s0)
/* f076f28: 10000003 */ b .PF0f076f38
/* f076f2c: e604000c */ swc1 $f4,0xc($s0)
.PF0f076f30:
/* f076f30: e6140004 */ swc1 $f20,0x4($s0)
/* f076f34: e614000c */ swc1 $f20,0xc($s0)
.PF0f076f38:
/* f076f38: 3c03800a */ lui $v1,0x800a
/* f076f3c: 1000000a */ b .PF0f076f68
/* f076f40: 8c63a548 */ lw $v1,-0x5ab8($v1)
/* f076f44: c6080004 */ lwc1 $f8,0x4($s0)
.PF0f076f48:
/* f076f48: c60a000c */ lwc1 $f10,0xc($s0)
/* f076f4c: 3c03800a */ lui $v1,0x800a
/* f076f50: 46124182 */ mul.s $f6,$f8,$f18
/* f076f54: 00000000 */ nop
/* f076f58: 46125102 */ mul.s $f4,$f10,$f18
/* f076f5c: e6060004 */ swc1 $f6,0x4($s0)
/* f076f60: e604000c */ swc1 $f4,0xc($s0)
/* f076f64: 8c63a548 */ lw $v1,-0x5ab8($v1)
.PF0f076f68:
/* f076f68: 24420001 */ addiu $v0,$v0,0x1
.PF0f076f6c:
/* f076f6c: 0043082a */ slt $at,$v0,$v1
/* f076f70: 5420ffb3 */ bnezl $at,.PF0f076e40
/* f076f74: c6080004 */ lwc1 $f8,0x4($s0)
.PF0f076f78:
/* f076f78: c6480008 */ lwc1 $f8,0x8($s2)
/* f076f7c: 26440028 */ addiu $a0,$s2,0x28
/* f076f80: 27a505b8 */ addiu $a1,$sp,0x5b8
/* f076f84: e7a805c8 */ swc1 $f8,0x5c8($sp)
/* f076f88: c646000c */ lwc1 $f6,0xc($s2)
/* f076f8c: e7a605cc */ swc1 $f6,0x5cc($sp)
/* f076f90: c64a0010 */ lwc1 $f10,0x10($s2)
/* f076f94: afa4006c */ sw $a0,0x6c($sp)
/* f076f98: 0fc1968d */ jal roomsCopy
/* f076f9c: e7aa05d0 */ swc1 $f10,0x5d0($sp)
/* f076fa0: 02202025 */ move $a0,$s1
/* f076fa4: 27a505dc */ addiu $a1,$sp,0x5dc
/* f076fa8: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f076fac: 0fc1b581 */ jal func0f06d37c
/* f076fb0: 27a705f4 */ addiu $a3,$sp,0x5f4
/* f076fb4: 24180001 */ li $t8,0x1
/* f076fb8: afb805d8 */ sw $t8,0x5d8($sp)
/* f076fbc: c6440008 */ lwc1 $f4,0x8($s2)
/* f076fc0: c7a60098 */ lwc1 $f6,0x98($sp)
/* f076fc4: 26270058 */ addiu $a3,$s1,0x58
/* f076fc8: e7a405ac */ swc1 $f4,0x5ac($sp)
/* f076fcc: c648000c */ lwc1 $f8,0xc($s2)
/* f076fd0: 27ad0096 */ addiu $t5,$sp,0x96
/* f076fd4: 27a405ac */ addiu $a0,$sp,0x5ac
/* f076fd8: 46064280 */ add.s $f10,$f8,$f6
/* f076fdc: 8fa5006c */ lw $a1,0x6c($sp)
/* f076fe0: 27a600a4 */ addiu $a2,$sp,0xa4
/* f076fe4: e7aa05b0 */ swc1 $f10,0x5b0($sp)
/* f076fe8: c6440010 */ lwc1 $f4,0x10($s2)
/* f076fec: afa70074 */ sw $a3,0x74($sp)
/* f076ff0: afad0010 */ sw $t5,0x10($sp)
/* f076ff4: 0c00a774 */ jal cd0002a4d0
/* f076ff8: e7a405b4 */ swc1 $f4,0x5b4($sp)
/* f076ffc: 00021c00 */ sll $v1,$v0,0x10
/* f077000: 1840000b */ blez $v0,.PF0f077030
/* f077004: 00035403 */ sra $t2,$v1,0x10
/* f077008: 240b0003 */ li $t3,0x3
/* f07700c: afab0010 */ sw $t3,0x10($sp)
/* f077010: 27a405c8 */ addiu $a0,$sp,0x5c8
/* f077014: 27a505b8 */ addiu $a1,$sp,0x5b8
/* f077018: 27a605ac */ addiu $a2,$sp,0x5ac
/* f07701c: 24070021 */ li $a3,0x21
/* f077020: 0c00b526 */ jal cd0002db98
/* f077024: a7aa00a2 */ sh $t2,0xa2($sp)
/* f077028: 1040000b */ beqz $v0,.PF0f077058
/* f07702c: 87a300a2 */ lh $v1,0xa2($sp)
.PF0f077030:
/* f077030: 27af0096 */ addiu $t7,$sp,0x96
/* f077034: afaf0010 */ sw $t7,0x10($sp)
/* f077038: 26440008 */ addiu $a0,$s2,0x8
/* f07703c: 8fa5006c */ lw $a1,0x6c($sp)
/* f077040: 27a600a4 */ addiu $a2,$sp,0xa4
/* f077044: 0c00a750 */ jal cd0002a440
/* f077048: 8fa70074 */ lw $a3,0x74($sp)
/* f07704c: 00021c00 */ sll $v1,$v0,0x10
/* f077050: 00036403 */ sra $t4,$v1,0x10
/* f077054: 01801825 */ move $v1,$t4
.PF0f077058:
/* f077058: 1c600017 */ bgtz $v1,.PF0f0770b8
/* f07705c: c7a805c8 */ lwc1 $f8,0x5c8($sp)
/* f077060: e6480008 */ swc1 $f8,0x8($s2)
/* f077064: c7a605d0 */ lwc1 $f6,0x5d0($sp)
/* f077068: 264e0008 */ addiu $t6,$s2,0x8
/* f07706c: 02402025 */ move $a0,$s2
/* f077070: e6460010 */ swc1 $f6,0x10($s2)
/* f077074: 0fc197b5 */ jal propDeregisterRooms
/* f077078: afae0070 */ sw $t6,0x70($sp)
/* f07707c: 27a405b8 */ addiu $a0,$sp,0x5b8
/* f077080: 0fc1968d */ jal roomsCopy
/* f077084: 8fa5006c */ lw $a1,0x6c($sp)
/* f077088: 27b90096 */ addiu $t9,$sp,0x96
/* f07708c: afb90010 */ sw $t9,0x10($sp)
/* f077090: 8fa40070 */ lw $a0,0x70($sp)
/* f077094: 8fa5006c */ lw $a1,0x6c($sp)
/* f077098: 27a600a4 */ addiu $a2,$sp,0xa4
/* f07709c: 0c00a750 */ jal cd0002a440
/* f0770a0: 8fa70074 */ lw $a3,0x74($sp)
/* f0770a4: 00021c00 */ sll $v1,$v0,0x10
/* f0770a8: 00034c03 */ sra $t1,$v1,0x10
/* f0770ac: 01201825 */ move $v1,$t1
/* f0770b0: e6140004 */ swc1 $f20,0x4($s0)
/* f0770b4: e614000c */ swc1 $f20,0xc($s0)
.PF0f0770b8:
/* f0770b8: 18600010 */ blez $v1,.PF0f0770fc
/* f0770bc: c7aa05cc */ lwc1 $f10,0x5cc($sp)
/* f0770c0: 0fc1aa2a */ jal func0f06a620
/* f0770c4: 02202025 */ move $a0,$s1
/* f0770c8: c7aa00a4 */ lwc1 $f10,0xa4($sp)
/* f0770cc: c7a40098 */ lwc1 $f4,0x98($sp)
/* f0770d0: 46045201 */ sub.s $f8,$f10,$f4
/* f0770d4: 46080180 */ add.s $f6,$f0,$f8
/* f0770d8: e646000c */ swc1 $f6,0xc($s2)
/* f0770dc: 97b80096 */ lhu $t8,0x96($sp)
/* f0770e0: 330d4000 */ andi $t5,$t8,0x4000
/* f0770e4: 11a00006 */ beqz $t5,.PF0f077100
/* f0770e8: 00000000 */ nop
/* f0770ec: 8e2a0040 */ lw $t2,0x40($s1)
/* f0770f0: 354b0004 */ ori $t3,$t2,0x4
/* f0770f4: 10000002 */ b .PF0f077100
/* f0770f8: ae2b0040 */ sw $t3,0x40($s1)
.PF0f0770fc:
/* f0770fc: e64a000c */ swc1 $f10,0xc($s2)
.PF0f077100:
/* f077100: 3c017f1b */ lui $at,0x7f1b
/* f077104: c430b6d8 */ lwc1 $f16,-0x4928($at)
/* f077108: c60e0004 */ lwc1 $f14,0x4($s0)
/* f07710c: 3c017f1b */ lui $at,0x7f1b
/* f077110: 4610703c */ c.lt.s $f14,$f16
/* f077114: 00000000 */ nop
/* f077118: 45020012 */ bc1fl .PF0f077164
/* f07711c: 8faf00fc */ lw $t7,0xfc($sp)
/* f077120: c432b6dc */ lwc1 $f18,-0x4924($at)
/* f077124: 460e903c */ c.lt.s $f18,$f14
/* f077128: 00000000 */ nop
/* f07712c: 4502000d */ bc1fl .PF0f077164
/* f077130: 8faf00fc */ lw $t7,0xfc($sp)
/* f077134: c602000c */ lwc1 $f2,0xc($s0)
/* f077138: 4610103c */ c.lt.s $f2,$f16
/* f07713c: 00000000 */ nop
/* f077140: 45020008 */ bc1fl .PF0f077164
/* f077144: 8faf00fc */ lw $t7,0xfc($sp)
/* f077148: 4602903c */ c.lt.s $f18,$f2
/* f07714c: 00000000 */ nop
/* f077150: 45020004 */ bc1fl .PF0f077164
/* f077154: 8faf00fc */ lw $t7,0xfc($sp)
/* f077158: e614000c */ swc1 $f20,0xc($s0)
/* f07715c: e6140004 */ swc1 $f20,0x4($s0)
/* f077160: 8faf00fc */ lw $t7,0xfc($sp)
.PF0f077164:
/* f077164: 51e0000b */ beqzl $t7,.PF0f077194
/* f077168: 8fae05d8 */ lw $t6,0x5d8($sp)
/* f07716c: 0fc1abb2 */ jal objEndFlight
/* f077170: 02202025 */ move $a0,$s1
/* f077174: 922c0003 */ lbu $t4,0x3($s1)
/* f077178: 24010008 */ li $at,0x8
/* f07717c: 26450028 */ addiu $a1,$s2,0x28
/* f077180: 55810004 */ bnel $t4,$at,.PF0f077194
/* f077184: 8fae05d8 */ lw $t6,0x5d8($sp)
/* f077188: 0fc257be */ jal objectiveCheckThrowInRoom
/* f07718c: 9224005c */ lbu $a0,0x5c($s1)
/* f077190: 8fae05d8 */ lw $t6,0x5d8($sp)
.PF0f077194:
/* f077194: 02202025 */ move $a0,$s1
/* f077198: 24050001 */ li $a1,0x1
/* f07719c: 51c00004 */ beqzl $t6,.PF0f0771b0
/* f0771a0: 8fbf005c */ lw $ra,0x5c($sp)
/* f0771a4: 0fc1a7be */ jal func0f069c70
/* f0771a8: 24060001 */ li $a2,0x1
.PF0f0771ac:
/* f0771ac: 8fbf005c */ lw $ra,0x5c($sp)
.PF0f0771b0:
/* f0771b0: 8fa205d8 */ lw $v0,0x5d8($sp)
/* f0771b4: d7b40048 */ ldc1 $f20,0x48($sp)
/* f0771b8: 8fb00050 */ lw $s0,0x50($sp)
/* f0771bc: 8fb10054 */ lw $s1,0x54($sp)
/* f0771c0: 8fb20058 */ lw $s2,0x58($sp)
/* f0771c4: 03e00008 */ jr $ra
/* f0771c8: 27bd0608 */ addiu $sp,$sp,0x608
);
#elif VERSION >= VERSION_PAL_BETA
GLOBAL_ASM(
glabel func0f073c6c
.late_rodata
glabel var7f1ab670pf
.word 0x3c23d70a
glabel var7f1ab674pf
.word 0x3c23d70a
glabel var7f1ab678pf
.word 0x38d1b717
glabel var7f1ab67cpf
.word 0x3c23d70a
glabel var7f1ab680pf
.word 0x3c23d70a
glabel var7f1ab684pf
.word 0x3c23d70a
glabel var7f1ab688pf
.word 0xc6ea6000
glabel var7f1ab68cpf
.word 0xc69c4000
glabel var7f1ab690pf
.word 0x3e8e38e4
glabel var7f1ab694pf
.word 0x3c360b61
glabel var7f1ab698pf
.word 0x3d8f5c29
glabel var7f1ab69cpf
.word 0x3e8e38e4
glabel var7f1ab6a0pf
.word 0x3a83126f
glabel var7f1ab6a4pf
.word 0xba83126f
glabel var7f1ab6a8pf
.word 0x3e8e38e4
glabel var7f1ab6acpf
.word 0x3e0e38e4
glabel var7f1ab6b0pf
.word 0x400e38e4
glabel var7f1ab6b4pf
.word 0x46d9038c
glabel var7f1ab6b8pf
.word 0x3dcccccd
glabel var7f1ab6bcpf
.word 0xbdcccccd
glabel var7f1ab6c0pf
.word 0xbdcccccd
glabel var7f1ab6c4pf
.word 0x3f8ccccd
glabel var7f1ab6c8pf
.word 0x3f666666
glabel var7f1ab6ccpf
.word 0x3f99999a
glabel var7f1ab6d0pf
.word 0x3f99999a
glabel var7f1ab6d4pf
.word 0x3f666666
glabel var7f1ab6d8pf
.word 0x3dcccccd
glabel var7f1ab6dcpf
.word 0xbdcccccd
.text
/* f073e34: 27bdf9f8 */ addiu $sp,$sp,-1544
/* f073e38: 3c03800a */ lui $v1,0x800a
/* f073e3c: 2463e4d0 */ addiu $v1,$v1,-6960
/* f073e40: 8c6e0034 */ lw $t6,0x34($v1)
/* f073e44: afbf005c */ sw $ra,0x5c($sp)
/* f073e48: afb20058 */ sw $s2,0x58($sp)
/* f073e4c: afb10054 */ sw $s1,0x54($sp)
/* f073e50: afb00050 */ sw $s0,0x50($sp)
/* f073e54: f7b40048 */ sdc1 $f20,0x48($sp)
/* f073e58: afa5060c */ sw $a1,0x60c($sp)
/* f073e5c: 8c900048 */ lw $s0,0x48($a0)
/* f073e60: afa005d8 */ sw $zero,0x5d8($sp)
/* f073e64: 00808825 */ move $s1,$a0
/* f073e68: 19c00ca4 */ blez $t6,.PB0f0770fc
/* f073e6c: 8c920014 */ lw $s2,0x14($a0)
/* f073e70: 908f0003 */ lbu $t7,0x3($a0)
/* f073e74: 24010008 */ li $at,0x8
/* f073e78: 55e1000a */ bnel $t7,$at,.PB0f073ea4
/* f073e7c: 8e020000 */ lw $v0,0x0($s0)
/* f073e80: 9098005c */ lbu $t8,0x5c($a0)
/* f073e84: 24010058 */ li $at,0x58
/* f073e88: 57010006 */ bnel $t8,$at,.PB0f073ea4
/* f073e8c: 8e020000 */ lw $v0,0x0($s0)
/* f073e90: 0fc1cd90 */ jal rocketTickFbw
/* f073e94: 00000000 */ nop
/* f073e98: 10000c98 */ b .PB0f0770fc
/* f073e9c: afa205d8 */ sw $v0,0x5d8($sp)
/* f073ea0: 8e020000 */ lw $v0,0x0($s0)
.PB0f073ea4:
/* f073ea4: 2401cfff */ li $at,-12289
/* f073ea8: 30591000 */ andi $t9,$v0,0x1000
/* f073eac: 13200006 */ beqz $t9,.PB0f073ec8
/* f073eb0: 30492000 */ andi $t1,$v0,0x2000
/* f073eb4: 0009502b */ sltu $t2,$zero,$t1
/* f073eb8: afaa05d8 */ sw $t2,0x5d8($sp)
/* f073ebc: 00415824 */ and $t3,$v0,$at
/* f073ec0: 10000c8e */ b .PB0f0770fc
/* f073ec4: ae0b0000 */ sw $t3,0x0($s0)
.PB0f073ec8:
/* f073ec8: 8e2c0040 */ lw $t4,0x40($s1)
/* f073ecc: 3c01fffd */ lui $at,0xfffd
/* f073ed0: 3421ffff */ ori $at,$at,0xffff
/* f073ed4: 01816824 */ and $t5,$t4,$at
/* f073ed8: ae2d0040 */ sw $t5,0x40($s1)
/* f073edc: 8e0e0000 */ lw $t6,0x0($s0)
/* f073ee0: 02202025 */ move $a0,$s1
/* f073ee4: 02002825 */ move $a1,$s0
/* f073ee8: 31cf0080 */ andi $t7,$t6,0x80
/* f073eec: 11e00005 */ beqz $t7,.PB0f073f04
/* f073ef0: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f073ef4: 0fc1cf2c */ jal func0f073ae8
/* f073ef8: 27a705f4 */ addiu $a3,$sp,0x5f4
/* f073efc: 3c03800a */ lui $v1,0x800a
/* f073f00: 2463e4d0 */ addiu $v1,$v1,-6960
.PB0f073f04:
/* f073f04: c6440008 */ lwc1 $f4,0x8($s2)
/* f073f08: 2624001c */ addiu $a0,$s1,0x1c
/* f073f0c: 27a50504 */ addiu $a1,$sp,0x504
/* f073f10: e7a405dc */ swc1 $f4,0x5dc($sp)
/* f073f14: c646000c */ lwc1 $f6,0xc($s2)
/* f073f18: e7a605e0 */ swc1 $f6,0x5e0($sp)
/* f073f1c: c6480010 */ lwc1 $f8,0x10($s2)
/* f073f20: e7a805e4 */ swc1 $f8,0x5e4($sp)
/* f073f24: 8e0200b4 */ lw $v0,0xb4($s0)
/* f073f28: 58400005 */ blezl $v0,.PB0f073f40
/* f073f2c: 8e020000 */ lw $v0,0x0($s0)
/* f073f30: 8c780034 */ lw $t8,0x34($v1)
/* f073f34: 0058c823 */ subu $t9,$v0,$t8
/* f073f38: ae1900b4 */ sw $t9,0xb4($s0)
/* f073f3c: 8e020000 */ lw $v0,0x0($s0)
.PB0f073f40:
/* f073f40: 30490800 */ andi $t1,$v0,0x800
/* f073f44: 11200379 */ beqz $t1,.PB0f074d2c
/* f073f48: 304e0001 */ andi $t6,$v0,0x1
/* f073f4c: 0c0059e9 */ jal mtx3ToMtx4
/* f073f50: afa40074 */ sw $a0,0x74($sp)
/* f073f54: 26440008 */ addiu $a0,$s2,0x8
/* f073f58: afa40070 */ sw $a0,0x70($sp)
/* f073f5c: 0c005a09 */ jal mtx4SetTranslation
/* f073f60: 27a50504 */ addiu $a1,$sp,0x504
/* f073f64: 4480a000 */ mtc1 $zero,$f20
/* f073f68: c60000dc */ lwc1 $f0,0xdc($s0)
/* f073f6c: 3c01800a */ lui $at,0x800a
/* f073f70: 4600a03c */ c.lt.s $f20,$f0
/* f073f74: 00000000 */ nop
/* f073f78: 4502002c */ bc1fl .PB0f07402c
/* f073f7c: 4614003c */ c.lt.s $f0,$f20
/* f073f80: c60a00e0 */ lwc1 $f10,0xe0($s0)
/* f073f84: c424e51c */ lwc1 $f4,-0x1ae4($at)
/* f073f88: 3c013f80 */ lui $at,0x3f80
/* f073f8c: 46045182 */ mul.s $f6,$f10,$f4
/* f073f90: 46060201 */ sub.s $f8,$f0,$f6
/* f073f94: e60800dc */ swc1 $f8,0xdc($s0)
/* f073f98: c60a00dc */ lwc1 $f10,0xdc($s0)
/* f073f9c: 4614503c */ c.lt.s $f10,$f20
/* f073fa0: 00000000 */ nop
/* f073fa4: 45020004 */ bc1fl .PB0f073fb8
/* f073fa8: c61000e4 */ lwc1 $f16,0xe4($s0)
/* f073fac: 1000004b */ b .PB0f0740dc
/* f073fb0: e61400dc */ swc1 $f20,0xdc($s0)
/* f073fb4: c61000e4 */ lwc1 $f16,0xe4($s0)
.PB0f073fb8:
/* f073fb8: 44812000 */ mtc1 $at,$f4
/* f073fbc: 3c03800a */ lui $v1,0x800a
/* f073fc0: 4604803c */ c.lt.s $f16,$f4
/* f073fc4: 00000000 */ nop
/* f073fc8: 45020045 */ bc1fl .PB0f0740e0
/* f073fcc: c60e0004 */ lwc1 $f14,0x4($s0)
/* f073fd0: 8c63e508 */ lw $v1,-0x1af8($v1)
/* f073fd4: 00001025 */ move $v0,$zero
/* f073fd8: 58600041 */ blezl $v1,.PB0f0740e0
/* f073fdc: c60e0004 */ lwc1 $f14,0x4($s0)
/* f073fe0: c60200ec */ lwc1 $f2,0xec($s0)
/* f073fe4: c60000dc */ lwc1 $f0,0xdc($s0)
.PB0f073fe8:
/* f073fe8: 24420001 */ addiu $v0,$v0,0x1
/* f073fec: 4600103c */ c.lt.s $f2,$f0
/* f073ff0: 00000000 */ nop
/* f073ff4: 45020008 */ bc1fl .PB0f074018
/* f073ff8: 0043082a */ slt $at,$v0,$v1
/* f073ffc: 46020181 */ sub.s $f6,$f0,$f2
/* f074000: 3c03800a */ lui $v1,0x800a
/* f074004: 46103202 */ mul.s $f8,$f6,$f16
/* f074008: 46081280 */ add.s $f10,$f2,$f8
/* f07400c: e60a00dc */ swc1 $f10,0xdc($s0)
/* f074010: 8c63e508 */ lw $v1,-0x1af8($v1)
/* f074014: 0043082a */ slt $at,$v0,$v1
.PB0f074018:
/* f074018: 5420fff3 */ bnezl $at,.PB0f073fe8
/* f07401c: c60000dc */ lwc1 $f0,0xdc($s0)
/* f074020: 1000002f */ b .PB0f0740e0
/* f074024: c60e0004 */ lwc1 $f14,0x4($s0)
/* f074028: 4614003c */ c.lt.s $f0,$f20
.PB0f07402c:
/* f07402c: 3c04800a */ lui $a0,0x800a
/* f074030: 2484e4d0 */ addiu $a0,$a0,-6960
/* f074034: 4502002a */ bc1fl .PB0f0740e0
/* f074038: c60e0004 */ lwc1 $f14,0x4($s0)
/* f07403c: c60400e0 */ lwc1 $f4,0xe0($s0)
/* f074040: c486004c */ lwc1 $f6,0x4c($a0)
/* f074044: 3c013f80 */ lui $at,0x3f80
/* f074048: 46062202 */ mul.s $f8,$f4,$f6
/* f07404c: 46080280 */ add.s $f10,$f0,$f8
/* f074050: e60a00dc */ swc1 $f10,0xdc($s0)
/* f074054: c60400dc */ lwc1 $f4,0xdc($s0)
/* f074058: 4604a03c */ c.lt.s $f20,$f4
/* f07405c: 00000000 */ nop
/* f074060: 45020004 */ bc1fl .PB0f074074
/* f074064: c61000e4 */ lwc1 $f16,0xe4($s0)
/* f074068: 1000001c */ b .PB0f0740dc
/* f07406c: e61400dc */ swc1 $f20,0xdc($s0)
/* f074070: c61000e4 */ lwc1 $f16,0xe4($s0)
.PB0f074074:
/* f074074: 44813000 */ mtc1 $at,$f6
/* f074078: 00000000 */ nop
/* f07407c: 4606803c */ c.lt.s $f16,$f6
/* f074080: 00000000 */ nop
/* f074084: 45020016 */ bc1fl .PB0f0740e0
/* f074088: c60e0004 */ lwc1 $f14,0x4($s0)
/* f07408c: 8c830038 */ lw $v1,0x38($a0)
/* f074090: 00001025 */ move $v0,$zero
/* f074094: 58600012 */ blezl $v1,.PB0f0740e0
/* f074098: c60e0004 */ lwc1 $f14,0x4($s0)
/* f07409c: c60200ec */ lwc1 $f2,0xec($s0)
/* f0740a0: 46001307 */ neg.s $f12,$f2
/* f0740a4: c60000dc */ lwc1 $f0,0xdc($s0)
.PB0f0740a8:
/* f0740a8: 24420001 */ addiu $v0,$v0,0x1
/* f0740ac: 460c003c */ c.lt.s $f0,$f12
/* f0740b0: 00000000 */ nop
/* f0740b4: 45020007 */ bc1fl .PB0f0740d4
/* f0740b8: 0043082a */ slt $at,$v0,$v1
/* f0740bc: 46020200 */ add.s $f8,$f0,$f2
/* f0740c0: 46104282 */ mul.s $f10,$f8,$f16
/* f0740c4: 460a6100 */ add.s $f4,$f12,$f10
/* f0740c8: e60400dc */ swc1 $f4,0xdc($s0)
/* f0740cc: 8c830038 */ lw $v1,0x38($a0)
/* f0740d0: 0043082a */ slt $at,$v0,$v1
.PB0f0740d4:
/* f0740d4: 5420fff4 */ bnezl $at,.PB0f0740a8
/* f0740d8: c60000dc */ lwc1 $f0,0xdc($s0)
.PB0f0740dc:
/* f0740dc: c60e0004 */ lwc1 $f14,0x4($s0)
.PB0f0740e0:
/* f0740e0: 460ea032 */ c.eq.s $f20,$f14
/* f0740e4: 00000000 */ nop
/* f0740e8: 45020007 */ bc1fl .PB0f074108
/* f0740ec: c6080098 */ lwc1 $f8,0x98($s0)
/* f0740f0: c606000c */ lwc1 $f6,0xc($s0)
/* f0740f4: 4606a032 */ c.eq.s $f20,$f6
/* f0740f8: 00000000 */ nop
/* f0740fc: 45030061 */ bc1tl .PB0f074284
/* f074100: 8e040088 */ lw $a0,0x88($s0)
/* f074104: c6080098 */ lwc1 $f8,0x98($s0)
.PB0f074108:
/* f074108: 4608a03c */ c.lt.s $f20,$f8
/* f07410c: 00000000 */ nop
/* f074110: 4502005c */ bc1fl .PB0f074284
/* f074114: 8e040088 */ lw $a0,0x88($s0)
/* f074118: c602000c */ lwc1 $f2,0xc($s0)
/* f07411c: 46021282 */ mul.s $f10,$f2,$f2
/* f074120: 00000000 */ nop
/* f074124: 460e7102 */ mul.s $f4,$f14,$f14
/* f074128: 0c012ae4 */ jal sqrtf
/* f07412c: 46045300 */ add.s $f12,$f10,$f4
/* f074130: 4600a03c */ c.lt.s $f20,$f0
/* f074134: 3c03800a */ lui $v1,0x800a
/* f074138: 2463e4d0 */ addiu $v1,$v1,-6960
/* f07413c: 4502004f */ bc1fl .PB0f07427c
/* f074140: e6140004 */ swc1 $f20,0x4($s0)
/* f074144: c6060098 */ lwc1 $f6,0x98($s0)
/* f074148: c468004c */ lwc1 $f8,0x4c($v1)
/* f07414c: 3c013f80 */ lui $at,0x3f80
/* f074150: 44812000 */ mtc1 $at,$f4
/* f074154: 46083282 */ mul.s $f10,$f6,$f8
/* f074158: 46005303 */ div.s $f12,$f10,$f0
/* f07415c: 460c203e */ c.le.s $f4,$f12
/* f074160: 00000000 */ nop
/* f074164: 45020005 */ bc1fl .PB0f07417c
/* f074168: c60e0004 */ lwc1 $f14,0x4($s0)
/* f07416c: e6140004 */ swc1 $f20,0x4($s0)
/* f074170: 10000043 */ b .PB0f074280
/* f074174: e614000c */ swc1 $f20,0xc($s0)
/* f074178: c60e0004 */ lwc1 $f14,0x4($s0)
.PB0f07417c:
/* f07417c: c602000c */ lwc1 $f2,0xc($s0)
/* f074180: 3c013f80 */ lui $at,0x3f80
/* f074184: 460c7182 */ mul.s $f6,$f14,$f12
/* f074188: c61000e4 */ lwc1 $f16,0xe4($s0)
/* f07418c: 460c1282 */ mul.s $f10,$f2,$f12
/* f074190: 46067201 */ sub.s $f8,$f14,$f6
/* f074194: 44813000 */ mtc1 $at,$f6
/* f074198: 460a1101 */ sub.s $f4,$f2,$f10
/* f07419c: e6080004 */ swc1 $f8,0x4($s0)
/* f0741a0: 4606803c */ c.lt.s $f16,$f6
/* f0741a4: e604000c */ swc1 $f4,0xc($s0)
/* f0741a8: 45020036 */ bc1fl .PB0f074284
/* f0741ac: 8e040088 */ lw $a0,0x88($s0)
/* f0741b0: 8c6a0038 */ lw $t2,0x38($v1)
/* f0741b4: 00001025 */ move $v0,$zero
/* f0741b8: 59400032 */ blezl $t2,.PB0f074284
/* f0741bc: 8e040088 */ lw $a0,0x88($s0)
/* f0741c0: c60c00f0 */ lwc1 $f12,0xf0($s0)
/* f0741c4: c60e0004 */ lwc1 $f14,0x4($s0)
.PB0f0741c8:
/* f0741c8: 460e603c */ c.lt.s $f12,$f14
/* f0741cc: 00000000 */ nop
/* f0741d0: 45020007 */ bc1fl .PB0f0741f0
/* f0741d4: 46006007 */ neg.s $f0,$f12
/* f0741d8: 460c7201 */ sub.s $f8,$f14,$f12
/* f0741dc: 46104282 */ mul.s $f10,$f8,$f16
/* f0741e0: 460c5100 */ add.s $f4,$f10,$f12
/* f0741e4: 1000000a */ b .PB0f074210
/* f0741e8: e6040004 */ swc1 $f4,0x4($s0)
/* f0741ec: 46006007 */ neg.s $f0,$f12
.PB0f0741f0:
/* f0741f0: 4600703c */ c.lt.s $f14,$f0
/* f0741f4: 00000000 */ nop
/* f0741f8: 45020006 */ bc1fl .PB0f074214
/* f0741fc: c602000c */ lwc1 $f2,0xc($s0)
/* f074200: 460c7180 */ add.s $f6,$f14,$f12
/* f074204: 46103202 */ mul.s $f8,$f6,$f16
/* f074208: 46004280 */ add.s $f10,$f8,$f0
/* f07420c: e60a0004 */ swc1 $f10,0x4($s0)
.PB0f074210:
/* f074210: c602000c */ lwc1 $f2,0xc($s0)
.PB0f074214:
/* f074214: 4602603c */ c.lt.s $f12,$f2
/* f074218: 00000000 */ nop
/* f07421c: 45020007 */ bc1fl .PB0f07423c
/* f074220: 46006007 */ neg.s $f0,$f12
/* f074224: 460c1101 */ sub.s $f4,$f2,$f12
/* f074228: 46102182 */ mul.s $f6,$f4,$f16
/* f07422c: 460c3200 */ add.s $f8,$f6,$f12
/* f074230: 1000000a */ b .PB0f07425c
/* f074234: e608000c */ swc1 $f8,0xc($s0)
/* f074238: 46006007 */ neg.s $f0,$f12
.PB0f07423c:
/* f07423c: 4600103c */ c.lt.s $f2,$f0
/* f074240: 00000000 */ nop
/* f074244: 45020006 */ bc1fl .PB0f074260
/* f074248: 8c6b0038 */ lw $t3,0x38($v1)
/* f07424c: 460c1280 */ add.s $f10,$f2,$f12
/* f074250: 46105102 */ mul.s $f4,$f10,$f16
/* f074254: 46002180 */ add.s $f6,$f4,$f0
/* f074258: e606000c */ swc1 $f6,0xc($s0)
.PB0f07425c:
/* f07425c: 8c6b0038 */ lw $t3,0x38($v1)
.PB0f074260:
/* f074260: 24420001 */ addiu $v0,$v0,0x1
/* f074264: 004b082a */ slt $at,$v0,$t3
/* f074268: 5420ffd7 */ bnezl $at,.PB0f0741c8
/* f07426c: c60e0004 */ lwc1 $f14,0x4($s0)
/* f074270: 10000004 */ b .PB0f074284
/* f074274: 8e040088 */ lw $a0,0x88($s0)
/* f074278: e6140004 */ swc1 $f20,0x4($s0)
.PB0f07427c:
/* f07427c: e614000c */ swc1 $f20,0xc($s0)
.PB0f074280:
/* f074280: 8e040088 */ lw $a0,0x88($s0)
.PB0f074284:
/* f074284: 50800004 */ beqzl $a0,.PB0f074298
/* f074288: 86240006 */ lh $a0,0x6($s1)
/* f07428c: 0fc190d6 */ jal propSetPerimEnabled
/* f074290: 00002825 */ move $a1,$zero
/* f074294: 86240006 */ lh $a0,0x6($s1)
.PB0f074298:
/* f074298: 288c0000 */ slti $t4,$a0,0x0
/* f07429c: 398c0001 */ xori $t4,$t4,0x1
/* f0742a0: 11800007 */ beqz $t4,.PB0f0742c0
/* f0742a4: afac0088 */ sw $t4,0x88($sp)
/* f0742a8: 8e2e0010 */ lw $t6,0x10($s1)
/* f0742ac: 3c010100 */ lui $at,0x100
/* f0742b0: 34210002 */ ori $at,$at,0x2
/* f0742b4: 01c17824 */ and $t7,$t6,$at
/* f0742b8: 2df80001 */ sltiu $t8,$t7,0x1
/* f0742bc: afb80088 */ sw $t8,0x88($sp)
.PB0f0742c0:
/* f0742c0: 8fb90088 */ lw $t9,0x88($sp)
/* f0742c4: 1320003b */ beqz $t9,.PB0f0743b4
/* f0742c8: 24050002 */ li $a1,0x2
/* f0742cc: 0fc458d4 */ jal padUnpack
/* f0742d0: 27a60430 */ addiu $a2,$sp,0x430
/* f0742d4: 3c014348 */ lui $at,0x4348
/* f0742d8: 44811000 */ mtc1 $at,$f2
/* f0742dc: 8e290010 */ lw $t1,0x10($s1)
/* f0742e0: 3c014396 */ lui $at,0x4396
/* f0742e4: 44816000 */ mtc1 $at,$f12
/* f0742e8: 00095200 */ sll $t2,$t1,0x8
/* f0742ec: 46001406 */ mov.s $f16,$f2
/* f0742f0: 05410006 */ bgez $t2,.PB0f07430c
/* f0742f4: 46006386 */ mov.s $f14,$f12
/* f0742f8: 3c01442f */ lui $at,0x442f
/* f0742fc: 44810000 */ mtc1 $at,$f0
/* f074300: 00000000 */ nop
/* f074304: 46001400 */ add.s $f16,$f2,$f0
/* f074308: 46006380 */ add.s $f14,$f12,$f0
.PB0f07430c:
/* f07430c: 862b0004 */ lh $t3,0x4($s1)
/* f074310: 240101a8 */ li $at,0x1a8
/* f074314: c7aa0430 */ lwc1 $f10,0x430($sp)
/* f074318: 15610006 */ bne $t3,$at,.PB0f074334
/* f07431c: 3c0141a0 */ lui $at,0x41a0
/* f074320: 44810000 */ mtc1 $at,$f0
/* f074324: 3c014248 */ lui $at,0x4248
/* f074328: 44814000 */ mtc1 $at,$f8
/* f07432c: 46007380 */ add.s $f14,$f14,$f0
/* f074330: 46088400 */ add.s $f16,$f16,$f8
.PB0f074334:
/* f074334: c6440008 */ lwc1 $f4,0x8($s2)
/* f074338: c7a60438 */ lwc1 $f6,0x438($sp)
/* f07433c: c6480010 */ lwc1 $f8,0x10($s2)
/* f074340: 46045001 */ sub.s $f0,$f10,$f4
/* f074344: e7b0041c */ swc1 $f16,0x41c($sp)
/* f074348: e7ae0418 */ swc1 $f14,0x418($sp)
/* f07434c: 46083081 */ sub.s $f2,$f6,$f8
/* f074350: 46000282 */ mul.s $f10,$f0,$f0
/* f074354: 00000000 */ nop
/* f074358: 46021102 */ mul.s $f4,$f2,$f2
/* f07435c: 0c012ae4 */ jal sqrtf
/* f074360: 46045300 */ add.s $f12,$f10,$f4
/* f074364: c7a60418 */ lwc1 $f6,0x418($sp)
/* f074368: c7a8041c */ lwc1 $f8,0x41c($sp)
/* f07436c: 4600303c */ c.lt.s $f6,$f0
/* f074370: 00000000 */ nop
/* f074374: 45020004 */ bc1fl .PB0f074388
/* f074378: 4600403c */ c.lt.s $f8,$f0
/* f07437c: 1000000d */ b .PB0f0743b4
/* f074380: e61400dc */ swc1 $f20,0xdc($s0)
/* f074384: 4600403c */ c.lt.s $f8,$f0
.PB0f074388:
/* f074388: c7aa0418 */ lwc1 $f10,0x418($sp)
/* f07438c: 3c017f1b */ lui $at,0x7f1b
/* f074390: 45000008 */ bc1f .PB0f0743b4
/* f074394: 00000000 */ nop
/* f074398: 46005101 */ sub.s $f4,$f10,$f0
/* f07439c: c426c0c0 */ lwc1 $f6,-0x3f40($at)
/* f0743a0: c60a00dc */ lwc1 $f10,0xdc($s0)
/* f0743a4: 46062202 */ mul.s $f8,$f4,$f6
/* f0743a8: 00000000 */ nop
/* f0743ac: 46085102 */ mul.s $f4,$f10,$f8
/* f0743b0: e60400dc */ swc1 $f4,0xdc($s0)
.PB0f0743b4:
/* f0743b4: 3c01800a */ lui $at,0x800a
/* f0743b8: c42ae51c */ lwc1 $f10,-0x1ae4($at)
/* f0743bc: c60600dc */ lwc1 $f6,0xdc($s0)
/* f0743c0: 460a3002 */ mul.s $f0,$f6,$f10
/* f0743c4: 46140032 */ c.eq.s $f0,$f20
/* f0743c8: 00000000 */ nop
/* f0743cc: 4501001c */ bc1t .PB0f074440
/* f0743d0: 3c0c8007 */ lui $t4,0x8007
/* f0743d4: 258cb258 */ addiu $t4,$t4,-19880
/* f0743d8: 8d810000 */ lw $at,0x0($t4)
/* f0743dc: 27a50404 */ addiu $a1,$sp,0x404
/* f0743e0: 44060000 */ mfc1 $a2,$f0
/* f0743e4: aca10000 */ sw $at,0x0($a1)
/* f0743e8: 8d8e0004 */ lw $t6,0x4($t4)
/* f0743ec: 02202025 */ move $a0,$s1
/* f0743f0: 24070001 */ li $a3,0x1
/* f0743f4: acae0004 */ sw $t6,0x4($a1)
/* f0743f8: 8d810008 */ lw $at,0x8($t4)
/* f0743fc: aca10008 */ sw $at,0x8($a1)
/* f074400: 0fc1c8c6 */ jal func0f072144
/* f074404: e7a005a8 */ swc1 $f0,0x5a8($sp)
/* f074408: 2401ffff */ li $at,-1
/* f07440c: 1041000c */ beq $v0,$at,.PB0f074440
/* f074410: c7a005a8 */ lwc1 $f0,0x5a8($sp)
/* f074414: 1440000a */ bnez $v0,.PB0f074440
/* f074418: 00000000 */ nop
/* f07441c: c60800dc */ lwc1 $f8,0xdc($s0)
/* f074420: c606008c */ lwc1 $f6,0x8c($s0)
/* f074424: 44060000 */ mfc1 $a2,$f0
/* f074428: 46004107 */ neg.s $f4,$f8
/* f07442c: 02202025 */ move $a0,$s1
/* f074430: 46062282 */ mul.s $f10,$f4,$f6
/* f074434: 27a50404 */ addiu $a1,$sp,0x404
/* f074438: 0fc1ca6a */ jal objCollide
/* f07443c: e60a00dc */ swc1 $f10,0xdc($s0)
.PB0f074440:
/* f074440: 3c01800a */ lui $at,0x800a
/* f074444: c422e51c */ lwc1 $f2,-0x1ae4($at)
/* f074448: c6080004 */ lwc1 $f8,0x4($s0)
/* f07444c: e7b405a0 */ swc1 $f20,0x5a0($sp)
/* f074450: 8faf0088 */ lw $t7,0x88($sp)
/* f074454: 46024102 */ mul.s $f4,$f8,$f2
/* f074458: e7a4059c */ swc1 $f4,0x59c($sp)
/* f07445c: c606000c */ lwc1 $f6,0xc($s0)
/* f074460: 46023282 */ mul.s $f10,$f6,$f2
/* f074464: 11e00031 */ beqz $t7,.PB0f07452c
/* f074468: e7aa05a4 */ swc1 $f10,0x5a4($sp)
/* f07446c: c7a80430 */ lwc1 $f8,0x430($sp)
/* f074470: c6440008 */ lwc1 $f4,0x8($s2)
/* f074474: c7aa059c */ lwc1 $f10,0x59c($sp)
/* f074478: 46044181 */ sub.s $f6,$f8,$f4
/* f07447c: c6440010 */ lwc1 $f4,0x10($s2)
/* f074480: c7a80438 */ lwc1 $f8,0x438($sp)
/* f074484: 460a3001 */ sub.s $f0,$f6,$f10
/* f074488: c7aa05a4 */ lwc1 $f10,0x5a4($sp)
/* f07448c: 46044181 */ sub.s $f6,$f8,$f4
/* f074490: 46000202 */ mul.s $f8,$f0,$f0
/* f074494: 460a3081 */ sub.s $f2,$f6,$f10
/* f074498: 46021102 */ mul.s $f4,$f2,$f2
/* f07449c: 0c012ae4 */ jal sqrtf
/* f0744a0: 46044300 */ add.s $f12,$f8,$f4
/* f0744a4: c7ac0418 */ lwc1 $f12,0x418($sp)
/* f0744a8: c7a6041c */ lwc1 $f6,0x41c($sp)
/* f0744ac: 4600603c */ c.lt.s $f12,$f0
/* f0744b0: 00000000 */ nop
/* f0744b4: 45020009 */ bc1fl .PB0f0744dc
/* f0744b8: 4600303c */ c.lt.s $f6,$f0
/* f0744bc: e7b405a4 */ swc1 $f20,0x5a4($sp)
/* f0744c0: c7a005a4 */ lwc1 $f0,0x5a4($sp)
/* f0744c4: e7a0059c */ swc1 $f0,0x59c($sp)
/* f0744c8: e6000004 */ swc1 $f0,0x4($s0)
/* f0744cc: e600000c */ swc1 $f0,0xc($s0)
/* f0744d0: 10000016 */ b .PB0f07452c
/* f0744d4: e60000dc */ swc1 $f0,0xdc($s0)
/* f0744d8: 4600303c */ c.lt.s $f6,$f0
.PB0f0744dc:
/* f0744dc: 3c017f1b */ lui $at,0x7f1b
/* f0744e0: 45020013 */ bc1fl .PB0f074530
/* f0744e4: 4406a000 */ mfc1 $a2,$f20
/* f0744e8: 46006281 */ sub.s $f10,$f12,$f0
/* f0744ec: c428c0c4 */ lwc1 $f8,-0x3f3c($at)
/* f0744f0: c6040004 */ lwc1 $f4,0x4($s0)
/* f0744f4: 46085082 */ mul.s $f2,$f10,$f8
/* f0744f8: c60a000c */ lwc1 $f10,0xc($s0)
/* f0744fc: 46022182 */ mul.s $f6,$f4,$f2
/* f074500: 00000000 */ nop
/* f074504: 46025202 */ mul.s $f8,$f10,$f2
/* f074508: e6060004 */ swc1 $f6,0x4($s0)
/* f07450c: e608000c */ swc1 $f8,0xc($s0)
/* f074510: c7a4059c */ lwc1 $f4,0x59c($sp)
/* f074514: c7aa05a4 */ lwc1 $f10,0x5a4($sp)
/* f074518: 46022182 */ mul.s $f6,$f4,$f2
/* f07451c: 00000000 */ nop
/* f074520: 46025202 */ mul.s $f8,$f10,$f2
/* f074524: e7a6059c */ swc1 $f6,0x59c($sp)
/* f074528: e7a805a4 */ swc1 $f8,0x5a4($sp)
.PB0f07452c:
/* f07452c: 4406a000 */ mfc1 $a2,$f20
.PB0f074530:
/* f074530: 02202025 */ move $a0,$s1
/* f074534: 27a5059c */ addiu $a1,$sp,0x59c
/* f074538: 0fc1c8c6 */ jal func0f072144
/* f07453c: 24070001 */ li $a3,0x1
/* f074540: 144001ae */ bnez $v0,.PB0f074bfc
/* f074544: afa20600 */ sw $v0,0x600($sp)
/* f074548: 4406a000 */ mfc1 $a2,$f20
/* f07454c: 02202025 */ move $a0,$s1
/* f074550: 0fc1ca6a */ jal objCollide
/* f074554: 27a5059c */ addiu $a1,$sp,0x59c
/* f074558: c604008c */ lwc1 $f4,0x8c($s0)
/* f07455c: 27a403d0 */ addiu $a0,$sp,0x3d0
/* f074560: 27a503c4 */ addiu $a1,$sp,0x3c4
/* f074564: 46040402 */ mul.s $f16,$f0,$f4
/* f074568: 4610a03c */ c.lt.s $f20,$f16
/* f07456c: 00000000 */ nop
/* f074570: 450201a3 */ bc1fl .PB0f074c00
/* f074574: 8fab0600 */ lw $t3,0x600($sp)
/* f074578: 0c009649 */ jal cd00025364
/* f07457c: e7b0058c */ swc1 $f16,0x58c($sp)
/* f074580: 1040000e */ beqz $v0,.PB0f0745bc
/* f074584: c7b0058c */ lwc1 $f16,0x58c($sp)
/* f074588: c7a603c4 */ lwc1 $f6,0x3c4($sp)
/* f07458c: c7aa03d0 */ lwc1 $f10,0x3d0($sp)
/* f074590: c7a403c8 */ lwc1 $f4,0x3c8($sp)
/* f074594: 460a3201 */ sub.s $f8,$f6,$f10
/* f074598: c7a603d4 */ lwc1 $f6,0x3d4($sp)
/* f07459c: 46062281 */ sub.s $f10,$f4,$f6
/* f0745a0: e7a803c4 */ swc1 $f8,0x3c4($sp)
/* f0745a4: c7a803cc */ lwc1 $f8,0x3cc($sp)
/* f0745a8: c7a403d8 */ lwc1 $f4,0x3d8($sp)
/* f0745ac: e7aa03c8 */ swc1 $f10,0x3c8($sp)
/* f0745b0: 46044181 */ sub.s $f6,$f8,$f4
/* f0745b4: 10000020 */ b .PB0f074638
/* f0745b8: e7a603cc */ swc1 $f6,0x3cc($sp)
.PB0f0745bc:
/* f0745bc: 3c077f1b */ lui $a3,0x7f1b
/* f0745c0: 24e7bcac */ addiu $a3,$a3,-17236
/* f0745c4: 27a403d0 */ addiu $a0,$sp,0x3d0
/* f0745c8: 27a503c4 */ addiu $a1,$sp,0x3c4
/* f0745cc: 240620a8 */ li $a2,0x20a8
/* f0745d0: 0c009503 */ jal cd00024e4c
/* f0745d4: e7b0058c */ swc1 $f16,0x58c($sp)
/* f0745d8: c7aa03d0 */ lwc1 $f10,0x3d0($sp)
/* f0745dc: c7a803c4 */ lwc1 $f8,0x3c4($sp)
/* f0745e0: c7a603d4 */ lwc1 $f6,0x3d4($sp)
/* f0745e4: c7b0058c */ lwc1 $f16,0x58c($sp)
/* f0745e8: 46085101 */ sub.s $f4,$f10,$f8
/* f0745ec: c7aa03c8 */ lwc1 $f10,0x3c8($sp)
/* f0745f0: 460a3201 */ sub.s $f8,$f6,$f10
/* f0745f4: e7a403d0 */ swc1 $f4,0x3d0($sp)
/* f0745f8: c7a403d8 */ lwc1 $f4,0x3d8($sp)
/* f0745fc: c7a603cc */ lwc1 $f6,0x3cc($sp)
/* f074600: e7a803d4 */ swc1 $f8,0x3d4($sp)
/* f074604: e7a803c8 */ swc1 $f8,0x3c8($sp)
/* f074608: 46062281 */ sub.s $f10,$f4,$f6
/* f07460c: c7a603d0 */ lwc1 $f6,0x3d0($sp)
/* f074610: 46005107 */ neg.s $f4,$f10
/* f074614: e7aa03d8 */ swc1 $f10,0x3d8($sp)
/* f074618: e7a403c4 */ swc1 $f4,0x3c4($sp)
/* f07461c: e7a603cc */ swc1 $f6,0x3cc($sp)
/* f074620: c64a0008 */ lwc1 $f10,0x8($s2)
/* f074624: e7aa03d0 */ swc1 $f10,0x3d0($sp)
/* f074628: c644000c */ lwc1 $f4,0xc($s2)
/* f07462c: e7a403d4 */ swc1 $f4,0x3d4($sp)
/* f074630: c6480010 */ lwc1 $f8,0x10($s2)
/* f074634: e7a803d8 */ swc1 $f8,0x3d8($sp)
.PB0f074638:
/* f074638: 27a403d0 */ addiu $a0,$sp,0x3d0
/* f07463c: 27a503c4 */ addiu $a1,$sp,0x3c4
/* f074640: 27a603b8 */ addiu $a2,$sp,0x3b8
/* f074644: 0fc0b972 */ jal func0f02e4f8
/* f074648: e7b0058c */ swc1 $f16,0x58c($sp)
/* f07464c: c6460008 */ lwc1 $f6,0x8($s2)
/* f074650: c7aa05dc */ lwc1 $f10,0x5dc($sp)
/* f074654: e7b403b0 */ swc1 $f20,0x3b0($sp)
/* f074658: 3c017f1b */ lui $at,0x7f1b
/* f07465c: 460a3101 */ sub.s $f4,$f6,$f10
/* f074660: c7a605e4 */ lwc1 $f6,0x5e4($sp)
/* f074664: c7b0058c */ lwc1 $f16,0x58c($sp)
/* f074668: e7a403ac */ swc1 $f4,0x3ac($sp)
/* f07466c: c6480010 */ lwc1 $f8,0x10($s2)
/* f074670: c7a403b8 */ lwc1 $f4,0x3b8($sp)
/* f074674: 46064281 */ sub.s $f10,$f8,$f6
/* f074678: e7aa03b4 */ swc1 $f10,0x3b4($sp)
/* f07467c: c6480008 */ lwc1 $f8,0x8($s2)
/* f074680: c7aa03c0 */ lwc1 $f10,0x3c0($sp)
/* f074684: 46082181 */ sub.s $f6,$f4,$f8
/* f074688: e7a603b8 */ swc1 $f6,0x3b8($sp)
/* f07468c: c6440010 */ lwc1 $f4,0x10($s2)
/* f074690: 46045201 */ sub.s $f8,$f10,$f4
/* f074694: c7aa03ac */ lwc1 $f10,0x3ac($sp)
/* f074698: 46085102 */ mul.s $f4,$f10,$f8
/* f07469c: e7a803c0 */ swc1 $f8,0x3c0($sp)
/* f0746a0: c7a803b4 */ lwc1 $f8,0x3b4($sp)
/* f0746a4: 46003287 */ neg.s $f10,$f6
/* f0746a8: c60200ec */ lwc1 $f2,0xec($s0)
/* f0746ac: 46085182 */ mul.s $f6,$f10,$f8
/* f0746b0: c428c0c8 */ lwc1 $f8,-0x3f38($at)
/* f0746b4: 46062280 */ add.s $f10,$f4,$f6
/* f0746b8: 46085382 */ mul.s $f14,$f10,$f8
/* f0746bc: 460e103c */ c.lt.s $f2,$f14
/* f0746c0: 46007006 */ mov.s $f0,$f14
/* f0746c4: 45020004 */ bc1fl .PB0f0746d8
/* f0746c8: 46001307 */ neg.s $f12,$f2
/* f0746cc: 10000007 */ b .PB0f0746ec
/* f0746d0: 46001006 */ mov.s $f0,$f2
/* f0746d4: 46001307 */ neg.s $f12,$f2
.PB0f0746d8:
/* f0746d8: 460c703c */ c.lt.s $f14,$f12
/* f0746dc: 00000000 */ nop
/* f0746e0: 45020003 */ bc1fl .PB0f0746f0
/* f0746e4: c60400dc */ lwc1 $f4,0xdc($s0)
/* f0746e8: 46006006 */ mov.s $f0,$f12
.PB0f0746ec:
/* f0746ec: c60400dc */ lwc1 $f4,0xdc($s0)
.PB0f0746f0:
/* f0746f0: 3c077f1b */ lui $a3,0x7f1b
/* f0746f4: 24e7bcb8 */ addiu $a3,$a3,-17224
/* f0746f8: 46002180 */ add.s $f6,$f4,$f0
/* f0746fc: 27a403e8 */ addiu $a0,$sp,0x3e8
/* f074700: 27a503dc */ addiu $a1,$sp,0x3dc
/* f074704: 240620ce */ li $a2,0x20ce
/* f074708: e60600dc */ swc1 $f6,0xdc($s0)
/* f07470c: 0c009503 */ jal cd00024e4c
/* f074710: e7b0058c */ swc1 $f16,0x58c($sp)
/* f074714: c7aa03e4 */ lwc1 $f10,0x3e4($sp)
/* f074718: c7a803f0 */ lwc1 $f8,0x3f0($sp)
/* f07471c: c7ae03e8 */ lwc1 $f14,0x3e8($sp)
/* f074720: c7b203dc */ lwc1 $f18,0x3dc($sp)
/* f074724: 46085001 */ sub.s $f0,$f10,$f8
/* f074728: c7b0058c */ lwc1 $f16,0x58c($sp)
/* f07472c: e7b403f8 */ swc1 $f20,0x3f8($sp)
/* f074730: 46127101 */ sub.s $f4,$f14,$f18
/* f074734: e7a003f4 */ swc1 $f0,0x3f4($sp)
/* f074738: 27a403f4 */ addiu $a0,$sp,0x3f4
/* f07473c: 4600a032 */ c.eq.s $f20,$f0
/* f074740: e7a403fc */ swc1 $f4,0x3fc($sp)
/* f074744: c7a603fc */ lwc1 $f6,0x3fc($sp)
/* f074748: 27a503f8 */ addiu $a1,$sp,0x3f8
/* f07474c: 45000005 */ bc1f .PB0f074764
/* f074750: 27a603fc */ addiu $a2,$sp,0x3fc
/* f074754: 4606a032 */ c.eq.s $f20,$f6
/* f074758: 3c013f80 */ lui $at,0x3f80
/* f07475c: 45030006 */ bc1tl .PB0f074778
/* f074760: 44815000 */ mtc1 $at,$f10
.PB0f074764:
/* f074764: 0c0011d8 */ jal guNormalize
/* f074768: e7b0058c */ swc1 $f16,0x58c($sp)
/* f07476c: 10000004 */ b .PB0f074780
/* f074770: c7b0058c */ lwc1 $f16,0x58c($sp)
/* f074774: 44815000 */ mtc1 $at,$f10
.PB0f074778:
/* f074778: 00000000 */ nop
/* f07477c: e7aa03fc */ swc1 $f10,0x3fc($sp)
.PB0f074780:
/* f074780: c7a803fc */ lwc1 $f8,0x3fc($sp)
/* f074784: c604000c */ lwc1 $f4,0xc($s0)
/* f074788: c60e0004 */ lwc1 $f14,0x4($s0)
/* f07478c: c7aa03f4 */ lwc1 $f10,0x3f4($sp)
/* f074790: 46044182 */ mul.s $f6,$f8,$f4
/* f074794: 3c013f80 */ lui $at,0x3f80
/* f074798: e7b40594 */ swc1 $f20,0x594($sp)
/* f07479c: 460a7102 */ mul.s $f4,$f14,$f10
/* f0747a0: 8fb80088 */ lw $t8,0x88($sp)
/* f0747a4: 46043000 */ add.s $f0,$f6,$f4
/* f0747a8: 44813000 */ mtc1 $at,$f6
/* f0747ac: 3c01800a */ lui $at,0x800a
/* f0747b0: c422e51c */ lwc1 $f2,-0x1ae4($at)
/* f0747b4: 46068100 */ add.s $f4,$f16,$f6
/* f0747b8: 46002187 */ neg.s $f6,$f4
/* f0747bc: 46060002 */ mul.s $f0,$f0,$f6
/* f0747c0: 00000000 */ nop
/* f0747c4: 46005102 */ mul.s $f4,$f10,$f0
/* f0747c8: 460e2180 */ add.s $f6,$f4,$f14
/* f0747cc: 46004282 */ mul.s $f10,$f8,$f0
/* f0747d0: e7a60590 */ swc1 $f6,0x590($sp)
/* f0747d4: c604000c */ lwc1 $f4,0xc($s0)
/* f0747d8: e7b405a0 */ swc1 $f20,0x5a0($sp)
/* f0747dc: 46045200 */ add.s $f8,$f10,$f4
/* f0747e0: 46023282 */ mul.s $f10,$f6,$f2
/* f0747e4: c7a60430 */ lwc1 $f6,0x430($sp)
/* f0747e8: 46024102 */ mul.s $f4,$f8,$f2
/* f0747ec: e7a80598 */ swc1 $f8,0x598($sp)
/* f0747f0: e7aa059c */ swc1 $f10,0x59c($sp)
/* f0747f4: 1300002f */ beqz $t8,.PB0f0748b4
/* f0747f8: e7a405a4 */ swc1 $f4,0x5a4($sp)
/* f0747fc: c6480008 */ lwc1 $f8,0x8($s2)
/* f074800: 46083181 */ sub.s $f6,$f6,$f8
/* f074804: c7a80438 */ lwc1 $f8,0x438($sp)
/* f074808: 460a3001 */ sub.s $f0,$f6,$f10
/* f07480c: c6460010 */ lwc1 $f6,0x10($s2)
/* f074810: 46064281 */ sub.s $f10,$f8,$f6
/* f074814: 46000202 */ mul.s $f8,$f0,$f0
/* f074818: 46045081 */ sub.s $f2,$f10,$f4
/* f07481c: 46021182 */ mul.s $f6,$f2,$f2
/* f074820: 0c012ae4 */ jal sqrtf
/* f074824: 46064300 */ add.s $f12,$f8,$f6
/* f074828: c7aa0418 */ lwc1 $f10,0x418($sp)
/* f07482c: c7a4041c */ lwc1 $f4,0x41c($sp)
/* f074830: 4600503c */ c.lt.s $f10,$f0
/* f074834: 00000000 */ nop
/* f074838: 45020009 */ bc1fl .PB0f074860
/* f07483c: 4600203c */ c.lt.s $f4,$f0
/* f074840: e7b405a4 */ swc1 $f20,0x5a4($sp)
/* f074844: c7a005a4 */ lwc1 $f0,0x5a4($sp)
/* f074848: e7a0059c */ swc1 $f0,0x59c($sp)
/* f07484c: e6000004 */ swc1 $f0,0x4($s0)
/* f074850: e600000c */ swc1 $f0,0xc($s0)
/* f074854: 10000017 */ b .PB0f0748b4
/* f074858: e60000dc */ swc1 $f0,0xdc($s0)
/* f07485c: 4600203c */ c.lt.s $f4,$f0
.PB0f074860:
/* f074860: c7a80418 */ lwc1 $f8,0x418($sp)
/* f074864: 3c017f1b */ lui $at,0x7f1b
/* f074868: 45020013 */ bc1fl .PB0f0748b8
/* f07486c: 4406a000 */ mfc1 $a2,$f20
/* f074870: 46004181 */ sub.s $f6,$f8,$f0
/* f074874: c42ac0cc */ lwc1 $f10,-0x3f34($at)
/* f074878: c6040004 */ lwc1 $f4,0x4($s0)
/* f07487c: 460a3082 */ mul.s $f2,$f6,$f10
/* f074880: c606000c */ lwc1 $f6,0xc($s0)
/* f074884: 46022202 */ mul.s $f8,$f4,$f2
/* f074888: 00000000 */ nop
/* f07488c: 46023282 */ mul.s $f10,$f6,$f2
/* f074890: e6080004 */ swc1 $f8,0x4($s0)
/* f074894: e60a000c */ swc1 $f10,0xc($s0)
/* f074898: c7a4059c */ lwc1 $f4,0x59c($sp)
/* f07489c: c7a605a4 */ lwc1 $f6,0x5a4($sp)
/* f0748a0: 46022202 */ mul.s $f8,$f4,$f2
/* f0748a4: 00000000 */ nop
/* f0748a8: 46023282 */ mul.s $f10,$f6,$f2
/* f0748ac: e7a8059c */ swc1 $f8,0x59c($sp)
/* f0748b0: e7aa05a4 */ swc1 $f10,0x5a4($sp)
.PB0f0748b4:
/* f0748b4: 4406a000 */ mfc1 $a2,$f20
.PB0f0748b8:
/* f0748b8: 02202025 */ move $a0,$s1
/* f0748bc: 27a5059c */ addiu $a1,$sp,0x59c
/* f0748c0: 0fc1c8c6 */ jal func0f072144
/* f0748c4: 24070001 */ li $a3,0x1
/* f0748c8: 144000c2 */ bnez $v0,.PB0f074bd4
/* f0748cc: afa20600 */ sw $v0,0x600($sp)
/* f0748d0: 4406a000 */ mfc1 $a2,$f20
/* f0748d4: 02202025 */ move $a0,$s1
/* f0748d8: 0fc1ca6a */ jal objCollide
/* f0748dc: 27a5059c */ addiu $a1,$sp,0x59c
/* f0748e0: c604008c */ lwc1 $f4,0x8c($s0)
/* f0748e4: c6080004 */ lwc1 $f8,0x4($s0)
/* f0748e8: e7b40594 */ swc1 $f20,0x594($sp)
/* f0748ec: 46040402 */ mul.s $f16,$f0,$f4
/* f0748f0: 46004187 */ neg.s $f6,$f8
/* f0748f4: 3c01800a */ lui $at,0x800a
/* f0748f8: c422e51c */ lwc1 $f2,-0x1ae4($at)
/* f0748fc: 8fb90088 */ lw $t9,0x88($sp)
/* f074900: 46103282 */ mul.s $f10,$f6,$f16
/* f074904: e7aa0590 */ swc1 $f10,0x590($sp)
/* f074908: c604000c */ lwc1 $f4,0xc($s0)
/* f07490c: e7b405a0 */ swc1 $f20,0x5a0($sp)
/* f074910: 46002207 */ neg.s $f8,$f4
/* f074914: 46104182 */ mul.s $f6,$f8,$f16
/* f074918: 00000000 */ nop
/* f07491c: 46025102 */ mul.s $f4,$f10,$f2
/* f074920: c7aa0430 */ lwc1 $f10,0x430($sp)
/* f074924: 46023202 */ mul.s $f8,$f6,$f2
/* f074928: e7a60598 */ swc1 $f6,0x598($sp)
/* f07492c: e7a4059c */ swc1 $f4,0x59c($sp)
/* f074930: 1320002f */ beqz $t9,.PB0f0749f0
/* f074934: e7a805a4 */ swc1 $f8,0x5a4($sp)
/* f074938: c6460008 */ lwc1 $f6,0x8($s2)
/* f07493c: 46065281 */ sub.s $f10,$f10,$f6
/* f074940: c7a60438 */ lwc1 $f6,0x438($sp)
/* f074944: 46045001 */ sub.s $f0,$f10,$f4
/* f074948: c64a0010 */ lwc1 $f10,0x10($s2)
/* f07494c: 460a3101 */ sub.s $f4,$f6,$f10
/* f074950: 46000182 */ mul.s $f6,$f0,$f0
/* f074954: 46082081 */ sub.s $f2,$f4,$f8
/* f074958: 46021282 */ mul.s $f10,$f2,$f2
/* f07495c: 0c012ae4 */ jal sqrtf
/* f074960: 460a3300 */ add.s $f12,$f6,$f10
/* f074964: c7a40418 */ lwc1 $f4,0x418($sp)
/* f074968: c7a8041c */ lwc1 $f8,0x41c($sp)
/* f07496c: 4600203c */ c.lt.s $f4,$f0
/* f074970: 00000000 */ nop
/* f074974: 45020009 */ bc1fl .PB0f07499c
/* f074978: 4600403c */ c.lt.s $f8,$f0
/* f07497c: e7b405a4 */ swc1 $f20,0x5a4($sp)
/* f074980: c7a005a4 */ lwc1 $f0,0x5a4($sp)
/* f074984: e7a0059c */ swc1 $f0,0x59c($sp)
/* f074988: e6000004 */ swc1 $f0,0x4($s0)
/* f07498c: e600000c */ swc1 $f0,0xc($s0)
/* f074990: 10000017 */ b .PB0f0749f0
/* f074994: e60000dc */ swc1 $f0,0xdc($s0)
/* f074998: 4600403c */ c.lt.s $f8,$f0
.PB0f07499c:
/* f07499c: c7a60418 */ lwc1 $f6,0x418($sp)
/* f0749a0: 3c017f1b */ lui $at,0x7f1b
/* f0749a4: 45020013 */ bc1fl .PB0f0749f4
/* f0749a8: 4406a000 */ mfc1 $a2,$f20
/* f0749ac: 46003281 */ sub.s $f10,$f6,$f0
/* f0749b0: c424c0d0 */ lwc1 $f4,-0x3f30($at)
/* f0749b4: c6080004 */ lwc1 $f8,0x4($s0)
/* f0749b8: 46045082 */ mul.s $f2,$f10,$f4
/* f0749bc: c60a000c */ lwc1 $f10,0xc($s0)
/* f0749c0: 46024182 */ mul.s $f6,$f8,$f2
/* f0749c4: 00000000 */ nop
/* f0749c8: 46025102 */ mul.s $f4,$f10,$f2
/* f0749cc: e6060004 */ swc1 $f6,0x4($s0)
/* f0749d0: e604000c */ swc1 $f4,0xc($s0)
/* f0749d4: c7a8059c */ lwc1 $f8,0x59c($sp)
/* f0749d8: c7aa05a4 */ lwc1 $f10,0x5a4($sp)
/* f0749dc: 46024182 */ mul.s $f6,$f8,$f2
/* f0749e0: 00000000 */ nop
/* f0749e4: 46025102 */ mul.s $f4,$f10,$f2
/* f0749e8: e7a6059c */ swc1 $f6,0x59c($sp)
/* f0749ec: e7a405a4 */ swc1 $f4,0x5a4($sp)
.PB0f0749f0:
/* f0749f0: 4406a000 */ mfc1 $a2,$f20
.PB0f0749f4:
/* f0749f4: 02202025 */ move $a0,$s1
/* f0749f8: 27a5059c */ addiu $a1,$sp,0x59c
/* f0749fc: 0fc1c8c6 */ jal func0f072144
/* f074a00: 24070001 */ li $a3,0x1
/* f074a04: 14400073 */ bnez $v0,.PB0f074bd4
/* f074a08: afa20600 */ sw $v0,0x600($sp)
/* f074a0c: 4406a000 */ mfc1 $a2,$f20
/* f074a10: 02202025 */ move $a0,$s1
/* f074a14: 0fc1ca6a */ jal objCollide
/* f074a18: 27a5059c */ addiu $a1,$sp,0x59c
/* f074a1c: c7ae03e8 */ lwc1 $f14,0x3e8($sp)
/* f074a20: c7b203dc */ lwc1 $f18,0x3dc($sp)
/* f074a24: c7a803f0 */ lwc1 $f8,0x3f0($sp)
/* f074a28: c7a603e4 */ lwc1 $f6,0x3e4($sp)
/* f074a2c: 46127032 */ c.eq.s $f14,$f18
/* f074a30: c7aa03e4 */ lwc1 $f10,0x3e4($sp)
/* f074a34: c7a403f0 */ lwc1 $f4,0x3f0($sp)
/* f074a38: 45020006 */ bc1fl .PB0f074a54
/* f074a3c: 46045081 */ sub.s $f2,$f10,$f4
/* f074a40: 46064032 */ c.eq.s $f8,$f6
/* f074a44: 00000000 */ nop
/* f074a48: 45030063 */ bc1tl .PB0f074bd8
/* f074a4c: 8faa0600 */ lw $t2,0x600($sp)
/* f074a50: 46045081 */ sub.s $f2,$f10,$f4
.PB0f074a54:
/* f074a54: 460e9001 */ sub.s $f0,$f18,$f14
/* f074a58: 46021202 */ mul.s $f8,$f2,$f2
/* f074a5c: e7a203a0 */ swc1 $f2,0x3a0($sp)
/* f074a60: 46000182 */ mul.s $f6,$f0,$f0
/* f074a64: e7a00398 */ swc1 $f0,0x398($sp)
/* f074a68: 0c012ae4 */ jal sqrtf
/* f074a6c: 46064300 */ add.s $f12,$f8,$f6
/* f074a70: 3c013f80 */ lui $at,0x3f80
/* f074a74: 44815000 */ mtc1 $at,$f10
/* f074a78: c7a40398 */ lwc1 $f4,0x398($sp)
/* f074a7c: c7a603a0 */ lwc1 $f6,0x3a0($sp)
/* f074a80: 46005303 */ div.s $f12,$f10,$f0
/* f074a84: 3c01800a */ lui $at,0x800a
/* f074a88: c422e51c */ lwc1 $f2,-0x1ae4($at)
/* f074a8c: 8fa90088 */ lw $t1,0x88($sp)
/* f074a90: 460c2202 */ mul.s $f8,$f4,$f12
/* f074a94: 00000000 */ nop
/* f074a98: 460c3282 */ mul.s $f10,$f6,$f12
/* f074a9c: e7a80398 */ swc1 $f8,0x398($sp)
/* f074aa0: e7aa03a0 */ swc1 $f10,0x3a0($sp)
/* f074aa4: c604000c */ lwc1 $f4,0xc($s0)
/* f074aa8: 46045182 */ mul.s $f6,$f10,$f4
/* f074aac: c6040004 */ lwc1 $f4,0x4($s0)
/* f074ab0: e7b40594 */ swc1 $f20,0x594($sp)
/* f074ab4: e7b405a0 */ swc1 $f20,0x5a0($sp)
/* f074ab8: 46082102 */ mul.s $f4,$f4,$f8
/* f074abc: 46043380 */ add.s $f14,$f6,$f4
/* f074ac0: 460e4182 */ mul.s $f6,$f8,$f14
/* f074ac4: 00000000 */ nop
/* f074ac8: 460e5102 */ mul.s $f4,$f10,$f14
/* f074acc: 00000000 */ nop
/* f074ad0: 46023202 */ mul.s $f8,$f6,$f2
/* f074ad4: e7a60590 */ swc1 $f6,0x590($sp)
/* f074ad8: c7a60430 */ lwc1 $f6,0x430($sp)
/* f074adc: 46022282 */ mul.s $f10,$f4,$f2
/* f074ae0: e7a40598 */ swc1 $f4,0x598($sp)
/* f074ae4: e7a8059c */ swc1 $f8,0x59c($sp)
/* f074ae8: 1120002f */ beqz $t1,.PB0f074ba8
/* f074aec: e7aa05a4 */ swc1 $f10,0x5a4($sp)
/* f074af0: c6440008 */ lwc1 $f4,0x8($s2)
/* f074af4: 46043181 */ sub.s $f6,$f6,$f4
/* f074af8: c7a40438 */ lwc1 $f4,0x438($sp)
/* f074afc: 46083001 */ sub.s $f0,$f6,$f8
/* f074b00: c6460010 */ lwc1 $f6,0x10($s2)
/* f074b04: 46062201 */ sub.s $f8,$f4,$f6
/* f074b08: 46000102 */ mul.s $f4,$f0,$f0
/* f074b0c: 460a4081 */ sub.s $f2,$f8,$f10
/* f074b10: 46021182 */ mul.s $f6,$f2,$f2
/* f074b14: 0c012ae4 */ jal sqrtf
/* f074b18: 46062300 */ add.s $f12,$f4,$f6
/* f074b1c: c7a80418 */ lwc1 $f8,0x418($sp)
/* f074b20: c7aa041c */ lwc1 $f10,0x41c($sp)
/* f074b24: 4600403c */ c.lt.s $f8,$f0
/* f074b28: 00000000 */ nop
/* f074b2c: 45020009 */ bc1fl .PB0f074b54
/* f074b30: 4600503c */ c.lt.s $f10,$f0
/* f074b34: e7b405a4 */ swc1 $f20,0x5a4($sp)
/* f074b38: c7a005a4 */ lwc1 $f0,0x5a4($sp)
/* f074b3c: e7a0059c */ swc1 $f0,0x59c($sp)
/* f074b40: e6000004 */ swc1 $f0,0x4($s0)
/* f074b44: e600000c */ swc1 $f0,0xc($s0)
/* f074b48: 10000017 */ b .PB0f074ba8
/* f074b4c: e60000dc */ swc1 $f0,0xdc($s0)
/* f074b50: 4600503c */ c.lt.s $f10,$f0
.PB0f074b54:
/* f074b54: c7a40418 */ lwc1 $f4,0x418($sp)
/* f074b58: 3c017f1b */ lui $at,0x7f1b
/* f074b5c: 45020013 */ bc1fl .PB0f074bac
/* f074b60: 4406a000 */ mfc1 $a2,$f20
/* f074b64: 46002181 */ sub.s $f6,$f4,$f0
/* f074b68: c428c0d4 */ lwc1 $f8,-0x3f2c($at)
/* f074b6c: c60a0004 */ lwc1 $f10,0x4($s0)
/* f074b70: 46083082 */ mul.s $f2,$f6,$f8
/* f074b74: c606000c */ lwc1 $f6,0xc($s0)
/* f074b78: 46025102 */ mul.s $f4,$f10,$f2
/* f074b7c: 00000000 */ nop
/* f074b80: 46023202 */ mul.s $f8,$f6,$f2
/* f074b84: e6040004 */ swc1 $f4,0x4($s0)
/* f074b88: e608000c */ swc1 $f8,0xc($s0)
/* f074b8c: c7aa059c */ lwc1 $f10,0x59c($sp)
/* f074b90: c7a605a4 */ lwc1 $f6,0x5a4($sp)
/* f074b94: 46025102 */ mul.s $f4,$f10,$f2
/* f074b98: 00000000 */ nop
/* f074b9c: 46023202 */ mul.s $f8,$f6,$f2
/* f074ba0: e7a4059c */ swc1 $f4,0x59c($sp)
/* f074ba4: e7a805a4 */ swc1 $f8,0x5a4($sp)
.PB0f074ba8:
/* f074ba8: 4406a000 */ mfc1 $a2,$f20
.PB0f074bac:
/* f074bac: 02202025 */ move $a0,$s1
/* f074bb0: 27a5059c */ addiu $a1,$sp,0x59c
/* f074bb4: 0fc1c8c6 */ jal func0f072144
/* f074bb8: 24070001 */ li $a3,0x1
/* f074bbc: 14400005 */ bnez $v0,.PB0f074bd4
/* f074bc0: afa20600 */ sw $v0,0x600($sp)
/* f074bc4: 4406a000 */ mfc1 $a2,$f20
/* f074bc8: 02202025 */ move $a0,$s1
/* f074bcc: 0fc1ca6a */ jal objCollide
/* f074bd0: 27a5059c */ addiu $a1,$sp,0x59c
.PB0f074bd4:
/* f074bd4: 8faa0600 */ lw $t2,0x600($sp)
.PB0f074bd8:
/* f074bd8: 24010001 */ li $at,0x1
/* f074bdc: c7aa0590 */ lwc1 $f10,0x590($sp)
/* f074be0: 55410007 */ bnel $t2,$at,.PB0f074c00
/* f074be4: 8fab0600 */ lw $t3,0x600($sp)
/* f074be8: e60a0004 */ swc1 $f10,0x4($s0)
/* f074bec: c7a40594 */ lwc1 $f4,0x594($sp)
/* f074bf0: e6040008 */ swc1 $f4,0x8($s0)
/* f074bf4: c7a60598 */ lwc1 $f6,0x598($sp)
/* f074bf8: e606000c */ swc1 $f6,0xc($s0)
.PB0f074bfc:
/* f074bfc: 8fab0600 */ lw $t3,0x600($sp)
.PB0f074c00:
/* f074c00: 24010001 */ li $at,0x1
/* f074c04: 51610005 */ beql $t3,$at,.PB0f074c1c
/* f074c08: 8e040088 */ lw $a0,0x88($s0)
/* f074c0c: e61400dc */ swc1 $f20,0xdc($s0)
/* f074c10: e614000c */ swc1 $f20,0xc($s0)
/* f074c14: e6140004 */ swc1 $f20,0x4($s0)
/* f074c18: 8e040088 */ lw $a0,0x88($s0)
.PB0f074c1c:
/* f074c1c: 50800004 */ beqzl $a0,.PB0f074c30
/* f074c20: c6080004 */ lwc1 $f8,0x4($s0)
/* f074c24: 0fc190d6 */ jal propSetPerimEnabled
/* f074c28: 24050001 */ li $a1,0x1
/* f074c2c: c6080004 */ lwc1 $f8,0x4($s0)
.PB0f074c30:
/* f074c30: 4608a032 */ c.eq.s $f20,$f8
/* f074c34: 00000000 */ nop
/* f074c38: 4502000e */ bc1fl .PB0f074c74
/* f074c3c: 8fad0600 */ lw $t5,0x600($sp)
/* f074c40: c60a000c */ lwc1 $f10,0xc($s0)
/* f074c44: 460aa032 */ c.eq.s $f20,$f10
/* f074c48: 00000000 */ nop
/* f074c4c: 45020009 */ bc1fl .PB0f074c74
/* f074c50: 8fad0600 */ lw $t5,0x600($sp)
/* f074c54: c60400dc */ lwc1 $f4,0xdc($s0)
/* f074c58: 4604a032 */ c.eq.s $f20,$f4
/* f074c5c: 00000000 */ nop
/* f074c60: 45020004 */ bc1fl .PB0f074c74
/* f074c64: 8fad0600 */ lw $t5,0x600($sp)
/* f074c68: 0fc1ab86 */ jal objEndFlight
/* f074c6c: 02202025 */ move $a0,$s1
/* f074c70: 8fad0600 */ lw $t5,0x600($sp)
.PB0f074c74:
/* f074c74: 24010001 */ li $at,0x1
/* f074c78: 8fa40070 */ lw $a0,0x70($sp)
/* f074c7c: 15a10012 */ bne $t5,$at,.PB0f074cc8
/* f074c80: 3c054000 */ lui $a1,0x4000
/* f074c84: 26460028 */ addiu $a2,$s2,0x28
/* f074c88: 26270058 */ addiu $a3,$s1,0x58
/* f074c8c: 0c00aa3c */ jal cdFindGroundYSimple
/* f074c90: afa00010 */ sw $zero,0x10($sp)
/* f074c94: 3c017f1b */ lui $at,0x7f1b
/* f074c98: c426c0d8 */ lwc1 $f6,-0x3f28($at)
/* f074c9c: 46000086 */ mov.s $f2,$f0
/* f074ca0: 02202025 */ move $a0,$s1
/* f074ca4: 4600303c */ c.lt.s $f6,$f0
/* f074ca8: 00000000 */ nop
/* f074cac: 45020007 */ bc1fl .PB0f074ccc
/* f074cb0: 02202025 */ move $a0,$s1
/* f074cb4: 0fc1c54e */ jal objGetHov04
/* f074cb8: e7a20584 */ swc1 $f2,0x584($sp)
/* f074cbc: c7a20584 */ lwc1 $f2,0x584($sp)
/* f074cc0: 46020200 */ add.s $f8,$f0,$f2
/* f074cc4: e648000c */ swc1 $f8,0xc($s2)
.PB0f074cc8:
/* f074cc8: 02202025 */ move $a0,$s1
.PB0f074ccc:
/* f074ccc: 00002825 */ move $a1,$zero
/* f074cd0: 0fc1a792 */ jal func0f069c70
/* f074cd4: 24060001 */ li $a2,0x1
/* f074cd8: 27b00484 */ addiu $s0,$sp,0x484
/* f074cdc: 02002825 */ move $a1,$s0
/* f074ce0: 0c0059e9 */ jal mtx3ToMtx4
/* f074ce4: 8fa40074 */ lw $a0,0x74($sp)
/* f074ce8: 8fa40070 */ lw $a0,0x70($sp)
/* f074cec: 0c005a09 */ jal mtx4SetTranslation
/* f074cf0: 02002825 */ move $a1,$s0
/* f074cf4: 27b104c4 */ addiu $s1,$sp,0x4c4
/* f074cf8: 02202825 */ move $a1,$s1
/* f074cfc: 0c005f50 */ jal mtx000172f0
/* f074d00: 27a40504 */ addiu $a0,$sp,0x504
/* f074d04: 02002025 */ move $a0,$s0
/* f074d08: 02202825 */ move $a1,$s1
/* f074d0c: 0c005914 */ jal mtx4MultMtx4
/* f074d10: 27a60544 */ addiu $a2,$sp,0x544
/* f074d14: 02402025 */ move $a0,$s2
/* f074d18: 0fc1cd27 */ jal platformDisplaceProps2
/* f074d1c: 27a50544 */ addiu $a1,$sp,0x544
/* f074d20: 240c0001 */ li $t4,0x1
/* f074d24: 100008f5 */ b .PB0f0770fc
/* f074d28: afac05d8 */ sw $t4,0x5d8($sp)
.PB0f074d2c:
/* f074d2c: 11c007c2 */ beqz $t6,.PB0f076c38
/* f074d30: 304c0400 */ andi $t4,$v0,0x400
/* f074d34: afa00354 */ sw $zero,0x354($sp)
/* f074d38: afa00350 */ sw $zero,0x350($sp)
/* f074d3c: afa0034c */ sw $zero,0x34c($sp)
/* f074d40: 8e0f00d0 */ lw $t7,0xd0($s0)
/* f074d44: 8c780034 */ lw $t8,0x34($v1)
/* f074d48: 30494000 */ andi $t1,$v0,0x4000
/* f074d4c: 01f8c821 */ addu $t9,$t7,$t8
/* f074d50: 15200003 */ bnez $t1,.PB0f074d60
/* f074d54: ae1900d0 */ sw $t9,0xd0($s0)
/* f074d58: 2b211f41 */ slti $at,$t9,0x1f41
/* f074d5c: 10200021 */ beqz $at,.PB0f074de4
.PB0f074d60:
/* f074d60: 3c017f1b */ lui $at,0x7f1b
/* f074d64: c42ac0dc */ lwc1 $f10,-0x3f24($at)
/* f074d68: c640000c */ lwc1 $f0,0xc($s2)
/* f074d6c: 3c0146fa */ lui $at,0x46fa
/* f074d70: 460a003c */ c.lt.s $f0,$f10
/* f074d74: 00000000 */ nop
/* f074d78: 4503001b */ bc1tl .PB0f074de8
/* f074d7c: 8e2b0040 */ lw $t3,0x40($s1)
/* f074d80: 44811000 */ mtc1 $at,$f2
/* f074d84: 3c01c6fa */ lui $at,0xc6fa
/* f074d88: 4600103c */ c.lt.s $f2,$f0
/* f074d8c: 00000000 */ nop
/* f074d90: 45030015 */ bc1tl .PB0f074de8
/* f074d94: 8e2b0040 */ lw $t3,0x40($s1)
/* f074d98: 44816000 */ mtc1 $at,$f12
/* f074d9c: c6400008 */ lwc1 $f0,0x8($s2)
/* f074da0: 460c003c */ c.lt.s $f0,$f12
/* f074da4: 00000000 */ nop
/* f074da8: 4503000f */ bc1tl .PB0f074de8
/* f074dac: 8e2b0040 */ lw $t3,0x40($s1)
/* f074db0: 4600103c */ c.lt.s $f2,$f0
/* f074db4: 00000000 */ nop
/* f074db8: 4503000b */ bc1tl .PB0f074de8
/* f074dbc: 8e2b0040 */ lw $t3,0x40($s1)
/* f074dc0: c6400010 */ lwc1 $f0,0x10($s2)
/* f074dc4: 460c003c */ c.lt.s $f0,$f12
/* f074dc8: 00000000 */ nop
/* f074dcc: 45030006 */ bc1tl .PB0f074de8
/* f074dd0: 8e2b0040 */ lw $t3,0x40($s1)
/* f074dd4: 4600103c */ c.lt.s $f2,$f0
/* f074dd8: 00000000 */ nop
/* f074ddc: 45020005 */ bc1fl .PB0f074df4
/* f074de0: 8e0c00a0 */ lw $t4,0xa0($s0)
.PB0f074de4:
/* f074de4: 8e2b0040 */ lw $t3,0x40($s1)
.PB0f074de8:
/* f074de8: 356d0004 */ ori $t5,$t3,0x4
/* f074dec: ae2d0040 */ sw $t5,0x40($s1)
/* f074df0: 8e0c00a0 */ lw $t4,0xa0($s0)
.PB0f074df4:
/* f074df4: 8c6e0034 */ lw $t6,0x34($v1)
/* f074df8: 2624001c */ addiu $a0,$s1,0x1c
/* f074dfc: 27a50358 */ addiu $a1,$sp,0x358
/* f074e00: 018e7821 */ addu $t7,$t4,$t6
/* f074e04: ae0f00a0 */ sw $t7,0xa0($s0)
/* f074e08: 0c0059ca */ jal mtx3Copy
/* f074e0c: afa40074 */ sw $a0,0x74($sp)
/* f074e10: 8e180000 */ lw $t8,0x0($s0)
/* f074e14: 3c017f1b */ lui $at,0x7f1b
/* f074e18: 33190020 */ andi $t9,$t8,0x20
/* f074e1c: 5320004b */ beqzl $t9,.PB0f074f4c
/* f074e20: 922c0003 */ lbu $t4,0x3($s1)
/* f074e24: c430c0e0 */ lwc1 $f16,-0x3f20($at)
/* f074e28: c600001c */ lwc1 $f0,0x1c($s0)
/* f074e2c: 3c03800a */ lui $v1,0x800a
/* f074e30: 2463e4d0 */ addiu $v1,$v1,-6960
/* f074e34: 4610003c */ c.lt.s $f0,$f16
/* f074e38: 00000000 */ nop
/* f074e3c: 4502001b */ bc1fl .PB0f074eac
/* f074e40: c60000a8 */ lwc1 $f0,0xa8($s0)
/* f074e44: c6040014 */ lwc1 $f4,0x14($s0)
/* f074e48: c466004c */ lwc1 $f6,0x4c($v1)
/* f074e4c: c60a00ac */ lwc1 $f10,0xac($s0)
/* f074e50: 3c017f1b */ lui $at,0x7f1b
/* f074e54: 46062202 */ mul.s $f8,$f4,$f6
/* f074e58: 46085100 */ add.s $f4,$f10,$f8
/* f074e5c: e60400ac */ swc1 $f4,0xac($s0)
/* f074e60: c46a004c */ lwc1 $f10,0x4c($v1)
/* f074e64: c60600ac */ lwc1 $f6,0xac($s0)
/* f074e68: c60400a8 */ lwc1 $f4,0xa8($s0)
/* f074e6c: 460a3202 */ mul.s $f8,$f6,$f10
/* f074e70: 46082180 */ add.s $f6,$f4,$f8
/* f074e74: e60600a8 */ swc1 $f6,0xa8($s0)
/* f074e78: c464004c */ lwc1 $f4,0x4c($v1)
/* f074e7c: c42ac0e4 */ lwc1 $f10,-0x3f1c($at)
/* f074e80: 46045202 */ mul.s $f8,$f10,$f4
/* f074e84: 46080180 */ add.s $f6,$f0,$f8
/* f074e88: e606001c */ swc1 $f6,0x1c($s0)
/* f074e8c: c60a001c */ lwc1 $f10,0x1c($s0)
/* f074e90: 460a803c */ c.lt.s $f16,$f10
/* f074e94: 00000000 */ nop
/* f074e98: 4502002c */ bc1fl .PB0f074f4c
/* f074e9c: 922c0003 */ lbu $t4,0x3($s1)
/* f074ea0: 10000029 */ b .PB0f074f48
/* f074ea4: e610001c */ swc1 $f16,0x1c($s0)
/* f074ea8: c60000a8 */ lwc1 $f0,0xa8($s0)
.PB0f074eac:
/* f074eac: c7a405e0 */ lwc1 $f4,0x5e0($sp)
/* f074eb0: 4600203c */ c.lt.s $f4,$f0
/* f074eb4: 00000000 */ nop
/* f074eb8: 45000018 */ bc1f .PB0f074f1c
/* f074ebc: 3c01800a */ lui $at,0x800a
/* f074ec0: c426e51c */ lwc1 $f6,-0x1ae4($at)
/* f074ec4: c6080014 */ lwc1 $f8,0x14($s0)
/* f074ec8: c60400ac */ lwc1 $f4,0xac($s0)
/* f074ecc: 46064282 */ mul.s $f10,$f8,$f6
/* f074ed0: 460a2200 */ add.s $f8,$f4,$f10
/* f074ed4: e60800ac */ swc1 $f8,0xac($s0)
/* f074ed8: c424e51c */ lwc1 $f4,-0x1ae4($at)
/* f074edc: c60600ac */ lwc1 $f6,0xac($s0)
/* f074ee0: 3c017f1b */ lui $at,0x7f1b
/* f074ee4: 46043282 */ mul.s $f10,$f6,$f4
/* f074ee8: 460a0200 */ add.s $f8,$f0,$f10
/* f074eec: e60800a8 */ swc1 $f8,0xa8($s0)
/* f074ef0: c7a405e0 */ lwc1 $f4,0x5e0($sp)
/* f074ef4: c60600a8 */ lwc1 $f6,0xa8($s0)
/* f074ef8: c428c0e8 */ lwc1 $f8,-0x3f18($at)
/* f074efc: 3c01800a */ lui $at,0x800a
/* f074f00: 46043281 */ sub.s $f10,$f6,$f4
/* f074f04: 460a4182 */ mul.s $f6,$f8,$f10
/* f074f08: c428e51c */ lwc1 $f8,-0x1ae4($at)
/* f074f0c: 46083282 */ mul.s $f10,$f6,$f8
/* f074f10: 460a2180 */ add.s $f6,$f4,$f10
/* f074f14: 1000000c */ b .PB0f074f48
/* f074f18: e7a605e0 */ swc1 $f6,0x5e0($sp)
.PB0f074f1c:
/* f074f1c: e7a005e0 */ swc1 $f0,0x5e0($sp)
/* f074f20: 8e090000 */ lw $t1,0x0($s0)
/* f074f24: 2401ffdf */ li $at,-33
/* f074f28: 4480a000 */ mtc1 $zero,$f20
/* f074f2c: c60800ac */ lwc1 $f8,0xac($s0)
/* f074f30: 01215024 */ and $t2,$t1,$at
/* f074f34: ae0a0000 */ sw $t2,0x0($s0)
/* f074f38: 354d0010 */ ori $t5,$t2,0x10
/* f074f3c: ae0d0000 */ sw $t5,0x0($s0)
/* f074f40: e6080008 */ swc1 $f8,0x8($s0)
/* f074f44: e614001c */ swc1 $f20,0x1c($s0)
.PB0f074f48:
/* f074f48: 922c0003 */ lbu $t4,0x3($s1)
.PB0f074f4c:
/* f074f4c: 4480a000 */ mtc1 $zero,$f20
/* f074f50: 24010008 */ li $at,0x8
/* f074f54: 15810006 */ bne $t4,$at,.PB0f074f70
/* f074f58: 00001025 */ move $v0,$zero
/* f074f5c: 922e005c */ lbu $t6,0x5c($s1)
/* f074f60: 24010054 */ li $at,0x54
/* f074f64: 15c10002 */ bne $t6,$at,.PB0f074f70
/* f074f68: 00000000 */ nop
/* f074f6c: 24020001 */ li $v0,0x1
.PB0f074f70:
/* f074f70: 10400129 */ beqz $v0,.PB0f075418
/* f074f74: 3c188007 */ lui $t8,0x8007
/* f074f78: 2718b264 */ addiu $t8,$t8,-19868
/* f074f7c: 8f010000 */ lw $at,0x0($t8)
/* f074f80: 27af02f8 */ addiu $t7,$sp,0x2f8
/* f074f84: 8f090004 */ lw $t1,0x4($t8)
/* f074f88: ade10000 */ sw $at,0x0($t7)
/* f074f8c: 8f010008 */ lw $at,0x8($t8)
/* f074f90: 3c0b8007 */ lui $t3,0x8007
/* f074f94: 256bb270 */ addiu $t3,$t3,-19856
/* f074f98: ade90004 */ sw $t1,0x4($t7)
/* f074f9c: ade10008 */ sw $at,0x8($t7)
/* f074fa0: 8d610000 */ lw $at,0x0($t3)
/* f074fa4: 27aa02ec */ addiu $t2,$sp,0x2ec
/* f074fa8: 8d6c0004 */ lw $t4,0x4($t3)
/* f074fac: ad410000 */ sw $at,0x0($t2)
/* f074fb0: 8d610008 */ lw $at,0x8($t3)
/* f074fb4: 3c198007 */ lui $t9,0x8007
/* f074fb8: 2739b27c */ addiu $t9,$t9,-19844
/* f074fbc: ad4c0004 */ sw $t4,0x4($t2)
/* f074fc0: ad410008 */ sw $at,0x8($t2)
/* f074fc4: 8f210000 */ lw $at,0x0($t9)
/* f074fc8: 27ae02e0 */ addiu $t6,$sp,0x2e0
/* f074fcc: 8f380004 */ lw $t8,0x4($t9)
/* f074fd0: adc10000 */ sw $at,0x0($t6)
/* f074fd4: 8f210008 */ lw $at,0x8($t9)
/* f074fd8: add80004 */ sw $t8,0x4($t6)
/* f074fdc: 1220010e */ beqz $s1,.PB0f075418
/* f074fe0: adc10008 */ sw $at,0x8($t6)
/* f074fe4: 8e290014 */ lw $t1,0x14($s1)
/* f074fe8: 5120010c */ beqzl $t1,.PB0f07541c
/* f074fec: 8e020000 */ lw $v0,0x0($s0)
/* f074ff0: 8e0d00e8 */ lw $t5,0xe8($s0)
/* f074ff4: 51a00109 */ beqzl $t5,.PB0f07541c
/* f074ff8: 8e020000 */ lw $v0,0x0($s0)
/* f074ffc: c622001c */ lwc1 $f2,0x1c($s1)
/* f075000: c62e0028 */ lwc1 $f14,0x28($s1)
/* f075004: c6200034 */ lwc1 $f0,0x34($s1)
/* f075008: 46021102 */ mul.s $f4,$f2,$f2
/* f07500c: 00000000 */ nop
/* f075010: 460e7282 */ mul.s $f10,$f14,$f14
/* f075014: 460a2180 */ add.s $f6,$f4,$f10
/* f075018: 46000202 */ mul.s $f8,$f0,$f0
/* f07501c: 0c012ae4 */ jal sqrtf
/* f075020: 46064300 */ add.s $f12,$f8,$f6
/* f075024: 27a402a0 */ addiu $a0,$sp,0x2a0
/* f075028: 0c005900 */ jal mtx4LoadIdentity
/* f07502c: e7a0029c */ swc1 $f0,0x29c($sp)
/* f075030: c7ae029c */ lwc1 $f14,0x29c($sp)
/* f075034: c624001c */ lwc1 $f4,0x1c($s1)
/* f075038: 27a40290 */ addiu $a0,$sp,0x290
/* f07503c: 27a50294 */ addiu $a1,$sp,0x294
/* f075040: 460e2283 */ div.s $f10,$f4,$f14
/* f075044: 27a60298 */ addiu $a2,$sp,0x298
/* f075048: e7aa02a0 */ swc1 $f10,0x2a0($sp)
/* f07504c: c6280020 */ lwc1 $f8,0x20($s1)
/* f075050: 460e4183 */ div.s $f6,$f8,$f14
/* f075054: e7a602a4 */ swc1 $f6,0x2a4($sp)
/* f075058: c6240024 */ lwc1 $f4,0x24($s1)
/* f07505c: 460e2283 */ div.s $f10,$f4,$f14
/* f075060: e7aa02a8 */ swc1 $f10,0x2a8($sp)
/* f075064: c6280028 */ lwc1 $f8,0x28($s1)
/* f075068: 460e4183 */ div.s $f6,$f8,$f14
/* f07506c: e7a602b0 */ swc1 $f6,0x2b0($sp)
/* f075070: c624002c */ lwc1 $f4,0x2c($s1)
/* f075074: 460e2283 */ div.s $f10,$f4,$f14
/* f075078: e7aa02b4 */ swc1 $f10,0x2b4($sp)
/* f07507c: c6280030 */ lwc1 $f8,0x30($s1)
/* f075080: 460e4183 */ div.s $f6,$f8,$f14
/* f075084: e7a602b8 */ swc1 $f6,0x2b8($sp)
/* f075088: c6240034 */ lwc1 $f4,0x34($s1)
/* f07508c: 460e2283 */ div.s $f10,$f4,$f14
/* f075090: e7aa02c0 */ swc1 $f10,0x2c0($sp)
/* f075094: c6280038 */ lwc1 $f8,0x38($s1)
/* f075098: 460e4183 */ div.s $f6,$f8,$f14
/* f07509c: e7a602c4 */ swc1 $f6,0x2c4($sp)
/* f0750a0: c624003c */ lwc1 $f4,0x3c($s1)
/* f0750a4: 460e2283 */ div.s $f10,$f4,$f14
/* f0750a8: e7aa02c8 */ swc1 $f10,0x2c8($sp)
/* f0750ac: 8e2a0014 */ lw $t2,0x14($s1)
/* f0750b0: c5480008 */ lwc1 $f8,0x8($t2)
/* f0750b4: e7a802f8 */ swc1 $f8,0x2f8($sp)
/* f0750b8: 8e2b0014 */ lw $t3,0x14($s1)
/* f0750bc: c7a802f8 */ lwc1 $f8,0x2f8($sp)
/* f0750c0: c566000c */ lwc1 $f6,0xc($t3)
/* f0750c4: e7a602fc */ swc1 $f6,0x2fc($sp)
/* f0750c8: 8e2c0014 */ lw $t4,0x14($s1)
/* f0750cc: c5840010 */ lwc1 $f4,0x10($t4)
/* f0750d0: e7a40300 */ swc1 $f4,0x300($sp)
/* f0750d4: 8e0f00e8 */ lw $t7,0xe8($s0)
/* f0750d8: c5ea0008 */ lwc1 $f10,0x8($t7)
/* f0750dc: 46085181 */ sub.s $f6,$f10,$f8
/* f0750e0: c7aa02fc */ lwc1 $f10,0x2fc($sp)
/* f0750e4: e7a60290 */ swc1 $f6,0x290($sp)
/* f0750e8: 8e0e00e8 */ lw $t6,0xe8($s0)
/* f0750ec: c5c4000c */ lwc1 $f4,0xc($t6)
/* f0750f0: 460a2201 */ sub.s $f8,$f4,$f10
/* f0750f4: c7a40300 */ lwc1 $f4,0x300($sp)
/* f0750f8: e7a80294 */ swc1 $f8,0x294($sp)
/* f0750fc: 8e1900e8 */ lw $t9,0xe8($s0)
/* f075100: c7260010 */ lwc1 $f6,0x10($t9)
/* f075104: e7ae029c */ swc1 $f14,0x29c($sp)
/* f075108: 46043281 */ sub.s $f10,$f6,$f4
/* f07510c: 0c0011d8 */ jal guNormalize
/* f075110: e7aa0298 */ swc1 $f10,0x298($sp)
/* f075114: c6080004 */ lwc1 $f8,0x4($s0)
/* f075118: 27a402ec */ addiu $a0,$sp,0x2ec
/* f07511c: 27a502f0 */ addiu $a1,$sp,0x2f0
/* f075120: e7a802ec */ swc1 $f8,0x2ec($sp)
/* f075124: c6060008 */ lwc1 $f6,0x8($s0)
/* f075128: 27a602f4 */ addiu $a2,$sp,0x2f4
/* f07512c: e7a602f0 */ swc1 $f6,0x2f0($sp)
/* f075130: c604000c */ lwc1 $f4,0xc($s0)
/* f075134: 0c0011d8 */ jal guNormalize
/* f075138: e7a402f4 */ swc1 $f4,0x2f4($sp)
/* f07513c: c7aa0298 */ lwc1 $f10,0x298($sp)
/* f075140: c7a802f4 */ lwc1 $f8,0x2f4($sp)
/* f075144: c7b00290 */ lwc1 $f16,0x290($sp)
/* f075148: c7a402ec */ lwc1 $f4,0x2ec($sp)
/* f07514c: 46085182 */ mul.s $f6,$f10,$f8
/* f075150: c7b20294 */ lwc1 $f18,0x294($sp)
/* f075154: c7a802f0 */ lwc1 $f8,0x2f0($sp)
/* f075158: 46102282 */ mul.s $f10,$f4,$f16
/* f07515c: 00000000 */ nop
/* f075160: 46124102 */ mul.s $f4,$f8,$f18
/* f075164: 46045200 */ add.s $f8,$f10,$f4
/* f075168: 0fc25a10 */ jal acosf
/* f07516c: 46083300 */ add.s $f12,$f6,$f8
/* f075170: 3c017f1b */ lui $at,0x7f1b
/* f075174: c42ac0f0 */ lwc1 $f10,-0x3f10($at)
/* f075178: 3c047f1b */ lui $a0,0x7f1b
/* f07517c: c7ae029c */ lwc1 $f14,0x29c($sp)
/* f075180: 4600503c */ c.lt.s $f10,$f0
/* f075184: e7a0028c */ swc1 $f0,0x28c($sp)
/* f075188: 3c017f1b */ lui $at,0x7f1b
/* f07518c: 2484bcc4 */ addiu $a0,$a0,-17212
/* f075190: 45010005 */ bc1t .PB0f0751a8
/* f075194: 3c058007 */ lui $a1,0x8007
/* f075198: c424c0f4 */ lwc1 $f4,-0x3f0c($at)
/* f07519c: 4604003c */ c.lt.s $f0,$f4
/* f0751a0: 00000000 */ nop
/* f0751a4: 4500009c */ bc1f .PB0f075418
.PB0f0751a8:
/* f0751a8: 24a5b294 */ addiu $a1,$a1,-19820
/* f0751ac: 0c003648 */ jal mainOverrideVariable
/* f0751b0: e7ae029c */ swc1 $f14,0x29c($sp)
/* f0751b4: 3c047f1b */ lui $a0,0x7f1b
/* f0751b8: 3c058007 */ lui $a1,0x8007
/* f0751bc: 24a5b298 */ addiu $a1,$a1,-19816
/* f0751c0: 0c003648 */ jal mainOverrideVariable
/* f0751c4: 2484bcc8 */ addiu $a0,$a0,-17208
/* f0751c8: 3c047f1b */ lui $a0,0x7f1b
/* f0751cc: 3c058007 */ lui $a1,0x8007
/* f0751d0: 24a5b29c */ addiu $a1,$a1,-19812
/* f0751d4: 0c003648 */ jal mainOverrideVariable
/* f0751d8: 2484bccc */ addiu $a0,$a0,-17204
/* f0751dc: 3c188007 */ lui $t8,0x8007
/* f0751e0: 8f18b298 */ lw $t8,-0x4d68($t8)
/* f0751e4: 3c01800a */ lui $at,0x800a
/* f0751e8: c7b00290 */ lwc1 $f16,0x290($sp)
/* f0751ec: 44983000 */ mtc1 $t8,$f6
/* f0751f0: c7b20294 */ lwc1 $f18,0x294($sp)
/* f0751f4: c422e51c */ lwc1 $f2,-0x1ae4($at)
/* f0751f8: 07010005 */ bgez $t8,.PB0f075210
/* f0751fc: 46803220 */ cvt.s.w $f8,$f6
/* f075200: 3c014f80 */ lui $at,0x4f80
/* f075204: 44815000 */ mtc1 $at,$f10
/* f075208: 00000000 */ nop
/* f07520c: 460a4200 */ add.s $f8,$f8,$f10
.PB0f075210:
/* f075210: 3c0142c8 */ lui $at,0x42c8
/* f075214: 44812000 */ mtc1 $at,$f4
/* f075218: 3c018007 */ lui $at,0x8007
/* f07521c: c42ab290 */ lwc1 $f10,-0x4d70($at)
/* f075220: 46044183 */ div.s $f6,$f8,$f4
/* f075224: 3c098007 */ lui $t1,0x8007
/* f075228: 8d29b29c */ lw $t1,-0x4d64($t1)
/* f07522c: 460a3202 */ mul.s $f8,$f6,$f10
/* f075230: 44893000 */ mtc1 $t1,$f6
/* f075234: 00000000 */ nop
/* f075238: 468032a0 */ cvt.s.w $f10,$f6
/* f07523c: 05210005 */ bgez $t1,.PB0f075254
/* f075240: 46024103 */ div.s $f4,$f8,$f2
/* f075244: 3c014f80 */ lui $at,0x4f80
/* f075248: 44814000 */ mtc1 $at,$f8
/* f07524c: 00000000 */ nop
/* f075250: 46085280 */ add.s $f10,$f10,$f8
.PB0f075254:
/* f075254: 3c0142c8 */ lui $at,0x42c8
/* f075258: 44813000 */ mtc1 $at,$f6
/* f07525c: 3c0d8007 */ lui $t5,0x8007
/* f075260: 8dadb294 */ lw $t5,-0x4d6c($t5)
/* f075264: 46065203 */ div.s $f8,$f10,$f6
/* f075268: c7aa028c */ lwc1 $f10,0x28c($sp)
/* f07526c: 3c014f80 */ lui $at,0x4f80
/* f075270: 460a4182 */ mul.s $f6,$f8,$f10
/* f075274: 00000000 */ nop
/* f075278: 46023202 */ mul.s $f8,$f6,$f2
/* f07527c: 46082180 */ add.s $f6,$f4,$f8
/* f075280: 448d2000 */ mtc1 $t5,$f4
/* f075284: 05a10004 */ bgez $t5,.PB0f075298
/* f075288: 46802220 */ cvt.s.w $f8,$f4
/* f07528c: 44812000 */ mtc1 $at,$f4
/* f075290: 00000000 */ nop
/* f075294: 46044200 */ add.s $f8,$f8,$f4
.PB0f075298:
/* f075298: 3c0142c8 */ lui $at,0x42c8
/* f07529c: 44812000 */ mtc1 $at,$f4
/* f0752a0: 3c018007 */ lui $at,0x8007
/* f0752a4: e42ab290 */ swc1 $f10,-0x4d70($at)
/* f0752a8: 46044203 */ div.s $f8,$f8,$f4
/* f0752ac: c7a402f0 */ lwc1 $f4,0x2f0($sp)
/* f0752b0: c7aa02f4 */ lwc1 $f10,0x2f4($sp)
/* f0752b4: 3c013f00 */ lui $at,0x3f00
/* f0752b8: 46083002 */ mul.s $f0,$f6,$f8
/* f0752bc: c7a60298 */ lwc1 $f6,0x298($sp)
/* f0752c0: 46062202 */ mul.s $f8,$f4,$f6
/* f0752c4: 00000000 */ nop
/* f0752c8: 460a9182 */ mul.s $f6,$f18,$f10
/* f0752cc: 46064281 */ sub.s $f10,$f8,$f6
/* f0752d0: c7a60298 */ lwc1 $f6,0x298($sp)
/* f0752d4: c7a802ec */ lwc1 $f8,0x2ec($sp)
/* f0752d8: e7aa0280 */ swc1 $f10,0x280($sp)
/* f0752dc: 46064282 */ mul.s $f10,$f8,$f6
/* f0752e0: c7a802f4 */ lwc1 $f8,0x2f4($sp)
/* f0752e4: 46088182 */ mul.s $f6,$f16,$f8
/* f0752e8: 46065201 */ sub.s $f8,$f10,$f6
/* f0752ec: c7a602ec */ lwc1 $f6,0x2ec($sp)
/* f0752f0: 46004287 */ neg.s $f10,$f8
/* f0752f4: 46123202 */ mul.s $f8,$f6,$f18
/* f0752f8: e7aa0284 */ swc1 $f10,0x284($sp)
/* f0752fc: 46048282 */ mul.s $f10,$f16,$f4
/* f075300: 44812000 */ mtc1 $at,$f4
/* f075304: 00000000 */ nop
/* f075308: 46040302 */ mul.s $f12,$f0,$f4
/* f07530c: 460a4181 */ sub.s $f6,$f8,$f10
/* f075310: e7ac0078 */ swc1 $f12,0x78($sp)
/* f075314: 0c006b88 */ jal cosf
/* f075318: e7a60288 */ swc1 $f6,0x288($sp)
/* f07531c: e7a00260 */ swc1 $f0,0x260($sp)
/* f075320: 0c006b8b */ jal sinf
/* f075324: c7ac0078 */ lwc1 $f12,0x78($sp)
/* f075328: c7a80280 */ lwc1 $f8,0x280($sp)
/* f07532c: c7ac0078 */ lwc1 $f12,0x78($sp)
/* f075330: 46080282 */ mul.s $f10,$f0,$f8
/* f075334: 0c006b8b */ jal sinf
/* f075338: e7aa0264 */ swc1 $f10,0x264($sp)
/* f07533c: c7a60284 */ lwc1 $f6,0x284($sp)
/* f075340: c7ac0078 */ lwc1 $f12,0x78($sp)
/* f075344: 46060102 */ mul.s $f4,$f0,$f6
/* f075348: 0c006b8b */ jal sinf
/* f07534c: e7a40268 */ swc1 $f4,0x268($sp)
/* f075350: c7a80288 */ lwc1 $f8,0x288($sp)
/* f075354: 27a40260 */ addiu $a0,$sp,0x260
/* f075358: 27a5020c */ addiu $a1,$sp,0x20c
/* f07535c: 46080282 */ mul.s $f10,$f0,$f8
/* f075360: 0fc25b51 */ jal quaternionToMtx
/* f075364: e7aa026c */ swc1 $f10,0x26c($sp)
/* f075368: e6140018 */ swc1 $f20,0x18($s0)
/* f07536c: e6140014 */ swc1 $f20,0x14($s0)
/* f075370: e6140010 */ swc1 $f20,0x10($s0)
/* f075374: 27a4020c */ addiu $a0,$sp,0x20c
/* f075378: 0c005958 */ jal mtx4RotateVecInPlace
/* f07537c: 26050004 */ addiu $a1,$s0,0x4
/* f075380: 27a402a0 */ addiu $a0,$sp,0x2a0
/* f075384: 0fc25bad */ jal quaternion0f097044
/* f075388: 27a50270 */ addiu $a1,$sp,0x270
/* f07538c: 27a40270 */ addiu $a0,$sp,0x270
/* f075390: 27a50260 */ addiu $a1,$sp,0x260
/* f075394: 0fc25d6a */ jal quaternionMultQuaternion
/* f075398: 27a60250 */ addiu $a2,$sp,0x250
/* f07539c: 27a40250 */ addiu $a0,$sp,0x250
/* f0753a0: 0fc25b51 */ jal quaternionToMtx
/* f0753a4: 27a5020c */ addiu $a1,$sp,0x20c
/* f0753a8: c7ae029c */ lwc1 $f14,0x29c($sp)
/* f0753ac: c7a6020c */ lwc1 $f6,0x20c($sp)
/* f0753b0: 460e3102 */ mul.s $f4,$f6,$f14
/* f0753b4: e624001c */ swc1 $f4,0x1c($s1)
/* f0753b8: c7a80210 */ lwc1 $f8,0x210($sp)
/* f0753bc: 460e4282 */ mul.s $f10,$f8,$f14
/* f0753c0: e62a0020 */ swc1 $f10,0x20($s1)
/* f0753c4: c7a60214 */ lwc1 $f6,0x214($sp)
/* f0753c8: 460e3102 */ mul.s $f4,$f6,$f14
/* f0753cc: e6240024 */ swc1 $f4,0x24($s1)
/* f0753d0: c7a8021c */ lwc1 $f8,0x21c($sp)
/* f0753d4: 460e4282 */ mul.s $f10,$f8,$f14
/* f0753d8: e62a0028 */ swc1 $f10,0x28($s1)
/* f0753dc: c7a60220 */ lwc1 $f6,0x220($sp)
/* f0753e0: 460e3102 */ mul.s $f4,$f6,$f14
/* f0753e4: e624002c */ swc1 $f4,0x2c($s1)
/* f0753e8: c7a80224 */ lwc1 $f8,0x224($sp)
/* f0753ec: 460e4282 */ mul.s $f10,$f8,$f14
/* f0753f0: e62a0030 */ swc1 $f10,0x30($s1)
/* f0753f4: c7a6022c */ lwc1 $f6,0x22c($sp)
/* f0753f8: 460e3102 */ mul.s $f4,$f6,$f14
/* f0753fc: e6240034 */ swc1 $f4,0x34($s1)
/* f075400: c7a80230 */ lwc1 $f8,0x230($sp)
/* f075404: 460e4282 */ mul.s $f10,$f8,$f14
/* f075408: e62a0038 */ swc1 $f10,0x38($s1)
/* f07540c: c7a60234 */ lwc1 $f6,0x234($sp)
/* f075410: 460e3102 */ mul.s $f4,$f6,$f14
/* f075414: e624003c */ swc1 $f4,0x3c($s1)
.PB0f075418:
/* f075418: 8e020000 */ lw $v0,0x0($s0)
.PB0f07541c:
/* f07541c: 3c03800a */ lui $v1,0x800a
/* f075420: 2463e4d0 */ addiu $v1,$v1,-6960
/* f075424: 3c017f1b */ lui $at,0x7f1b
/* f075428: 304a0010 */ andi $t2,$v0,0x10
/* f07542c: c430c0f8 */ lwc1 $f16,-0x3f08($at)
/* f075430: c462004c */ lwc1 $f2,0x4c($v1)
/* f075434: c600001c */ lwc1 $f0,0x1c($s0)
/* f075438: 1540001e */ bnez $t2,.PB0f0754b4
/* f07543c: c60c0014 */ lwc1 $f12,0x14($s0)
/* f075440: 46006280 */ add.s $f10,$f12,$f0
/* f075444: c6080008 */ lwc1 $f8,0x8($s0)
/* f075448: 00025840 */ sll $t3,$v0,0x1
/* f07544c: 3c017f1b */ lui $at,0x7f1b
/* f075450: 46025182 */ mul.s $f6,$f10,$f2
/* f075454: 46064100 */ add.s $f4,$f8,$f6
/* f075458: 05610007 */ bgez $t3,.PB0f075478
/* f07545c: e6040008 */ swc1 $f4,0x8($s0)
/* f075460: c462004c */ lwc1 $f2,0x4c($v1)
/* f075464: c42ac0fc */ lwc1 $f10,-0x3f04($at)
/* f075468: c60c0008 */ lwc1 $f12,0x8($s0)
/* f07546c: 46025202 */ mul.s $f8,$f10,$f2
/* f075470: 10000005 */ b .PB0f075488
/* f075474: 46086001 */ sub.s $f0,$f12,$f8
.PB0f075478:
/* f075478: c462004c */ lwc1 $f2,0x4c($v1)
/* f07547c: c60c0008 */ lwc1 $f12,0x8($s0)
/* f075480: 46028182 */ mul.s $f6,$f16,$f2
/* f075484: 46066001 */ sub.s $f0,$f12,$f6
.PB0f075488:
/* f075488: 46006100 */ add.s $f4,$f12,$f0
/* f07548c: 3c013f00 */ lui $at,0x3f00
/* f075490: 44814000 */ mtc1 $at,$f8
/* f075494: 46041282 */ mul.s $f10,$f2,$f4
/* f075498: c7a405e0 */ lwc1 $f4,0x5e0($sp)
/* f07549c: 46085182 */ mul.s $f6,$f10,$f8
/* f0754a0: 46062280 */ add.s $f10,$f4,$f6
/* f0754a4: e7aa05e0 */ swc1 $f10,0x5e0($sp)
/* f0754a8: e6000008 */ swc1 $f0,0x8($s0)
/* f0754ac: 1000000c */ b .PB0f0754e0
/* f0754b0: c462004c */ lwc1 $f2,0x4c($v1)
.PB0f0754b4:
/* f0754b4: 46006100 */ add.s $f4,$f12,$f0
/* f0754b8: c6080008 */ lwc1 $f8,0x8($s0)
/* f0754bc: 46022182 */ mul.s $f6,$f4,$f2
/* f0754c0: 46064280 */ add.s $f10,$f8,$f6
/* f0754c4: e60a0008 */ swc1 $f10,0x8($s0)
/* f0754c8: c6080008 */ lwc1 $f8,0x8($s0)
/* f0754cc: c462004c */ lwc1 $f2,0x4c($v1)
/* f0754d0: c7a405e0 */ lwc1 $f4,0x5e0($sp)
/* f0754d4: 46024182 */ mul.s $f6,$f8,$f2
/* f0754d8: 46062280 */ add.s $f10,$f4,$f6
/* f0754dc: e7aa05e0 */ swc1 $f10,0x5e0($sp)
.PB0f0754e0:
/* f0754e0: c6040010 */ lwc1 $f4,0x10($s0)
/* f0754e4: c6080004 */ lwc1 $f8,0x4($s0)
/* f0754e8: 27a5030c */ addiu $a1,$sp,0x30c
/* f0754ec: 46022182 */ mul.s $f6,$f4,$f2
/* f0754f0: c6040018 */ lwc1 $f4,0x18($s0)
/* f0754f4: 46064280 */ add.s $f10,$f8,$f6
/* f0754f8: e60a0004 */ swc1 $f10,0x4($s0)
/* f0754fc: c468004c */ lwc1 $f8,0x4c($v1)
/* f075500: c60a000c */ lwc1 $f10,0xc($s0)
/* f075504: 46082182 */ mul.s $f6,$f4,$f8
/* f075508: 46065100 */ add.s $f4,$f10,$f6
/* f07550c: c60a0004 */ lwc1 $f10,0x4($s0)
/* f075510: e604000c */ swc1 $f4,0xc($s0)
/* f075514: c462004c */ lwc1 $f2,0x4c($v1)
/* f075518: c7a805dc */ lwc1 $f8,0x5dc($sp)
/* f07551c: 8fa40074 */ lw $a0,0x74($sp)
/* f075520: 46025182 */ mul.s $f6,$f10,$f2
/* f075524: c7aa05e4 */ lwc1 $f10,0x5e4($sp)
/* f075528: 46064100 */ add.s $f4,$f8,$f6
/* f07552c: e7a405dc */ swc1 $f4,0x5dc($sp)
/* f075530: c608000c */ lwc1 $f8,0xc($s0)
/* f075534: 46024182 */ mul.s $f6,$f8,$f2
/* f075538: 46065100 */ add.s $f4,$f10,$f6
/* f07553c: 0c0059e9 */ jal mtx3ToMtx4
/* f075540: e7a405e4 */ swc1 $f4,0x5e4($sp)
/* f075544: 26050020 */ addiu $a1,$s0,0x20
/* f075548: 3c06800a */ lui $a2,0x800a
/* f07554c: 8cc6e504 */ lw $a2,-0x1afc($a2)
/* f075550: afa50064 */ sw $a1,0x64($sp)
/* f075554: 0fc25942 */ jal func0f096698
/* f075558: 27a4030c */ addiu $a0,$sp,0x30c
/* f07555c: 27a4030c */ addiu $a0,$sp,0x30c
/* f075560: 0c0059fc */ jal mtx4ToMtx3
/* f075564: 8fa50074 */ lw $a1,0x74($sp)
/* f075568: c6480008 */ lwc1 $f8,0x8($s2)
/* f07556c: 26440028 */ addiu $a0,$s2,0x28
/* f075570: 27a505b8 */ addiu $a1,$sp,0x5b8
/* f075574: e7a805c8 */ swc1 $f8,0x5c8($sp)
/* f075578: c64a000c */ lwc1 $f10,0xc($s2)
/* f07557c: e7aa05cc */ swc1 $f10,0x5cc($sp)
/* f075580: c6460010 */ lwc1 $f6,0x10($s2)
/* f075584: afa4006c */ sw $a0,0x6c($sp)
/* f075588: 0fc19661 */ jal roomsCopy
/* f07558c: e7a605d0 */ swc1 $f6,0x5d0($sp)
/* f075590: 8e040088 */ lw $a0,0x88($s0)
/* f075594: 50800004 */ beqzl $a0,.PB0f0755a8
/* f075598: 8e0c0000 */ lw $t4,0x0($s0)
/* f07559c: 0fc190d6 */ jal propSetPerimEnabled
/* f0755a0: 00002825 */ move $a1,$zero
/* f0755a4: 8e0c0000 */ lw $t4,0x0($s0)
.PB0f0755a8:
/* f0755a8: 318f0004 */ andi $t7,$t4,0x4
/* f0755ac: 11e00007 */ beqz $t7,.PB0f0755cc
/* f0755b0: 02202025 */ move $a0,$s1
/* f0755b4: 27a505dc */ addiu $a1,$sp,0x5dc
/* f0755b8: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f0755bc: 0fc1b3b6 */ jal func0f06cd00
/* f0755c0: 27a705f4 */ addiu $a3,$sp,0x5f4
/* f0755c4: 10000007 */ b .PB0f0755e4
/* f0755c8: afa20600 */ sw $v0,0x600($sp)
.PB0f0755cc:
/* f0755cc: 02202025 */ move $a0,$s1
/* f0755d0: 27a505dc */ addiu $a1,$sp,0x5dc
/* f0755d4: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f0755d8: 0fc1b555 */ jal func0f06d37c
/* f0755dc: 27a705f4 */ addiu $a3,$sp,0x5f4
/* f0755e0: afa20600 */ sw $v0,0x600($sp)
.PB0f0755e4:
/* f0755e4: 8e040088 */ lw $a0,0x88($s0)
/* f0755e8: 50800004 */ beqzl $a0,.PB0f0755fc
/* f0755ec: 240e0001 */ li $t6,0x1
/* f0755f0: 0fc190d6 */ jal propSetPerimEnabled
/* f0755f4: 24050001 */ li $a1,0x1
/* f0755f8: 240e0001 */ li $t6,0x1
.PB0f0755fc:
/* f0755fc: afae05d8 */ sw $t6,0x5d8($sp)
/* f075600: 8e190000 */ lw $t9,0x0($s0)
/* f075604: 33380004 */ andi $t8,$t9,0x4
/* f075608: 53000318 */ beqzl $t8,.PB0f07626c
/* f07560c: 8fae034c */ lw $t6,0x34c($sp)
/* f075610: 8fa90600 */ lw $t1,0x600($sp)
/* f075614: 3c038007 */ lui $v1,0x8007
/* f075618: 552002da */ bnezl $t1,.PB0f076184
/* f07561c: 8faa034c */ lw $t2,0x34c($sp)
/* f075620: 8c63b000 */ lw $v1,-0x5000($v1)
/* f075624: afa001f8 */ sw $zero,0x1f8($sp)
/* f075628: afa001f4 */ sw $zero,0x1f4($sp)
/* f07562c: 5060000a */ beqzl $v1,.PB0f075658
/* f075630: 92220003 */ lbu $v0,0x3($s1)
/* f075634: afa301f4 */ sw $v1,0x1f4($sp)
/* f075638: 8c620018 */ lw $v0,0x18($v1)
/* f07563c: 10400005 */ beqz $v0,.PB0f075654
/* f075640: 00401825 */ move $v1,$v0
.PB0f075644:
/* f075644: 8c420018 */ lw $v0,0x18($v0)
/* f075648: 5440fffe */ bnezl $v0,.PB0f075644
/* f07564c: 00401825 */ move $v1,$v0
/* f075650: afa301f4 */ sw $v1,0x1f4($sp)
.PB0f075654:
/* f075654: 92220003 */ lbu $v0,0x3($s1)
.PB0f075658:
/* f075658: 2401000d */ li $at,0xd
/* f07565c: 8faa01f4 */ lw $t2,0x1f4($sp)
/* f075660: 54410006 */ bnel $v0,$at,.PB0f07567c
/* f075664: 24010008 */ li $at,0x8
/* f075668: 15400030 */ bnez $t2,.PB0f07572c
/* f07566c: 240b0001 */ li $t3,0x1
/* f075670: 1000002e */ b .PB0f07572c
/* f075674: afab01f8 */ sw $t3,0x1f8($sp)
/* f075678: 24010008 */ li $at,0x8
.PB0f07567c:
/* f07567c: 5441002c */ bnel $v0,$at,.PB0f075730
/* f075680: 8fb801f8 */ lw $t8,0x1f8($sp)
/* f075684: 9227005c */ lbu $a3,0x5c($s1)
/* f075688: 24010022 */ li $at,0x22
/* f07568c: 10e10016 */ beq $a3,$at,.PB0f0756e8
/* f075690: 24010020 */ li $at,0x20
/* f075694: 10e10014 */ beq $a3,$at,.PB0f0756e8
/* f075698: 24010021 */ li $at,0x21
/* f07569c: 10e10012 */ beq $a3,$at,.PB0f0756e8
/* f0756a0: 2401003d */ li $at,0x3d
/* f0756a4: 10e10010 */ beq $a3,$at,.PB0f0756e8
/* f0756a8: 2401003e */ li $at,0x3e
/* f0756ac: 10e1000e */ beq $a3,$at,.PB0f0756e8
/* f0756b0: 2401003f */ li $at,0x3f
/* f0756b4: 10e1000c */ beq $a3,$at,.PB0f0756e8
/* f0756b8: 24010056 */ li $at,0x56
/* f0756bc: 10e1000a */ beq $a3,$at,.PB0f0756e8
/* f0756c0: 2401001a */ li $at,0x1a
/* f0756c4: 10e10008 */ beq $a3,$at,.PB0f0756e8
/* f0756c8: 24010035 */ li $at,0x35
/* f0756cc: 10e10006 */ beq $a3,$at,.PB0f0756e8
/* f0756d0: 2624005c */ addiu $a0,$s1,0x5c
/* f0756d4: 0fc2c8ae */ jal gsetHasFunctionFlags
/* f0756d8: 24050100 */ li $a1,0x100
/* f0756dc: 50400014 */ beqzl $v0,.PB0f075730
/* f0756e0: 8fb801f8 */ lw $t8,0x1f8($sp)
/* f0756e4: 9227005c */ lbu $a3,0x5c($s1)
.PB0f0756e8:
/* f0756e8: 240c0001 */ li $t4,0x1
/* f0756ec: 24010055 */ li $at,0x55
/* f0756f0: 14e1000e */ bne $a3,$at,.PB0f07572c
/* f0756f4: afac01f8 */ sw $t4,0x1f8($sp)
/* f0756f8: 922f005f */ lbu $t7,0x5f($s1)
/* f0756fc: 24010001 */ li $at,0x1
/* f075700: 55e1000b */ bnel $t7,$at,.PB0f075730
/* f075704: 8fb801f8 */ lw $t8,0x1f8($sp)
/* f075708: 862e0062 */ lh $t6,0x62($s1)
/* f07570c: 24010001 */ li $at,0x1
/* f075710: 24190190 */ li $t9,0x190
/* f075714: 55c10005 */ bnel $t6,$at,.PB0f07572c
/* f075718: a6390062 */ sh $t9,0x62($s1)
/* f07571c: afa001f8 */ sw $zero,0x1f8($sp)
/* f075720: 10000002 */ b .PB0f07572c
/* f075724: a6200062 */ sh $zero,0x62($s1)
/* f075728: a6390062 */ sh $t9,0x62($s1)
.PB0f07572c:
/* f07572c: 8fb801f8 */ lw $t8,0x1f8($sp)
.PB0f075730:
/* f075730: 00004025 */ move $t0,$zero
/* f075734: 53000071 */ beqzl $t8,.PB0f0758fc
/* f075738: 8fae034c */ lw $t6,0x34c($sp)
/* f07573c: 92290003 */ lbu $t1,0x3($s1)
/* f075740: 3c038007 */ lui $v1,0x8007
/* f075744: 24010008 */ li $at,0x8
/* f075748: 15210002 */ bne $t1,$at,.PB0f075754
/* f07574c: 8c63b000 */ lw $v1,-0x5000($v1)
/* f075750: 02204025 */ move $t0,$s1
.PB0f075754:
/* f075754: 50600017 */ beqzl $v1,.PB0f0757b4
/* f075758: 8faa01f4 */ lw $t2,0x1f4($sp)
/* f07575c: 90620000 */ lbu $v0,0x0($v1)
/* f075760: 24010001 */ li $at,0x1
/* f075764: 10410005 */ beq $v0,$at,.PB0f07577c
/* f075768: 24010004 */ li $at,0x4
/* f07576c: 10410003 */ beq $v0,$at,.PB0f07577c
/* f075770: 24010002 */ li $at,0x2
/* f075774: 5441000f */ bnel $v0,$at,.PB0f0757b4
/* f075778: 8faa01f4 */ lw $t2,0x1f4($sp)
.PB0f07577c:
/* f07577c: 1100000c */ beqz $t0,.PB0f0757b0
/* f075780: 8c640004 */ lw $a0,0x4($v1)
/* f075784: 9102005c */ lbu $v0,0x5c($t0)
/* f075788: 24010056 */ li $at,0x56
/* f07578c: 10410003 */ beq $v0,$at,.PB0f07579c
/* f075790: 2401001a */ li $at,0x1a
/* f075794: 54410007 */ bnel $v0,$at,.PB0f0757b4
/* f075798: 8faa01f4 */ lw $t2,0x1f4($sp)
.PB0f07579c:
/* f07579c: 908d0003 */ lbu $t5,0x3($a0)
/* f0757a0: 24010008 */ li $at,0x8
/* f0757a4: 55a10003 */ bnel $t5,$at,.PB0f0757b4
/* f0757a8: 8faa01f4 */ lw $t2,0x1f4($sp)
/* f0757ac: afa001f8 */ sw $zero,0x1f8($sp)
.PB0f0757b0:
/* f0757b0: 8faa01f4 */ lw $t2,0x1f4($sp)
.PB0f0757b4:
/* f0757b4: 51400051 */ beqzl $t2,.PB0f0758fc
/* f0757b8: 8fae034c */ lw $t6,0x34c($sp)
/* f0757bc: 91420000 */ lbu $v0,0x0($t2)
/* f0757c0: 24010001 */ li $at,0x1
/* f0757c4: 8fab01f4 */ lw $t3,0x1f4($sp)
/* f0757c8: 10410006 */ beq $v0,$at,.PB0f0757e4
/* f0757cc: 3c098007 */ lui $t1,0x8007
/* f0757d0: 24010004 */ li $at,0x4
/* f0757d4: 10410003 */ beq $v0,$at,.PB0f0757e4
/* f0757d8: 24010002 */ li $at,0x2
/* f0757dc: 5441003a */ bnel $v0,$at,.PB0f0758c8
/* f0757e0: 24010003 */ li $at,0x3
.PB0f0757e4:
/* f0757e4: 8d630004 */ lw $v1,0x4($t3)
/* f0757e8: 8c6c0040 */ lw $t4,0x40($v1)
/* f0757ec: 318f0080 */ andi $t7,$t4,0x80
/* f0757f0: 11e00007 */ beqz $t7,.PB0f075810
/* f0757f4: 00000000 */ nop
/* f0757f8: 8c6e0048 */ lw $t6,0x48($v1)
/* f0757fc: 8dd90000 */ lw $t9,0x0($t6)
/* f075800: 33380800 */ andi $t8,$t9,0x800
/* f075804: 17000002 */ bnez $t8,.PB0f075810
/* f075808: 00000000 */ nop
/* f07580c: afa001f8 */ sw $zero,0x1f8($sp)
.PB0f075810:
/* f075810: 8d29b014 */ lw $t1,-0x4fec($t1)
/* f075814: 24012710 */ li $at,0x2710
/* f075818: 15210002 */ bne $t1,$at,.PB0f075824
/* f07581c: 00000000 */ nop
/* f075820: afa001f8 */ sw $zero,0x1f8($sp)
.PB0f075824:
/* f075824: 51000035 */ beqzl $t0,.PB0f0758fc
/* f075828: 8fae034c */ lw $t6,0x34c($sp)
/* f07582c: 9102005c */ lbu $v0,0x5c($t0)
/* f075830: 24010056 */ li $at,0x56
/* f075834: 10410003 */ beq $v0,$at,.PB0f075844
/* f075838: 2401001a */ li $at,0x1a
/* f07583c: 5441002f */ bnel $v0,$at,.PB0f0758fc
/* f075840: 8fae034c */ lw $t6,0x34c($sp)
.PB0f075844:
/* f075844: 90620003 */ lbu $v0,0x3($v1)
/* f075848: 2401002a */ li $at,0x2a
/* f07584c: 26440008 */ addiu $a0,$s2,0x8
/* f075850: 10410003 */ beq $v0,$at,.PB0f075860
/* f075854: 8fa5006c */ lw $a1,0x6c($sp)
/* f075858: 2401002f */ li $at,0x2f
/* f07585c: 14410026 */ bne $v0,$at,.PB0f0758f8
.PB0f075860:
/* f075860: 2406ffff */ li $a2,-1
/* f075864: afa301e4 */ sw $v1,0x1e4($sp)
/* f075868: afa40070 */ sw $a0,0x70($sp)
/* f07586c: 0fc2a1e8 */ jal bgunPlayGlassHitSound
/* f075870: afa801ec */ sw $t0,0x1ec($sp)
/* f075874: 8fa401e4 */ lw $a0,0x1e4($sp)
/* f075878: 8fa801ec */ lw $t0,0x1ec($sp)
/* f07587c: 3c0542c8 */ lui $a1,0x42c8
/* f075880: 8c8d000c */ lw $t5,0xc($a0)
/* f075884: 8fa60070 */ lw $a2,0x70($sp)
/* f075888: 3c0b800a */ lui $t3,0x800a
/* f07588c: 31aa4000 */ andi $t2,$t5,0x4000
/* f075890: 5540001a */ bnezl $t2,.PB0f0758fc
/* f075894: 8fae034c */ lw $t6,0x34c($sp)
/* f075898: 8d6be75c */ lw $t3,-0x18a4($t3)
/* f07589c: 9107005c */ lbu $a3,0x5c($t0)
/* f0758a0: afa001f8 */ sw $zero,0x1f8($sp)
/* f0758a4: 0fc21504 */ jal objTakeGunfire
/* f0758a8: afab0010 */ sw $t3,0x10($sp)
/* f0758ac: 8fa401f4 */ lw $a0,0x1f4($sp)
/* f0758b0: 0fc1c21c */ jal objDropRecursively
/* f0758b4: 00002825 */ move $a1,$zero
/* f0758b8: 240c0001 */ li $t4,0x1
/* f0758bc: 1000000e */ b .PB0f0758f8
/* f0758c0: afac034c */ sw $t4,0x34c($sp)
/* f0758c4: 24010003 */ li $at,0x3
.PB0f0758c8:
/* f0758c8: 10410004 */ beq $v0,$at,.PB0f0758dc
/* f0758cc: 8faf01f4 */ lw $t7,0x1f4($sp)
/* f0758d0: 24010006 */ li $at,0x6
/* f0758d4: 54410009 */ bnel $v0,$at,.PB0f0758fc
/* f0758d8: 8fae034c */ lw $t6,0x34c($sp)
.PB0f0758dc:
/* f0758dc: 0fc0d025 */ jal chrGetShield
/* f0758e0: 8de40004 */ lw $a0,0x4($t7)
/* f0758e4: 4600a03c */ c.lt.s $f20,$f0
/* f0758e8: 00000000 */ nop
/* f0758ec: 45020003 */ bc1fl .PB0f0758fc
/* f0758f0: 8fae034c */ lw $t6,0x34c($sp)
/* f0758f4: afa001f8 */ sw $zero,0x1f8($sp)
.PB0f0758f8:
/* f0758f8: 8fae034c */ lw $t6,0x34c($sp)
.PB0f0758fc:
/* f0758fc: 3c198007 */ lui $t9,0x8007
/* f075900: 55c00163 */ bnezl $t6,.PB0f075e90
/* f075904: 8faf034c */ lw $t7,0x34c($sp)
/* f075908: 8f39b000 */ lw $t9,-0x5000($t9)
/* f07590c: 1320015f */ beqz $t9,.PB0f075e8c
/* f075910: afb90068 */ sw $t9,0x68($sp)
/* f075914: 92380003 */ lbu $t8,0x3($s1)
/* f075918: 24010008 */ li $at,0x8
/* f07591c: 5701015c */ bnel $t8,$at,.PB0f075e90
/* f075920: 8faf034c */ lw $t7,0x34c($sp)
/* f075924: 9227005c */ lbu $a3,0x5c($s1)
/* f075928: 24010056 */ li $at,0x56
/* f07592c: 8fa901f4 */ lw $t1,0x1f4($sp)
/* f075930: 10e10003 */ beq $a3,$at,.PB0f075940
/* f075934: 2401001a */ li $at,0x1a
/* f075938: 54e100aa */ bnel $a3,$at,.PB0f075be4
/* f07593c: 24010053 */ li $at,0x53
.PB0f075940:
/* f075940: 91220000 */ lbu $v0,0x0($t1)
/* f075944: 24010003 */ li $at,0x3
/* f075948: 10410006 */ beq $v0,$at,.PB0f075964
/* f07594c: 24010006 */ li $at,0x6
/* f075950: 54410072 */ bnel $v0,$at,.PB0f075b1c
/* f075954: 24010001 */ li $at,0x1
/* f075958: 8d2d0004 */ lw $t5,0x4($t1)
/* f07595c: 51a0006f */ beqzl $t5,.PB0f075b1c
/* f075960: 24010001 */ li $at,0x1
.PB0f075964:
/* f075964: 8e220048 */ lw $v0,0x48($s1)
/* f075968: 8faa01f4 */ lw $t2,0x1f4($sp)
/* f07596c: 8c4b0000 */ lw $t3,0x0($v0)
/* f075970: 8d440004 */ lw $a0,0x4($t2)
/* f075974: 316c0001 */ andi $t4,$t3,0x1
/* f075978: 51800145 */ beqzl $t4,.PB0f075e90
/* f07597c: 8faf034c */ lw $t7,0x34c($sp)
/* f075980: 8c4f0090 */ lw $t7,0x90($v0)
/* f075984: 2627005c */ addiu $a3,$s1,0x5c
/* f075988: 5de00141 */ bgtzl $t7,.PB0f075e90
/* f07598c: 8faf034c */ lw $t7,0x34c($sp)
/* f075990: 8c4e0088 */ lw $t6,0x88($v0)
/* f075994: afa70070 */ sw $a3,0x70($sp)
/* f075998: afa401dc */ sw $a0,0x1dc($sp)
/* f07599c: 0fc0d025 */ jal chrGetShield
/* f0759a0: afae01d4 */ sw $t6,0x1d4($sp)
/* f0759a4: 8fa40070 */ lw $a0,0x70($sp)
/* f0759a8: 0fc2c84e */ jal gsetGetDamage
/* f0759ac: e7a001d8 */ swc1 $f0,0x1d8($sp)
/* f0759b0: 3c188007 */ lui $t8,0x8007
/* f0759b4: 3c098007 */ lui $t1,0x8007
/* f0759b8: 3c0d800a */ lui $t5,0x800a
/* f0759bc: 3c0a800a */ lui $t2,0x800a
/* f0759c0: 3c0b8007 */ lui $t3,0x8007
/* f0759c4: 8d6bb008 */ lw $t3,-0x4ff8($t3)
/* f0759c8: 8d4a1390 */ lw $t2,0x1390($t2)
/* f0759cc: 8dad1394 */ lw $t5,0x1394($t5)
/* f0759d0: 8d29b000 */ lw $t1,-0x5000($t1)
/* f0759d4: 8f18b004 */ lw $t8,-0x4ffc($t8)
/* f0759d8: 8fb901d4 */ lw $t9,0x1d4($sp)
/* f0759dc: 3c0c8007 */ lui $t4,0x8007
/* f0759e0: 258cb00c */ addiu $t4,$t4,-20468
/* f0759e4: 44050000 */ mfc1 $a1,$f0
/* f0759e8: 3c06800a */ lui $a2,0x800a
/* f0759ec: 24c61398 */ addiu $a2,$a2,0x1398
/* f0759f0: afac0028 */ sw $t4,0x28($sp)
/* f0759f4: 8fa70070 */ lw $a3,0x70($sp)
/* f0759f8: 8fa401dc */ lw $a0,0x1dc($sp)
/* f0759fc: afab0024 */ sw $t3,0x24($sp)
/* f075a00: afaa0020 */ sw $t2,0x20($sp)
/* f075a04: afad001c */ sw $t5,0x1c($sp)
/* f075a08: afa90018 */ sw $t1,0x18($sp)
/* f075a0c: afb80014 */ sw $t8,0x14($sp)
/* f075a10: 0fc0d0b4 */ jal func0f0341dc
/* f075a14: afb90010 */ sw $t9,0x10($sp)
/* f075a18: c7a401d8 */ lwc1 $f4,0x1d8($sp)
/* f075a1c: 8faf01d4 */ lw $t7,0x1d4($sp)
/* f075a20: 3c058007 */ lui $a1,0x8007
/* f075a24: 4614203e */ c.le.s $f4,$f20
/* f075a28: 3c068007 */ lui $a2,0x8007
/* f075a2c: 27a705e8 */ addiu $a3,$sp,0x5e8
/* f075a30: 27b905f4 */ addiu $t9,$sp,0x5f4
/* f075a34: 45020116 */ bc1fl .PB0f075e90
/* f075a38: 8faf034c */ lw $t7,0x34c($sp)
/* f075a3c: 51e00005 */ beqzl $t7,.PB0f075a54
/* f075a40: afa00088 */ sw $zero,0x88($sp)
/* f075a44: 8dee0004 */ lw $t6,0x4($t7)
/* f075a48: 10000002 */ b .PB0f075a54
/* f075a4c: afae0088 */ sw $t6,0x88($sp)
/* f075a50: afa00088 */ sw $zero,0x88($sp)
.PB0f075a54:
/* f075a54: 8fb80088 */ lw $t8,0x88($sp)
/* f075a58: 8fa401dc */ lw $a0,0x1dc($sp)
/* f075a5c: 8ca5b000 */ lw $a1,-0x5000($a1)
/* f075a60: 8cc6b004 */ lw $a2,-0x4ffc($a2)
/* f075a64: afb90010 */ sw $t9,0x10($sp)
/* f075a68: 0fc097dd */ jal chrEmitSparks
/* f075a6c: afb80014 */ sw $t8,0x14($sp)
/* f075a70: 3c098007 */ lui $t1,0x8007
/* f075a74: 8d29b000 */ lw $t1,-0x5000($t1)
/* f075a78: 3c04800a */ lui $a0,0x800a
/* f075a7c: 912d0001 */ lbu $t5,0x1($t1)
/* f075a80: 31aa0002 */ andi $t2,$t5,0x2
/* f075a84: 51400102 */ beqzl $t2,.PB0f075e90
/* f075a88: 8faf034c */ lw $t7,0x34c($sp)
/* f075a8c: 8c841390 */ lw $a0,0x1390($a0)
/* f075a90: 3c028007 */ lui $v0,0x8007
/* f075a94: 508000fe */ beqzl $a0,.PB0f075e90
/* f075a98: 8faf034c */ lw $t7,0x34c($sp)
/* f075a9c: 8c42b004 */ lw $v0,-0x4ffc($v0)
/* f075aa0: 24010064 */ li $at,0x64
/* f075aa4: 104100f9 */ beq $v0,$at,.PB0f075e8c
/* f075aa8: 2401006e */ li $at,0x6e
/* f075aac: 104100f7 */ beq $v0,$at,.PB0f075e8c
/* f075ab0: 3c05800a */ lui $a1,0x800a
/* f075ab4: 8ca51394 */ lw $a1,0x1394($a1)
/* f075ab8: 0c006c07 */ jal model0001a5cc
/* f075abc: 00003025 */ move $a2,$zero
/* f075ac0: 0fc2d6c2 */ jal camGetWorldToScreenMtxf
/* f075ac4: afa20184 */ sw $v0,0x184($sp)
/* f075ac8: 00402025 */ move $a0,$v0
/* f075acc: 27a505e8 */ addiu $a1,$sp,0x5e8
/* f075ad0: 0c00596e */ jal mtx4TransformVec
/* f075ad4: 27a601c8 */ addiu $a2,$sp,0x1c8
/* f075ad8: 8fa40184 */ lw $a0,0x184($sp)
/* f075adc: 0c005efb */ jal mtx0001719c
/* f075ae0: 27a50188 */ addiu $a1,$sp,0x188
/* f075ae4: 27a40188 */ addiu $a0,$sp,0x188
/* f075ae8: 0c00596d */ jal mtx4TransformVecInPlace
/* f075aec: 27a501c8 */ addiu $a1,$sp,0x1c8
/* f075af0: 3c04800a */ lui $a0,0x800a
/* f075af4: 3c058007 */ lui $a1,0x8007
/* f075af8: 3c06800a */ lui $a2,0x800a
/* f075afc: 8cc61394 */ lw $a2,0x1394($a2)
/* f075b00: 8ca5b004 */ lw $a1,-0x4ffc($a1)
/* f075b04: 8c841390 */ lw $a0,0x1390($a0)
/* f075b08: 0fc09865 */ jal chr0f0260c4
/* f075b0c: 27a701c8 */ addiu $a3,$sp,0x1c8
/* f075b10: 100000df */ b .PB0f075e90
/* f075b14: 8faf034c */ lw $t7,0x34c($sp)
/* f075b18: 24010001 */ li $at,0x1
.PB0f075b1c:
/* f075b1c: 144100db */ bne $v0,$at,.PB0f075e8c
/* f075b20: 8fab01f4 */ lw $t3,0x1f4($sp)
/* f075b24: 3c0f8007 */ lui $t7,0x8007
/* f075b28: 8defb014 */ lw $t7,-0x4fec($t7)
/* f075b2c: 8d6c0004 */ lw $t4,0x4($t3)
/* f075b30: 24012710 */ li $at,0x2710
/* f075b34: 15e1001a */ bne $t7,$at,.PB0f075ba0
/* f075b38: afac0180 */ sw $t4,0x180($sp)
/* f075b3c: 8d8e0010 */ lw $t6,0x10($t4)
/* f075b40: 8fa60068 */ lw $a2,0x68($sp)
/* f075b44: 8fa401f4 */ lw $a0,0x1f4($sp)
/* f075b48: 31d91000 */ andi $t9,$t6,0x1000
/* f075b4c: 13200005 */ beqz $t9,.PB0f075b64
/* f075b50: 3c07800a */ lui $a3,0x800a
/* f075b54: 3c014080 */ lui $at,0x4080
/* f075b58: 44810000 */ mtc1 $at,$f0
/* f075b5c: 10000004 */ b .PB0f075b70
/* f075b60: 00000000 */ nop
.PB0f075b64:
/* f075b64: 3c014100 */ lui $at,0x4100
/* f075b68: 44810000 */ mtc1 $at,$f0
/* f075b6c: 00000000 */ nop
.PB0f075b70:
/* f075b70: 3c18800a */ lui $t8,0x800a
/* f075b74: 3c098007 */ lui $t1,0x8007
/* f075b78: 8d29b008 */ lw $t1,-0x4ff8($t1)
/* f075b7c: 8f181390 */ lw $t8,0x1390($t8)
/* f075b80: 3c0d8007 */ lui $t5,0x8007
/* f075b84: 25adb00c */ addiu $t5,$t5,-20468
/* f075b88: 44050000 */ mfc1 $a1,$f0
/* f075b8c: afad0018 */ sw $t5,0x18($sp)
/* f075b90: 8ce71394 */ lw $a3,0x1394($a3)
/* f075b94: afa90014 */ sw $t1,0x14($sp)
/* f075b98: 0fc0a413 */ jal shieldhitCreate
/* f075b9c: afb80010 */ sw $t8,0x10($sp)
.PB0f075ba0:
/* f075ba0: 8faa0180 */ lw $t2,0x180($sp)
/* f075ba4: 2401014c */ li $at,0x14c
/* f075ba8: 3c0f8007 */ lui $t7,0x8007
/* f075bac: 854b0004 */ lh $t3,0x4($t2)
/* f075bb0: 556100b7 */ bnel $t3,$at,.PB0f075e90
/* f075bb4: 8faf034c */ lw $t7,0x34c($sp)
/* f075bb8: 8defb014 */ lw $t7,-0x4fec($t7)
/* f075bbc: 24010b9e */ li $at,0xb9e
/* f075bc0: 01402025 */ move $a0,$t2
/* f075bc4: 55e100b2 */ bnel $t7,$at,.PB0f075e90
/* f075bc8: 8faf034c */ lw $t7,0x34c($sp)
/* f075bcc: 4406a000 */ mfc1 $a2,$f20
/* f075bd0: 0fc68a52 */ jal frCalculateHit
/* f075bd4: 27a505e8 */ addiu $a1,$sp,0x5e8
/* f075bd8: 100000ad */ b .PB0f075e90
/* f075bdc: 8faf034c */ lw $t7,0x34c($sp)
/* f075be0: 24010053 */ li $at,0x53
.PB0f075be4:
/* f075be4: 10e10003 */ beq $a3,$at,.PB0f075bf4
/* f075be8: 24010054 */ li $at,0x54
/* f075bec: 14e1006b */ bne $a3,$at,.PB0f075d9c
/* f075bf0: 8fa901f4 */ lw $t1,0x1f4($sp)
.PB0f075bf4:
/* f075bf4: 8e2c0040 */ lw $t4,0x40($s1)
/* f075bf8: 3c01f000 */ lui $at,0xf000
/* f075bfc: 8fb80068 */ lw $t8,0x68($sp)
/* f075c00: 01817024 */ and $t6,$t4,$at
/* f075c04: 000ecf02 */ srl $t9,$t6,0x1c
/* f075c08: afb9017c */ sw $t9,0x17c($sp)
/* f075c0c: 93020000 */ lbu $v0,0x0($t8)
/* f075c10: 24010003 */ li $at,0x3
/* f075c14: 24090001 */ li $t1,0x1
/* f075c18: 10410006 */ beq $v0,$at,.PB0f075c34
/* f075c1c: afa9034c */ sw $t1,0x34c($sp)
/* f075c20: 24010006 */ li $at,0x6
/* f075c24: 5441002b */ bnel $v0,$at,.PB0f075cd4
/* f075c28: 24010001 */ li $at,0x1
/* f075c2c: 8f0d0004 */ lw $t5,0x4($t8)
/* f075c30: 11a00027 */ beqz $t5,.PB0f075cd0
.PB0f075c34:
/* f075c34: 3c0b800a */ lui $t3,0x800a
/* f075c38: 8d6be7e8 */ lw $t3,-0x1818($t3)
/* f075c3c: 00001825 */ move $v1,$zero
/* f075c40: 2627005c */ addiu $a3,$s1,0x5c
/* f075c44: 11600008 */ beqz $t3,.PB0f075c68
/* f075c48: 8fa4017c */ lw $a0,0x17c($sp)
/* f075c4c: afa00178 */ sw $zero,0x178($sp)
/* f075c50: 0fc63b03 */ jal mpGetChrFromPlayerIndex
/* f075c54: afa70070 */ sw $a3,0x70($sp)
/* f075c58: 8fa30178 */ lw $v1,0x178($sp)
/* f075c5c: 10400002 */ beqz $v0,.PB0f075c68
/* f075c60: 8fa70070 */ lw $a3,0x70($sp)
/* f075c64: 8c43001c */ lw $v1,0x1c($v0)
.PB0f075c68:
/* f075c68: 3c028007 */ lui $v0,0x8007
/* f075c6c: 8c42b000 */ lw $v0,-0x5000($v0)
/* f075c70: 3c0f8007 */ lui $t7,0x8007
/* f075c74: 3c0a800a */ lui $t2,0x800a
/* f075c78: 8c440004 */ lw $a0,0x4($v0)
/* f075c7c: 3c0c800a */ lui $t4,0x800a
/* f075c80: 3c0e8007 */ lui $t6,0x8007
/* f075c84: 8dceb008 */ lw $t6,-0x4ff8($t6)
/* f075c88: 8d8c1390 */ lw $t4,0x1390($t4)
/* f075c8c: 8d4a1394 */ lw $t2,0x1394($t2)
/* f075c90: 8defb004 */ lw $t7,-0x4ffc($t7)
/* f075c94: 3c198007 */ lui $t9,0x8007
/* f075c98: 2739b00c */ addiu $t9,$t9,-20468
/* f075c9c: 3c06800a */ lui $a2,0x800a
/* f075ca0: 24c61398 */ addiu $a2,$a2,0x1398
/* f075ca4: afb90028 */ sw $t9,0x28($sp)
/* f075ca8: afa30010 */ sw $v1,0x10($sp)
/* f075cac: 3c054000 */ lui $a1,0x4000
/* f075cb0: afa20018 */ sw $v0,0x18($sp)
/* f075cb4: afae0024 */ sw $t6,0x24($sp)
/* f075cb8: afac0020 */ sw $t4,0x20($sp)
/* f075cbc: afaa001c */ sw $t2,0x1c($sp)
/* f075cc0: 0fc0d0b4 */ jal func0f0341dc
/* f075cc4: afaf0014 */ sw $t7,0x14($sp)
/* f075cc8: 1000002f */ b .PB0f075d88
/* f075ccc: 02202025 */ move $a0,$s1
.PB0f075cd0:
/* f075cd0: 24010001 */ li $at,0x1
.PB0f075cd4:
/* f075cd4: 10410003 */ beq $v0,$at,.PB0f075ce4
/* f075cd8: 8fa60068 */ lw $a2,0x68($sp)
/* f075cdc: 24010004 */ li $at,0x4
/* f075ce0: 14410028 */ bne $v0,$at,.PB0f075d84
.PB0f075ce4:
/* f075ce4: 3c188007 */ lui $t8,0x8007
/* f075ce8: 8f18b014 */ lw $t8,-0x4fec($t8)
/* f075cec: 26490008 */ addiu $t1,$s2,0x8
/* f075cf0: afa90070 */ sw $t1,0x70($sp)
/* f075cf4: 24012710 */ li $at,0x2710
/* f075cf8: 1701001d */ bne $t8,$at,.PB0f075d70
/* f075cfc: 8cc40004 */ lw $a0,0x4($a2)
/* f075d00: 8c8d0010 */ lw $t5,0x10($a0)
/* f075d04: 8fa401f4 */ lw $a0,0x1f4($sp)
/* f075d08: 3c07800a */ lui $a3,0x800a
/* f075d0c: 31ab1000 */ andi $t3,$t5,0x1000
/* f075d10: 11600005 */ beqz $t3,.PB0f075d28
/* f075d14: 3c0f800a */ lui $t7,0x800a
/* f075d18: 3c014080 */ lui $at,0x4080
/* f075d1c: 44810000 */ mtc1 $at,$f0
/* f075d20: 10000004 */ b .PB0f075d34
/* f075d24: 00000000 */ nop
.PB0f075d28:
/* f075d28: 3c014100 */ lui $at,0x4100
/* f075d2c: 44810000 */ mtc1 $at,$f0
/* f075d30: 00000000 */ nop
.PB0f075d34:
/* f075d34: 3c0a8007 */ lui $t2,0x8007
/* f075d38: 8d4ab008 */ lw $t2,-0x4ff8($t2)
/* f075d3c: 8def1390 */ lw $t7,0x1390($t7)
/* f075d40: 3c0c8007 */ lui $t4,0x8007
/* f075d44: 258cb00c */ addiu $t4,$t4,-20468
/* f075d48: 44050000 */ mfc1 $a1,$f0
/* f075d4c: afac0018 */ sw $t4,0x18($sp)
/* f075d50: 8ce71394 */ lw $a3,0x1394($a3)
/* f075d54: afaa0014 */ sw $t2,0x14($sp)
/* f075d58: 0fc0a413 */ jal shieldhitCreate
/* f075d5c: afaf0010 */ sw $t7,0x10($sp)
/* f075d60: 3c0e8007 */ lui $t6,0x8007
/* f075d64: 8dceb000 */ lw $t6,-0x5000($t6)
/* f075d68: 9227005c */ lbu $a3,0x5c($s1)
/* f075d6c: 8dc40004 */ lw $a0,0x4($t6)
.PB0f075d70:
/* f075d70: 8fb9017c */ lw $t9,0x17c($sp)
/* f075d74: 3c0542c8 */ lui $a1,0x42c8
/* f075d78: 8fa60070 */ lw $a2,0x70($sp)
/* f075d7c: 0fc21513 */ jal objDamage
/* f075d80: afb90010 */ sw $t9,0x10($sp)
.PB0f075d84:
/* f075d84: 02202025 */ move $a0,$s1
.PB0f075d88:
/* f075d88: 24050001 */ li $a1,0x1
/* f075d8c: 0fc1a792 */ jal func0f069c70
/* f075d90: 24060001 */ li $a2,0x1
/* f075d94: 1000003d */ b .PB0f075e8c
/* f075d98: a6200062 */ sh $zero,0x62($s1)
.PB0f075d9c:
/* f075d9c: 91220000 */ lbu $v0,0x0($t1)
/* f075da0: 24010003 */ li $at,0x3
/* f075da4: 8fa60068 */ lw $a2,0x68($sp)
/* f075da8: 10410006 */ beq $v0,$at,.PB0f075dc4
/* f075dac: 8fad01f4 */ lw $t5,0x1f4($sp)
/* f075db0: 24010006 */ li $at,0x6
/* f075db4: 54410012 */ bnel $v0,$at,.PB0f075e00
/* f075db8: 24010001 */ li $at,0x1
/* f075dbc: 8d380004 */ lw $t8,0x4($t1)
/* f075dc0: 1300000e */ beqz $t8,.PB0f075dfc
.PB0f075dc4:
/* f075dc4: 3c0b8007 */ lui $t3,0x8007
/* f075dc8: 8d6bb008 */ lw $t3,-0x4ff8($t3)
/* f075dcc: 3c0f8007 */ lui $t7,0x8007
/* f075dd0: 8da40004 */ lw $a0,0x4($t5)
/* f075dd4: 25efb00c */ addiu $t7,$t7,-20468
/* f075dd8: 3c05800a */ lui $a1,0x800a
/* f075ddc: 3c07800a */ lui $a3,0x800a
/* f075de0: 8ce71390 */ lw $a3,0x1390($a3)
/* f075de4: 8ca51394 */ lw $a1,0x1394($a1)
/* f075de8: afaf0014 */ sw $t7,0x14($sp)
/* f075dec: 0fc0d05d */ jal func0f034080
/* f075df0: afab0010 */ sw $t3,0x10($sp)
/* f075df4: 10000026 */ b .PB0f075e90
/* f075df8: 8faf034c */ lw $t7,0x34c($sp)
.PB0f075dfc:
/* f075dfc: 24010001 */ li $at,0x1
.PB0f075e00:
/* f075e00: 10410004 */ beq $v0,$at,.PB0f075e14
/* f075e04: 3c0a8007 */ lui $t2,0x8007
/* f075e08: 24010004 */ li $at,0x4
/* f075e0c: 54410020 */ bnel $v0,$at,.PB0f075e90
/* f075e10: 8faf034c */ lw $t7,0x34c($sp)
.PB0f075e14:
/* f075e14: 8d4ab014 */ lw $t2,-0x4fec($t2)
/* f075e18: 24012710 */ li $at,0x2710
/* f075e1c: 8fac01f4 */ lw $t4,0x1f4($sp)
/* f075e20: 1541001a */ bne $t2,$at,.PB0f075e8c
/* f075e24: 8fa60068 */ lw $a2,0x68($sp)
/* f075e28: 8d8e0004 */ lw $t6,0x4($t4)
/* f075e2c: 8fa401f4 */ lw $a0,0x1f4($sp)
/* f075e30: 3c07800a */ lui $a3,0x800a
/* f075e34: 8dd90010 */ lw $t9,0x10($t6)
/* f075e38: 3c18800a */ lui $t8,0x800a
/* f075e3c: 3c0d8007 */ lui $t5,0x8007
/* f075e40: 33291000 */ andi $t1,$t9,0x1000
/* f075e44: 11200005 */ beqz $t1,.PB0f075e5c
/* f075e48: 3c0b8007 */ lui $t3,0x8007
/* f075e4c: 3c014080 */ lui $at,0x4080
/* f075e50: 44810000 */ mtc1 $at,$f0
/* f075e54: 10000004 */ b .PB0f075e68
/* f075e58: 00000000 */ nop
.PB0f075e5c:
/* f075e5c: 3c014100 */ lui $at,0x4100
/* f075e60: 44810000 */ mtc1 $at,$f0
/* f075e64: 00000000 */ nop
.PB0f075e68:
/* f075e68: 8f181390 */ lw $t8,0x1390($t8)
/* f075e6c: 8dadb008 */ lw $t5,-0x4ff8($t5)
/* f075e70: 44050000 */ mfc1 $a1,$f0
/* f075e74: 256bb00c */ addiu $t3,$t3,-20468
/* f075e78: afab0018 */ sw $t3,0x18($sp)
/* f075e7c: 8ce71394 */ lw $a3,0x1394($a3)
/* f075e80: afb80010 */ sw $t8,0x10($sp)
/* f075e84: 0fc0a413 */ jal shieldhitCreate
/* f075e88: afad0014 */ sw $t5,0x14($sp)
.PB0f075e8c:
/* f075e8c: 8faf034c */ lw $t7,0x34c($sp)
.PB0f075e90:
/* f075e90: 8faa01f8 */ lw $t2,0x1f8($sp)
/* f075e94: 55e000bb */ bnezl $t7,.PB0f076184
/* f075e98: 8faa034c */ lw $t2,0x34c($sp)
/* f075e9c: 114000b8 */ beqz $t2,.PB0f076180
/* f075ea0: 240c0001 */ li $t4,0x1
/* f075ea4: afac034c */ sw $t4,0x34c($sp)
/* f075ea8: 02202025 */ move $a0,$s1
/* f075eac: 24050001 */ li $a1,0x1
/* f075eb0: 0fc1a792 */ jal func0f069c70
/* f075eb4: 24060001 */ li $a2,0x1
/* f075eb8: 922e0003 */ lbu $t6,0x3($s1)
/* f075ebc: 24010008 */ li $at,0x8
/* f075ec0: 55c100ab */ bnel $t6,$at,.PB0f076170
/* f075ec4: 02402025 */ move $a0,$s2
/* f075ec8: 9227005c */ lbu $a3,0x5c($s1)
/* f075ecc: 24010056 */ li $at,0x56
/* f075ed0: 10e10003 */ beq $a3,$at,.PB0f075ee0
/* f075ed4: 2401001a */ li $at,0x1a
/* f075ed8: 54e100a5 */ bnel $a3,$at,.PB0f076170
/* f075edc: 02402025 */ move $a0,$s2
.PB0f075ee0:
/* f075ee0: 8e390048 */ lw $t9,0x48($s1)
/* f075ee4: 8f240088 */ lw $a0,0x88($t9)
/* f075ee8: 5080006b */ beqzl $a0,.PB0f076098
/* f075eec: 8fae01f4 */ lw $t6,0x1f4($sp)
/* f075ef0: 90890000 */ lbu $t1,0x0($a0)
/* f075ef4: 24010006 */ li $at,0x6
/* f075ef8: 3c18800a */ lui $t8,0x800a
/* f075efc: 15210065 */ bne $t1,$at,.PB0f076094
/* f075f00: 2627005c */ addiu $a3,$s1,0x5c
/* f075f04: 8f18e75c */ lw $t8,-0x18a4($t8)
/* f075f08: afa70070 */ sw $a3,0x70($sp)
/* f075f0c: 0fc4a797 */ jal playermgrGetPlayerNumByProp
/* f075f10: afb80164 */ sw $t8,0x164($sp)
/* f075f14: 0fc4a783 */ jal setCurrentPlayerNum
/* f075f18: 00402025 */ move $a0,$v0
/* f075f1c: 8fa40070 */ lw $a0,0x70($sp)
/* f075f20: 0fc2c20c */ jal mpstatsIncrementPlayerShotCount
/* f075f24: 00002825 */ move $a1,$zero
/* f075f28: 3c058007 */ lui $a1,0x8007
/* f075f2c: 8ca5b000 */ lw $a1,-0x5000($a1)
/* f075f30: 8fa70070 */ lw $a3,0x70($sp)
/* f075f34: 10a00055 */ beqz $a1,.PB0f07608c
/* f075f38: 00000000 */ nop
/* f075f3c: 90a20000 */ lbu $v0,0x0($a1)
/* f075f40: 24010001 */ li $at,0x1
/* f075f44: 5441000c */ bnel $v0,$at,.PB0f075f78
/* f075f48: 24010003 */ li $at,0x3
/* f075f4c: 8ca40004 */ lw $a0,0x4($a1)
/* f075f50: 0fc21ad2 */ jal objIsHealthy
/* f075f54: afa70070 */ sw $a3,0x70($sp)
/* f075f58: 1040004c */ beqz $v0,.PB0f07608c
/* f075f5c: 8fa70070 */ lw $a3,0x70($sp)
/* f075f60: 00e02025 */ move $a0,$a3
/* f075f64: 0fc2c20c */ jal mpstatsIncrementPlayerShotCount
/* f075f68: 24050006 */ li $a1,0x6
/* f075f6c: 10000047 */ b .PB0f07608c
/* f075f70: 00000000 */ nop
/* f075f74: 24010003 */ li $at,0x3
.PB0f075f78:
/* f075f78: 10410003 */ beq $v0,$at,.PB0f075f88
/* f075f7c: 24010006 */ li $at,0x6
/* f075f80: 14410042 */ bne $v0,$at,.PB0f07608c
/* f075f84: 00000000 */ nop
.PB0f075f88:
/* f075f88: 8ca30004 */ lw $v1,0x4($a1)
/* f075f8c: 00003025 */ move $a2,$zero
/* f075f90: 00a02025 */ move $a0,$a1
/* f075f94: 50600007 */ beqzl $v1,.PB0f075fb4
/* f075f98: 24010006 */ li $at,0x6
/* f075f9c: 806d0007 */ lb $t5,0x7($v1)
/* f075fa0: 24010005 */ li $at,0x5
/* f075fa4: 55a10003 */ bnel $t5,$at,.PB0f075fb4
/* f075fa8: 24010006 */ li $at,0x6
/* f075fac: 24060001 */ li $a2,0x1
/* f075fb0: 24010006 */ li $at,0x6
.PB0f075fb4:
/* f075fb4: 1441000e */ bne $v0,$at,.PB0f075ff0
/* f075fb8: 00000000 */ nop
/* f075fbc: afa6015c */ sw $a2,0x15c($sp)
/* f075fc0: 0fc4a797 */ jal playermgrGetPlayerNumByProp
/* f075fc4: afa70070 */ sw $a3,0x70($sp)
/* f075fc8: 00025880 */ sll $t3,$v0,0x2
/* f075fcc: 3c0f800a */ lui $t7,0x800a
/* f075fd0: 01eb7821 */ addu $t7,$t7,$t3
/* f075fd4: 8defe534 */ lw $t7,-0x1acc($t7)
/* f075fd8: 8fa6015c */ lw $a2,0x15c($sp)
/* f075fdc: 8fa70070 */ lw $a3,0x70($sp)
/* f075fe0: 8dea00d8 */ lw $t2,0xd8($t7)
/* f075fe4: 11400002 */ beqz $t2,.PB0f075ff0
/* f075fe8: 00000000 */ nop
/* f075fec: 24060001 */ li $a2,0x1
.PB0f075ff0:
/* f075ff0: 14c00026 */ bnez $a2,.PB0f07608c
/* f075ff4: 3c0c8007 */ lui $t4,0x8007
/* f075ff8: 8d8cb004 */ lw $t4,-0x4ffc($t4)
/* f075ffc: 24010007 */ li $at,0x7
/* f076000: 11800022 */ beqz $t4,.PB0f07608c
/* f076004: afac0088 */ sw $t4,0x88($sp)
/* f076008: 1181001a */ beq $t4,$at,.PB0f076074
/* f07600c: 00e02025 */ move $a0,$a3
/* f076010: 24010008 */ li $at,0x8
/* f076014: 1181000b */ beq $t4,$at,.PB0f076044
/* f076018: 24050001 */ li $a1,0x1
/* f07601c: 2401000f */ li $at,0xf
/* f076020: 11810014 */ beq $t4,$at,.PB0f076074
/* f076024: 24010064 */ li $at,0x64
/* f076028: 1181000a */ beq $t4,$at,.PB0f076054
/* f07602c: 00e02025 */ move $a0,$a3
/* f076030: 2401006e */ li $at,0x6e
/* f076034: 1181000b */ beq $t4,$at,.PB0f076064
/* f076038: 00e02025 */ move $a0,$a3
/* f07603c: 10000011 */ b .PB0f076084
/* f076040: 00e02025 */ move $a0,$a3
.PB0f076044:
/* f076044: 0fc2c20c */ jal mpstatsIncrementPlayerShotCount
/* f076048: 00e02025 */ move $a0,$a3
/* f07604c: 1000000f */ b .PB0f07608c
/* f076050: 00000000 */ nop
.PB0f076054:
/* f076054: 0fc2c20c */ jal mpstatsIncrementPlayerShotCount
/* f076058: 24050004 */ li $a1,0x4
/* f07605c: 1000000b */ b .PB0f07608c
/* f076060: 00000000 */ nop
.PB0f076064:
/* f076064: 0fc2c20c */ jal mpstatsIncrementPlayerShotCount
/* f076068: 24050005 */ li $a1,0x5
/* f07606c: 10000007 */ b .PB0f07608c
/* f076070: 00000000 */ nop
.PB0f076074:
/* f076074: 0fc2c20c */ jal mpstatsIncrementPlayerShotCount
/* f076078: 24050002 */ li $a1,0x2
/* f07607c: 10000003 */ b .PB0f07608c
/* f076080: 00000000 */ nop
.PB0f076084:
/* f076084: 0fc2c20c */ jal mpstatsIncrementPlayerShotCount
/* f076088: 24050003 */ li $a1,0x3
.PB0f07608c:
/* f07608c: 0fc4a783 */ jal setCurrentPlayerNum
/* f076090: 8fa40164 */ lw $a0,0x164($sp)
.PB0f076094:
/* f076094: 8fae01f4 */ lw $t6,0x1f4($sp)
.PB0f076098:
/* f076098: 51c0000a */ beqzl $t6,.PB0f0760c4
/* f07609c: 8e390048 */ lw $t9,0x48($s1)
/* f0760a0: 91c20000 */ lbu $v0,0x0($t6)
/* f0760a4: 24010001 */ li $at,0x1
/* f0760a8: 10410005 */ beq $v0,$at,.PB0f0760c0
/* f0760ac: 24010004 */ li $at,0x4
/* f0760b0: 10410003 */ beq $v0,$at,.PB0f0760c0
/* f0760b4: 24010002 */ li $at,0x2
/* f0760b8: 5441002d */ bnel $v0,$at,.PB0f076170
/* f0760bc: 02402025 */ move $a0,$s2
.PB0f0760c0:
/* f0760c0: 8e390048 */ lw $t9,0x48($s1)
.PB0f0760c4:
/* f0760c4: c6080004 */ lwc1 $f8,0x4($s0)
/* f0760c8: 27a40150 */ addiu $a0,$sp,0x150
/* f0760cc: 8f220088 */ lw $v0,0x88($t9)
/* f0760d0: e7a80150 */ swc1 $f8,0x150($sp)
/* f0760d4: c60a0008 */ lwc1 $f10,0x8($s0)
/* f0760d8: 27a50154 */ addiu $a1,$sp,0x154
/* f0760dc: 27a60158 */ addiu $a2,$sp,0x158
/* f0760e0: e7aa0154 */ swc1 $f10,0x154($sp)
/* f0760e4: c606000c */ lwc1 $f6,0xc($s0)
/* f0760e8: afa2014c */ sw $v0,0x14c($sp)
/* f0760ec: 0c0011d8 */ jal guNormalize
/* f0760f0: e7a60158 */ swc1 $f6,0x158($sp)
/* f0760f4: 8fa2014c */ lw $v0,0x14c($sp)
/* f0760f8: 50400005 */ beqzl $v0,.PB0f076110
/* f0760fc: afa00088 */ sw $zero,0x88($sp)
/* f076100: 8c490004 */ lw $t1,0x4($v0)
/* f076104: 10000002 */ b .PB0f076110
/* f076108: afa90088 */ sw $t1,0x88($sp)
/* f07610c: afa00088 */ sw $zero,0x88($sp)
.PB0f076110:
/* f076110: 0fc4fe8e */ jal chrIsUsingPaintball
/* f076114: 8fa40088 */ lw $a0,0x88($sp)
/* f076118: 1040000c */ beqz $v0,.PB0f07614c
/* f07611c: 02402825 */ move $a1,$s2
/* f076120: 86440028 */ lh $a0,0x28($s2)
/* f076124: 27b805f4 */ addiu $t8,$sp,0x5f4
/* f076128: 240d0019 */ li $t5,0x19
/* f07612c: afad0014 */ sw $t5,0x14($sp)
/* f076130: afb80010 */ sw $t8,0x10($sp)
/* f076134: 02402825 */ move $a1,$s2
/* f076138: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f07613c: 0fc4c3dd */ jal sparksCreate
/* f076140: 27a70150 */ addiu $a3,$sp,0x150
/* f076144: 1000000a */ b .PB0f076170
/* f076148: 02402025 */ move $a0,$s2
.PB0f07614c:
/* f07614c: 86440028 */ lh $a0,0x28($s2)
/* f076150: 27ab05f4 */ addiu $t3,$sp,0x5f4
/* f076154: 240f0010 */ li $t7,0x10
/* f076158: afaf0014 */ sw $t7,0x14($sp)
/* f07615c: afab0010 */ sw $t3,0x10($sp)
/* f076160: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f076164: 0fc4c3dd */ jal sparksCreate
/* f076168: 27a70150 */ addiu $a3,$sp,0x150
/* f07616c: 02402025 */ move $a0,$s2
.PB0f076170:
/* f076170: 27a505e8 */ addiu $a1,$sp,0x5e8
/* f076174: 27a605f4 */ addiu $a2,$sp,0x5f4
/* f076178: 0fc1bc9e */ jal objLand
/* f07617c: 8fa7060c */ lw $a3,0x60c($sp)
.PB0f076180:
/* f076180: 8faa034c */ lw $t2,0x34c($sp)
.PB0f076184:
/* f076184: 8fac0600 */ lw $t4,0x600($sp)
/* f076188: 55400038 */ bnezl $t2,.PB0f07626c
/* f07618c: 8fae034c */ lw $t6,0x34c($sp)
/* f076190: 11800012 */ beqz $t4,.PB0f0761dc
/* f076194: 26440008 */ addiu $a0,$s2,0x8
/* f076198: 8fa5006c */ lw $a1,0x6c($sp)
/* f07619c: 27a605dc */ addiu $a2,$sp,0x5dc
/* f0761a0: 0fc19815 */ jal func0f065e74
/* f0761a4: 27a7013c */ addiu $a3,$sp,0x13c
/* f0761a8: c7a405dc */ lwc1 $f4,0x5dc($sp)
/* f0761ac: 02402025 */ move $a0,$s2
/* f0761b0: e6440008 */ swc1 $f4,0x8($s2)
/* f0761b4: c7a805e0 */ lwc1 $f8,0x5e0($sp)
/* f0761b8: e648000c */ swc1 $f8,0xc($s2)
/* f0761bc: c7aa05e4 */ lwc1 $f10,0x5e4($sp)
/* f0761c0: 0fc19789 */ jal propDeregisterRooms
/* f0761c4: e64a0010 */ swc1 $f10,0x10($s2)
/* f0761c8: 27a4013c */ addiu $a0,$sp,0x13c
/* f0761cc: 0fc19661 */ jal roomsCopy
/* f0761d0: 8fa5006c */ lw $a1,0x6c($sp)
/* f0761d4: 10000025 */ b .PB0f07626c
/* f0761d8: 8fae034c */ lw $t6,0x34c($sp)
.PB0f0761dc:
/* f0761dc: 3c038007 */ lui $v1,0x8007
/* f0761e0: 8c63b000 */ lw $v1,-0x5000($v1)
/* f0761e4: c7a805e8 */ lwc1 $f8,0x5e8($sp)
/* f0761e8: 27a605dc */ addiu $a2,$sp,0x5dc
/* f0761ec: 1060000c */ beqz $v1,.PB0f076220
/* f0761f0: 27a7012c */ addiu $a3,$sp,0x12c
/* f0761f4: 90620000 */ lbu $v0,0x0($v1)
/* f0761f8: 24010003 */ li $at,0x3
/* f0761fc: 10410003 */ beq $v0,$at,.PB0f07620c
/* f076200: 24010006 */ li $at,0x6
/* f076204: 54410007 */ bnel $v0,$at,.PB0f076224
/* f076208: c7aa05ec */ lwc1 $f10,0x5ec($sp)
.PB0f07620c:
/* f07620c: c6460008 */ lwc1 $f6,0x8($s2)
/* f076210: e7a605dc */ swc1 $f6,0x5dc($sp)
/* f076214: c6440010 */ lwc1 $f4,0x10($s2)
/* f076218: 10000006 */ b .PB0f076234
/* f07621c: e7a405e4 */ swc1 $f4,0x5e4($sp)
.PB0f076220:
/* f076220: c7aa05ec */ lwc1 $f10,0x5ec($sp)
.PB0f076224:
/* f076224: c7a605f0 */ lwc1 $f6,0x5f0($sp)
/* f076228: e7a805dc */ swc1 $f8,0x5dc($sp)
/* f07622c: e7aa05e0 */ swc1 $f10,0x5e0($sp)
/* f076230: e7a605e4 */ swc1 $f6,0x5e4($sp)
.PB0f076234:
/* f076234: 0fc19815 */ jal func0f065e74
/* f076238: 8fa5006c */ lw $a1,0x6c($sp)
/* f07623c: c7a405dc */ lwc1 $f4,0x5dc($sp)
/* f076240: 02402025 */ move $a0,$s2
/* f076244: e6440008 */ swc1 $f4,0x8($s2)
/* f076248: c7a805e0 */ lwc1 $f8,0x5e0($sp)
/* f07624c: e648000c */ swc1 $f8,0xc($s2)
/* f076250: c7aa05e4 */ lwc1 $f10,0x5e4($sp)
/* f076254: 0fc19789 */ jal propDeregisterRooms
/* f076258: e64a0010 */ swc1 $f10,0x10($s2)
/* f07625c: 27a4012c */ addiu $a0,$sp,0x12c
/* f076260: 0fc19661 */ jal roomsCopy
/* f076264: 8fa5006c */ lw $a1,0x6c($sp)
/* f076268: 8fae034c */ lw $t6,0x34c($sp)
.PB0f07626c:
/* f07626c: 55c003a4 */ bnezl $t6,.PB0f077100
/* f076270: 8fbf005c */ lw $ra,0x5c($sp)
/* f076274: 0fc1a335 */ jal objFindBboxRodata
/* f076278: 02202025 */ move $a0,$s1
/* f07627c: 00402025 */ move $a0,$v0
/* f076280: 0fc19acf */ jal func0f06695c
/* f076284: 8fa50074 */ lw $a1,0x74($sp)
/* f076288: e7a0037c */ swc1 $f0,0x37c($sp)
/* f07628c: c6460008 */ lwc1 $f6,0x8($s2)
/* f076290: 26270058 */ addiu $a3,$s1,0x58
/* f076294: 27b9012a */ addiu $t9,$sp,0x12a
/* f076298: e7a605ac */ swc1 $f6,0x5ac($sp)
/* f07629c: c644000c */ lwc1 $f4,0xc($s2)
/* f0762a0: 27a90380 */ addiu $t1,$sp,0x380
/* f0762a4: 27a405ac */ addiu $a0,$sp,0x5ac
/* f0762a8: 46002200 */ add.s $f8,$f4,$f0
/* f0762ac: 8fa5006c */ lw $a1,0x6c($sp)
/* f0762b0: 27a60390 */ addiu $a2,$sp,0x390
/* f0762b4: e7a805b0 */ swc1 $f8,0x5b0($sp)
/* f0762b8: c64a0010 */ lwc1 $f10,0x10($s2)
/* f0762bc: afa70074 */ sw $a3,0x74($sp)
/* f0762c0: afa90014 */ sw $t1,0x14($sp)
/* f0762c4: afb90010 */ sw $t9,0x10($sp)
/* f0762c8: 0c00aae9 */ jal cd0002a5e4
/* f0762cc: e7aa05b4 */ swc1 $f10,0x5b4($sp)
/* f0762d0: 00021c00 */ sll $v1,$v0,0x10
/* f0762d4: 1840002e */ blez $v0,.PB0f076390
/* f0762d8: 0003c403 */ sra $t8,$v1,0x10
/* f0762dc: c646000c */ lwc1 $f6,0xc($s2)
/* f0762e0: c7a4037c */ lwc1 $f4,0x37c($sp)
/* f0762e4: c7aa0390 */ lwc1 $f10,0x390($sp)
/* f0762e8: 27a405c8 */ addiu $a0,$sp,0x5c8
/* f0762ec: 46043200 */ add.s $f8,$f6,$f4
/* f0762f0: 27a505b8 */ addiu $a1,$sp,0x5b8
/* f0762f4: 27a605ac */ addiu $a2,$sp,0x5ac
/* f0762f8: 24070021 */ li $a3,0x21
/* f0762fc: 460a403c */ c.lt.s $f8,$f10
/* f076300: 240d0003 */ li $t5,0x3
/* f076304: 45020023 */ bc1fl .PB0f076394
/* f076308: 26440008 */ addiu $a0,$s2,0x8
/* f07630c: afad0010 */ sw $t5,0x10($sp)
/* f076310: 0c00b856 */ jal cd0002db98
/* f076314: a7b8038e */ sh $t8,0x38e($sp)
/* f076318: 1440001d */ bnez $v0,.PB0f076390
/* f07631c: 87a3038e */ lh $v1,0x38e($sp)
/* f076320: c7a60380 */ lwc1 $f6,0x380($sp)
/* f076324: c7a40384 */ lwc1 $f4,0x384($sp)
/* f076328: c7a80388 */ lwc1 $f8,0x388($sp)
/* f07632c: 240b0001 */ li $t3,0x1
/* f076330: afab0354 */ sw $t3,0x354($sp)
/* f076334: 27a405f4 */ addiu $a0,$sp,0x5f4
/* f076338: 27a505f8 */ addiu $a1,$sp,0x5f8
/* f07633c: 27a605fc */ addiu $a2,$sp,0x5fc
/* f076340: a7a3038e */ sh $v1,0x38e($sp)
/* f076344: e7a605f4 */ swc1 $f6,0x5f4($sp)
/* f076348: e7a405f8 */ swc1 $f4,0x5f8($sp)
/* f07634c: 0c0011d8 */ jal guNormalize
/* f076350: e7a805fc */ swc1 $f8,0x5fc($sp)
/* f076354: c64a0008 */ lwc1 $f10,0x8($s2)
/* f076358: c7a60390 */ lwc1 $f6,0x390($sp)
/* f07635c: 97af012a */ lhu $t7,0x12a($sp)
/* f076360: e7aa05e8 */ swc1 $f10,0x5e8($sp)
/* f076364: e7a605ec */ swc1 $f6,0x5ec($sp)
/* f076368: c6440010 */ lwc1 $f4,0x10($s2)
/* f07636c: 31ea4000 */ andi $t2,$t7,0x4000
/* f076370: 87a3038e */ lh $v1,0x38e($sp)
/* f076374: afa00600 */ sw $zero,0x600($sp)
/* f076378: 1140003d */ beqz $t2,.PB0f076470
/* f07637c: e7a405f0 */ swc1 $f4,0x5f0($sp)
/* f076380: 8e2c0040 */ lw $t4,0x40($s1)
/* f076384: 358e0004 */ ori $t6,$t4,0x4
/* f076388: 10000039 */ b .PB0f076470
/* f07638c: ae2e0040 */ sw $t6,0x40($s1)
.PB0f076390:
/* f076390: 26440008 */ addiu $a0,$s2,0x8
.PB0f076394:
/* f076394: 27b90380 */ addiu $t9,$sp,0x380
/* f076398: afb90010 */ sw $t9,0x10($sp)
/* f07639c: afa40070 */ sw $a0,0x70($sp)
/* f0763a0: 8fa5006c */ lw $a1,0x6c($sp)
/* f0763a4: 27a60390 */ addiu $a2,$sp,0x390
/* f0763a8: 8fa70074 */ lw $a3,0x74($sp)
/* f0763ac: 0c00aac9 */ jal cd0002a564
/* f0763b0: afa00014 */ sw $zero,0x14($sp)
/* f0763b4: 00021c00 */ sll $v1,$v0,0x10
/* f0763b8: 00034c03 */ sra $t1,$v1,0x10
/* f0763bc: 1c40002c */ bgtz $v0,.PB0f076470
/* f0763c0: 01201825 */ move $v1,$t1
/* f0763c4: 8e020000 */ lw $v0,0x0($s0)
/* f0763c8: 30580004 */ andi $t8,$v0,0x4
/* f0763cc: 17000028 */ bnez $t8,.PB0f076470
/* f0763d0: 00026bc0 */ sll $t5,$v0,0xf
/* f0763d4: 05a0000c */ bltz $t5,.PB0f076408
/* f0763d8: 3c010001 */ lui $at,0x1
/* f0763dc: 00415825 */ or $t3,$v0,$at
/* f0763e0: ae0b0000 */ sw $t3,0x0($s0)
/* f0763e4: a7a9038e */ sh $t1,0x38e($sp)
/* f0763e8: 27a405c8 */ addiu $a0,$sp,0x5c8
/* f0763ec: 0c00aa70 */ jal cd0002a400
/* f0763f0: 27a505b8 */ addiu $a1,$sp,0x5b8
/* f0763f4: 18400004 */ blez $v0,.PB0f076408
/* f0763f8: 87a3038e */ lh $v1,0x38e($sp)
/* f0763fc: 8e0f0000 */ lw $t7,0x0($s0)
/* f076400: 35ea8000 */ ori $t2,$t7,0x8000
/* f076404: ae0a0000 */ sw $t2,0x0($s0)
.PB0f076408:
/* f076408: 8e0c0000 */ lw $t4,0x0($s0)
/* f07640c: c7a805c8 */ lwc1 $f8,0x5c8($sp)
/* f076410: 318e8000 */ andi $t6,$t4,0x8000
/* f076414: 11c00016 */ beqz $t6,.PB0f076470
/* f076418: 00000000 */ nop
/* f07641c: e6480008 */ swc1 $f8,0x8($s2)
/* f076420: c7aa05cc */ lwc1 $f10,0x5cc($sp)
/* f076424: 02402025 */ move $a0,$s2
/* f076428: e64a000c */ swc1 $f10,0xc($s2)
/* f07642c: c7a605d0 */ lwc1 $f6,0x5d0($sp)
/* f076430: 0fc19789 */ jal propDeregisterRooms
/* f076434: e6460010 */ swc1 $f6,0x10($s2)
/* f076438: 27a405b8 */ addiu $a0,$sp,0x5b8
/* f07643c: 0fc19661 */ jal roomsCopy
/* f076440: 8fa5006c */ lw $a1,0x6c($sp)
/* f076444: 8fa40070 */ lw $a0,0x70($sp)
/* f076448: 8fa5006c */ lw $a1,0x6c($sp)
/* f07644c: 27a60390 */ addiu $a2,$sp,0x390
/* f076450: 8fa70074 */ lw $a3,0x74($sp)
/* f076454: 0c00aa80 */ jal cd0002a440
/* f076458: afa00010 */ sw $zero,0x10($sp)
/* f07645c: 00021c00 */ sll $v1,$v0,0x10
/* f076460: 0003cc03 */ sra $t9,$v1,0x10
/* f076464: 03201825 */ move $v1,$t9
/* f076468: e6140004 */ swc1 $f20,0x4($s0)
/* f07646c: e614000c */ swc1 $f20,0xc($s0)
.PB0f076470:
/* f076470: 18600004 */ blez $v1,.PB0f076484
/* f076474: 8e020000 */ lw $v0,0x0($s0)
/* f076478: 34498000 */ ori $t1,$v0,0x8000
/* f07647c: 10000005 */ b .PB0f076494
/* f076480: ae090000 */ sw $t1,0x0($s0)
.PB0f076484:
/* f076484: 3c01ffff */ lui $at,0xffff
/* f076488: 34217fff */ ori $at,$at,0x7fff
/* f07648c: 0041c024 */ and $t8,$v0,$at
/* f076490: ae180000 */ sw $t8,0x0($s0)
.PB0f076494:
/* f076494: 8fad0600 */ lw $t5,0x600($sp)
/* f076498: 55a000ac */ bnezl $t5,.PB0f07674c
/* f07649c: 922b0003 */ lbu $t3,0x3($s1)
/* f0764a0: c60c0008 */ lwc1 $f12,0x8($s0)
/* f0764a4: c7a805cc */ lwc1 $f8,0x5cc($sp)
/* f0764a8: 4614603e */ c.le.s $f12,$f20
/* f0764ac: 00000000 */ nop
/* f0764b0: 45020007 */ bc1fl .PB0f0764d0
/* f0764b4: 8e0b0000 */ lw $t3,0x0($s0)
/* f0764b8: c644000c */ lwc1 $f4,0xc($s2)
/* f0764bc: 4604403e */ c.le.s $f8,$f4
/* f0764c0: 00000000 */ nop
/* f0764c4: 45030008 */ bc1tl .PB0f0764e8
/* f0764c8: 240c0001 */ li $t4,0x1
/* f0764cc: 8e0b0000 */ lw $t3,0x0($s0)
.PB0f0764d0:
/* f0764d0: 8faa0354 */ lw $t2,0x354($sp)
/* f0764d4: 316f0004 */ andi $t7,$t3,0x4
/* f0764d8: 55e00005 */ bnezl $t7,.PB0f0764f0
/* f0764dc: c612008c */ lwc1 $f18,0x8c($s0)
/* f0764e0: 11400002 */ beqz $t2,.PB0f0764ec
/* f0764e4: 240c0001 */ li $t4,0x1
.PB0f0764e8:
/* f0764e8: afac0350 */ sw $t4,0x350($sp)
.PB0f0764ec:
/* f0764ec: c612008c */ lwc1 $f18,0x8c($s0)
.PB0f0764f0:
/* f0764f0: c7aa05f4 */ lwc1 $f10,0x5f4($sp)
/* f0764f4: 4612a03c */ c.lt.s $f20,$f18
/* f0764f8: 00000000 */ nop
/* f0764fc: 45020034 */ bc1fl .PB0f0765d0
/* f076500: 8fad0350 */ lw $t5,0x350($sp)
/* f076504: c60e0004 */ lwc1 $f14,0x4($s0)
/* f076508: c7a405f8 */ lwc1 $f4,0x5f8($sp)
/* f07650c: c602000c */ lwc1 $f2,0xc($s0)
/* f076510: 460a7182 */ mul.s $f6,$f14,$f10
/* f076514: 3c013f80 */ lui $at,0x3f80
/* f076518: 4614603e */ c.le.s $f12,$f20
/* f07651c: 46046202 */ mul.s $f8,$f12,$f4
/* f076520: 46083100 */ add.s $f4,$f6,$f8
/* f076524: c7a605fc */ lwc1 $f6,0x5fc($sp)
/* f076528: 46023202 */ mul.s $f8,$f6,$f2
/* f07652c: 44813000 */ mtc1 $at,$f6
/* f076530: 46044000 */ add.s $f0,$f8,$f4
/* f076534: 46069200 */ add.s $f8,$f18,$f6
/* f076538: 46004107 */ neg.s $f4,$f8
/* f07653c: 46040002 */ mul.s $f0,$f0,$f4
/* f076540: 00000000 */ nop
/* f076544: 460a0182 */ mul.s $f6,$f0,$f10
/* f076548: 46067200 */ add.s $f8,$f14,$f6
/* f07654c: e6080004 */ swc1 $f8,0x4($s0)
/* f076550: c7a405f8 */ lwc1 $f4,0x5f8($sp)
/* f076554: 46040282 */ mul.s $f10,$f0,$f4
/* f076558: 460a6180 */ add.s $f6,$f12,$f10
/* f07655c: e6060008 */ swc1 $f6,0x8($s0)
/* f076560: c7a805fc */ lwc1 $f8,0x5fc($sp)
/* f076564: 46080102 */ mul.s $f4,$f0,$f8
/* f076568: 46041280 */ add.s $f10,$f2,$f4
/* f07656c: 45000008 */ bc1f .PB0f076590
/* f076570: e60a000c */ swc1 $f10,0xc($s0)
/* f076574: c6060008 */ lwc1 $f6,0x8($s0)
/* f076578: 240e0001 */ li $t6,0x1
/* f07657c: 4606a03e */ c.le.s $f20,$f6
/* f076580: 00000000 */ nop
/* f076584: 45020003 */ bc1fl .PB0f076594
/* f076588: 92390003 */ lbu $t9,0x3($s1)
/* f07658c: afae0350 */ sw $t6,0x350($sp)
.PB0f076590:
/* f076590: 92390003 */ lbu $t9,0x3($s1)
.PB0f076594:
/* f076594: 24010008 */ li $at,0x8
/* f076598: 5721000d */ bnel $t9,$at,.PB0f0765d0
/* f07659c: 8fad0350 */ lw $t5,0x350($sp)
/* f0765a0: 9229005c */ lbu $t1,0x5c($s1)
/* f0765a4: 2401001e */ li $at,0x1e
/* f0765a8: 55210009 */ bnel $t1,$at,.PB0f0765d0
/* f0765ac: 8fad0350 */ lw $t5,0x350($sp)
/* f0765b0: 9238005f */ lbu $t8,0x5f($s1)
/* f0765b4: 24010001 */ li $at,0x1
/* f0765b8: 02402025 */ move $a0,$s2
/* f0765bc: 57010004 */ bnel $t8,$at,.PB0f0765d0
/* f0765c0: 8fad0350 */ lw $t5,0x350($sp)
/* f0765c4: 0fc4bf19 */ jal smokeCreateAtProp
/* f0765c8: 24050013 */ li $a1,0x13
/* f0765cc: 8fad0350 */ lw $t5,0x350($sp)
.PB0f0765d0:
/* f0765d0: c7a805ec */ lwc1 $f8,0x5ec($sp)
/* f0765d4: c7a4037c */ lwc1 $f4,0x37c($sp)
/* f0765d8: 51a0000c */ beqzl $t5,.PB0f07660c
/* f0765dc: 8e0f0000 */ lw $t7,0x0($s0)
/* f0765e0: 46044281 */ sub.s $f10,$f8,$f4
/* f0765e4: e64a000c */ swc1 $f10,0xc($s2)
/* f0765e8: 8fab0354 */ lw $t3,0x354($sp)
/* f0765ec: 51600007 */ beqzl $t3,.PB0f07660c
/* f0765f0: 8e0f0000 */ lw $t7,0x0($s0)
/* f0765f4: 0fc1a9fe */ jal func0f06a620
/* f0765f8: 02202025 */ move $a0,$s1
/* f0765fc: c646000c */ lwc1 $f6,0xc($s2)
/* f076600: 46003200 */ add.s $f8,$f6,$f0
/* f076604: e648000c */ swc1 $f8,0xc($s2)
/* f076608: 8e0f0000 */ lw $t7,0x0($s0)
.PB0f07660c:
/* f07660c: 31ea0100 */ andi $t2,$t7,0x100
/* f076610: 5540000d */ bnezl $t2,.PB0f076648
/* f076614: 8e190090 */ lw $t9,0x90($s0)
/* f076618: 8e020094 */ lw $v0,0x94($s0)
/* f07661c: 3c0c800a */ lui $t4,0x800a
/* f076620: 04400006 */ bltz $v0,.PB0f07663c
/* f076624: 00000000 */ nop
/* f076628: 8d8ce4d8 */ lw $t4,-0x1b28($t4)
/* f07662c: 258effce */ addiu $t6,$t4,-50
/* f076630: 004e082a */ slt $at,$v0,$t6
/* f076634: 50200004 */ beqzl $at,.PB0f076648
/* f076638: 8e190090 */ lw $t9,0x90($s0)
.PB0f07663c:
/* f07663c: 0fc25874 */ jal func0f096360
/* f076640: 8fa40064 */ lw $a0,0x64($sp)
/* f076644: 8e190090 */ lw $t9,0x90($s0)
.PB0f076648:
/* f076648: 3c18800a */ lui $t8,0x800a
/* f07664c: 27290001 */ addiu $t1,$t9,0x1
/* f076650: ae090090 */ sw $t1,0x90($s0)
/* f076654: 8f18e4d8 */ lw $t8,-0x1b28($t8)
/* f076658: ae180094 */ sw $t8,0x94($s0)
/* f07665c: 8e220040 */ lw $v0,0x40($s1)
/* f076660: 00026bc0 */ sll $t5,$v0,0xf
/* f076664: 05a00002 */ bltz $t5,.PB0f076670
/* f076668: 344b0100 */ ori $t3,$v0,0x100
/* f07666c: ae2b0040 */ sw $t3,0x40($s1)
.PB0f076670:
/* f076670: 8faf0350 */ lw $t7,0x350($sp)
/* f076674: 51e00035 */ beqzl $t7,.PB0f07674c
/* f076678: 922b0003 */ lbu $t3,0x3($s1)
/* f07667c: 8e020000 */ lw $v0,0x0($s0)
/* f076680: 304a0004 */ andi $t2,$v0,0x4
/* f076684: 5540000d */ bnezl $t2,.PB0f0766bc
/* f076688: c604008c */ lwc1 $f4,0x8c($s0)
/* f07668c: 8e0c0090 */ lw $t4,0x90($s0)
/* f076690: 8fae0354 */ lw $t6,0x354($sp)
/* f076694: 29810006 */ slti $at,$t4,0x6
/* f076698: 54200008 */ bnezl $at,.PB0f0766bc
/* f07669c: c604008c */ lwc1 $f4,0x8c($s0)
/* f0766a0: 11c00029 */ beqz $t6,.PB0f076748
/* f0766a4: 02202025 */ move $a0,$s1
/* f0766a8: 0fc1b76c */ jal func0f06dbd8
/* f0766ac: 27a50358 */ addiu $a1,$sp,0x358
/* f0766b0: 10000026 */ b .PB0f07674c
/* f0766b4: 922b0003 */ lbu $t3,0x3($s1)
/* f0766b8: c604008c */ lwc1 $f4,0x8c($s0)
.PB0f0766bc:
/* f0766bc: 8fad0354 */ lw $t5,0x354($sp)
/* f0766c0: 4604a03c */ c.lt.s $f20,$f4
/* f0766c4: 00000000 */ nop
/* f0766c8: 4500001b */ bc1f .PB0f076738
/* f0766cc: 00000000 */ nop
/* f0766d0: c60c0008 */ lwc1 $f12,0x8($s0)
/* f0766d4: 3c017f1b */ lui $at,0x7f1b
/* f0766d8: 460ca03e */ c.le.s $f20,$f12
/* f0766dc: 00000000 */ nop
/* f0766e0: 4502001a */ bc1fl .PB0f07674c
/* f0766e4: 922b0003 */ lbu $t3,0x3($s1)
/* f0766e8: c420c100 */ lwc1 $f0,-0x3f00($at)
/* f0766ec: 30590002 */ andi $t9,$v0,0x2
/* f0766f0: 4600603c */ c.lt.s $f12,$f0
/* f0766f4: 00000000 */ nop
/* f0766f8: 45020014 */ bc1fl .PB0f07674c
/* f0766fc: 922b0003 */ lbu $t3,0x3($s1)
/* f076700: 13200007 */ beqz $t9,.PB0f076720
/* f076704: 8fb80354 */ lw $t8,0x354($sp)
/* f076708: 8e090090 */ lw $t1,0x90($s0)
/* f07670c: 24010001 */ li $at,0x1
/* f076710: 15210003 */ bne $t1,$at,.PB0f076720
/* f076714: 00000000 */ nop
/* f076718: 1000000b */ b .PB0f076748
/* f07671c: e6000008 */ swc1 $f0,0x8($s0)
.PB0f076720:
/* f076720: 13000009 */ beqz $t8,.PB0f076748
/* f076724: 02202025 */ move $a0,$s1
/* f076728: 0fc1b76c */ jal func0f06dbd8
/* f07672c: 27a50358 */ addiu $a1,$sp,0x358
/* f076730: 10000006 */ b .PB0f07674c
/* f076734: 922b0003 */ lbu $t3,0x3($s1)
.PB0f076738:
/* f076738: 11a00003 */ beqz $t5,.PB0f076748
/* f07673c: 02202025 */ move $a0,$s1
/* f076740: 0fc1b76c */ jal func0f06dbd8
/* f076744: 27a50358 */ addiu $a1,$sp,0x358
.PB0f076748:
/* f076748: 922b0003 */ lbu $t3,0x3($s1)
.PB0f07674c:
/* f07674c: 24010008 */ li $at,0x8
/* f076750: 55610134 */ bnel $t3,$at,.PB0f076c24
/* f076754: 02202025 */ move $a0,$s1
/* f076758: 9227005c */ lbu $a3,0x5c($s1)
/* f07675c: 2401001a */ li $at,0x1a
/* f076760: 54e1000a */ bnel $a3,$at,.PB0f07678c
/* f076764: 24010053 */ li $at,0x53
/* f076768: 922f005f */ lbu $t7,0x5f($s1)
/* f07676c: 24010001 */ li $at,0x1
/* f076770: 55e10006 */ bnel $t7,$at,.PB0f07678c
/* f076774: 24010053 */ li $at,0x53
/* f076778: 0fc1ba95 */ jal knifePlayWooshSound
/* f07677c: 02202025 */ move $a0,$s1
/* f076780: 100000b0 */ b .PB0f076a44
/* f076784: 8fac0600 */ lw $t4,0x600($sp)
/* f076788: 24010053 */ li $at,0x53
.PB0f07678c:
/* f07678c: 14e10044 */ bne $a3,$at,.PB0f0768a0
/* f076790: 8faa0600 */ lw $t2,0x600($sp)
/* f076794: 55400004 */ bnezl $t2,.PB0f0767a8
/* f076798: c60e0004 */ lwc1 $f14,0x4($s0)
/* f07679c: 100000a8 */ b .PB0f076a40
/* f0767a0: a6200062 */ sh $zero,0x62($s1)
/* f0767a4: c60e0004 */ lwc1 $f14,0x4($s0)
.PB0f0767a8:
/* f0767a8: c60c0008 */ lwc1 $f12,0x8($s0)
/* f0767ac: c602000c */ lwc1 $f2,0xc($s0)
/* f0767b0: 460e7282 */ mul.s $f10,$f14,$f14
/* f0767b4: 3c017f1b */ lui $at,0x7f1b
/* f0767b8: 460c6182 */ mul.s $f6,$f12,$f12
/* f0767bc: 46065200 */ add.s $f8,$f10,$f6
/* f0767c0: 46021102 */ mul.s $f4,$f2,$f2
/* f0767c4: c42ac104 */ lwc1 $f10,-0x3efc($at)
/* f0767c8: 46082000 */ add.s $f0,$f4,$f8
/* f0767cc: 4600503c */ c.lt.s $f10,$f0
/* f0767d0: 00000000 */ nop
/* f0767d4: 45020005 */ bc1fl .PB0f0767ec
/* f0767d8: 860200b2 */ lh $v0,0xb2($s0)
/* f0767dc: e6140010 */ swc1 $f20,0x10($s0)
/* f0767e0: e6140014 */ swc1 $f20,0x14($s0)
/* f0767e4: e6140018 */ swc1 $f20,0x18($s0)
/* f0767e8: 860200b2 */ lh $v0,0xb2($s0)
.PB0f0767ec:
/* f0767ec: 0442000c */ bltzl $v0,.PB0f076820
/* f0767f0: c6060004 */ lwc1 $f6,0x4($s0)
/* f0767f4: 8e0c00a0 */ lw $t4,0xa0($s0)
/* f0767f8: 004c082a */ slt $at,$v0,$t4
/* f0767fc: 50200008 */ beqzl $at,.PB0f076820
/* f076800: c6060004 */ lwc1 $f6,0x4($s0)
/* f076804: 8e0e0000 */ lw $t6,0x0($s0)
/* f076808: 2401ffcf */ li $at,-49
/* f07680c: e614001c */ swc1 $f20,0x1c($s0)
/* f076810: 01c1c824 */ and $t9,$t6,$at
/* f076814: 1000008a */ b .PB0f076a40
/* f076818: ae190000 */ sw $t9,0x0($s0)
/* f07681c: c6060004 */ lwc1 $f6,0x4($s0)
.PB0f076820:
/* f076820: 27a40108 */ addiu $a0,$sp,0x108
/* f076824: 27a5010c */ addiu $a1,$sp,0x10c
/* f076828: e7a60108 */ swc1 $f6,0x108($sp)
/* f07682c: c6040008 */ lwc1 $f4,0x8($s0)
/* f076830: 27a60110 */ addiu $a2,$sp,0x110
/* f076834: e7a4010c */ swc1 $f4,0x10c($sp)
/* f076838: c608000c */ lwc1 $f8,0xc($s0)
/* f07683c: 0c0011d8 */ jal guNormalize
/* f076840: e7a80110 */ swc1 $f8,0x110($sp)
/* f076844: 3c0141a0 */ lui $at,0x41a0
/* f076848: 44810000 */ mtc1 $at,$f0
/* f07684c: c7a60108 */ lwc1 $f6,0x108($sp)
/* f076850: c64a0008 */ lwc1 $f10,0x8($s2)
/* f076854: 27a40108 */ addiu $a0,$sp,0x108
/* f076858: 46003102 */ mul.s $f4,$f6,$f0
/* f07685c: 8fa5006c */ lw $a1,0x6c($sp)
/* f076860: 24060008 */ li $a2,0x8
/* f076864: 46045201 */ sub.s $f8,$f10,$f4
/* f076868: c7aa010c */ lwc1 $f10,0x10c($sp)
/* f07686c: 46005102 */ mul.s $f4,$f10,$f0
/* f076870: e7a80108 */ swc1 $f8,0x108($sp)
/* f076874: c646000c */ lwc1 $f6,0xc($s2)
/* f076878: 46043201 */ sub.s $f8,$f6,$f4
/* f07687c: c7a60110 */ lwc1 $f6,0x110($sp)
/* f076880: 46003102 */ mul.s $f4,$f6,$f0
/* f076884: e7a8010c */ swc1 $f8,0x10c($sp)
/* f076888: c64a0010 */ lwc1 $f10,0x10($s2)
/* f07688c: 46045201 */ sub.s $f8,$f10,$f4
/* f076890: 0fc4bf5c */ jal smokeCreateSimple
/* f076894: e7a80110 */ swc1 $f8,0x110($sp)
/* f076898: 1000006a */ b .PB0f076a44
/* f07689c: 8fac0600 */ lw $t4,0x600($sp)
.PB0f0768a0:
/* f0768a0: 24010054 */ li $at,0x54
/* f0768a4: 14e1000a */ bne $a3,$at,.PB0f0768d0
/* f0768a8: 8fa90600 */ lw $t1,0x600($sp)
/* f0768ac: 15200003 */ bnez $t1,.PB0f0768bc
/* f0768b0: 26440008 */ addiu $a0,$s2,0x8
/* f0768b4: 10000062 */ b .PB0f076a40
/* f0768b8: a6200062 */ sh $zero,0x62($s1)
.PB0f0768bc:
/* f0768bc: 8fa5006c */ lw $a1,0x6c($sp)
/* f0768c0: 0fc4bf5c */ jal smokeCreateSimple
/* f0768c4: 2406000b */ li $a2,0xb
/* f0768c8: 1000005e */ b .PB0f076a44
/* f0768cc: 8fac0600 */ lw $t4,0x600($sp)
.PB0f0768d0:
/* f0768d0: 24010055 */ li $at,0x55
/* f0768d4: 10e10006 */ beq $a3,$at,.PB0f0768f0
/* f0768d8: 2402001f */ li $v0,0x1f
/* f0768dc: 54470059 */ bnel $v0,$a3,.PB0f076a44
/* f0768e0: 8fac0600 */ lw $t4,0x600($sp)
/* f0768e4: 9238005f */ lbu $t8,0x5f($s1)
/* f0768e8: 57000056 */ bnezl $t8,.PB0f076a44
/* f0768ec: 8fac0600 */ lw $t4,0x600($sp)
.PB0f0768f0:
/* f0768f0: 8fad0350 */ lw $t5,0x350($sp)
/* f0768f4: 2402001f */ li $v0,0x1f
/* f0768f8: 15a00045 */ bnez $t5,.PB0f076a10
/* f0768fc: 00000000 */ nop
/* f076900: 8e0b0000 */ lw $t3,0x0($s0)
/* f076904: 3c017f1b */ lui $at,0x7f1b
/* f076908: 316f0400 */ andi $t7,$t3,0x400
/* f07690c: 15e00040 */ bnez $t7,.PB0f076a10
/* f076910: 00000000 */ nop
/* f076914: c430c108 */ lwc1 $f16,-0x3ef8($at)
/* f076918: c60e0004 */ lwc1 $f14,0x4($s0)
/* f07691c: 3c017f1b */ lui $at,0x7f1b
/* f076920: c7aa05c8 */ lwc1 $f10,0x5c8($sp)
/* f076924: 4610703c */ c.lt.s $f14,$f16
/* f076928: 00000000 */ nop
/* f07692c: 45020019 */ bc1fl .PB0f076994
/* f076930: c6460008 */ lwc1 $f6,0x8($s2)
/* f076934: c432c10c */ lwc1 $f18,-0x3ef4($at)
/* f076938: 460e903c */ c.lt.s $f18,$f14
/* f07693c: 00000000 */ nop
/* f076940: 45020014 */ bc1fl .PB0f076994
/* f076944: c6460008 */ lwc1 $f6,0x8($s2)
/* f076948: c60c0008 */ lwc1 $f12,0x8($s0)
/* f07694c: 4610603c */ c.lt.s $f12,$f16
/* f076950: 00000000 */ nop
/* f076954: 4502000f */ bc1fl .PB0f076994
/* f076958: c6460008 */ lwc1 $f6,0x8($s2)
/* f07695c: 460c903c */ c.lt.s $f18,$f12
/* f076960: 00000000 */ nop
/* f076964: 4502000b */ bc1fl .PB0f076994
/* f076968: c6460008 */ lwc1 $f6,0x8($s2)
/* f07696c: c602000c */ lwc1 $f2,0xc($s0)
/* f076970: 4610103c */ c.lt.s $f2,$f16
/* f076974: 00000000 */ nop
/* f076978: 45020006 */ bc1fl .PB0f076994
/* f07697c: c6460008 */ lwc1 $f6,0x8($s2)
/* f076980: 4602903c */ c.lt.s $f18,$f2
/* f076984: 00000000 */ nop
/* f076988: 45010021 */ bc1t .PB0f076a10
/* f07698c: 00000000 */ nop
/* f076990: c6460008 */ lwc1 $f6,0x8($s2)
.PB0f076994:
/* f076994: 3c017f1b */ lui $at,0x7f1b
/* f076998: c432c110 */ lwc1 $f18,-0x3ef0($at)
/* f07699c: 460a3001 */ sub.s $f0,$f6,$f10
/* f0769a0: 4610003c */ c.lt.s $f0,$f16
/* f0769a4: 00000000 */ nop
/* f0769a8: 45000020 */ bc1f .PB0f076a2c
/* f0769ac: 00000000 */ nop
/* f0769b0: 4600903c */ c.lt.s $f18,$f0
/* f0769b4: c7a805cc */ lwc1 $f8,0x5cc($sp)
/* f0769b8: 4500001c */ bc1f .PB0f076a2c
/* f0769bc: 00000000 */ nop
/* f0769c0: c644000c */ lwc1 $f4,0xc($s2)
/* f0769c4: 46082001 */ sub.s $f0,$f4,$f8
/* f0769c8: 4610003c */ c.lt.s $f0,$f16
/* f0769cc: 00000000 */ nop
/* f0769d0: 45000016 */ bc1f .PB0f076a2c
/* f0769d4: 00000000 */ nop
/* f0769d8: 4600903c */ c.lt.s $f18,$f0
/* f0769dc: c7aa05d0 */ lwc1 $f10,0x5d0($sp)
/* f0769e0: 45000012 */ bc1f .PB0f076a2c
/* f0769e4: 00000000 */ nop
/* f0769e8: c6460010 */ lwc1 $f6,0x10($s2)
/* f0769ec: 460a3001 */ sub.s $f0,$f6,$f10
/* f0769f0: 4610003c */ c.lt.s $f0,$f16
/* f0769f4: 00000000 */ nop
/* f0769f8: 4500000c */ bc1f .PB0f076a2c
/* f0769fc: 00000000 */ nop
/* f076a00: 4600903c */ c.lt.s $f18,$f0
/* f076a04: 00000000 */ nop
/* f076a08: 45000008 */ bc1f .PB0f076a2c
/* f076a0c: 00000000 */ nop
.PB0f076a10:
/* f076a10: 14470004 */ bne $v0,$a3,.PB0f076a24
/* f076a14: 00000000 */ nop
/* f076a18: 862a0062 */ lh $t2,0x62($s1)
/* f076a1c: 05420009 */ bltzl $t2,.PB0f076a44
/* f076a20: 8fac0600 */ lw $t4,0x600($sp)
.PB0f076a24:
/* f076a24: 10000006 */ b .PB0f076a40
/* f076a28: a6200062 */ sh $zero,0x62($s1)
.PB0f076a2c:
/* f076a2c: 10470004 */ beq $v0,$a3,.PB0f076a40
/* f076a30: 26440008 */ addiu $a0,$s2,0x8
/* f076a34: 8fa5006c */ lw $a1,0x6c($sp)
/* f076a38: 0fc4bf5c */ jal smokeCreateSimple
/* f076a3c: 24060009 */ li $a2,0x9
.PB0f076a40:
/* f076a40: 8fac0600 */ lw $t4,0x600($sp)
.PB0f076a44:
/* f076a44: 3c03800a */ lui $v1,0x800a
/* f076a48: 55800076 */ bnezl $t4,.PB0f076c24
/* f076a4c: 02202025 */ move $a0,$s1
/* f076a50: 8c63e4dc */ lw $v1,-0x1b24($v1)
/* f076a54: 8e0e00a4 */ lw $t6,0xa4($s0)
/* f076a58: 2479fffe */ addiu $t9,$v1,-2
/* f076a5c: 01d9082a */ slt $at,$t6,$t9
/* f076a60: 5020006f */ beqzl $at,.PB0f076c20
/* f076a64: ae0300a4 */ sw $v1,0xa4($s0)
/* f076a68: 9227005c */ lbu $a3,0x5c($s1)
/* f076a6c: 2401001a */ li $at,0x1a
/* f076a70: 00002025 */ move $a0,$zero
/* f076a74: 10e10003 */ beq $a3,$at,.PB0f076a84
/* f076a78: 02402825 */ move $a1,$s2
/* f076a7c: 2401001a */ li $at,0x1a
/* f076a80: 14e10015 */ bne $a3,$at,.PB0f076ad8
.PB0f076a84:
/* f076a84: 3c01bf80 */ lui $at,0xbf80
/* f076a88: 44810000 */ mtc1 $at,$f0
/* f076a8c: 2409ffff */ li $t1,-1
/* f076a90: 2418ffff */ li $t8,-1
/* f076a94: afb8002c */ sw $t8,0x2c($sp)
/* f076a98: afa90010 */ sw $t1,0x10($sp)
/* f076a9c: 2406808b */ li $a2,-32629
/* f076aa0: 2407ffff */ li $a3,-1
/* f076aa4: afa00014 */ sw $zero,0x14($sp)
/* f076aa8: afa00018 */ sw $zero,0x18($sp)
/* f076aac: afa0001c */ sw $zero,0x1c($sp)
/* f076ab0: afa00020 */ sw $zero,0x20($sp)
/* f076ab4: afa00028 */ sw $zero,0x28($sp)
/* f076ab8: e7a00024 */ swc1 $f0,0x24($sp)
/* f076abc: e7a00030 */ swc1 $f0,0x30($sp)
/* f076ac0: e7a00034 */ swc1 $f0,0x34($sp)
/* f076ac4: 0fc24e0e */ jal propsnd0f0939f8
/* f076ac8: e7a00038 */ swc1 $f0,0x38($sp)
/* f076acc: 3c03800a */ lui $v1,0x800a
/* f076ad0: 10000052 */ b .PB0f076c1c
/* f076ad4: 8c63e4dc */ lw $v1,-0x1b24($v1)
.PB0f076ad8:
/* f076ad8: 2401001e */ li $at,0x1e
/* f076adc: 14e1003a */ bne $a3,$at,.PB0f076bc8
/* f076ae0: 00002025 */ move $a0,$zero
/* f076ae4: 922d005f */ lbu $t5,0x5f($s1)
/* f076ae8: 24010001 */ li $at,0x1
/* f076aec: 3c0f8007 */ lui $t7,0x8007
/* f076af0: 15a10035 */ bne $t5,$at,.PB0f076bc8
/* f076af4: 25efb288 */ addiu $t7,$t7,-19832
/* f076af8: 8de10000 */ lw $at,0x0($t7)
/* f076afc: 8dec0004 */ lw $t4,0x4($t7)
/* f076b00: 27ab0100 */ addiu $t3,$sp,0x100
/* f076b04: ad610000 */ sw $at,0x0($t3)
/* f076b08: 0c004be0 */ jal random
/* f076b0c: ad6c0004 */ sw $t4,0x4($t3)
/* f076b10: 304e0003 */ andi $t6,$v0,0x3
/* f076b14: 000ec840 */ sll $t9,$t6,0x1
/* f076b18: 03b93021 */ addu $a2,$sp,$t9
/* f076b1c: 84c60100 */ lh $a2,0x100($a2)
/* f076b20: 3c01bf80 */ lui $at,0xbf80
/* f076b24: 44810000 */ mtc1 $at,$f0
/* f076b28: 2409ffff */ li $t1,-1
/* f076b2c: 2418ffff */ li $t8,-1
/* f076b30: afb8002c */ sw $t8,0x2c($sp)
/* f076b34: afa90010 */ sw $t1,0x10($sp)
/* f076b38: afa00028 */ sw $zero,0x28($sp)
/* f076b3c: afa00020 */ sw $zero,0x20($sp)
/* f076b40: afa0001c */ sw $zero,0x1c($sp)
/* f076b44: afa00018 */ sw $zero,0x18($sp)
/* f076b48: afa00014 */ sw $zero,0x14($sp)
/* f076b4c: 00002025 */ move $a0,$zero
/* f076b50: 02402825 */ move $a1,$s2
/* f076b54: 2407ffff */ li $a3,-1
/* f076b58: e7a00024 */ swc1 $f0,0x24($sp)
/* f076b5c: e7a00030 */ swc1 $f0,0x30($sp)
/* f076b60: e7a00034 */ swc1 $f0,0x34($sp)
/* f076b64: 0fc24e0e */ jal propsnd0f0939f8
/* f076b68: e7a00038 */ swc1 $f0,0x38($sp)
/* f076b6c: 3c01bf80 */ lui $at,0xbf80
/* f076b70: 44810000 */ mtc1 $at,$f0
/* f076b74: 240dffff */ li $t5,-1
/* f076b78: 240affff */ li $t2,-1
/* f076b7c: afaa002c */ sw $t2,0x2c($sp)
/* f076b80: afad0010 */ sw $t5,0x10($sp)
/* f076b84: 00002025 */ move $a0,$zero
/* f076b88: 02402825 */ move $a1,$s2
/* f076b8c: 2406808c */ li $a2,-32628
/* f076b90: 2407ffff */ li $a3,-1
/* f076b94: afa00014 */ sw $zero,0x14($sp)
/* f076b98: afa00018 */ sw $zero,0x18($sp)
/* f076b9c: afa0001c */ sw $zero,0x1c($sp)
/* f076ba0: afa00020 */ sw $zero,0x20($sp)
/* f076ba4: afa00028 */ sw $zero,0x28($sp)
/* f076ba8: e7a00024 */ swc1 $f0,0x24($sp)
/* f076bac: e7a00030 */ swc1 $f0,0x30($sp)
/* f076bb0: e7a00034 */ swc1 $f0,0x34($sp)
/* f076bb4: 0fc24e0e */ jal propsnd0f0939f8
/* f076bb8: e7a00038 */ swc1 $f0,0x38($sp)
/* f076bbc: 3c03800a */ lui $v1,0x800a
/* f076bc0: 10000016 */ b .PB0f076c1c
/* f076bc4: 8c63e4dc */ lw $v1,-0x1b24($v1)
.PB0f076bc8:
/* f076bc8: 3c01bf80 */ lui $at,0xbf80
/* f076bcc: 44810000 */ mtc1 $at,$f0
/* f076bd0: 240bffff */ li $t3,-1
/* f076bd4: 240fffff */ li $t7,-1
/* f076bd8: afaf002c */ sw $t7,0x2c($sp)
/* f076bdc: afab0010 */ sw $t3,0x10($sp)
/* f076be0: 02402825 */ move $a1,$s2
/* f076be4: 2406808c */ li $a2,-32628
/* f076be8: 2407ffff */ li $a3,-1
/* f076bec: afa00014 */ sw $zero,0x14($sp)
/* f076bf0: afa00018 */ sw $zero,0x18($sp)
/* f076bf4: afa0001c */ sw $zero,0x1c($sp)
/* f076bf8: afa00020 */ sw $zero,0x20($sp)
/* f076bfc: afa00028 */ sw $zero,0x28($sp)
/* f076c00: e7a00024 */ swc1 $f0,0x24($sp)
/* f076c04: e7a00030 */ swc1 $f0,0x30($sp)
/* f076c08: e7a00034 */ swc1 $f0,0x34($sp)
/* f076c0c: 0fc24e0e */ jal propsnd0f0939f8
/* f076c10: e7a00038 */ swc1 $f0,0x38($sp)
/* f076c14: 3c03800a */ lui $v1,0x800a
/* f076c18: 8c63e4dc */ lw $v1,-0x1b24($v1)
.PB0f076c1c:
/* f076c1c: ae0300a4 */ sw $v1,0xa4($s0)
.PB0f076c20:
/* f076c20: 02202025 */ move $a0,$s1
.PB0f076c24:
/* f076c24: 24050001 */ li $a1,0x1
/* f076c28: 0fc1a792 */ jal func0f069c70
/* f076c2c: 24060001 */ li $a2,0x1
/* f076c30: 10000133 */ b .PB0f077100
/* f076c34: 8fbf005c */ lw $ra,0x5c($sp)
.PB0f076c38:
/* f076c38: 11800130 */ beqz $t4,.PB0f0770fc
/* f076c3c: 3c013f80 */ lui $at,0x3f80
/* f076c40: 240e0001 */ li $t6,0x1
/* f076c44: afae00fc */ sw $t6,0xfc($sp)
/* f076c48: 44816000 */ mtc1 $at,$f12
/* f076c4c: c6000060 */ lwc1 $f0,0x60($s0)
/* f076c50: 26040068 */ addiu $a0,$s0,0x68
/* f076c54: 26050078 */ addiu $a1,$s0,0x78
/* f076c58: 460c003c */ c.lt.s $f0,$f12
/* f076c5c: 00000000 */ nop
/* f076c60: 4502002a */ bc1fl .PB0f076d0c
/* f076c64: 4480a000 */ mtc1 $zero,$f20
/* f076c68: c6020064 */ lwc1 $f2,0x64($s0)
/* f076c6c: c464004c */ lwc1 $f4,0x4c($v1)
/* f076c70: 3c017f1b */ lui $at,0x7f1b
/* f076c74: 46041202 */ mul.s $f8,$f2,$f4
/* f076c78: 46080180 */ add.s $f6,$f0,$f8
/* f076c7c: e6060060 */ swc1 $f6,0x60($s0)
/* f076c80: 8c790038 */ lw $t9,0x38($v1)
/* f076c84: 5b200005 */ blezl $t9,.PB0f076c9c
/* f076c88: c6000060 */ lwc1 $f0,0x60($s0)
/* f076c8c: c42ac114 */ lwc1 $f10,-0x3eec($at)
/* f076c90: 460a1102 */ mul.s $f4,$f2,$f10
/* f076c94: e6040064 */ swc1 $f4,0x64($s0)
/* f076c98: c6000060 */ lwc1 $f0,0x60($s0)
.PB0f076c9c:
/* f076c9c: 4600603c */ c.lt.s $f12,$f0
/* f076ca0: 00000000 */ nop
/* f076ca4: 45020004 */ bc1fl .PB0f076cb8
/* f076ca8: 44060000 */ mfc1 $a2,$f0
/* f076cac: e60c0060 */ swc1 $f12,0x60($s0)
/* f076cb0: c6000060 */ lwc1 $f0,0x60($s0)
/* f076cb4: 44060000 */ mfc1 $a2,$f0
.PB0f076cb8:
/* f076cb8: 0fc25c4a */ jal quaternionSlerp
/* f076cbc: 27a700ec */ addiu $a3,$sp,0xec
/* f076cc0: 27a400ec */ addiu $a0,$sp,0xec
/* f076cc4: 0fc25b51 */ jal quaternionToMtx
/* f076cc8: 27a500ac */ addiu $a1,$sp,0xac
/* f076ccc: c60c00b8 */ lwc1 $f12,0xb8($s0)
/* f076cd0: 0c005a1d */ jal mtx00015e24
/* f076cd4: 27a500ac */ addiu $a1,$sp,0xac
/* f076cd8: c60c00bc */ lwc1 $f12,0xbc($s0)
/* f076cdc: 0c005a34 */ jal mtx00015e80
/* f076ce0: 27a500ac */ addiu $a1,$sp,0xac
/* f076ce4: c60c00c0 */ lwc1 $f12,0xc0($s0)
/* f076ce8: 0c005a4b */ jal mtx00015edc
/* f076cec: 27a500ac */ addiu $a1,$sp,0xac
/* f076cf0: 27a400ac */ addiu $a0,$sp,0xac
/* f076cf4: 0c0059fc */ jal mtx4ToMtx3
/* f076cf8: 2625001c */ addiu $a1,$s1,0x1c
/* f076cfc: 3c013f80 */ lui $at,0x3f80
/* f076d00: 44816000 */ mtc1 $at,$f12
/* f076d04: afa000fc */ sw $zero,0xfc($sp)
/* f076d08: 4480a000 */ mtc1 $zero,$f20
.PB0f076d0c:
/* f076d0c: c6080004 */ lwc1 $f8,0x4($s0)
/* f076d10: 02202025 */ move $a0,$s1
/* f076d14: 2629001c */ addiu $t1,$s1,0x1c
/* f076d18: 4608a032 */ c.eq.s $f20,$f8
/* f076d1c: 00000000 */ nop
/* f076d20: 4502000c */ bc1fl .PB0f076d54
/* f076d24: afa90074 */ sw $t1,0x74($sp)
/* f076d28: c606000c */ lwc1 $f6,0xc($s0)
/* f076d2c: 4606a032 */ c.eq.s $f20,$f6
/* f076d30: 00000000 */ nop
/* f076d34: 45020007 */ bc1fl .PB0f076d54
/* f076d38: afa90074 */ sw $t1,0x74($sp)
/* f076d3c: c60a0060 */ lwc1 $f10,0x60($s0)
/* f076d40: 460c503c */ c.lt.s $f10,$f12
/* f076d44: 00000000 */ nop
/* f076d48: 450200da */ bc1fl .PB0f0770b4
/* f076d4c: 8faf00fc */ lw $t7,0xfc($sp)
/* f076d50: afa90074 */ sw $t1,0x74($sp)
.PB0f076d54:
/* f076d54: 0fc1a335 */ jal objFindBboxRodata
/* f076d58: afa000fc */ sw $zero,0xfc($sp)
/* f076d5c: 00402025 */ move $a0,$v0
/* f076d60: 0fc19acf */ jal func0f06695c
/* f076d64: 8fa50074 */ lw $a1,0x74($sp)
/* f076d68: 3c03800a */ lui $v1,0x800a
/* f076d6c: 8c63e508 */ lw $v1,-0x1af8($v1)
/* f076d70: e7a00098 */ swc1 $f0,0x98($sp)
/* f076d74: 00001025 */ move $v0,$zero
/* f076d78: 18600053 */ blez $v1,.PB0f076ec8
/* f076d7c: 3c017f1b */ lui $at,0x7f1b
/* f076d80: c432c118 */ lwc1 $f18,-0x3ee8($at)
/* f076d84: 3c017f1b */ lui $at,0x7f1b
/* f076d88: c430c11c */ lwc1 $f16,-0x3ee4($at)
/* f076d8c: c6080004 */ lwc1 $f8,0x4($s0)
.PB0f076d90:
/* f076d90: c7a405dc */ lwc1 $f4,0x5dc($sp)
/* f076d94: 3c013f80 */ lui $at,0x3f80
/* f076d98: 46104182 */ mul.s $f6,$f8,$f16
/* f076d9c: c7a805e4 */ lwc1 $f8,0x5e4($sp)
/* f076da0: 46062280 */ add.s $f10,$f4,$f6
/* f076da4: e7aa05dc */ swc1 $f10,0x5dc($sp)
/* f076da8: c604000c */ lwc1 $f4,0xc($s0)
/* f076dac: 46102182 */ mul.s $f6,$f4,$f16
/* f076db0: 46064280 */ add.s $f10,$f8,$f6
/* f076db4: 44814000 */ mtc1 $at,$f8
/* f076db8: e7aa05e4 */ swc1 $f10,0x5e4($sp)
/* f076dbc: c6040060 */ lwc1 $f4,0x60($s0)
/* f076dc0: 4604403e */ c.le.s $f8,$f4
/* f076dc4: 00000000 */ nop
/* f076dc8: 4502003c */ bc1fl .PB0f076ebc
/* f076dcc: 24420001 */ addiu $v0,$v0,0x1
/* f076dd0: c6060098 */ lwc1 $f6,0x98($s0)
/* f076dd4: 4606a03c */ c.lt.s $f20,$f6
/* f076dd8: 00000000 */ nop
/* f076ddc: 4502002e */ bc1fl .PB0f076e98
/* f076de0: c6080004 */ lwc1 $f8,0x4($s0)
/* f076de4: c602000c */ lwc1 $f2,0xc($s0)
/* f076de8: c60e0004 */ lwc1 $f14,0x4($s0)
/* f076dec: afa2009c */ sw $v0,0x9c($sp)
/* f076df0: 46021282 */ mul.s $f10,$f2,$f2
/* f076df4: 00000000 */ nop
/* f076df8: 460e7102 */ mul.s $f4,$f14,$f14
/* f076dfc: 0c012ae4 */ jal sqrtf
/* f076e00: 46045300 */ add.s $f12,$f10,$f4
/* f076e04: 4600a03c */ c.lt.s $f20,$f0
/* f076e08: 3c017f1b */ lui $at,0x7f1b
/* f076e0c: c430c120 */ lwc1 $f16,-0x3ee0($at)
/* f076e10: 3c017f1b */ lui $at,0x7f1b
/* f076e14: c432c124 */ lwc1 $f18,-0x3edc($at)
/* f076e18: 45000019 */ bc1f .PB0f076e80
/* f076e1c: 8fa2009c */ lw $v0,0x9c($sp)
/* f076e20: 3c01800a */ lui $at,0x800a
/* f076e24: c426e51c */ lwc1 $f6,-0x1ae4($at)
/* f076e28: c6080098 */ lwc1 $f8,0x98($s0)
/* f076e2c: 3c013f80 */ lui $at,0x3f80
/* f076e30: 44812000 */ mtc1 $at,$f4
/* f076e34: 46064282 */ mul.s $f10,$f8,$f6
/* f076e38: 46005303 */ div.s $f12,$f10,$f0
/* f076e3c: 460c203e */ c.le.s $f4,$f12
/* f076e40: 00000000 */ nop
/* f076e44: 45020005 */ bc1fl .PB0f076e5c
/* f076e48: c60e0004 */ lwc1 $f14,0x4($s0)
/* f076e4c: e6140004 */ swc1 $f20,0x4($s0)
/* f076e50: 1000000d */ b .PB0f076e88
/* f076e54: e614000c */ swc1 $f20,0xc($s0)
/* f076e58: c60e0004 */ lwc1 $f14,0x4($s0)
.PB0f076e5c:
/* f076e5c: c602000c */ lwc1 $f2,0xc($s0)
/* f076e60: 460c7202 */ mul.s $f8,$f14,$f12
/* f076e64: 00000000 */ nop
/* f076e68: 460c1282 */ mul.s $f10,$f2,$f12
/* f076e6c: 46087181 */ sub.s $f6,$f14,$f8
/* f076e70: 460a1101 */ sub.s $f4,$f2,$f10
/* f076e74: e6060004 */ swc1 $f6,0x4($s0)
/* f076e78: 10000003 */ b .PB0f076e88
/* f076e7c: e604000c */ swc1 $f4,0xc($s0)
.PB0f076e80:
/* f076e80: e6140004 */ swc1 $f20,0x4($s0)
/* f076e84: e614000c */ swc1 $f20,0xc($s0)
.PB0f076e88:
/* f076e88: 3c03800a */ lui $v1,0x800a
/* f076e8c: 1000000a */ b .PB0f076eb8
/* f076e90: 8c63e508 */ lw $v1,-0x1af8($v1)
/* f076e94: c6080004 */ lwc1 $f8,0x4($s0)
.PB0f076e98:
/* f076e98: c60a000c */ lwc1 $f10,0xc($s0)
/* f076e9c: 3c03800a */ lui $v1,0x800a
/* f076ea0: 46124182 */ mul.s $f6,$f8,$f18
/* f076ea4: 00000000 */ nop
/* f076ea8: 46125102 */ mul.s $f4,$f10,$f18
/* f076eac: e6060004 */ swc1 $f6,0x4($s0)
/* f076eb0: e604000c */ swc1 $f4,0xc($s0)
/* f076eb4: 8c63e508 */ lw $v1,-0x1af8($v1)
.PB0f076eb8:
/* f076eb8: 24420001 */ addiu $v0,$v0,0x1
.PB0f076ebc:
/* f076ebc: 0043082a */ slt $at,$v0,$v1
/* f076ec0: 5420ffb3 */ bnezl $at,.PB0f076d90
/* f076ec4: c6080004 */ lwc1 $f8,0x4($s0)
.PB0f076ec8:
/* f076ec8: c6480008 */ lwc1 $f8,0x8($s2)
/* f076ecc: 26440028 */ addiu $a0,$s2,0x28
/* f076ed0: 27a505b8 */ addiu $a1,$sp,0x5b8
/* f076ed4: e7a805c8 */ swc1 $f8,0x5c8($sp)
/* f076ed8: c646000c */ lwc1 $f6,0xc($s2)
/* f076edc: e7a605cc */ swc1 $f6,0x5cc($sp)
/* f076ee0: c64a0010 */ lwc1 $f10,0x10($s2)
/* f076ee4: afa4006c */ sw $a0,0x6c($sp)
/* f076ee8: 0fc19661 */ jal roomsCopy
/* f076eec: e7aa05d0 */ swc1 $f10,0x5d0($sp)
/* f076ef0: 02202025 */ move $a0,$s1
/* f076ef4: 27a505dc */ addiu $a1,$sp,0x5dc
/* f076ef8: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f076efc: 0fc1b555 */ jal func0f06d37c
/* f076f00: 27a705f4 */ addiu $a3,$sp,0x5f4
/* f076f04: 24180001 */ li $t8,0x1
/* f076f08: afb805d8 */ sw $t8,0x5d8($sp)
/* f076f0c: c6440008 */ lwc1 $f4,0x8($s2)
/* f076f10: c7a60098 */ lwc1 $f6,0x98($sp)
/* f076f14: 26270058 */ addiu $a3,$s1,0x58
/* f076f18: e7a405ac */ swc1 $f4,0x5ac($sp)
/* f076f1c: c648000c */ lwc1 $f8,0xc($s2)
/* f076f20: 27ad0096 */ addiu $t5,$sp,0x96
/* f076f24: 27a405ac */ addiu $a0,$sp,0x5ac
/* f076f28: 46064280 */ add.s $f10,$f8,$f6
/* f076f2c: 8fa5006c */ lw $a1,0x6c($sp)
/* f076f30: 27a600a4 */ addiu $a2,$sp,0xa4
/* f076f34: e7aa05b0 */ swc1 $f10,0x5b0($sp)
/* f076f38: c6440010 */ lwc1 $f4,0x10($s2)
/* f076f3c: afa70074 */ sw $a3,0x74($sp)
/* f076f40: afad0010 */ sw $t5,0x10($sp)
/* f076f44: 0c00aaa4 */ jal cd0002a4d0
/* f076f48: e7a405b4 */ swc1 $f4,0x5b4($sp)
/* f076f4c: 00021c00 */ sll $v1,$v0,0x10
/* f076f50: 1840000b */ blez $v0,.PB0f076f80
/* f076f54: 00035403 */ sra $t2,$v1,0x10
/* f076f58: 240b0003 */ li $t3,0x3
/* f076f5c: afab0010 */ sw $t3,0x10($sp)
/* f076f60: 27a405c8 */ addiu $a0,$sp,0x5c8
/* f076f64: 27a505b8 */ addiu $a1,$sp,0x5b8
/* f076f68: 27a605ac */ addiu $a2,$sp,0x5ac
/* f076f6c: 24070021 */ li $a3,0x21
/* f076f70: 0c00b856 */ jal cd0002db98
/* f076f74: a7aa00a2 */ sh $t2,0xa2($sp)
/* f076f78: 1040000b */ beqz $v0,.PB0f076fa8
/* f076f7c: 87a300a2 */ lh $v1,0xa2($sp)
.PB0f076f80:
/* f076f80: 27af0096 */ addiu $t7,$sp,0x96
/* f076f84: afaf0010 */ sw $t7,0x10($sp)
/* f076f88: 26440008 */ addiu $a0,$s2,0x8
/* f076f8c: 8fa5006c */ lw $a1,0x6c($sp)
/* f076f90: 27a600a4 */ addiu $a2,$sp,0xa4
/* f076f94: 0c00aa80 */ jal cd0002a440
/* f076f98: 8fa70074 */ lw $a3,0x74($sp)
/* f076f9c: 00021c00 */ sll $v1,$v0,0x10
/* f076fa0: 00036403 */ sra $t4,$v1,0x10
/* f076fa4: 01801825 */ move $v1,$t4
.PB0f076fa8:
/* f076fa8: 1c600017 */ bgtz $v1,.PB0f077008
/* f076fac: c7a805c8 */ lwc1 $f8,0x5c8($sp)
/* f076fb0: e6480008 */ swc1 $f8,0x8($s2)
/* f076fb4: c7a605d0 */ lwc1 $f6,0x5d0($sp)
/* f076fb8: 264e0008 */ addiu $t6,$s2,0x8
/* f076fbc: 02402025 */ move $a0,$s2
/* f076fc0: e6460010 */ swc1 $f6,0x10($s2)
/* f076fc4: 0fc19789 */ jal propDeregisterRooms
/* f076fc8: afae0070 */ sw $t6,0x70($sp)
/* f076fcc: 27a405b8 */ addiu $a0,$sp,0x5b8
/* f076fd0: 0fc19661 */ jal roomsCopy
/* f076fd4: 8fa5006c */ lw $a1,0x6c($sp)
/* f076fd8: 27b90096 */ addiu $t9,$sp,0x96
/* f076fdc: afb90010 */ sw $t9,0x10($sp)
/* f076fe0: 8fa40070 */ lw $a0,0x70($sp)
/* f076fe4: 8fa5006c */ lw $a1,0x6c($sp)
/* f076fe8: 27a600a4 */ addiu $a2,$sp,0xa4
/* f076fec: 0c00aa80 */ jal cd0002a440
/* f076ff0: 8fa70074 */ lw $a3,0x74($sp)
/* f076ff4: 00021c00 */ sll $v1,$v0,0x10
/* f076ff8: 00034c03 */ sra $t1,$v1,0x10
/* f076ffc: 01201825 */ move $v1,$t1
/* f077000: e6140004 */ swc1 $f20,0x4($s0)
/* f077004: e614000c */ swc1 $f20,0xc($s0)
.PB0f077008:
/* f077008: 18600010 */ blez $v1,.PB0f07704c
/* f07700c: c7aa05cc */ lwc1 $f10,0x5cc($sp)
/* f077010: 0fc1a9fe */ jal func0f06a620
/* f077014: 02202025 */ move $a0,$s1
/* f077018: c7aa00a4 */ lwc1 $f10,0xa4($sp)
/* f07701c: c7a40098 */ lwc1 $f4,0x98($sp)
/* f077020: 46045201 */ sub.s $f8,$f10,$f4
/* f077024: 46080180 */ add.s $f6,$f0,$f8
/* f077028: e646000c */ swc1 $f6,0xc($s2)
/* f07702c: 97b80096 */ lhu $t8,0x96($sp)
/* f077030: 330d4000 */ andi $t5,$t8,0x4000
/* f077034: 11a00006 */ beqz $t5,.PB0f077050
/* f077038: 00000000 */ nop
/* f07703c: 8e2a0040 */ lw $t2,0x40($s1)
/* f077040: 354b0004 */ ori $t3,$t2,0x4
/* f077044: 10000002 */ b .PB0f077050
/* f077048: ae2b0040 */ sw $t3,0x40($s1)
.PB0f07704c:
/* f07704c: e64a000c */ swc1 $f10,0xc($s2)
.PB0f077050:
/* f077050: 3c017f1b */ lui $at,0x7f1b
/* f077054: c430c128 */ lwc1 $f16,-0x3ed8($at)
/* f077058: c60e0004 */ lwc1 $f14,0x4($s0)
/* f07705c: 3c017f1b */ lui $at,0x7f1b
/* f077060: 4610703c */ c.lt.s $f14,$f16
/* f077064: 00000000 */ nop
/* f077068: 45020012 */ bc1fl .PB0f0770b4
/* f07706c: 8faf00fc */ lw $t7,0xfc($sp)
/* f077070: c432c12c */ lwc1 $f18,-0x3ed4($at)
/* f077074: 460e903c */ c.lt.s $f18,$f14
/* f077078: 00000000 */ nop
/* f07707c: 4502000d */ bc1fl .PB0f0770b4
/* f077080: 8faf00fc */ lw $t7,0xfc($sp)
/* f077084: c602000c */ lwc1 $f2,0xc($s0)
/* f077088: 4610103c */ c.lt.s $f2,$f16
/* f07708c: 00000000 */ nop
/* f077090: 45020008 */ bc1fl .PB0f0770b4
/* f077094: 8faf00fc */ lw $t7,0xfc($sp)
/* f077098: 4602903c */ c.lt.s $f18,$f2
/* f07709c: 00000000 */ nop
/* f0770a0: 45020004 */ bc1fl .PB0f0770b4
/* f0770a4: 8faf00fc */ lw $t7,0xfc($sp)
/* f0770a8: e614000c */ swc1 $f20,0xc($s0)
/* f0770ac: e6140004 */ swc1 $f20,0x4($s0)
/* f0770b0: 8faf00fc */ lw $t7,0xfc($sp)
.PB0f0770b4:
/* f0770b4: 51e0000b */ beqzl $t7,.PB0f0770e4
/* f0770b8: 8fae05d8 */ lw $t6,0x5d8($sp)
/* f0770bc: 0fc1ab86 */ jal objEndFlight
/* f0770c0: 02202025 */ move $a0,$s1
/* f0770c4: 922c0003 */ lbu $t4,0x3($s1)
/* f0770c8: 24010008 */ li $at,0x8
/* f0770cc: 26450028 */ addiu $a1,$s2,0x28
/* f0770d0: 55810004 */ bnel $t4,$at,.PB0f0770e4
/* f0770d4: 8fae05d8 */ lw $t6,0x5d8($sp)
/* f0770d8: 0fc25792 */ jal objectiveCheckThrowInRoom
/* f0770dc: 9224005c */ lbu $a0,0x5c($s1)
/* f0770e0: 8fae05d8 */ lw $t6,0x5d8($sp)
.PB0f0770e4:
/* f0770e4: 02202025 */ move $a0,$s1
/* f0770e8: 24050001 */ li $a1,0x1
/* f0770ec: 51c00004 */ beqzl $t6,.PB0f077100
/* f0770f0: 8fbf005c */ lw $ra,0x5c($sp)
/* f0770f4: 0fc1a792 */ jal func0f069c70
/* f0770f8: 24060001 */ li $a2,0x1
.PB0f0770fc:
/* f0770fc: 8fbf005c */ lw $ra,0x5c($sp)
.PB0f077100:
/* f077100: 8fa205d8 */ lw $v0,0x5d8($sp)
/* f077104: d7b40048 */ ldc1 $f20,0x48($sp)
/* f077108: 8fb00050 */ lw $s0,0x50($sp)
/* f07710c: 8fb10054 */ lw $s1,0x54($sp)
/* f077110: 8fb20058 */ lw $s2,0x58($sp)
/* f077114: 03e00008 */ jr $ra
/* f077118: 27bd0608 */ addiu $sp,$sp,0x608
);
#elif VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel func0f073c6c
.late_rodata
glabel var7f1aa3d4
.word 0x3c23d70a
glabel var7f1aa3d8
.word 0x3c23d70a
glabel var7f1aa3dc
.word 0x38d1b717
glabel var7f1aa3e0
.word 0x3c23d70a
glabel var7f1aa3e4
.word 0x3c23d70a
glabel var7f1aa3e8
.word 0x3c23d70a
glabel var7f1aa3ec
.word 0xc6ea6000
glabel var7f1aa3f0
.word 0xc69c4000
glabel var7f1aa3f4
.word 0x3e8e38e4
glabel var7f1aa3f8
.word 0x3c360b61
glabel var7f1aa3fc
.word 0x3d8f5c29
glabel var7f1aa400
.word 0x3e8e38e4
glabel var7f1aa404
.word 0x3a83126f
glabel var7f1aa408
.word 0xba83126f
glabel var7f1aa40c
.word 0x3e8e38e4
glabel var7f1aa410
.word 0x3e0e38e4
glabel var7f1aa414
.word 0x400e38e4
glabel var7f1aa418
.word 0x46d9038c
glabel var7f1aa41c
.word 0x3dcccccd
glabel var7f1aa420
.word 0xbdcccccd
glabel var7f1aa424
.word 0xbdcccccd
glabel var7f1aa428
.word 0x3f8ccccd
glabel var7f1aa42c
.word 0x3f666666
glabel var7f1aa430
.word 0x3f666666
glabel var7f1aa434
.word 0x3dcccccd
glabel var7f1aa438
.word 0xbdcccccd
.text
/* f073c6c: 27bdf9f8 */ addiu $sp,$sp,-1544
/* f073c70: 3c03800a */ lui $v1,%hi(g_Vars)
/* f073c74: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
/* f073c78: 8c6e0034 */ lw $t6,0x34($v1)
/* f073c7c: afbf005c */ sw $ra,0x5c($sp)
/* f073c80: afb20058 */ sw $s2,0x58($sp)
/* f073c84: afb10054 */ sw $s1,0x54($sp)
/* f073c88: afb00050 */ sw $s0,0x50($sp)
/* f073c8c: f7b40048 */ sdc1 $f20,0x48($sp)
/* f073c90: afa5060c */ sw $a1,0x60c($sp)
/* f073c94: 8c900048 */ lw $s0,0x48($a0)
/* f073c98: afa005d8 */ sw $zero,0x5d8($sp)
/* f073c9c: 00808825 */ or $s1,$a0,$zero
/* f073ca0: 19c00c9b */ blez $t6,.L0f076f10
/* f073ca4: 8c920014 */ lw $s2,0x14($a0)
/* f073ca8: 908f0003 */ lbu $t7,0x3($a0)
/* f073cac: 24010008 */ addiu $at,$zero,0x8
/* f073cb0: 55e1000a */ bnel $t7,$at,.L0f073cdc
/* f073cb4: 8e020000 */ lw $v0,0x0($s0)
/* f073cb8: 9098005c */ lbu $t8,0x5c($a0)
/* f073cbc: 24010058 */ addiu $at,$zero,0x58
/* f073cc0: 57010006 */ bnel $t8,$at,.L0f073cdc
/* f073cc4: 8e020000 */ lw $v0,0x0($s0)
/* f073cc8: 0fc1cd1e */ jal rocketTickFbw
/* f073ccc: 00000000 */ nop
/* f073cd0: 10000c8f */ b .L0f076f10
/* f073cd4: afa205d8 */ sw $v0,0x5d8($sp)
/* f073cd8: 8e020000 */ lw $v0,0x0($s0)
.L0f073cdc:
/* f073cdc: 2401cfff */ addiu $at,$zero,-12289
/* f073ce0: 30591000 */ andi $t9,$v0,0x1000
/* f073ce4: 13200006 */ beqz $t9,.L0f073d00
/* f073ce8: 30492000 */ andi $t1,$v0,0x2000
/* f073cec: 0009502b */ sltu $t2,$zero,$t1
/* f073cf0: afaa05d8 */ sw $t2,0x5d8($sp)
/* f073cf4: 00415824 */ and $t3,$v0,$at
/* f073cf8: 10000c85 */ b .L0f076f10
/* f073cfc: ae0b0000 */ sw $t3,0x0($s0)
.L0f073d00:
/* f073d00: 8e2c0040 */ lw $t4,0x40($s1)
/* f073d04: 3c01fffd */ lui $at,0xfffd
/* f073d08: 3421ffff */ ori $at,$at,0xffff
/* f073d0c: 01816824 */ and $t5,$t4,$at
/* f073d10: ae2d0040 */ sw $t5,0x40($s1)
/* f073d14: 8e0e0000 */ lw $t6,0x0($s0)
/* f073d18: 02202025 */ or $a0,$s1,$zero
/* f073d1c: 02002825 */ or $a1,$s0,$zero
/* f073d20: 31cf0080 */ andi $t7,$t6,0x80
/* f073d24: 11e00005 */ beqz $t7,.L0f073d3c
/* f073d28: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f073d2c: 0fc1ceba */ jal func0f073ae8
/* f073d30: 27a705f4 */ addiu $a3,$sp,0x5f4
/* f073d34: 3c03800a */ lui $v1,%hi(g_Vars)
/* f073d38: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
.L0f073d3c:
/* f073d3c: c6440008 */ lwc1 $f4,0x8($s2)
/* f073d40: 2624001c */ addiu $a0,$s1,0x1c
/* f073d44: 27a50504 */ addiu $a1,$sp,0x504
/* f073d48: e7a405dc */ swc1 $f4,0x5dc($sp)
/* f073d4c: c646000c */ lwc1 $f6,0xc($s2)
/* f073d50: e7a605e0 */ swc1 $f6,0x5e0($sp)
/* f073d54: c6480010 */ lwc1 $f8,0x10($s2)
/* f073d58: e7a805e4 */ swc1 $f8,0x5e4($sp)
/* f073d5c: 8e0200b4 */ lw $v0,0xb4($s0)
/* f073d60: 58400005 */ blezl $v0,.L0f073d78
/* f073d64: 8e020000 */ lw $v0,0x0($s0)
/* f073d68: 8c780034 */ lw $t8,0x34($v1)
/* f073d6c: 0058c823 */ subu $t9,$v0,$t8
/* f073d70: ae1900b4 */ sw $t9,0xb4($s0)
/* f073d74: 8e020000 */ lw $v0,0x0($s0)
.L0f073d78:
/* f073d78: 30490800 */ andi $t1,$v0,0x800
/* f073d7c: 11200376 */ beqz $t1,.L0f074b58
/* f073d80: 304e0001 */ andi $t6,$v0,0x1
/* f073d84: 0c005755 */ jal mtx3ToMtx4
/* f073d88: afa40074 */ sw $a0,0x74($sp)
/* f073d8c: 26440008 */ addiu $a0,$s2,0x8
/* f073d90: afa40070 */ sw $a0,0x70($sp)
/* f073d94: 0c005775 */ jal mtx4SetTranslation
/* f073d98: 27a50504 */ addiu $a1,$sp,0x504
/* f073d9c: 4480a000 */ mtc1 $zero,$f20
/* f073da0: c60000dc */ lwc1 $f0,0xdc($s0)
/* f073da4: 3c01800a */ lui $at,%hi(g_Vars+0x4c)
/* f073da8: 4600a03c */ c.lt.s $f20,$f0
/* f073dac: 00000000 */ nop
/* f073db0: 4502002c */ bc1fl .L0f073e64
/* f073db4: 4614003c */ c.lt.s $f0,$f20
/* f073db8: c60a00e0 */ lwc1 $f10,0xe0($s0)
/* f073dbc: c424a00c */ lwc1 $f4,%lo(g_Vars+0x4c)($at)
/* f073dc0: 3c013f80 */ lui $at,0x3f80
/* f073dc4: 46045182 */ mul.s $f6,$f10,$f4
/* f073dc8: 46060201 */ sub.s $f8,$f0,$f6
/* f073dcc: e60800dc */ swc1 $f8,0xdc($s0)
/* f073dd0: c60a00dc */ lwc1 $f10,0xdc($s0)
/* f073dd4: 4614503c */ c.lt.s $f10,$f20
/* f073dd8: 00000000 */ nop
/* f073ddc: 45020004 */ bc1fl .L0f073df0
/* f073de0: c61000e4 */ lwc1 $f16,0xe4($s0)
/* f073de4: 1000004b */ b .L0f073f14
/* f073de8: e61400dc */ swc1 $f20,0xdc($s0)
/* f073dec: c61000e4 */ lwc1 $f16,0xe4($s0)
.L0f073df0:
/* f073df0: 44812000 */ mtc1 $at,$f4
/* f073df4: 3c03800a */ lui $v1,%hi(g_Vars+0x38)
/* f073df8: 4604803c */ c.lt.s $f16,$f4
/* f073dfc: 00000000 */ nop
/* f073e00: 45020045 */ bc1fl .L0f073f18
/* f073e04: c60e0004 */ lwc1 $f14,0x4($s0)
/* f073e08: 8c639ff8 */ lw $v1,%lo(g_Vars+0x38)($v1)
/* f073e0c: 00001025 */ or $v0,$zero,$zero
/* f073e10: 58600041 */ blezl $v1,.L0f073f18
/* f073e14: c60e0004 */ lwc1 $f14,0x4($s0)
/* f073e18: c60200ec */ lwc1 $f2,0xec($s0)
/* f073e1c: c60000dc */ lwc1 $f0,0xdc($s0)
.L0f073e20:
/* f073e20: 24420001 */ addiu $v0,$v0,0x1
/* f073e24: 4600103c */ c.lt.s $f2,$f0
/* f073e28: 00000000 */ nop
/* f073e2c: 45020008 */ bc1fl .L0f073e50
/* f073e30: 0043082a */ slt $at,$v0,$v1
/* f073e34: 46020181 */ sub.s $f6,$f0,$f2
/* f073e38: 3c03800a */ lui $v1,%hi(g_Vars+0x38)
/* f073e3c: 46103202 */ mul.s $f8,$f6,$f16
/* f073e40: 46081280 */ add.s $f10,$f2,$f8
/* f073e44: e60a00dc */ swc1 $f10,0xdc($s0)
/* f073e48: 8c639ff8 */ lw $v1,%lo(g_Vars+0x38)($v1)
/* f073e4c: 0043082a */ slt $at,$v0,$v1
.L0f073e50:
/* f073e50: 5420fff3 */ bnezl $at,.L0f073e20
/* f073e54: c60000dc */ lwc1 $f0,0xdc($s0)
/* f073e58: 1000002f */ b .L0f073f18
/* f073e5c: c60e0004 */ lwc1 $f14,0x4($s0)
/* f073e60: 4614003c */ c.lt.s $f0,$f20
.L0f073e64:
/* f073e64: 3c04800a */ lui $a0,%hi(g_Vars)
/* f073e68: 24849fc0 */ addiu $a0,$a0,%lo(g_Vars)
/* f073e6c: 4502002a */ bc1fl .L0f073f18
/* f073e70: c60e0004 */ lwc1 $f14,0x4($s0)
/* f073e74: c60400e0 */ lwc1 $f4,0xe0($s0)
/* f073e78: c486004c */ lwc1 $f6,0x4c($a0)
/* f073e7c: 3c013f80 */ lui $at,0x3f80
/* f073e80: 46062202 */ mul.s $f8,$f4,$f6
/* f073e84: 46080280 */ add.s $f10,$f0,$f8
/* f073e88: e60a00dc */ swc1 $f10,0xdc($s0)
/* f073e8c: c60400dc */ lwc1 $f4,0xdc($s0)
/* f073e90: 4604a03c */ c.lt.s $f20,$f4
/* f073e94: 00000000 */ nop
/* f073e98: 45020004 */ bc1fl .L0f073eac
/* f073e9c: c61000e4 */ lwc1 $f16,0xe4($s0)
/* f073ea0: 1000001c */ b .L0f073f14
/* f073ea4: e61400dc */ swc1 $f20,0xdc($s0)
/* f073ea8: c61000e4 */ lwc1 $f16,0xe4($s0)
.L0f073eac:
/* f073eac: 44813000 */ mtc1 $at,$f6
/* f073eb0: 00000000 */ nop
/* f073eb4: 4606803c */ c.lt.s $f16,$f6
/* f073eb8: 00000000 */ nop
/* f073ebc: 45020016 */ bc1fl .L0f073f18
/* f073ec0: c60e0004 */ lwc1 $f14,0x4($s0)
/* f073ec4: 8c830038 */ lw $v1,0x38($a0)
/* f073ec8: 00001025 */ or $v0,$zero,$zero
/* f073ecc: 58600012 */ blezl $v1,.L0f073f18
/* f073ed0: c60e0004 */ lwc1 $f14,0x4($s0)
/* f073ed4: c60200ec */ lwc1 $f2,0xec($s0)
/* f073ed8: 46001307 */ neg.s $f12,$f2
/* f073edc: c60000dc */ lwc1 $f0,0xdc($s0)
.L0f073ee0:
/* f073ee0: 24420001 */ addiu $v0,$v0,0x1
/* f073ee4: 460c003c */ c.lt.s $f0,$f12
/* f073ee8: 00000000 */ nop
/* f073eec: 45020007 */ bc1fl .L0f073f0c
/* f073ef0: 0043082a */ slt $at,$v0,$v1
/* f073ef4: 46020200 */ add.s $f8,$f0,$f2
/* f073ef8: 46104282 */ mul.s $f10,$f8,$f16
/* f073efc: 460a6100 */ add.s $f4,$f12,$f10
/* f073f00: e60400dc */ swc1 $f4,0xdc($s0)
/* f073f04: 8c830038 */ lw $v1,0x38($a0)
/* f073f08: 0043082a */ slt $at,$v0,$v1
.L0f073f0c:
/* f073f0c: 5420fff4 */ bnezl $at,.L0f073ee0
/* f073f10: c60000dc */ lwc1 $f0,0xdc($s0)
.L0f073f14:
/* f073f14: c60e0004 */ lwc1 $f14,0x4($s0)
.L0f073f18:
/* f073f18: 460ea032 */ c.eq.s $f20,$f14
/* f073f1c: 00000000 */ nop
/* f073f20: 45020007 */ bc1fl .L0f073f40
/* f073f24: c6080098 */ lwc1 $f8,0x98($s0)
/* f073f28: c606000c */ lwc1 $f6,0xc($s0)
/* f073f2c: 4606a032 */ c.eq.s $f20,$f6
/* f073f30: 00000000 */ nop
/* f073f34: 45030061 */ bc1tl .L0f0740bc
/* f073f38: 8e040088 */ lw $a0,0x88($s0)
/* f073f3c: c6080098 */ lwc1 $f8,0x98($s0)
.L0f073f40:
/* f073f40: 4608a03c */ c.lt.s $f20,$f8
/* f073f44: 00000000 */ nop
/* f073f48: 4502005c */ bc1fl .L0f0740bc
/* f073f4c: 8e040088 */ lw $a0,0x88($s0)
/* f073f50: c602000c */ lwc1 $f2,0xc($s0)
/* f073f54: 46021282 */ mul.s $f10,$f2,$f2
/* f073f58: 00000000 */ nop
/* f073f5c: 460e7102 */ mul.s $f4,$f14,$f14
/* f073f60: 0c012974 */ jal sqrtf
/* f073f64: 46045300 */ add.s $f12,$f10,$f4
/* f073f68: 4600a03c */ c.lt.s $f20,$f0
/* f073f6c: 3c03800a */ lui $v1,%hi(g_Vars)
/* f073f70: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
/* f073f74: 4502004f */ bc1fl .L0f0740b4
/* f073f78: e6140004 */ swc1 $f20,0x4($s0)
/* f073f7c: c6060098 */ lwc1 $f6,0x98($s0)
/* f073f80: c468004c */ lwc1 $f8,0x4c($v1)
/* f073f84: 3c013f80 */ lui $at,0x3f80
/* f073f88: 44812000 */ mtc1 $at,$f4
/* f073f8c: 46083282 */ mul.s $f10,$f6,$f8
/* f073f90: 46005303 */ div.s $f12,$f10,$f0
/* f073f94: 460c203e */ c.le.s $f4,$f12
/* f073f98: 00000000 */ nop
/* f073f9c: 45020005 */ bc1fl .L0f073fb4
/* f073fa0: c60e0004 */ lwc1 $f14,0x4($s0)
/* f073fa4: e6140004 */ swc1 $f20,0x4($s0)
/* f073fa8: 10000043 */ b .L0f0740b8
/* f073fac: e614000c */ swc1 $f20,0xc($s0)
/* f073fb0: c60e0004 */ lwc1 $f14,0x4($s0)
.L0f073fb4:
/* f073fb4: c602000c */ lwc1 $f2,0xc($s0)
/* f073fb8: 3c013f80 */ lui $at,0x3f80
/* f073fbc: 460c7182 */ mul.s $f6,$f14,$f12
/* f073fc0: c61000e4 */ lwc1 $f16,0xe4($s0)
/* f073fc4: 460c1282 */ mul.s $f10,$f2,$f12
/* f073fc8: 46067201 */ sub.s $f8,$f14,$f6
/* f073fcc: 44813000 */ mtc1 $at,$f6
/* f073fd0: 460a1101 */ sub.s $f4,$f2,$f10
/* f073fd4: e6080004 */ swc1 $f8,0x4($s0)
/* f073fd8: 4606803c */ c.lt.s $f16,$f6
/* f073fdc: e604000c */ swc1 $f4,0xc($s0)
/* f073fe0: 45020036 */ bc1fl .L0f0740bc
/* f073fe4: 8e040088 */ lw $a0,0x88($s0)
/* f073fe8: 8c6a0038 */ lw $t2,0x38($v1)
/* f073fec: 00001025 */ or $v0,$zero,$zero
/* f073ff0: 59400032 */ blezl $t2,.L0f0740bc
/* f073ff4: 8e040088 */ lw $a0,0x88($s0)
/* f073ff8: c60c00f0 */ lwc1 $f12,0xf0($s0)
/* f073ffc: c60e0004 */ lwc1 $f14,0x4($s0)
.L0f074000:
/* f074000: 460e603c */ c.lt.s $f12,$f14
/* f074004: 00000000 */ nop
/* f074008: 45020007 */ bc1fl .L0f074028
/* f07400c: 46006007 */ neg.s $f0,$f12
/* f074010: 460c7201 */ sub.s $f8,$f14,$f12
/* f074014: 46104282 */ mul.s $f10,$f8,$f16
/* f074018: 460c5100 */ add.s $f4,$f10,$f12
/* f07401c: 1000000a */ b .L0f074048
/* f074020: e6040004 */ swc1 $f4,0x4($s0)
/* f074024: 46006007 */ neg.s $f0,$f12
.L0f074028:
/* f074028: 4600703c */ c.lt.s $f14,$f0
/* f07402c: 00000000 */ nop
/* f074030: 45020006 */ bc1fl .L0f07404c
/* f074034: c602000c */ lwc1 $f2,0xc($s0)
/* f074038: 460c7180 */ add.s $f6,$f14,$f12
/* f07403c: 46103202 */ mul.s $f8,$f6,$f16
/* f074040: 46004280 */ add.s $f10,$f8,$f0
/* f074044: e60a0004 */ swc1 $f10,0x4($s0)
.L0f074048:
/* f074048: c602000c */ lwc1 $f2,0xc($s0)
.L0f07404c:
/* f07404c: 4602603c */ c.lt.s $f12,$f2
/* f074050: 00000000 */ nop
/* f074054: 45020007 */ bc1fl .L0f074074
/* f074058: 46006007 */ neg.s $f0,$f12
/* f07405c: 460c1101 */ sub.s $f4,$f2,$f12
/* f074060: 46102182 */ mul.s $f6,$f4,$f16
/* f074064: 460c3200 */ add.s $f8,$f6,$f12
/* f074068: 1000000a */ b .L0f074094
/* f07406c: e608000c */ swc1 $f8,0xc($s0)
/* f074070: 46006007 */ neg.s $f0,$f12
.L0f074074:
/* f074074: 4600103c */ c.lt.s $f2,$f0
/* f074078: 00000000 */ nop
/* f07407c: 45020006 */ bc1fl .L0f074098
/* f074080: 8c6b0038 */ lw $t3,0x38($v1)
/* f074084: 460c1280 */ add.s $f10,$f2,$f12
/* f074088: 46105102 */ mul.s $f4,$f10,$f16
/* f07408c: 46002180 */ add.s $f6,$f4,$f0
/* f074090: e606000c */ swc1 $f6,0xc($s0)
.L0f074094:
/* f074094: 8c6b0038 */ lw $t3,0x38($v1)
.L0f074098:
/* f074098: 24420001 */ addiu $v0,$v0,0x1
/* f07409c: 004b082a */ slt $at,$v0,$t3
/* f0740a0: 5420ffd7 */ bnezl $at,.L0f074000
/* f0740a4: c60e0004 */ lwc1 $f14,0x4($s0)
/* f0740a8: 10000004 */ b .L0f0740bc
/* f0740ac: 8e040088 */ lw $a0,0x88($s0)
/* f0740b0: e6140004 */ swc1 $f20,0x4($s0)
.L0f0740b4:
/* f0740b4: e614000c */ swc1 $f20,0xc($s0)
.L0f0740b8:
/* f0740b8: 8e040088 */ lw $a0,0x88($s0)
.L0f0740bc:
/* f0740bc: 50800004 */ beqzl $a0,.L0f0740d0
/* f0740c0: 86240006 */ lh $a0,0x6($s1)
/* f0740c4: 0fc1905e */ jal propSetPerimEnabled
/* f0740c8: 00002825 */ or $a1,$zero,$zero
/* f0740cc: 86240006 */ lh $a0,0x6($s1)
.L0f0740d0:
/* f0740d0: 288c0000 */ slti $t4,$a0,0x0
/* f0740d4: 398c0001 */ xori $t4,$t4,0x1
/* f0740d8: 11800007 */ beqz $t4,.L0f0740f8
/* f0740dc: afac0088 */ sw $t4,0x88($sp)
/* f0740e0: 8e2e0010 */ lw $t6,0x10($s1)
/* f0740e4: 3c010100 */ lui $at,0x100
/* f0740e8: 34210002 */ ori $at,$at,0x2
/* f0740ec: 01c17824 */ and $t7,$t6,$at
/* f0740f0: 2df80001 */ sltiu $t8,$t7,0x1
/* f0740f4: afb80088 */ sw $t8,0x88($sp)
.L0f0740f8:
/* f0740f8: 8fb90088 */ lw $t9,0x88($sp)
/* f0740fc: 13200038 */ beqz $t9,.L0f0741e0
/* f074100: 24050002 */ addiu $a1,$zero,0x2
/* f074104: 0fc456ac */ jal padUnpack
/* f074108: 27a60430 */ addiu $a2,$sp,0x430
/* f07410c: 3c014348 */ lui $at,0x4348
/* f074110: 44811000 */ mtc1 $at,$f2
/* f074114: 8e290010 */ lw $t1,0x10($s1)
/* f074118: 3c014396 */ lui $at,0x4396
/* f07411c: 44816000 */ mtc1 $at,$f12
/* f074120: 00095200 */ sll $t2,$t1,0x8
/* f074124: 46001406 */ mov.s $f16,$f2
/* f074128: 05410006 */ bgez $t2,.L0f074144
/* f07412c: 46006386 */ mov.s $f14,$f12
/* f074130: 3c01442f */ lui $at,0x442f
/* f074134: 44810000 */ mtc1 $at,$f0
/* f074138: 00000000 */ nop
/* f07413c: 46001400 */ add.s $f16,$f2,$f0
/* f074140: 46006380 */ add.s $f14,$f12,$f0
.L0f074144:
/* f074144: 862b0004 */ lh $t3,0x4($s1)
/* f074148: 240101a8 */ addiu $at,$zero,0x1a8
/* f07414c: c7a80430 */ lwc1 $f8,0x430($sp)
/* f074150: 15610003 */ bne $t3,$at,.L0f074160
/* f074154: 3c014366 */ lui $at,0x4366
/* f074158: 44818000 */ mtc1 $at,$f16
/* f07415c: 00000000 */ nop
.L0f074160:
/* f074160: c64a0008 */ lwc1 $f10,0x8($s2)
/* f074164: c7a40438 */ lwc1 $f4,0x438($sp)
/* f074168: c6460010 */ lwc1 $f6,0x10($s2)
/* f07416c: 460a4001 */ sub.s $f0,$f8,$f10
/* f074170: e7b0041c */ swc1 $f16,0x41c($sp)
/* f074174: e7ae0418 */ swc1 $f14,0x418($sp)
/* f074178: 46062081 */ sub.s $f2,$f4,$f6
/* f07417c: 46000202 */ mul.s $f8,$f0,$f0
/* f074180: 00000000 */ nop
/* f074184: 46021282 */ mul.s $f10,$f2,$f2
/* f074188: 0c012974 */ jal sqrtf
/* f07418c: 460a4300 */ add.s $f12,$f8,$f10
/* f074190: c7a40418 */ lwc1 $f4,0x418($sp)
/* f074194: c7a6041c */ lwc1 $f6,0x41c($sp)
/* f074198: 4600203c */ c.lt.s $f4,$f0
/* f07419c: 00000000 */ nop
/* f0741a0: 45020004 */ bc1fl .L0f0741b4
/* f0741a4: 4600303c */ c.lt.s $f6,$f0
/* f0741a8: 1000000d */ b .L0f0741e0
/* f0741ac: e61400dc */ swc1 $f20,0xdc($s0)
/* f0741b0: 4600303c */ c.lt.s $f6,$f0
.L0f0741b4:
/* f0741b4: c7a80418 */ lwc1 $f8,0x418($sp)
/* f0741b8: 3c017f1b */ lui $at,%hi(var7f1aa3d4)
/* f0741bc: 45000008 */ bc1f .L0f0741e0
/* f0741c0: 00000000 */ nop
/* f0741c4: 46004281 */ sub.s $f10,$f8,$f0
/* f0741c8: c424a3d4 */ lwc1 $f4,%lo(var7f1aa3d4)($at)
/* f0741cc: c60800dc */ lwc1 $f8,0xdc($s0)
/* f0741d0: 46045182 */ mul.s $f6,$f10,$f4
/* f0741d4: 00000000 */ nop
/* f0741d8: 46064282 */ mul.s $f10,$f8,$f6
/* f0741dc: e60a00dc */ swc1 $f10,0xdc($s0)
.L0f0741e0:
/* f0741e0: 3c01800a */ lui $at,%hi(g_Vars+0x4c)
/* f0741e4: c428a00c */ lwc1 $f8,%lo(g_Vars+0x4c)($at)
/* f0741e8: c60400dc */ lwc1 $f4,0xdc($s0)
/* f0741ec: 46082002 */ mul.s $f0,$f4,$f8
/* f0741f0: 46140032 */ c.eq.s $f0,$f20
/* f0741f4: 00000000 */ nop
/* f0741f8: 4501001c */ bc1t .L0f07426c
/* f0741fc: 3c0c8007 */ lui $t4,%hi(var80069b8c)
/* f074200: 258c9b8c */ addiu $t4,$t4,%lo(var80069b8c)
/* f074204: 8d810000 */ lw $at,0x0($t4)
/* f074208: 27a50404 */ addiu $a1,$sp,0x404
/* f07420c: 44060000 */ mfc1 $a2,$f0
/* f074210: aca10000 */ sw $at,0x0($a1)
/* f074214: 8d8e0004 */ lw $t6,0x4($t4)
/* f074218: 02202025 */ or $a0,$s1,$zero
/* f07421c: 24070001 */ addiu $a3,$zero,0x1
/* f074220: acae0004 */ sw $t6,0x4($a1)
/* f074224: 8d810008 */ lw $at,0x8($t4)
/* f074228: aca10008 */ sw $at,0x8($a1)
/* f07422c: 0fc1c851 */ jal func0f072144
/* f074230: e7a005a8 */ swc1 $f0,0x5a8($sp)
/* f074234: 2401ffff */ addiu $at,$zero,-1
/* f074238: 1041000c */ beq $v0,$at,.L0f07426c
/* f07423c: c7a005a8 */ lwc1 $f0,0x5a8($sp)
/* f074240: 1440000a */ bnez $v0,.L0f07426c
/* f074244: 00000000 */ nop
/* f074248: c60600dc */ lwc1 $f6,0xdc($s0)
/* f07424c: c604008c */ lwc1 $f4,0x8c($s0)
/* f074250: 44060000 */ mfc1 $a2,$f0
/* f074254: 46003287 */ neg.s $f10,$f6
/* f074258: 02202025 */ or $a0,$s1,$zero
/* f07425c: 46045202 */ mul.s $f8,$f10,$f4
/* f074260: 27a50404 */ addiu $a1,$sp,0x404
/* f074264: 0fc1c9f5 */ jal objCollide
/* f074268: e60800dc */ swc1 $f8,0xdc($s0)
.L0f07426c:
/* f07426c: 3c01800a */ lui $at,%hi(g_Vars+0x4c)
/* f074270: c422a00c */ lwc1 $f2,%lo(g_Vars+0x4c)($at)
/* f074274: c6060004 */ lwc1 $f6,0x4($s0)
/* f074278: e7b405a0 */ swc1 $f20,0x5a0($sp)
/* f07427c: 8faf0088 */ lw $t7,0x88($sp)
/* f074280: 46023282 */ mul.s $f10,$f6,$f2
/* f074284: e7aa059c */ swc1 $f10,0x59c($sp)
/* f074288: c604000c */ lwc1 $f4,0xc($s0)
/* f07428c: 46022202 */ mul.s $f8,$f4,$f2
/* f074290: 11e00031 */ beqz $t7,.L0f074358
/* f074294: e7a805a4 */ swc1 $f8,0x5a4($sp)
/* f074298: c7a60430 */ lwc1 $f6,0x430($sp)
/* f07429c: c64a0008 */ lwc1 $f10,0x8($s2)
/* f0742a0: c7a8059c */ lwc1 $f8,0x59c($sp)
/* f0742a4: 460a3101 */ sub.s $f4,$f6,$f10
/* f0742a8: c64a0010 */ lwc1 $f10,0x10($s2)
/* f0742ac: c7a60438 */ lwc1 $f6,0x438($sp)
/* f0742b0: 46082001 */ sub.s $f0,$f4,$f8
/* f0742b4: c7a805a4 */ lwc1 $f8,0x5a4($sp)
/* f0742b8: 460a3101 */ sub.s $f4,$f6,$f10
/* f0742bc: 46000182 */ mul.s $f6,$f0,$f0
/* f0742c0: 46082081 */ sub.s $f2,$f4,$f8
/* f0742c4: 46021282 */ mul.s $f10,$f2,$f2
/* f0742c8: 0c012974 */ jal sqrtf
/* f0742cc: 460a3300 */ add.s $f12,$f6,$f10
/* f0742d0: c7ac0418 */ lwc1 $f12,0x418($sp)
/* f0742d4: c7a4041c */ lwc1 $f4,0x41c($sp)
/* f0742d8: 4600603c */ c.lt.s $f12,$f0
/* f0742dc: 00000000 */ nop
/* f0742e0: 45020009 */ bc1fl .L0f074308
/* f0742e4: 4600203c */ c.lt.s $f4,$f0
/* f0742e8: e7b405a4 */ swc1 $f20,0x5a4($sp)
/* f0742ec: c7a005a4 */ lwc1 $f0,0x5a4($sp)
/* f0742f0: e7a0059c */ swc1 $f0,0x59c($sp)
/* f0742f4: e6000004 */ swc1 $f0,0x4($s0)
/* f0742f8: e600000c */ swc1 $f0,0xc($s0)
/* f0742fc: 10000016 */ b .L0f074358
/* f074300: e60000dc */ swc1 $f0,0xdc($s0)
/* f074304: 4600203c */ c.lt.s $f4,$f0
.L0f074308:
/* f074308: 3c017f1b */ lui $at,%hi(var7f1aa3d8)
/* f07430c: 45020013 */ bc1fl .L0f07435c
/* f074310: 4406a000 */ mfc1 $a2,$f20
/* f074314: 46006201 */ sub.s $f8,$f12,$f0
/* f074318: c426a3d8 */ lwc1 $f6,%lo(var7f1aa3d8)($at)
/* f07431c: c60a0004 */ lwc1 $f10,0x4($s0)
/* f074320: 46064082 */ mul.s $f2,$f8,$f6
/* f074324: c608000c */ lwc1 $f8,0xc($s0)
/* f074328: 46025102 */ mul.s $f4,$f10,$f2
/* f07432c: 00000000 */ nop
/* f074330: 46024182 */ mul.s $f6,$f8,$f2
/* f074334: e6040004 */ swc1 $f4,0x4($s0)
/* f074338: e606000c */ swc1 $f6,0xc($s0)
/* f07433c: c7aa059c */ lwc1 $f10,0x59c($sp)
/* f074340: c7a805a4 */ lwc1 $f8,0x5a4($sp)
/* f074344: 46025102 */ mul.s $f4,$f10,$f2
/* f074348: 00000000 */ nop
/* f07434c: 46024182 */ mul.s $f6,$f8,$f2
/* f074350: e7a4059c */ swc1 $f4,0x59c($sp)
/* f074354: e7a605a4 */ swc1 $f6,0x5a4($sp)
.L0f074358:
/* f074358: 4406a000 */ mfc1 $a2,$f20
.L0f07435c:
/* f07435c: 02202025 */ or $a0,$s1,$zero
/* f074360: 27a5059c */ addiu $a1,$sp,0x59c
/* f074364: 0fc1c851 */ jal func0f072144
/* f074368: 24070001 */ addiu $a3,$zero,0x1
/* f07436c: 144001ae */ bnez $v0,.L0f074a28
/* f074370: afa20600 */ sw $v0,0x600($sp)
/* f074374: 4406a000 */ mfc1 $a2,$f20
/* f074378: 02202025 */ or $a0,$s1,$zero
/* f07437c: 0fc1c9f5 */ jal objCollide
/* f074380: 27a5059c */ addiu $a1,$sp,0x59c
/* f074384: c60a008c */ lwc1 $f10,0x8c($s0)
/* f074388: 27a403d0 */ addiu $a0,$sp,0x3d0
/* f07438c: 27a503c4 */ addiu $a1,$sp,0x3c4
/* f074390: 460a0402 */ mul.s $f16,$f0,$f10
/* f074394: 4610a03c */ c.lt.s $f20,$f16
/* f074398: 00000000 */ nop
/* f07439c: 450201a3 */ bc1fl .L0f074a2c
/* f0743a0: 8fab0600 */ lw $t3,0x600($sp)
/* f0743a4: 0c0094d9 */ jal cd00025364
/* f0743a8: e7b0058c */ swc1 $f16,0x58c($sp)
/* f0743ac: 1040000e */ beqz $v0,.L0f0743e8
/* f0743b0: c7b0058c */ lwc1 $f16,0x58c($sp)
/* f0743b4: c7a403c4 */ lwc1 $f4,0x3c4($sp)
/* f0743b8: c7a803d0 */ lwc1 $f8,0x3d0($sp)
/* f0743bc: c7aa03c8 */ lwc1 $f10,0x3c8($sp)
/* f0743c0: 46082181 */ sub.s $f6,$f4,$f8
/* f0743c4: c7a403d4 */ lwc1 $f4,0x3d4($sp)
/* f0743c8: 46045201 */ sub.s $f8,$f10,$f4
/* f0743cc: e7a603c4 */ swc1 $f6,0x3c4($sp)
/* f0743d0: c7a603cc */ lwc1 $f6,0x3cc($sp)
/* f0743d4: c7aa03d8 */ lwc1 $f10,0x3d8($sp)
/* f0743d8: e7a803c8 */ swc1 $f8,0x3c8($sp)
/* f0743dc: 460a3101 */ sub.s $f4,$f6,$f10
/* f0743e0: 10000020 */ b .L0f074464
/* f0743e4: e7a403cc */ swc1 $f4,0x3cc($sp)
.L0f0743e8:
/* f0743e8: 3c077f1b */ lui $a3,%hi(var7f1a9fb8)
/* f0743ec: 24e79fb8 */ addiu $a3,$a3,%lo(var7f1a9fb8)
/* f0743f0: 27a403d0 */ addiu $a0,$sp,0x3d0
/* f0743f4: 27a503c4 */ addiu $a1,$sp,0x3c4
/* f0743f8: 24062093 */ addiu $a2,$zero,0x2093
/* f0743fc: 0c009393 */ jal cd00024e4c
/* f074400: e7b0058c */ swc1 $f16,0x58c($sp)
/* f074404: c7a803d0 */ lwc1 $f8,0x3d0($sp)
/* f074408: c7a603c4 */ lwc1 $f6,0x3c4($sp)
/* f07440c: c7a403d4 */ lwc1 $f4,0x3d4($sp)
/* f074410: c7b0058c */ lwc1 $f16,0x58c($sp)
/* f074414: 46064281 */ sub.s $f10,$f8,$f6
/* f074418: c7a803c8 */ lwc1 $f8,0x3c8($sp)
/* f07441c: 46082181 */ sub.s $f6,$f4,$f8
/* f074420: e7aa03d0 */ swc1 $f10,0x3d0($sp)
/* f074424: c7aa03d8 */ lwc1 $f10,0x3d8($sp)
/* f074428: c7a403cc */ lwc1 $f4,0x3cc($sp)
/* f07442c: e7a603d4 */ swc1 $f6,0x3d4($sp)
/* f074430: e7a603c8 */ swc1 $f6,0x3c8($sp)
/* f074434: 46045201 */ sub.s $f8,$f10,$f4
/* f074438: c7a403d0 */ lwc1 $f4,0x3d0($sp)
/* f07443c: 46004287 */ neg.s $f10,$f8
/* f074440: e7a803d8 */ swc1 $f8,0x3d8($sp)
/* f074444: e7aa03c4 */ swc1 $f10,0x3c4($sp)
/* f074448: e7a403cc */ swc1 $f4,0x3cc($sp)
/* f07444c: c6480008 */ lwc1 $f8,0x8($s2)
/* f074450: e7a803d0 */ swc1 $f8,0x3d0($sp)
/* f074454: c64a000c */ lwc1 $f10,0xc($s2)
/* f074458: e7aa03d4 */ swc1 $f10,0x3d4($sp)
/* f07445c: c6460010 */ lwc1 $f6,0x10($s2)
/* f074460: e7a603d8 */ swc1 $f6,0x3d8($sp)
.L0f074464:
/* f074464: 27a403d0 */ addiu $a0,$sp,0x3d0
/* f074468: 27a503c4 */ addiu $a1,$sp,0x3c4
/* f07446c: 27a603b8 */ addiu $a2,$sp,0x3b8
/* f074470: 0fc0b93e */ jal func0f02e4f8
/* f074474: e7b0058c */ swc1 $f16,0x58c($sp)
/* f074478: c6440008 */ lwc1 $f4,0x8($s2)
/* f07447c: c7a805dc */ lwc1 $f8,0x5dc($sp)
/* f074480: e7b403b0 */ swc1 $f20,0x3b0($sp)
/* f074484: 3c017f1b */ lui $at,%hi(var7f1aa3dc)
/* f074488: 46082281 */ sub.s $f10,$f4,$f8
/* f07448c: c7a405e4 */ lwc1 $f4,0x5e4($sp)
/* f074490: c7b0058c */ lwc1 $f16,0x58c($sp)
/* f074494: e7aa03ac */ swc1 $f10,0x3ac($sp)
/* f074498: c6460010 */ lwc1 $f6,0x10($s2)
/* f07449c: c7aa03b8 */ lwc1 $f10,0x3b8($sp)
/* f0744a0: 46043201 */ sub.s $f8,$f6,$f4
/* f0744a4: e7a803b4 */ swc1 $f8,0x3b4($sp)
/* f0744a8: c6460008 */ lwc1 $f6,0x8($s2)
/* f0744ac: c7a803c0 */ lwc1 $f8,0x3c0($sp)
/* f0744b0: 46065101 */ sub.s $f4,$f10,$f6
/* f0744b4: e7a403b8 */ swc1 $f4,0x3b8($sp)
/* f0744b8: c64a0010 */ lwc1 $f10,0x10($s2)
/* f0744bc: 460a4181 */ sub.s $f6,$f8,$f10
/* f0744c0: c7a803ac */ lwc1 $f8,0x3ac($sp)
/* f0744c4: 46064282 */ mul.s $f10,$f8,$f6
/* f0744c8: e7a603c0 */ swc1 $f6,0x3c0($sp)
/* f0744cc: c7a603b4 */ lwc1 $f6,0x3b4($sp)
/* f0744d0: 46002207 */ neg.s $f8,$f4
/* f0744d4: c60200ec */ lwc1 $f2,0xec($s0)
/* f0744d8: 46064102 */ mul.s $f4,$f8,$f6
/* f0744dc: c426a3dc */ lwc1 $f6,%lo(var7f1aa3dc)($at)
/* f0744e0: 46045200 */ add.s $f8,$f10,$f4
/* f0744e4: 46064382 */ mul.s $f14,$f8,$f6
/* f0744e8: 460e103c */ c.lt.s $f2,$f14
/* f0744ec: 46007006 */ mov.s $f0,$f14
/* f0744f0: 45020004 */ bc1fl .L0f074504
/* f0744f4: 46001307 */ neg.s $f12,$f2
/* f0744f8: 10000007 */ b .L0f074518
/* f0744fc: 46001006 */ mov.s $f0,$f2
/* f074500: 46001307 */ neg.s $f12,$f2
.L0f074504:
/* f074504: 460c703c */ c.lt.s $f14,$f12
/* f074508: 00000000 */ nop
/* f07450c: 45020003 */ bc1fl .L0f07451c
/* f074510: c60a00dc */ lwc1 $f10,0xdc($s0)
/* f074514: 46006006 */ mov.s $f0,$f12
.L0f074518:
/* f074518: c60a00dc */ lwc1 $f10,0xdc($s0)
.L0f07451c:
/* f07451c: 3c077f1b */ lui $a3,%hi(var7f1a9fc4)
/* f074520: 24e79fc4 */ addiu $a3,$a3,%lo(var7f1a9fc4)
/* f074524: 46005100 */ add.s $f4,$f10,$f0
/* f074528: 27a403e8 */ addiu $a0,$sp,0x3e8
/* f07452c: 27a503dc */ addiu $a1,$sp,0x3dc
/* f074530: 240620b9 */ addiu $a2,$zero,0x20b9
/* f074534: e60400dc */ swc1 $f4,0xdc($s0)
/* f074538: 0c009393 */ jal cd00024e4c
/* f07453c: e7b0058c */ swc1 $f16,0x58c($sp)
/* f074540: c7a803e4 */ lwc1 $f8,0x3e4($sp)
/* f074544: c7a603f0 */ lwc1 $f6,0x3f0($sp)
/* f074548: c7ae03e8 */ lwc1 $f14,0x3e8($sp)
/* f07454c: c7b203dc */ lwc1 $f18,0x3dc($sp)
/* f074550: 46064001 */ sub.s $f0,$f8,$f6
/* f074554: c7b0058c */ lwc1 $f16,0x58c($sp)
/* f074558: e7b403f8 */ swc1 $f20,0x3f8($sp)
/* f07455c: 46127281 */ sub.s $f10,$f14,$f18
/* f074560: e7a003f4 */ swc1 $f0,0x3f4($sp)
/* f074564: 27a403f4 */ addiu $a0,$sp,0x3f4
/* f074568: 4600a032 */ c.eq.s $f20,$f0
/* f07456c: e7aa03fc */ swc1 $f10,0x3fc($sp)
/* f074570: c7a403fc */ lwc1 $f4,0x3fc($sp)
/* f074574: 27a503f8 */ addiu $a1,$sp,0x3f8
/* f074578: 45000005 */ bc1f .L0f074590
/* f07457c: 27a603fc */ addiu $a2,$sp,0x3fc
/* f074580: 4604a032 */ c.eq.s $f20,$f4
/* f074584: 3c013f80 */ lui $at,0x3f80
/* f074588: 45030006 */ bc1tl .L0f0745a4
/* f07458c: 44814000 */ mtc1 $at,$f8
.L0f074590:
/* f074590: 0c0011e4 */ jal guNormalize
/* f074594: e7b0058c */ swc1 $f16,0x58c($sp)
/* f074598: 10000004 */ b .L0f0745ac
/* f07459c: c7b0058c */ lwc1 $f16,0x58c($sp)
/* f0745a0: 44814000 */ mtc1 $at,$f8
.L0f0745a4:
/* f0745a4: 00000000 */ nop
/* f0745a8: e7a803fc */ swc1 $f8,0x3fc($sp)
.L0f0745ac:
/* f0745ac: c7a603fc */ lwc1 $f6,0x3fc($sp)
/* f0745b0: c60a000c */ lwc1 $f10,0xc($s0)
/* f0745b4: c60e0004 */ lwc1 $f14,0x4($s0)
/* f0745b8: c7a803f4 */ lwc1 $f8,0x3f4($sp)
/* f0745bc: 460a3102 */ mul.s $f4,$f6,$f10
/* f0745c0: 3c013f80 */ lui $at,0x3f80
/* f0745c4: e7b40594 */ swc1 $f20,0x594($sp)
/* f0745c8: 46087282 */ mul.s $f10,$f14,$f8
/* f0745cc: 8fb80088 */ lw $t8,0x88($sp)
/* f0745d0: 460a2000 */ add.s $f0,$f4,$f10
/* f0745d4: 44812000 */ mtc1 $at,$f4
/* f0745d8: 3c01800a */ lui $at,%hi(g_Vars+0x4c)
/* f0745dc: c422a00c */ lwc1 $f2,%lo(g_Vars+0x4c)($at)
/* f0745e0: 46048280 */ add.s $f10,$f16,$f4
/* f0745e4: 46005107 */ neg.s $f4,$f10
/* f0745e8: 46040002 */ mul.s $f0,$f0,$f4
/* f0745ec: 00000000 */ nop
/* f0745f0: 46004282 */ mul.s $f10,$f8,$f0
/* f0745f4: 460e5100 */ add.s $f4,$f10,$f14
/* f0745f8: 46003202 */ mul.s $f8,$f6,$f0
/* f0745fc: e7a40590 */ swc1 $f4,0x590($sp)
/* f074600: c60a000c */ lwc1 $f10,0xc($s0)
/* f074604: e7b405a0 */ swc1 $f20,0x5a0($sp)
/* f074608: 460a4180 */ add.s $f6,$f8,$f10
/* f07460c: 46022202 */ mul.s $f8,$f4,$f2
/* f074610: c7a40430 */ lwc1 $f4,0x430($sp)
/* f074614: 46023282 */ mul.s $f10,$f6,$f2
/* f074618: e7a60598 */ swc1 $f6,0x598($sp)
/* f07461c: e7a8059c */ swc1 $f8,0x59c($sp)
/* f074620: 1300002f */ beqz $t8,.L0f0746e0
/* f074624: e7aa05a4 */ swc1 $f10,0x5a4($sp)
/* f074628: c6460008 */ lwc1 $f6,0x8($s2)
/* f07462c: 46062101 */ sub.s $f4,$f4,$f6
/* f074630: c7a60438 */ lwc1 $f6,0x438($sp)
/* f074634: 46082001 */ sub.s $f0,$f4,$f8
/* f074638: c6440010 */ lwc1 $f4,0x10($s2)
/* f07463c: 46043201 */ sub.s $f8,$f6,$f4
/* f074640: 46000182 */ mul.s $f6,$f0,$f0
/* f074644: 460a4081 */ sub.s $f2,$f8,$f10
/* f074648: 46021102 */ mul.s $f4,$f2,$f2
/* f07464c: 0c012974 */ jal sqrtf
/* f074650: 46043300 */ add.s $f12,$f6,$f4
/* f074654: c7a80418 */ lwc1 $f8,0x418($sp)
/* f074658: c7aa041c */ lwc1 $f10,0x41c($sp)
/* f07465c: 4600403c */ c.lt.s $f8,$f0
/* f074660: 00000000 */ nop
/* f074664: 45020009 */ bc1fl .L0f07468c
/* f074668: 4600503c */ c.lt.s $f10,$f0
/* f07466c: e7b405a4 */ swc1 $f20,0x5a4($sp)
/* f074670: c7a005a4 */ lwc1 $f0,0x5a4($sp)
/* f074674: e7a0059c */ swc1 $f0,0x59c($sp)
/* f074678: e6000004 */ swc1 $f0,0x4($s0)
/* f07467c: e600000c */ swc1 $f0,0xc($s0)
/* f074680: 10000017 */ b .L0f0746e0
/* f074684: e60000dc */ swc1 $f0,0xdc($s0)
/* f074688: 4600503c */ c.lt.s $f10,$f0
.L0f07468c:
/* f07468c: c7a60418 */ lwc1 $f6,0x418($sp)
/* f074690: 3c017f1b */ lui $at,%hi(var7f1aa3e0)
/* f074694: 45020013 */ bc1fl .L0f0746e4
/* f074698: 4406a000 */ mfc1 $a2,$f20
/* f07469c: 46003101 */ sub.s $f4,$f6,$f0
/* f0746a0: c428a3e0 */ lwc1 $f8,%lo(var7f1aa3e0)($at)
/* f0746a4: c60a0004 */ lwc1 $f10,0x4($s0)
/* f0746a8: 46082082 */ mul.s $f2,$f4,$f8
/* f0746ac: c604000c */ lwc1 $f4,0xc($s0)
/* f0746b0: 46025182 */ mul.s $f6,$f10,$f2
/* f0746b4: 00000000 */ nop
/* f0746b8: 46022202 */ mul.s $f8,$f4,$f2
/* f0746bc: e6060004 */ swc1 $f6,0x4($s0)
/* f0746c0: e608000c */ swc1 $f8,0xc($s0)
/* f0746c4: c7aa059c */ lwc1 $f10,0x59c($sp)
/* f0746c8: c7a405a4 */ lwc1 $f4,0x5a4($sp)
/* f0746cc: 46025182 */ mul.s $f6,$f10,$f2
/* f0746d0: 00000000 */ nop
/* f0746d4: 46022202 */ mul.s $f8,$f4,$f2
/* f0746d8: e7a6059c */ swc1 $f6,0x59c($sp)
/* f0746dc: e7a805a4 */ swc1 $f8,0x5a4($sp)
.L0f0746e0:
/* f0746e0: 4406a000 */ mfc1 $a2,$f20
.L0f0746e4:
/* f0746e4: 02202025 */ or $a0,$s1,$zero
/* f0746e8: 27a5059c */ addiu $a1,$sp,0x59c
/* f0746ec: 0fc1c851 */ jal func0f072144
/* f0746f0: 24070001 */ addiu $a3,$zero,0x1
/* f0746f4: 144000c2 */ bnez $v0,.L0f074a00
/* f0746f8: afa20600 */ sw $v0,0x600($sp)
/* f0746fc: 4406a000 */ mfc1 $a2,$f20
/* f074700: 02202025 */ or $a0,$s1,$zero
/* f074704: 0fc1c9f5 */ jal objCollide
/* f074708: 27a5059c */ addiu $a1,$sp,0x59c
/* f07470c: c60a008c */ lwc1 $f10,0x8c($s0)
/* f074710: c6060004 */ lwc1 $f6,0x4($s0)
/* f074714: e7b40594 */ swc1 $f20,0x594($sp)
/* f074718: 460a0402 */ mul.s $f16,$f0,$f10
/* f07471c: 46003107 */ neg.s $f4,$f6
/* f074720: 3c01800a */ lui $at,%hi(g_Vars+0x4c)
/* f074724: c422a00c */ lwc1 $f2,%lo(g_Vars+0x4c)($at)
/* f074728: 8fb90088 */ lw $t9,0x88($sp)
/* f07472c: 46102202 */ mul.s $f8,$f4,$f16
/* f074730: e7a80590 */ swc1 $f8,0x590($sp)
/* f074734: c60a000c */ lwc1 $f10,0xc($s0)
/* f074738: e7b405a0 */ swc1 $f20,0x5a0($sp)
/* f07473c: 46005187 */ neg.s $f6,$f10
/* f074740: 46103102 */ mul.s $f4,$f6,$f16
/* f074744: 00000000 */ nop
/* f074748: 46024282 */ mul.s $f10,$f8,$f2
/* f07474c: c7a80430 */ lwc1 $f8,0x430($sp)
/* f074750: 46022182 */ mul.s $f6,$f4,$f2
/* f074754: e7a40598 */ swc1 $f4,0x598($sp)
/* f074758: e7aa059c */ swc1 $f10,0x59c($sp)
/* f07475c: 1320002f */ beqz $t9,.L0f07481c
/* f074760: e7a605a4 */ swc1 $f6,0x5a4($sp)
/* f074764: c6440008 */ lwc1 $f4,0x8($s2)
/* f074768: 46044201 */ sub.s $f8,$f8,$f4
/* f07476c: c7a40438 */ lwc1 $f4,0x438($sp)
/* f074770: 460a4001 */ sub.s $f0,$f8,$f10
/* f074774: c6480010 */ lwc1 $f8,0x10($s2)
/* f074778: 46082281 */ sub.s $f10,$f4,$f8
/* f07477c: 46000102 */ mul.s $f4,$f0,$f0
/* f074780: 46065081 */ sub.s $f2,$f10,$f6
/* f074784: 46021202 */ mul.s $f8,$f2,$f2
/* f074788: 0c012974 */ jal sqrtf
/* f07478c: 46082300 */ add.s $f12,$f4,$f8
/* f074790: c7aa0418 */ lwc1 $f10,0x418($sp)
/* f074794: c7a6041c */ lwc1 $f6,0x41c($sp)
/* f074798: 4600503c */ c.lt.s $f10,$f0
/* f07479c: 00000000 */ nop
/* f0747a0: 45020009 */ bc1fl .L0f0747c8
/* f0747a4: 4600303c */ c.lt.s $f6,$f0
/* f0747a8: e7b405a4 */ swc1 $f20,0x5a4($sp)
/* f0747ac: c7a005a4 */ lwc1 $f0,0x5a4($sp)
/* f0747b0: e7a0059c */ swc1 $f0,0x59c($sp)
/* f0747b4: e6000004 */ swc1 $f0,0x4($s0)
/* f0747b8: e600000c */ swc1 $f0,0xc($s0)
/* f0747bc: 10000017 */ b .L0f07481c
/* f0747c0: e60000dc */ swc1 $f0,0xdc($s0)
/* f0747c4: 4600303c */ c.lt.s $f6,$f0
.L0f0747c8:
/* f0747c8: c7a40418 */ lwc1 $f4,0x418($sp)
/* f0747cc: 3c017f1b */ lui $at,%hi(var7f1aa3e4)
/* f0747d0: 45020013 */ bc1fl .L0f074820
/* f0747d4: 4406a000 */ mfc1 $a2,$f20
/* f0747d8: 46002201 */ sub.s $f8,$f4,$f0
/* f0747dc: c42aa3e4 */ lwc1 $f10,%lo(var7f1aa3e4)($at)
/* f0747e0: c6060004 */ lwc1 $f6,0x4($s0)
/* f0747e4: 460a4082 */ mul.s $f2,$f8,$f10
/* f0747e8: c608000c */ lwc1 $f8,0xc($s0)
/* f0747ec: 46023102 */ mul.s $f4,$f6,$f2
/* f0747f0: 00000000 */ nop
/* f0747f4: 46024282 */ mul.s $f10,$f8,$f2
/* f0747f8: e6040004 */ swc1 $f4,0x4($s0)
/* f0747fc: e60a000c */ swc1 $f10,0xc($s0)
/* f074800: c7a6059c */ lwc1 $f6,0x59c($sp)
/* f074804: c7a805a4 */ lwc1 $f8,0x5a4($sp)
/* f074808: 46023102 */ mul.s $f4,$f6,$f2
/* f07480c: 00000000 */ nop
/* f074810: 46024282 */ mul.s $f10,$f8,$f2
/* f074814: e7a4059c */ swc1 $f4,0x59c($sp)
/* f074818: e7aa05a4 */ swc1 $f10,0x5a4($sp)
.L0f07481c:
/* f07481c: 4406a000 */ mfc1 $a2,$f20
.L0f074820:
/* f074820: 02202025 */ or $a0,$s1,$zero
/* f074824: 27a5059c */ addiu $a1,$sp,0x59c
/* f074828: 0fc1c851 */ jal func0f072144
/* f07482c: 24070001 */ addiu $a3,$zero,0x1
/* f074830: 14400073 */ bnez $v0,.L0f074a00
/* f074834: afa20600 */ sw $v0,0x600($sp)
/* f074838: 4406a000 */ mfc1 $a2,$f20
/* f07483c: 02202025 */ or $a0,$s1,$zero
/* f074840: 0fc1c9f5 */ jal objCollide
/* f074844: 27a5059c */ addiu $a1,$sp,0x59c
/* f074848: c7ae03e8 */ lwc1 $f14,0x3e8($sp)
/* f07484c: c7b203dc */ lwc1 $f18,0x3dc($sp)
/* f074850: c7a603f0 */ lwc1 $f6,0x3f0($sp)
/* f074854: c7a403e4 */ lwc1 $f4,0x3e4($sp)
/* f074858: 46127032 */ c.eq.s $f14,$f18
/* f07485c: c7a803e4 */ lwc1 $f8,0x3e4($sp)
/* f074860: c7aa03f0 */ lwc1 $f10,0x3f0($sp)
/* f074864: 45020006 */ bc1fl .L0f074880
/* f074868: 460a4081 */ sub.s $f2,$f8,$f10
/* f07486c: 46043032 */ c.eq.s $f6,$f4
/* f074870: 00000000 */ nop
/* f074874: 45030063 */ bc1tl .L0f074a04
/* f074878: 8faa0600 */ lw $t2,0x600($sp)
/* f07487c: 460a4081 */ sub.s $f2,$f8,$f10
.L0f074880:
/* f074880: 460e9001 */ sub.s $f0,$f18,$f14
/* f074884: 46021182 */ mul.s $f6,$f2,$f2
/* f074888: e7a203a0 */ swc1 $f2,0x3a0($sp)
/* f07488c: 46000102 */ mul.s $f4,$f0,$f0
/* f074890: e7a00398 */ swc1 $f0,0x398($sp)
/* f074894: 0c012974 */ jal sqrtf
/* f074898: 46043300 */ add.s $f12,$f6,$f4
/* f07489c: 3c013f80 */ lui $at,0x3f80
/* f0748a0: 44814000 */ mtc1 $at,$f8
/* f0748a4: c7aa0398 */ lwc1 $f10,0x398($sp)
/* f0748a8: c7a403a0 */ lwc1 $f4,0x3a0($sp)
/* f0748ac: 46004303 */ div.s $f12,$f8,$f0
/* f0748b0: 3c01800a */ lui $at,%hi(g_Vars+0x4c)
/* f0748b4: c422a00c */ lwc1 $f2,%lo(g_Vars+0x4c)($at)
/* f0748b8: 8fa90088 */ lw $t1,0x88($sp)
/* f0748bc: 460c5182 */ mul.s $f6,$f10,$f12
/* f0748c0: 00000000 */ nop
/* f0748c4: 460c2202 */ mul.s $f8,$f4,$f12
/* f0748c8: e7a60398 */ swc1 $f6,0x398($sp)
/* f0748cc: e7a803a0 */ swc1 $f8,0x3a0($sp)
/* f0748d0: c60a000c */ lwc1 $f10,0xc($s0)
/* f0748d4: 460a4102 */ mul.s $f4,$f8,$f10
/* f0748d8: c60a0004 */ lwc1 $f10,0x4($s0)
/* f0748dc: e7b40594 */ swc1 $f20,0x594($sp)
/* f0748e0: e7b405a0 */ swc1 $f20,0x5a0($sp)
/* f0748e4: 46065282 */ mul.s $f10,$f10,$f6
/* f0748e8: 460a2380 */ add.s $f14,$f4,$f10
/* f0748ec: 460e3102 */ mul.s $f4,$f6,$f14
/* f0748f0: 00000000 */ nop
/* f0748f4: 460e4282 */ mul.s $f10,$f8,$f14
/* f0748f8: 00000000 */ nop
/* f0748fc: 46022182 */ mul.s $f6,$f4,$f2
/* f074900: e7a40590 */ swc1 $f4,0x590($sp)
/* f074904: c7a40430 */ lwc1 $f4,0x430($sp)
/* f074908: 46025202 */ mul.s $f8,$f10,$f2
/* f07490c: e7aa0598 */ swc1 $f10,0x598($sp)
/* f074910: e7a6059c */ swc1 $f6,0x59c($sp)
/* f074914: 1120002f */ beqz $t1,.L0f0749d4
/* f074918: e7a805a4 */ swc1 $f8,0x5a4($sp)
/* f07491c: c64a0008 */ lwc1 $f10,0x8($s2)
/* f074920: 460a2101 */ sub.s $f4,$f4,$f10
/* f074924: c7aa0438 */ lwc1 $f10,0x438($sp)
/* f074928: 46062001 */ sub.s $f0,$f4,$f6
/* f07492c: c6440010 */ lwc1 $f4,0x10($s2)
/* f074930: 46045181 */ sub.s $f6,$f10,$f4
/* f074934: 46000282 */ mul.s $f10,$f0,$f0
/* f074938: 46083081 */ sub.s $f2,$f6,$f8
/* f07493c: 46021102 */ mul.s $f4,$f2,$f2
/* f074940: 0c012974 */ jal sqrtf
/* f074944: 46045300 */ add.s $f12,$f10,$f4
/* f074948: c7a60418 */ lwc1 $f6,0x418($sp)
/* f07494c: c7a8041c */ lwc1 $f8,0x41c($sp)
/* f074950: 4600303c */ c.lt.s $f6,$f0
/* f074954: 00000000 */ nop
/* f074958: 45020009 */ bc1fl .L0f074980
/* f07495c: 4600403c */ c.lt.s $f8,$f0
/* f074960: e7b405a4 */ swc1 $f20,0x5a4($sp)
/* f074964: c7a005a4 */ lwc1 $f0,0x5a4($sp)
/* f074968: e7a0059c */ swc1 $f0,0x59c($sp)
/* f07496c: e6000004 */ swc1 $f0,0x4($s0)
/* f074970: e600000c */ swc1 $f0,0xc($s0)
/* f074974: 10000017 */ b .L0f0749d4
/* f074978: e60000dc */ swc1 $f0,0xdc($s0)
/* f07497c: 4600403c */ c.lt.s $f8,$f0
.L0f074980:
/* f074980: c7aa0418 */ lwc1 $f10,0x418($sp)
/* f074984: 3c017f1b */ lui $at,%hi(var7f1aa3e8)
/* f074988: 45020013 */ bc1fl .L0f0749d8
/* f07498c: 4406a000 */ mfc1 $a2,$f20
/* f074990: 46005101 */ sub.s $f4,$f10,$f0
/* f074994: c426a3e8 */ lwc1 $f6,%lo(var7f1aa3e8)($at)
/* f074998: c6080004 */ lwc1 $f8,0x4($s0)
/* f07499c: 46062082 */ mul.s $f2,$f4,$f6
/* f0749a0: c604000c */ lwc1 $f4,0xc($s0)
/* f0749a4: 46024282 */ mul.s $f10,$f8,$f2
/* f0749a8: 00000000 */ nop
/* f0749ac: 46022182 */ mul.s $f6,$f4,$f2
/* f0749b0: e60a0004 */ swc1 $f10,0x4($s0)
/* f0749b4: e606000c */ swc1 $f6,0xc($s0)
/* f0749b8: c7a8059c */ lwc1 $f8,0x59c($sp)
/* f0749bc: c7a405a4 */ lwc1 $f4,0x5a4($sp)
/* f0749c0: 46024282 */ mul.s $f10,$f8,$f2
/* f0749c4: 00000000 */ nop
/* f0749c8: 46022182 */ mul.s $f6,$f4,$f2
/* f0749cc: e7aa059c */ swc1 $f10,0x59c($sp)
/* f0749d0: e7a605a4 */ swc1 $f6,0x5a4($sp)
.L0f0749d4:
/* f0749d4: 4406a000 */ mfc1 $a2,$f20
.L0f0749d8:
/* f0749d8: 02202025 */ or $a0,$s1,$zero
/* f0749dc: 27a5059c */ addiu $a1,$sp,0x59c
/* f0749e0: 0fc1c851 */ jal func0f072144
/* f0749e4: 24070001 */ addiu $a3,$zero,0x1
/* f0749e8: 14400005 */ bnez $v0,.L0f074a00
/* f0749ec: afa20600 */ sw $v0,0x600($sp)
/* f0749f0: 4406a000 */ mfc1 $a2,$f20
/* f0749f4: 02202025 */ or $a0,$s1,$zero
/* f0749f8: 0fc1c9f5 */ jal objCollide
/* f0749fc: 27a5059c */ addiu $a1,$sp,0x59c
.L0f074a00:
/* f074a00: 8faa0600 */ lw $t2,0x600($sp)
.L0f074a04:
/* f074a04: 24010001 */ addiu $at,$zero,0x1
/* f074a08: c7a80590 */ lwc1 $f8,0x590($sp)
/* f074a0c: 55410007 */ bnel $t2,$at,.L0f074a2c
/* f074a10: 8fab0600 */ lw $t3,0x600($sp)
/* f074a14: e6080004 */ swc1 $f8,0x4($s0)
/* f074a18: c7aa0594 */ lwc1 $f10,0x594($sp)
/* f074a1c: e60a0008 */ swc1 $f10,0x8($s0)
/* f074a20: c7a40598 */ lwc1 $f4,0x598($sp)
/* f074a24: e604000c */ swc1 $f4,0xc($s0)
.L0f074a28:
/* f074a28: 8fab0600 */ lw $t3,0x600($sp)
.L0f074a2c:
/* f074a2c: 24010001 */ addiu $at,$zero,0x1
/* f074a30: 51610005 */ beql $t3,$at,.L0f074a48
/* f074a34: 8e040088 */ lw $a0,0x88($s0)
/* f074a38: e61400dc */ swc1 $f20,0xdc($s0)
/* f074a3c: e614000c */ swc1 $f20,0xc($s0)
/* f074a40: e6140004 */ swc1 $f20,0x4($s0)
/* f074a44: 8e040088 */ lw $a0,0x88($s0)
.L0f074a48:
/* f074a48: 50800004 */ beqzl $a0,.L0f074a5c
/* f074a4c: c6060004 */ lwc1 $f6,0x4($s0)
/* f074a50: 0fc1905e */ jal propSetPerimEnabled
/* f074a54: 24050001 */ addiu $a1,$zero,0x1
/* f074a58: c6060004 */ lwc1 $f6,0x4($s0)
.L0f074a5c:
/* f074a5c: 4606a032 */ c.eq.s $f20,$f6
/* f074a60: 00000000 */ nop
/* f074a64: 4502000e */ bc1fl .L0f074aa0
/* f074a68: 8fad0600 */ lw $t5,0x600($sp)
/* f074a6c: c608000c */ lwc1 $f8,0xc($s0)
/* f074a70: 4608a032 */ c.eq.s $f20,$f8
/* f074a74: 00000000 */ nop
/* f074a78: 45020009 */ bc1fl .L0f074aa0
/* f074a7c: 8fad0600 */ lw $t5,0x600($sp)
/* f074a80: c60a00dc */ lwc1 $f10,0xdc($s0)
/* f074a84: 460aa032 */ c.eq.s $f20,$f10
/* f074a88: 00000000 */ nop
/* f074a8c: 45020004 */ bc1fl .L0f074aa0
/* f074a90: 8fad0600 */ lw $t5,0x600($sp)
/* f074a94: 0fc1ab10 */ jal objEndFlight
/* f074a98: 02202025 */ or $a0,$s1,$zero
/* f074a9c: 8fad0600 */ lw $t5,0x600($sp)
.L0f074aa0:
/* f074aa0: 24010001 */ addiu $at,$zero,0x1
/* f074aa4: 8fa40070 */ lw $a0,0x70($sp)
/* f074aa8: 15a10012 */ bne $t5,$at,.L0f074af4
/* f074aac: 3c054000 */ lui $a1,0x4000
/* f074ab0: 26460028 */ addiu $a2,$s2,0x28
/* f074ab4: 26270058 */ addiu $a3,$s1,0x58
/* f074ab8: 0c00a8cc */ jal cdFindGroundYSimple
/* f074abc: afa00010 */ sw $zero,0x10($sp)
/* f074ac0: 3c017f1b */ lui $at,%hi(var7f1aa3ec)
/* f074ac4: c424a3ec */ lwc1 $f4,%lo(var7f1aa3ec)($at)
/* f074ac8: 46000086 */ mov.s $f2,$f0
/* f074acc: 02202025 */ or $a0,$s1,$zero
/* f074ad0: 4600203c */ c.lt.s $f4,$f0
/* f074ad4: 00000000 */ nop
/* f074ad8: 45020007 */ bc1fl .L0f074af8
/* f074adc: 02202025 */ or $a0,$s1,$zero
/* f074ae0: 0fc1c4d8 */ jal objGetHov04
/* f074ae4: e7a20584 */ swc1 $f2,0x584($sp)
/* f074ae8: c7a20584 */ lwc1 $f2,0x584($sp)
/* f074aec: 46020180 */ add.s $f6,$f0,$f2
/* f074af0: e646000c */ swc1 $f6,0xc($s2)
.L0f074af4:
/* f074af4: 02202025 */ or $a0,$s1,$zero
.L0f074af8:
/* f074af8: 00002825 */ or $a1,$zero,$zero
/* f074afc: 0fc1a71c */ jal func0f069c70
/* f074b00: 24060001 */ addiu $a2,$zero,0x1
/* f074b04: 27b00484 */ addiu $s0,$sp,0x484
/* f074b08: 02002825 */ or $a1,$s0,$zero
/* f074b0c: 0c005755 */ jal mtx3ToMtx4
/* f074b10: 8fa40074 */ lw $a0,0x74($sp)
/* f074b14: 8fa40070 */ lw $a0,0x70($sp)
/* f074b18: 0c005775 */ jal mtx4SetTranslation
/* f074b1c: 02002825 */ or $a1,$s0,$zero
/* f074b20: 27b104c4 */ addiu $s1,$sp,0x4c4
/* f074b24: 02202825 */ or $a1,$s1,$zero
/* f074b28: 0c005cbc */ jal mtx000172f0
/* f074b2c: 27a40504 */ addiu $a0,$sp,0x504
/* f074b30: 02002025 */ or $a0,$s0,$zero
/* f074b34: 02202825 */ or $a1,$s1,$zero
/* f074b38: 0c005680 */ jal mtx4MultMtx4
/* f074b3c: 27a60544 */ addiu $a2,$sp,0x544
/* f074b40: 02402025 */ or $a0,$s2,$zero
/* f074b44: 0fc1ccb5 */ jal platformDisplaceProps2
/* f074b48: 27a50544 */ addiu $a1,$sp,0x544
/* f074b4c: 240c0001 */ addiu $t4,$zero,0x1
/* f074b50: 100008ef */ b .L0f076f10
/* f074b54: afac05d8 */ sw $t4,0x5d8($sp)
.L0f074b58:
/* f074b58: 11c007c2 */ beqz $t6,.L0f076a64
/* f074b5c: 304c0400 */ andi $t4,$v0,0x400
/* f074b60: afa00354 */ sw $zero,0x354($sp)
/* f074b64: afa00350 */ sw $zero,0x350($sp)
/* f074b68: afa0034c */ sw $zero,0x34c($sp)
/* f074b6c: 8e0f00d0 */ lw $t7,0xd0($s0)
/* f074b70: 8c780034 */ lw $t8,0x34($v1)
/* f074b74: 30494000 */ andi $t1,$v0,0x4000
/* f074b78: 01f8c821 */ addu $t9,$t7,$t8
/* f074b7c: 15200003 */ bnez $t1,.L0f074b8c
/* f074b80: ae1900d0 */ sw $t9,0xd0($s0)
/* f074b84: 2b212581 */ slti $at,$t9,0x2581
/* f074b88: 10200021 */ beqz $at,.L0f074c10
.L0f074b8c:
/* f074b8c: 3c017f1b */ lui $at,%hi(var7f1aa3f0)
/* f074b90: c428a3f0 */ lwc1 $f8,%lo(var7f1aa3f0)($at)
/* f074b94: c640000c */ lwc1 $f0,0xc($s2)
/* f074b98: 3c0146fa */ lui $at,0x46fa
/* f074b9c: 4608003c */ c.lt.s $f0,$f8
/* f074ba0: 00000000 */ nop
/* f074ba4: 4503001b */ bc1tl .L0f074c14
/* f074ba8: 8e2b0040 */ lw $t3,0x40($s1)
/* f074bac: 44811000 */ mtc1 $at,$f2
/* f074bb0: 3c01c6fa */ lui $at,0xc6fa
/* f074bb4: 4600103c */ c.lt.s $f2,$f0
/* f074bb8: 00000000 */ nop
/* f074bbc: 45030015 */ bc1tl .L0f074c14
/* f074bc0: 8e2b0040 */ lw $t3,0x40($s1)
/* f074bc4: 44816000 */ mtc1 $at,$f12
/* f074bc8: c6400008 */ lwc1 $f0,0x8($s2)
/* f074bcc: 460c003c */ c.lt.s $f0,$f12
/* f074bd0: 00000000 */ nop
/* f074bd4: 4503000f */ bc1tl .L0f074c14
/* f074bd8: 8e2b0040 */ lw $t3,0x40($s1)
/* f074bdc: 4600103c */ c.lt.s $f2,$f0
/* f074be0: 00000000 */ nop
/* f074be4: 4503000b */ bc1tl .L0f074c14
/* f074be8: 8e2b0040 */ lw $t3,0x40($s1)
/* f074bec: c6400010 */ lwc1 $f0,0x10($s2)
/* f074bf0: 460c003c */ c.lt.s $f0,$f12
/* f074bf4: 00000000 */ nop
/* f074bf8: 45030006 */ bc1tl .L0f074c14
/* f074bfc: 8e2b0040 */ lw $t3,0x40($s1)
/* f074c00: 4600103c */ c.lt.s $f2,$f0
/* f074c04: 00000000 */ nop
/* f074c08: 45020005 */ bc1fl .L0f074c20
/* f074c0c: 8e0c00a0 */ lw $t4,0xa0($s0)
.L0f074c10:
/* f074c10: 8e2b0040 */ lw $t3,0x40($s1)
.L0f074c14:
/* f074c14: 356d0004 */ ori $t5,$t3,0x4
/* f074c18: ae2d0040 */ sw $t5,0x40($s1)
/* f074c1c: 8e0c00a0 */ lw $t4,0xa0($s0)
.L0f074c20:
/* f074c20: 8c6e0034 */ lw $t6,0x34($v1)
/* f074c24: 2624001c */ addiu $a0,$s1,0x1c
/* f074c28: 27a50358 */ addiu $a1,$sp,0x358
/* f074c2c: 018e7821 */ addu $t7,$t4,$t6
/* f074c30: ae0f00a0 */ sw $t7,0xa0($s0)
/* f074c34: 0c005736 */ jal mtx3Copy
/* f074c38: afa40074 */ sw $a0,0x74($sp)
/* f074c3c: 8e180000 */ lw $t8,0x0($s0)
/* f074c40: 3c017f1b */ lui $at,%hi(var7f1aa3f4)
/* f074c44: 33190020 */ andi $t9,$t8,0x20
/* f074c48: 5320004b */ beqzl $t9,.L0f074d78
/* f074c4c: 922c0003 */ lbu $t4,0x3($s1)
/* f074c50: c430a3f4 */ lwc1 $f16,%lo(var7f1aa3f4)($at)
/* f074c54: c600001c */ lwc1 $f0,0x1c($s0)
/* f074c58: 3c03800a */ lui $v1,%hi(g_Vars)
/* f074c5c: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
/* f074c60: 4610003c */ c.lt.s $f0,$f16
/* f074c64: 00000000 */ nop
/* f074c68: 4502001b */ bc1fl .L0f074cd8
/* f074c6c: c60000a8 */ lwc1 $f0,0xa8($s0)
/* f074c70: c60a0014 */ lwc1 $f10,0x14($s0)
/* f074c74: c464004c */ lwc1 $f4,0x4c($v1)
/* f074c78: c60800ac */ lwc1 $f8,0xac($s0)
/* f074c7c: 3c017f1b */ lui $at,%hi(var7f1aa3f8)
/* f074c80: 46045182 */ mul.s $f6,$f10,$f4
/* f074c84: 46064280 */ add.s $f10,$f8,$f6
/* f074c88: e60a00ac */ swc1 $f10,0xac($s0)
/* f074c8c: c468004c */ lwc1 $f8,0x4c($v1)
/* f074c90: c60400ac */ lwc1 $f4,0xac($s0)
/* f074c94: c60a00a8 */ lwc1 $f10,0xa8($s0)
/* f074c98: 46082182 */ mul.s $f6,$f4,$f8
/* f074c9c: 46065100 */ add.s $f4,$f10,$f6
/* f074ca0: e60400a8 */ swc1 $f4,0xa8($s0)
/* f074ca4: c46a004c */ lwc1 $f10,0x4c($v1)
/* f074ca8: c428a3f8 */ lwc1 $f8,%lo(var7f1aa3f8)($at)
/* f074cac: 460a4182 */ mul.s $f6,$f8,$f10
/* f074cb0: 46060100 */ add.s $f4,$f0,$f6
/* f074cb4: e604001c */ swc1 $f4,0x1c($s0)
/* f074cb8: c608001c */ lwc1 $f8,0x1c($s0)
/* f074cbc: 4608803c */ c.lt.s $f16,$f8
/* f074cc0: 00000000 */ nop
/* f074cc4: 4502002c */ bc1fl .L0f074d78
/* f074cc8: 922c0003 */ lbu $t4,0x3($s1)
/* f074ccc: 10000029 */ b .L0f074d74
/* f074cd0: e610001c */ swc1 $f16,0x1c($s0)
/* f074cd4: c60000a8 */ lwc1 $f0,0xa8($s0)
.L0f074cd8:
/* f074cd8: c7aa05e0 */ lwc1 $f10,0x5e0($sp)
/* f074cdc: 4600503c */ c.lt.s $f10,$f0
/* f074ce0: 00000000 */ nop
/* f074ce4: 45000018 */ bc1f .L0f074d48
/* f074ce8: 3c01800a */ lui $at,%hi(g_Vars+0x4c)
/* f074cec: c424a00c */ lwc1 $f4,%lo(g_Vars+0x4c)($at)
/* f074cf0: c6060014 */ lwc1 $f6,0x14($s0)
/* f074cf4: c60a00ac */ lwc1 $f10,0xac($s0)
/* f074cf8: 46043202 */ mul.s $f8,$f6,$f4
/* f074cfc: 46085180 */ add.s $f6,$f10,$f8
/* f074d00: e60600ac */ swc1 $f6,0xac($s0)
/* f074d04: c42aa00c */ lwc1 $f10,-0x5ff4($at)
/* f074d08: c60400ac */ lwc1 $f4,0xac($s0)
/* f074d0c: 3c017f1b */ lui $at,%hi(var7f1aa3fc)
/* f074d10: 460a2202 */ mul.s $f8,$f4,$f10
/* f074d14: 46080180 */ add.s $f6,$f0,$f8
/* f074d18: e60600a8 */ swc1 $f6,0xa8($s0)
/* f074d1c: c7aa05e0 */ lwc1 $f10,0x5e0($sp)
/* f074d20: c60400a8 */ lwc1 $f4,0xa8($s0)
/* f074d24: c426a3fc */ lwc1 $f6,%lo(var7f1aa3fc)($at)
/* f074d28: 3c01800a */ lui $at,%hi(g_Vars+0x4c)
/* f074d2c: 460a2201 */ sub.s $f8,$f4,$f10
/* f074d30: 46083102 */ mul.s $f4,$f6,$f8
/* f074d34: c426a00c */ lwc1 $f6,%lo(g_Vars+0x4c)($at)
/* f074d38: 46062202 */ mul.s $f8,$f4,$f6
/* f074d3c: 46085100 */ add.s $f4,$f10,$f8
/* f074d40: 1000000c */ b .L0f074d74
/* f074d44: e7a405e0 */ swc1 $f4,0x5e0($sp)
.L0f074d48:
/* f074d48: e7a005e0 */ swc1 $f0,0x5e0($sp)
/* f074d4c: 8e090000 */ lw $t1,0x0($s0)
/* f074d50: 2401ffdf */ addiu $at,$zero,-33
/* f074d54: 4480a000 */ mtc1 $zero,$f20
/* f074d58: c60600ac */ lwc1 $f6,0xac($s0)
/* f074d5c: 01215024 */ and $t2,$t1,$at
/* f074d60: ae0a0000 */ sw $t2,0x0($s0)
/* f074d64: 354d0010 */ ori $t5,$t2,0x10
/* f074d68: ae0d0000 */ sw $t5,0x0($s0)
/* f074d6c: e6060008 */ swc1 $f6,0x8($s0)
/* f074d70: e614001c */ swc1 $f20,0x1c($s0)
.L0f074d74:
/* f074d74: 922c0003 */ lbu $t4,0x3($s1)
.L0f074d78:
/* f074d78: 4480a000 */ mtc1 $zero,$f20
/* f074d7c: 24010008 */ addiu $at,$zero,0x8
/* f074d80: 15810006 */ bne $t4,$at,.L0f074d9c
/* f074d84: 00001025 */ or $v0,$zero,$zero
/* f074d88: 922e005c */ lbu $t6,0x5c($s1)
/* f074d8c: 24010054 */ addiu $at,$zero,0x54
/* f074d90: 15c10002 */ bne $t6,$at,.L0f074d9c
/* f074d94: 00000000 */ nop
/* f074d98: 24020001 */ addiu $v0,$zero,0x1
.L0f074d9c:
/* f074d9c: 10400129 */ beqz $v0,.L0f075244
/* f074da0: 3c188007 */ lui $t8,%hi(var80069b98)
/* f074da4: 27189b98 */ addiu $t8,$t8,%lo(var80069b98)
/* f074da8: 8f010000 */ lw $at,0x0($t8)
/* f074dac: 27af02f8 */ addiu $t7,$sp,0x2f8
/* f074db0: 8f090004 */ lw $t1,0x4($t8)
/* f074db4: ade10000 */ sw $at,0x0($t7)
/* f074db8: 8f010008 */ lw $at,0x8($t8)
/* f074dbc: 3c0b8007 */ lui $t3,%hi(var80069ba4)
/* f074dc0: 256b9ba4 */ addiu $t3,$t3,%lo(var80069ba4)
/* f074dc4: ade90004 */ sw $t1,0x4($t7)
/* f074dc8: ade10008 */ sw $at,0x8($t7)
/* f074dcc: 8d610000 */ lw $at,0x0($t3)
/* f074dd0: 27aa02ec */ addiu $t2,$sp,0x2ec
/* f074dd4: 8d6c0004 */ lw $t4,0x4($t3)
/* f074dd8: ad410000 */ sw $at,0x0($t2)
/* f074ddc: 8d610008 */ lw $at,0x8($t3)
/* f074de0: 3c198007 */ lui $t9,%hi(var80069bb0)
/* f074de4: 27399bb0 */ addiu $t9,$t9,%lo(var80069bb0)
/* f074de8: ad4c0004 */ sw $t4,0x4($t2)
/* f074dec: ad410008 */ sw $at,0x8($t2)
/* f074df0: 8f210000 */ lw $at,0x0($t9)
/* f074df4: 27ae02e0 */ addiu $t6,$sp,0x2e0
/* f074df8: 8f380004 */ lw $t8,0x4($t9)
/* f074dfc: adc10000 */ sw $at,0x0($t6)
/* f074e00: 8f210008 */ lw $at,0x8($t9)
/* f074e04: add80004 */ sw $t8,0x4($t6)
/* f074e08: 1220010e */ beqz $s1,.L0f075244
/* f074e0c: adc10008 */ sw $at,0x8($t6)
/* f074e10: 8e290014 */ lw $t1,0x14($s1)
/* f074e14: 5120010c */ beqzl $t1,.L0f075248
/* f074e18: 8e020000 */ lw $v0,0x0($s0)
/* f074e1c: 8e0d00e8 */ lw $t5,0xe8($s0)
/* f074e20: 51a00109 */ beqzl $t5,.L0f075248
/* f074e24: 8e020000 */ lw $v0,0x0($s0)
/* f074e28: c622001c */ lwc1 $f2,0x1c($s1)
/* f074e2c: c62e0028 */ lwc1 $f14,0x28($s1)
/* f074e30: c6200034 */ lwc1 $f0,0x34($s1)
/* f074e34: 46021282 */ mul.s $f10,$f2,$f2
/* f074e38: 00000000 */ nop
/* f074e3c: 460e7202 */ mul.s $f8,$f14,$f14
/* f074e40: 46085100 */ add.s $f4,$f10,$f8
/* f074e44: 46000182 */ mul.s $f6,$f0,$f0
/* f074e48: 0c012974 */ jal sqrtf
/* f074e4c: 46043300 */ add.s $f12,$f6,$f4
/* f074e50: 27a402a0 */ addiu $a0,$sp,0x2a0
/* f074e54: 0c00566c */ jal mtx4LoadIdentity
/* f074e58: e7a0029c */ swc1 $f0,0x29c($sp)
/* f074e5c: c7a2029c */ lwc1 $f2,0x29c($sp)
/* f074e60: c62a001c */ lwc1 $f10,0x1c($s1)
/* f074e64: 27a40290 */ addiu $a0,$sp,0x290
/* f074e68: 27a50294 */ addiu $a1,$sp,0x294
/* f074e6c: 46025203 */ div.s $f8,$f10,$f2
/* f074e70: 27a60298 */ addiu $a2,$sp,0x298
/* f074e74: e7a802a0 */ swc1 $f8,0x2a0($sp)
/* f074e78: c6260020 */ lwc1 $f6,0x20($s1)
/* f074e7c: 46023103 */ div.s $f4,$f6,$f2
/* f074e80: e7a402a4 */ swc1 $f4,0x2a4($sp)
/* f074e84: c62a0024 */ lwc1 $f10,0x24($s1)
/* f074e88: 46025203 */ div.s $f8,$f10,$f2
/* f074e8c: e7a802a8 */ swc1 $f8,0x2a8($sp)
/* f074e90: c6260028 */ lwc1 $f6,0x28($s1)
/* f074e94: 46023103 */ div.s $f4,$f6,$f2
/* f074e98: e7a402b0 */ swc1 $f4,0x2b0($sp)
/* f074e9c: c62a002c */ lwc1 $f10,0x2c($s1)
/* f074ea0: 46025203 */ div.s $f8,$f10,$f2
/* f074ea4: e7a802b4 */ swc1 $f8,0x2b4($sp)
/* f074ea8: c6260030 */ lwc1 $f6,0x30($s1)
/* f074eac: 46023103 */ div.s $f4,$f6,$f2
/* f074eb0: e7a402b8 */ swc1 $f4,0x2b8($sp)
/* f074eb4: c62a0034 */ lwc1 $f10,0x34($s1)
/* f074eb8: 46025203 */ div.s $f8,$f10,$f2
/* f074ebc: e7a802c0 */ swc1 $f8,0x2c0($sp)
/* f074ec0: c6260038 */ lwc1 $f6,0x38($s1)
/* f074ec4: 46023103 */ div.s $f4,$f6,$f2
/* f074ec8: e7a402c4 */ swc1 $f4,0x2c4($sp)
/* f074ecc: c62a003c */ lwc1 $f10,0x3c($s1)
/* f074ed0: 46025203 */ div.s $f8,$f10,$f2
/* f074ed4: e7a802c8 */ swc1 $f8,0x2c8($sp)
/* f074ed8: 8e2a0014 */ lw $t2,0x14($s1)
/* f074edc: c5460008 */ lwc1 $f6,0x8($t2)
/* f074ee0: e7a602f8 */ swc1 $f6,0x2f8($sp)
/* f074ee4: 8e2b0014 */ lw $t3,0x14($s1)
/* f074ee8: c7a602f8 */ lwc1 $f6,0x2f8($sp)
/* f074eec: c564000c */ lwc1 $f4,0xc($t3)
/* f074ef0: e7a402fc */ swc1 $f4,0x2fc($sp)
/* f074ef4: 8e2c0014 */ lw $t4,0x14($s1)
/* f074ef8: c58a0010 */ lwc1 $f10,0x10($t4)
/* f074efc: e7aa0300 */ swc1 $f10,0x300($sp)
/* f074f00: 8e0f00e8 */ lw $t7,0xe8($s0)
/* f074f04: c5e80008 */ lwc1 $f8,0x8($t7)
/* f074f08: 46064101 */ sub.s $f4,$f8,$f6
/* f074f0c: c7a802fc */ lwc1 $f8,0x2fc($sp)
/* f074f10: e7a40290 */ swc1 $f4,0x290($sp)
/* f074f14: 8e0e00e8 */ lw $t6,0xe8($s0)
/* f074f18: c5ca000c */ lwc1 $f10,0xc($t6)
/* f074f1c: 46085181 */ sub.s $f6,$f10,$f8
/* f074f20: c7aa0300 */ lwc1 $f10,0x300($sp)
/* f074f24: e7a60294 */ swc1 $f6,0x294($sp)
/* f074f28: 8e1900e8 */ lw $t9,0xe8($s0)
/* f074f2c: c7240010 */ lwc1 $f4,0x10($t9)
/* f074f30: e7a2029c */ swc1 $f2,0x29c($sp)
/* f074f34: 460a2201 */ sub.s $f8,$f4,$f10
/* f074f38: 0c0011e4 */ jal guNormalize
/* f074f3c: e7a80298 */ swc1 $f8,0x298($sp)
/* f074f40: c6060004 */ lwc1 $f6,0x4($s0)
/* f074f44: 27a402ec */ addiu $a0,$sp,0x2ec
/* f074f48: 27a502f0 */ addiu $a1,$sp,0x2f0
/* f074f4c: e7a602ec */ swc1 $f6,0x2ec($sp)
/* f074f50: c6040008 */ lwc1 $f4,0x8($s0)
/* f074f54: 27a602f4 */ addiu $a2,$sp,0x2f4
/* f074f58: e7a402f0 */ swc1 $f4,0x2f0($sp)
/* f074f5c: c60a000c */ lwc1 $f10,0xc($s0)
/* f074f60: 0c0011e4 */ jal guNormalize
/* f074f64: e7aa02f4 */ swc1 $f10,0x2f4($sp)
/* f074f68: c7a80298 */ lwc1 $f8,0x298($sp)
/* f074f6c: c7a602f4 */ lwc1 $f6,0x2f4($sp)
/* f074f70: c7b00290 */ lwc1 $f16,0x290($sp)
/* f074f74: c7aa02ec */ lwc1 $f10,0x2ec($sp)
/* f074f78: 46064102 */ mul.s $f4,$f8,$f6
/* f074f7c: c7b20294 */ lwc1 $f18,0x294($sp)
/* f074f80: c7a602f0 */ lwc1 $f6,0x2f0($sp)
/* f074f84: 46105202 */ mul.s $f8,$f10,$f16
/* f074f88: 00000000 */ nop
/* f074f8c: 46123282 */ mul.s $f10,$f6,$f18
/* f074f90: 460a4180 */ add.s $f6,$f8,$f10
/* f074f94: 0fc25a74 */ jal acosf
/* f074f98: 46062300 */ add.s $f12,$f4,$f6
/* f074f9c: 3c017f1b */ lui $at,%hi(var7f1aa404)
/* f074fa0: c428a404 */ lwc1 $f8,%lo(var7f1aa404)($at)
/* f074fa4: 3c047f1b */ lui $a0,%hi(var7f1a9fd0)
/* f074fa8: c7a2029c */ lwc1 $f2,0x29c($sp)
/* f074fac: 4600403c */ c.lt.s $f8,$f0
/* f074fb0: e7a0028c */ swc1 $f0,0x28c($sp)
/* f074fb4: 3c017f1b */ lui $at,%hi(var7f1aa408)
/* f074fb8: 24849fd0 */ addiu $a0,$a0,%lo(var7f1a9fd0)
/* f074fbc: 45010005 */ bc1t .L0f074fd4
/* f074fc0: 3c058007 */ lui $a1,%hi(var80069bc8)
/* f074fc4: c42aa408 */ lwc1 $f10,%lo(var7f1aa408)($at)
/* f074fc8: 460a003c */ c.lt.s $f0,$f10
/* f074fcc: 00000000 */ nop
/* f074fd0: 4500009c */ bc1f .L0f075244
.L0f074fd4:
/* f074fd4: 24a59bc8 */ addiu $a1,$a1,%lo(var80069bc8)
/* f074fd8: 0c0036cc */ jal mainOverrideVariable
/* f074fdc: e7a2029c */ swc1 $f2,0x29c($sp)
/* f074fe0: 3c047f1b */ lui $a0,%hi(var7f1a9fd4)
/* f074fe4: 3c058007 */ lui $a1,%hi(var80069bcc)
/* f074fe8: 24a59bcc */ addiu $a1,$a1,%lo(var80069bcc)
/* f074fec: 0c0036cc */ jal mainOverrideVariable
/* f074ff0: 24849fd4 */ addiu $a0,$a0,%lo(var7f1a9fd4)
/* f074ff4: 3c047f1b */ lui $a0,%hi(var7f1a9fd8)
/* f074ff8: 3c058007 */ lui $a1,%hi(var80069bd0)
/* f074ffc: 24a59bd0 */ addiu $a1,$a1,%lo(var80069bd0)
/* f075000: 0c0036cc */ jal mainOverrideVariable
/* f075004: 24849fd8 */ addiu $a0,$a0,%lo(var7f1a9fd8)
/* f075008: 3c188007 */ lui $t8,%hi(var80069bcc)
/* f07500c: 8f189bcc */ lw $t8,%lo(var80069bcc)($t8)
/* f075010: 3c01800a */ lui $at,%hi(g_Vars+0x44)
/* f075014: c7b00290 */ lwc1 $f16,0x290($sp)
/* f075018: 44982000 */ mtc1 $t8,$f4
/* f07501c: c7b20294 */ lwc1 $f18,0x294($sp)
/* f075020: c420a004 */ lwc1 $f0,%lo(g_Vars+0x44)($at)
/* f075024: 07010005 */ bgez $t8,.L0f07503c
/* f075028: 468021a0 */ cvt.s.w $f6,$f4
/* f07502c: 3c014f80 */ lui $at,0x4f80
/* f075030: 44814000 */ mtc1 $at,$f8
/* f075034: 00000000 */ nop
/* f075038: 46083180 */ add.s $f6,$f6,$f8
.L0f07503c:
/* f07503c: 3c0142c8 */ lui $at,0x42c8
/* f075040: 44815000 */ mtc1 $at,$f10
/* f075044: 3c018007 */ lui $at,%hi(var80069bc4)
/* f075048: c4289bc4 */ lwc1 $f8,%lo(var80069bc4)($at)
/* f07504c: 460a3103 */ div.s $f4,$f6,$f10
/* f075050: 3c098007 */ lui $t1,%hi(var80069bd0)
/* f075054: 8d299bd0 */ lw $t1,%lo(var80069bd0)($t1)
/* f075058: 46082182 */ mul.s $f6,$f4,$f8
/* f07505c: 44892000 */ mtc1 $t1,$f4
/* f075060: 00000000 */ nop
/* f075064: 46802220 */ cvt.s.w $f8,$f4
/* f075068: 05210005 */ bgez $t1,.L0f075080
/* f07506c: 46003283 */ div.s $f10,$f6,$f0
/* f075070: 3c014f80 */ lui $at,0x4f80
/* f075074: 44813000 */ mtc1 $at,$f6
/* f075078: 00000000 */ nop
/* f07507c: 46064200 */ add.s $f8,$f8,$f6
.L0f075080:
/* f075080: 3c0142c8 */ lui $at,0x42c8
/* f075084: 44812000 */ mtc1 $at,$f4
/* f075088: 3c0d8007 */ lui $t5,%hi(var80069bc8)
/* f07508c: 8dad9bc8 */ lw $t5,%lo(var80069bc8)($t5)
/* f075090: 46044183 */ div.s $f6,$f8,$f4
/* f075094: c7a8028c */ lwc1 $f8,0x28c($sp)
/* f075098: 3c014f80 */ lui $at,0x4f80
/* f07509c: 46083102 */ mul.s $f4,$f6,$f8
/* f0750a0: 00000000 */ nop
/* f0750a4: 46002182 */ mul.s $f6,$f4,$f0
/* f0750a8: 46065100 */ add.s $f4,$f10,$f6
/* f0750ac: 448d5000 */ mtc1 $t5,$f10
/* f0750b0: 05a10004 */ bgez $t5,.L0f0750c4
/* f0750b4: 468051a0 */ cvt.s.w $f6,$f10
/* f0750b8: 44815000 */ mtc1 $at,$f10
/* f0750bc: 00000000 */ nop
/* f0750c0: 460a3180 */ add.s $f6,$f6,$f10
.L0f0750c4:
/* f0750c4: 3c0142c8 */ lui $at,0x42c8
/* f0750c8: 44815000 */ mtc1 $at,$f10
/* f0750cc: 3c018007 */ lui $at,%hi(var80069bc4)
/* f0750d0: e4289bc4 */ swc1 $f8,%lo(var80069bc4)($at)
/* f0750d4: 460a3183 */ div.s $f6,$f6,$f10
/* f0750d8: c7aa02f0 */ lwc1 $f10,0x2f0($sp)
/* f0750dc: c7a802f4 */ lwc1 $f8,0x2f4($sp)
/* f0750e0: 3c013f00 */ lui $at,0x3f00
/* f0750e4: 46062382 */ mul.s $f14,$f4,$f6
/* f0750e8: c7a40298 */ lwc1 $f4,0x298($sp)
/* f0750ec: 46045182 */ mul.s $f6,$f10,$f4
/* f0750f0: 00000000 */ nop
/* f0750f4: 46089102 */ mul.s $f4,$f18,$f8
/* f0750f8: 46043201 */ sub.s $f8,$f6,$f4
/* f0750fc: c7a40298 */ lwc1 $f4,0x298($sp)
/* f075100: c7a602ec */ lwc1 $f6,0x2ec($sp)
/* f075104: e7a80280 */ swc1 $f8,0x280($sp)
/* f075108: 46043202 */ mul.s $f8,$f6,$f4
/* f07510c: c7a602f4 */ lwc1 $f6,0x2f4($sp)
/* f075110: 46068102 */ mul.s $f4,$f16,$f6
/* f075114: 46044181 */ sub.s $f6,$f8,$f4
/* f075118: c7a402ec */ lwc1 $f4,0x2ec($sp)
/* f07511c: 46003207 */ neg.s $f8,$f6
/* f075120: 46122182 */ mul.s $f6,$f4,$f18
/* f075124: e7a80284 */ swc1 $f8,0x284($sp)
/* f075128: 460a8202 */ mul.s $f8,$f16,$f10
/* f07512c: 44815000 */ mtc1 $at,$f10
/* f075130: 00000000 */ nop
/* f075134: 460a7302 */ mul.s $f12,$f14,$f10
/* f075138: 46083101 */ sub.s $f4,$f6,$f8
/* f07513c: e7ac0078 */ swc1 $f12,0x78($sp)
/* f075140: 0c0068f4 */ jal cosf
/* f075144: e7a40288 */ swc1 $f4,0x288($sp)
/* f075148: e7a00260 */ swc1 $f0,0x260($sp)
/* f07514c: 0c0068f7 */ jal sinf
/* f075150: c7ac0078 */ lwc1 $f12,0x78($sp)
/* f075154: c7a60280 */ lwc1 $f6,0x280($sp)
/* f075158: c7ac0078 */ lwc1 $f12,0x78($sp)
/* f07515c: 46060202 */ mul.s $f8,$f0,$f6
/* f075160: 0c0068f7 */ jal sinf
/* f075164: e7a80264 */ swc1 $f8,0x264($sp)
/* f075168: c7a40284 */ lwc1 $f4,0x284($sp)
/* f07516c: c7ac0078 */ lwc1 $f12,0x78($sp)
/* f075170: 46040282 */ mul.s $f10,$f0,$f4
/* f075174: 0c0068f7 */ jal sinf
/* f075178: e7aa0268 */ swc1 $f10,0x268($sp)
/* f07517c: c7a60288 */ lwc1 $f6,0x288($sp)
/* f075180: 27a40260 */ addiu $a0,$sp,0x260
/* f075184: 27a5020c */ addiu $a1,$sp,0x20c
/* f075188: 46060202 */ mul.s $f8,$f0,$f6
/* f07518c: 0fc25bb5 */ jal quaternionToMtx
/* f075190: e7a8026c */ swc1 $f8,0x26c($sp)
/* f075194: e6140018 */ swc1 $f20,0x18($s0)
/* f075198: e6140014 */ swc1 $f20,0x14($s0)
/* f07519c: e6140010 */ swc1 $f20,0x10($s0)
/* f0751a0: 27a4020c */ addiu $a0,$sp,0x20c
/* f0751a4: 0c0056c4 */ jal mtx4RotateVecInPlace
/* f0751a8: 26050004 */ addiu $a1,$s0,0x4
/* f0751ac: 27a402a0 */ addiu $a0,$sp,0x2a0
/* f0751b0: 0fc25c11 */ jal quaternion0f097044
/* f0751b4: 27a50270 */ addiu $a1,$sp,0x270
/* f0751b8: 27a40270 */ addiu $a0,$sp,0x270
/* f0751bc: 27a50260 */ addiu $a1,$sp,0x260
/* f0751c0: 0fc25dce */ jal quaternionMultQuaternion
/* f0751c4: 27a60250 */ addiu $a2,$sp,0x250
/* f0751c8: 27a40250 */ addiu $a0,$sp,0x250
/* f0751cc: 0fc25bb5 */ jal quaternionToMtx
/* f0751d0: 27a5020c */ addiu $a1,$sp,0x20c
/* f0751d4: c7a2029c */ lwc1 $f2,0x29c($sp)
/* f0751d8: c7a4020c */ lwc1 $f4,0x20c($sp)
/* f0751dc: 46022282 */ mul.s $f10,$f4,$f2
/* f0751e0: e62a001c */ swc1 $f10,0x1c($s1)
/* f0751e4: c7a60210 */ lwc1 $f6,0x210($sp)
/* f0751e8: 46023202 */ mul.s $f8,$f6,$f2
/* f0751ec: e6280020 */ swc1 $f8,0x20($s1)
/* f0751f0: c7a40214 */ lwc1 $f4,0x214($sp)
/* f0751f4: 46022282 */ mul.s $f10,$f4,$f2
/* f0751f8: e62a0024 */ swc1 $f10,0x24($s1)
/* f0751fc: c7a6021c */ lwc1 $f6,0x21c($sp)
/* f075200: 46023202 */ mul.s $f8,$f6,$f2
/* f075204: e6280028 */ swc1 $f8,0x28($s1)
/* f075208: c7a40220 */ lwc1 $f4,0x220($sp)
/* f07520c: 46022282 */ mul.s $f10,$f4,$f2
/* f075210: e62a002c */ swc1 $f10,0x2c($s1)
/* f075214: c7a60224 */ lwc1 $f6,0x224($sp)
/* f075218: 46023202 */ mul.s $f8,$f6,$f2
/* f07521c: e6280030 */ swc1 $f8,0x30($s1)
/* f075220: c7a4022c */ lwc1 $f4,0x22c($sp)
/* f075224: 46022282 */ mul.s $f10,$f4,$f2
/* f075228: e62a0034 */ swc1 $f10,0x34($s1)
/* f07522c: c7a60230 */ lwc1 $f6,0x230($sp)
/* f075230: 46023202 */ mul.s $f8,$f6,$f2
/* f075234: e6280038 */ swc1 $f8,0x38($s1)
/* f075238: c7a40234 */ lwc1 $f4,0x234($sp)
/* f07523c: 46022282 */ mul.s $f10,$f4,$f2
/* f075240: e62a003c */ swc1 $f10,0x3c($s1)
.L0f075244:
/* f075244: 8e020000 */ lw $v0,0x0($s0)
.L0f075248:
/* f075248: 3c03800a */ lui $v1,%hi(g_Vars)
/* f07524c: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
/* f075250: 3c017f1b */ lui $at,%hi(var7f1aa40c)
/* f075254: 304a0010 */ andi $t2,$v0,0x10
/* f075258: c430a40c */ lwc1 $f16,%lo(var7f1aa40c)($at)
/* f07525c: c462004c */ lwc1 $f2,0x4c($v1)
/* f075260: c600001c */ lwc1 $f0,0x1c($s0)
/* f075264: 1540001e */ bnez $t2,.L0f0752e0
/* f075268: c60c0014 */ lwc1 $f12,0x14($s0)
/* f07526c: 46006200 */ add.s $f8,$f12,$f0
/* f075270: c6060008 */ lwc1 $f6,0x8($s0)
/* f075274: 00025840 */ sll $t3,$v0,0x1
/* f075278: 3c017f1b */ lui $at,%hi(var7f1aa410)
/* f07527c: 46024102 */ mul.s $f4,$f8,$f2
/* f075280: 46043280 */ add.s $f10,$f6,$f4
/* f075284: 05610007 */ bgez $t3,.L0f0752a4
/* f075288: e60a0008 */ swc1 $f10,0x8($s0)
/* f07528c: c462004c */ lwc1 $f2,0x4c($v1)
/* f075290: c428a410 */ lwc1 $f8,%lo(var7f1aa410)($at)
/* f075294: c60c0008 */ lwc1 $f12,0x8($s0)
/* f075298: 46024182 */ mul.s $f6,$f8,$f2
/* f07529c: 10000005 */ b .L0f0752b4
/* f0752a0: 46066001 */ sub.s $f0,$f12,$f6
.L0f0752a4:
/* f0752a4: c462004c */ lwc1 $f2,0x4c($v1)
/* f0752a8: c60c0008 */ lwc1 $f12,0x8($s0)
/* f0752ac: 46028102 */ mul.s $f4,$f16,$f2
/* f0752b0: 46046001 */ sub.s $f0,$f12,$f4
.L0f0752b4:
/* f0752b4: 46006280 */ add.s $f10,$f12,$f0
/* f0752b8: 3c013f00 */ lui $at,0x3f00
/* f0752bc: 44813000 */ mtc1 $at,$f6
/* f0752c0: 460a1202 */ mul.s $f8,$f2,$f10
/* f0752c4: c7aa05e0 */ lwc1 $f10,0x5e0($sp)
/* f0752c8: 46064102 */ mul.s $f4,$f8,$f6
/* f0752cc: 46045200 */ add.s $f8,$f10,$f4
/* f0752d0: e7a805e0 */ swc1 $f8,0x5e0($sp)
/* f0752d4: e6000008 */ swc1 $f0,0x8($s0)
/* f0752d8: 1000000c */ b .L0f07530c
/* f0752dc: c462004c */ lwc1 $f2,0x4c($v1)
.L0f0752e0:
/* f0752e0: 46006280 */ add.s $f10,$f12,$f0
/* f0752e4: c6060008 */ lwc1 $f6,0x8($s0)
/* f0752e8: 46025102 */ mul.s $f4,$f10,$f2
/* f0752ec: 46043200 */ add.s $f8,$f6,$f4
/* f0752f0: e6080008 */ swc1 $f8,0x8($s0)
/* f0752f4: c6060008 */ lwc1 $f6,0x8($s0)
/* f0752f8: c462004c */ lwc1 $f2,0x4c($v1)
/* f0752fc: c7aa05e0 */ lwc1 $f10,0x5e0($sp)
/* f075300: 46023102 */ mul.s $f4,$f6,$f2
/* f075304: 46045200 */ add.s $f8,$f10,$f4
/* f075308: e7a805e0 */ swc1 $f8,0x5e0($sp)
.L0f07530c:
/* f07530c: c60a0010 */ lwc1 $f10,0x10($s0)
/* f075310: c6060004 */ lwc1 $f6,0x4($s0)
/* f075314: 27a5030c */ addiu $a1,$sp,0x30c
/* f075318: 46025102 */ mul.s $f4,$f10,$f2
/* f07531c: c60a0018 */ lwc1 $f10,0x18($s0)
/* f075320: 46043200 */ add.s $f8,$f6,$f4
/* f075324: e6080004 */ swc1 $f8,0x4($s0)
/* f075328: c466004c */ lwc1 $f6,0x4c($v1)
/* f07532c: c608000c */ lwc1 $f8,0xc($s0)
/* f075330: 46065102 */ mul.s $f4,$f10,$f6
/* f075334: 46044280 */ add.s $f10,$f8,$f4
/* f075338: c6080004 */ lwc1 $f8,0x4($s0)
/* f07533c: e60a000c */ swc1 $f10,0xc($s0)
/* f075340: c462004c */ lwc1 $f2,0x4c($v1)
/* f075344: c7a605dc */ lwc1 $f6,0x5dc($sp)
/* f075348: 8fa40074 */ lw $a0,0x74($sp)
/* f07534c: 46024102 */ mul.s $f4,$f8,$f2
/* f075350: c7a805e4 */ lwc1 $f8,0x5e4($sp)
/* f075354: 46043280 */ add.s $f10,$f6,$f4
/* f075358: e7aa05dc */ swc1 $f10,0x5dc($sp)
/* f07535c: c606000c */ lwc1 $f6,0xc($s0)
/* f075360: 46023102 */ mul.s $f4,$f6,$f2
/* f075364: 46044280 */ add.s $f10,$f8,$f4
/* f075368: 0c005755 */ jal mtx3ToMtx4
/* f07536c: e7aa05e4 */ swc1 $f10,0x5e4($sp)
/* f075370: 26050020 */ addiu $a1,$s0,0x20
/* f075374: 3c06800a */ lui $a2,%hi(g_Vars+0x34)
/* f075378: 8cc69ff4 */ lw $a2,%lo(g_Vars+0x34)($a2)
/* f07537c: afa50064 */ sw $a1,0x64($sp)
/* f075380: 0fc259a6 */ jal func0f096698
/* f075384: 27a4030c */ addiu $a0,$sp,0x30c
/* f075388: 27a4030c */ addiu $a0,$sp,0x30c
/* f07538c: 0c005768 */ jal mtx4ToMtx3
/* f075390: 8fa50074 */ lw $a1,0x74($sp)
/* f075394: c6460008 */ lwc1 $f6,0x8($s2)
/* f075398: 26440028 */ addiu $a0,$s2,0x28
/* f07539c: 27a505b8 */ addiu $a1,$sp,0x5b8
/* f0753a0: e7a605c8 */ swc1 $f6,0x5c8($sp)
/* f0753a4: c648000c */ lwc1 $f8,0xc($s2)
/* f0753a8: e7a805cc */ swc1 $f8,0x5cc($sp)
/* f0753ac: c6440010 */ lwc1 $f4,0x10($s2)
/* f0753b0: afa4006c */ sw $a0,0x6c($sp)
/* f0753b4: 0fc195e9 */ jal roomsCopy
/* f0753b8: e7a405d0 */ swc1 $f4,0x5d0($sp)
/* f0753bc: 8e040088 */ lw $a0,0x88($s0)
/* f0753c0: 50800004 */ beqzl $a0,.L0f0753d4
/* f0753c4: 8e0c0000 */ lw $t4,0x0($s0)
/* f0753c8: 0fc1905e */ jal propSetPerimEnabled
/* f0753cc: 00002825 */ or $a1,$zero,$zero
/* f0753d0: 8e0c0000 */ lw $t4,0x0($s0)
.L0f0753d4:
/* f0753d4: 318f0004 */ andi $t7,$t4,0x4
/* f0753d8: 11e00007 */ beqz $t7,.L0f0753f8
/* f0753dc: 02202025 */ or $a0,$s1,$zero
/* f0753e0: 27a505dc */ addiu $a1,$sp,0x5dc
/* f0753e4: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f0753e8: 0fc1b340 */ jal func0f06cd00
/* f0753ec: 27a705f4 */ addiu $a3,$sp,0x5f4
/* f0753f0: 10000007 */ b .L0f075410
/* f0753f4: afa20600 */ sw $v0,0x600($sp)
.L0f0753f8:
/* f0753f8: 02202025 */ or $a0,$s1,$zero
/* f0753fc: 27a505dc */ addiu $a1,$sp,0x5dc
/* f075400: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f075404: 0fc1b4df */ jal func0f06d37c
/* f075408: 27a705f4 */ addiu $a3,$sp,0x5f4
/* f07540c: afa20600 */ sw $v0,0x600($sp)
.L0f075410:
/* f075410: 8e040088 */ lw $a0,0x88($s0)
/* f075414: 50800004 */ beqzl $a0,.L0f075428
/* f075418: 240e0001 */ addiu $t6,$zero,0x1
/* f07541c: 0fc1905e */ jal propSetPerimEnabled
/* f075420: 24050001 */ addiu $a1,$zero,0x1
/* f075424: 240e0001 */ addiu $t6,$zero,0x1
.L0f075428:
/* f075428: afae05d8 */ sw $t6,0x5d8($sp)
/* f07542c: 8e190000 */ lw $t9,0x0($s0)
/* f075430: 33380004 */ andi $t8,$t9,0x4
/* f075434: 53000318 */ beqzl $t8,.L0f076098
/* f075438: 8fae034c */ lw $t6,0x34c($sp)
/* f07543c: 8fa90600 */ lw $t1,0x600($sp)
/* f075440: 3c038007 */ lui $v1,%hi(g_EmbedProp)
/* f075444: 552002da */ bnezl $t1,.L0f075fb0
/* f075448: 8faa034c */ lw $t2,0x34c($sp)
/* f07544c: 8c639930 */ lw $v1,%lo(g_EmbedProp)($v1)
/* f075450: afa001f8 */ sw $zero,0x1f8($sp)
/* f075454: afa001f4 */ sw $zero,0x1f4($sp)
/* f075458: 5060000a */ beqzl $v1,.L0f075484
/* f07545c: 92220003 */ lbu $v0,0x3($s1)
/* f075460: afa301f4 */ sw $v1,0x1f4($sp)
/* f075464: 8c620018 */ lw $v0,0x18($v1)
/* f075468: 10400005 */ beqz $v0,.L0f075480
/* f07546c: 00401825 */ or $v1,$v0,$zero
.L0f075470:
/* f075470: 8c420018 */ lw $v0,0x18($v0)
/* f075474: 5440fffe */ bnezl $v0,.L0f075470
/* f075478: 00401825 */ or $v1,$v0,$zero
/* f07547c: afa301f4 */ sw $v1,0x1f4($sp)
.L0f075480:
/* f075480: 92220003 */ lbu $v0,0x3($s1)
.L0f075484:
/* f075484: 2401000d */ addiu $at,$zero,0xd
/* f075488: 8faa01f4 */ lw $t2,0x1f4($sp)
/* f07548c: 54410006 */ bnel $v0,$at,.L0f0754a8
/* f075490: 24010008 */ addiu $at,$zero,0x8
/* f075494: 15400030 */ bnez $t2,.L0f075558
/* f075498: 240b0001 */ addiu $t3,$zero,0x1
/* f07549c: 1000002e */ b .L0f075558
/* f0754a0: afab01f8 */ sw $t3,0x1f8($sp)
/* f0754a4: 24010008 */ addiu $at,$zero,0x8
.L0f0754a8:
/* f0754a8: 5441002c */ bnel $v0,$at,.L0f07555c
/* f0754ac: 8fb801f8 */ lw $t8,0x1f8($sp)
/* f0754b0: 9227005c */ lbu $a3,0x5c($s1)
/* f0754b4: 24010022 */ addiu $at,$zero,0x22
/* f0754b8: 10e10016 */ beq $a3,$at,.L0f075514
/* f0754bc: 24010020 */ addiu $at,$zero,0x20
/* f0754c0: 10e10014 */ beq $a3,$at,.L0f075514
/* f0754c4: 24010021 */ addiu $at,$zero,0x21
/* f0754c8: 10e10012 */ beq $a3,$at,.L0f075514
/* f0754cc: 2401003d */ addiu $at,$zero,0x3d
/* f0754d0: 10e10010 */ beq $a3,$at,.L0f075514
/* f0754d4: 2401003e */ addiu $at,$zero,0x3e
/* f0754d8: 10e1000e */ beq $a3,$at,.L0f075514
/* f0754dc: 2401003f */ addiu $at,$zero,0x3f
/* f0754e0: 10e1000c */ beq $a3,$at,.L0f075514
/* f0754e4: 24010056 */ addiu $at,$zero,0x56
/* f0754e8: 10e1000a */ beq $a3,$at,.L0f075514
/* f0754ec: 2401001a */ addiu $at,$zero,0x1a
/* f0754f0: 10e10008 */ beq $a3,$at,.L0f075514
/* f0754f4: 24010035 */ addiu $at,$zero,0x35
/* f0754f8: 10e10006 */ beq $a3,$at,.L0f075514
/* f0754fc: 2624005c */ addiu $a0,$s1,0x5c
/* f075500: 0fc2c7aa */ jal gsetHasFunctionFlags
/* f075504: 24050100 */ addiu $a1,$zero,0x100
/* f075508: 50400014 */ beqzl $v0,.L0f07555c
/* f07550c: 8fb801f8 */ lw $t8,0x1f8($sp)
/* f075510: 9227005c */ lbu $a3,0x5c($s1)
.L0f075514:
/* f075514: 240c0001 */ addiu $t4,$zero,0x1
/* f075518: 24010055 */ addiu $at,$zero,0x55
/* f07551c: 14e1000e */ bne $a3,$at,.L0f075558
/* f075520: afac01f8 */ sw $t4,0x1f8($sp)
/* f075524: 922f005f */ lbu $t7,0x5f($s1)
/* f075528: 24010001 */ addiu $at,$zero,0x1
/* f07552c: 55e1000b */ bnel $t7,$at,.L0f07555c
/* f075530: 8fb801f8 */ lw $t8,0x1f8($sp)
/* f075534: 862e0062 */ lh $t6,0x62($s1)
/* f075538: 24010001 */ addiu $at,$zero,0x1
/* f07553c: 241901e0 */ addiu $t9,$zero,0x1e0
/* f075540: 55c10005 */ bnel $t6,$at,.L0f075558
/* f075544: a6390062 */ sh $t9,0x62($s1)
/* f075548: afa001f8 */ sw $zero,0x1f8($sp)
/* f07554c: 10000002 */ b .L0f075558
/* f075550: a6200062 */ sh $zero,0x62($s1)
/* f075554: a6390062 */ sh $t9,0x62($s1)
.L0f075558:
/* f075558: 8fb801f8 */ lw $t8,0x1f8($sp)
.L0f07555c:
/* f07555c: 00004025 */ or $t0,$zero,$zero
/* f075560: 53000071 */ beqzl $t8,.L0f075728
/* f075564: 8fae034c */ lw $t6,0x34c($sp)
/* f075568: 92290003 */ lbu $t1,0x3($s1)
/* f07556c: 3c038007 */ lui $v1,%hi(g_EmbedProp)
/* f075570: 24010008 */ addiu $at,$zero,0x8
/* f075574: 15210002 */ bne $t1,$at,.L0f075580
/* f075578: 8c639930 */ lw $v1,%lo(g_EmbedProp)($v1)
/* f07557c: 02204025 */ or $t0,$s1,$zero
.L0f075580:
/* f075580: 50600017 */ beqzl $v1,.L0f0755e0
/* f075584: 8faa01f4 */ lw $t2,0x1f4($sp)
/* f075588: 90620000 */ lbu $v0,0x0($v1)
/* f07558c: 24010001 */ addiu $at,$zero,0x1
/* f075590: 10410005 */ beq $v0,$at,.L0f0755a8
/* f075594: 24010004 */ addiu $at,$zero,0x4
/* f075598: 10410003 */ beq $v0,$at,.L0f0755a8
/* f07559c: 24010002 */ addiu $at,$zero,0x2
/* f0755a0: 5441000f */ bnel $v0,$at,.L0f0755e0
/* f0755a4: 8faa01f4 */ lw $t2,0x1f4($sp)
.L0f0755a8:
/* f0755a8: 1100000c */ beqz $t0,.L0f0755dc
/* f0755ac: 8c640004 */ lw $a0,0x4($v1)
/* f0755b0: 9102005c */ lbu $v0,0x5c($t0)
/* f0755b4: 24010056 */ addiu $at,$zero,0x56
/* f0755b8: 10410003 */ beq $v0,$at,.L0f0755c8
/* f0755bc: 2401001a */ addiu $at,$zero,0x1a
/* f0755c0: 54410007 */ bnel $v0,$at,.L0f0755e0
/* f0755c4: 8faa01f4 */ lw $t2,0x1f4($sp)
.L0f0755c8:
/* f0755c8: 908d0003 */ lbu $t5,0x3($a0)
/* f0755cc: 24010008 */ addiu $at,$zero,0x8
/* f0755d0: 55a10003 */ bnel $t5,$at,.L0f0755e0
/* f0755d4: 8faa01f4 */ lw $t2,0x1f4($sp)
/* f0755d8: afa001f8 */ sw $zero,0x1f8($sp)
.L0f0755dc:
/* f0755dc: 8faa01f4 */ lw $t2,0x1f4($sp)
.L0f0755e0:
/* f0755e0: 51400051 */ beqzl $t2,.L0f075728
/* f0755e4: 8fae034c */ lw $t6,0x34c($sp)
/* f0755e8: 91420000 */ lbu $v0,0x0($t2)
/* f0755ec: 24010001 */ addiu $at,$zero,0x1
/* f0755f0: 8fab01f4 */ lw $t3,0x1f4($sp)
/* f0755f4: 10410006 */ beq $v0,$at,.L0f075610
/* f0755f8: 3c098007 */ lui $t1,%hi(var80069944)
/* f0755fc: 24010004 */ addiu $at,$zero,0x4
/* f075600: 10410003 */ beq $v0,$at,.L0f075610
/* f075604: 24010002 */ addiu $at,$zero,0x2
/* f075608: 5441003a */ bnel $v0,$at,.L0f0756f4
/* f07560c: 24010003 */ addiu $at,$zero,0x3
.L0f075610:
/* f075610: 8d630004 */ lw $v1,0x4($t3)
/* f075614: 8c6c0040 */ lw $t4,0x40($v1)
/* f075618: 318f0080 */ andi $t7,$t4,0x80
/* f07561c: 11e00007 */ beqz $t7,.L0f07563c
/* f075620: 00000000 */ nop
/* f075624: 8c6e0048 */ lw $t6,0x48($v1)
/* f075628: 8dd90000 */ lw $t9,0x0($t6)
/* f07562c: 33380800 */ andi $t8,$t9,0x800
/* f075630: 17000002 */ bnez $t8,.L0f07563c
/* f075634: 00000000 */ nop
/* f075638: afa001f8 */ sw $zero,0x1f8($sp)
.L0f07563c:
/* f07563c: 8d299944 */ lw $t1,%lo(var80069944)($t1)
/* f075640: 24012710 */ addiu $at,$zero,0x2710
/* f075644: 15210002 */ bne $t1,$at,.L0f075650
/* f075648: 00000000 */ nop
/* f07564c: afa001f8 */ sw $zero,0x1f8($sp)
.L0f075650:
/* f075650: 51000035 */ beqzl $t0,.L0f075728
/* f075654: 8fae034c */ lw $t6,0x34c($sp)
/* f075658: 9102005c */ lbu $v0,0x5c($t0)
/* f07565c: 24010056 */ addiu $at,$zero,0x56
/* f075660: 10410003 */ beq $v0,$at,.L0f075670
/* f075664: 2401001a */ addiu $at,$zero,0x1a
/* f075668: 5441002f */ bnel $v0,$at,.L0f075728
/* f07566c: 8fae034c */ lw $t6,0x34c($sp)
.L0f075670:
/* f075670: 90620003 */ lbu $v0,0x3($v1)
/* f075674: 2401002a */ addiu $at,$zero,0x2a
/* f075678: 26440008 */ addiu $a0,$s2,0x8
/* f07567c: 10410003 */ beq $v0,$at,.L0f07568c
/* f075680: 8fa5006c */ lw $a1,0x6c($sp)
/* f075684: 2401002f */ addiu $at,$zero,0x2f
/* f075688: 14410026 */ bne $v0,$at,.L0f075724
.L0f07568c:
/* f07568c: 2406ffff */ addiu $a2,$zero,-1
/* f075690: afa301e4 */ sw $v1,0x1e4($sp)
/* f075694: afa40070 */ sw $a0,0x70($sp)
/* f075698: 0fc2a101 */ jal bgunPlayGlassHitSound
/* f07569c: afa801ec */ sw $t0,0x1ec($sp)
/* f0756a0: 8fa401e4 */ lw $a0,0x1e4($sp)
/* f0756a4: 8fa801ec */ lw $t0,0x1ec($sp)
/* f0756a8: 3c0542c8 */ lui $a1,0x42c8
/* f0756ac: 8c8d000c */ lw $t5,0xc($a0)
/* f0756b0: 8fa60070 */ lw $a2,0x70($sp)
/* f0756b4: 3c0b800a */ lui $t3,%hi(g_Vars+0x28c)
/* f0756b8: 31aa4000 */ andi $t2,$t5,0x4000
/* f0756bc: 5540001a */ bnezl $t2,.L0f075728
/* f0756c0: 8fae034c */ lw $t6,0x34c($sp)
/* f0756c4: 8d6ba24c */ lw $t3,%lo(g_Vars+0x28c)($t3)
/* f0756c8: 9107005c */ lbu $a3,0x5c($t0)
/* f0756cc: afa001f8 */ sw $zero,0x1f8($sp)
/* f0756d0: 0fc2149c */ jal objTakeGunfire
/* f0756d4: afab0010 */ sw $t3,0x10($sp)
/* f0756d8: 8fa401f4 */ lw $a0,0x1f4($sp)
/* f0756dc: 0fc1c1a6 */ jal objDropRecursively
/* f0756e0: 00002825 */ or $a1,$zero,$zero
/* f0756e4: 240c0001 */ addiu $t4,$zero,0x1
/* f0756e8: 1000000e */ b .L0f075724
/* f0756ec: afac034c */ sw $t4,0x34c($sp)
/* f0756f0: 24010003 */ addiu $at,$zero,0x3
.L0f0756f4:
/* f0756f4: 10410004 */ beq $v0,$at,.L0f075708
/* f0756f8: 8faf01f4 */ lw $t7,0x1f4($sp)
/* f0756fc: 24010006 */ addiu $at,$zero,0x6
/* f075700: 54410009 */ bnel $v0,$at,.L0f075728
/* f075704: 8fae034c */ lw $t6,0x34c($sp)
.L0f075708:
/* f075708: 0fc0cfe8 */ jal chrGetShield
/* f07570c: 8de40004 */ lw $a0,0x4($t7)
/* f075710: 4600a03c */ c.lt.s $f20,$f0
/* f075714: 00000000 */ nop
/* f075718: 45020003 */ bc1fl .L0f075728
/* f07571c: 8fae034c */ lw $t6,0x34c($sp)
/* f075720: afa001f8 */ sw $zero,0x1f8($sp)
.L0f075724:
/* f075724: 8fae034c */ lw $t6,0x34c($sp)
.L0f075728:
/* f075728: 3c198007 */ lui $t9,%hi(g_EmbedProp)
/* f07572c: 55c00163 */ bnezl $t6,.L0f075cbc
/* f075730: 8faf034c */ lw $t7,0x34c($sp)
/* f075734: 8f399930 */ lw $t9,%lo(g_EmbedProp)($t9)
/* f075738: 1320015f */ beqz $t9,.L0f075cb8
/* f07573c: afb90068 */ sw $t9,0x68($sp)
/* f075740: 92380003 */ lbu $t8,0x3($s1)
/* f075744: 24010008 */ addiu $at,$zero,0x8
/* f075748: 5701015c */ bnel $t8,$at,.L0f075cbc
/* f07574c: 8faf034c */ lw $t7,0x34c($sp)
/* f075750: 9227005c */ lbu $a3,0x5c($s1)
/* f075754: 24010056 */ addiu $at,$zero,0x56
/* f075758: 8fa901f4 */ lw $t1,0x1f4($sp)
/* f07575c: 10e10003 */ beq $a3,$at,.L0f07576c
/* f075760: 2401001a */ addiu $at,$zero,0x1a
/* f075764: 54e100aa */ bnel $a3,$at,.L0f075a10
/* f075768: 24010053 */ addiu $at,$zero,0x53
.L0f07576c:
/* f07576c: 91220000 */ lbu $v0,0x0($t1)
/* f075770: 24010003 */ addiu $at,$zero,0x3
/* f075774: 10410006 */ beq $v0,$at,.L0f075790
/* f075778: 24010006 */ addiu $at,$zero,0x6
/* f07577c: 54410072 */ bnel $v0,$at,.L0f075948
/* f075780: 24010001 */ addiu $at,$zero,0x1
/* f075784: 8d2d0004 */ lw $t5,0x4($t1)
/* f075788: 51a0006f */ beqzl $t5,.L0f075948
/* f07578c: 24010001 */ addiu $at,$zero,0x1
.L0f075790:
/* f075790: 8e220048 */ lw $v0,0x48($s1)
/* f075794: 8faa01f4 */ lw $t2,0x1f4($sp)
/* f075798: 8c4b0000 */ lw $t3,0x0($v0)
/* f07579c: 8d440004 */ lw $a0,0x4($t2)
/* f0757a0: 316c0001 */ andi $t4,$t3,0x1
/* f0757a4: 51800145 */ beqzl $t4,.L0f075cbc
/* f0757a8: 8faf034c */ lw $t7,0x34c($sp)
/* f0757ac: 8c4f0090 */ lw $t7,0x90($v0)
/* f0757b0: 2627005c */ addiu $a3,$s1,0x5c
/* f0757b4: 5de00141 */ bgtzl $t7,.L0f075cbc
/* f0757b8: 8faf034c */ lw $t7,0x34c($sp)
/* f0757bc: 8c4e0088 */ lw $t6,0x88($v0)
/* f0757c0: afa70070 */ sw $a3,0x70($sp)
/* f0757c4: afa401dc */ sw $a0,0x1dc($sp)
/* f0757c8: 0fc0cfe8 */ jal chrGetShield
/* f0757cc: afae01d4 */ sw $t6,0x1d4($sp)
/* f0757d0: 8fa40070 */ lw $a0,0x70($sp)
/* f0757d4: 0fc2c74a */ jal gsetGetDamage
/* f0757d8: e7a001d8 */ swc1 $f0,0x1d8($sp)
/* f0757dc: 3c188007 */ lui $t8,%hi(g_EmbedHitPart)
/* f0757e0: 3c098007 */ lui $t1,%hi(g_EmbedProp)
/* f0757e4: 3c0d800a */ lui $t5,%hi(g_EmbedNode)
/* f0757e8: 3c0a800a */ lui $t2,%hi(g_EmbedModel)
/* f0757ec: 3c0b8007 */ lui $t3,%hi(var80069938)
/* f0757f0: 8d6b9938 */ lw $t3,%lo(var80069938)($t3)
/* f0757f4: 8d4ace70 */ lw $t2,%lo(g_EmbedModel)($t2)
/* f0757f8: 8dadce74 */ lw $t5,%lo(g_EmbedNode)($t5)
/* f0757fc: 8d299930 */ lw $t1,%lo(g_EmbedProp)($t1)
/* f075800: 8f189934 */ lw $t8,%lo(g_EmbedHitPart)($t8)
/* f075804: 8fb901d4 */ lw $t9,0x1d4($sp)
/* f075808: 3c0c8007 */ lui $t4,%hi(var8006993c)
/* f07580c: 258c993c */ addiu $t4,$t4,%lo(var8006993c)
/* f075810: 44050000 */ mfc1 $a1,$f0
/* f075814: 3c06800a */ lui $a2,%hi(var8009ce78)
/* f075818: 24c6ce78 */ addiu $a2,$a2,%lo(var8009ce78)
/* f07581c: afac0028 */ sw $t4,0x28($sp)
/* f075820: 8fa70070 */ lw $a3,0x70($sp)
/* f075824: 8fa401dc */ lw $a0,0x1dc($sp)
/* f075828: afab0024 */ sw $t3,0x24($sp)
/* f07582c: afaa0020 */ sw $t2,0x20($sp)
/* f075830: afad001c */ sw $t5,0x1c($sp)
/* f075834: afa90018 */ sw $t1,0x18($sp)
/* f075838: afb80014 */ sw $t8,0x14($sp)
/* f07583c: 0fc0d077 */ jal func0f0341dc
/* f075840: afb90010 */ sw $t9,0x10($sp)
/* f075844: c7aa01d8 */ lwc1 $f10,0x1d8($sp)
/* f075848: 8faf01d4 */ lw $t7,0x1d4($sp)
/* f07584c: 3c058007 */ lui $a1,%hi(g_EmbedProp)
/* f075850: 4614503e */ c.le.s $f10,$f20
/* f075854: 3c068007 */ lui $a2,%hi(g_EmbedHitPart)
/* f075858: 27a705e8 */ addiu $a3,$sp,0x5e8
/* f07585c: 27b905f4 */ addiu $t9,$sp,0x5f4
/* f075860: 45020116 */ bc1fl .L0f075cbc
/* f075864: 8faf034c */ lw $t7,0x34c($sp)
/* f075868: 51e00005 */ beqzl $t7,.L0f075880
/* f07586c: afa00088 */ sw $zero,0x88($sp)
/* f075870: 8dee0004 */ lw $t6,0x4($t7)
/* f075874: 10000002 */ b .L0f075880
/* f075878: afae0088 */ sw $t6,0x88($sp)
/* f07587c: afa00088 */ sw $zero,0x88($sp)
.L0f075880:
/* f075880: 8fb80088 */ lw $t8,0x88($sp)
/* f075884: 8fa401dc */ lw $a0,0x1dc($sp)
/* f075888: 8ca59930 */ lw $a1,%lo(g_EmbedProp)($a1)
/* f07588c: 8cc69934 */ lw $a2,%lo(g_EmbedHitPart)($a2)
/* f075890: afb90010 */ sw $t9,0x10($sp)
/* f075894: 0fc097a9 */ jal chrEmitSparks
/* f075898: afb80014 */ sw $t8,0x14($sp)
/* f07589c: 3c098007 */ lui $t1,%hi(g_EmbedProp)
/* f0758a0: 8d299930 */ lw $t1,%lo(g_EmbedProp)($t1)
/* f0758a4: 3c04800a */ lui $a0,%hi(g_EmbedModel)
/* f0758a8: 912d0001 */ lbu $t5,0x1($t1)
/* f0758ac: 31aa0002 */ andi $t2,$t5,0x2
/* f0758b0: 51400102 */ beqzl $t2,.L0f075cbc
/* f0758b4: 8faf034c */ lw $t7,0x34c($sp)
/* f0758b8: 8c84ce70 */ lw $a0,%lo(g_EmbedModel)($a0)
/* f0758bc: 3c028007 */ lui $v0,%hi(g_EmbedHitPart)
/* f0758c0: 508000fe */ beqzl $a0,.L0f075cbc
/* f0758c4: 8faf034c */ lw $t7,0x34c($sp)
/* f0758c8: 8c429934 */ lw $v0,%lo(g_EmbedHitPart)($v0)
/* f0758cc: 24010064 */ addiu $at,$zero,0x64
/* f0758d0: 104100f9 */ beq $v0,$at,.L0f075cb8
/* f0758d4: 2401006e */ addiu $at,$zero,0x6e
/* f0758d8: 104100f7 */ beq $v0,$at,.L0f075cb8
/* f0758dc: 3c05800a */ lui $a1,%hi(g_EmbedNode)
/* f0758e0: 8ca5ce74 */ lw $a1,%lo(g_EmbedNode)($a1)
/* f0758e4: 0c006973 */ jal model0001a5cc
/* f0758e8: 00003025 */ or $a2,$zero,$zero
/* f0758ec: 0fc2d5be */ jal camGetWorldToScreenMtxf
/* f0758f0: afa20184 */ sw $v0,0x184($sp)
/* f0758f4: 00402025 */ or $a0,$v0,$zero
/* f0758f8: 27a505e8 */ addiu $a1,$sp,0x5e8
/* f0758fc: 0c0056da */ jal mtx4TransformVec
/* f075900: 27a601c8 */ addiu $a2,$sp,0x1c8
/* f075904: 8fa40184 */ lw $a0,0x184($sp)
/* f075908: 0c005c67 */ jal mtx0001719c
/* f07590c: 27a50188 */ addiu $a1,$sp,0x188
/* f075910: 27a40188 */ addiu $a0,$sp,0x188
/* f075914: 0c0056d9 */ jal mtx4TransformVecInPlace
/* f075918: 27a501c8 */ addiu $a1,$sp,0x1c8
/* f07591c: 3c04800a */ lui $a0,%hi(g_EmbedModel)
/* f075920: 3c058007 */ lui $a1,%hi(g_EmbedHitPart)
/* f075924: 3c06800a */ lui $a2,%hi(g_EmbedNode)
/* f075928: 8cc6ce74 */ lw $a2,%lo(g_EmbedNode)($a2)
/* f07592c: 8ca59934 */ lw $a1,%lo(g_EmbedHitPart)($a1)
/* f075930: 8c84ce70 */ lw $a0,%lo(g_EmbedModel)($a0)
/* f075934: 0fc09831 */ jal chr0f0260c4
/* f075938: 27a701c8 */ addiu $a3,$sp,0x1c8
/* f07593c: 100000df */ b .L0f075cbc
/* f075940: 8faf034c */ lw $t7,0x34c($sp)
/* f075944: 24010001 */ addiu $at,$zero,0x1
.L0f075948:
/* f075948: 144100db */ bne $v0,$at,.L0f075cb8
/* f07594c: 8fab01f4 */ lw $t3,0x1f4($sp)
/* f075950: 3c0f8007 */ lui $t7,%hi(var80069944)
/* f075954: 8def9944 */ lw $t7,%lo(var80069944)($t7)
/* f075958: 8d6c0004 */ lw $t4,0x4($t3)
/* f07595c: 24012710 */ addiu $at,$zero,0x2710
/* f075960: 15e1001a */ bne $t7,$at,.L0f0759cc
/* f075964: afac0180 */ sw $t4,0x180($sp)
/* f075968: 8d8e0010 */ lw $t6,0x10($t4)
/* f07596c: 8fa60068 */ lw $a2,0x68($sp)
/* f075970: 8fa401f4 */ lw $a0,0x1f4($sp)
/* f075974: 31d91000 */ andi $t9,$t6,0x1000
/* f075978: 13200005 */ beqz $t9,.L0f075990
/* f07597c: 3c07800a */ lui $a3,%hi(g_EmbedNode)
/* f075980: 3c014080 */ lui $at,0x4080
/* f075984: 44810000 */ mtc1 $at,$f0
/* f075988: 10000004 */ b .L0f07599c
/* f07598c: 00000000 */ nop
.L0f075990:
/* f075990: 3c014100 */ lui $at,0x4100
/* f075994: 44810000 */ mtc1 $at,$f0
/* f075998: 00000000 */ nop
.L0f07599c:
/* f07599c: 3c18800a */ lui $t8,%hi(g_EmbedModel)
/* f0759a0: 3c098007 */ lui $t1,%hi(var80069938)
/* f0759a4: 8d299938 */ lw $t1,%lo(var80069938)($t1)
/* f0759a8: 8f18ce70 */ lw $t8,%lo(g_EmbedModel)($t8)
/* f0759ac: 3c0d8007 */ lui $t5,%hi(var8006993c)
/* f0759b0: 25ad993c */ addiu $t5,$t5,%lo(var8006993c)
/* f0759b4: 44050000 */ mfc1 $a1,$f0
/* f0759b8: afad0018 */ sw $t5,0x18($sp)
/* f0759bc: 8ce7ce74 */ lw $a3,%lo(g_EmbedNode)($a3)
/* f0759c0: afa90014 */ sw $t1,0x14($sp)
/* f0759c4: 0fc0a3df */ jal shieldhitCreate
/* f0759c8: afb80010 */ sw $t8,0x10($sp)
.L0f0759cc:
/* f0759cc: 8faa0180 */ lw $t2,0x180($sp)
/* f0759d0: 2401014c */ addiu $at,$zero,0x14c
/* f0759d4: 3c0f8007 */ lui $t7,%hi(var80069944)
/* f0759d8: 854b0004 */ lh $t3,0x4($t2)
/* f0759dc: 556100b7 */ bnel $t3,$at,.L0f075cbc
/* f0759e0: 8faf034c */ lw $t7,0x34c($sp)
/* f0759e4: 8def9944 */ lw $t7,%lo(var80069944)($t7)
/* f0759e8: 24010b9e */ addiu $at,$zero,0xb9e
/* f0759ec: 01402025 */ or $a0,$t2,$zero
/* f0759f0: 55e100b2 */ bnel $t7,$at,.L0f075cbc
/* f0759f4: 8faf034c */ lw $t7,0x34c($sp)
/* f0759f8: 4406a000 */ mfc1 $a2,$f20
/* f0759fc: 0fc68330 */ jal frCalculateHit
/* f075a00: 27a505e8 */ addiu $a1,$sp,0x5e8
/* f075a04: 100000ad */ b .L0f075cbc
/* f075a08: 8faf034c */ lw $t7,0x34c($sp)
/* f075a0c: 24010053 */ addiu $at,$zero,0x53
.L0f075a10:
/* f075a10: 10e10003 */ beq $a3,$at,.L0f075a20
/* f075a14: 24010054 */ addiu $at,$zero,0x54
/* f075a18: 14e1006b */ bne $a3,$at,.L0f075bc8
/* f075a1c: 8fa901f4 */ lw $t1,0x1f4($sp)
.L0f075a20:
/* f075a20: 8e2c0040 */ lw $t4,0x40($s1)
/* f075a24: 3c01f000 */ lui $at,0xf000
/* f075a28: 8fb80068 */ lw $t8,0x68($sp)
/* f075a2c: 01817024 */ and $t6,$t4,$at
/* f075a30: 000ecf02 */ srl $t9,$t6,0x1c
/* f075a34: afb9017c */ sw $t9,0x17c($sp)
/* f075a38: 93020000 */ lbu $v0,0x0($t8)
/* f075a3c: 24010003 */ addiu $at,$zero,0x3
/* f075a40: 24090001 */ addiu $t1,$zero,0x1
/* f075a44: 10410006 */ beq $v0,$at,.L0f075a60
/* f075a48: afa9034c */ sw $t1,0x34c($sp)
/* f075a4c: 24010006 */ addiu $at,$zero,0x6
/* f075a50: 5441002b */ bnel $v0,$at,.L0f075b00
/* f075a54: 24010001 */ addiu $at,$zero,0x1
/* f075a58: 8f0d0004 */ lw $t5,0x4($t8)
/* f075a5c: 11a00027 */ beqz $t5,.L0f075afc
.L0f075a60:
/* f075a60: 3c0b800a */ lui $t3,%hi(g_Vars+0x318)
/* f075a64: 8d6ba2d8 */ lw $t3,%lo(g_Vars+0x318)($t3)
/* f075a68: 00001825 */ or $v1,$zero,$zero
/* f075a6c: 2627005c */ addiu $a3,$s1,0x5c
/* f075a70: 11600008 */ beqz $t3,.L0f075a94
/* f075a74: 8fa4017c */ lw $a0,0x17c($sp)
/* f075a78: afa00178 */ sw $zero,0x178($sp)
/* f075a7c: 0fc63410 */ jal mpGetChrFromPlayerIndex
/* f075a80: afa70070 */ sw $a3,0x70($sp)
/* f075a84: 8fa30178 */ lw $v1,0x178($sp)
/* f075a88: 10400002 */ beqz $v0,.L0f075a94
/* f075a8c: 8fa70070 */ lw $a3,0x70($sp)
/* f075a90: 8c43001c */ lw $v1,0x1c($v0)
.L0f075a94:
/* f075a94: 3c028007 */ lui $v0,%hi(g_EmbedProp)
/* f075a98: 8c429930 */ lw $v0,%lo(g_EmbedProp)($v0)
/* f075a9c: 3c0f8007 */ lui $t7,%hi(g_EmbedHitPart)
/* f075aa0: 3c0a800a */ lui $t2,%hi(g_EmbedNode)
/* f075aa4: 8c440004 */ lw $a0,0x4($v0)
/* f075aa8: 3c0c800a */ lui $t4,%hi(g_EmbedModel)
/* f075aac: 3c0e8007 */ lui $t6,%hi(var80069938)
/* f075ab0: 8dce9938 */ lw $t6,%lo(var80069938)($t6)
/* f075ab4: 8d8cce70 */ lw $t4,%lo(g_EmbedModel)($t4)
/* f075ab8: 8d4ace74 */ lw $t2,%lo(g_EmbedNode)($t2)
/* f075abc: 8def9934 */ lw $t7,%lo(g_EmbedHitPart)($t7)
/* f075ac0: 3c198007 */ lui $t9,%hi(var8006993c)
/* f075ac4: 2739993c */ addiu $t9,$t9,%lo(var8006993c)
/* f075ac8: 3c06800a */ lui $a2,%hi(var8009ce78)
/* f075acc: 24c6ce78 */ addiu $a2,$a2,%lo(var8009ce78)
/* f075ad0: afb90028 */ sw $t9,0x28($sp)
/* f075ad4: afa30010 */ sw $v1,0x10($sp)
/* f075ad8: 3c054000 */ lui $a1,0x4000
/* f075adc: afa20018 */ sw $v0,0x18($sp)
/* f075ae0: afae0024 */ sw $t6,0x24($sp)
/* f075ae4: afac0020 */ sw $t4,0x20($sp)
/* f075ae8: afaa001c */ sw $t2,0x1c($sp)
/* f075aec: 0fc0d077 */ jal func0f0341dc
/* f075af0: afaf0014 */ sw $t7,0x14($sp)
/* f075af4: 1000002f */ b .L0f075bb4
/* f075af8: 02202025 */ or $a0,$s1,$zero
.L0f075afc:
/* f075afc: 24010001 */ addiu $at,$zero,0x1
.L0f075b00:
/* f075b00: 10410003 */ beq $v0,$at,.L0f075b10
/* f075b04: 8fa60068 */ lw $a2,0x68($sp)
/* f075b08: 24010004 */ addiu $at,$zero,0x4
/* f075b0c: 14410028 */ bne $v0,$at,.L0f075bb0
.L0f075b10:
/* f075b10: 3c188007 */ lui $t8,%hi(var80069944)
/* f075b14: 8f189944 */ lw $t8,%lo(var80069944)($t8)
/* f075b18: 26490008 */ addiu $t1,$s2,0x8
/* f075b1c: afa90070 */ sw $t1,0x70($sp)
/* f075b20: 24012710 */ addiu $at,$zero,0x2710
/* f075b24: 1701001d */ bne $t8,$at,.L0f075b9c
/* f075b28: 8cc40004 */ lw $a0,0x4($a2)
/* f075b2c: 8c8d0010 */ lw $t5,0x10($a0)
/* f075b30: 8fa401f4 */ lw $a0,0x1f4($sp)
/* f075b34: 3c07800a */ lui $a3,%hi(g_EmbedNode)
/* f075b38: 31ab1000 */ andi $t3,$t5,0x1000
/* f075b3c: 11600005 */ beqz $t3,.L0f075b54
/* f075b40: 3c0f800a */ lui $t7,%hi(g_EmbedModel)
/* f075b44: 3c014080 */ lui $at,0x4080
/* f075b48: 44810000 */ mtc1 $at,$f0
/* f075b4c: 10000004 */ b .L0f075b60
/* f075b50: 00000000 */ nop
.L0f075b54:
/* f075b54: 3c014100 */ lui $at,0x4100
/* f075b58: 44810000 */ mtc1 $at,$f0
/* f075b5c: 00000000 */ nop
.L0f075b60:
/* f075b60: 3c0a8007 */ lui $t2,%hi(var80069938)
/* f075b64: 8d4a9938 */ lw $t2,%lo(var80069938)($t2)
/* f075b68: 8defce70 */ lw $t7,%lo(g_EmbedModel)($t7)
/* f075b6c: 3c0c8007 */ lui $t4,%hi(var8006993c)
/* f075b70: 258c993c */ addiu $t4,$t4,%lo(var8006993c)
/* f075b74: 44050000 */ mfc1 $a1,$f0
/* f075b78: afac0018 */ sw $t4,0x18($sp)
/* f075b7c: 8ce7ce74 */ lw $a3,%lo(g_EmbedNode)($a3)
/* f075b80: afaa0014 */ sw $t2,0x14($sp)
/* f075b84: 0fc0a3df */ jal shieldhitCreate
/* f075b88: afaf0010 */ sw $t7,0x10($sp)
/* f075b8c: 3c0e8007 */ lui $t6,%hi(g_EmbedProp)
/* f075b90: 8dce9930 */ lw $t6,%lo(g_EmbedProp)($t6)
/* f075b94: 9227005c */ lbu $a3,0x5c($s1)
/* f075b98: 8dc40004 */ lw $a0,0x4($t6)
.L0f075b9c:
/* f075b9c: 8fb9017c */ lw $t9,0x17c($sp)
/* f075ba0: 3c0542c8 */ lui $a1,0x42c8
/* f075ba4: 8fa60070 */ lw $a2,0x70($sp)
/* f075ba8: 0fc214ab */ jal objDamage
/* f075bac: afb90010 */ sw $t9,0x10($sp)
.L0f075bb0:
/* f075bb0: 02202025 */ or $a0,$s1,$zero
.L0f075bb4:
/* f075bb4: 24050001 */ addiu $a1,$zero,0x1
/* f075bb8: 0fc1a71c */ jal func0f069c70
/* f075bbc: 24060001 */ addiu $a2,$zero,0x1
/* f075bc0: 1000003d */ b .L0f075cb8
/* f075bc4: a6200062 */ sh $zero,0x62($s1)
.L0f075bc8:
/* f075bc8: 91220000 */ lbu $v0,0x0($t1)
/* f075bcc: 24010003 */ addiu $at,$zero,0x3
/* f075bd0: 8fa60068 */ lw $a2,0x68($sp)
/* f075bd4: 10410006 */ beq $v0,$at,.L0f075bf0
/* f075bd8: 8fad01f4 */ lw $t5,0x1f4($sp)
/* f075bdc: 24010006 */ addiu $at,$zero,0x6
/* f075be0: 54410012 */ bnel $v0,$at,.L0f075c2c
/* f075be4: 24010001 */ addiu $at,$zero,0x1
/* f075be8: 8d380004 */ lw $t8,0x4($t1)
/* f075bec: 1300000e */ beqz $t8,.L0f075c28
.L0f075bf0:
/* f075bf0: 3c0b8007 */ lui $t3,%hi(var80069938)
/* f075bf4: 8d6b9938 */ lw $t3,%lo(var80069938)($t3)
/* f075bf8: 3c0f8007 */ lui $t7,%hi(var8006993c)
/* f075bfc: 8da40004 */ lw $a0,0x4($t5)
/* f075c00: 25ef993c */ addiu $t7,$t7,%lo(var8006993c)
/* f075c04: 3c05800a */ lui $a1,%hi(g_EmbedNode)
/* f075c08: 3c07800a */ lui $a3,%hi(g_EmbedModel)
/* f075c0c: 8ce7ce70 */ lw $a3,%lo(g_EmbedModel)($a3)
/* f075c10: 8ca5ce74 */ lw $a1,%lo(g_EmbedNode)($a1)
/* f075c14: afaf0014 */ sw $t7,0x14($sp)
/* f075c18: 0fc0d020 */ jal func0f034080
/* f075c1c: afab0010 */ sw $t3,0x10($sp)
/* f075c20: 10000026 */ b .L0f075cbc
/* f075c24: 8faf034c */ lw $t7,0x34c($sp)
.L0f075c28:
/* f075c28: 24010001 */ addiu $at,$zero,0x1
.L0f075c2c:
/* f075c2c: 10410004 */ beq $v0,$at,.L0f075c40
/* f075c30: 3c0a8007 */ lui $t2,%hi(var80069944)
/* f075c34: 24010004 */ addiu $at,$zero,0x4
/* f075c38: 54410020 */ bnel $v0,$at,.L0f075cbc
/* f075c3c: 8faf034c */ lw $t7,0x34c($sp)
.L0f075c40:
/* f075c40: 8d4a9944 */ lw $t2,%lo(var80069944)($t2)
/* f075c44: 24012710 */ addiu $at,$zero,0x2710
/* f075c48: 8fac01f4 */ lw $t4,0x1f4($sp)
/* f075c4c: 1541001a */ bne $t2,$at,.L0f075cb8
/* f075c50: 8fa60068 */ lw $a2,0x68($sp)
/* f075c54: 8d8e0004 */ lw $t6,0x4($t4)
/* f075c58: 8fa401f4 */ lw $a0,0x1f4($sp)
/* f075c5c: 3c07800a */ lui $a3,%hi(g_EmbedNode)
/* f075c60: 8dd90010 */ lw $t9,0x10($t6)
/* f075c64: 3c18800a */ lui $t8,%hi(g_EmbedModel)
/* f075c68: 3c0d8007 */ lui $t5,%hi(var80069938)
/* f075c6c: 33291000 */ andi $t1,$t9,0x1000
/* f075c70: 11200005 */ beqz $t1,.L0f075c88
/* f075c74: 3c0b8007 */ lui $t3,%hi(var8006993c)
/* f075c78: 3c014080 */ lui $at,0x4080
/* f075c7c: 44810000 */ mtc1 $at,$f0
/* f075c80: 10000004 */ b .L0f075c94
/* f075c84: 00000000 */ nop
.L0f075c88:
/* f075c88: 3c014100 */ lui $at,0x4100
/* f075c8c: 44810000 */ mtc1 $at,$f0
/* f075c90: 00000000 */ nop
.L0f075c94:
/* f075c94: 8f18ce70 */ lw $t8,%lo(g_EmbedModel)($t8)
/* f075c98: 8dad9938 */ lw $t5,%lo(var80069938)($t5)
/* f075c9c: 44050000 */ mfc1 $a1,$f0
/* f075ca0: 256b993c */ addiu $t3,$t3,%lo(var8006993c)
/* f075ca4: afab0018 */ sw $t3,0x18($sp)
/* f075ca8: 8ce7ce74 */ lw $a3,%lo(g_EmbedNode)($a3)
/* f075cac: afb80010 */ sw $t8,0x10($sp)
/* f075cb0: 0fc0a3df */ jal shieldhitCreate
/* f075cb4: afad0014 */ sw $t5,0x14($sp)
.L0f075cb8:
/* f075cb8: 8faf034c */ lw $t7,0x34c($sp)
.L0f075cbc:
/* f075cbc: 8faa01f8 */ lw $t2,0x1f8($sp)
/* f075cc0: 55e000bb */ bnezl $t7,.L0f075fb0
/* f075cc4: 8faa034c */ lw $t2,0x34c($sp)
/* f075cc8: 114000b8 */ beqz $t2,.L0f075fac
/* f075ccc: 240c0001 */ addiu $t4,$zero,0x1
/* f075cd0: afac034c */ sw $t4,0x34c($sp)
/* f075cd4: 02202025 */ or $a0,$s1,$zero
/* f075cd8: 24050001 */ addiu $a1,$zero,0x1
/* f075cdc: 0fc1a71c */ jal func0f069c70
/* f075ce0: 24060001 */ addiu $a2,$zero,0x1
/* f075ce4: 922e0003 */ lbu $t6,0x3($s1)
/* f075ce8: 24010008 */ addiu $at,$zero,0x8
/* f075cec: 55c100ab */ bnel $t6,$at,.L0f075f9c
/* f075cf0: 02402025 */ or $a0,$s2,$zero
/* f075cf4: 9227005c */ lbu $a3,0x5c($s1)
/* f075cf8: 24010056 */ addiu $at,$zero,0x56
/* f075cfc: 10e10003 */ beq $a3,$at,.L0f075d0c
/* f075d00: 2401001a */ addiu $at,$zero,0x1a
/* f075d04: 54e100a5 */ bnel $a3,$at,.L0f075f9c
/* f075d08: 02402025 */ or $a0,$s2,$zero
.L0f075d0c:
/* f075d0c: 8e390048 */ lw $t9,0x48($s1)
/* f075d10: 8f240088 */ lw $a0,0x88($t9)
/* f075d14: 5080006b */ beqzl $a0,.L0f075ec4
/* f075d18: 8fae01f4 */ lw $t6,0x1f4($sp)
/* f075d1c: 90890000 */ lbu $t1,0x0($a0)
/* f075d20: 24010006 */ addiu $at,$zero,0x6
/* f075d24: 3c18800a */ lui $t8,%hi(g_Vars+0x28c)
/* f075d28: 15210065 */ bne $t1,$at,.L0f075ec0
/* f075d2c: 2627005c */ addiu $a3,$s1,0x5c
/* f075d30: 8f18a24c */ lw $t8,%lo(g_Vars+0x28c)($t8)
/* f075d34: afa70070 */ sw $a3,0x70($sp)
/* f075d38: 0fc4a25f */ jal playermgrGetPlayerNumByProp
/* f075d3c: afb80164 */ sw $t8,0x164($sp)
/* f075d40: 0fc4a24b */ jal setCurrentPlayerNum
/* f075d44: 00402025 */ or $a0,$v0,$zero
/* f075d48: 8fa40070 */ lw $a0,0x70($sp)
/* f075d4c: 0fc2c108 */ jal mpstatsIncrementPlayerShotCount
/* f075d50: 00002825 */ or $a1,$zero,$zero
/* f075d54: 3c058007 */ lui $a1,%hi(g_EmbedProp)
/* f075d58: 8ca59930 */ lw $a1,%lo(g_EmbedProp)($a1)
/* f075d5c: 8fa70070 */ lw $a3,0x70($sp)
/* f075d60: 10a00055 */ beqz $a1,.L0f075eb8
/* f075d64: 00000000 */ nop
/* f075d68: 90a20000 */ lbu $v0,0x0($a1)
/* f075d6c: 24010001 */ addiu $at,$zero,0x1
/* f075d70: 5441000c */ bnel $v0,$at,.L0f075da4
/* f075d74: 24010003 */ addiu $at,$zero,0x3
/* f075d78: 8ca40004 */ lw $a0,0x4($a1)
/* f075d7c: 0fc21a6a */ jal objIsHealthy
/* f075d80: afa70070 */ sw $a3,0x70($sp)
/* f075d84: 1040004c */ beqz $v0,.L0f075eb8
/* f075d88: 8fa70070 */ lw $a3,0x70($sp)
/* f075d8c: 00e02025 */ or $a0,$a3,$zero
/* f075d90: 0fc2c108 */ jal mpstatsIncrementPlayerShotCount
/* f075d94: 24050006 */ addiu $a1,$zero,0x6
/* f075d98: 10000047 */ b .L0f075eb8
/* f075d9c: 00000000 */ nop
/* f075da0: 24010003 */ addiu $at,$zero,0x3
.L0f075da4:
/* f075da4: 10410003 */ beq $v0,$at,.L0f075db4
/* f075da8: 24010006 */ addiu $at,$zero,0x6
/* f075dac: 14410042 */ bne $v0,$at,.L0f075eb8
/* f075db0: 00000000 */ nop
.L0f075db4:
/* f075db4: 8ca30004 */ lw $v1,0x4($a1)
/* f075db8: 00003025 */ or $a2,$zero,$zero
/* f075dbc: 00a02025 */ or $a0,$a1,$zero
/* f075dc0: 50600007 */ beqzl $v1,.L0f075de0
/* f075dc4: 24010006 */ addiu $at,$zero,0x6
/* f075dc8: 806d0007 */ lb $t5,0x7($v1)
/* f075dcc: 24010005 */ addiu $at,$zero,0x5
/* f075dd0: 55a10003 */ bnel $t5,$at,.L0f075de0
/* f075dd4: 24010006 */ addiu $at,$zero,0x6
/* f075dd8: 24060001 */ addiu $a2,$zero,0x1
/* f075ddc: 24010006 */ addiu $at,$zero,0x6
.L0f075de0:
/* f075de0: 1441000e */ bne $v0,$at,.L0f075e1c
/* f075de4: 00000000 */ nop
/* f075de8: afa6015c */ sw $a2,0x15c($sp)
/* f075dec: 0fc4a25f */ jal playermgrGetPlayerNumByProp
/* f075df0: afa70070 */ sw $a3,0x70($sp)
/* f075df4: 00025880 */ sll $t3,$v0,0x2
/* f075df8: 3c0f800a */ lui $t7,%hi(g_Vars+0x64)
/* f075dfc: 01eb7821 */ addu $t7,$t7,$t3
/* f075e00: 8defa024 */ lw $t7,%lo(g_Vars+0x64)($t7)
/* f075e04: 8fa6015c */ lw $a2,0x15c($sp)
/* f075e08: 8fa70070 */ lw $a3,0x70($sp)
/* f075e0c: 8dea00d8 */ lw $t2,0xd8($t7)
/* f075e10: 11400002 */ beqz $t2,.L0f075e1c
/* f075e14: 00000000 */ nop
/* f075e18: 24060001 */ addiu $a2,$zero,0x1
.L0f075e1c:
/* f075e1c: 14c00026 */ bnez $a2,.L0f075eb8
/* f075e20: 3c0c8007 */ lui $t4,%hi(g_EmbedHitPart)
/* f075e24: 8d8c9934 */ lw $t4,%lo(g_EmbedHitPart)($t4)
/* f075e28: 24010007 */ addiu $at,$zero,0x7
/* f075e2c: 11800022 */ beqz $t4,.L0f075eb8
/* f075e30: afac0088 */ sw $t4,0x88($sp)
/* f075e34: 1181001a */ beq $t4,$at,.L0f075ea0
/* f075e38: 00e02025 */ or $a0,$a3,$zero
/* f075e3c: 24010008 */ addiu $at,$zero,0x8
/* f075e40: 1181000b */ beq $t4,$at,.L0f075e70
/* f075e44: 24050001 */ addiu $a1,$zero,0x1
/* f075e48: 2401000f */ addiu $at,$zero,0xf
/* f075e4c: 11810014 */ beq $t4,$at,.L0f075ea0
/* f075e50: 24010064 */ addiu $at,$zero,0x64
/* f075e54: 1181000a */ beq $t4,$at,.L0f075e80
/* f075e58: 00e02025 */ or $a0,$a3,$zero
/* f075e5c: 2401006e */ addiu $at,$zero,0x6e
/* f075e60: 1181000b */ beq $t4,$at,.L0f075e90
/* f075e64: 00e02025 */ or $a0,$a3,$zero
/* f075e68: 10000011 */ b .L0f075eb0
/* f075e6c: 00e02025 */ or $a0,$a3,$zero
.L0f075e70:
/* f075e70: 0fc2c108 */ jal mpstatsIncrementPlayerShotCount
/* f075e74: 00e02025 */ or $a0,$a3,$zero
/* f075e78: 1000000f */ b .L0f075eb8
/* f075e7c: 00000000 */ nop
.L0f075e80:
/* f075e80: 0fc2c108 */ jal mpstatsIncrementPlayerShotCount
/* f075e84: 24050004 */ addiu $a1,$zero,0x4
/* f075e88: 1000000b */ b .L0f075eb8
/* f075e8c: 00000000 */ nop
.L0f075e90:
/* f075e90: 0fc2c108 */ jal mpstatsIncrementPlayerShotCount
/* f075e94: 24050005 */ addiu $a1,$zero,0x5
/* f075e98: 10000007 */ b .L0f075eb8
/* f075e9c: 00000000 */ nop
.L0f075ea0:
/* f075ea0: 0fc2c108 */ jal mpstatsIncrementPlayerShotCount
/* f075ea4: 24050002 */ addiu $a1,$zero,0x2
/* f075ea8: 10000003 */ b .L0f075eb8
/* f075eac: 00000000 */ nop
.L0f075eb0:
/* f075eb0: 0fc2c108 */ jal mpstatsIncrementPlayerShotCount
/* f075eb4: 24050003 */ addiu $a1,$zero,0x3
.L0f075eb8:
/* f075eb8: 0fc4a24b */ jal setCurrentPlayerNum
/* f075ebc: 8fa40164 */ lw $a0,0x164($sp)
.L0f075ec0:
/* f075ec0: 8fae01f4 */ lw $t6,0x1f4($sp)
.L0f075ec4:
/* f075ec4: 51c0000a */ beqzl $t6,.L0f075ef0
/* f075ec8: 8e390048 */ lw $t9,0x48($s1)
/* f075ecc: 91c20000 */ lbu $v0,0x0($t6)
/* f075ed0: 24010001 */ addiu $at,$zero,0x1
/* f075ed4: 10410005 */ beq $v0,$at,.L0f075eec
/* f075ed8: 24010004 */ addiu $at,$zero,0x4
/* f075edc: 10410003 */ beq $v0,$at,.L0f075eec
/* f075ee0: 24010002 */ addiu $at,$zero,0x2
/* f075ee4: 5441002d */ bnel $v0,$at,.L0f075f9c
/* f075ee8: 02402025 */ or $a0,$s2,$zero
.L0f075eec:
/* f075eec: 8e390048 */ lw $t9,0x48($s1)
.L0f075ef0:
/* f075ef0: c6060004 */ lwc1 $f6,0x4($s0)
/* f075ef4: 27a40150 */ addiu $a0,$sp,0x150
/* f075ef8: 8f220088 */ lw $v0,0x88($t9)
/* f075efc: e7a60150 */ swc1 $f6,0x150($sp)
/* f075f00: c6080008 */ lwc1 $f8,0x8($s0)
/* f075f04: 27a50154 */ addiu $a1,$sp,0x154
/* f075f08: 27a60158 */ addiu $a2,$sp,0x158
/* f075f0c: e7a80154 */ swc1 $f8,0x154($sp)
/* f075f10: c604000c */ lwc1 $f4,0xc($s0)
/* f075f14: afa2014c */ sw $v0,0x14c($sp)
/* f075f18: 0c0011e4 */ jal guNormalize
/* f075f1c: e7a40158 */ swc1 $f4,0x158($sp)
/* f075f20: 8fa2014c */ lw $v0,0x14c($sp)
/* f075f24: 50400005 */ beqzl $v0,.L0f075f3c
/* f075f28: afa00088 */ sw $zero,0x88($sp)
/* f075f2c: 8c490004 */ lw $t1,0x4($v0)
/* f075f30: 10000002 */ b .L0f075f3c
/* f075f34: afa90088 */ sw $t1,0x88($sp)
/* f075f38: afa00088 */ sw $zero,0x88($sp)
.L0f075f3c:
/* f075f3c: 0fc4f92a */ jal chrIsUsingPaintball
/* f075f40: 8fa40088 */ lw $a0,0x88($sp)
/* f075f44: 1040000c */ beqz $v0,.L0f075f78
/* f075f48: 02402825 */ or $a1,$s2,$zero
/* f075f4c: 86440028 */ lh $a0,0x28($s2)
/* f075f50: 27b805f4 */ addiu $t8,$sp,0x5f4
/* f075f54: 240d0019 */ addiu $t5,$zero,0x19
/* f075f58: afad0014 */ sw $t5,0x14($sp)
/* f075f5c: afb80010 */ sw $t8,0x10($sp)
/* f075f60: 02402825 */ or $a1,$s2,$zero
/* f075f64: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f075f68: 0fc4be7c */ jal sparksCreate
/* f075f6c: 27a70150 */ addiu $a3,$sp,0x150
/* f075f70: 1000000a */ b .L0f075f9c
/* f075f74: 02402025 */ or $a0,$s2,$zero
.L0f075f78:
/* f075f78: 86440028 */ lh $a0,0x28($s2)
/* f075f7c: 27ab05f4 */ addiu $t3,$sp,0x5f4
/* f075f80: 240f0010 */ addiu $t7,$zero,0x10
/* f075f84: afaf0014 */ sw $t7,0x14($sp)
/* f075f88: afab0010 */ sw $t3,0x10($sp)
/* f075f8c: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f075f90: 0fc4be7c */ jal sparksCreate
/* f075f94: 27a70150 */ addiu $a3,$sp,0x150
/* f075f98: 02402025 */ or $a0,$s2,$zero
.L0f075f9c:
/* f075f9c: 27a505e8 */ addiu $a1,$sp,0x5e8
/* f075fa0: 27a605f4 */ addiu $a2,$sp,0x5f4
/* f075fa4: 0fc1bc28 */ jal objLand
/* f075fa8: 8fa7060c */ lw $a3,0x60c($sp)
.L0f075fac:
/* f075fac: 8faa034c */ lw $t2,0x34c($sp)
.L0f075fb0:
/* f075fb0: 8fac0600 */ lw $t4,0x600($sp)
/* f075fb4: 55400038 */ bnezl $t2,.L0f076098
/* f075fb8: 8fae034c */ lw $t6,0x34c($sp)
/* f075fbc: 11800012 */ beqz $t4,.L0f076008
/* f075fc0: 26440008 */ addiu $a0,$s2,0x8
/* f075fc4: 8fa5006c */ lw $a1,0x6c($sp)
/* f075fc8: 27a605dc */ addiu $a2,$sp,0x5dc
/* f075fcc: 0fc1979d */ jal func0f065e74
/* f075fd0: 27a7013c */ addiu $a3,$sp,0x13c
/* f075fd4: c7aa05dc */ lwc1 $f10,0x5dc($sp)
/* f075fd8: 02402025 */ or $a0,$s2,$zero
/* f075fdc: e64a0008 */ swc1 $f10,0x8($s2)
/* f075fe0: c7a605e0 */ lwc1 $f6,0x5e0($sp)
/* f075fe4: e646000c */ swc1 $f6,0xc($s2)
/* f075fe8: c7a805e4 */ lwc1 $f8,0x5e4($sp)
/* f075fec: 0fc19711 */ jal propDeregisterRooms
/* f075ff0: e6480010 */ swc1 $f8,0x10($s2)
/* f075ff4: 27a4013c */ addiu $a0,$sp,0x13c
/* f075ff8: 0fc195e9 */ jal roomsCopy
/* f075ffc: 8fa5006c */ lw $a1,0x6c($sp)
/* f076000: 10000025 */ b .L0f076098
/* f076004: 8fae034c */ lw $t6,0x34c($sp)
.L0f076008:
/* f076008: 3c038007 */ lui $v1,%hi(g_EmbedProp)
/* f07600c: 8c639930 */ lw $v1,%lo(g_EmbedProp)($v1)
/* f076010: c7a605e8 */ lwc1 $f6,0x5e8($sp)
/* f076014: 27a605dc */ addiu $a2,$sp,0x5dc
/* f076018: 1060000c */ beqz $v1,.L0f07604c
/* f07601c: 27a7012c */ addiu $a3,$sp,0x12c
/* f076020: 90620000 */ lbu $v0,0x0($v1)
/* f076024: 24010003 */ addiu $at,$zero,0x3
/* f076028: 10410003 */ beq $v0,$at,.L0f076038
/* f07602c: 24010006 */ addiu $at,$zero,0x6
/* f076030: 54410007 */ bnel $v0,$at,.L0f076050
/* f076034: c7a805ec */ lwc1 $f8,0x5ec($sp)
.L0f076038:
/* f076038: c6440008 */ lwc1 $f4,0x8($s2)
/* f07603c: e7a405dc */ swc1 $f4,0x5dc($sp)
/* f076040: c64a0010 */ lwc1 $f10,0x10($s2)
/* f076044: 10000006 */ b .L0f076060
/* f076048: e7aa05e4 */ swc1 $f10,0x5e4($sp)
.L0f07604c:
/* f07604c: c7a805ec */ lwc1 $f8,0x5ec($sp)
.L0f076050:
/* f076050: c7a405f0 */ lwc1 $f4,0x5f0($sp)
/* f076054: e7a605dc */ swc1 $f6,0x5dc($sp)
/* f076058: e7a805e0 */ swc1 $f8,0x5e0($sp)
/* f07605c: e7a405e4 */ swc1 $f4,0x5e4($sp)
.L0f076060:
/* f076060: 0fc1979d */ jal func0f065e74
/* f076064: 8fa5006c */ lw $a1,0x6c($sp)
/* f076068: c7aa05dc */ lwc1 $f10,0x5dc($sp)
/* f07606c: 02402025 */ or $a0,$s2,$zero
/* f076070: e64a0008 */ swc1 $f10,0x8($s2)
/* f076074: c7a605e0 */ lwc1 $f6,0x5e0($sp)
/* f076078: e646000c */ swc1 $f6,0xc($s2)
/* f07607c: c7a805e4 */ lwc1 $f8,0x5e4($sp)
/* f076080: 0fc19711 */ jal propDeregisterRooms
/* f076084: e6480010 */ swc1 $f8,0x10($s2)
/* f076088: 27a4012c */ addiu $a0,$sp,0x12c
/* f07608c: 0fc195e9 */ jal roomsCopy
/* f076090: 8fa5006c */ lw $a1,0x6c($sp)
/* f076094: 8fae034c */ lw $t6,0x34c($sp)
.L0f076098:
/* f076098: 55c0039e */ bnezl $t6,.L0f076f14
/* f07609c: 8fbf005c */ lw $ra,0x5c($sp)
/* f0760a0: 0fc1a2bd */ jal objFindBboxRodata
/* f0760a4: 02202025 */ or $a0,$s1,$zero
/* f0760a8: 00402025 */ or $a0,$v0,$zero
/* f0760ac: 0fc19a57 */ jal func0f06695c
/* f0760b0: 8fa50074 */ lw $a1,0x74($sp)
/* f0760b4: e7a0037c */ swc1 $f0,0x37c($sp)
/* f0760b8: c6440008 */ lwc1 $f4,0x8($s2)
/* f0760bc: 26270058 */ addiu $a3,$s1,0x58
/* f0760c0: 27b9012a */ addiu $t9,$sp,0x12a
/* f0760c4: e7a405ac */ swc1 $f4,0x5ac($sp)
/* f0760c8: c64a000c */ lwc1 $f10,0xc($s2)
/* f0760cc: 27a90380 */ addiu $t1,$sp,0x380
/* f0760d0: 27a405ac */ addiu $a0,$sp,0x5ac
/* f0760d4: 46005180 */ add.s $f6,$f10,$f0
/* f0760d8: 8fa5006c */ lw $a1,0x6c($sp)
/* f0760dc: 27a60390 */ addiu $a2,$sp,0x390
/* f0760e0: e7a605b0 */ swc1 $f6,0x5b0($sp)
/* f0760e4: c6480010 */ lwc1 $f8,0x10($s2)
/* f0760e8: afa70074 */ sw $a3,0x74($sp)
/* f0760ec: afa90014 */ sw $t1,0x14($sp)
/* f0760f0: afb90010 */ sw $t9,0x10($sp)
/* f0760f4: 0c00a979 */ jal cd0002a5e4
/* f0760f8: e7a805b4 */ swc1 $f8,0x5b4($sp)
/* f0760fc: 00021c00 */ sll $v1,$v0,0x10
/* f076100: 1840002e */ blez $v0,.L0f0761bc
/* f076104: 0003c403 */ sra $t8,$v1,0x10
/* f076108: c644000c */ lwc1 $f4,0xc($s2)
/* f07610c: c7aa037c */ lwc1 $f10,0x37c($sp)
/* f076110: c7a80390 */ lwc1 $f8,0x390($sp)
/* f076114: 27a405c8 */ addiu $a0,$sp,0x5c8
/* f076118: 460a2180 */ add.s $f6,$f4,$f10
/* f07611c: 27a505b8 */ addiu $a1,$sp,0x5b8
/* f076120: 27a605ac */ addiu $a2,$sp,0x5ac
/* f076124: 24070021 */ addiu $a3,$zero,0x21
/* f076128: 4608303c */ c.lt.s $f6,$f8
/* f07612c: 240d0003 */ addiu $t5,$zero,0x3
/* f076130: 45020023 */ bc1fl .L0f0761c0
/* f076134: 26440008 */ addiu $a0,$s2,0x8
/* f076138: afad0010 */ sw $t5,0x10($sp)
/* f07613c: 0c00b6e6 */ jal cd0002db98
/* f076140: a7b8038e */ sh $t8,0x38e($sp)
/* f076144: 1440001d */ bnez $v0,.L0f0761bc
/* f076148: 87a3038e */ lh $v1,0x38e($sp)
/* f07614c: c7a40380 */ lwc1 $f4,0x380($sp)
/* f076150: c7aa0384 */ lwc1 $f10,0x384($sp)
/* f076154: c7a60388 */ lwc1 $f6,0x388($sp)
/* f076158: 240b0001 */ addiu $t3,$zero,0x1
/* f07615c: afab0354 */ sw $t3,0x354($sp)
/* f076160: 27a405f4 */ addiu $a0,$sp,0x5f4
/* f076164: 27a505f8 */ addiu $a1,$sp,0x5f8
/* f076168: 27a605fc */ addiu $a2,$sp,0x5fc
/* f07616c: a7a3038e */ sh $v1,0x38e($sp)
/* f076170: e7a405f4 */ swc1 $f4,0x5f4($sp)
/* f076174: e7aa05f8 */ swc1 $f10,0x5f8($sp)
/* f076178: 0c0011e4 */ jal guNormalize
/* f07617c: e7a605fc */ swc1 $f6,0x5fc($sp)
/* f076180: c6480008 */ lwc1 $f8,0x8($s2)
/* f076184: c7a40390 */ lwc1 $f4,0x390($sp)
/* f076188: 97af012a */ lhu $t7,0x12a($sp)
/* f07618c: e7a805e8 */ swc1 $f8,0x5e8($sp)
/* f076190: e7a405ec */ swc1 $f4,0x5ec($sp)
/* f076194: c64a0010 */ lwc1 $f10,0x10($s2)
/* f076198: 31ea4000 */ andi $t2,$t7,0x4000
/* f07619c: 87a3038e */ lh $v1,0x38e($sp)
/* f0761a0: afa00600 */ sw $zero,0x600($sp)
/* f0761a4: 1140003d */ beqz $t2,.L0f07629c
/* f0761a8: e7aa05f0 */ swc1 $f10,0x5f0($sp)
/* f0761ac: 8e2c0040 */ lw $t4,0x40($s1)
/* f0761b0: 358e0004 */ ori $t6,$t4,0x4
/* f0761b4: 10000039 */ b .L0f07629c
/* f0761b8: ae2e0040 */ sw $t6,0x40($s1)
.L0f0761bc:
/* f0761bc: 26440008 */ addiu $a0,$s2,0x8
.L0f0761c0:
/* f0761c0: 27b90380 */ addiu $t9,$sp,0x380
/* f0761c4: afb90010 */ sw $t9,0x10($sp)
/* f0761c8: afa40070 */ sw $a0,0x70($sp)
/* f0761cc: 8fa5006c */ lw $a1,0x6c($sp)
/* f0761d0: 27a60390 */ addiu $a2,$sp,0x390
/* f0761d4: 8fa70074 */ lw $a3,0x74($sp)
/* f0761d8: 0c00a959 */ jal cd0002a564
/* f0761dc: afa00014 */ sw $zero,0x14($sp)
/* f0761e0: 00021c00 */ sll $v1,$v0,0x10
/* f0761e4: 00034c03 */ sra $t1,$v1,0x10
/* f0761e8: 1c40002c */ bgtz $v0,.L0f07629c
/* f0761ec: 01201825 */ or $v1,$t1,$zero
/* f0761f0: 8e020000 */ lw $v0,0x0($s0)
/* f0761f4: 30580004 */ andi $t8,$v0,0x4
/* f0761f8: 17000028 */ bnez $t8,.L0f07629c
/* f0761fc: 00026bc0 */ sll $t5,$v0,0xf
/* f076200: 05a0000c */ bltz $t5,.L0f076234
/* f076204: 3c010001 */ lui $at,0x1
/* f076208: 00415825 */ or $t3,$v0,$at
/* f07620c: ae0b0000 */ sw $t3,0x0($s0)
/* f076210: a7a9038e */ sh $t1,0x38e($sp)
/* f076214: 27a405c8 */ addiu $a0,$sp,0x5c8
/* f076218: 0c00a900 */ jal cd0002a400
/* f07621c: 27a505b8 */ addiu $a1,$sp,0x5b8
/* f076220: 18400004 */ blez $v0,.L0f076234
/* f076224: 87a3038e */ lh $v1,0x38e($sp)
/* f076228: 8e0f0000 */ lw $t7,0x0($s0)
/* f07622c: 35ea8000 */ ori $t2,$t7,0x8000
/* f076230: ae0a0000 */ sw $t2,0x0($s0)
.L0f076234:
/* f076234: 8e0c0000 */ lw $t4,0x0($s0)
/* f076238: c7a605c8 */ lwc1 $f6,0x5c8($sp)
/* f07623c: 318e8000 */ andi $t6,$t4,0x8000
/* f076240: 11c00016 */ beqz $t6,.L0f07629c
/* f076244: 00000000 */ nop
/* f076248: e6460008 */ swc1 $f6,0x8($s2)
/* f07624c: c7a805cc */ lwc1 $f8,0x5cc($sp)
/* f076250: 02402025 */ or $a0,$s2,$zero
/* f076254: e648000c */ swc1 $f8,0xc($s2)
/* f076258: c7a405d0 */ lwc1 $f4,0x5d0($sp)
/* f07625c: 0fc19711 */ jal propDeregisterRooms
/* f076260: e6440010 */ swc1 $f4,0x10($s2)
/* f076264: 27a405b8 */ addiu $a0,$sp,0x5b8
/* f076268: 0fc195e9 */ jal roomsCopy
/* f07626c: 8fa5006c */ lw $a1,0x6c($sp)
/* f076270: 8fa40070 */ lw $a0,0x70($sp)
/* f076274: 8fa5006c */ lw $a1,0x6c($sp)
/* f076278: 27a60390 */ addiu $a2,$sp,0x390
/* f07627c: 8fa70074 */ lw $a3,0x74($sp)
/* f076280: 0c00a910 */ jal cd0002a440
/* f076284: afa00010 */ sw $zero,0x10($sp)
/* f076288: 00021c00 */ sll $v1,$v0,0x10
/* f07628c: 0003cc03 */ sra $t9,$v1,0x10
/* f076290: 03201825 */ or $v1,$t9,$zero
/* f076294: e6140004 */ swc1 $f20,0x4($s0)
/* f076298: e614000c */ swc1 $f20,0xc($s0)
.L0f07629c:
/* f07629c: 18600004 */ blez $v1,.L0f0762b0
/* f0762a0: 8e020000 */ lw $v0,0x0($s0)
/* f0762a4: 34498000 */ ori $t1,$v0,0x8000
/* f0762a8: 10000005 */ b .L0f0762c0
/* f0762ac: ae090000 */ sw $t1,0x0($s0)
.L0f0762b0:
/* f0762b0: 3c01ffff */ lui $at,0xffff
/* f0762b4: 34217fff */ ori $at,$at,0x7fff
/* f0762b8: 0041c024 */ and $t8,$v0,$at
/* f0762bc: ae180000 */ sw $t8,0x0($s0)
.L0f0762c0:
/* f0762c0: 8fad0600 */ lw $t5,0x600($sp)
/* f0762c4: 55a000ac */ bnezl $t5,.L0f076578
/* f0762c8: 922b0003 */ lbu $t3,0x3($s1)
/* f0762cc: c60c0008 */ lwc1 $f12,0x8($s0)
/* f0762d0: c7a605cc */ lwc1 $f6,0x5cc($sp)
/* f0762d4: 4614603e */ c.le.s $f12,$f20
/* f0762d8: 00000000 */ nop
/* f0762dc: 45020007 */ bc1fl .L0f0762fc
/* f0762e0: 8e0b0000 */ lw $t3,0x0($s0)
/* f0762e4: c64a000c */ lwc1 $f10,0xc($s2)
/* f0762e8: 460a303e */ c.le.s $f6,$f10
/* f0762ec: 00000000 */ nop
/* f0762f0: 45030008 */ bc1tl .L0f076314
/* f0762f4: 240c0001 */ addiu $t4,$zero,0x1
/* f0762f8: 8e0b0000 */ lw $t3,0x0($s0)
.L0f0762fc:
/* f0762fc: 8faa0354 */ lw $t2,0x354($sp)
/* f076300: 316f0004 */ andi $t7,$t3,0x4
/* f076304: 55e00005 */ bnezl $t7,.L0f07631c
/* f076308: c612008c */ lwc1 $f18,0x8c($s0)
/* f07630c: 11400002 */ beqz $t2,.L0f076318
/* f076310: 240c0001 */ addiu $t4,$zero,0x1
.L0f076314:
/* f076314: afac0350 */ sw $t4,0x350($sp)
.L0f076318:
/* f076318: c612008c */ lwc1 $f18,0x8c($s0)
.L0f07631c:
/* f07631c: c7a805f4 */ lwc1 $f8,0x5f4($sp)
/* f076320: 4612a03c */ c.lt.s $f20,$f18
/* f076324: 00000000 */ nop
/* f076328: 45020034 */ bc1fl .L0f0763fc
/* f07632c: 8fad0350 */ lw $t5,0x350($sp)
/* f076330: c60e0004 */ lwc1 $f14,0x4($s0)
/* f076334: c7aa05f8 */ lwc1 $f10,0x5f8($sp)
/* f076338: c602000c */ lwc1 $f2,0xc($s0)
/* f07633c: 46087102 */ mul.s $f4,$f14,$f8
/* f076340: 3c013f80 */ lui $at,0x3f80
/* f076344: 4614603e */ c.le.s $f12,$f20
/* f076348: 460a6182 */ mul.s $f6,$f12,$f10
/* f07634c: 46062280 */ add.s $f10,$f4,$f6
/* f076350: c7a405fc */ lwc1 $f4,0x5fc($sp)
/* f076354: 46022182 */ mul.s $f6,$f4,$f2
/* f076358: 44812000 */ mtc1 $at,$f4
/* f07635c: 460a3000 */ add.s $f0,$f6,$f10
/* f076360: 46049180 */ add.s $f6,$f18,$f4
/* f076364: 46003287 */ neg.s $f10,$f6
/* f076368: 460a0002 */ mul.s $f0,$f0,$f10
/* f07636c: 00000000 */ nop
/* f076370: 46080102 */ mul.s $f4,$f0,$f8
/* f076374: 46047180 */ add.s $f6,$f14,$f4
/* f076378: e6060004 */ swc1 $f6,0x4($s0)
/* f07637c: c7aa05f8 */ lwc1 $f10,0x5f8($sp)
/* f076380: 460a0202 */ mul.s $f8,$f0,$f10
/* f076384: 46086100 */ add.s $f4,$f12,$f8
/* f076388: e6040008 */ swc1 $f4,0x8($s0)
/* f07638c: c7a605fc */ lwc1 $f6,0x5fc($sp)
/* f076390: 46060282 */ mul.s $f10,$f0,$f6
/* f076394: 460a1200 */ add.s $f8,$f2,$f10
/* f076398: 45000008 */ bc1f .L0f0763bc
/* f07639c: e608000c */ swc1 $f8,0xc($s0)
/* f0763a0: c6040008 */ lwc1 $f4,0x8($s0)
/* f0763a4: 240e0001 */ addiu $t6,$zero,0x1
/* f0763a8: 4604a03e */ c.le.s $f20,$f4
/* f0763ac: 00000000 */ nop
/* f0763b0: 45020003 */ bc1fl .L0f0763c0
/* f0763b4: 92390003 */ lbu $t9,0x3($s1)
/* f0763b8: afae0350 */ sw $t6,0x350($sp)
.L0f0763bc:
/* f0763bc: 92390003 */ lbu $t9,0x3($s1)
.L0f0763c0:
/* f0763c0: 24010008 */ addiu $at,$zero,0x8
/* f0763c4: 5721000d */ bnel $t9,$at,.L0f0763fc
/* f0763c8: 8fad0350 */ lw $t5,0x350($sp)
/* f0763cc: 9229005c */ lbu $t1,0x5c($s1)
/* f0763d0: 2401001e */ addiu $at,$zero,0x1e
/* f0763d4: 55210009 */ bnel $t1,$at,.L0f0763fc
/* f0763d8: 8fad0350 */ lw $t5,0x350($sp)
/* f0763dc: 9238005f */ lbu $t8,0x5f($s1)
/* f0763e0: 24010001 */ addiu $at,$zero,0x1
/* f0763e4: 02402025 */ or $a0,$s2,$zero
/* f0763e8: 57010004 */ bnel $t8,$at,.L0f0763fc
/* f0763ec: 8fad0350 */ lw $t5,0x350($sp)
/* f0763f0: 0fc4b9c5 */ jal smokeCreateAtProp
/* f0763f4: 24050013 */ addiu $a1,$zero,0x13
/* f0763f8: 8fad0350 */ lw $t5,0x350($sp)
.L0f0763fc:
/* f0763fc: c7a605ec */ lwc1 $f6,0x5ec($sp)
/* f076400: c7aa037c */ lwc1 $f10,0x37c($sp)
/* f076404: 51a0000c */ beqzl $t5,.L0f076438
/* f076408: 8e0f0000 */ lw $t7,0x0($s0)
/* f07640c: 460a3201 */ sub.s $f8,$f6,$f10
/* f076410: e648000c */ swc1 $f8,0xc($s2)
/* f076414: 8fab0354 */ lw $t3,0x354($sp)
/* f076418: 51600007 */ beqzl $t3,.L0f076438
/* f07641c: 8e0f0000 */ lw $t7,0x0($s0)
/* f076420: 0fc1a988 */ jal func0f06a620
/* f076424: 02202025 */ or $a0,$s1,$zero
/* f076428: c644000c */ lwc1 $f4,0xc($s2)
/* f07642c: 46002180 */ add.s $f6,$f4,$f0
/* f076430: e646000c */ swc1 $f6,0xc($s2)
/* f076434: 8e0f0000 */ lw $t7,0x0($s0)
.L0f076438:
/* f076438: 31ea0100 */ andi $t2,$t7,0x100
/* f07643c: 5540000d */ bnezl $t2,.L0f076474
/* f076440: 8e190090 */ lw $t9,0x90($s0)
/* f076444: 8e020094 */ lw $v0,0x94($s0)
/* f076448: 3c0c800a */ lui $t4,%hi(g_Vars+0x8)
/* f07644c: 04400006 */ bltz $v0,.L0f076468
/* f076450: 00000000 */ nop
/* f076454: 8d8c9fc8 */ lw $t4,%lo(g_Vars+0x8)($t4)
/* f076458: 258effc4 */ addiu $t6,$t4,-60
/* f07645c: 004e082a */ slt $at,$v0,$t6
/* f076460: 50200004 */ beqzl $at,.L0f076474
/* f076464: 8e190090 */ lw $t9,0x90($s0)
.L0f076468:
/* f076468: 0fc258d8 */ jal func0f096360
/* f07646c: 8fa40064 */ lw $a0,0x64($sp)
/* f076470: 8e190090 */ lw $t9,0x90($s0)
.L0f076474:
/* f076474: 3c18800a */ lui $t8,%hi(g_Vars+0x8)
/* f076478: 27290001 */ addiu $t1,$t9,0x1
/* f07647c: ae090090 */ sw $t1,0x90($s0)
/* f076480: 8f189fc8 */ lw $t8,%lo(g_Vars+0x8)($t8)
/* f076484: ae180094 */ sw $t8,0x94($s0)
/* f076488: 8e220040 */ lw $v0,0x40($s1)
/* f07648c: 00026bc0 */ sll $t5,$v0,0xf
/* f076490: 05a00002 */ bltz $t5,.L0f07649c
/* f076494: 344b0100 */ ori $t3,$v0,0x100
/* f076498: ae2b0040 */ sw $t3,0x40($s1)
.L0f07649c:
/* f07649c: 8faf0350 */ lw $t7,0x350($sp)
/* f0764a0: 51e00035 */ beqzl $t7,.L0f076578
/* f0764a4: 922b0003 */ lbu $t3,0x3($s1)
/* f0764a8: 8e020000 */ lw $v0,0x0($s0)
/* f0764ac: 304a0004 */ andi $t2,$v0,0x4
/* f0764b0: 5540000d */ bnezl $t2,.L0f0764e8
/* f0764b4: c60a008c */ lwc1 $f10,0x8c($s0)
/* f0764b8: 8e0c0090 */ lw $t4,0x90($s0)
/* f0764bc: 8fae0354 */ lw $t6,0x354($sp)
/* f0764c0: 29810006 */ slti $at,$t4,0x6
/* f0764c4: 54200008 */ bnezl $at,.L0f0764e8
/* f0764c8: c60a008c */ lwc1 $f10,0x8c($s0)
/* f0764cc: 11c00029 */ beqz $t6,.L0f076574
/* f0764d0: 02202025 */ or $a0,$s1,$zero
/* f0764d4: 0fc1b6f6 */ jal func0f06dbd8
/* f0764d8: 27a50358 */ addiu $a1,$sp,0x358
/* f0764dc: 10000026 */ b .L0f076578
/* f0764e0: 922b0003 */ lbu $t3,0x3($s1)
/* f0764e4: c60a008c */ lwc1 $f10,0x8c($s0)
.L0f0764e8:
/* f0764e8: 8fad0354 */ lw $t5,0x354($sp)
/* f0764ec: 460aa03c */ c.lt.s $f20,$f10
/* f0764f0: 00000000 */ nop
/* f0764f4: 4500001b */ bc1f .L0f076564
/* f0764f8: 00000000 */ nop
/* f0764fc: c60c0008 */ lwc1 $f12,0x8($s0)
/* f076500: 3c017f1b */ lui $at,%hi(var7f1aa414)
/* f076504: 460ca03e */ c.le.s $f20,$f12
/* f076508: 00000000 */ nop
/* f07650c: 4502001a */ bc1fl .L0f076578
/* f076510: 922b0003 */ lbu $t3,0x3($s1)
/* f076514: c420a414 */ lwc1 $f0,%lo(var7f1aa414)($at)
/* f076518: 30590002 */ andi $t9,$v0,0x2
/* f07651c: 4600603c */ c.lt.s $f12,$f0
/* f076520: 00000000 */ nop
/* f076524: 45020014 */ bc1fl .L0f076578
/* f076528: 922b0003 */ lbu $t3,0x3($s1)
/* f07652c: 13200007 */ beqz $t9,.L0f07654c
/* f076530: 8fb80354 */ lw $t8,0x354($sp)
/* f076534: 8e090090 */ lw $t1,0x90($s0)
/* f076538: 24010001 */ addiu $at,$zero,0x1
/* f07653c: 15210003 */ bne $t1,$at,.L0f07654c
/* f076540: 00000000 */ nop
/* f076544: 1000000b */ b .L0f076574
/* f076548: e6000008 */ swc1 $f0,0x8($s0)
.L0f07654c:
/* f07654c: 13000009 */ beqz $t8,.L0f076574
/* f076550: 02202025 */ or $a0,$s1,$zero
/* f076554: 0fc1b6f6 */ jal func0f06dbd8
/* f076558: 27a50358 */ addiu $a1,$sp,0x358
/* f07655c: 10000006 */ b .L0f076578
/* f076560: 922b0003 */ lbu $t3,0x3($s1)
.L0f076564:
/* f076564: 11a00003 */ beqz $t5,.L0f076574
/* f076568: 02202025 */ or $a0,$s1,$zero
/* f07656c: 0fc1b6f6 */ jal func0f06dbd8
/* f076570: 27a50358 */ addiu $a1,$sp,0x358
.L0f076574:
/* f076574: 922b0003 */ lbu $t3,0x3($s1)
.L0f076578:
/* f076578: 24010008 */ addiu $at,$zero,0x8
/* f07657c: 55610134 */ bnel $t3,$at,.L0f076a50
/* f076580: 02202025 */ or $a0,$s1,$zero
/* f076584: 9227005c */ lbu $a3,0x5c($s1)
/* f076588: 2401001a */ addiu $at,$zero,0x1a
/* f07658c: 54e1000a */ bnel $a3,$at,.L0f0765b8
/* f076590: 24010053 */ addiu $at,$zero,0x53
/* f076594: 922f005f */ lbu $t7,0x5f($s1)
/* f076598: 24010001 */ addiu $at,$zero,0x1
/* f07659c: 55e10006 */ bnel $t7,$at,.L0f0765b8
/* f0765a0: 24010053 */ addiu $at,$zero,0x53
/* f0765a4: 0fc1ba1f */ jal knifePlayWooshSound
/* f0765a8: 02202025 */ or $a0,$s1,$zero
/* f0765ac: 100000b0 */ b .L0f076870
/* f0765b0: 8fac0600 */ lw $t4,0x600($sp)
/* f0765b4: 24010053 */ addiu $at,$zero,0x53
.L0f0765b8:
/* f0765b8: 14e10044 */ bne $a3,$at,.L0f0766cc
/* f0765bc: 8faa0600 */ lw $t2,0x600($sp)
/* f0765c0: 55400004 */ bnezl $t2,.L0f0765d4
/* f0765c4: c60e0004 */ lwc1 $f14,0x4($s0)
/* f0765c8: 100000a8 */ b .L0f07686c
/* f0765cc: a6200062 */ sh $zero,0x62($s1)
/* f0765d0: c60e0004 */ lwc1 $f14,0x4($s0)
.L0f0765d4:
/* f0765d4: c60c0008 */ lwc1 $f12,0x8($s0)
/* f0765d8: c602000c */ lwc1 $f2,0xc($s0)
/* f0765dc: 460e7202 */ mul.s $f8,$f14,$f14
/* f0765e0: 3c017f1b */ lui $at,%hi(var7f1aa418)
/* f0765e4: 460c6102 */ mul.s $f4,$f12,$f12
/* f0765e8: 46044180 */ add.s $f6,$f8,$f4
/* f0765ec: 46021282 */ mul.s $f10,$f2,$f2
/* f0765f0: c428a418 */ lwc1 $f8,%lo(var7f1aa418)($at)
/* f0765f4: 46065000 */ add.s $f0,$f10,$f6
/* f0765f8: 4600403c */ c.lt.s $f8,$f0
/* f0765fc: 00000000 */ nop
/* f076600: 45020005 */ bc1fl .L0f076618
/* f076604: 860200b2 */ lh $v0,0xb2($s0)
/* f076608: e6140010 */ swc1 $f20,0x10($s0)
/* f07660c: e6140014 */ swc1 $f20,0x14($s0)
/* f076610: e6140018 */ swc1 $f20,0x18($s0)
/* f076614: 860200b2 */ lh $v0,0xb2($s0)
.L0f076618:
/* f076618: 0442000c */ bltzl $v0,.L0f07664c
/* f07661c: c6040004 */ lwc1 $f4,0x4($s0)
/* f076620: 8e0c00a0 */ lw $t4,0xa0($s0)
/* f076624: 004c082a */ slt $at,$v0,$t4
/* f076628: 50200008 */ beqzl $at,.L0f07664c
/* f07662c: c6040004 */ lwc1 $f4,0x4($s0)
/* f076630: 8e0e0000 */ lw $t6,0x0($s0)
/* f076634: 2401ffcf */ addiu $at,$zero,-49
/* f076638: e614001c */ swc1 $f20,0x1c($s0)
/* f07663c: 01c1c824 */ and $t9,$t6,$at
/* f076640: 1000008a */ b .L0f07686c
/* f076644: ae190000 */ sw $t9,0x0($s0)
/* f076648: c6040004 */ lwc1 $f4,0x4($s0)
.L0f07664c:
/* f07664c: 27a40108 */ addiu $a0,$sp,0x108
/* f076650: 27a5010c */ addiu $a1,$sp,0x10c
/* f076654: e7a40108 */ swc1 $f4,0x108($sp)
/* f076658: c60a0008 */ lwc1 $f10,0x8($s0)
/* f07665c: 27a60110 */ addiu $a2,$sp,0x110
/* f076660: e7aa010c */ swc1 $f10,0x10c($sp)
/* f076664: c606000c */ lwc1 $f6,0xc($s0)
/* f076668: 0c0011e4 */ jal guNormalize
/* f07666c: e7a60110 */ swc1 $f6,0x110($sp)
/* f076670: 3c0141a0 */ lui $at,0x41a0
/* f076674: 44810000 */ mtc1 $at,$f0
/* f076678: c7a40108 */ lwc1 $f4,0x108($sp)
/* f07667c: c6480008 */ lwc1 $f8,0x8($s2)
/* f076680: 27a40108 */ addiu $a0,$sp,0x108
/* f076684: 46002282 */ mul.s $f10,$f4,$f0
/* f076688: 8fa5006c */ lw $a1,0x6c($sp)
/* f07668c: 24060008 */ addiu $a2,$zero,0x8
/* f076690: 460a4181 */ sub.s $f6,$f8,$f10
/* f076694: c7a8010c */ lwc1 $f8,0x10c($sp)
/* f076698: 46004282 */ mul.s $f10,$f8,$f0
/* f07669c: e7a60108 */ swc1 $f6,0x108($sp)
/* f0766a0: c644000c */ lwc1 $f4,0xc($s2)
/* f0766a4: 460a2181 */ sub.s $f6,$f4,$f10
/* f0766a8: c7a40110 */ lwc1 $f4,0x110($sp)
/* f0766ac: 46002282 */ mul.s $f10,$f4,$f0
/* f0766b0: e7a6010c */ swc1 $f6,0x10c($sp)
/* f0766b4: c6480010 */ lwc1 $f8,0x10($s2)
/* f0766b8: 460a4181 */ sub.s $f6,$f8,$f10
/* f0766bc: 0fc4ba08 */ jal smokeCreateSimple
/* f0766c0: e7a60110 */ swc1 $f6,0x110($sp)
/* f0766c4: 1000006a */ b .L0f076870
/* f0766c8: 8fac0600 */ lw $t4,0x600($sp)
.L0f0766cc:
/* f0766cc: 24010054 */ addiu $at,$zero,0x54
/* f0766d0: 14e1000a */ bne $a3,$at,.L0f0766fc
/* f0766d4: 8fa90600 */ lw $t1,0x600($sp)
/* f0766d8: 15200003 */ bnez $t1,.L0f0766e8
/* f0766dc: 26440008 */ addiu $a0,$s2,0x8
/* f0766e0: 10000062 */ b .L0f07686c
/* f0766e4: a6200062 */ sh $zero,0x62($s1)
.L0f0766e8:
/* f0766e8: 8fa5006c */ lw $a1,0x6c($sp)
/* f0766ec: 0fc4ba08 */ jal smokeCreateSimple
/* f0766f0: 2406000b */ addiu $a2,$zero,0xb
/* f0766f4: 1000005e */ b .L0f076870
/* f0766f8: 8fac0600 */ lw $t4,0x600($sp)
.L0f0766fc:
/* f0766fc: 24010055 */ addiu $at,$zero,0x55
/* f076700: 10e10006 */ beq $a3,$at,.L0f07671c
/* f076704: 2402001f */ addiu $v0,$zero,0x1f
/* f076708: 54470059 */ bnel $v0,$a3,.L0f076870
/* f07670c: 8fac0600 */ lw $t4,0x600($sp)
/* f076710: 9238005f */ lbu $t8,0x5f($s1)
/* f076714: 57000056 */ bnezl $t8,.L0f076870
/* f076718: 8fac0600 */ lw $t4,0x600($sp)
.L0f07671c:
/* f07671c: 8fad0350 */ lw $t5,0x350($sp)
/* f076720: 2402001f */ addiu $v0,$zero,0x1f
/* f076724: 15a00045 */ bnez $t5,.L0f07683c
/* f076728: 00000000 */ nop
/* f07672c: 8e0b0000 */ lw $t3,0x0($s0)
/* f076730: 3c017f1b */ lui $at,%hi(var7f1aa41c)
/* f076734: 316f0400 */ andi $t7,$t3,0x400
/* f076738: 15e00040 */ bnez $t7,.L0f07683c
/* f07673c: 00000000 */ nop
/* f076740: c430a41c */ lwc1 $f16,%lo(var7f1aa41c)($at)
/* f076744: c60e0004 */ lwc1 $f14,0x4($s0)
/* f076748: 3c017f1b */ lui $at,%hi(var7f1aa420)
/* f07674c: c7a805c8 */ lwc1 $f8,0x5c8($sp)
/* f076750: 4610703c */ c.lt.s $f14,$f16
/* f076754: 00000000 */ nop
/* f076758: 45020019 */ bc1fl .L0f0767c0
/* f07675c: c6440008 */ lwc1 $f4,0x8($s2)
/* f076760: c432a420 */ lwc1 $f18,%lo(var7f1aa420)($at)
/* f076764: 460e903c */ c.lt.s $f18,$f14
/* f076768: 00000000 */ nop
/* f07676c: 45020014 */ bc1fl .L0f0767c0
/* f076770: c6440008 */ lwc1 $f4,0x8($s2)
/* f076774: c60c0008 */ lwc1 $f12,0x8($s0)
/* f076778: 4610603c */ c.lt.s $f12,$f16
/* f07677c: 00000000 */ nop
/* f076780: 4502000f */ bc1fl .L0f0767c0
/* f076784: c6440008 */ lwc1 $f4,0x8($s2)
/* f076788: 460c903c */ c.lt.s $f18,$f12
/* f07678c: 00000000 */ nop
/* f076790: 4502000b */ bc1fl .L0f0767c0
/* f076794: c6440008 */ lwc1 $f4,0x8($s2)
/* f076798: c602000c */ lwc1 $f2,0xc($s0)
/* f07679c: 4610103c */ c.lt.s $f2,$f16
/* f0767a0: 00000000 */ nop
/* f0767a4: 45020006 */ bc1fl .L0f0767c0
/* f0767a8: c6440008 */ lwc1 $f4,0x8($s2)
/* f0767ac: 4602903c */ c.lt.s $f18,$f2
/* f0767b0: 00000000 */ nop
/* f0767b4: 45010021 */ bc1t .L0f07683c
/* f0767b8: 00000000 */ nop
/* f0767bc: c6440008 */ lwc1 $f4,0x8($s2)
.L0f0767c0:
/* f0767c0: 3c017f1b */ lui $at,%hi(var7f1aa424)
/* f0767c4: c432a424 */ lwc1 $f18,%lo(var7f1aa424)($at)
/* f0767c8: 46082001 */ sub.s $f0,$f4,$f8
/* f0767cc: 4610003c */ c.lt.s $f0,$f16
/* f0767d0: 00000000 */ nop
/* f0767d4: 45000020 */ bc1f .L0f076858
/* f0767d8: 00000000 */ nop
/* f0767dc: 4600903c */ c.lt.s $f18,$f0
/* f0767e0: c7a605cc */ lwc1 $f6,0x5cc($sp)
/* f0767e4: 4500001c */ bc1f .L0f076858
/* f0767e8: 00000000 */ nop
/* f0767ec: c64a000c */ lwc1 $f10,0xc($s2)
/* f0767f0: 46065001 */ sub.s $f0,$f10,$f6
/* f0767f4: 4610003c */ c.lt.s $f0,$f16
/* f0767f8: 00000000 */ nop
/* f0767fc: 45000016 */ bc1f .L0f076858
/* f076800: 00000000 */ nop
/* f076804: 4600903c */ c.lt.s $f18,$f0
/* f076808: c7a805d0 */ lwc1 $f8,0x5d0($sp)
/* f07680c: 45000012 */ bc1f .L0f076858
/* f076810: 00000000 */ nop
/* f076814: c6440010 */ lwc1 $f4,0x10($s2)
/* f076818: 46082001 */ sub.s $f0,$f4,$f8
/* f07681c: 4610003c */ c.lt.s $f0,$f16
/* f076820: 00000000 */ nop
/* f076824: 4500000c */ bc1f .L0f076858
/* f076828: 00000000 */ nop
/* f07682c: 4600903c */ c.lt.s $f18,$f0
/* f076830: 00000000 */ nop
/* f076834: 45000008 */ bc1f .L0f076858
/* f076838: 00000000 */ nop
.L0f07683c:
/* f07683c: 14470004 */ bne $v0,$a3,.L0f076850
/* f076840: 00000000 */ nop
/* f076844: 862a0062 */ lh $t2,0x62($s1)
/* f076848: 05420009 */ bltzl $t2,.L0f076870
/* f07684c: 8fac0600 */ lw $t4,0x600($sp)
.L0f076850:
/* f076850: 10000006 */ b .L0f07686c
/* f076854: a6200062 */ sh $zero,0x62($s1)
.L0f076858:
/* f076858: 10470004 */ beq $v0,$a3,.L0f07686c
/* f07685c: 26440008 */ addiu $a0,$s2,0x8
/* f076860: 8fa5006c */ lw $a1,0x6c($sp)
/* f076864: 0fc4ba08 */ jal smokeCreateSimple
/* f076868: 24060009 */ addiu $a2,$zero,0x9
.L0f07686c:
/* f07686c: 8fac0600 */ lw $t4,0x600($sp)
.L0f076870:
/* f076870: 3c03800a */ lui $v1,%hi(g_Vars+0xc)
/* f076874: 55800076 */ bnezl $t4,.L0f076a50
/* f076878: 02202025 */ or $a0,$s1,$zero
/* f07687c: 8c639fcc */ lw $v1,%lo(g_Vars+0xc)($v1)
/* f076880: 8e0e00a4 */ lw $t6,0xa4($s0)
/* f076884: 2479fffe */ addiu $t9,$v1,-2
/* f076888: 01d9082a */ slt $at,$t6,$t9
/* f07688c: 5020006f */ beqzl $at,.L0f076a4c
/* f076890: ae0300a4 */ sw $v1,0xa4($s0)
/* f076894: 9227005c */ lbu $a3,0x5c($s1)
/* f076898: 2401001a */ addiu $at,$zero,0x1a
/* f07689c: 00002025 */ or $a0,$zero,$zero
/* f0768a0: 10e10003 */ beq $a3,$at,.L0f0768b0
/* f0768a4: 02402825 */ or $a1,$s2,$zero
/* f0768a8: 2401001a */ addiu $at,$zero,0x1a
/* f0768ac: 14e10015 */ bne $a3,$at,.L0f076904
.L0f0768b0:
/* f0768b0: 3c01bf80 */ lui $at,0xbf80
/* f0768b4: 44810000 */ mtc1 $at,$f0
/* f0768b8: 2409ffff */ addiu $t1,$zero,-1
/* f0768bc: 2418ffff */ addiu $t8,$zero,-1
/* f0768c0: afb8002c */ sw $t8,0x2c($sp)
/* f0768c4: afa90010 */ sw $t1,0x10($sp)
/* f0768c8: 2406808b */ addiu $a2,$zero,-32629
/* f0768cc: 2407ffff */ addiu $a3,$zero,-1
/* f0768d0: afa00014 */ sw $zero,0x14($sp)
/* f0768d4: afa00018 */ sw $zero,0x18($sp)
/* f0768d8: afa0001c */ sw $zero,0x1c($sp)
/* f0768dc: afa00020 */ sw $zero,0x20($sp)
/* f0768e0: afa00028 */ sw $zero,0x28($sp)
/* f0768e4: e7a00024 */ swc1 $f0,0x24($sp)
/* f0768e8: e7a00030 */ swc1 $f0,0x30($sp)
/* f0768ec: e7a00034 */ swc1 $f0,0x34($sp)
/* f0768f0: 0fc24e7e */ jal propsnd0f0939f8
/* f0768f4: e7a00038 */ swc1 $f0,0x38($sp)
/* f0768f8: 3c03800a */ lui $v1,%hi(g_Vars+0xc)
/* f0768fc: 10000052 */ b .L0f076a48
/* f076900: 8c639fcc */ lw $v1,%lo(g_Vars+0xc)($v1)
.L0f076904:
/* f076904: 2401001e */ addiu $at,$zero,0x1e
/* f076908: 14e1003a */ bne $a3,$at,.L0f0769f4
/* f07690c: 00002025 */ or $a0,$zero,$zero
/* f076910: 922d005f */ lbu $t5,0x5f($s1)
/* f076914: 24010001 */ addiu $at,$zero,0x1
/* f076918: 3c0f8007 */ lui $t7,%hi(var80069bbc)
/* f07691c: 15a10035 */ bne $t5,$at,.L0f0769f4
/* f076920: 25ef9bbc */ addiu $t7,$t7,%lo(var80069bbc)
/* f076924: 8de10000 */ lw $at,0x0($t7)
/* f076928: 8dec0004 */ lw $t4,0x4($t7)
/* f07692c: 27ab0100 */ addiu $t3,$sp,0x100
/* f076930: ad610000 */ sw $at,0x0($t3)
/* f076934: 0c004b70 */ jal random
/* f076938: ad6c0004 */ sw $t4,0x4($t3)
/* f07693c: 304e0003 */ andi $t6,$v0,0x3
/* f076940: 000ec840 */ sll $t9,$t6,0x1
/* f076944: 03b93021 */ addu $a2,$sp,$t9
/* f076948: 84c60100 */ lh $a2,0x100($a2)
/* f07694c: 3c01bf80 */ lui $at,0xbf80
/* f076950: 44810000 */ mtc1 $at,$f0
/* f076954: 2409ffff */ addiu $t1,$zero,-1
/* f076958: 2418ffff */ addiu $t8,$zero,-1
/* f07695c: afb8002c */ sw $t8,0x2c($sp)
/* f076960: afa90010 */ sw $t1,0x10($sp)
/* f076964: afa00028 */ sw $zero,0x28($sp)
/* f076968: afa00020 */ sw $zero,0x20($sp)
/* f07696c: afa0001c */ sw $zero,0x1c($sp)
/* f076970: afa00018 */ sw $zero,0x18($sp)
/* f076974: afa00014 */ sw $zero,0x14($sp)
/* f076978: 00002025 */ or $a0,$zero,$zero
/* f07697c: 02402825 */ or $a1,$s2,$zero
/* f076980: 2407ffff */ addiu $a3,$zero,-1
/* f076984: e7a00024 */ swc1 $f0,0x24($sp)
/* f076988: e7a00030 */ swc1 $f0,0x30($sp)
/* f07698c: e7a00034 */ swc1 $f0,0x34($sp)
/* f076990: 0fc24e7e */ jal propsnd0f0939f8
/* f076994: e7a00038 */ swc1 $f0,0x38($sp)
/* f076998: 3c01bf80 */ lui $at,0xbf80
/* f07699c: 44810000 */ mtc1 $at,$f0
/* f0769a0: 240dffff */ addiu $t5,$zero,-1
/* f0769a4: 240affff */ addiu $t2,$zero,-1
/* f0769a8: afaa002c */ sw $t2,0x2c($sp)
/* f0769ac: afad0010 */ sw $t5,0x10($sp)
/* f0769b0: 00002025 */ or $a0,$zero,$zero
/* f0769b4: 02402825 */ or $a1,$s2,$zero
/* f0769b8: 2406808c */ addiu $a2,$zero,-32628
/* f0769bc: 2407ffff */ addiu $a3,$zero,-1
/* f0769c0: afa00014 */ sw $zero,0x14($sp)
/* f0769c4: afa00018 */ sw $zero,0x18($sp)
/* f0769c8: afa0001c */ sw $zero,0x1c($sp)
/* f0769cc: afa00020 */ sw $zero,0x20($sp)
/* f0769d0: afa00028 */ sw $zero,0x28($sp)
/* f0769d4: e7a00024 */ swc1 $f0,0x24($sp)
/* f0769d8: e7a00030 */ swc1 $f0,0x30($sp)
/* f0769dc: e7a00034 */ swc1 $f0,0x34($sp)
/* f0769e0: 0fc24e7e */ jal propsnd0f0939f8
/* f0769e4: e7a00038 */ swc1 $f0,0x38($sp)
/* f0769e8: 3c03800a */ lui $v1,%hi(g_Vars+0xc)
/* f0769ec: 10000016 */ b .L0f076a48
/* f0769f0: 8c639fcc */ lw $v1,%lo(g_Vars+0xc)($v1)
.L0f0769f4:
/* f0769f4: 3c01bf80 */ lui $at,0xbf80
/* f0769f8: 44810000 */ mtc1 $at,$f0
/* f0769fc: 240bffff */ addiu $t3,$zero,-1
/* f076a00: 240fffff */ addiu $t7,$zero,-1
/* f076a04: afaf002c */ sw $t7,0x2c($sp)
/* f076a08: afab0010 */ sw $t3,0x10($sp)
/* f076a0c: 02402825 */ or $a1,$s2,$zero
/* f076a10: 2406808c */ addiu $a2,$zero,-32628
/* f076a14: 2407ffff */ addiu $a3,$zero,-1
/* f076a18: afa00014 */ sw $zero,0x14($sp)
/* f076a1c: afa00018 */ sw $zero,0x18($sp)
/* f076a20: afa0001c */ sw $zero,0x1c($sp)
/* f076a24: afa00020 */ sw $zero,0x20($sp)
/* f076a28: afa00028 */ sw $zero,0x28($sp)
/* f076a2c: e7a00024 */ swc1 $f0,0x24($sp)
/* f076a30: e7a00030 */ swc1 $f0,0x30($sp)
/* f076a34: e7a00034 */ swc1 $f0,0x34($sp)
/* f076a38: 0fc24e7e */ jal propsnd0f0939f8
/* f076a3c: e7a00038 */ swc1 $f0,0x38($sp)
/* f076a40: 3c03800a */ lui $v1,%hi(g_Vars+0xc)
/* f076a44: 8c639fcc */ lw $v1,%lo(g_Vars+0xc)($v1)
.L0f076a48:
/* f076a48: ae0300a4 */ sw $v1,0xa4($s0)
.L0f076a4c:
/* f076a4c: 02202025 */ or $a0,$s1,$zero
.L0f076a50:
/* f076a50: 24050001 */ addiu $a1,$zero,0x1
/* f076a54: 0fc1a71c */ jal func0f069c70
/* f076a58: 24060001 */ addiu $a2,$zero,0x1
/* f076a5c: 1000012d */ b .L0f076f14
/* f076a60: 8fbf005c */ lw $ra,0x5c($sp)
.L0f076a64:
/* f076a64: 1180012a */ beqz $t4,.L0f076f10
/* f076a68: 3c013f80 */ lui $at,0x3f80
/* f076a6c: 240e0001 */ addiu $t6,$zero,0x1
/* f076a70: afae00fc */ sw $t6,0xfc($sp)
/* f076a74: 44816000 */ mtc1 $at,$f12
/* f076a78: c6000060 */ lwc1 $f0,0x60($s0)
/* f076a7c: 26040068 */ addiu $a0,$s0,0x68
/* f076a80: 26050078 */ addiu $a1,$s0,0x78
/* f076a84: 460c003c */ c.lt.s $f0,$f12
/* f076a88: 00000000 */ nop
/* f076a8c: 4502002a */ bc1fl .L0f076b38
/* f076a90: 4480a000 */ mtc1 $zero,$f20
/* f076a94: c6020064 */ lwc1 $f2,0x64($s0)
/* f076a98: c46a004c */ lwc1 $f10,0x4c($v1)
/* f076a9c: 3c017f1b */ lui $at,%hi(var7f1aa428)
/* f076aa0: 460a1182 */ mul.s $f6,$f2,$f10
/* f076aa4: 46060100 */ add.s $f4,$f0,$f6
/* f076aa8: e6040060 */ swc1 $f4,0x60($s0)
/* f076aac: 8c790038 */ lw $t9,0x38($v1)
/* f076ab0: 5b200005 */ blezl $t9,.L0f076ac8
/* f076ab4: c6000060 */ lwc1 $f0,0x60($s0)
/* f076ab8: c428a428 */ lwc1 $f8,%lo(var7f1aa428)($at)
/* f076abc: 46081282 */ mul.s $f10,$f2,$f8
/* f076ac0: e60a0064 */ swc1 $f10,0x64($s0)
/* f076ac4: c6000060 */ lwc1 $f0,0x60($s0)
.L0f076ac8:
/* f076ac8: 4600603c */ c.lt.s $f12,$f0
/* f076acc: 00000000 */ nop
/* f076ad0: 45020004 */ bc1fl .L0f076ae4
/* f076ad4: 44060000 */ mfc1 $a2,$f0
/* f076ad8: e60c0060 */ swc1 $f12,0x60($s0)
/* f076adc: c6000060 */ lwc1 $f0,0x60($s0)
/* f076ae0: 44060000 */ mfc1 $a2,$f0
.L0f076ae4:
/* f076ae4: 0fc25cae */ jal quaternionSlerp
/* f076ae8: 27a700ec */ addiu $a3,$sp,0xec
/* f076aec: 27a400ec */ addiu $a0,$sp,0xec
/* f076af0: 0fc25bb5 */ jal quaternionToMtx
/* f076af4: 27a500ac */ addiu $a1,$sp,0xac
/* f076af8: c60c00b8 */ lwc1 $f12,0xb8($s0)
/* f076afc: 0c005789 */ jal mtx00015e24
/* f076b00: 27a500ac */ addiu $a1,$sp,0xac
/* f076b04: c60c00bc */ lwc1 $f12,0xbc($s0)
/* f076b08: 0c0057a0 */ jal mtx00015e80
/* f076b0c: 27a500ac */ addiu $a1,$sp,0xac
/* f076b10: c60c00c0 */ lwc1 $f12,0xc0($s0)
/* f076b14: 0c0057b7 */ jal mtx00015edc
/* f076b18: 27a500ac */ addiu $a1,$sp,0xac
/* f076b1c: 27a400ac */ addiu $a0,$sp,0xac
/* f076b20: 0c005768 */ jal mtx4ToMtx3
/* f076b24: 2625001c */ addiu $a1,$s1,0x1c
/* f076b28: 3c013f80 */ lui $at,0x3f80
/* f076b2c: 44816000 */ mtc1 $at,$f12
/* f076b30: afa000fc */ sw $zero,0xfc($sp)
/* f076b34: 4480a000 */ mtc1 $zero,$f20
.L0f076b38:
/* f076b38: c6060004 */ lwc1 $f6,0x4($s0)
/* f076b3c: 02202025 */ or $a0,$s1,$zero
/* f076b40: 2629001c */ addiu $t1,$s1,0x1c
/* f076b44: 4606a032 */ c.eq.s $f20,$f6
/* f076b48: 00000000 */ nop
/* f076b4c: 4502000c */ bc1fl .L0f076b80
/* f076b50: afa90074 */ sw $t1,0x74($sp)
/* f076b54: c604000c */ lwc1 $f4,0xc($s0)
/* f076b58: 4604a032 */ c.eq.s $f20,$f4
/* f076b5c: 00000000 */ nop
/* f076b60: 45020007 */ bc1fl .L0f076b80
/* f076b64: afa90074 */ sw $t1,0x74($sp)
/* f076b68: c6080060 */ lwc1 $f8,0x60($s0)
/* f076b6c: 460c403c */ c.lt.s $f8,$f12
/* f076b70: 00000000 */ nop
/* f076b74: 450200d4 */ bc1fl .L0f076ec8
/* f076b78: 8faf00fc */ lw $t7,0xfc($sp)
/* f076b7c: afa90074 */ sw $t1,0x74($sp)
.L0f076b80:
/* f076b80: 0fc1a2bd */ jal objFindBboxRodata
/* f076b84: afa000fc */ sw $zero,0xfc($sp)
/* f076b88: 00402025 */ or $a0,$v0,$zero
/* f076b8c: 0fc19a57 */ jal func0f06695c
/* f076b90: 8fa50074 */ lw $a1,0x74($sp)
/* f076b94: 3c03800a */ lui $v1,%hi(g_Vars+0x38)
/* f076b98: 8c639ff8 */ lw $v1,%lo(g_Vars+0x38)($v1)
/* f076b9c: e7a00098 */ swc1 $f0,0x98($sp)
/* f076ba0: 00001025 */ or $v0,$zero,$zero
/* f076ba4: 1860004d */ blez $v1,.L0f076cdc
/* f076ba8: 3c017f1b */ lui $at,%hi(var7f1aa42c)
/* f076bac: c430a42c */ lwc1 $f16,%lo(var7f1aa42c)($at)
/* f076bb0: c7aa05dc */ lwc1 $f10,0x5dc($sp)
.L0f076bb4:
/* f076bb4: c6060004 */ lwc1 $f6,0x4($s0)
/* f076bb8: c7a805e4 */ lwc1 $f8,0x5e4($sp)
/* f076bbc: 3c013f80 */ lui $at,0x3f80
/* f076bc0: 46065100 */ add.s $f4,$f10,$f6
/* f076bc4: e7a405dc */ swc1 $f4,0x5dc($sp)
/* f076bc8: c60a000c */ lwc1 $f10,0xc($s0)
/* f076bcc: 460a4180 */ add.s $f6,$f8,$f10
/* f076bd0: 44814000 */ mtc1 $at,$f8
/* f076bd4: e7a605e4 */ swc1 $f6,0x5e4($sp)
/* f076bd8: c6040060 */ lwc1 $f4,0x60($s0)
/* f076bdc: 4604403e */ c.le.s $f8,$f4
/* f076be0: 00000000 */ nop
/* f076be4: 4502003a */ bc1fl .L0f076cd0
/* f076be8: 24420001 */ addiu $v0,$v0,0x1
/* f076bec: c60a0098 */ lwc1 $f10,0x98($s0)
/* f076bf0: 460aa03c */ c.lt.s $f20,$f10
/* f076bf4: 00000000 */ nop
/* f076bf8: 4502002c */ bc1fl .L0f076cac
/* f076bfc: c6080004 */ lwc1 $f8,0x4($s0)
/* f076c00: c602000c */ lwc1 $f2,0xc($s0)
/* f076c04: c60e0004 */ lwc1 $f14,0x4($s0)
/* f076c08: afa2009c */ sw $v0,0x9c($sp)
/* f076c0c: 46021182 */ mul.s $f6,$f2,$f2
/* f076c10: 00000000 */ nop
/* f076c14: 460e7102 */ mul.s $f4,$f14,$f14
/* f076c18: 0c012974 */ jal sqrtf
/* f076c1c: 46043300 */ add.s $f12,$f6,$f4
/* f076c20: 4600a03c */ c.lt.s $f20,$f0
/* f076c24: 3c017f1b */ lui $at,%hi(var7f1aa430)
/* f076c28: c430a430 */ lwc1 $f16,%lo(var7f1aa430)($at)
/* f076c2c: 8fa2009c */ lw $v0,0x9c($sp)
/* f076c30: 45000019 */ bc1f .L0f076c98
/* f076c34: 3c03800a */ lui $v1,%hi(g_Vars+0x38)
/* f076c38: 3c01800a */ lui $at,%hi(g_Vars+0x4c)
/* f076c3c: c42aa00c */ lwc1 $f10,%lo(g_Vars+0x4c)($at)
/* f076c40: c6080098 */ lwc1 $f8,0x98($s0)
/* f076c44: 3c013f80 */ lui $at,0x3f80
/* f076c48: 44812000 */ mtc1 $at,$f4
/* f076c4c: 460a4182 */ mul.s $f6,$f8,$f10
/* f076c50: 46003303 */ div.s $f12,$f6,$f0
/* f076c54: 460c203e */ c.le.s $f4,$f12
/* f076c58: 00000000 */ nop
/* f076c5c: 45020005 */ bc1fl .L0f076c74
/* f076c60: c60e0004 */ lwc1 $f14,0x4($s0)
/* f076c64: e6140004 */ swc1 $f20,0x4($s0)
/* f076c68: 1000000d */ b .L0f076ca0
/* f076c6c: e614000c */ swc1 $f20,0xc($s0)
/* f076c70: c60e0004 */ lwc1 $f14,0x4($s0)
.L0f076c74:
/* f076c74: c602000c */ lwc1 $f2,0xc($s0)
/* f076c78: 460c7202 */ mul.s $f8,$f14,$f12
/* f076c7c: 00000000 */ nop
/* f076c80: 460c1182 */ mul.s $f6,$f2,$f12
/* f076c84: 46087281 */ sub.s $f10,$f14,$f8
/* f076c88: 46061101 */ sub.s $f4,$f2,$f6
/* f076c8c: e60a0004 */ swc1 $f10,0x4($s0)
/* f076c90: 10000003 */ b .L0f076ca0
/* f076c94: e604000c */ swc1 $f4,0xc($s0)
.L0f076c98:
/* f076c98: e6140004 */ swc1 $f20,0x4($s0)
/* f076c9c: e614000c */ swc1 $f20,0xc($s0)
.L0f076ca0:
/* f076ca0: 1000000a */ b .L0f076ccc
/* f076ca4: 8c639ff8 */ lw $v1,%lo(g_Vars+0x38)($v1)
/* f076ca8: c6080004 */ lwc1 $f8,0x4($s0)
.L0f076cac:
/* f076cac: c606000c */ lwc1 $f6,0xc($s0)
/* f076cb0: 3c03800a */ lui $v1,%hi(g_Vars+0x38)
/* f076cb4: 46104282 */ mul.s $f10,$f8,$f16
/* f076cb8: 00000000 */ nop
/* f076cbc: 46103102 */ mul.s $f4,$f6,$f16
/* f076cc0: e60a0004 */ swc1 $f10,0x4($s0)
/* f076cc4: e604000c */ swc1 $f4,0xc($s0)
/* f076cc8: 8c639ff8 */ lw $v1,%lo(g_Vars+0x38)($v1)
.L0f076ccc:
/* f076ccc: 24420001 */ addiu $v0,$v0,0x1
.L0f076cd0:
/* f076cd0: 0043082a */ slt $at,$v0,$v1
/* f076cd4: 5420ffb7 */ bnezl $at,.L0f076bb4
/* f076cd8: c7aa05dc */ lwc1 $f10,0x5dc($sp)
.L0f076cdc:
/* f076cdc: c6480008 */ lwc1 $f8,0x8($s2)
/* f076ce0: 26440028 */ addiu $a0,$s2,0x28
/* f076ce4: 27a505b8 */ addiu $a1,$sp,0x5b8
/* f076ce8: e7a805c8 */ swc1 $f8,0x5c8($sp)
/* f076cec: c64a000c */ lwc1 $f10,0xc($s2)
/* f076cf0: e7aa05cc */ swc1 $f10,0x5cc($sp)
/* f076cf4: c6460010 */ lwc1 $f6,0x10($s2)
/* f076cf8: afa4006c */ sw $a0,0x6c($sp)
/* f076cfc: 0fc195e9 */ jal roomsCopy
/* f076d00: e7a605d0 */ swc1 $f6,0x5d0($sp)
/* f076d04: 02202025 */ or $a0,$s1,$zero
/* f076d08: 27a505dc */ addiu $a1,$sp,0x5dc
/* f076d0c: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f076d10: 0fc1b4df */ jal func0f06d37c
/* f076d14: 27a705f4 */ addiu $a3,$sp,0x5f4
/* f076d18: 24180001 */ addiu $t8,$zero,0x1
/* f076d1c: afb805d8 */ sw $t8,0x5d8($sp)
/* f076d20: c6440008 */ lwc1 $f4,0x8($s2)
/* f076d24: c7aa0098 */ lwc1 $f10,0x98($sp)
/* f076d28: 26270058 */ addiu $a3,$s1,0x58
/* f076d2c: e7a405ac */ swc1 $f4,0x5ac($sp)
/* f076d30: c648000c */ lwc1 $f8,0xc($s2)
/* f076d34: 27ad0096 */ addiu $t5,$sp,0x96
/* f076d38: 27a405ac */ addiu $a0,$sp,0x5ac
/* f076d3c: 460a4180 */ add.s $f6,$f8,$f10
/* f076d40: 8fa5006c */ lw $a1,0x6c($sp)
/* f076d44: 27a600a4 */ addiu $a2,$sp,0xa4
/* f076d48: e7a605b0 */ swc1 $f6,0x5b0($sp)
/* f076d4c: c6440010 */ lwc1 $f4,0x10($s2)
/* f076d50: afa70074 */ sw $a3,0x74($sp)
/* f076d54: afad0010 */ sw $t5,0x10($sp)
/* f076d58: 0c00a934 */ jal cd0002a4d0
/* f076d5c: e7a405b4 */ swc1 $f4,0x5b4($sp)
/* f076d60: 00021c00 */ sll $v1,$v0,0x10
/* f076d64: 1840000b */ blez $v0,.L0f076d94
/* f076d68: 00035403 */ sra $t2,$v1,0x10
/* f076d6c: 240b0003 */ addiu $t3,$zero,0x3
/* f076d70: afab0010 */ sw $t3,0x10($sp)
/* f076d74: 27a405c8 */ addiu $a0,$sp,0x5c8
/* f076d78: 27a505b8 */ addiu $a1,$sp,0x5b8
/* f076d7c: 27a605ac */ addiu $a2,$sp,0x5ac
/* f076d80: 24070021 */ addiu $a3,$zero,0x21
/* f076d84: 0c00b6e6 */ jal cd0002db98
/* f076d88: a7aa00a2 */ sh $t2,0xa2($sp)
/* f076d8c: 1040000b */ beqz $v0,.L0f076dbc
/* f076d90: 87a300a2 */ lh $v1,0xa2($sp)
.L0f076d94:
/* f076d94: 27af0096 */ addiu $t7,$sp,0x96
/* f076d98: afaf0010 */ sw $t7,0x10($sp)
/* f076d9c: 26440008 */ addiu $a0,$s2,0x8
/* f076da0: 8fa5006c */ lw $a1,0x6c($sp)
/* f076da4: 27a600a4 */ addiu $a2,$sp,0xa4
/* f076da8: 0c00a910 */ jal cd0002a440
/* f076dac: 8fa70074 */ lw $a3,0x74($sp)
/* f076db0: 00021c00 */ sll $v1,$v0,0x10
/* f076db4: 00036403 */ sra $t4,$v1,0x10
/* f076db8: 01801825 */ or $v1,$t4,$zero
.L0f076dbc:
/* f076dbc: 1c600017 */ bgtz $v1,.L0f076e1c
/* f076dc0: c7a805c8 */ lwc1 $f8,0x5c8($sp)
/* f076dc4: e6480008 */ swc1 $f8,0x8($s2)
/* f076dc8: c7aa05d0 */ lwc1 $f10,0x5d0($sp)
/* f076dcc: 264e0008 */ addiu $t6,$s2,0x8
/* f076dd0: 02402025 */ or $a0,$s2,$zero
/* f076dd4: e64a0010 */ swc1 $f10,0x10($s2)
/* f076dd8: 0fc19711 */ jal propDeregisterRooms
/* f076ddc: afae0070 */ sw $t6,0x70($sp)
/* f076de0: 27a405b8 */ addiu $a0,$sp,0x5b8
/* f076de4: 0fc195e9 */ jal roomsCopy
/* f076de8: 8fa5006c */ lw $a1,0x6c($sp)
/* f076dec: 27b90096 */ addiu $t9,$sp,0x96
/* f076df0: afb90010 */ sw $t9,0x10($sp)
/* f076df4: 8fa40070 */ lw $a0,0x70($sp)
/* f076df8: 8fa5006c */ lw $a1,0x6c($sp)
/* f076dfc: 27a600a4 */ addiu $a2,$sp,0xa4
/* f076e00: 0c00a910 */ jal cd0002a440
/* f076e04: 8fa70074 */ lw $a3,0x74($sp)
/* f076e08: 00021c00 */ sll $v1,$v0,0x10
/* f076e0c: 00034c03 */ sra $t1,$v1,0x10
/* f076e10: 01201825 */ or $v1,$t1,$zero
/* f076e14: e6140004 */ swc1 $f20,0x4($s0)
/* f076e18: e614000c */ swc1 $f20,0xc($s0)
.L0f076e1c:
/* f076e1c: 18600010 */ blez $v1,.L0f076e60
/* f076e20: c7a605cc */ lwc1 $f6,0x5cc($sp)
/* f076e24: 0fc1a988 */ jal func0f06a620
/* f076e28: 02202025 */ or $a0,$s1,$zero
/* f076e2c: c7a600a4 */ lwc1 $f6,0xa4($sp)
/* f076e30: c7a40098 */ lwc1 $f4,0x98($sp)
/* f076e34: 46043201 */ sub.s $f8,$f6,$f4
/* f076e38: 46080280 */ add.s $f10,$f0,$f8
/* f076e3c: e64a000c */ swc1 $f10,0xc($s2)
/* f076e40: 97b80096 */ lhu $t8,0x96($sp)
/* f076e44: 330d4000 */ andi $t5,$t8,0x4000
/* f076e48: 11a00006 */ beqz $t5,.L0f076e64
/* f076e4c: 00000000 */ nop
/* f076e50: 8e2a0040 */ lw $t2,0x40($s1)
/* f076e54: 354b0004 */ ori $t3,$t2,0x4
/* f076e58: 10000002 */ b .L0f076e64
/* f076e5c: ae2b0040 */ sw $t3,0x40($s1)
.L0f076e60:
/* f076e60: e646000c */ swc1 $f6,0xc($s2)
.L0f076e64:
/* f076e64: 3c017f1b */ lui $at,%hi(var7f1aa434)
/* f076e68: c430a434 */ lwc1 $f16,%lo(var7f1aa434)($at)
/* f076e6c: c60e0004 */ lwc1 $f14,0x4($s0)
/* f076e70: 3c017f1b */ lui $at,%hi(var7f1aa438)
/* f076e74: 4610703c */ c.lt.s $f14,$f16
/* f076e78: 00000000 */ nop
/* f076e7c: 45020012 */ bc1fl .L0f076ec8
/* f076e80: 8faf00fc */ lw $t7,0xfc($sp)
/* f076e84: c432a438 */ lwc1 $f18,%lo(var7f1aa438)($at)
/* f076e88: 460e903c */ c.lt.s $f18,$f14
/* f076e8c: 00000000 */ nop
/* f076e90: 4502000d */ bc1fl .L0f076ec8
/* f076e94: 8faf00fc */ lw $t7,0xfc($sp)
/* f076e98: c602000c */ lwc1 $f2,0xc($s0)
/* f076e9c: 4610103c */ c.lt.s $f2,$f16
/* f076ea0: 00000000 */ nop
/* f076ea4: 45020008 */ bc1fl .L0f076ec8
/* f076ea8: 8faf00fc */ lw $t7,0xfc($sp)
/* f076eac: 4602903c */ c.lt.s $f18,$f2
/* f076eb0: 00000000 */ nop
/* f076eb4: 45020004 */ bc1fl .L0f076ec8
/* f076eb8: 8faf00fc */ lw $t7,0xfc($sp)
/* f076ebc: e614000c */ swc1 $f20,0xc($s0)
/* f076ec0: e6140004 */ swc1 $f20,0x4($s0)
/* f076ec4: 8faf00fc */ lw $t7,0xfc($sp)
.L0f076ec8:
/* f076ec8: 51e0000b */ beqzl $t7,.L0f076ef8
/* f076ecc: 8fae05d8 */ lw $t6,0x5d8($sp)
/* f076ed0: 0fc1ab10 */ jal objEndFlight
/* f076ed4: 02202025 */ or $a0,$s1,$zero
/* f076ed8: 922c0003 */ lbu $t4,0x3($s1)
/* f076edc: 24010008 */ addiu $at,$zero,0x8
/* f076ee0: 26450028 */ addiu $a1,$s2,0x28
/* f076ee4: 55810004 */ bnel $t4,$at,.L0f076ef8
/* f076ee8: 8fae05d8 */ lw $t6,0x5d8($sp)
/* f076eec: 0fc257f6 */ jal objectiveCheckThrowInRoom
/* f076ef0: 9224005c */ lbu $a0,0x5c($s1)
/* f076ef4: 8fae05d8 */ lw $t6,0x5d8($sp)
.L0f076ef8:
/* f076ef8: 02202025 */ or $a0,$s1,$zero
/* f076efc: 24050001 */ addiu $a1,$zero,0x1
/* f076f00: 51c00004 */ beqzl $t6,.L0f076f14
/* f076f04: 8fbf005c */ lw $ra,0x5c($sp)
/* f076f08: 0fc1a71c */ jal func0f069c70
/* f076f0c: 24060001 */ addiu $a2,$zero,0x1
.L0f076f10:
/* f076f10: 8fbf005c */ lw $ra,0x5c($sp)
.L0f076f14:
/* f076f14: 8fa205d8 */ lw $v0,0x5d8($sp)
/* f076f18: d7b40048 */ ldc1 $f20,0x48($sp)
/* f076f1c: 8fb00050 */ lw $s0,0x50($sp)
/* f076f20: 8fb10054 */ lw $s1,0x54($sp)
/* f076f24: 8fb20058 */ lw $s2,0x58($sp)
/* f076f28: 03e00008 */ jr $ra
/* f076f2c: 27bd0608 */ addiu $sp,$sp,0x608
);
#else
GLOBAL_ASM(
glabel func0f073c6c
.late_rodata
glabel var7f1aa3d4
.word 0x3c23d70a
glabel var7f1aa3d8
.word 0x3c23d70a
glabel var7f1aa3dc
.word 0x38d1b717
glabel var7f1aa3e0
.word 0x3c23d70a
glabel var7f1aa3e4
.word 0x3c23d70a
glabel var7f1aa3e8
.word 0x3c23d70a
glabel var7f1aa3ec
.word 0xc6ea6000
glabel var7f1aa3f0
.word 0xc69c4000
glabel var7f1aa3f4
.word 0x3e8e38e4
glabel var7f1aa3f8
.word 0x3c360b61
glabel var7f1aa3fc
.word 0x3d8f5c29
glabel var7f1aa400
.word 0x3e8e38e4
glabel var7f1aa404
.word 0x3a83126f
glabel var7f1aa408
.word 0xba83126f
glabel var7f1aa40c
.word 0x3e8e38e4
glabel var7f1aa410
.word 0x3e0e38e4
glabel var7f1aa414
.word 0x400e38e4
glabel var7f1aa418
.word 0x46d9038c
glabel var7f1aa41c
.word 0x3dcccccd
glabel var7f1aa420
.word 0xbdcccccd
glabel var7f1aa424
.word 0xbdcccccd
glabel var7f1aa428
.word 0x3f8ccccd
glabel var7f1aa42c
.word 0x3f666666
glabel var7f1aa430
.word 0x3f666666
glabel var7f1aa434
.word 0x3dcccccd
glabel var7f1aa438
.word 0xbdcccccd
.text
/* f072a00: 27bdf9f8 */ addiu $sp,$sp,-1544
/* f072a04: 3c03800a */ lui $v1,0x800a
/* f072a08: 2463e6c0 */ addiu $v1,$v1,-6464
/* f072a0c: 8c6e0034 */ lw $t6,0x34($v1)
/* f072a10: afbf005c */ sw $ra,0x5c($sp)
/* f072a14: afb20058 */ sw $s2,0x58($sp)
/* f072a18: afb10054 */ sw $s1,0x54($sp)
/* f072a1c: afb00050 */ sw $s0,0x50($sp)
/* f072a20: f7b40048 */ sdc1 $f20,0x48($sp)
/* f072a24: afa5060c */ sw $a1,0x60c($sp)
/* f072a28: 8c900048 */ lw $s0,0x48($a0)
/* f072a2c: afa005d8 */ sw $zero,0x5d8($sp)
/* f072a30: 00808825 */ or $s1,$a0,$zero
/* f072a34: 19c00c37 */ blez $t6,.NB0f075b14
/* f072a38: 8c920014 */ lw $s2,0x14($a0)
/* f072a3c: 908f0003 */ lbu $t7,0x3($a0)
/* f072a40: 24010008 */ addiu $at,$zero,0x8
/* f072a44: 55e1000a */ bnel $t7,$at,.NB0f072a70
/* f072a48: 8e020000 */ lw $v0,0x0($s0)
/* f072a4c: 9098005c */ lbu $t8,0x5c($a0)
/* f072a50: 24010057 */ addiu $at,$zero,0x57
/* f072a54: 57010006 */ bnel $t8,$at,.NB0f072a70
/* f072a58: 8e020000 */ lw $v0,0x0($s0)
/* f072a5c: 0fc1c883 */ jal rocketTickFbw
/* f072a60: 00000000 */ sll $zero,$zero,0x0
/* f072a64: 10000c2b */ beqz $zero,.NB0f075b14
/* f072a68: afa205d8 */ sw $v0,0x5d8($sp)
/* f072a6c: 8e020000 */ lw $v0,0x0($s0)
.NB0f072a70:
/* f072a70: 2401cfff */ addiu $at,$zero,-12289
/* f072a74: 30591000 */ andi $t9,$v0,0x1000
/* f072a78: 13200006 */ beqz $t9,.NB0f072a94
/* f072a7c: 30492000 */ andi $t1,$v0,0x2000
/* f072a80: 0009502b */ sltu $t2,$zero,$t1
/* f072a84: afaa05d8 */ sw $t2,0x5d8($sp)
/* f072a88: 00415824 */ and $t3,$v0,$at
/* f072a8c: 10000c21 */ beqz $zero,.NB0f075b14
/* f072a90: ae0b0000 */ sw $t3,0x0($s0)
.NB0f072a94:
/* f072a94: 8e2c0040 */ lw $t4,0x40($s1)
/* f072a98: 3c01fffd */ lui $at,0xfffd
/* f072a9c: 3421ffff */ ori $at,$at,0xffff
/* f072aa0: 01816824 */ and $t5,$t4,$at
/* f072aa4: ae2d0040 */ sw $t5,0x40($s1)
/* f072aa8: 8e0e0000 */ lw $t6,0x0($s0)
/* f072aac: 02202025 */ or $a0,$s1,$zero
/* f072ab0: 02002825 */ or $a1,$s0,$zero
/* f072ab4: 31cf0080 */ andi $t7,$t6,0x80
/* f072ab8: 11e00005 */ beqz $t7,.NB0f072ad0
/* f072abc: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f072ac0: 0fc1ca1f */ jal func0f073ae8
/* f072ac4: 27a705f4 */ addiu $a3,$sp,0x5f4
/* f072ac8: 3c03800a */ lui $v1,0x800a
/* f072acc: 2463e6c0 */ addiu $v1,$v1,-6464
.NB0f072ad0:
/* f072ad0: c6440008 */ lwc1 $f4,0x8($s2)
/* f072ad4: 2624001c */ addiu $a0,$s1,0x1c
/* f072ad8: 27a50504 */ addiu $a1,$sp,0x504
/* f072adc: e7a405dc */ swc1 $f4,0x5dc($sp)
/* f072ae0: c646000c */ lwc1 $f6,0xc($s2)
/* f072ae4: e7a605e0 */ swc1 $f6,0x5e0($sp)
/* f072ae8: c6480010 */ lwc1 $f8,0x10($s2)
/* f072aec: e7a805e4 */ swc1 $f8,0x5e4($sp)
/* f072af0: 8e0200b4 */ lw $v0,0xb4($s0)
/* f072af4: 58400005 */ blezl $v0,.NB0f072b0c
/* f072af8: 8e020000 */ lw $v0,0x0($s0)
/* f072afc: 8c780034 */ lw $t8,0x34($v1)
/* f072b00: 0058c823 */ subu $t9,$v0,$t8
/* f072b04: ae1900b4 */ sw $t9,0xb4($s0)
/* f072b08: 8e020000 */ lw $v0,0x0($s0)
.NB0f072b0c:
/* f072b0c: 30490800 */ andi $t1,$v0,0x800
/* f072b10: 11200370 */ beqz $t1,.NB0f0738d4
/* f072b14: 304d0001 */ andi $t5,$v0,0x1
/* f072b18: 0c005b11 */ jal mtx3ToMtx4
/* f072b1c: afa40078 */ sw $a0,0x78($sp)
/* f072b20: 26440008 */ addiu $a0,$s2,0x8
/* f072b24: afa40074 */ sw $a0,0x74($sp)
/* f072b28: 0c005b31 */ jal mtx4SetTranslation
/* f072b2c: 27a50504 */ addiu $a1,$sp,0x504
/* f072b30: 4480a000 */ mtc1 $zero,$f20
/* f072b34: c60000dc */ lwc1 $f0,0xdc($s0)
/* f072b38: 3c01800a */ lui $at,0x800a
/* f072b3c: 4600a03c */ c.lt.s $f20,$f0
/* f072b40: 00000000 */ sll $zero,$zero,0x0
/* f072b44: 4502002c */ bc1fl .NB0f072bf8
/* f072b48: 4614003c */ c.lt.s $f0,$f20
/* f072b4c: c60a00e0 */ lwc1 $f10,0xe0($s0)
/* f072b50: c424e70c */ lwc1 $f4,-0x18f4($at)
/* f072b54: 3c013f80 */ lui $at,0x3f80
/* f072b58: 46045182 */ mul.s $f6,$f10,$f4
/* f072b5c: 46060201 */ sub.s $f8,$f0,$f6
/* f072b60: e60800dc */ swc1 $f8,0xdc($s0)
/* f072b64: c60a00dc */ lwc1 $f10,0xdc($s0)
/* f072b68: 4614503c */ c.lt.s $f10,$f20
/* f072b6c: 00000000 */ sll $zero,$zero,0x0
/* f072b70: 45020004 */ bc1fl .NB0f072b84
/* f072b74: c61000e4 */ lwc1 $f16,0xe4($s0)
/* f072b78: 1000004b */ beqz $zero,.NB0f072ca8
/* f072b7c: e61400dc */ swc1 $f20,0xdc($s0)
/* f072b80: c61000e4 */ lwc1 $f16,0xe4($s0)
.NB0f072b84:
/* f072b84: 44812000 */ mtc1 $at,$f4
/* f072b88: 3c03800a */ lui $v1,0x800a
/* f072b8c: 4604803c */ c.lt.s $f16,$f4
/* f072b90: 00000000 */ sll $zero,$zero,0x0
/* f072b94: 45020045 */ bc1fl .NB0f072cac
/* f072b98: c60e0004 */ lwc1 $f14,0x4($s0)
/* f072b9c: 8c63e6f8 */ lw $v1,-0x1908($v1)
/* f072ba0: 00001025 */ or $v0,$zero,$zero
/* f072ba4: 58600041 */ blezl $v1,.NB0f072cac
/* f072ba8: c60e0004 */ lwc1 $f14,0x4($s0)
/* f072bac: c60200ec */ lwc1 $f2,0xec($s0)
/* f072bb0: c60000dc */ lwc1 $f0,0xdc($s0)
.NB0f072bb4:
/* f072bb4: 24420001 */ addiu $v0,$v0,0x1
/* f072bb8: 4600103c */ c.lt.s $f2,$f0
/* f072bbc: 00000000 */ sll $zero,$zero,0x0
/* f072bc0: 45020008 */ bc1fl .NB0f072be4
/* f072bc4: 0043082a */ slt $at,$v0,$v1
/* f072bc8: 46020181 */ sub.s $f6,$f0,$f2
/* f072bcc: 3c03800a */ lui $v1,0x800a
/* f072bd0: 46103202 */ mul.s $f8,$f6,$f16
/* f072bd4: 46081280 */ add.s $f10,$f2,$f8
/* f072bd8: e60a00dc */ swc1 $f10,0xdc($s0)
/* f072bdc: 8c63e6f8 */ lw $v1,-0x1908($v1)
/* f072be0: 0043082a */ slt $at,$v0,$v1
.NB0f072be4:
/* f072be4: 5420fff3 */ bnezl $at,.NB0f072bb4
/* f072be8: c60000dc */ lwc1 $f0,0xdc($s0)
/* f072bec: 1000002f */ beqz $zero,.NB0f072cac
/* f072bf0: c60e0004 */ lwc1 $f14,0x4($s0)
/* f072bf4: 4614003c */ c.lt.s $f0,$f20
.NB0f072bf8:
/* f072bf8: 3c04800a */ lui $a0,0x800a
/* f072bfc: 2484e6c0 */ addiu $a0,$a0,-6464
/* f072c00: 4502002a */ bc1fl .NB0f072cac
/* f072c04: c60e0004 */ lwc1 $f14,0x4($s0)
/* f072c08: c60400e0 */ lwc1 $f4,0xe0($s0)
/* f072c0c: c486004c */ lwc1 $f6,0x4c($a0)
/* f072c10: 3c013f80 */ lui $at,0x3f80
/* f072c14: 46062202 */ mul.s $f8,$f4,$f6
/* f072c18: 46080280 */ add.s $f10,$f0,$f8
/* f072c1c: e60a00dc */ swc1 $f10,0xdc($s0)
/* f072c20: c60400dc */ lwc1 $f4,0xdc($s0)
/* f072c24: 4604a03c */ c.lt.s $f20,$f4
/* f072c28: 00000000 */ sll $zero,$zero,0x0
/* f072c2c: 45020004 */ bc1fl .NB0f072c40
/* f072c30: c61000e4 */ lwc1 $f16,0xe4($s0)
/* f072c34: 1000001c */ beqz $zero,.NB0f072ca8
/* f072c38: e61400dc */ swc1 $f20,0xdc($s0)
/* f072c3c: c61000e4 */ lwc1 $f16,0xe4($s0)
.NB0f072c40:
/* f072c40: 44813000 */ mtc1 $at,$f6
/* f072c44: 00000000 */ sll $zero,$zero,0x0
/* f072c48: 4606803c */ c.lt.s $f16,$f6
/* f072c4c: 00000000 */ sll $zero,$zero,0x0
/* f072c50: 45020016 */ bc1fl .NB0f072cac
/* f072c54: c60e0004 */ lwc1 $f14,0x4($s0)
/* f072c58: 8c830038 */ lw $v1,0x38($a0)
/* f072c5c: 00001025 */ or $v0,$zero,$zero
/* f072c60: 58600012 */ blezl $v1,.NB0f072cac
/* f072c64: c60e0004 */ lwc1 $f14,0x4($s0)
/* f072c68: c60200ec */ lwc1 $f2,0xec($s0)
/* f072c6c: 46001307 */ neg.s $f12,$f2
/* f072c70: c60000dc */ lwc1 $f0,0xdc($s0)
.NB0f072c74:
/* f072c74: 24420001 */ addiu $v0,$v0,0x1
/* f072c78: 460c003c */ c.lt.s $f0,$f12
/* f072c7c: 00000000 */ sll $zero,$zero,0x0
/* f072c80: 45020007 */ bc1fl .NB0f072ca0
/* f072c84: 0043082a */ slt $at,$v0,$v1
/* f072c88: 46020200 */ add.s $f8,$f0,$f2
/* f072c8c: 46104282 */ mul.s $f10,$f8,$f16
/* f072c90: 460a6100 */ add.s $f4,$f12,$f10
/* f072c94: e60400dc */ swc1 $f4,0xdc($s0)
/* f072c98: 8c830038 */ lw $v1,0x38($a0)
/* f072c9c: 0043082a */ slt $at,$v0,$v1
.NB0f072ca0:
/* f072ca0: 5420fff4 */ bnezl $at,.NB0f072c74
/* f072ca4: c60000dc */ lwc1 $f0,0xdc($s0)
.NB0f072ca8:
/* f072ca8: c60e0004 */ lwc1 $f14,0x4($s0)
.NB0f072cac:
/* f072cac: 460ea032 */ c.eq.s $f20,$f14
/* f072cb0: 00000000 */ sll $zero,$zero,0x0
/* f072cb4: 45020007 */ bc1fl .NB0f072cd4
/* f072cb8: c6080098 */ lwc1 $f8,0x98($s0)
/* f072cbc: c606000c */ lwc1 $f6,0xc($s0)
/* f072cc0: 4606a032 */ c.eq.s $f20,$f6
/* f072cc4: 00000000 */ sll $zero,$zero,0x0
/* f072cc8: 45030061 */ bc1tl .NB0f072e50
/* f072ccc: 8e040088 */ lw $a0,0x88($s0)
/* f072cd0: c6080098 */ lwc1 $f8,0x98($s0)
.NB0f072cd4:
/* f072cd4: 4608a03c */ c.lt.s $f20,$f8
/* f072cd8: 00000000 */ sll $zero,$zero,0x0
/* f072cdc: 4502005c */ bc1fl .NB0f072e50
/* f072ce0: 8e040088 */ lw $a0,0x88($s0)
/* f072ce4: c602000c */ lwc1 $f2,0xc($s0)
/* f072ce8: 46021282 */ mul.s $f10,$f2,$f2
/* f072cec: 00000000 */ sll $zero,$zero,0x0
/* f072cf0: 460e7102 */ mul.s $f4,$f14,$f14
/* f072cf4: 0c012e84 */ jal sqrtf
/* f072cf8: 46045300 */ add.s $f12,$f10,$f4
/* f072cfc: 4600a03c */ c.lt.s $f20,$f0
/* f072d00: 3c03800a */ lui $v1,0x800a
/* f072d04: 2463e6c0 */ addiu $v1,$v1,-6464
/* f072d08: 4502004f */ bc1fl .NB0f072e48
/* f072d0c: e6140004 */ swc1 $f20,0x4($s0)
/* f072d10: c6060098 */ lwc1 $f6,0x98($s0)
/* f072d14: c468004c */ lwc1 $f8,0x4c($v1)
/* f072d18: 3c013f80 */ lui $at,0x3f80
/* f072d1c: 44812000 */ mtc1 $at,$f4
/* f072d20: 46083282 */ mul.s $f10,$f6,$f8
/* f072d24: 46005303 */ div.s $f12,$f10,$f0
/* f072d28: 460c203e */ c.le.s $f4,$f12
/* f072d2c: 00000000 */ sll $zero,$zero,0x0
/* f072d30: 45020005 */ bc1fl .NB0f072d48
/* f072d34: c60e0004 */ lwc1 $f14,0x4($s0)
/* f072d38: e6140004 */ swc1 $f20,0x4($s0)
/* f072d3c: 10000043 */ beqz $zero,.NB0f072e4c
/* f072d40: e614000c */ swc1 $f20,0xc($s0)
/* f072d44: c60e0004 */ lwc1 $f14,0x4($s0)
.NB0f072d48:
/* f072d48: c602000c */ lwc1 $f2,0xc($s0)
/* f072d4c: 3c013f80 */ lui $at,0x3f80
/* f072d50: 460c7182 */ mul.s $f6,$f14,$f12
/* f072d54: c61000e4 */ lwc1 $f16,0xe4($s0)
/* f072d58: 460c1282 */ mul.s $f10,$f2,$f12
/* f072d5c: 46067201 */ sub.s $f8,$f14,$f6
/* f072d60: 44813000 */ mtc1 $at,$f6
/* f072d64: 460a1101 */ sub.s $f4,$f2,$f10
/* f072d68: e6080004 */ swc1 $f8,0x4($s0)
/* f072d6c: 4606803c */ c.lt.s $f16,$f6
/* f072d70: e604000c */ swc1 $f4,0xc($s0)
/* f072d74: 45020036 */ bc1fl .NB0f072e50
/* f072d78: 8e040088 */ lw $a0,0x88($s0)
/* f072d7c: 8c6a0038 */ lw $t2,0x38($v1)
/* f072d80: 00001025 */ or $v0,$zero,$zero
/* f072d84: 59400032 */ blezl $t2,.NB0f072e50
/* f072d88: 8e040088 */ lw $a0,0x88($s0)
/* f072d8c: c60c00f0 */ lwc1 $f12,0xf0($s0)
/* f072d90: c60e0004 */ lwc1 $f14,0x4($s0)
.NB0f072d94:
/* f072d94: 460e603c */ c.lt.s $f12,$f14
/* f072d98: 00000000 */ sll $zero,$zero,0x0
/* f072d9c: 45020007 */ bc1fl .NB0f072dbc
/* f072da0: 46006007 */ neg.s $f0,$f12
/* f072da4: 460c7201 */ sub.s $f8,$f14,$f12
/* f072da8: 46104282 */ mul.s $f10,$f8,$f16
/* f072dac: 460c5100 */ add.s $f4,$f10,$f12
/* f072db0: 1000000a */ beqz $zero,.NB0f072ddc
/* f072db4: e6040004 */ swc1 $f4,0x4($s0)
/* f072db8: 46006007 */ neg.s $f0,$f12
.NB0f072dbc:
/* f072dbc: 4600703c */ c.lt.s $f14,$f0
/* f072dc0: 00000000 */ sll $zero,$zero,0x0
/* f072dc4: 45020006 */ bc1fl .NB0f072de0
/* f072dc8: c602000c */ lwc1 $f2,0xc($s0)
/* f072dcc: 460c7180 */ add.s $f6,$f14,$f12
/* f072dd0: 46103202 */ mul.s $f8,$f6,$f16
/* f072dd4: 46004280 */ add.s $f10,$f8,$f0
/* f072dd8: e60a0004 */ swc1 $f10,0x4($s0)
.NB0f072ddc:
/* f072ddc: c602000c */ lwc1 $f2,0xc($s0)
.NB0f072de0:
/* f072de0: 4602603c */ c.lt.s $f12,$f2
/* f072de4: 00000000 */ sll $zero,$zero,0x0
/* f072de8: 45020007 */ bc1fl .NB0f072e08
/* f072dec: 46006007 */ neg.s $f0,$f12
/* f072df0: 460c1101 */ sub.s $f4,$f2,$f12
/* f072df4: 46102182 */ mul.s $f6,$f4,$f16
/* f072df8: 460c3200 */ add.s $f8,$f6,$f12
/* f072dfc: 1000000a */ beqz $zero,.NB0f072e28
/* f072e00: e608000c */ swc1 $f8,0xc($s0)
/* f072e04: 46006007 */ neg.s $f0,$f12
.NB0f072e08:
/* f072e08: 4600103c */ c.lt.s $f2,$f0
/* f072e0c: 00000000 */ sll $zero,$zero,0x0
/* f072e10: 45020006 */ bc1fl .NB0f072e2c
/* f072e14: 8c6b0038 */ lw $t3,0x38($v1)
/* f072e18: 460c1280 */ add.s $f10,$f2,$f12
/* f072e1c: 46105102 */ mul.s $f4,$f10,$f16
/* f072e20: 46002180 */ add.s $f6,$f4,$f0
/* f072e24: e606000c */ swc1 $f6,0xc($s0)
.NB0f072e28:
/* f072e28: 8c6b0038 */ lw $t3,0x38($v1)
.NB0f072e2c:
/* f072e2c: 24420001 */ addiu $v0,$v0,0x1
/* f072e30: 004b082a */ slt $at,$v0,$t3
/* f072e34: 5420ffd7 */ bnezl $at,.NB0f072d94
/* f072e38: c60e0004 */ lwc1 $f14,0x4($s0)
/* f072e3c: 10000004 */ beqz $zero,.NB0f072e50
/* f072e40: 8e040088 */ lw $a0,0x88($s0)
/* f072e44: e6140004 */ swc1 $f20,0x4($s0)
.NB0f072e48:
/* f072e48: e614000c */ swc1 $f20,0xc($s0)
.NB0f072e4c:
/* f072e4c: 8e040088 */ lw $a0,0x88($s0)
.NB0f072e50:
/* f072e50: 50800004 */ beqzl $a0,.NB0f072e64
/* f072e54: 86240006 */ lh $a0,0x6($s1)
/* f072e58: 0fc18cfb */ jal propSetPerimEnabled
/* f072e5c: 00002825 */ or $a1,$zero,$zero
/* f072e60: 86240006 */ lh $a0,0x6($s1)
.NB0f072e64:
/* f072e64: 288c0000 */ slti $t4,$a0,0x0
/* f072e68: 398c0001 */ xori $t4,$t4,0x1
/* f072e6c: 11800007 */ beqz $t4,.NB0f072e8c
/* f072e70: afac008c */ sw $t4,0x8c($sp)
/* f072e74: 8e2e0010 */ lw $t6,0x10($s1)
/* f072e78: 3c010100 */ lui $at,0x100
/* f072e7c: 34210002 */ ori $at,$at,0x2
/* f072e80: 01c17824 */ and $t7,$t6,$at
/* f072e84: 2df80001 */ sltiu $t8,$t7,0x1
/* f072e88: afb8008c */ sw $t8,0x8c($sp)
.NB0f072e8c:
/* f072e8c: 8fb9008c */ lw $t9,0x8c($sp)
/* f072e90: 13200032 */ beqz $t9,.NB0f072f5c
/* f072e94: 24050002 */ addiu $a1,$zero,0x2
/* f072e98: 0fc43fc4 */ jal padUnpack
/* f072e9c: 27a60430 */ addiu $a2,$sp,0x430
/* f072ea0: 3c014348 */ lui $at,0x4348
/* f072ea4: 44811000 */ mtc1 $at,$f2
/* f072ea8: 8e290010 */ lw $t1,0x10($s1)
/* f072eac: 3c014396 */ lui $at,0x4396
/* f072eb0: 44816000 */ mtc1 $at,$f12
/* f072eb4: 00095200 */ sll $t2,$t1,0x8
/* f072eb8: 46001406 */ mov.s $f16,$f2
/* f072ebc: 05410006 */ bgez $t2,.NB0f072ed8
/* f072ec0: 46006386 */ mov.s $f14,$f12
/* f072ec4: 3c01442f */ lui $at,0x442f
/* f072ec8: 44810000 */ mtc1 $at,$f0
/* f072ecc: 00000000 */ sll $zero,$zero,0x0
/* f072ed0: 46001400 */ add.s $f16,$f2,$f0
/* f072ed4: 46006380 */ add.s $f14,$f12,$f0
.NB0f072ed8:
/* f072ed8: c7a80430 */ lwc1 $f8,0x430($sp)
/* f072edc: c64a0008 */ lwc1 $f10,0x8($s2)
/* f072ee0: c7a40438 */ lwc1 $f4,0x438($sp)
/* f072ee4: c6460010 */ lwc1 $f6,0x10($s2)
/* f072ee8: 460a4001 */ sub.s $f0,$f8,$f10
/* f072eec: e7b0041c */ swc1 $f16,0x41c($sp)
/* f072ef0: e7ae0418 */ swc1 $f14,0x418($sp)
/* f072ef4: 46062081 */ sub.s $f2,$f4,$f6
/* f072ef8: 46000202 */ mul.s $f8,$f0,$f0
/* f072efc: 00000000 */ sll $zero,$zero,0x0
/* f072f00: 46021282 */ mul.s $f10,$f2,$f2
/* f072f04: 0c012e84 */ jal sqrtf
/* f072f08: 460a4300 */ add.s $f12,$f8,$f10
/* f072f0c: c7a40418 */ lwc1 $f4,0x418($sp)
/* f072f10: c7a6041c */ lwc1 $f6,0x41c($sp)
/* f072f14: 4600203c */ c.lt.s $f4,$f0
/* f072f18: 00000000 */ sll $zero,$zero,0x0
/* f072f1c: 45020004 */ bc1fl .NB0f072f30
/* f072f20: 4600303c */ c.lt.s $f6,$f0
/* f072f24: 1000000d */ beqz $zero,.NB0f072f5c
/* f072f28: e61400dc */ swc1 $f20,0xdc($s0)
/* f072f2c: 4600303c */ c.lt.s $f6,$f0
.NB0f072f30:
/* f072f30: c7a80418 */ lwc1 $f8,0x418($sp)
/* f072f34: 3c017f1a */ lui $at,0x7f1a
/* f072f38: 45000008 */ bc1f .NB0f072f5c
/* f072f3c: 00000000 */ sll $zero,$zero,0x0
/* f072f40: 46004281 */ sub.s $f10,$f8,$f0
/* f072f44: c42446f4 */ lwc1 $f4,0x46f4($at)
/* f072f48: c60800dc */ lwc1 $f8,0xdc($s0)
/* f072f4c: 46045182 */ mul.s $f6,$f10,$f4
/* f072f50: 00000000 */ sll $zero,$zero,0x0
/* f072f54: 46064282 */ mul.s $f10,$f8,$f6
/* f072f58: e60a00dc */ swc1 $f10,0xdc($s0)
.NB0f072f5c:
/* f072f5c: 3c01800a */ lui $at,0x800a
/* f072f60: c428e70c */ lwc1 $f8,-0x18f4($at)
/* f072f64: c60400dc */ lwc1 $f4,0xdc($s0)
/* f072f68: 46082002 */ mul.s $f0,$f4,$f8
/* f072f6c: 46140032 */ c.eq.s $f0,$f20
/* f072f70: 00000000 */ sll $zero,$zero,0x0
/* f072f74: 4501001c */ bc1t .NB0f072fe8
/* f072f78: 3c0b8007 */ lui $t3,0x8007
/* f072f7c: 256bc28c */ addiu $t3,$t3,-15732
/* f072f80: 8d610000 */ lw $at,0x0($t3)
/* f072f84: 27a50404 */ addiu $a1,$sp,0x404
/* f072f88: 44060000 */ mfc1 $a2,$f0
/* f072f8c: aca10000 */ sw $at,0x0($a1)
/* f072f90: 8d6d0004 */ lw $t5,0x4($t3)
/* f072f94: 02202025 */ or $a0,$s1,$zero
/* f072f98: 24070001 */ addiu $a3,$zero,0x1
/* f072f9c: acad0004 */ sw $t5,0x4($a1)
/* f072fa0: 8d610008 */ lw $at,0x8($t3)
/* f072fa4: aca10008 */ sw $at,0x8($a1)
/* f072fa8: 0fc1c3b6 */ jal func0f072144
/* f072fac: e7a005a8 */ swc1 $f0,0x5a8($sp)
/* f072fb0: 2401ffff */ addiu $at,$zero,-1
/* f072fb4: 1041000c */ beq $v0,$at,.NB0f072fe8
/* f072fb8: c7a005a8 */ lwc1 $f0,0x5a8($sp)
/* f072fbc: 1440000a */ bnez $v0,.NB0f072fe8
/* f072fc0: 00000000 */ sll $zero,$zero,0x0
/* f072fc4: c60600dc */ lwc1 $f6,0xdc($s0)
/* f072fc8: c604008c */ lwc1 $f4,0x8c($s0)
/* f072fcc: 44060000 */ mfc1 $a2,$f0
/* f072fd0: 46003287 */ neg.s $f10,$f6
/* f072fd4: 02202025 */ or $a0,$s1,$zero
/* f072fd8: 46045202 */ mul.s $f8,$f10,$f4
/* f072fdc: 27a50404 */ addiu $a1,$sp,0x404
/* f072fe0: 0fc1c55a */ jal objCollide
/* f072fe4: e60800dc */ swc1 $f8,0xdc($s0)
.NB0f072fe8:
/* f072fe8: 3c01800a */ lui $at,0x800a
/* f072fec: c422e70c */ lwc1 $f2,-0x18f4($at)
/* f072ff0: c6060004 */ lwc1 $f6,0x4($s0)
/* f072ff4: e7b405a0 */ swc1 $f20,0x5a0($sp)
/* f072ff8: 8fae008c */ lw $t6,0x8c($sp)
/* f072ffc: 46023282 */ mul.s $f10,$f6,$f2
/* f073000: e7aa059c */ swc1 $f10,0x59c($sp)
/* f073004: c604000c */ lwc1 $f4,0xc($s0)
/* f073008: 46022202 */ mul.s $f8,$f4,$f2
/* f07300c: 11c00031 */ beqz $t6,.NB0f0730d4
/* f073010: e7a805a4 */ swc1 $f8,0x5a4($sp)
/* f073014: c7a60430 */ lwc1 $f6,0x430($sp)
/* f073018: c64a0008 */ lwc1 $f10,0x8($s2)
/* f07301c: c7a8059c */ lwc1 $f8,0x59c($sp)
/* f073020: 460a3101 */ sub.s $f4,$f6,$f10
/* f073024: c64a0010 */ lwc1 $f10,0x10($s2)
/* f073028: c7a60438 */ lwc1 $f6,0x438($sp)
/* f07302c: 46082001 */ sub.s $f0,$f4,$f8
/* f073030: c7a805a4 */ lwc1 $f8,0x5a4($sp)
/* f073034: 460a3101 */ sub.s $f4,$f6,$f10
/* f073038: 46000182 */ mul.s $f6,$f0,$f0
/* f07303c: 46082081 */ sub.s $f2,$f4,$f8
/* f073040: 46021282 */ mul.s $f10,$f2,$f2
/* f073044: 0c012e84 */ jal sqrtf
/* f073048: 460a3300 */ add.s $f12,$f6,$f10
/* f07304c: c7ac0418 */ lwc1 $f12,0x418($sp)
/* f073050: c7a4041c */ lwc1 $f4,0x41c($sp)
/* f073054: 4600603c */ c.lt.s $f12,$f0
/* f073058: 00000000 */ sll $zero,$zero,0x0
/* f07305c: 45020009 */ bc1fl .NB0f073084
/* f073060: 4600203c */ c.lt.s $f4,$f0
/* f073064: e7b405a4 */ swc1 $f20,0x5a4($sp)
/* f073068: c7a005a4 */ lwc1 $f0,0x5a4($sp)
/* f07306c: e7a0059c */ swc1 $f0,0x59c($sp)
/* f073070: e6000004 */ swc1 $f0,0x4($s0)
/* f073074: e600000c */ swc1 $f0,0xc($s0)
/* f073078: 10000016 */ beqz $zero,.NB0f0730d4
/* f07307c: e60000dc */ swc1 $f0,0xdc($s0)
/* f073080: 4600203c */ c.lt.s $f4,$f0
.NB0f073084:
/* f073084: 3c017f1a */ lui $at,0x7f1a
/* f073088: 45020013 */ bc1fl .NB0f0730d8
/* f07308c: 4406a000 */ mfc1 $a2,$f20
/* f073090: 46006201 */ sub.s $f8,$f12,$f0
/* f073094: c42646f8 */ lwc1 $f6,0x46f8($at)
/* f073098: c60a0004 */ lwc1 $f10,0x4($s0)
/* f07309c: 46064082 */ mul.s $f2,$f8,$f6
/* f0730a0: c608000c */ lwc1 $f8,0xc($s0)
/* f0730a4: 46025102 */ mul.s $f4,$f10,$f2
/* f0730a8: 00000000 */ sll $zero,$zero,0x0
/* f0730ac: 46024182 */ mul.s $f6,$f8,$f2
/* f0730b0: e6040004 */ swc1 $f4,0x4($s0)
/* f0730b4: e606000c */ swc1 $f6,0xc($s0)
/* f0730b8: c7aa059c */ lwc1 $f10,0x59c($sp)
/* f0730bc: c7a805a4 */ lwc1 $f8,0x5a4($sp)
/* f0730c0: 46025102 */ mul.s $f4,$f10,$f2
/* f0730c4: 00000000 */ sll $zero,$zero,0x0
/* f0730c8: 46024182 */ mul.s $f6,$f8,$f2
/* f0730cc: e7a4059c */ swc1 $f4,0x59c($sp)
/* f0730d0: e7a605a4 */ swc1 $f6,0x5a4($sp)
.NB0f0730d4:
/* f0730d4: 4406a000 */ mfc1 $a2,$f20
.NB0f0730d8:
/* f0730d8: 02202025 */ or $a0,$s1,$zero
/* f0730dc: 27a5059c */ addiu $a1,$sp,0x59c
/* f0730e0: 0fc1c3b6 */ jal func0f072144
/* f0730e4: 24070001 */ addiu $a3,$zero,0x1
/* f0730e8: 144001ae */ bnez $v0,.NB0f0737a4
/* f0730ec: afa20600 */ sw $v0,0x600($sp)
/* f0730f0: 4406a000 */ mfc1 $a2,$f20
/* f0730f4: 02202025 */ or $a0,$s1,$zero
/* f0730f8: 0fc1c55a */ jal objCollide
/* f0730fc: 27a5059c */ addiu $a1,$sp,0x59c
/* f073100: c60a008c */ lwc1 $f10,0x8c($s0)
/* f073104: 27a403d0 */ addiu $a0,$sp,0x3d0
/* f073108: 27a503c4 */ addiu $a1,$sp,0x3c4
/* f07310c: 460a0402 */ mul.s $f16,$f0,$f10
/* f073110: 4610a03c */ c.lt.s $f20,$f16
/* f073114: 00000000 */ sll $zero,$zero,0x0
/* f073118: 450201a3 */ bc1fl .NB0f0737a8
/* f07311c: 8faa0600 */ lw $t2,0x600($sp)
/* f073120: 0c0099d1 */ jal cd00025364
/* f073124: e7b0058c */ swc1 $f16,0x58c($sp)
/* f073128: 1040000e */ beqz $v0,.NB0f073164
/* f07312c: c7b0058c */ lwc1 $f16,0x58c($sp)
/* f073130: c7a403c4 */ lwc1 $f4,0x3c4($sp)
/* f073134: c7a803d0 */ lwc1 $f8,0x3d0($sp)
/* f073138: c7aa03c8 */ lwc1 $f10,0x3c8($sp)
/* f07313c: 46082181 */ sub.s $f6,$f4,$f8
/* f073140: c7a403d4 */ lwc1 $f4,0x3d4($sp)
/* f073144: 46045201 */ sub.s $f8,$f10,$f4
/* f073148: e7a603c4 */ swc1 $f6,0x3c4($sp)
/* f07314c: c7a603cc */ lwc1 $f6,0x3cc($sp)
/* f073150: c7aa03d8 */ lwc1 $f10,0x3d8($sp)
/* f073154: e7a803c8 */ swc1 $f8,0x3c8($sp)
/* f073158: 460a3101 */ sub.s $f4,$f6,$f10
/* f07315c: 10000020 */ beqz $zero,.NB0f0731e0
/* f073160: e7a403cc */ swc1 $f4,0x3cc($sp)
.NB0f073164:
/* f073164: 3c077f1a */ lui $a3,0x7f1a
/* f073168: 24e742d8 */ addiu $a3,$a3,0x42d8
/* f07316c: 27a403d0 */ addiu $a0,$sp,0x3d0
/* f073170: 27a503c4 */ addiu $a1,$sp,0x3c4
/* f073174: 24062061 */ addiu $a2,$zero,0x2061
/* f073178: 0c00988b */ jal cd00024e4c
/* f07317c: e7b0058c */ swc1 $f16,0x58c($sp)
/* f073180: c7a803d0 */ lwc1 $f8,0x3d0($sp)
/* f073184: c7a603c4 */ lwc1 $f6,0x3c4($sp)
/* f073188: c7a403d4 */ lwc1 $f4,0x3d4($sp)
/* f07318c: c7b0058c */ lwc1 $f16,0x58c($sp)
/* f073190: 46064281 */ sub.s $f10,$f8,$f6
/* f073194: c7a803c8 */ lwc1 $f8,0x3c8($sp)
/* f073198: 46082181 */ sub.s $f6,$f4,$f8
/* f07319c: e7aa03d0 */ swc1 $f10,0x3d0($sp)
/* f0731a0: c7aa03d8 */ lwc1 $f10,0x3d8($sp)
/* f0731a4: c7a403cc */ lwc1 $f4,0x3cc($sp)
/* f0731a8: e7a603d4 */ swc1 $f6,0x3d4($sp)
/* f0731ac: e7a603c8 */ swc1 $f6,0x3c8($sp)
/* f0731b0: 46045201 */ sub.s $f8,$f10,$f4
/* f0731b4: c7a403d0 */ lwc1 $f4,0x3d0($sp)
/* f0731b8: 46004287 */ neg.s $f10,$f8
/* f0731bc: e7a803d8 */ swc1 $f8,0x3d8($sp)
/* f0731c0: e7aa03c4 */ swc1 $f10,0x3c4($sp)
/* f0731c4: e7a403cc */ swc1 $f4,0x3cc($sp)
/* f0731c8: c6480008 */ lwc1 $f8,0x8($s2)
/* f0731cc: e7a803d0 */ swc1 $f8,0x3d0($sp)
/* f0731d0: c64a000c */ lwc1 $f10,0xc($s2)
/* f0731d4: e7aa03d4 */ swc1 $f10,0x3d4($sp)
/* f0731d8: c6460010 */ lwc1 $f6,0x10($s2)
/* f0731dc: e7a603d8 */ swc1 $f6,0x3d8($sp)
.NB0f0731e0:
/* f0731e0: 27a403d0 */ addiu $a0,$sp,0x3d0
/* f0731e4: 27a503c4 */ addiu $a1,$sp,0x3c4
/* f0731e8: 27a603b8 */ addiu $a2,$sp,0x3b8
/* f0731ec: 0fc0b78e */ jal func0f02e4f8
/* f0731f0: e7b0058c */ swc1 $f16,0x58c($sp)
/* f0731f4: c6440008 */ lwc1 $f4,0x8($s2)
/* f0731f8: c7a805dc */ lwc1 $f8,0x5dc($sp)
/* f0731fc: e7b403b0 */ swc1 $f20,0x3b0($sp)
/* f073200: 3c017f1a */ lui $at,0x7f1a
/* f073204: 46082281 */ sub.s $f10,$f4,$f8
/* f073208: c7a405e4 */ lwc1 $f4,0x5e4($sp)
/* f07320c: c7b0058c */ lwc1 $f16,0x58c($sp)
/* f073210: e7aa03ac */ swc1 $f10,0x3ac($sp)
/* f073214: c6460010 */ lwc1 $f6,0x10($s2)
/* f073218: c7aa03b8 */ lwc1 $f10,0x3b8($sp)
/* f07321c: 46043201 */ sub.s $f8,$f6,$f4
/* f073220: e7a803b4 */ swc1 $f8,0x3b4($sp)
/* f073224: c6460008 */ lwc1 $f6,0x8($s2)
/* f073228: c7a803c0 */ lwc1 $f8,0x3c0($sp)
/* f07322c: 46065101 */ sub.s $f4,$f10,$f6
/* f073230: e7a403b8 */ swc1 $f4,0x3b8($sp)
/* f073234: c64a0010 */ lwc1 $f10,0x10($s2)
/* f073238: 460a4181 */ sub.s $f6,$f8,$f10
/* f07323c: c7a803ac */ lwc1 $f8,0x3ac($sp)
/* f073240: 46064282 */ mul.s $f10,$f8,$f6
/* f073244: e7a603c0 */ swc1 $f6,0x3c0($sp)
/* f073248: c7a603b4 */ lwc1 $f6,0x3b4($sp)
/* f07324c: 46002207 */ neg.s $f8,$f4
/* f073250: c60200ec */ lwc1 $f2,0xec($s0)
/* f073254: 46064102 */ mul.s $f4,$f8,$f6
/* f073258: c42646fc */ lwc1 $f6,0x46fc($at)
/* f07325c: 46045200 */ add.s $f8,$f10,$f4
/* f073260: 46064382 */ mul.s $f14,$f8,$f6
/* f073264: 460e103c */ c.lt.s $f2,$f14
/* f073268: 46007006 */ mov.s $f0,$f14
/* f07326c: 45020004 */ bc1fl .NB0f073280
/* f073270: 46001307 */ neg.s $f12,$f2
/* f073274: 10000007 */ beqz $zero,.NB0f073294
/* f073278: 46001006 */ mov.s $f0,$f2
/* f07327c: 46001307 */ neg.s $f12,$f2
.NB0f073280:
/* f073280: 460c703c */ c.lt.s $f14,$f12
/* f073284: 00000000 */ sll $zero,$zero,0x0
/* f073288: 45020003 */ bc1fl .NB0f073298
/* f07328c: c60a00dc */ lwc1 $f10,0xdc($s0)
/* f073290: 46006006 */ mov.s $f0,$f12
.NB0f073294:
/* f073294: c60a00dc */ lwc1 $f10,0xdc($s0)
.NB0f073298:
/* f073298: 3c077f1a */ lui $a3,0x7f1a
/* f07329c: 24e742e4 */ addiu $a3,$a3,0x42e4
/* f0732a0: 46005100 */ add.s $f4,$f10,$f0
/* f0732a4: 27a403e8 */ addiu $a0,$sp,0x3e8
/* f0732a8: 27a503dc */ addiu $a1,$sp,0x3dc
/* f0732ac: 24062087 */ addiu $a2,$zero,0x2087
/* f0732b0: e60400dc */ swc1 $f4,0xdc($s0)
/* f0732b4: 0c00988b */ jal cd00024e4c
/* f0732b8: e7b0058c */ swc1 $f16,0x58c($sp)
/* f0732bc: c7a803e4 */ lwc1 $f8,0x3e4($sp)
/* f0732c0: c7a603f0 */ lwc1 $f6,0x3f0($sp)
/* f0732c4: c7ae03e8 */ lwc1 $f14,0x3e8($sp)
/* f0732c8: c7b203dc */ lwc1 $f18,0x3dc($sp)
/* f0732cc: 46064001 */ sub.s $f0,$f8,$f6
/* f0732d0: c7b0058c */ lwc1 $f16,0x58c($sp)
/* f0732d4: e7b403f8 */ swc1 $f20,0x3f8($sp)
/* f0732d8: 46127281 */ sub.s $f10,$f14,$f18
/* f0732dc: e7a003f4 */ swc1 $f0,0x3f4($sp)
/* f0732e0: 27a403f4 */ addiu $a0,$sp,0x3f4
/* f0732e4: 4600a032 */ c.eq.s $f20,$f0
/* f0732e8: e7aa03fc */ swc1 $f10,0x3fc($sp)
/* f0732ec: c7a403fc */ lwc1 $f4,0x3fc($sp)
/* f0732f0: 27a503f8 */ addiu $a1,$sp,0x3f8
/* f0732f4: 45000005 */ bc1f .NB0f07330c
/* f0732f8: 27a603fc */ addiu $a2,$sp,0x3fc
/* f0732fc: 4604a032 */ c.eq.s $f20,$f4
/* f073300: 3c013f80 */ lui $at,0x3f80
/* f073304: 45030006 */ bc1tl .NB0f073320
/* f073308: 44814000 */ mtc1 $at,$f8
.NB0f07330c:
/* f07330c: 0c0012a8 */ jal guNormalize
/* f073310: e7b0058c */ swc1 $f16,0x58c($sp)
/* f073314: 10000004 */ beqz $zero,.NB0f073328
/* f073318: c7b0058c */ lwc1 $f16,0x58c($sp)
/* f07331c: 44814000 */ mtc1 $at,$f8
.NB0f073320:
/* f073320: 00000000 */ sll $zero,$zero,0x0
/* f073324: e7a803fc */ swc1 $f8,0x3fc($sp)
.NB0f073328:
/* f073328: c7a603fc */ lwc1 $f6,0x3fc($sp)
/* f07332c: c60a000c */ lwc1 $f10,0xc($s0)
/* f073330: c60e0004 */ lwc1 $f14,0x4($s0)
/* f073334: c7a803f4 */ lwc1 $f8,0x3f4($sp)
/* f073338: 460a3102 */ mul.s $f4,$f6,$f10
/* f07333c: 3c013f80 */ lui $at,0x3f80
/* f073340: e7b40594 */ swc1 $f20,0x594($sp)
/* f073344: 46087282 */ mul.s $f10,$f14,$f8
/* f073348: 8faf008c */ lw $t7,0x8c($sp)
/* f07334c: 460a2000 */ add.s $f0,$f4,$f10
/* f073350: 44812000 */ mtc1 $at,$f4
/* f073354: 3c01800a */ lui $at,0x800a
/* f073358: c422e70c */ lwc1 $f2,-0x18f4($at)
/* f07335c: 46048280 */ add.s $f10,$f16,$f4
/* f073360: 46005107 */ neg.s $f4,$f10
/* f073364: 46040002 */ mul.s $f0,$f0,$f4
/* f073368: 00000000 */ sll $zero,$zero,0x0
/* f07336c: 46004282 */ mul.s $f10,$f8,$f0
/* f073370: 460e5100 */ add.s $f4,$f10,$f14
/* f073374: 46003202 */ mul.s $f8,$f6,$f0
/* f073378: e7a40590 */ swc1 $f4,0x590($sp)
/* f07337c: c60a000c */ lwc1 $f10,0xc($s0)
/* f073380: e7b405a0 */ swc1 $f20,0x5a0($sp)
/* f073384: 460a4180 */ add.s $f6,$f8,$f10
/* f073388: 46022202 */ mul.s $f8,$f4,$f2
/* f07338c: c7a40430 */ lwc1 $f4,0x430($sp)
/* f073390: 46023282 */ mul.s $f10,$f6,$f2
/* f073394: e7a60598 */ swc1 $f6,0x598($sp)
/* f073398: e7a8059c */ swc1 $f8,0x59c($sp)
/* f07339c: 11e0002f */ beqz $t7,.NB0f07345c
/* f0733a0: e7aa05a4 */ swc1 $f10,0x5a4($sp)
/* f0733a4: c6460008 */ lwc1 $f6,0x8($s2)
/* f0733a8: 46062101 */ sub.s $f4,$f4,$f6
/* f0733ac: c7a60438 */ lwc1 $f6,0x438($sp)
/* f0733b0: 46082001 */ sub.s $f0,$f4,$f8
/* f0733b4: c6440010 */ lwc1 $f4,0x10($s2)
/* f0733b8: 46043201 */ sub.s $f8,$f6,$f4
/* f0733bc: 46000182 */ mul.s $f6,$f0,$f0
/* f0733c0: 460a4081 */ sub.s $f2,$f8,$f10
/* f0733c4: 46021102 */ mul.s $f4,$f2,$f2
/* f0733c8: 0c012e84 */ jal sqrtf
/* f0733cc: 46043300 */ add.s $f12,$f6,$f4
/* f0733d0: c7a80418 */ lwc1 $f8,0x418($sp)
/* f0733d4: c7aa041c */ lwc1 $f10,0x41c($sp)
/* f0733d8: 4600403c */ c.lt.s $f8,$f0
/* f0733dc: 00000000 */ sll $zero,$zero,0x0
/* f0733e0: 45020009 */ bc1fl .NB0f073408
/* f0733e4: 4600503c */ c.lt.s $f10,$f0
/* f0733e8: e7b405a4 */ swc1 $f20,0x5a4($sp)
/* f0733ec: c7a005a4 */ lwc1 $f0,0x5a4($sp)
/* f0733f0: e7a0059c */ swc1 $f0,0x59c($sp)
/* f0733f4: e6000004 */ swc1 $f0,0x4($s0)
/* f0733f8: e600000c */ swc1 $f0,0xc($s0)
/* f0733fc: 10000017 */ beqz $zero,.NB0f07345c
/* f073400: e60000dc */ swc1 $f0,0xdc($s0)
/* f073404: 4600503c */ c.lt.s $f10,$f0
.NB0f073408:
/* f073408: c7a60418 */ lwc1 $f6,0x418($sp)
/* f07340c: 3c017f1a */ lui $at,0x7f1a
/* f073410: 45020013 */ bc1fl .NB0f073460
/* f073414: 4406a000 */ mfc1 $a2,$f20
/* f073418: 46003101 */ sub.s $f4,$f6,$f0
/* f07341c: c4284700 */ lwc1 $f8,0x4700($at)
/* f073420: c60a0004 */ lwc1 $f10,0x4($s0)
/* f073424: 46082082 */ mul.s $f2,$f4,$f8
/* f073428: c604000c */ lwc1 $f4,0xc($s0)
/* f07342c: 46025182 */ mul.s $f6,$f10,$f2
/* f073430: 00000000 */ sll $zero,$zero,0x0
/* f073434: 46022202 */ mul.s $f8,$f4,$f2
/* f073438: e6060004 */ swc1 $f6,0x4($s0)
/* f07343c: e608000c */ swc1 $f8,0xc($s0)
/* f073440: c7aa059c */ lwc1 $f10,0x59c($sp)
/* f073444: c7a405a4 */ lwc1 $f4,0x5a4($sp)
/* f073448: 46025182 */ mul.s $f6,$f10,$f2
/* f07344c: 00000000 */ sll $zero,$zero,0x0
/* f073450: 46022202 */ mul.s $f8,$f4,$f2
/* f073454: e7a6059c */ swc1 $f6,0x59c($sp)
/* f073458: e7a805a4 */ swc1 $f8,0x5a4($sp)
.NB0f07345c:
/* f07345c: 4406a000 */ mfc1 $a2,$f20
.NB0f073460:
/* f073460: 02202025 */ or $a0,$s1,$zero
/* f073464: 27a5059c */ addiu $a1,$sp,0x59c
/* f073468: 0fc1c3b6 */ jal func0f072144
/* f07346c: 24070001 */ addiu $a3,$zero,0x1
/* f073470: 144000c2 */ bnez $v0,.NB0f07377c
/* f073474: afa20600 */ sw $v0,0x600($sp)
/* f073478: 4406a000 */ mfc1 $a2,$f20
/* f07347c: 02202025 */ or $a0,$s1,$zero
/* f073480: 0fc1c55a */ jal objCollide
/* f073484: 27a5059c */ addiu $a1,$sp,0x59c
/* f073488: c60a008c */ lwc1 $f10,0x8c($s0)
/* f07348c: c6060004 */ lwc1 $f6,0x4($s0)
/* f073490: e7b40594 */ swc1 $f20,0x594($sp)
/* f073494: 460a0402 */ mul.s $f16,$f0,$f10
/* f073498: 46003107 */ neg.s $f4,$f6
/* f07349c: 3c01800a */ lui $at,0x800a
/* f0734a0: c422e70c */ lwc1 $f2,-0x18f4($at)
/* f0734a4: 8fb8008c */ lw $t8,0x8c($sp)
/* f0734a8: 46102202 */ mul.s $f8,$f4,$f16
/* f0734ac: e7a80590 */ swc1 $f8,0x590($sp)
/* f0734b0: c60a000c */ lwc1 $f10,0xc($s0)
/* f0734b4: e7b405a0 */ swc1 $f20,0x5a0($sp)
/* f0734b8: 46005187 */ neg.s $f6,$f10
/* f0734bc: 46103102 */ mul.s $f4,$f6,$f16
/* f0734c0: 00000000 */ sll $zero,$zero,0x0
/* f0734c4: 46024282 */ mul.s $f10,$f8,$f2
/* f0734c8: c7a80430 */ lwc1 $f8,0x430($sp)
/* f0734cc: 46022182 */ mul.s $f6,$f4,$f2
/* f0734d0: e7a40598 */ swc1 $f4,0x598($sp)
/* f0734d4: e7aa059c */ swc1 $f10,0x59c($sp)
/* f0734d8: 1300002f */ beqz $t8,.NB0f073598
/* f0734dc: e7a605a4 */ swc1 $f6,0x5a4($sp)
/* f0734e0: c6440008 */ lwc1 $f4,0x8($s2)
/* f0734e4: 46044201 */ sub.s $f8,$f8,$f4
/* f0734e8: c7a40438 */ lwc1 $f4,0x438($sp)
/* f0734ec: 460a4001 */ sub.s $f0,$f8,$f10
/* f0734f0: c6480010 */ lwc1 $f8,0x10($s2)
/* f0734f4: 46082281 */ sub.s $f10,$f4,$f8
/* f0734f8: 46000102 */ mul.s $f4,$f0,$f0
/* f0734fc: 46065081 */ sub.s $f2,$f10,$f6
/* f073500: 46021202 */ mul.s $f8,$f2,$f2
/* f073504: 0c012e84 */ jal sqrtf
/* f073508: 46082300 */ add.s $f12,$f4,$f8
/* f07350c: c7aa0418 */ lwc1 $f10,0x418($sp)
/* f073510: c7a6041c */ lwc1 $f6,0x41c($sp)
/* f073514: 4600503c */ c.lt.s $f10,$f0
/* f073518: 00000000 */ sll $zero,$zero,0x0
/* f07351c: 45020009 */ bc1fl .NB0f073544
/* f073520: 4600303c */ c.lt.s $f6,$f0
/* f073524: e7b405a4 */ swc1 $f20,0x5a4($sp)
/* f073528: c7a005a4 */ lwc1 $f0,0x5a4($sp)
/* f07352c: e7a0059c */ swc1 $f0,0x59c($sp)
/* f073530: e6000004 */ swc1 $f0,0x4($s0)
/* f073534: e600000c */ swc1 $f0,0xc($s0)
/* f073538: 10000017 */ beqz $zero,.NB0f073598
/* f07353c: e60000dc */ swc1 $f0,0xdc($s0)
/* f073540: 4600303c */ c.lt.s $f6,$f0
.NB0f073544:
/* f073544: c7a40418 */ lwc1 $f4,0x418($sp)
/* f073548: 3c017f1a */ lui $at,0x7f1a
/* f07354c: 45020013 */ bc1fl .NB0f07359c
/* f073550: 4406a000 */ mfc1 $a2,$f20
/* f073554: 46002201 */ sub.s $f8,$f4,$f0
/* f073558: c42a4704 */ lwc1 $f10,0x4704($at)
/* f07355c: c6060004 */ lwc1 $f6,0x4($s0)
/* f073560: 460a4082 */ mul.s $f2,$f8,$f10
/* f073564: c608000c */ lwc1 $f8,0xc($s0)
/* f073568: 46023102 */ mul.s $f4,$f6,$f2
/* f07356c: 00000000 */ sll $zero,$zero,0x0
/* f073570: 46024282 */ mul.s $f10,$f8,$f2
/* f073574: e6040004 */ swc1 $f4,0x4($s0)
/* f073578: e60a000c */ swc1 $f10,0xc($s0)
/* f07357c: c7a6059c */ lwc1 $f6,0x59c($sp)
/* f073580: c7a805a4 */ lwc1 $f8,0x5a4($sp)
/* f073584: 46023102 */ mul.s $f4,$f6,$f2
/* f073588: 00000000 */ sll $zero,$zero,0x0
/* f07358c: 46024282 */ mul.s $f10,$f8,$f2
/* f073590: e7a4059c */ swc1 $f4,0x59c($sp)
/* f073594: e7aa05a4 */ swc1 $f10,0x5a4($sp)
.NB0f073598:
/* f073598: 4406a000 */ mfc1 $a2,$f20
.NB0f07359c:
/* f07359c: 02202025 */ or $a0,$s1,$zero
/* f0735a0: 27a5059c */ addiu $a1,$sp,0x59c
/* f0735a4: 0fc1c3b6 */ jal func0f072144
/* f0735a8: 24070001 */ addiu $a3,$zero,0x1
/* f0735ac: 14400073 */ bnez $v0,.NB0f07377c
/* f0735b0: afa20600 */ sw $v0,0x600($sp)
/* f0735b4: 4406a000 */ mfc1 $a2,$f20
/* f0735b8: 02202025 */ or $a0,$s1,$zero
/* f0735bc: 0fc1c55a */ jal objCollide
/* f0735c0: 27a5059c */ addiu $a1,$sp,0x59c
/* f0735c4: c7ae03e8 */ lwc1 $f14,0x3e8($sp)
/* f0735c8: c7b203dc */ lwc1 $f18,0x3dc($sp)
/* f0735cc: c7a603f0 */ lwc1 $f6,0x3f0($sp)
/* f0735d0: c7a403e4 */ lwc1 $f4,0x3e4($sp)
/* f0735d4: 46127032 */ c.eq.s $f14,$f18
/* f0735d8: c7a803e4 */ lwc1 $f8,0x3e4($sp)
/* f0735dc: c7aa03f0 */ lwc1 $f10,0x3f0($sp)
/* f0735e0: 45020006 */ bc1fl .NB0f0735fc
/* f0735e4: 460a4081 */ sub.s $f2,$f8,$f10
/* f0735e8: 46043032 */ c.eq.s $f6,$f4
/* f0735ec: 00000000 */ sll $zero,$zero,0x0
/* f0735f0: 45030063 */ bc1tl .NB0f073780
/* f0735f4: 8fa90600 */ lw $t1,0x600($sp)
/* f0735f8: 460a4081 */ sub.s $f2,$f8,$f10
.NB0f0735fc:
/* f0735fc: 460e9001 */ sub.s $f0,$f18,$f14
/* f073600: 46021182 */ mul.s $f6,$f2,$f2
/* f073604: e7a203a0 */ swc1 $f2,0x3a0($sp)
/* f073608: 46000102 */ mul.s $f4,$f0,$f0
/* f07360c: e7a00398 */ swc1 $f0,0x398($sp)
/* f073610: 0c012e84 */ jal sqrtf
/* f073614: 46043300 */ add.s $f12,$f6,$f4
/* f073618: 3c013f80 */ lui $at,0x3f80
/* f07361c: 44814000 */ mtc1 $at,$f8
/* f073620: c7aa0398 */ lwc1 $f10,0x398($sp)
/* f073624: c7a403a0 */ lwc1 $f4,0x3a0($sp)
/* f073628: 46004303 */ div.s $f12,$f8,$f0
/* f07362c: 3c01800a */ lui $at,0x800a
/* f073630: c422e70c */ lwc1 $f2,-0x18f4($at)
/* f073634: 8fb9008c */ lw $t9,0x8c($sp)
/* f073638: 460c5182 */ mul.s $f6,$f10,$f12
/* f07363c: 00000000 */ sll $zero,$zero,0x0
/* f073640: 460c2202 */ mul.s $f8,$f4,$f12
/* f073644: e7a60398 */ swc1 $f6,0x398($sp)
/* f073648: e7a803a0 */ swc1 $f8,0x3a0($sp)
/* f07364c: c60a000c */ lwc1 $f10,0xc($s0)
/* f073650: 460a4102 */ mul.s $f4,$f8,$f10
/* f073654: c60a0004 */ lwc1 $f10,0x4($s0)
/* f073658: e7b40594 */ swc1 $f20,0x594($sp)
/* f07365c: e7b405a0 */ swc1 $f20,0x5a0($sp)
/* f073660: 46065282 */ mul.s $f10,$f10,$f6
/* f073664: 460a2380 */ add.s $f14,$f4,$f10
/* f073668: 460e3102 */ mul.s $f4,$f6,$f14
/* f07366c: 00000000 */ sll $zero,$zero,0x0
/* f073670: 460e4282 */ mul.s $f10,$f8,$f14
/* f073674: 00000000 */ sll $zero,$zero,0x0
/* f073678: 46022182 */ mul.s $f6,$f4,$f2
/* f07367c: e7a40590 */ swc1 $f4,0x590($sp)
/* f073680: c7a40430 */ lwc1 $f4,0x430($sp)
/* f073684: 46025202 */ mul.s $f8,$f10,$f2
/* f073688: e7aa0598 */ swc1 $f10,0x598($sp)
/* f07368c: e7a6059c */ swc1 $f6,0x59c($sp)
/* f073690: 1320002f */ beqz $t9,.NB0f073750
/* f073694: e7a805a4 */ swc1 $f8,0x5a4($sp)
/* f073698: c64a0008 */ lwc1 $f10,0x8($s2)
/* f07369c: 460a2101 */ sub.s $f4,$f4,$f10
/* f0736a0: c7aa0438 */ lwc1 $f10,0x438($sp)
/* f0736a4: 46062001 */ sub.s $f0,$f4,$f6
/* f0736a8: c6440010 */ lwc1 $f4,0x10($s2)
/* f0736ac: 46045181 */ sub.s $f6,$f10,$f4
/* f0736b0: 46000282 */ mul.s $f10,$f0,$f0
/* f0736b4: 46083081 */ sub.s $f2,$f6,$f8
/* f0736b8: 46021102 */ mul.s $f4,$f2,$f2
/* f0736bc: 0c012e84 */ jal sqrtf
/* f0736c0: 46045300 */ add.s $f12,$f10,$f4
/* f0736c4: c7a60418 */ lwc1 $f6,0x418($sp)
/* f0736c8: c7a8041c */ lwc1 $f8,0x41c($sp)
/* f0736cc: 4600303c */ c.lt.s $f6,$f0
/* f0736d0: 00000000 */ sll $zero,$zero,0x0
/* f0736d4: 45020009 */ bc1fl .NB0f0736fc
/* f0736d8: 4600403c */ c.lt.s $f8,$f0
/* f0736dc: e7b405a4 */ swc1 $f20,0x5a4($sp)
/* f0736e0: c7a005a4 */ lwc1 $f0,0x5a4($sp)
/* f0736e4: e7a0059c */ swc1 $f0,0x59c($sp)
/* f0736e8: e6000004 */ swc1 $f0,0x4($s0)
/* f0736ec: e600000c */ swc1 $f0,0xc($s0)
/* f0736f0: 10000017 */ beqz $zero,.NB0f073750
/* f0736f4: e60000dc */ swc1 $f0,0xdc($s0)
/* f0736f8: 4600403c */ c.lt.s $f8,$f0
.NB0f0736fc:
/* f0736fc: c7aa0418 */ lwc1 $f10,0x418($sp)
/* f073700: 3c017f1a */ lui $at,0x7f1a
/* f073704: 45020013 */ bc1fl .NB0f073754
/* f073708: 4406a000 */ mfc1 $a2,$f20
/* f07370c: 46005101 */ sub.s $f4,$f10,$f0
/* f073710: c4264708 */ lwc1 $f6,0x4708($at)
/* f073714: c6080004 */ lwc1 $f8,0x4($s0)
/* f073718: 46062082 */ mul.s $f2,$f4,$f6
/* f07371c: c604000c */ lwc1 $f4,0xc($s0)
/* f073720: 46024282 */ mul.s $f10,$f8,$f2
/* f073724: 00000000 */ sll $zero,$zero,0x0
/* f073728: 46022182 */ mul.s $f6,$f4,$f2
/* f07372c: e60a0004 */ swc1 $f10,0x4($s0)
/* f073730: e606000c */ swc1 $f6,0xc($s0)
/* f073734: c7a8059c */ lwc1 $f8,0x59c($sp)
/* f073738: c7a405a4 */ lwc1 $f4,0x5a4($sp)
/* f07373c: 46024282 */ mul.s $f10,$f8,$f2
/* f073740: 00000000 */ sll $zero,$zero,0x0
/* f073744: 46022182 */ mul.s $f6,$f4,$f2
/* f073748: e7aa059c */ swc1 $f10,0x59c($sp)
/* f07374c: e7a605a4 */ swc1 $f6,0x5a4($sp)
.NB0f073750:
/* f073750: 4406a000 */ mfc1 $a2,$f20
.NB0f073754:
/* f073754: 02202025 */ or $a0,$s1,$zero
/* f073758: 27a5059c */ addiu $a1,$sp,0x59c
/* f07375c: 0fc1c3b6 */ jal func0f072144
/* f073760: 24070001 */ addiu $a3,$zero,0x1
/* f073764: 14400005 */ bnez $v0,.NB0f07377c
/* f073768: afa20600 */ sw $v0,0x600($sp)
/* f07376c: 4406a000 */ mfc1 $a2,$f20
/* f073770: 02202025 */ or $a0,$s1,$zero
/* f073774: 0fc1c55a */ jal objCollide
/* f073778: 27a5059c */ addiu $a1,$sp,0x59c
.NB0f07377c:
/* f07377c: 8fa90600 */ lw $t1,0x600($sp)
.NB0f073780:
/* f073780: 24010001 */ addiu $at,$zero,0x1
/* f073784: c7a80590 */ lwc1 $f8,0x590($sp)
/* f073788: 55210007 */ bnel $t1,$at,.NB0f0737a8
/* f07378c: 8faa0600 */ lw $t2,0x600($sp)
/* f073790: e6080004 */ swc1 $f8,0x4($s0)
/* f073794: c7aa0594 */ lwc1 $f10,0x594($sp)
/* f073798: e60a0008 */ swc1 $f10,0x8($s0)
/* f07379c: c7a40598 */ lwc1 $f4,0x598($sp)
/* f0737a0: e604000c */ swc1 $f4,0xc($s0)
.NB0f0737a4:
/* f0737a4: 8faa0600 */ lw $t2,0x600($sp)
.NB0f0737a8:
/* f0737a8: 24010001 */ addiu $at,$zero,0x1
/* f0737ac: 51410005 */ beql $t2,$at,.NB0f0737c4
/* f0737b0: 8e040088 */ lw $a0,0x88($s0)
/* f0737b4: e61400dc */ swc1 $f20,0xdc($s0)
/* f0737b8: e614000c */ swc1 $f20,0xc($s0)
/* f0737bc: e6140004 */ swc1 $f20,0x4($s0)
/* f0737c0: 8e040088 */ lw $a0,0x88($s0)
.NB0f0737c4:
/* f0737c4: 50800004 */ beqzl $a0,.NB0f0737d8
/* f0737c8: c6060004 */ lwc1 $f6,0x4($s0)
/* f0737cc: 0fc18cfb */ jal propSetPerimEnabled
/* f0737d0: 24050001 */ addiu $a1,$zero,0x1
/* f0737d4: c6060004 */ lwc1 $f6,0x4($s0)
.NB0f0737d8:
/* f0737d8: 4606a032 */ c.eq.s $f20,$f6
/* f0737dc: 00000000 */ sll $zero,$zero,0x0
/* f0737e0: 4502000e */ bc1fl .NB0f07381c
/* f0737e4: 8fac0600 */ lw $t4,0x600($sp)
/* f0737e8: c608000c */ lwc1 $f8,0xc($s0)
/* f0737ec: 4608a032 */ c.eq.s $f20,$f8
/* f0737f0: 00000000 */ sll $zero,$zero,0x0
/* f0737f4: 45020009 */ bc1fl .NB0f07381c
/* f0737f8: 8fac0600 */ lw $t4,0x600($sp)
/* f0737fc: c60a00dc */ lwc1 $f10,0xdc($s0)
/* f073800: 460aa032 */ c.eq.s $f20,$f10
/* f073804: 00000000 */ sll $zero,$zero,0x0
/* f073808: 45020004 */ bc1fl .NB0f07381c
/* f07380c: 8fac0600 */ lw $t4,0x600($sp)
/* f073810: 0fc1a7a9 */ jal objEndFlight
/* f073814: 02202025 */ or $a0,$s1,$zero
/* f073818: 8fac0600 */ lw $t4,0x600($sp)
.NB0f07381c:
/* f07381c: 24010001 */ addiu $at,$zero,0x1
/* f073820: 8fa40074 */ lw $a0,0x74($sp)
/* f073824: 15810012 */ bne $t4,$at,.NB0f073870
/* f073828: 3c054000 */ lui $a1,0x4000
/* f07382c: 26460028 */ addiu $a2,$s2,0x28
/* f073830: 26270058 */ addiu $a3,$s1,0x58
/* f073834: 0c00adde */ jal cdFindGroundYSimple
/* f073838: afa00010 */ sw $zero,0x10($sp)
/* f07383c: 3c017f1a */ lui $at,0x7f1a
/* f073840: c424470c */ lwc1 $f4,0x470c($at)
/* f073844: 46000086 */ mov.s $f2,$f0
/* f073848: 02202025 */ or $a0,$s1,$zero
/* f07384c: 4600203c */ c.lt.s $f4,$f0
/* f073850: 00000000 */ sll $zero,$zero,0x0
/* f073854: 45020007 */ bc1fl .NB0f073874
/* f073858: 02202025 */ or $a0,$s1,$zero
/* f07385c: 0fc1c03d */ jal objGetHov04
/* f073860: e7a20584 */ swc1 $f2,0x584($sp)
/* f073864: c7a20584 */ lwc1 $f2,0x584($sp)
/* f073868: 46020180 */ add.s $f6,$f0,$f2
/* f07386c: e646000c */ swc1 $f6,0xc($s2)
.NB0f073870:
/* f073870: 02202025 */ or $a0,$s1,$zero
.NB0f073874:
/* f073874: 00002825 */ or $a1,$zero,$zero
/* f073878: 0fc1a3b7 */ jal func0f069c70
/* f07387c: 24060001 */ addiu $a2,$zero,0x1
/* f073880: 27b00484 */ addiu $s0,$sp,0x484
/* f073884: 02002825 */ or $a1,$s0,$zero
/* f073888: 0c005b11 */ jal mtx3ToMtx4
/* f07388c: 8fa40078 */ lw $a0,0x78($sp)
/* f073890: 8fa40074 */ lw $a0,0x74($sp)
/* f073894: 0c005b31 */ jal mtx4SetTranslation
/* f073898: 02002825 */ or $a1,$s0,$zero
/* f07389c: 27b104c4 */ addiu $s1,$sp,0x4c4
/* f0738a0: 02202825 */ or $a1,$s1,$zero
/* f0738a4: 0c0060d7 */ jal mtx000172f0
/* f0738a8: 27a40504 */ addiu $a0,$sp,0x504
/* f0738ac: 02002025 */ or $a0,$s0,$zero
/* f0738b0: 02202825 */ or $a1,$s1,$zero
/* f0738b4: 0c005a3c */ jal mtx4MultMtx4
/* f0738b8: 27a60544 */ addiu $a2,$sp,0x544
/* f0738bc: 02402025 */ or $a0,$s2,$zero
/* f0738c0: 0fc1c81a */ jal platformDisplaceProps2
/* f0738c4: 27a50544 */ addiu $a1,$sp,0x544
/* f0738c8: 240b0001 */ addiu $t3,$zero,0x1
/* f0738cc: 10000891 */ beqz $zero,.NB0f075b14
/* f0738d0: afab05d8 */ sw $t3,0x5d8($sp)
.NB0f0738d4:
/* f0738d4: 51a00771 */ beqzl $t5,.NB0f07569c
/* f0738d8: 304d0400 */ andi $t5,$v0,0x400
/* f0738dc: afa00354 */ sw $zero,0x354($sp)
/* f0738e0: afa00350 */ sw $zero,0x350($sp)
/* f0738e4: afa0034c */ sw $zero,0x34c($sp)
/* f0738e8: 8e0e00d0 */ lw $t6,0xd0($s0)
/* f0738ec: 8c6f0034 */ lw $t7,0x34($v1)
/* f0738f0: 30594000 */ andi $t9,$v0,0x4000
/* f0738f4: 01cfc021 */ addu $t8,$t6,$t7
/* f0738f8: 17200003 */ bnez $t9,.NB0f073908
/* f0738fc: ae1800d0 */ sw $t8,0xd0($s0)
/* f073900: 2b012581 */ slti $at,$t8,0x2581
/* f073904: 10200021 */ beqz $at,.NB0f07398c
.NB0f073908:
/* f073908: 3c017f1a */ lui $at,0x7f1a
/* f07390c: c4284710 */ lwc1 $f8,0x4710($at)
/* f073910: c640000c */ lwc1 $f0,0xc($s2)
/* f073914: 3c0146fa */ lui $at,0x46fa
/* f073918: 4608003c */ c.lt.s $f0,$f8
/* f07391c: 00000000 */ sll $zero,$zero,0x0
/* f073920: 4503001b */ bc1tl .NB0f073990
/* f073924: 8e2a0040 */ lw $t2,0x40($s1)
/* f073928: 44811000 */ mtc1 $at,$f2
/* f07392c: 3c01c6fa */ lui $at,0xc6fa
/* f073930: 4600103c */ c.lt.s $f2,$f0
/* f073934: 00000000 */ sll $zero,$zero,0x0
/* f073938: 45030015 */ bc1tl .NB0f073990
/* f07393c: 8e2a0040 */ lw $t2,0x40($s1)
/* f073940: 44816000 */ mtc1 $at,$f12
/* f073944: c6400008 */ lwc1 $f0,0x8($s2)
/* f073948: 460c003c */ c.lt.s $f0,$f12
/* f07394c: 00000000 */ sll $zero,$zero,0x0
/* f073950: 4503000f */ bc1tl .NB0f073990
/* f073954: 8e2a0040 */ lw $t2,0x40($s1)
/* f073958: 4600103c */ c.lt.s $f2,$f0
/* f07395c: 00000000 */ sll $zero,$zero,0x0
/* f073960: 4503000b */ bc1tl .NB0f073990
/* f073964: 8e2a0040 */ lw $t2,0x40($s1)
/* f073968: c6400010 */ lwc1 $f0,0x10($s2)
/* f07396c: 460c003c */ c.lt.s $f0,$f12
/* f073970: 00000000 */ sll $zero,$zero,0x0
/* f073974: 45030006 */ bc1tl .NB0f073990
/* f073978: 8e2a0040 */ lw $t2,0x40($s1)
/* f07397c: 4600103c */ c.lt.s $f2,$f0
/* f073980: 00000000 */ sll $zero,$zero,0x0
/* f073984: 45020005 */ bc1fl .NB0f07399c
/* f073988: 8e0b00a0 */ lw $t3,0xa0($s0)
.NB0f07398c:
/* f07398c: 8e2a0040 */ lw $t2,0x40($s1)
.NB0f073990:
/* f073990: 354c0004 */ ori $t4,$t2,0x4
/* f073994: ae2c0040 */ sw $t4,0x40($s1)
/* f073998: 8e0b00a0 */ lw $t3,0xa0($s0)
.NB0f07399c:
/* f07399c: 8c6d0034 */ lw $t5,0x34($v1)
/* f0739a0: 2624001c */ addiu $a0,$s1,0x1c
/* f0739a4: 27a50358 */ addiu $a1,$sp,0x358
/* f0739a8: 016d7021 */ addu $t6,$t3,$t5
/* f0739ac: ae0e00a0 */ sw $t6,0xa0($s0)
/* f0739b0: 0c005af2 */ jal mtx3Copy
/* f0739b4: afa40078 */ sw $a0,0x78($sp)
/* f0739b8: 8e0f0000 */ lw $t7,0x0($s0)
/* f0739bc: 3c017f1a */ lui $at,0x7f1a
/* f0739c0: 31f80020 */ andi $t8,$t7,0x20
/* f0739c4: 5300004b */ beqzl $t8,.NB0f073af4
/* f0739c8: 922b0003 */ lbu $t3,0x3($s1)
/* f0739cc: c4304714 */ lwc1 $f16,0x4714($at)
/* f0739d0: c600001c */ lwc1 $f0,0x1c($s0)
/* f0739d4: 3c03800a */ lui $v1,0x800a
/* f0739d8: 2463e6c0 */ addiu $v1,$v1,-6464
/* f0739dc: 4610003c */ c.lt.s $f0,$f16
/* f0739e0: 00000000 */ sll $zero,$zero,0x0
/* f0739e4: 4502001b */ bc1fl .NB0f073a54
/* f0739e8: c60000a8 */ lwc1 $f0,0xa8($s0)
/* f0739ec: c60a0014 */ lwc1 $f10,0x14($s0)
/* f0739f0: c464004c */ lwc1 $f4,0x4c($v1)
/* f0739f4: c60800ac */ lwc1 $f8,0xac($s0)
/* f0739f8: 3c017f1a */ lui $at,0x7f1a
/* f0739fc: 46045182 */ mul.s $f6,$f10,$f4
/* f073a00: 46064280 */ add.s $f10,$f8,$f6
/* f073a04: e60a00ac */ swc1 $f10,0xac($s0)
/* f073a08: c468004c */ lwc1 $f8,0x4c($v1)
/* f073a0c: c60400ac */ lwc1 $f4,0xac($s0)
/* f073a10: c60a00a8 */ lwc1 $f10,0xa8($s0)
/* f073a14: 46082182 */ mul.s $f6,$f4,$f8
/* f073a18: 46065100 */ add.s $f4,$f10,$f6
/* f073a1c: e60400a8 */ swc1 $f4,0xa8($s0)
/* f073a20: c46a004c */ lwc1 $f10,0x4c($v1)
/* f073a24: c4284718 */ lwc1 $f8,0x4718($at)
/* f073a28: 460a4182 */ mul.s $f6,$f8,$f10
/* f073a2c: 46060100 */ add.s $f4,$f0,$f6
/* f073a30: e604001c */ swc1 $f4,0x1c($s0)
/* f073a34: c608001c */ lwc1 $f8,0x1c($s0)
/* f073a38: 4608803c */ c.lt.s $f16,$f8
/* f073a3c: 00000000 */ sll $zero,$zero,0x0
/* f073a40: 4502002c */ bc1fl .NB0f073af4
/* f073a44: 922b0003 */ lbu $t3,0x3($s1)
/* f073a48: 10000029 */ beqz $zero,.NB0f073af0
/* f073a4c: e610001c */ swc1 $f16,0x1c($s0)
/* f073a50: c60000a8 */ lwc1 $f0,0xa8($s0)
.NB0f073a54:
/* f073a54: c7aa05e0 */ lwc1 $f10,0x5e0($sp)
/* f073a58: 4600503c */ c.lt.s $f10,$f0
/* f073a5c: 00000000 */ sll $zero,$zero,0x0
/* f073a60: 45000018 */ bc1f .NB0f073ac4
/* f073a64: 3c01800a */ lui $at,0x800a
/* f073a68: c424e70c */ lwc1 $f4,-0x18f4($at)
/* f073a6c: c6060014 */ lwc1 $f6,0x14($s0)
/* f073a70: c60a00ac */ lwc1 $f10,0xac($s0)
/* f073a74: 46043202 */ mul.s $f8,$f6,$f4
/* f073a78: 46085180 */ add.s $f6,$f10,$f8
/* f073a7c: e60600ac */ swc1 $f6,0xac($s0)
/* f073a80: c42ae70c */ lwc1 $f10,-0x18f4($at)
/* f073a84: c60400ac */ lwc1 $f4,0xac($s0)
/* f073a88: 3c017f1a */ lui $at,0x7f1a
/* f073a8c: 460a2202 */ mul.s $f8,$f4,$f10
/* f073a90: 46080180 */ add.s $f6,$f0,$f8
/* f073a94: e60600a8 */ swc1 $f6,0xa8($s0)
/* f073a98: c7aa05e0 */ lwc1 $f10,0x5e0($sp)
/* f073a9c: c60400a8 */ lwc1 $f4,0xa8($s0)
/* f073aa0: c426471c */ lwc1 $f6,0x471c($at)
/* f073aa4: 3c01800a */ lui $at,0x800a
/* f073aa8: 460a2201 */ sub.s $f8,$f4,$f10
/* f073aac: 46083102 */ mul.s $f4,$f6,$f8
/* f073ab0: c426e70c */ lwc1 $f6,-0x18f4($at)
/* f073ab4: 46062202 */ mul.s $f8,$f4,$f6
/* f073ab8: 46085100 */ add.s $f4,$f10,$f8
/* f073abc: 1000000c */ beqz $zero,.NB0f073af0
/* f073ac0: e7a405e0 */ swc1 $f4,0x5e0($sp)
.NB0f073ac4:
/* f073ac4: e7a005e0 */ swc1 $f0,0x5e0($sp)
/* f073ac8: 8e190000 */ lw $t9,0x0($s0)
/* f073acc: 2401ffdf */ addiu $at,$zero,-33
/* f073ad0: 4480a000 */ mtc1 $zero,$f20
/* f073ad4: c60600ac */ lwc1 $f6,0xac($s0)
/* f073ad8: 03214824 */ and $t1,$t9,$at
/* f073adc: ae090000 */ sw $t1,0x0($s0)
/* f073ae0: 352c0010 */ ori $t4,$t1,0x10
/* f073ae4: ae0c0000 */ sw $t4,0x0($s0)
/* f073ae8: e6060008 */ swc1 $f6,0x8($s0)
/* f073aec: e614001c */ swc1 $f20,0x1c($s0)
.NB0f073af0:
/* f073af0: 922b0003 */ lbu $t3,0x3($s1)
.NB0f073af4:
/* f073af4: 4480a000 */ mtc1 $zero,$f20
/* f073af8: 24010008 */ addiu $at,$zero,0x8
/* f073afc: 15610006 */ bne $t3,$at,.NB0f073b18
/* f073b00: 00001025 */ or $v0,$zero,$zero
/* f073b04: 922d005c */ lbu $t5,0x5c($s1)
/* f073b08: 24010053 */ addiu $at,$zero,0x53
/* f073b0c: 15a10002 */ bne $t5,$at,.NB0f073b18
/* f073b10: 00000000 */ sll $zero,$zero,0x0
/* f073b14: 24020001 */ addiu $v0,$zero,0x1
.NB0f073b18:
/* f073b18: 10400129 */ beqz $v0,.NB0f073fc0
/* f073b1c: 3c0f8007 */ lui $t7,0x8007
/* f073b20: 25efc298 */ addiu $t7,$t7,-15720
/* f073b24: 8de10000 */ lw $at,0x0($t7)
/* f073b28: 27ae02f8 */ addiu $t6,$sp,0x2f8
/* f073b2c: 8df90004 */ lw $t9,0x4($t7)
/* f073b30: adc10000 */ sw $at,0x0($t6)
/* f073b34: 8de10008 */ lw $at,0x8($t7)
/* f073b38: 3c0a8007 */ lui $t2,0x8007
/* f073b3c: 254ac2a4 */ addiu $t2,$t2,-15708
/* f073b40: add90004 */ sw $t9,0x4($t6)
/* f073b44: adc10008 */ sw $at,0x8($t6)
/* f073b48: 8d410000 */ lw $at,0x0($t2)
/* f073b4c: 27a902ec */ addiu $t1,$sp,0x2ec
/* f073b50: 8d4b0004 */ lw $t3,0x4($t2)
/* f073b54: ad210000 */ sw $at,0x0($t1)
/* f073b58: 8d410008 */ lw $at,0x8($t2)
/* f073b5c: 3c188007 */ lui $t8,0x8007
/* f073b60: 2718c2b0 */ addiu $t8,$t8,-15696
/* f073b64: ad2b0004 */ sw $t3,0x4($t1)
/* f073b68: ad210008 */ sw $at,0x8($t1)
/* f073b6c: 8f010000 */ lw $at,0x0($t8)
/* f073b70: 27ad02e0 */ addiu $t5,$sp,0x2e0
/* f073b74: 8f0f0004 */ lw $t7,0x4($t8)
/* f073b78: ada10000 */ sw $at,0x0($t5)
/* f073b7c: 8f010008 */ lw $at,0x8($t8)
/* f073b80: adaf0004 */ sw $t7,0x4($t5)
/* f073b84: 1220010e */ beqz $s1,.NB0f073fc0
/* f073b88: ada10008 */ sw $at,0x8($t5)
/* f073b8c: 8e390014 */ lw $t9,0x14($s1)
/* f073b90: 5320010c */ beqzl $t9,.NB0f073fc4
/* f073b94: 8e020000 */ lw $v0,0x0($s0)
/* f073b98: 8e0c00e8 */ lw $t4,0xe8($s0)
/* f073b9c: 51800109 */ beqzl $t4,.NB0f073fc4
/* f073ba0: 8e020000 */ lw $v0,0x0($s0)
/* f073ba4: c622001c */ lwc1 $f2,0x1c($s1)
/* f073ba8: c62e0028 */ lwc1 $f14,0x28($s1)
/* f073bac: c6200034 */ lwc1 $f0,0x34($s1)
/* f073bb0: 46021282 */ mul.s $f10,$f2,$f2
/* f073bb4: 00000000 */ sll $zero,$zero,0x0
/* f073bb8: 460e7202 */ mul.s $f8,$f14,$f14
/* f073bbc: 46085100 */ add.s $f4,$f10,$f8
/* f073bc0: 46000182 */ mul.s $f6,$f0,$f0
/* f073bc4: 0c012e84 */ jal sqrtf
/* f073bc8: 46043300 */ add.s $f12,$f6,$f4
/* f073bcc: 27a402a0 */ addiu $a0,$sp,0x2a0
/* f073bd0: 0c005a28 */ jal mtx4LoadIdentity
/* f073bd4: e7a0029c */ swc1 $f0,0x29c($sp)
/* f073bd8: c7a2029c */ lwc1 $f2,0x29c($sp)
/* f073bdc: c62a001c */ lwc1 $f10,0x1c($s1)
/* f073be0: 27a40290 */ addiu $a0,$sp,0x290
/* f073be4: 27a50294 */ addiu $a1,$sp,0x294
/* f073be8: 46025203 */ div.s $f8,$f10,$f2
/* f073bec: 27a60298 */ addiu $a2,$sp,0x298
/* f073bf0: e7a802a0 */ swc1 $f8,0x2a0($sp)
/* f073bf4: c6260020 */ lwc1 $f6,0x20($s1)
/* f073bf8: 46023103 */ div.s $f4,$f6,$f2
/* f073bfc: e7a402a4 */ swc1 $f4,0x2a4($sp)
/* f073c00: c62a0024 */ lwc1 $f10,0x24($s1)
/* f073c04: 46025203 */ div.s $f8,$f10,$f2
/* f073c08: e7a802a8 */ swc1 $f8,0x2a8($sp)
/* f073c0c: c6260028 */ lwc1 $f6,0x28($s1)
/* f073c10: 46023103 */ div.s $f4,$f6,$f2
/* f073c14: e7a402b0 */ swc1 $f4,0x2b0($sp)
/* f073c18: c62a002c */ lwc1 $f10,0x2c($s1)
/* f073c1c: 46025203 */ div.s $f8,$f10,$f2
/* f073c20: e7a802b4 */ swc1 $f8,0x2b4($sp)
/* f073c24: c6260030 */ lwc1 $f6,0x30($s1)
/* f073c28: 46023103 */ div.s $f4,$f6,$f2
/* f073c2c: e7a402b8 */ swc1 $f4,0x2b8($sp)
/* f073c30: c62a0034 */ lwc1 $f10,0x34($s1)
/* f073c34: 46025203 */ div.s $f8,$f10,$f2
/* f073c38: e7a802c0 */ swc1 $f8,0x2c0($sp)
/* f073c3c: c6260038 */ lwc1 $f6,0x38($s1)
/* f073c40: 46023103 */ div.s $f4,$f6,$f2
/* f073c44: e7a402c4 */ swc1 $f4,0x2c4($sp)
/* f073c48: c62a003c */ lwc1 $f10,0x3c($s1)
/* f073c4c: 46025203 */ div.s $f8,$f10,$f2
/* f073c50: e7a802c8 */ swc1 $f8,0x2c8($sp)
/* f073c54: 8e290014 */ lw $t1,0x14($s1)
/* f073c58: c5260008 */ lwc1 $f6,0x8($t1)
/* f073c5c: e7a602f8 */ swc1 $f6,0x2f8($sp)
/* f073c60: 8e2a0014 */ lw $t2,0x14($s1)
/* f073c64: c7a602f8 */ lwc1 $f6,0x2f8($sp)
/* f073c68: c544000c */ lwc1 $f4,0xc($t2)
/* f073c6c: e7a402fc */ swc1 $f4,0x2fc($sp)
/* f073c70: 8e2b0014 */ lw $t3,0x14($s1)
/* f073c74: c56a0010 */ lwc1 $f10,0x10($t3)
/* f073c78: e7aa0300 */ swc1 $f10,0x300($sp)
/* f073c7c: 8e0e00e8 */ lw $t6,0xe8($s0)
/* f073c80: c5c80008 */ lwc1 $f8,0x8($t6)
/* f073c84: 46064101 */ sub.s $f4,$f8,$f6
/* f073c88: c7a802fc */ lwc1 $f8,0x2fc($sp)
/* f073c8c: e7a40290 */ swc1 $f4,0x290($sp)
/* f073c90: 8e0d00e8 */ lw $t5,0xe8($s0)
/* f073c94: c5aa000c */ lwc1 $f10,0xc($t5)
/* f073c98: 46085181 */ sub.s $f6,$f10,$f8
/* f073c9c: c7aa0300 */ lwc1 $f10,0x300($sp)
/* f073ca0: e7a60294 */ swc1 $f6,0x294($sp)
/* f073ca4: 8e1800e8 */ lw $t8,0xe8($s0)
/* f073ca8: c7040010 */ lwc1 $f4,0x10($t8)
/* f073cac: e7a2029c */ swc1 $f2,0x29c($sp)
/* f073cb0: 460a2201 */ sub.s $f8,$f4,$f10
/* f073cb4: 0c0012a8 */ jal guNormalize
/* f073cb8: e7a80298 */ swc1 $f8,0x298($sp)
/* f073cbc: c6060004 */ lwc1 $f6,0x4($s0)
/* f073cc0: 27a402ec */ addiu $a0,$sp,0x2ec
/* f073cc4: 27a502f0 */ addiu $a1,$sp,0x2f0
/* f073cc8: e7a602ec */ swc1 $f6,0x2ec($sp)
/* f073ccc: c6040008 */ lwc1 $f4,0x8($s0)
/* f073cd0: 27a602f4 */ addiu $a2,$sp,0x2f4
/* f073cd4: e7a402f0 */ swc1 $f4,0x2f0($sp)
/* f073cd8: c60a000c */ lwc1 $f10,0xc($s0)
/* f073cdc: 0c0012a8 */ jal guNormalize
/* f073ce0: e7aa02f4 */ swc1 $f10,0x2f4($sp)
/* f073ce4: c7a80298 */ lwc1 $f8,0x298($sp)
/* f073ce8: c7a602f4 */ lwc1 $f6,0x2f4($sp)
/* f073cec: c7b00290 */ lwc1 $f16,0x290($sp)
/* f073cf0: c7aa02ec */ lwc1 $f10,0x2ec($sp)
/* f073cf4: 46064102 */ mul.s $f4,$f8,$f6
/* f073cf8: c7b20294 */ lwc1 $f18,0x294($sp)
/* f073cfc: c7a602f0 */ lwc1 $f6,0x2f0($sp)
/* f073d00: 46105202 */ mul.s $f8,$f10,$f16
/* f073d04: 00000000 */ sll $zero,$zero,0x0
/* f073d08: 46123282 */ mul.s $f10,$f6,$f18
/* f073d0c: 460a4180 */ add.s $f6,$f8,$f10
/* f073d10: 0fc25258 */ jal acosf
/* f073d14: 46062300 */ add.s $f12,$f4,$f6
/* f073d18: 3c017f1a */ lui $at,0x7f1a
/* f073d1c: c4284724 */ lwc1 $f8,0x4724($at)
/* f073d20: 3c047f1a */ lui $a0,0x7f1a
/* f073d24: c7a2029c */ lwc1 $f2,0x29c($sp)
/* f073d28: 4600403c */ c.lt.s $f8,$f0
/* f073d2c: e7a0028c */ swc1 $f0,0x28c($sp)
/* f073d30: 3c017f1a */ lui $at,0x7f1a
/* f073d34: 248442f0 */ addiu $a0,$a0,0x42f0
/* f073d38: 45010005 */ bc1t .NB0f073d50
/* f073d3c: 3c058007 */ lui $a1,0x8007
/* f073d40: c42a4728 */ lwc1 $f10,0x4728($at)
/* f073d44: 460a003c */ c.lt.s $f0,$f10
/* f073d48: 00000000 */ sll $zero,$zero,0x0
/* f073d4c: 4500009c */ bc1f .NB0f073fc0
.NB0f073d50:
/* f073d50: 24a5c2c8 */ addiu $a1,$a1,-15672
/* f073d54: 0c00381c */ jal mainOverrideVariable
/* f073d58: e7a2029c */ swc1 $f2,0x29c($sp)
/* f073d5c: 3c047f1a */ lui $a0,0x7f1a
/* f073d60: 3c058007 */ lui $a1,0x8007
/* f073d64: 24a5c2cc */ addiu $a1,$a1,-15668
/* f073d68: 0c00381c */ jal mainOverrideVariable
/* f073d6c: 248442f4 */ addiu $a0,$a0,0x42f4
/* f073d70: 3c047f1a */ lui $a0,0x7f1a
/* f073d74: 3c058007 */ lui $a1,0x8007
/* f073d78: 24a5c2d0 */ addiu $a1,$a1,-15664
/* f073d7c: 0c00381c */ jal mainOverrideVariable
/* f073d80: 248442f8 */ addiu $a0,$a0,0x42f8
/* f073d84: 3c0f8007 */ lui $t7,0x8007
/* f073d88: 8defc2cc */ lw $t7,-0x3d34($t7)
/* f073d8c: 3c01800a */ lui $at,0x800a
/* f073d90: c7b00290 */ lwc1 $f16,0x290($sp)
/* f073d94: 448f2000 */ mtc1 $t7,$f4
/* f073d98: c7b20294 */ lwc1 $f18,0x294($sp)
/* f073d9c: c420e704 */ lwc1 $f0,-0x18fc($at)
/* f073da0: 05e10005 */ bgez $t7,.NB0f073db8
/* f073da4: 468021a0 */ cvt.s.w $f6,$f4
/* f073da8: 3c014f80 */ lui $at,0x4f80
/* f073dac: 44814000 */ mtc1 $at,$f8
/* f073db0: 00000000 */ sll $zero,$zero,0x0
/* f073db4: 46083180 */ add.s $f6,$f6,$f8
.NB0f073db8:
/* f073db8: 3c0142c8 */ lui $at,0x42c8
/* f073dbc: 44815000 */ mtc1 $at,$f10
/* f073dc0: 3c018007 */ lui $at,0x8007
/* f073dc4: c428c2c4 */ lwc1 $f8,-0x3d3c($at)
/* f073dc8: 460a3103 */ div.s $f4,$f6,$f10
/* f073dcc: 3c198007 */ lui $t9,0x8007
/* f073dd0: 8f39c2d0 */ lw $t9,-0x3d30($t9)
/* f073dd4: 46082182 */ mul.s $f6,$f4,$f8
/* f073dd8: 44992000 */ mtc1 $t9,$f4
/* f073ddc: 00000000 */ sll $zero,$zero,0x0
/* f073de0: 46802220 */ cvt.s.w $f8,$f4
/* f073de4: 07210005 */ bgez $t9,.NB0f073dfc
/* f073de8: 46003283 */ div.s $f10,$f6,$f0
/* f073dec: 3c014f80 */ lui $at,0x4f80
/* f073df0: 44813000 */ mtc1 $at,$f6
/* f073df4: 00000000 */ sll $zero,$zero,0x0
/* f073df8: 46064200 */ add.s $f8,$f8,$f6
.NB0f073dfc:
/* f073dfc: 3c0142c8 */ lui $at,0x42c8
/* f073e00: 44812000 */ mtc1 $at,$f4
/* f073e04: 3c0c8007 */ lui $t4,0x8007
/* f073e08: 8d8cc2c8 */ lw $t4,-0x3d38($t4)
/* f073e0c: 46044183 */ div.s $f6,$f8,$f4
/* f073e10: c7a8028c */ lwc1 $f8,0x28c($sp)
/* f073e14: 3c014f80 */ lui $at,0x4f80
/* f073e18: 46083102 */ mul.s $f4,$f6,$f8
/* f073e1c: 00000000 */ sll $zero,$zero,0x0
/* f073e20: 46002182 */ mul.s $f6,$f4,$f0
/* f073e24: 46065100 */ add.s $f4,$f10,$f6
/* f073e28: 448c5000 */ mtc1 $t4,$f10
/* f073e2c: 05810004 */ bgez $t4,.NB0f073e40
/* f073e30: 468051a0 */ cvt.s.w $f6,$f10
/* f073e34: 44815000 */ mtc1 $at,$f10
/* f073e38: 00000000 */ sll $zero,$zero,0x0
/* f073e3c: 460a3180 */ add.s $f6,$f6,$f10
.NB0f073e40:
/* f073e40: 3c0142c8 */ lui $at,0x42c8
/* f073e44: 44815000 */ mtc1 $at,$f10
/* f073e48: 3c018007 */ lui $at,0x8007
/* f073e4c: e428c2c4 */ swc1 $f8,-0x3d3c($at)
/* f073e50: 460a3183 */ div.s $f6,$f6,$f10
/* f073e54: c7aa02f0 */ lwc1 $f10,0x2f0($sp)
/* f073e58: c7a802f4 */ lwc1 $f8,0x2f4($sp)
/* f073e5c: 3c013f00 */ lui $at,0x3f00
/* f073e60: 46062382 */ mul.s $f14,$f4,$f6
/* f073e64: c7a40298 */ lwc1 $f4,0x298($sp)
/* f073e68: 46045182 */ mul.s $f6,$f10,$f4
/* f073e6c: 00000000 */ sll $zero,$zero,0x0
/* f073e70: 46089102 */ mul.s $f4,$f18,$f8
/* f073e74: 46043201 */ sub.s $f8,$f6,$f4
/* f073e78: c7a40298 */ lwc1 $f4,0x298($sp)
/* f073e7c: c7a602ec */ lwc1 $f6,0x2ec($sp)
/* f073e80: e7a80280 */ swc1 $f8,0x280($sp)
/* f073e84: 46043202 */ mul.s $f8,$f6,$f4
/* f073e88: c7a602f4 */ lwc1 $f6,0x2f4($sp)
/* f073e8c: 46068102 */ mul.s $f4,$f16,$f6
/* f073e90: 46044181 */ sub.s $f6,$f8,$f4
/* f073e94: c7a402ec */ lwc1 $f4,0x2ec($sp)
/* f073e98: 46003207 */ neg.s $f8,$f6
/* f073e9c: 46122182 */ mul.s $f6,$f4,$f18
/* f073ea0: e7a80284 */ swc1 $f8,0x284($sp)
/* f073ea4: 460a8202 */ mul.s $f8,$f16,$f10
/* f073ea8: 44815000 */ mtc1 $at,$f10
/* f073eac: 00000000 */ sll $zero,$zero,0x0
/* f073eb0: 460a7302 */ mul.s $f12,$f14,$f10
/* f073eb4: 46083101 */ sub.s $f4,$f6,$f8
/* f073eb8: e7ac007c */ swc1 $f12,0x7c($sp)
/* f073ebc: 0c006d52 */ jal cosf
/* f073ec0: e7a40288 */ swc1 $f4,0x288($sp)
/* f073ec4: e7a00260 */ swc1 $f0,0x260($sp)
/* f073ec8: 0c006d55 */ jal sinf
/* f073ecc: c7ac007c */ lwc1 $f12,0x7c($sp)
/* f073ed0: c7a60280 */ lwc1 $f6,0x280($sp)
/* f073ed4: c7ac007c */ lwc1 $f12,0x7c($sp)
/* f073ed8: 46060202 */ mul.s $f8,$f0,$f6
/* f073edc: 0c006d55 */ jal sinf
/* f073ee0: e7a80264 */ swc1 $f8,0x264($sp)
/* f073ee4: c7a40284 */ lwc1 $f4,0x284($sp)
/* f073ee8: c7ac007c */ lwc1 $f12,0x7c($sp)
/* f073eec: 46040282 */ mul.s $f10,$f0,$f4
/* f073ef0: 0c006d55 */ jal sinf
/* f073ef4: e7aa0268 */ swc1 $f10,0x268($sp)
/* f073ef8: c7a60288 */ lwc1 $f6,0x288($sp)
/* f073efc: 27a40260 */ addiu $a0,$sp,0x260
/* f073f00: 27a5020c */ addiu $a1,$sp,0x20c
/* f073f04: 46060202 */ mul.s $f8,$f0,$f6
/* f073f08: 0fc25399 */ jal quaternionToMtx
/* f073f0c: e7a8026c */ swc1 $f8,0x26c($sp)
/* f073f10: e6140018 */ swc1 $f20,0x18($s0)
/* f073f14: e6140014 */ swc1 $f20,0x14($s0)
/* f073f18: e6140010 */ swc1 $f20,0x10($s0)
/* f073f1c: 27a4020c */ addiu $a0,$sp,0x20c
/* f073f20: 0c005a80 */ jal mtx4RotateVecInPlace
/* f073f24: 26050004 */ addiu $a1,$s0,0x4
/* f073f28: 27a402a0 */ addiu $a0,$sp,0x2a0
/* f073f2c: 0fc253f5 */ jal quaternion0f097044
/* f073f30: 27a50270 */ addiu $a1,$sp,0x270
/* f073f34: 27a40270 */ addiu $a0,$sp,0x270
/* f073f38: 27a50260 */ addiu $a1,$sp,0x260
/* f073f3c: 0fc255b2 */ jal quaternionMultQuaternion
/* f073f40: 27a60250 */ addiu $a2,$sp,0x250
/* f073f44: 27a40250 */ addiu $a0,$sp,0x250
/* f073f48: 0fc25399 */ jal quaternionToMtx
/* f073f4c: 27a5020c */ addiu $a1,$sp,0x20c
/* f073f50: c7a2029c */ lwc1 $f2,0x29c($sp)
/* f073f54: c7a4020c */ lwc1 $f4,0x20c($sp)
/* f073f58: 46022282 */ mul.s $f10,$f4,$f2
/* f073f5c: e62a001c */ swc1 $f10,0x1c($s1)
/* f073f60: c7a60210 */ lwc1 $f6,0x210($sp)
/* f073f64: 46023202 */ mul.s $f8,$f6,$f2
/* f073f68: e6280020 */ swc1 $f8,0x20($s1)
/* f073f6c: c7a40214 */ lwc1 $f4,0x214($sp)
/* f073f70: 46022282 */ mul.s $f10,$f4,$f2
/* f073f74: e62a0024 */ swc1 $f10,0x24($s1)
/* f073f78: c7a6021c */ lwc1 $f6,0x21c($sp)
/* f073f7c: 46023202 */ mul.s $f8,$f6,$f2
/* f073f80: e6280028 */ swc1 $f8,0x28($s1)
/* f073f84: c7a40220 */ lwc1 $f4,0x220($sp)
/* f073f88: 46022282 */ mul.s $f10,$f4,$f2
/* f073f8c: e62a002c */ swc1 $f10,0x2c($s1)
/* f073f90: c7a60224 */ lwc1 $f6,0x224($sp)
/* f073f94: 46023202 */ mul.s $f8,$f6,$f2
/* f073f98: e6280030 */ swc1 $f8,0x30($s1)
/* f073f9c: c7a4022c */ lwc1 $f4,0x22c($sp)
/* f073fa0: 46022282 */ mul.s $f10,$f4,$f2
/* f073fa4: e62a0034 */ swc1 $f10,0x34($s1)
/* f073fa8: c7a60230 */ lwc1 $f6,0x230($sp)
/* f073fac: 46023202 */ mul.s $f8,$f6,$f2
/* f073fb0: e6280038 */ swc1 $f8,0x38($s1)
/* f073fb4: c7a40234 */ lwc1 $f4,0x234($sp)
/* f073fb8: 46022282 */ mul.s $f10,$f4,$f2
/* f073fbc: e62a003c */ swc1 $f10,0x3c($s1)
.NB0f073fc0:
/* f073fc0: 8e020000 */ lw $v0,0x0($s0)
.NB0f073fc4:
/* f073fc4: 3c03800a */ lui $v1,0x800a
/* f073fc8: 2463e6c0 */ addiu $v1,$v1,-6464
/* f073fcc: 3c017f1a */ lui $at,0x7f1a
/* f073fd0: 30490010 */ andi $t1,$v0,0x10
/* f073fd4: c430472c */ lwc1 $f16,0x472c($at)
/* f073fd8: c462004c */ lwc1 $f2,0x4c($v1)
/* f073fdc: c600001c */ lwc1 $f0,0x1c($s0)
/* f073fe0: 1520001e */ bnez $t1,.NB0f07405c
/* f073fe4: c60c0014 */ lwc1 $f12,0x14($s0)
/* f073fe8: 46006200 */ add.s $f8,$f12,$f0
/* f073fec: c6060008 */ lwc1 $f6,0x8($s0)
/* f073ff0: 00025040 */ sll $t2,$v0,0x1
/* f073ff4: 3c017f1a */ lui $at,0x7f1a
/* f073ff8: 46024102 */ mul.s $f4,$f8,$f2
/* f073ffc: 46043280 */ add.s $f10,$f6,$f4
/* f074000: 05410007 */ bgez $t2,.NB0f074020
/* f074004: e60a0008 */ swc1 $f10,0x8($s0)
/* f074008: c462004c */ lwc1 $f2,0x4c($v1)
/* f07400c: c4284730 */ lwc1 $f8,0x4730($at)
/* f074010: c60c0008 */ lwc1 $f12,0x8($s0)
/* f074014: 46024182 */ mul.s $f6,$f8,$f2
/* f074018: 10000005 */ beqz $zero,.NB0f074030
/* f07401c: 46066001 */ sub.s $f0,$f12,$f6
.NB0f074020:
/* f074020: c462004c */ lwc1 $f2,0x4c($v1)
/* f074024: c60c0008 */ lwc1 $f12,0x8($s0)
/* f074028: 46028102 */ mul.s $f4,$f16,$f2
/* f07402c: 46046001 */ sub.s $f0,$f12,$f4
.NB0f074030:
/* f074030: 46006280 */ add.s $f10,$f12,$f0
/* f074034: 3c013f00 */ lui $at,0x3f00
/* f074038: 44813000 */ mtc1 $at,$f6
/* f07403c: 460a1202 */ mul.s $f8,$f2,$f10
/* f074040: c7aa05e0 */ lwc1 $f10,0x5e0($sp)
/* f074044: 46064102 */ mul.s $f4,$f8,$f6
/* f074048: 46045200 */ add.s $f8,$f10,$f4
/* f07404c: e7a805e0 */ swc1 $f8,0x5e0($sp)
/* f074050: e6000008 */ swc1 $f0,0x8($s0)
/* f074054: 1000000c */ beqz $zero,.NB0f074088
/* f074058: c462004c */ lwc1 $f2,0x4c($v1)
.NB0f07405c:
/* f07405c: 46006280 */ add.s $f10,$f12,$f0
/* f074060: c6060008 */ lwc1 $f6,0x8($s0)
/* f074064: 46025102 */ mul.s $f4,$f10,$f2
/* f074068: 46043200 */ add.s $f8,$f6,$f4
/* f07406c: e6080008 */ swc1 $f8,0x8($s0)
/* f074070: c6060008 */ lwc1 $f6,0x8($s0)
/* f074074: c462004c */ lwc1 $f2,0x4c($v1)
/* f074078: c7aa05e0 */ lwc1 $f10,0x5e0($sp)
/* f07407c: 46023102 */ mul.s $f4,$f6,$f2
/* f074080: 46045200 */ add.s $f8,$f10,$f4
/* f074084: e7a805e0 */ swc1 $f8,0x5e0($sp)
.NB0f074088:
/* f074088: c60a0010 */ lwc1 $f10,0x10($s0)
/* f07408c: c6060004 */ lwc1 $f6,0x4($s0)
/* f074090: 27a5030c */ addiu $a1,$sp,0x30c
/* f074094: 46025102 */ mul.s $f4,$f10,$f2
/* f074098: c60a0018 */ lwc1 $f10,0x18($s0)
/* f07409c: 46043200 */ add.s $f8,$f6,$f4
/* f0740a0: e6080004 */ swc1 $f8,0x4($s0)
/* f0740a4: c466004c */ lwc1 $f6,0x4c($v1)
/* f0740a8: c608000c */ lwc1 $f8,0xc($s0)
/* f0740ac: 46065102 */ mul.s $f4,$f10,$f6
/* f0740b0: 46044280 */ add.s $f10,$f8,$f4
/* f0740b4: c6080004 */ lwc1 $f8,0x4($s0)
/* f0740b8: e60a000c */ swc1 $f10,0xc($s0)
/* f0740bc: c462004c */ lwc1 $f2,0x4c($v1)
/* f0740c0: c7a605dc */ lwc1 $f6,0x5dc($sp)
/* f0740c4: 8fa40078 */ lw $a0,0x78($sp)
/* f0740c8: 46024102 */ mul.s $f4,$f8,$f2
/* f0740cc: c7a805e4 */ lwc1 $f8,0x5e4($sp)
/* f0740d0: 46043280 */ add.s $f10,$f6,$f4
/* f0740d4: e7aa05dc */ swc1 $f10,0x5dc($sp)
/* f0740d8: c606000c */ lwc1 $f6,0xc($s0)
/* f0740dc: 46023102 */ mul.s $f4,$f6,$f2
/* f0740e0: 46044280 */ add.s $f10,$f8,$f4
/* f0740e4: 0c005b11 */ jal mtx3ToMtx4
/* f0740e8: e7aa05e4 */ swc1 $f10,0x5e4($sp)
/* f0740ec: 26050020 */ addiu $a1,$s0,0x20
/* f0740f0: 3c06800a */ lui $a2,0x800a
/* f0740f4: 8cc6e6f4 */ lw $a2,-0x190c($a2)
/* f0740f8: afa50068 */ sw $a1,0x68($sp)
/* f0740fc: 0fc2518a */ jal func0f096698
/* f074100: 27a4030c */ addiu $a0,$sp,0x30c
/* f074104: 27a4030c */ addiu $a0,$sp,0x30c
/* f074108: 0c005b24 */ jal mtx4ToMtx3
/* f07410c: 8fa50078 */ lw $a1,0x78($sp)
/* f074110: c6460008 */ lwc1 $f6,0x8($s2)
/* f074114: 26440028 */ addiu $a0,$s2,0x28
/* f074118: 27a505b8 */ addiu $a1,$sp,0x5b8
/* f07411c: e7a605c8 */ swc1 $f6,0x5c8($sp)
/* f074120: c648000c */ lwc1 $f8,0xc($s2)
/* f074124: e7a805cc */ swc1 $f8,0x5cc($sp)
/* f074128: c6440010 */ lwc1 $f4,0x10($s2)
/* f07412c: afa40070 */ sw $a0,0x70($sp)
/* f074130: 0fc19283 */ jal roomsCopy
/* f074134: e7a405d0 */ swc1 $f4,0x5d0($sp)
/* f074138: 8e040088 */ lw $a0,0x88($s0)
/* f07413c: 50800004 */ beqzl $a0,.NB0f074150
/* f074140: 8e0b0000 */ lw $t3,0x0($s0)
/* f074144: 0fc18cfb */ jal propSetPerimEnabled
/* f074148: 00002825 */ or $a1,$zero,$zero
/* f07414c: 8e0b0000 */ lw $t3,0x0($s0)
.NB0f074150:
/* f074150: 316e0004 */ andi $t6,$t3,0x4
/* f074154: 11c00007 */ beqz $t6,.NB0f074174
/* f074158: 02202025 */ or $a0,$s1,$zero
/* f07415c: 27a505dc */ addiu $a1,$sp,0x5dc
/* f074160: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f074164: 0fc1afd9 */ jal func0f06cd00
/* f074168: 27a705f4 */ addiu $a3,$sp,0x5f4
/* f07416c: 10000007 */ beqz $zero,.NB0f07418c
/* f074170: afa20600 */ sw $v0,0x600($sp)
.NB0f074174:
/* f074174: 02202025 */ or $a0,$s1,$zero
/* f074178: 27a505dc */ addiu $a1,$sp,0x5dc
/* f07417c: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f074180: 0fc1b178 */ jal func0f06d37c
/* f074184: 27a705f4 */ addiu $a3,$sp,0x5f4
/* f074188: afa20600 */ sw $v0,0x600($sp)
.NB0f07418c:
/* f07418c: 8e040088 */ lw $a0,0x88($s0)
/* f074190: 50800004 */ beqzl $a0,.NB0f0741a4
/* f074194: 240d0001 */ addiu $t5,$zero,0x1
/* f074198: 0fc18cfb */ jal propSetPerimEnabled
/* f07419c: 24050001 */ addiu $a1,$zero,0x1
/* f0741a0: 240d0001 */ addiu $t5,$zero,0x1
.NB0f0741a4:
/* f0741a4: afad05d8 */ sw $t5,0x5d8($sp)
/* f0741a8: 8e180000 */ lw $t8,0x0($s0)
/* f0741ac: 330f0004 */ andi $t7,$t8,0x4
/* f0741b0: 51e00305 */ beqzl $t7,.NB0f074dc8
/* f0741b4: 8fab034c */ lw $t3,0x34c($sp)
/* f0741b8: 8fb90600 */ lw $t9,0x600($sp)
/* f0741bc: 3c038007 */ lui $v1,0x8007
/* f0741c0: 572002c7 */ bnezl $t9,.NB0f074ce0
/* f0741c4: 8fb9034c */ lw $t9,0x34c($sp)
/* f0741c8: 8c63c030 */ lw $v1,-0x3fd0($v1)
/* f0741cc: afa001f8 */ sw $zero,0x1f8($sp)
/* f0741d0: afa001f4 */ sw $zero,0x1f4($sp)
/* f0741d4: 5060000a */ beqzl $v1,.NB0f074200
/* f0741d8: 92220003 */ lbu $v0,0x3($s1)
/* f0741dc: afa301f4 */ sw $v1,0x1f4($sp)
/* f0741e0: 8c620018 */ lw $v0,0x18($v1)
/* f0741e4: 10400005 */ beqz $v0,.NB0f0741fc
/* f0741e8: 00401825 */ or $v1,$v0,$zero
.NB0f0741ec:
/* f0741ec: 8c420018 */ lw $v0,0x18($v0)
/* f0741f0: 5440fffe */ bnezl $v0,.NB0f0741ec
/* f0741f4: 00401825 */ or $v1,$v0,$zero
/* f0741f8: afa301f4 */ sw $v1,0x1f4($sp)
.NB0f0741fc:
/* f0741fc: 92220003 */ lbu $v0,0x3($s1)
.NB0f074200:
/* f074200: 2401000d */ addiu $at,$zero,0xd
/* f074204: 8fa901f4 */ lw $t1,0x1f4($sp)
/* f074208: 54410006 */ bnel $v0,$at,.NB0f074224
/* f07420c: 24010008 */ addiu $at,$zero,0x8
/* f074210: 15200030 */ bnez $t1,.NB0f0742d4
/* f074214: 240a0001 */ addiu $t2,$zero,0x1
/* f074218: 1000002e */ beqz $zero,.NB0f0742d4
/* f07421c: afaa01f8 */ sw $t2,0x1f8($sp)
/* f074220: 24010008 */ addiu $at,$zero,0x8
.NB0f074224:
/* f074224: 5441002c */ bnel $v0,$at,.NB0f0742d8
/* f074228: 8faf01f8 */ lw $t7,0x1f8($sp)
/* f07422c: 9227005c */ lbu $a3,0x5c($s1)
/* f074230: 24010022 */ addiu $at,$zero,0x22
/* f074234: 10e10016 */ beq $a3,$at,.NB0f074290
/* f074238: 24010020 */ addiu $at,$zero,0x20
/* f07423c: 10e10014 */ beq $a3,$at,.NB0f074290
/* f074240: 24010021 */ addiu $at,$zero,0x21
/* f074244: 10e10012 */ beq $a3,$at,.NB0f074290
/* f074248: 2401003d */ addiu $at,$zero,0x3d
/* f07424c: 10e10010 */ beq $a3,$at,.NB0f074290
/* f074250: 2401003e */ addiu $at,$zero,0x3e
/* f074254: 10e1000e */ beq $a3,$at,.NB0f074290
/* f074258: 2401003f */ addiu $at,$zero,0x3f
/* f07425c: 10e1000c */ beq $a3,$at,.NB0f074290
/* f074260: 24010055 */ addiu $at,$zero,0x55
/* f074264: 10e1000a */ beq $a3,$at,.NB0f074290
/* f074268: 2401001a */ addiu $at,$zero,0x1a
/* f07426c: 10e10008 */ beq $a3,$at,.NB0f074290
/* f074270: 24010035 */ addiu $at,$zero,0x35
/* f074274: 10e10006 */ beq $a3,$at,.NB0f074290
/* f074278: 2624005c */ addiu $a0,$s1,0x5c
/* f07427c: 0fc2bf02 */ jal gsetHasFunctionFlags
/* f074280: 24050100 */ addiu $a1,$zero,0x100
/* f074284: 50400014 */ beqzl $v0,.NB0f0742d8
/* f074288: 8faf01f8 */ lw $t7,0x1f8($sp)
/* f07428c: 9227005c */ lbu $a3,0x5c($s1)
.NB0f074290:
/* f074290: 240b0001 */ addiu $t3,$zero,0x1
/* f074294: 24010054 */ addiu $at,$zero,0x54
/* f074298: 14e1000e */ bne $a3,$at,.NB0f0742d4
/* f07429c: afab01f8 */ sw $t3,0x1f8($sp)
/* f0742a0: 922e005f */ lbu $t6,0x5f($s1)
/* f0742a4: 24010001 */ addiu $at,$zero,0x1
/* f0742a8: 55c1000b */ bnel $t6,$at,.NB0f0742d8
/* f0742ac: 8faf01f8 */ lw $t7,0x1f8($sp)
/* f0742b0: 862d0062 */ lh $t5,0x62($s1)
/* f0742b4: 24010001 */ addiu $at,$zero,0x1
/* f0742b8: 241801e0 */ addiu $t8,$zero,0x1e0
/* f0742bc: 55a10005 */ bnel $t5,$at,.NB0f0742d4
/* f0742c0: a6380062 */ sh $t8,0x62($s1)
/* f0742c4: afa001f8 */ sw $zero,0x1f8($sp)
/* f0742c8: 10000002 */ beqz $zero,.NB0f0742d4
/* f0742cc: a6200062 */ sh $zero,0x62($s1)
/* f0742d0: a6380062 */ sh $t8,0x62($s1)
.NB0f0742d4:
/* f0742d4: 8faf01f8 */ lw $t7,0x1f8($sp)
.NB0f0742d8:
/* f0742d8: 8fac01f4 */ lw $t4,0x1f4($sp)
/* f0742dc: 51e0005d */ beqzl $t7,.NB0f074454
/* f0742e0: 8fae034c */ lw $t6,0x34c($sp)
/* f0742e4: 92390003 */ lbu $t9,0x3($s1)
/* f0742e8: 24010008 */ addiu $at,$zero,0x8
/* f0742ec: 00001825 */ or $v1,$zero,$zero
/* f0742f0: 17210002 */ bne $t9,$at,.NB0f0742fc
/* f0742f4: 00000000 */ sll $zero,$zero,0x0
/* f0742f8: 02201825 */ or $v1,$s1,$zero
.NB0f0742fc:
/* f0742fc: 51800055 */ beqzl $t4,.NB0f074454
/* f074300: 8fae034c */ lw $t6,0x34c($sp)
/* f074304: 91820000 */ lbu $v0,0x0($t4)
/* f074308: 24010001 */ addiu $at,$zero,0x1
/* f07430c: 8fa901f4 */ lw $t1,0x1f4($sp)
/* f074310: 10410006 */ beq $v0,$at,.NB0f07432c
/* f074314: 3c0f8007 */ lui $t7,0x8007
/* f074318: 24010004 */ addiu $at,$zero,0x4
/* f07431c: 10410003 */ beq $v0,$at,.NB0f07432c
/* f074320: 24010002 */ addiu $at,$zero,0x2
/* f074324: 5441003e */ bnel $v0,$at,.NB0f074420
/* f074328: 24010003 */ addiu $at,$zero,0x3
.NB0f07432c:
/* f07432c: 8d270004 */ lw $a3,0x4($t1)
/* f074330: 8cea0040 */ lw $t2,0x40($a3)
/* f074334: 314b0080 */ andi $t3,$t2,0x80
/* f074338: 11600007 */ beqz $t3,.NB0f074358
/* f07433c: 00000000 */ sll $zero,$zero,0x0
/* f074340: 8cee0048 */ lw $t6,0x48($a3)
/* f074344: 8dcd0000 */ lw $t5,0x0($t6)
/* f074348: 31b80800 */ andi $t8,$t5,0x800
/* f07434c: 17000002 */ bnez $t8,.NB0f074358
/* f074350: 00000000 */ sll $zero,$zero,0x0
/* f074354: afa001f8 */ sw $zero,0x1f8($sp)
.NB0f074358:
/* f074358: 8defc044 */ lw $t7,-0x3fbc($t7)
/* f07435c: 24012710 */ addiu $at,$zero,0x2710
/* f074360: 15e10002 */ bne $t7,$at,.NB0f07436c
/* f074364: 00000000 */ sll $zero,$zero,0x0
/* f074368: afa001f8 */ sw $zero,0x1f8($sp)
.NB0f07436c:
/* f07436c: 50600039 */ beqzl $v1,.NB0f074454
/* f074370: 8fae034c */ lw $t6,0x34c($sp)
/* f074374: 9062005c */ lbu $v0,0x5c($v1)
/* f074378: 24010055 */ addiu $at,$zero,0x55
/* f07437c: 10410003 */ beq $v0,$at,.NB0f07438c
/* f074380: 2401001a */ addiu $at,$zero,0x1a
/* f074384: 54410033 */ bnel $v0,$at,.NB0f074454
/* f074388: 8fae034c */ lw $t6,0x34c($sp)
.NB0f07438c:
/* f07438c: 90e20003 */ lbu $v0,0x3($a3)
/* f074390: 24010008 */ addiu $at,$zero,0x8
/* f074394: 26440008 */ addiu $a0,$s2,0x8
/* f074398: 14410002 */ bne $v0,$at,.NB0f0743a4
/* f07439c: 2406ffff */ addiu $a2,$zero,-1
/* f0743a0: afa001f8 */ sw $zero,0x1f8($sp)
.NB0f0743a4:
/* f0743a4: 2401002a */ addiu $at,$zero,0x2a
/* f0743a8: 10410004 */ beq $v0,$at,.NB0f0743bc
/* f0743ac: 8fa50070 */ lw $a1,0x70($sp)
/* f0743b0: 2401002f */ addiu $at,$zero,0x2f
/* f0743b4: 54410027 */ bnel $v0,$at,.NB0f074454
/* f0743b8: 8fae034c */ lw $t6,0x34c($sp)
.NB0f0743bc:
/* f0743bc: afa301ec */ sw $v1,0x1ec($sp)
/* f0743c0: afa40074 */ sw $a0,0x74($sp)
/* f0743c4: 0fc29877 */ jal bgunPlayGlassHitSound
/* f0743c8: afa701e8 */ sw $a3,0x1e8($sp)
/* f0743cc: 8fa401e8 */ lw $a0,0x1e8($sp)
/* f0743d0: 8fa301ec */ lw $v1,0x1ec($sp)
/* f0743d4: 3c0542c8 */ lui $a1,0x42c8
/* f0743d8: 8c99000c */ lw $t9,0xc($a0)
/* f0743dc: 8fa60074 */ lw $a2,0x74($sp)
/* f0743e0: 3c09800a */ lui $t1,0x800a
/* f0743e4: 332c4000 */ andi $t4,$t9,0x4000
/* f0743e8: 5580001a */ bnezl $t4,.NB0f074454
/* f0743ec: 8fae034c */ lw $t6,0x34c($sp)
/* f0743f0: 8d29e94c */ lw $t1,-0x16b4($t1)
/* f0743f4: 9067005c */ lbu $a3,0x5c($v1)
/* f0743f8: afa001f8 */ sw $zero,0x1f8($sp)
/* f0743fc: 0fc20ebd */ jal objTakeGunfire
/* f074400: afa90010 */ sw $t1,0x10($sp)
/* f074404: 8fa401f4 */ lw $a0,0x1f4($sp)
/* f074408: 0fc1bd25 */ jal objDropRecursively
/* f07440c: 00002825 */ or $a1,$zero,$zero
/* f074410: 240a0001 */ addiu $t2,$zero,0x1
/* f074414: 1000000e */ beqz $zero,.NB0f074450
/* f074418: afaa034c */ sw $t2,0x34c($sp)
/* f07441c: 24010003 */ addiu $at,$zero,0x3
.NB0f074420:
/* f074420: 10410004 */ beq $v0,$at,.NB0f074434
/* f074424: 8fab01f4 */ lw $t3,0x1f4($sp)
/* f074428: 24010006 */ addiu $at,$zero,0x6
/* f07442c: 54410009 */ bnel $v0,$at,.NB0f074454
/* f074430: 8fae034c */ lw $t6,0x34c($sp)
.NB0f074434:
/* f074434: 0fc0ce2a */ jal chrGetShield
/* f074438: 8d640004 */ lw $a0,0x4($t3)
/* f07443c: 4600a03c */ c.lt.s $f20,$f0
/* f074440: 00000000 */ sll $zero,$zero,0x0
/* f074444: 45020003 */ bc1fl .NB0f074454
/* f074448: 8fae034c */ lw $t6,0x34c($sp)
/* f07444c: afa001f8 */ sw $zero,0x1f8($sp)
.NB0f074450:
/* f074450: 8fae034c */ lw $t6,0x34c($sp)
.NB0f074454:
/* f074454: 3c0d8007 */ lui $t5,0x8007
/* f074458: 55c00164 */ bnezl $t6,.NB0f0749ec
/* f07445c: 8fb9034c */ lw $t9,0x34c($sp)
/* f074460: 8dadc030 */ lw $t5,-0x3fd0($t5)
/* f074464: 11a00160 */ beqz $t5,.NB0f0749e8
/* f074468: afad006c */ sw $t5,0x6c($sp)
/* f07446c: 92380003 */ lbu $t8,0x3($s1)
/* f074470: 24010008 */ addiu $at,$zero,0x8
/* f074474: 5701015d */ bnel $t8,$at,.NB0f0749ec
/* f074478: 8fb9034c */ lw $t9,0x34c($sp)
/* f07447c: 9227005c */ lbu $a3,0x5c($s1)
/* f074480: 24010055 */ addiu $at,$zero,0x55
/* f074484: 8faf01f4 */ lw $t7,0x1f4($sp)
/* f074488: 10e10003 */ beq $a3,$at,.NB0f074498
/* f07448c: 2401001a */ addiu $at,$zero,0x1a
/* f074490: 54e100aa */ bnel $a3,$at,.NB0f07473c
/* f074494: 24010052 */ addiu $at,$zero,0x52
.NB0f074498:
/* f074498: 91e20000 */ lbu $v0,0x0($t7)
/* f07449c: 24010003 */ addiu $at,$zero,0x3
/* f0744a0: 10410006 */ beq $v0,$at,.NB0f0744bc
/* f0744a4: 24010006 */ addiu $at,$zero,0x6
/* f0744a8: 54410072 */ bnel $v0,$at,.NB0f074674
/* f0744ac: 24010001 */ addiu $at,$zero,0x1
/* f0744b0: 8df90004 */ lw $t9,0x4($t7)
/* f0744b4: 5320006f */ beqzl $t9,.NB0f074674
/* f0744b8: 24010001 */ addiu $at,$zero,0x1
.NB0f0744bc:
/* f0744bc: 8e220048 */ lw $v0,0x48($s1)
/* f0744c0: 8fac01f4 */ lw $t4,0x1f4($sp)
/* f0744c4: 8c490000 */ lw $t1,0x0($v0)
/* f0744c8: 8d840004 */ lw $a0,0x4($t4)
/* f0744cc: 312a0001 */ andi $t2,$t1,0x1
/* f0744d0: 51400146 */ beqzl $t2,.NB0f0749ec
/* f0744d4: 8fb9034c */ lw $t9,0x34c($sp)
/* f0744d8: 8c4b0090 */ lw $t3,0x90($v0)
/* f0744dc: 2627005c */ addiu $a3,$s1,0x5c
/* f0744e0: 5d600142 */ bgtzl $t3,.NB0f0749ec
/* f0744e4: 8fb9034c */ lw $t9,0x34c($sp)
/* f0744e8: 8c4e0088 */ lw $t6,0x88($v0)
/* f0744ec: afa70060 */ sw $a3,0x60($sp)
/* f0744f0: afa401e0 */ sw $a0,0x1e0($sp)
/* f0744f4: 0fc0ce2a */ jal chrGetShield
/* f0744f8: afae01d8 */ sw $t6,0x1d8($sp)
/* f0744fc: 8fa40060 */ lw $a0,0x60($sp)
/* f074500: 0fc2bea2 */ jal gsetGetDamage
/* f074504: e7a001dc */ swc1 $f0,0x1dc($sp)
/* f074508: 3c188007 */ lui $t8,0x8007
/* f07450c: 3c0f8007 */ lui $t7,0x8007
/* f074510: 3c19800a */ lui $t9,0x800a
/* f074514: 3c0c800a */ lui $t4,0x800a
/* f074518: 3c098007 */ lui $t1,0x8007
/* f07451c: 8d29c038 */ lw $t1,-0x3fc8($t1)
/* f074520: 8d8c15a0 */ lw $t4,0x15a0($t4)
/* f074524: 8f3915a4 */ lw $t9,0x15a4($t9)
/* f074528: 8defc030 */ lw $t7,-0x3fd0($t7)
/* f07452c: 8f18c034 */ lw $t8,-0x3fcc($t8)
/* f074530: 8fad01d8 */ lw $t5,0x1d8($sp)
/* f074534: 3c0a8007 */ lui $t2,0x8007
/* f074538: 254ac03c */ addiu $t2,$t2,-16324
/* f07453c: 44050000 */ mfc1 $a1,$f0
/* f074540: 3c06800a */ lui $a2,0x800a
/* f074544: 24c615a8 */ addiu $a2,$a2,0x15a8
/* f074548: afaa0028 */ sw $t2,0x28($sp)
/* f07454c: 8fa70060 */ lw $a3,0x60($sp)
/* f074550: 8fa401e0 */ lw $a0,0x1e0($sp)
/* f074554: afa90024 */ sw $t1,0x24($sp)
/* f074558: afac0020 */ sw $t4,0x20($sp)
/* f07455c: afb9001c */ sw $t9,0x1c($sp)
/* f074560: afaf0018 */ sw $t7,0x18($sp)
/* f074564: afb80014 */ sw $t8,0x14($sp)
/* f074568: 0fc0ceb9 */ jal func0f0341dc
/* f07456c: afad0010 */ sw $t5,0x10($sp)
/* f074570: c7aa01dc */ lwc1 $f10,0x1dc($sp)
/* f074574: 8fab01d8 */ lw $t3,0x1d8($sp)
/* f074578: 3c058007 */ lui $a1,0x8007
/* f07457c: 4614503e */ c.le.s $f10,$f20
/* f074580: 3c068007 */ lui $a2,0x8007
/* f074584: 27a705e8 */ addiu $a3,$sp,0x5e8
/* f074588: 27ad05f4 */ addiu $t5,$sp,0x5f4
/* f07458c: 45020117 */ bc1fl .NB0f0749ec
/* f074590: 8fb9034c */ lw $t9,0x34c($sp)
/* f074594: 51600005 */ beqzl $t3,.NB0f0745ac
/* f074598: afa0008c */ sw $zero,0x8c($sp)
/* f07459c: 8d6e0004 */ lw $t6,0x4($t3)
/* f0745a0: 10000002 */ beqz $zero,.NB0f0745ac
/* f0745a4: afae008c */ sw $t6,0x8c($sp)
/* f0745a8: afa0008c */ sw $zero,0x8c($sp)
.NB0f0745ac:
/* f0745ac: 8fb8008c */ lw $t8,0x8c($sp)
/* f0745b0: 8fa401e0 */ lw $a0,0x1e0($sp)
/* f0745b4: 8ca5c030 */ lw $a1,-0x3fd0($a1)
/* f0745b8: 8cc6c034 */ lw $a2,-0x3fcc($a2)
/* f0745bc: afad0010 */ sw $t5,0x10($sp)
/* f0745c0: 0fc09630 */ jal chrEmitSparks
/* f0745c4: afb80014 */ sw $t8,0x14($sp)
/* f0745c8: 3c0f8007 */ lui $t7,0x8007
/* f0745cc: 8defc030 */ lw $t7,-0x3fd0($t7)
/* f0745d0: 3c04800a */ lui $a0,0x800a
/* f0745d4: 91f90001 */ lbu $t9,0x1($t7)
/* f0745d8: 332c0002 */ andi $t4,$t9,0x2
/* f0745dc: 51800103 */ beqzl $t4,.NB0f0749ec
/* f0745e0: 8fb9034c */ lw $t9,0x34c($sp)
/* f0745e4: 8c8415a0 */ lw $a0,0x15a0($a0)
/* f0745e8: 3c028007 */ lui $v0,0x8007
/* f0745ec: 508000ff */ beqzl $a0,.NB0f0749ec
/* f0745f0: 8fb9034c */ lw $t9,0x34c($sp)
/* f0745f4: 8c42c034 */ lw $v0,-0x3fcc($v0)
/* f0745f8: 24010064 */ addiu $at,$zero,0x64
/* f0745fc: 104100fa */ beq $v0,$at,.NB0f0749e8
/* f074600: 2401006e */ addiu $at,$zero,0x6e
/* f074604: 104100f8 */ beq $v0,$at,.NB0f0749e8
/* f074608: 3c05800a */ lui $a1,0x800a
/* f07460c: 8ca515a4 */ lw $a1,0x15a4($a1)
/* f074610: 0c006dcf */ jal model0001a5cc
/* f074614: 00003025 */ or $a2,$zero,$zero
/* f074618: 0fc2cd16 */ jal camGetWorldToScreenMtxf
/* f07461c: afa20188 */ sw $v0,0x188($sp)
/* f074620: 00402025 */ or $a0,$v0,$zero
/* f074624: 27a505e8 */ addiu $a1,$sp,0x5e8
/* f074628: 0c005a96 */ jal mtx4TransformVec
/* f07462c: 27a601cc */ addiu $a2,$sp,0x1cc
/* f074630: 8fa40188 */ lw $a0,0x188($sp)
/* f074634: 0c006082 */ jal mtx0001719c
/* f074638: 27a5018c */ addiu $a1,$sp,0x18c
/* f07463c: 27a4018c */ addiu $a0,$sp,0x18c
/* f074640: 0c005a95 */ jal mtx4TransformVecInPlace
/* f074644: 27a501cc */ addiu $a1,$sp,0x1cc
/* f074648: 3c04800a */ lui $a0,0x800a
/* f07464c: 3c058007 */ lui $a1,0x8007
/* f074650: 3c06800a */ lui $a2,0x800a
/* f074654: 8cc615a4 */ lw $a2,0x15a4($a2)
/* f074658: 8ca5c034 */ lw $a1,-0x3fcc($a1)
/* f07465c: 8c8415a0 */ lw $a0,0x15a0($a0)
/* f074660: 0fc096b8 */ jal chr0f0260c4
/* f074664: 27a701cc */ addiu $a3,$sp,0x1cc
/* f074668: 100000e0 */ beqz $zero,.NB0f0749ec
/* f07466c: 8fb9034c */ lw $t9,0x34c($sp)
/* f074670: 24010001 */ addiu $at,$zero,0x1
.NB0f074674:
/* f074674: 144100dc */ bne $v0,$at,.NB0f0749e8
/* f074678: 8fa6006c */ lw $a2,0x6c($sp)
/* f07467c: 8fa901f4 */ lw $t1,0x1f4($sp)
/* f074680: 3c0b8007 */ lui $t3,0x8007
/* f074684: 8d6bc044 */ lw $t3,-0x3fbc($t3)
/* f074688: 8d2a0004 */ lw $t2,0x4($t1)
/* f07468c: 24012710 */ addiu $at,$zero,0x2710
/* f074690: 15610019 */ bne $t3,$at,.NB0f0746f8
/* f074694: afaa0184 */ sw $t2,0x184($sp)
/* f074698: 8d4e0010 */ lw $t6,0x10($t2)
/* f07469c: 8fa401f4 */ lw $a0,0x1f4($sp)
/* f0746a0: 3c07800a */ lui $a3,0x800a
/* f0746a4: 31cd1000 */ andi $t5,$t6,0x1000
/* f0746a8: 11a00005 */ beqz $t5,.NB0f0746c0
/* f0746ac: 3c18800a */ lui $t8,0x800a
/* f0746b0: 3c014080 */ lui $at,0x4080
/* f0746b4: 44810000 */ mtc1 $at,$f0
/* f0746b8: 10000004 */ beqz $zero,.NB0f0746cc
/* f0746bc: 00000000 */ sll $zero,$zero,0x0
.NB0f0746c0:
/* f0746c0: 3c014100 */ lui $at,0x4100
/* f0746c4: 44810000 */ mtc1 $at,$f0
/* f0746c8: 00000000 */ sll $zero,$zero,0x0
.NB0f0746cc:
/* f0746cc: 3c0f8007 */ lui $t7,0x8007
/* f0746d0: 8defc038 */ lw $t7,-0x3fc8($t7)
/* f0746d4: 8f1815a0 */ lw $t8,0x15a0($t8)
/* f0746d8: 3c198007 */ lui $t9,0x8007
/* f0746dc: 2739c03c */ addiu $t9,$t9,-16324
/* f0746e0: 44050000 */ mfc1 $a1,$f0
/* f0746e4: afb90018 */ sw $t9,0x18($sp)
/* f0746e8: 8ce715a4 */ lw $a3,0x15a4($a3)
/* f0746ec: afaf0014 */ sw $t7,0x14($sp)
/* f0746f0: 0fc0a24a */ jal shieldhitCreate
/* f0746f4: afb80010 */ sw $t8,0x10($sp)
.NB0f0746f8:
/* f0746f8: 8fac0184 */ lw $t4,0x184($sp)
/* f0746fc: 2401014c */ addiu $at,$zero,0x14c
/* f074700: 3c0b8007 */ lui $t3,0x8007
/* f074704: 85890004 */ lh $t1,0x4($t4)
/* f074708: 552100b8 */ bnel $t1,$at,.NB0f0749ec
/* f07470c: 8fb9034c */ lw $t9,0x34c($sp)
/* f074710: 8d6bc044 */ lw $t3,-0x3fbc($t3)
/* f074714: 24010b9e */ addiu $at,$zero,0xb9e
/* f074718: 01802025 */ or $a0,$t4,$zero
/* f07471c: 556100b3 */ bnel $t3,$at,.NB0f0749ec
/* f074720: 8fb9034c */ lw $t9,0x34c($sp)
/* f074724: 4406a000 */ mfc1 $a2,$f20
/* f074728: 0fc66b34 */ jal frCalculateHit
/* f07472c: 27a505e8 */ addiu $a1,$sp,0x5e8
/* f074730: 100000ae */ beqz $zero,.NB0f0749ec
/* f074734: 8fb9034c */ lw $t9,0x34c($sp)
/* f074738: 24010052 */ addiu $at,$zero,0x52
.NB0f07473c:
/* f07473c: 10e10004 */ beq $a3,$at,.NB0f074750
/* f074740: 8fad006c */ lw $t5,0x6c($sp)
/* f074744: 24010053 */ addiu $at,$zero,0x53
/* f074748: 14e1006b */ bne $a3,$at,.NB0f0748f8
/* f07474c: 8fae01f4 */ lw $t6,0x1f4($sp)
.NB0f074750:
/* f074750: 8e230040 */ lw $v1,0x40($s1)
/* f074754: 3c01f000 */ lui $at,0xf000
/* f074758: 91a20000 */ lbu $v0,0x0($t5)
/* f07475c: 00615024 */ and $t2,$v1,$at
/* f074760: 000a4702 */ srl $t0,$t2,0x1c
/* f074764: 24010003 */ addiu $at,$zero,0x3
/* f074768: 24180001 */ addiu $t8,$zero,0x1
/* f07476c: 01001825 */ or $v1,$t0,$zero
/* f074770: 10410006 */ beq $v0,$at,.NB0f07478c
/* f074774: afb8034c */ sw $t8,0x34c($sp)
/* f074778: 24010006 */ addiu $at,$zero,0x6
/* f07477c: 5441002b */ bnel $v0,$at,.NB0f07482c
/* f074780: 24010001 */ addiu $at,$zero,0x1
/* f074784: 8daf0004 */ lw $t7,0x4($t5)
/* f074788: 11e00027 */ beqz $t7,.NB0f074828
.NB0f07478c:
/* f07478c: 3c19800a */ lui $t9,0x800a
/* f074790: 8f39e9d8 */ lw $t9,-0x1628($t9)
/* f074794: 00602025 */ or $a0,$v1,$zero
/* f074798: 00004025 */ or $t0,$zero,$zero
/* f07479c: 13200008 */ beqz $t9,.NB0f0747c0
/* f0747a0: 2627005c */ addiu $a3,$s1,0x5c
/* f0747a4: afa70060 */ sw $a3,0x60($sp)
/* f0747a8: 0fc61c91 */ jal mpGetChrFromPlayerIndex
/* f0747ac: afa00178 */ sw $zero,0x178($sp)
/* f0747b0: 8fa70060 */ lw $a3,0x60($sp)
/* f0747b4: 10400002 */ beqz $v0,.NB0f0747c0
/* f0747b8: 8fa80178 */ lw $t0,0x178($sp)
/* f0747bc: 8c48001c */ lw $t0,0x1c($v0)
.NB0f0747c0:
/* f0747c0: 3c028007 */ lui $v0,0x8007
/* f0747c4: 8c42c030 */ lw $v0,-0x3fd0($v0)
/* f0747c8: 3c098007 */ lui $t1,0x8007
/* f0747cc: 3c0b800a */ lui $t3,0x800a
/* f0747d0: 8c440004 */ lw $a0,0x4($v0)
/* f0747d4: 3c0c800a */ lui $t4,0x800a
/* f0747d8: 3c0a8007 */ lui $t2,0x8007
/* f0747dc: 8d4ac038 */ lw $t2,-0x3fc8($t2)
/* f0747e0: 8d8c15a0 */ lw $t4,0x15a0($t4)
/* f0747e4: 8d6b15a4 */ lw $t3,0x15a4($t3)
/* f0747e8: 8d29c034 */ lw $t1,-0x3fcc($t1)
/* f0747ec: 3c0e8007 */ lui $t6,0x8007
/* f0747f0: 25cec03c */ addiu $t6,$t6,-16324
/* f0747f4: 3c06800a */ lui $a2,0x800a
/* f0747f8: 24c615a8 */ addiu $a2,$a2,0x15a8
/* f0747fc: afae0028 */ sw $t6,0x28($sp)
/* f074800: afa80010 */ sw $t0,0x10($sp)
/* f074804: 3c054000 */ lui $a1,0x4000
/* f074808: afa20018 */ sw $v0,0x18($sp)
/* f07480c: afaa0024 */ sw $t2,0x24($sp)
/* f074810: afac0020 */ sw $t4,0x20($sp)
/* f074814: afab001c */ sw $t3,0x1c($sp)
/* f074818: 0fc0ceb9 */ jal func0f0341dc
/* f07481c: afa90014 */ sw $t1,0x14($sp)
/* f074820: 10000030 */ beqz $zero,.NB0f0748e4
/* f074824: 02202025 */ or $a0,$s1,$zero
.NB0f074828:
/* f074828: 24010001 */ addiu $at,$zero,0x1
.NB0f07482c:
/* f07482c: 10410003 */ beq $v0,$at,.NB0f07483c
/* f074830: 8fa6006c */ lw $a2,0x6c($sp)
/* f074834: 24010004 */ addiu $at,$zero,0x4
/* f074838: 14410029 */ bne $v0,$at,.NB0f0748e0
.NB0f07483c:
/* f07483c: 3c0d8007 */ lui $t5,0x8007
/* f074840: 8dadc044 */ lw $t5,-0x3fbc($t5)
/* f074844: 26580008 */ addiu $t8,$s2,0x8
/* f074848: afb80074 */ sw $t8,0x74($sp)
/* f07484c: 24012710 */ addiu $at,$zero,0x2710
/* f074850: 15a1001f */ bne $t5,$at,.NB0f0748d0
/* f074854: 8cc40004 */ lw $a0,0x4($a2)
/* f074858: 8c8f0010 */ lw $t7,0x10($a0)
/* f07485c: 8fa401f4 */ lw $a0,0x1f4($sp)
/* f074860: 3c07800a */ lui $a3,0x800a
/* f074864: 31f91000 */ andi $t9,$t7,0x1000
/* f074868: 13200005 */ beqz $t9,.NB0f074880
/* f07486c: 3c09800a */ lui $t1,0x800a
/* f074870: 3c014080 */ lui $at,0x4080
/* f074874: 44810000 */ mtc1 $at,$f0
/* f074878: 10000004 */ beqz $zero,.NB0f07488c
/* f07487c: 00000000 */ sll $zero,$zero,0x0
.NB0f074880:
/* f074880: 3c014100 */ lui $at,0x4100
/* f074884: 44810000 */ mtc1 $at,$f0
/* f074888: 00000000 */ sll $zero,$zero,0x0
.NB0f07488c:
/* f07488c: 3c0b8007 */ lui $t3,0x8007
/* f074890: 8d6bc038 */ lw $t3,-0x3fc8($t3)
/* f074894: 8d2915a0 */ lw $t1,0x15a0($t1)
/* f074898: 3c0c8007 */ lui $t4,0x8007
/* f07489c: 258cc03c */ addiu $t4,$t4,-16324
/* f0748a0: 44050000 */ mfc1 $a1,$f0
/* f0748a4: afac0018 */ sw $t4,0x18($sp)
/* f0748a8: 8ce715a4 */ lw $a3,0x15a4($a3)
/* f0748ac: afa80180 */ sw $t0,0x180($sp)
/* f0748b0: afab0014 */ sw $t3,0x14($sp)
/* f0748b4: 0fc0a24a */ jal shieldhitCreate
/* f0748b8: afa90010 */ sw $t1,0x10($sp)
/* f0748bc: 3c0a8007 */ lui $t2,0x8007
/* f0748c0: 8d4ac030 */ lw $t2,-0x3fd0($t2)
/* f0748c4: 8fa80180 */ lw $t0,0x180($sp)
/* f0748c8: 9227005c */ lbu $a3,0x5c($s1)
/* f0748cc: 8d440004 */ lw $a0,0x4($t2)
.NB0f0748d0:
/* f0748d0: 3c0542c8 */ lui $a1,0x42c8
/* f0748d4: 8fa60074 */ lw $a2,0x74($sp)
/* f0748d8: 0fc20ecc */ jal objDamage
/* f0748dc: afa80010 */ sw $t0,0x10($sp)
.NB0f0748e0:
/* f0748e0: 02202025 */ or $a0,$s1,$zero
.NB0f0748e4:
/* f0748e4: 24050001 */ addiu $a1,$zero,0x1
/* f0748e8: 0fc1a3b7 */ jal func0f069c70
/* f0748ec: 24060001 */ addiu $a2,$zero,0x1
/* f0748f0: 1000003d */ beqz $zero,.NB0f0749e8
/* f0748f4: a6200062 */ sh $zero,0x62($s1)
.NB0f0748f8:
/* f0748f8: 91c20000 */ lbu $v0,0x0($t6)
/* f0748fc: 24010003 */ addiu $at,$zero,0x3
/* f074900: 8fa6006c */ lw $a2,0x6c($sp)
/* f074904: 10410006 */ beq $v0,$at,.NB0f074920
/* f074908: 8fad01f4 */ lw $t5,0x1f4($sp)
/* f07490c: 24010006 */ addiu $at,$zero,0x6
/* f074910: 54410012 */ bnel $v0,$at,.NB0f07495c
/* f074914: 24010001 */ addiu $at,$zero,0x1
/* f074918: 8dd80004 */ lw $t8,0x4($t6)
/* f07491c: 1300000e */ beqz $t8,.NB0f074958
.NB0f074920:
/* f074920: 3c0f8007 */ lui $t7,0x8007
/* f074924: 8defc038 */ lw $t7,-0x3fc8($t7)
/* f074928: 3c198007 */ lui $t9,0x8007
/* f07492c: 8da40004 */ lw $a0,0x4($t5)
/* f074930: 2739c03c */ addiu $t9,$t9,-16324
/* f074934: 3c05800a */ lui $a1,0x800a
/* f074938: 3c07800a */ lui $a3,0x800a
/* f07493c: 8ce715a0 */ lw $a3,0x15a0($a3)
/* f074940: 8ca515a4 */ lw $a1,0x15a4($a1)
/* f074944: afb90014 */ sw $t9,0x14($sp)
/* f074948: 0fc0ce62 */ jal func0f034080
/* f07494c: afaf0010 */ sw $t7,0x10($sp)
/* f074950: 10000026 */ beqz $zero,.NB0f0749ec
/* f074954: 8fb9034c */ lw $t9,0x34c($sp)
.NB0f074958:
/* f074958: 24010001 */ addiu $at,$zero,0x1
.NB0f07495c:
/* f07495c: 10410004 */ beq $v0,$at,.NB0f074970
/* f074960: 3c098007 */ lui $t1,0x8007
/* f074964: 24010004 */ addiu $at,$zero,0x4
/* f074968: 54410020 */ bnel $v0,$at,.NB0f0749ec
/* f07496c: 8fb9034c */ lw $t9,0x34c($sp)
.NB0f074970:
/* f074970: 8d29c044 */ lw $t1,-0x3fbc($t1)
/* f074974: 24012710 */ addiu $at,$zero,0x2710
/* f074978: 8fab01f4 */ lw $t3,0x1f4($sp)
/* f07497c: 1521001a */ bne $t1,$at,.NB0f0749e8
/* f074980: 8fa6006c */ lw $a2,0x6c($sp)
/* f074984: 8d6c0004 */ lw $t4,0x4($t3)
/* f074988: 8fa401f4 */ lw $a0,0x1f4($sp)
/* f07498c: 3c07800a */ lui $a3,0x800a
/* f074990: 8d8a0010 */ lw $t2,0x10($t4)
/* f074994: 3c18800a */ lui $t8,0x800a
/* f074998: 3c0d8007 */ lui $t5,0x8007
/* f07499c: 314e1000 */ andi $t6,$t2,0x1000
/* f0749a0: 11c00005 */ beqz $t6,.NB0f0749b8
/* f0749a4: 3c0f8007 */ lui $t7,0x8007
/* f0749a8: 3c014080 */ lui $at,0x4080
/* f0749ac: 44810000 */ mtc1 $at,$f0
/* f0749b0: 10000004 */ beqz $zero,.NB0f0749c4
/* f0749b4: 00000000 */ sll $zero,$zero,0x0
.NB0f0749b8:
/* f0749b8: 3c014100 */ lui $at,0x4100
/* f0749bc: 44810000 */ mtc1 $at,$f0
/* f0749c0: 00000000 */ sll $zero,$zero,0x0
.NB0f0749c4:
/* f0749c4: 8f1815a0 */ lw $t8,0x15a0($t8)
/* f0749c8: 8dadc038 */ lw $t5,-0x3fc8($t5)
/* f0749cc: 44050000 */ mfc1 $a1,$f0
/* f0749d0: 25efc03c */ addiu $t7,$t7,-16324
/* f0749d4: afaf0018 */ sw $t7,0x18($sp)
/* f0749d8: 8ce715a4 */ lw $a3,0x15a4($a3)
/* f0749dc: afb80010 */ sw $t8,0x10($sp)
/* f0749e0: 0fc0a24a */ jal shieldhitCreate
/* f0749e4: afad0014 */ sw $t5,0x14($sp)
.NB0f0749e8:
/* f0749e8: 8fb9034c */ lw $t9,0x34c($sp)
.NB0f0749ec:
/* f0749ec: 8fa901f8 */ lw $t1,0x1f8($sp)
/* f0749f0: 572000bb */ bnezl $t9,.NB0f074ce0
/* f0749f4: 8fb9034c */ lw $t9,0x34c($sp)
/* f0749f8: 112000b8 */ beqz $t1,.NB0f074cdc
/* f0749fc: 240b0001 */ addiu $t3,$zero,0x1
/* f074a00: afab034c */ sw $t3,0x34c($sp)
/* f074a04: 02202025 */ or $a0,$s1,$zero
/* f074a08: 24050001 */ addiu $a1,$zero,0x1
/* f074a0c: 0fc1a3b7 */ jal func0f069c70
/* f074a10: 24060001 */ addiu $a2,$zero,0x1
/* f074a14: 922c0003 */ lbu $t4,0x3($s1)
/* f074a18: 24010008 */ addiu $at,$zero,0x8
/* f074a1c: 558100ab */ bnel $t4,$at,.NB0f074ccc
/* f074a20: 02402025 */ or $a0,$s2,$zero
/* f074a24: 9227005c */ lbu $a3,0x5c($s1)
/* f074a28: 24010055 */ addiu $at,$zero,0x55
/* f074a2c: 10e10003 */ beq $a3,$at,.NB0f074a3c
/* f074a30: 2401001a */ addiu $at,$zero,0x1a
/* f074a34: 54e100a5 */ bnel $a3,$at,.NB0f074ccc
/* f074a38: 02402025 */ or $a0,$s2,$zero
.NB0f074a3c:
/* f074a3c: 8e2a0048 */ lw $t2,0x48($s1)
/* f074a40: 8d440088 */ lw $a0,0x88($t2)
/* f074a44: 5080006b */ beqzl $a0,.NB0f074bf4
/* f074a48: 8fa301f4 */ lw $v1,0x1f4($sp)
/* f074a4c: 908e0000 */ lbu $t6,0x0($a0)
/* f074a50: 24010006 */ addiu $at,$zero,0x6
/* f074a54: 3c18800a */ lui $t8,0x800a
/* f074a58: 15c10065 */ bne $t6,$at,.NB0f074bf0
/* f074a5c: 2627005c */ addiu $a3,$s1,0x5c
/* f074a60: 8f18e94c */ lw $t8,-0x16b4($t8)
/* f074a64: afa70060 */ sw $a3,0x60($sp)
/* f074a68: 0fc48d6f */ jal playermgrGetPlayerNumByProp
/* f074a6c: afb80164 */ sw $t8,0x164($sp)
/* f074a70: 0fc48d5b */ jal setCurrentPlayerNum
/* f074a74: 00402025 */ or $a0,$v0,$zero
/* f074a78: 8fa40060 */ lw $a0,0x60($sp)
/* f074a7c: 0fc2b860 */ jal mpstatsIncrementPlayerShotCount
/* f074a80: 00002825 */ or $a1,$zero,$zero
/* f074a84: 3c058007 */ lui $a1,0x8007
/* f074a88: 8ca5c030 */ lw $a1,-0x3fd0($a1)
/* f074a8c: 8fa70060 */ lw $a3,0x60($sp)
/* f074a90: 10a00055 */ beqz $a1,.NB0f074be8
/* f074a94: 00000000 */ sll $zero,$zero,0x0
/* f074a98: 90a20000 */ lbu $v0,0x0($a1)
/* f074a9c: 24010001 */ addiu $at,$zero,0x1
/* f074aa0: 5441000c */ bnel $v0,$at,.NB0f074ad4
/* f074aa4: 24010003 */ addiu $at,$zero,0x3
/* f074aa8: 8ca40004 */ lw $a0,0x4($a1)
/* f074aac: 0fc21481 */ jal objIsHealthy
/* f074ab0: afa70060 */ sw $a3,0x60($sp)
/* f074ab4: 1040004c */ beqz $v0,.NB0f074be8
/* f074ab8: 8fa70060 */ lw $a3,0x60($sp)
/* f074abc: 00e02025 */ or $a0,$a3,$zero
/* f074ac0: 0fc2b860 */ jal mpstatsIncrementPlayerShotCount
/* f074ac4: 24050006 */ addiu $a1,$zero,0x6
/* f074ac8: 10000047 */ beqz $zero,.NB0f074be8
/* f074acc: 00000000 */ sll $zero,$zero,0x0
/* f074ad0: 24010003 */ addiu $at,$zero,0x3
.NB0f074ad4:
/* f074ad4: 10410003 */ beq $v0,$at,.NB0f074ae4
/* f074ad8: 24010006 */ addiu $at,$zero,0x6
/* f074adc: 14410042 */ bne $v0,$at,.NB0f074be8
/* f074ae0: 00000000 */ sll $zero,$zero,0x0
.NB0f074ae4:
/* f074ae4: 8ca30004 */ lw $v1,0x4($a1)
/* f074ae8: 00003025 */ or $a2,$zero,$zero
/* f074aec: 00a02025 */ or $a0,$a1,$zero
/* f074af0: 50600007 */ beqzl $v1,.NB0f074b10
/* f074af4: 24010006 */ addiu $at,$zero,0x6
/* f074af8: 806d0007 */ lb $t5,0x7($v1)
/* f074afc: 24010005 */ addiu $at,$zero,0x5
/* f074b00: 55a10003 */ bnel $t5,$at,.NB0f074b10
/* f074b04: 24010006 */ addiu $at,$zero,0x6
/* f074b08: 24060001 */ addiu $a2,$zero,0x1
/* f074b0c: 24010006 */ addiu $at,$zero,0x6
.NB0f074b10:
/* f074b10: 1441000e */ bne $v0,$at,.NB0f074b4c
/* f074b14: 00000000 */ sll $zero,$zero,0x0
/* f074b18: afa6015c */ sw $a2,0x15c($sp)
/* f074b1c: 0fc48d6f */ jal playermgrGetPlayerNumByProp
/* f074b20: afa70060 */ sw $a3,0x60($sp)
/* f074b24: 00027880 */ sll $t7,$v0,0x2
/* f074b28: 3c19800a */ lui $t9,0x800a
/* f074b2c: 032fc821 */ addu $t9,$t9,$t7
/* f074b30: 8f39e724 */ lw $t9,-0x18dc($t9)
/* f074b34: 8fa6015c */ lw $a2,0x15c($sp)
/* f074b38: 8fa70060 */ lw $a3,0x60($sp)
/* f074b3c: 8f2900d8 */ lw $t1,0xd8($t9)
/* f074b40: 11200002 */ beqz $t1,.NB0f074b4c
/* f074b44: 00000000 */ sll $zero,$zero,0x0
/* f074b48: 24060001 */ addiu $a2,$zero,0x1
.NB0f074b4c:
/* f074b4c: 14c00026 */ bnez $a2,.NB0f074be8
/* f074b50: 3c0b8007 */ lui $t3,0x8007
/* f074b54: 8d6bc034 */ lw $t3,-0x3fcc($t3)
/* f074b58: 24010007 */ addiu $at,$zero,0x7
/* f074b5c: 11600022 */ beqz $t3,.NB0f074be8
/* f074b60: afab008c */ sw $t3,0x8c($sp)
/* f074b64: 1161001a */ beq $t3,$at,.NB0f074bd0
/* f074b68: 00e02025 */ or $a0,$a3,$zero
/* f074b6c: 24010008 */ addiu $at,$zero,0x8
/* f074b70: 1161000b */ beq $t3,$at,.NB0f074ba0
/* f074b74: 24050001 */ addiu $a1,$zero,0x1
/* f074b78: 2401000f */ addiu $at,$zero,0xf
/* f074b7c: 11610014 */ beq $t3,$at,.NB0f074bd0
/* f074b80: 24010064 */ addiu $at,$zero,0x64
/* f074b84: 1161000a */ beq $t3,$at,.NB0f074bb0
/* f074b88: 00e02025 */ or $a0,$a3,$zero
/* f074b8c: 2401006e */ addiu $at,$zero,0x6e
/* f074b90: 1161000b */ beq $t3,$at,.NB0f074bc0
/* f074b94: 00e02025 */ or $a0,$a3,$zero
/* f074b98: 10000011 */ beqz $zero,.NB0f074be0
/* f074b9c: 00e02025 */ or $a0,$a3,$zero
.NB0f074ba0:
/* f074ba0: 0fc2b860 */ jal mpstatsIncrementPlayerShotCount
/* f074ba4: 00e02025 */ or $a0,$a3,$zero
/* f074ba8: 1000000f */ beqz $zero,.NB0f074be8
/* f074bac: 00000000 */ sll $zero,$zero,0x0
.NB0f074bb0:
/* f074bb0: 0fc2b860 */ jal mpstatsIncrementPlayerShotCount
/* f074bb4: 24050004 */ addiu $a1,$zero,0x4
/* f074bb8: 1000000b */ beqz $zero,.NB0f074be8
/* f074bbc: 00000000 */ sll $zero,$zero,0x0
.NB0f074bc0:
/* f074bc0: 0fc2b860 */ jal mpstatsIncrementPlayerShotCount
/* f074bc4: 24050005 */ addiu $a1,$zero,0x5
/* f074bc8: 10000007 */ beqz $zero,.NB0f074be8
/* f074bcc: 00000000 */ sll $zero,$zero,0x0
.NB0f074bd0:
/* f074bd0: 0fc2b860 */ jal mpstatsIncrementPlayerShotCount
/* f074bd4: 24050002 */ addiu $a1,$zero,0x2
/* f074bd8: 10000003 */ beqz $zero,.NB0f074be8
/* f074bdc: 00000000 */ sll $zero,$zero,0x0
.NB0f074be0:
/* f074be0: 0fc2b860 */ jal mpstatsIncrementPlayerShotCount
/* f074be4: 24050003 */ addiu $a1,$zero,0x3
.NB0f074be8:
/* f074be8: 0fc48d5b */ jal setCurrentPlayerNum
/* f074bec: 8fa40164 */ lw $a0,0x164($sp)
.NB0f074bf0:
/* f074bf0: 8fa301f4 */ lw $v1,0x1f4($sp)
.NB0f074bf4:
/* f074bf4: 5060000a */ beqzl $v1,.NB0f074c20
/* f074bf8: 8e2c0048 */ lw $t4,0x48($s1)
/* f074bfc: 90620000 */ lbu $v0,0x0($v1)
/* f074c00: 24010001 */ addiu $at,$zero,0x1
/* f074c04: 10410005 */ beq $v0,$at,.NB0f074c1c
/* f074c08: 24010004 */ addiu $at,$zero,0x4
/* f074c0c: 10410003 */ beq $v0,$at,.NB0f074c1c
/* f074c10: 24010002 */ addiu $at,$zero,0x2
/* f074c14: 5441002d */ bnel $v0,$at,.NB0f074ccc
/* f074c18: 02402025 */ or $a0,$s2,$zero
.NB0f074c1c:
/* f074c1c: 8e2c0048 */ lw $t4,0x48($s1)
.NB0f074c20:
/* f074c20: c6060004 */ lwc1 $f6,0x4($s0)
/* f074c24: 27a40150 */ addiu $a0,$sp,0x150
/* f074c28: 8d820088 */ lw $v0,0x88($t4)
/* f074c2c: e7a60150 */ swc1 $f6,0x150($sp)
/* f074c30: c6080008 */ lwc1 $f8,0x8($s0)
/* f074c34: 27a50154 */ addiu $a1,$sp,0x154
/* f074c38: 27a60158 */ addiu $a2,$sp,0x158
/* f074c3c: e7a80154 */ swc1 $f8,0x154($sp)
/* f074c40: c604000c */ lwc1 $f4,0xc($s0)
/* f074c44: afa2014c */ sw $v0,0x14c($sp)
/* f074c48: 0c0012a8 */ jal guNormalize
/* f074c4c: e7a40158 */ swc1 $f4,0x158($sp)
/* f074c50: 8fa2014c */ lw $v0,0x14c($sp)
/* f074c54: 50400005 */ beqzl $v0,.NB0f074c6c
/* f074c58: afa0008c */ sw $zero,0x8c($sp)
/* f074c5c: 8c4a0004 */ lw $t2,0x4($v0)
/* f074c60: 10000002 */ beqz $zero,.NB0f074c6c
/* f074c64: afaa008c */ sw $t2,0x8c($sp)
/* f074c68: afa0008c */ sw $zero,0x8c($sp)
.NB0f074c6c:
/* f074c6c: 0fc4e3ea */ jal chrIsUsingPaintball
/* f074c70: 8fa4008c */ lw $a0,0x8c($sp)
/* f074c74: 1040000c */ beqz $v0,.NB0f074ca8
/* f074c78: 02402825 */ or $a1,$s2,$zero
/* f074c7c: 86440028 */ lh $a0,0x28($s2)
/* f074c80: 27ae05f4 */ addiu $t6,$sp,0x5f4
/* f074c84: 24180019 */ addiu $t8,$zero,0x19
/* f074c88: afb80014 */ sw $t8,0x14($sp)
/* f074c8c: afae0010 */ sw $t6,0x10($sp)
/* f074c90: 02402825 */ or $a1,$s2,$zero
/* f074c94: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f074c98: 0fc4a960 */ jal sparksCreate
/* f074c9c: 27a70150 */ addiu $a3,$sp,0x150
/* f074ca0: 1000000a */ beqz $zero,.NB0f074ccc
/* f074ca4: 02402025 */ or $a0,$s2,$zero
.NB0f074ca8:
/* f074ca8: 86440028 */ lh $a0,0x28($s2)
/* f074cac: 27ad05f4 */ addiu $t5,$sp,0x5f4
/* f074cb0: 240f0010 */ addiu $t7,$zero,0x10
/* f074cb4: afaf0014 */ sw $t7,0x14($sp)
/* f074cb8: afad0010 */ sw $t5,0x10($sp)
/* f074cbc: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f074cc0: 0fc4a960 */ jal sparksCreate
/* f074cc4: 27a70150 */ addiu $a3,$sp,0x150
/* f074cc8: 02402025 */ or $a0,$s2,$zero
.NB0f074ccc:
/* f074ccc: 27a505e8 */ addiu $a1,$sp,0x5e8
/* f074cd0: 27a605f4 */ addiu $a2,$sp,0x5f4
/* f074cd4: 0fc1b8c1 */ jal objLand
/* f074cd8: 8fa7060c */ lw $a3,0x60c($sp)
.NB0f074cdc:
/* f074cdc: 8fb9034c */ lw $t9,0x34c($sp)
.NB0f074ce0:
/* f074ce0: 8fa90600 */ lw $t1,0x600($sp)
/* f074ce4: 57200038 */ bnezl $t9,.NB0f074dc8
/* f074ce8: 8fab034c */ lw $t3,0x34c($sp)
/* f074cec: 11200012 */ beqz $t1,.NB0f074d38
/* f074cf0: 26440008 */ addiu $a0,$s2,0x8
/* f074cf4: 8fa50070 */ lw $a1,0x70($sp)
/* f074cf8: 27a605dc */ addiu $a2,$sp,0x5dc
/* f074cfc: 0fc19437 */ jal func0f065e74
/* f074d00: 27a7013c */ addiu $a3,$sp,0x13c
/* f074d04: c7aa05dc */ lwc1 $f10,0x5dc($sp)
/* f074d08: 02402025 */ or $a0,$s2,$zero
/* f074d0c: e64a0008 */ swc1 $f10,0x8($s2)
/* f074d10: c7a605e0 */ lwc1 $f6,0x5e0($sp)
/* f074d14: e646000c */ swc1 $f6,0xc($s2)
/* f074d18: c7a805e4 */ lwc1 $f8,0x5e4($sp)
/* f074d1c: 0fc193ab */ jal propDeregisterRooms
/* f074d20: e6480010 */ swc1 $f8,0x10($s2)
/* f074d24: 27a4013c */ addiu $a0,$sp,0x13c
/* f074d28: 0fc19283 */ jal roomsCopy
/* f074d2c: 8fa50070 */ lw $a1,0x70($sp)
/* f074d30: 10000025 */ beqz $zero,.NB0f074dc8
/* f074d34: 8fab034c */ lw $t3,0x34c($sp)
.NB0f074d38:
/* f074d38: 3c038007 */ lui $v1,0x8007
/* f074d3c: 8c63c030 */ lw $v1,-0x3fd0($v1)
/* f074d40: c7a605e8 */ lwc1 $f6,0x5e8($sp)
/* f074d44: 27a605dc */ addiu $a2,$sp,0x5dc
/* f074d48: 1060000c */ beqz $v1,.NB0f074d7c
/* f074d4c: 27a7012c */ addiu $a3,$sp,0x12c
/* f074d50: 90620000 */ lbu $v0,0x0($v1)
/* f074d54: 24010003 */ addiu $at,$zero,0x3
/* f074d58: 10410003 */ beq $v0,$at,.NB0f074d68
/* f074d5c: 24010006 */ addiu $at,$zero,0x6
/* f074d60: 54410007 */ bnel $v0,$at,.NB0f074d80
/* f074d64: c7a805ec */ lwc1 $f8,0x5ec($sp)
.NB0f074d68:
/* f074d68: c6440008 */ lwc1 $f4,0x8($s2)
/* f074d6c: e7a405dc */ swc1 $f4,0x5dc($sp)
/* f074d70: c64a0010 */ lwc1 $f10,0x10($s2)
/* f074d74: 10000006 */ beqz $zero,.NB0f074d90
/* f074d78: e7aa05e4 */ swc1 $f10,0x5e4($sp)
.NB0f074d7c:
/* f074d7c: c7a805ec */ lwc1 $f8,0x5ec($sp)
.NB0f074d80:
/* f074d80: c7a405f0 */ lwc1 $f4,0x5f0($sp)
/* f074d84: e7a605dc */ swc1 $f6,0x5dc($sp)
/* f074d88: e7a805e0 */ swc1 $f8,0x5e0($sp)
/* f074d8c: e7a405e4 */ swc1 $f4,0x5e4($sp)
.NB0f074d90:
/* f074d90: 0fc19437 */ jal func0f065e74
/* f074d94: 8fa50070 */ lw $a1,0x70($sp)
/* f074d98: c7aa05dc */ lwc1 $f10,0x5dc($sp)
/* f074d9c: 02402025 */ or $a0,$s2,$zero
/* f074da0: e64a0008 */ swc1 $f10,0x8($s2)
/* f074da4: c7a605e0 */ lwc1 $f6,0x5e0($sp)
/* f074da8: e646000c */ swc1 $f6,0xc($s2)
/* f074dac: c7a805e4 */ lwc1 $f8,0x5e4($sp)
/* f074db0: 0fc193ab */ jal propDeregisterRooms
/* f074db4: e6480010 */ swc1 $f8,0x10($s2)
/* f074db8: 27a4012c */ addiu $a0,$sp,0x12c
/* f074dbc: 0fc19283 */ jal roomsCopy
/* f074dc0: 8fa50070 */ lw $a1,0x70($sp)
/* f074dc4: 8fab034c */ lw $t3,0x34c($sp)
.NB0f074dc8:
/* f074dc8: 55600353 */ bnezl $t3,.NB0f075b18
/* f074dcc: 8fbf005c */ lw $ra,0x5c($sp)
/* f074dd0: 0fc19f5d */ jal objFindBboxRodata
/* f074dd4: 02202025 */ or $a0,$s1,$zero
/* f074dd8: 00402025 */ or $a0,$v0,$zero
/* f074ddc: 0fc196f7 */ jal func0f06695c
/* f074de0: 8fa50078 */ lw $a1,0x78($sp)
/* f074de4: e7a0037c */ swc1 $f0,0x37c($sp)
/* f074de8: c6440008 */ lwc1 $f4,0x8($s2)
/* f074dec: 26270058 */ addiu $a3,$s1,0x58
/* f074df0: 27ac012a */ addiu $t4,$sp,0x12a
/* f074df4: e7a405ac */ swc1 $f4,0x5ac($sp)
/* f074df8: c64a000c */ lwc1 $f10,0xc($s2)
/* f074dfc: 27aa0380 */ addiu $t2,$sp,0x380
/* f074e00: 27a405ac */ addiu $a0,$sp,0x5ac
/* f074e04: 46005180 */ add.s $f6,$f10,$f0
/* f074e08: 8fa50070 */ lw $a1,0x70($sp)
/* f074e0c: 27a60390 */ addiu $a2,$sp,0x390
/* f074e10: e7a605b0 */ swc1 $f6,0x5b0($sp)
/* f074e14: c6480010 */ lwc1 $f8,0x10($s2)
/* f074e18: afa7007c */ sw $a3,0x7c($sp)
/* f074e1c: afaa0014 */ sw $t2,0x14($sp)
/* f074e20: afac0010 */ sw $t4,0x10($sp)
/* f074e24: 0c00ae7b */ jal cd0002a5e4
/* f074e28: e7a805b4 */ swc1 $f8,0x5b4($sp)
/* f074e2c: 18400029 */ blez $v0,.NB0f074ed4
/* f074e30: c7aa037c */ lwc1 $f10,0x37c($sp)
/* f074e34: c644000c */ lwc1 $f4,0xc($s2)
/* f074e38: c7a80390 */ lwc1 $f8,0x390($sp)
/* f074e3c: 27a405c8 */ addiu $a0,$sp,0x5c8
/* f074e40: 460a2180 */ add.s $f6,$f4,$f10
/* f074e44: 27a505b8 */ addiu $a1,$sp,0x5b8
/* f074e48: 27a605ac */ addiu $a2,$sp,0x5ac
/* f074e4c: 24070020 */ addiu $a3,$zero,0x20
/* f074e50: 4608303c */ c.lt.s $f6,$f8
/* f074e54: 240e0003 */ addiu $t6,$zero,0x3
/* f074e58: 4502001f */ bc1fl .NB0f074ed8
/* f074e5c: 27ab0380 */ addiu $t3,$sp,0x380
/* f074e60: 0c00bbe8 */ jal cd0002db98
/* f074e64: afae0010 */ sw $t6,0x10($sp)
/* f074e68: 1440001a */ bnez $v0,.NB0f074ed4
/* f074e6c: 24180001 */ addiu $t8,$zero,0x1
/* f074e70: c7a40380 */ lwc1 $f4,0x380($sp)
/* f074e74: c7aa0384 */ lwc1 $f10,0x384($sp)
/* f074e78: c7a60388 */ lwc1 $f6,0x388($sp)
/* f074e7c: afb80354 */ sw $t8,0x354($sp)
/* f074e80: 27a405f4 */ addiu $a0,$sp,0x5f4
/* f074e84: 27a505f8 */ addiu $a1,$sp,0x5f8
/* f074e88: 27a605fc */ addiu $a2,$sp,0x5fc
/* f074e8c: e7a405f4 */ swc1 $f4,0x5f4($sp)
/* f074e90: e7aa05f8 */ swc1 $f10,0x5f8($sp)
/* f074e94: 0c0012a8 */ jal guNormalize
/* f074e98: e7a605fc */ swc1 $f6,0x5fc($sp)
/* f074e9c: c6480008 */ lwc1 $f8,0x8($s2)
/* f074ea0: c7a40390 */ lwc1 $f4,0x390($sp)
/* f074ea4: 97ad012a */ lhu $t5,0x12a($sp)
/* f074ea8: e7a805e8 */ swc1 $f8,0x5e8($sp)
/* f074eac: e7a405ec */ swc1 $f4,0x5ec($sp)
/* f074eb0: c64a0010 */ lwc1 $f10,0x10($s2)
/* f074eb4: 31af4000 */ andi $t7,$t5,0x4000
/* f074eb8: afa00600 */ sw $zero,0x600($sp)
/* f074ebc: 11e0000d */ beqz $t7,.NB0f074ef4
/* f074ec0: e7aa05f0 */ swc1 $f10,0x5f0($sp)
/* f074ec4: 8e390040 */ lw $t9,0x40($s1)
/* f074ec8: 37290004 */ ori $t1,$t9,0x4
/* f074ecc: 10000009 */ beqz $zero,.NB0f074ef4
/* f074ed0: ae290040 */ sw $t1,0x40($s1)
.NB0f074ed4:
/* f074ed4: 27ab0380 */ addiu $t3,$sp,0x380
.NB0f074ed8:
/* f074ed8: afab0010 */ sw $t3,0x10($sp)
/* f074edc: 26440008 */ addiu $a0,$s2,0x8
/* f074ee0: 8fa50070 */ lw $a1,0x70($sp)
/* f074ee4: 27a60390 */ addiu $a2,$sp,0x390
/* f074ee8: 8fa7007c */ lw $a3,0x7c($sp)
/* f074eec: 0c00ae5b */ jal cd0002a564
/* f074ef0: afa00014 */ sw $zero,0x14($sp)
.NB0f074ef4:
/* f074ef4: 8fac0600 */ lw $t4,0x600($sp)
/* f074ef8: 558000ac */ bnezl $t4,.NB0f0751ac
/* f074efc: 922a0003 */ lbu $t2,0x3($s1)
/* f074f00: c60c0008 */ lwc1 $f12,0x8($s0)
/* f074f04: c7a805cc */ lwc1 $f8,0x5cc($sp)
/* f074f08: 4614603e */ c.le.s $f12,$f20
/* f074f0c: 00000000 */ sll $zero,$zero,0x0
/* f074f10: 45020007 */ bc1fl .NB0f074f30
/* f074f14: 8e0a0000 */ lw $t2,0x0($s0)
/* f074f18: c646000c */ lwc1 $f6,0xc($s2)
/* f074f1c: 4606403e */ c.le.s $f8,$f6
/* f074f20: 00000000 */ sll $zero,$zero,0x0
/* f074f24: 45030008 */ bc1tl .NB0f074f48
/* f074f28: 240d0001 */ addiu $t5,$zero,0x1
/* f074f2c: 8e0a0000 */ lw $t2,0x0($s0)
.NB0f074f30:
/* f074f30: 8fb80354 */ lw $t8,0x354($sp)
/* f074f34: 314e0004 */ andi $t6,$t2,0x4
/* f074f38: 55c00005 */ bnezl $t6,.NB0f074f50
/* f074f3c: c612008c */ lwc1 $f18,0x8c($s0)
/* f074f40: 13000002 */ beqz $t8,.NB0f074f4c
/* f074f44: 240d0001 */ addiu $t5,$zero,0x1
.NB0f074f48:
/* f074f48: afad0350 */ sw $t5,0x350($sp)
.NB0f074f4c:
/* f074f4c: c612008c */ lwc1 $f18,0x8c($s0)
.NB0f074f50:
/* f074f50: c7a405f4 */ lwc1 $f4,0x5f4($sp)
/* f074f54: 4612a03c */ c.lt.s $f20,$f18
/* f074f58: 00000000 */ sll $zero,$zero,0x0
/* f074f5c: 45020034 */ bc1fl .NB0f075030
/* f074f60: 8fac0350 */ lw $t4,0x350($sp)
/* f074f64: c60e0004 */ lwc1 $f14,0x4($s0)
/* f074f68: c7a605f8 */ lwc1 $f6,0x5f8($sp)
/* f074f6c: c602000c */ lwc1 $f2,0xc($s0)
/* f074f70: 46047282 */ mul.s $f10,$f14,$f4
/* f074f74: 3c013f80 */ lui $at,0x3f80
/* f074f78: 4614603e */ c.le.s $f12,$f20
/* f074f7c: 46066202 */ mul.s $f8,$f12,$f6
/* f074f80: 46085180 */ add.s $f6,$f10,$f8
/* f074f84: c7aa05fc */ lwc1 $f10,0x5fc($sp)
/* f074f88: 46025202 */ mul.s $f8,$f10,$f2
/* f074f8c: 44815000 */ mtc1 $at,$f10
/* f074f90: 46064000 */ add.s $f0,$f8,$f6
/* f074f94: 460a9200 */ add.s $f8,$f18,$f10
/* f074f98: 46004187 */ neg.s $f6,$f8
/* f074f9c: 46060002 */ mul.s $f0,$f0,$f6
/* f074fa0: 00000000 */ sll $zero,$zero,0x0
/* f074fa4: 46040282 */ mul.s $f10,$f0,$f4
/* f074fa8: 460a7200 */ add.s $f8,$f14,$f10
/* f074fac: e6080004 */ swc1 $f8,0x4($s0)
/* f074fb0: c7a605f8 */ lwc1 $f6,0x5f8($sp)
/* f074fb4: 46060102 */ mul.s $f4,$f0,$f6
/* f074fb8: 46046280 */ add.s $f10,$f12,$f4
/* f074fbc: e60a0008 */ swc1 $f10,0x8($s0)
/* f074fc0: c7a805fc */ lwc1 $f8,0x5fc($sp)
/* f074fc4: 46080182 */ mul.s $f6,$f0,$f8
/* f074fc8: 46061100 */ add.s $f4,$f2,$f6
/* f074fcc: 45000008 */ bc1f .NB0f074ff0
/* f074fd0: e604000c */ swc1 $f4,0xc($s0)
/* f074fd4: c60a0008 */ lwc1 $f10,0x8($s0)
/* f074fd8: 240f0001 */ addiu $t7,$zero,0x1
/* f074fdc: 460aa03e */ c.le.s $f20,$f10
/* f074fe0: 00000000 */ sll $zero,$zero,0x0
/* f074fe4: 45020003 */ bc1fl .NB0f074ff4
/* f074fe8: 92390003 */ lbu $t9,0x3($s1)
/* f074fec: afaf0350 */ sw $t7,0x350($sp)
.NB0f074ff0:
/* f074ff0: 92390003 */ lbu $t9,0x3($s1)
.NB0f074ff4:
/* f074ff4: 24010008 */ addiu $at,$zero,0x8
/* f074ff8: 5721000d */ bnel $t9,$at,.NB0f075030
/* f074ffc: 8fac0350 */ lw $t4,0x350($sp)
/* f075000: 9229005c */ lbu $t1,0x5c($s1)
/* f075004: 2401001e */ addiu $at,$zero,0x1e
/* f075008: 55210009 */ bnel $t1,$at,.NB0f075030
/* f07500c: 8fac0350 */ lw $t4,0x350($sp)
/* f075010: 922b005f */ lbu $t3,0x5f($s1)
/* f075014: 24010001 */ addiu $at,$zero,0x1
/* f075018: 02402025 */ or $a0,$s2,$zero
/* f07501c: 55610004 */ bnel $t3,$at,.NB0f075030
/* f075020: 8fac0350 */ lw $t4,0x350($sp)
/* f075024: 0fc4a4a9 */ jal smokeCreateAtProp
/* f075028: 24050013 */ addiu $a1,$zero,0x13
/* f07502c: 8fac0350 */ lw $t4,0x350($sp)
.NB0f075030:
/* f075030: c7a805ec */ lwc1 $f8,0x5ec($sp)
/* f075034: c7a6037c */ lwc1 $f6,0x37c($sp)
/* f075038: 5180000c */ beqzl $t4,.NB0f07506c
/* f07503c: 8e0e0000 */ lw $t6,0x0($s0)
/* f075040: 46064101 */ sub.s $f4,$f8,$f6
/* f075044: e644000c */ swc1 $f4,0xc($s2)
/* f075048: 8faa0354 */ lw $t2,0x354($sp)
/* f07504c: 51400007 */ beqzl $t2,.NB0f07506c
/* f075050: 8e0e0000 */ lw $t6,0x0($s0)
/* f075054: 0fc1a623 */ jal func0f06a620
/* f075058: 02202025 */ or $a0,$s1,$zero
/* f07505c: c64a000c */ lwc1 $f10,0xc($s2)
/* f075060: 46005200 */ add.s $f8,$f10,$f0
/* f075064: e648000c */ swc1 $f8,0xc($s2)
/* f075068: 8e0e0000 */ lw $t6,0x0($s0)
.NB0f07506c:
/* f07506c: 31d80100 */ andi $t8,$t6,0x100
/* f075070: 5700000d */ bnezl $t8,.NB0f0750a8
/* f075074: 8e190090 */ lw $t9,0x90($s0)
/* f075078: 8e020094 */ lw $v0,0x94($s0)
/* f07507c: 3c0d800a */ lui $t5,0x800a
/* f075080: 04400006 */ bltz $v0,.NB0f07509c
/* f075084: 00000000 */ sll $zero,$zero,0x0
/* f075088: 8dade6c8 */ lw $t5,-0x1938($t5)
/* f07508c: 25afffc4 */ addiu $t7,$t5,-60
/* f075090: 004f082a */ slt $at,$v0,$t7
/* f075094: 50200004 */ beqzl $at,.NB0f0750a8
/* f075098: 8e190090 */ lw $t9,0x90($s0)
.NB0f07509c:
/* f07509c: 0fc250bc */ jal func0f096360
/* f0750a0: 8fa40068 */ lw $a0,0x68($sp)
/* f0750a4: 8e190090 */ lw $t9,0x90($s0)
.NB0f0750a8:
/* f0750a8: 3c0b800a */ lui $t3,0x800a
/* f0750ac: 27290001 */ addiu $t1,$t9,0x1
/* f0750b0: ae090090 */ sw $t1,0x90($s0)
/* f0750b4: 8d6be6c8 */ lw $t3,-0x1938($t3)
/* f0750b8: ae0b0094 */ sw $t3,0x94($s0)
/* f0750bc: 8e220040 */ lw $v0,0x40($s1)
/* f0750c0: 000263c0 */ sll $t4,$v0,0xf
/* f0750c4: 05800002 */ bltz $t4,.NB0f0750d0
/* f0750c8: 344a0100 */ ori $t2,$v0,0x100
/* f0750cc: ae2a0040 */ sw $t2,0x40($s1)
.NB0f0750d0:
/* f0750d0: 8fae0350 */ lw $t6,0x350($sp)
/* f0750d4: 51c00035 */ beqzl $t6,.NB0f0751ac
/* f0750d8: 922a0003 */ lbu $t2,0x3($s1)
/* f0750dc: 8e020000 */ lw $v0,0x0($s0)
/* f0750e0: 30580004 */ andi $t8,$v0,0x4
/* f0750e4: 5700000d */ bnezl $t8,.NB0f07511c
/* f0750e8: c606008c */ lwc1 $f6,0x8c($s0)
/* f0750ec: 8e0d0090 */ lw $t5,0x90($s0)
/* f0750f0: 8faf0354 */ lw $t7,0x354($sp)
/* f0750f4: 29a10006 */ slti $at,$t5,0x6
/* f0750f8: 54200008 */ bnezl $at,.NB0f07511c
/* f0750fc: c606008c */ lwc1 $f6,0x8c($s0)
/* f075100: 11e00029 */ beqz $t7,.NB0f0751a8
/* f075104: 02202025 */ or $a0,$s1,$zero
/* f075108: 0fc1b38f */ jal func0f06dbd8
/* f07510c: 27a50358 */ addiu $a1,$sp,0x358
/* f075110: 10000026 */ beqz $zero,.NB0f0751ac
/* f075114: 922a0003 */ lbu $t2,0x3($s1)
/* f075118: c606008c */ lwc1 $f6,0x8c($s0)
.NB0f07511c:
/* f07511c: 8fac0354 */ lw $t4,0x354($sp)
/* f075120: 4606a03c */ c.lt.s $f20,$f6
/* f075124: 00000000 */ sll $zero,$zero,0x0
/* f075128: 4500001b */ bc1f .NB0f075198
/* f07512c: 00000000 */ sll $zero,$zero,0x0
/* f075130: c60c0008 */ lwc1 $f12,0x8($s0)
/* f075134: 3c017f1a */ lui $at,0x7f1a
/* f075138: 460ca03e */ c.le.s $f20,$f12
/* f07513c: 00000000 */ sll $zero,$zero,0x0
/* f075140: 4502001a */ bc1fl .NB0f0751ac
/* f075144: 922a0003 */ lbu $t2,0x3($s1)
/* f075148: c4204734 */ lwc1 $f0,0x4734($at)
/* f07514c: 30590002 */ andi $t9,$v0,0x2
/* f075150: 4600603c */ c.lt.s $f12,$f0
/* f075154: 00000000 */ sll $zero,$zero,0x0
/* f075158: 45020014 */ bc1fl .NB0f0751ac
/* f07515c: 922a0003 */ lbu $t2,0x3($s1)
/* f075160: 13200007 */ beqz $t9,.NB0f075180
/* f075164: 8fab0354 */ lw $t3,0x354($sp)
/* f075168: 8e090090 */ lw $t1,0x90($s0)
/* f07516c: 24010001 */ addiu $at,$zero,0x1
/* f075170: 15210003 */ bne $t1,$at,.NB0f075180
/* f075174: 00000000 */ sll $zero,$zero,0x0
/* f075178: 1000000b */ beqz $zero,.NB0f0751a8
/* f07517c: e6000008 */ swc1 $f0,0x8($s0)
.NB0f075180:
/* f075180: 11600009 */ beqz $t3,.NB0f0751a8
/* f075184: 02202025 */ or $a0,$s1,$zero
/* f075188: 0fc1b38f */ jal func0f06dbd8
/* f07518c: 27a50358 */ addiu $a1,$sp,0x358
/* f075190: 10000006 */ beqz $zero,.NB0f0751ac
/* f075194: 922a0003 */ lbu $t2,0x3($s1)
.NB0f075198:
/* f075198: 11800003 */ beqz $t4,.NB0f0751a8
/* f07519c: 02202025 */ or $a0,$s1,$zero
/* f0751a0: 0fc1b38f */ jal func0f06dbd8
/* f0751a4: 27a50358 */ addiu $a1,$sp,0x358
.NB0f0751a8:
/* f0751a8: 922a0003 */ lbu $t2,0x3($s1)
.NB0f0751ac:
/* f0751ac: 24010008 */ addiu $at,$zero,0x8
/* f0751b0: 55410134 */ bnel $t2,$at,.NB0f075684
/* f0751b4: 02202025 */ or $a0,$s1,$zero
/* f0751b8: 9227005c */ lbu $a3,0x5c($s1)
/* f0751bc: 2401001a */ addiu $at,$zero,0x1a
/* f0751c0: 54e1000a */ bnel $a3,$at,.NB0f0751ec
/* f0751c4: 24010052 */ addiu $at,$zero,0x52
/* f0751c8: 922e005f */ lbu $t6,0x5f($s1)
/* f0751cc: 24010001 */ addiu $at,$zero,0x1
/* f0751d0: 55c10006 */ bnel $t6,$at,.NB0f0751ec
/* f0751d4: 24010052 */ addiu $at,$zero,0x52
/* f0751d8: 0fc1b6b8 */ jal knifePlayWooshSound
/* f0751dc: 02202025 */ or $a0,$s1,$zero
/* f0751e0: 100000b0 */ beqz $zero,.NB0f0754a4
/* f0751e4: 8fad0600 */ lw $t5,0x600($sp)
/* f0751e8: 24010052 */ addiu $at,$zero,0x52
.NB0f0751ec:
/* f0751ec: 14e10044 */ bne $a3,$at,.NB0f075300
/* f0751f0: 8fb80600 */ lw $t8,0x600($sp)
/* f0751f4: 57000004 */ bnezl $t8,.NB0f075208
/* f0751f8: c60e0004 */ lwc1 $f14,0x4($s0)
/* f0751fc: 100000a8 */ beqz $zero,.NB0f0754a0
/* f075200: a6200062 */ sh $zero,0x62($s1)
/* f075204: c60e0004 */ lwc1 $f14,0x4($s0)
.NB0f075208:
/* f075208: c60c0008 */ lwc1 $f12,0x8($s0)
/* f07520c: c602000c */ lwc1 $f2,0xc($s0)
/* f075210: 460e7102 */ mul.s $f4,$f14,$f14
/* f075214: 3c017f1a */ lui $at,0x7f1a
/* f075218: 460c6282 */ mul.s $f10,$f12,$f12
/* f07521c: 460a2200 */ add.s $f8,$f4,$f10
/* f075220: 46021182 */ mul.s $f6,$f2,$f2
/* f075224: c4244738 */ lwc1 $f4,0x4738($at)
/* f075228: 46083000 */ add.s $f0,$f6,$f8
/* f07522c: 4600203c */ c.lt.s $f4,$f0
/* f075230: 00000000 */ sll $zero,$zero,0x0
/* f075234: 45020005 */ bc1fl .NB0f07524c
/* f075238: 860200b2 */ lh $v0,0xb2($s0)
/* f07523c: e6140010 */ swc1 $f20,0x10($s0)
/* f075240: e6140014 */ swc1 $f20,0x14($s0)
/* f075244: e6140018 */ swc1 $f20,0x18($s0)
/* f075248: 860200b2 */ lh $v0,0xb2($s0)
.NB0f07524c:
/* f07524c: 0442000c */ bltzl $v0,.NB0f075280
/* f075250: c60a0004 */ lwc1 $f10,0x4($s0)
/* f075254: 8e0d00a0 */ lw $t5,0xa0($s0)
/* f075258: 004d082a */ slt $at,$v0,$t5
/* f07525c: 50200008 */ beqzl $at,.NB0f075280
/* f075260: c60a0004 */ lwc1 $f10,0x4($s0)
/* f075264: 8e0f0000 */ lw $t7,0x0($s0)
/* f075268: 2401ffcf */ addiu $at,$zero,-49
/* f07526c: e614001c */ swc1 $f20,0x1c($s0)
/* f075270: 01e1c824 */ and $t9,$t7,$at
/* f075274: 1000008a */ beqz $zero,.NB0f0754a0
/* f075278: ae190000 */ sw $t9,0x0($s0)
/* f07527c: c60a0004 */ lwc1 $f10,0x4($s0)
.NB0f075280:
/* f075280: 27a40108 */ addiu $a0,$sp,0x108
/* f075284: 27a5010c */ addiu $a1,$sp,0x10c
/* f075288: e7aa0108 */ swc1 $f10,0x108($sp)
/* f07528c: c6060008 */ lwc1 $f6,0x8($s0)
/* f075290: 27a60110 */ addiu $a2,$sp,0x110
/* f075294: e7a6010c */ swc1 $f6,0x10c($sp)
/* f075298: c608000c */ lwc1 $f8,0xc($s0)
/* f07529c: 0c0012a8 */ jal guNormalize
/* f0752a0: e7a80110 */ swc1 $f8,0x110($sp)
/* f0752a4: 3c0141a0 */ lui $at,0x41a0
/* f0752a8: 44810000 */ mtc1 $at,$f0
/* f0752ac: c7aa0108 */ lwc1 $f10,0x108($sp)
/* f0752b0: c6440008 */ lwc1 $f4,0x8($s2)
/* f0752b4: 27a40108 */ addiu $a0,$sp,0x108
/* f0752b8: 46005182 */ mul.s $f6,$f10,$f0
/* f0752bc: 8fa50070 */ lw $a1,0x70($sp)
/* f0752c0: 24060008 */ addiu $a2,$zero,0x8
/* f0752c4: 46062201 */ sub.s $f8,$f4,$f6
/* f0752c8: c7a4010c */ lwc1 $f4,0x10c($sp)
/* f0752cc: 46002182 */ mul.s $f6,$f4,$f0
/* f0752d0: e7a80108 */ swc1 $f8,0x108($sp)
/* f0752d4: c64a000c */ lwc1 $f10,0xc($s2)
/* f0752d8: 46065201 */ sub.s $f8,$f10,$f6
/* f0752dc: c7aa0110 */ lwc1 $f10,0x110($sp)
/* f0752e0: 46005182 */ mul.s $f6,$f10,$f0
/* f0752e4: e7a8010c */ swc1 $f8,0x10c($sp)
/* f0752e8: c6440010 */ lwc1 $f4,0x10($s2)
/* f0752ec: 46062201 */ sub.s $f8,$f4,$f6
/* f0752f0: 0fc4a4ec */ jal smokeCreateSimple
/* f0752f4: e7a80110 */ swc1 $f8,0x110($sp)
/* f0752f8: 1000006a */ beqz $zero,.NB0f0754a4
/* f0752fc: 8fad0600 */ lw $t5,0x600($sp)
.NB0f075300:
/* f075300: 24010053 */ addiu $at,$zero,0x53
/* f075304: 14e1000a */ bne $a3,$at,.NB0f075330
/* f075308: 8fa90600 */ lw $t1,0x600($sp)
/* f07530c: 15200003 */ bnez $t1,.NB0f07531c
/* f075310: 26440008 */ addiu $a0,$s2,0x8
/* f075314: 10000062 */ beqz $zero,.NB0f0754a0
/* f075318: a6200062 */ sh $zero,0x62($s1)
.NB0f07531c:
/* f07531c: 8fa50070 */ lw $a1,0x70($sp)
/* f075320: 0fc4a4ec */ jal smokeCreateSimple
/* f075324: 2406000b */ addiu $a2,$zero,0xb
/* f075328: 1000005e */ beqz $zero,.NB0f0754a4
/* f07532c: 8fad0600 */ lw $t5,0x600($sp)
.NB0f075330:
/* f075330: 24010054 */ addiu $at,$zero,0x54
/* f075334: 10e10006 */ beq $a3,$at,.NB0f075350
/* f075338: 2402001f */ addiu $v0,$zero,0x1f
/* f07533c: 54470059 */ bnel $v0,$a3,.NB0f0754a4
/* f075340: 8fad0600 */ lw $t5,0x600($sp)
/* f075344: 922b005f */ lbu $t3,0x5f($s1)
/* f075348: 55600056 */ bnezl $t3,.NB0f0754a4
/* f07534c: 8fad0600 */ lw $t5,0x600($sp)
.NB0f075350:
/* f075350: 8fac0350 */ lw $t4,0x350($sp)
/* f075354: 2402001f */ addiu $v0,$zero,0x1f
/* f075358: 15800045 */ bnez $t4,.NB0f075470
/* f07535c: 00000000 */ sll $zero,$zero,0x0
/* f075360: 8e0a0000 */ lw $t2,0x0($s0)
/* f075364: 3c017f1a */ lui $at,0x7f1a
/* f075368: 314e0400 */ andi $t6,$t2,0x400
/* f07536c: 15c00040 */ bnez $t6,.NB0f075470
/* f075370: 00000000 */ sll $zero,$zero,0x0
/* f075374: c430473c */ lwc1 $f16,0x473c($at)
/* f075378: c60e0004 */ lwc1 $f14,0x4($s0)
/* f07537c: 3c017f1a */ lui $at,0x7f1a
/* f075380: c7a405c8 */ lwc1 $f4,0x5c8($sp)
/* f075384: 4610703c */ c.lt.s $f14,$f16
/* f075388: 00000000 */ sll $zero,$zero,0x0
/* f07538c: 45020019 */ bc1fl .NB0f0753f4
/* f075390: c64a0008 */ lwc1 $f10,0x8($s2)
/* f075394: c4324740 */ lwc1 $f18,0x4740($at)
/* f075398: 460e903c */ c.lt.s $f18,$f14
/* f07539c: 00000000 */ sll $zero,$zero,0x0
/* f0753a0: 45020014 */ bc1fl .NB0f0753f4
/* f0753a4: c64a0008 */ lwc1 $f10,0x8($s2)
/* f0753a8: c60c0008 */ lwc1 $f12,0x8($s0)
/* f0753ac: 4610603c */ c.lt.s $f12,$f16
/* f0753b0: 00000000 */ sll $zero,$zero,0x0
/* f0753b4: 4502000f */ bc1fl .NB0f0753f4
/* f0753b8: c64a0008 */ lwc1 $f10,0x8($s2)
/* f0753bc: 460c903c */ c.lt.s $f18,$f12
/* f0753c0: 00000000 */ sll $zero,$zero,0x0
/* f0753c4: 4502000b */ bc1fl .NB0f0753f4
/* f0753c8: c64a0008 */ lwc1 $f10,0x8($s2)
/* f0753cc: c602000c */ lwc1 $f2,0xc($s0)
/* f0753d0: 4610103c */ c.lt.s $f2,$f16
/* f0753d4: 00000000 */ sll $zero,$zero,0x0
/* f0753d8: 45020006 */ bc1fl .NB0f0753f4
/* f0753dc: c64a0008 */ lwc1 $f10,0x8($s2)
/* f0753e0: 4602903c */ c.lt.s $f18,$f2
/* f0753e4: 00000000 */ sll $zero,$zero,0x0
/* f0753e8: 45010021 */ bc1t .NB0f075470
/* f0753ec: 00000000 */ sll $zero,$zero,0x0
/* f0753f0: c64a0008 */ lwc1 $f10,0x8($s2)
.NB0f0753f4:
/* f0753f4: 3c017f1a */ lui $at,0x7f1a
/* f0753f8: c4324744 */ lwc1 $f18,0x4744($at)
/* f0753fc: 46045001 */ sub.s $f0,$f10,$f4
/* f075400: 4610003c */ c.lt.s $f0,$f16
/* f075404: 00000000 */ sll $zero,$zero,0x0
/* f075408: 45000020 */ bc1f .NB0f07548c
/* f07540c: 00000000 */ sll $zero,$zero,0x0
/* f075410: 4600903c */ c.lt.s $f18,$f0
/* f075414: c7a805cc */ lwc1 $f8,0x5cc($sp)
/* f075418: 4500001c */ bc1f .NB0f07548c
/* f07541c: 00000000 */ sll $zero,$zero,0x0
/* f075420: c646000c */ lwc1 $f6,0xc($s2)
/* f075424: 46083001 */ sub.s $f0,$f6,$f8
/* f075428: 4610003c */ c.lt.s $f0,$f16
/* f07542c: 00000000 */ sll $zero,$zero,0x0
/* f075430: 45000016 */ bc1f .NB0f07548c
/* f075434: 00000000 */ sll $zero,$zero,0x0
/* f075438: 4600903c */ c.lt.s $f18,$f0
/* f07543c: c7a405d0 */ lwc1 $f4,0x5d0($sp)
/* f075440: 45000012 */ bc1f .NB0f07548c
/* f075444: 00000000 */ sll $zero,$zero,0x0
/* f075448: c64a0010 */ lwc1 $f10,0x10($s2)
/* f07544c: 46045001 */ sub.s $f0,$f10,$f4
/* f075450: 4610003c */ c.lt.s $f0,$f16
/* f075454: 00000000 */ sll $zero,$zero,0x0
/* f075458: 4500000c */ bc1f .NB0f07548c
/* f07545c: 00000000 */ sll $zero,$zero,0x0
/* f075460: 4600903c */ c.lt.s $f18,$f0
/* f075464: 00000000 */ sll $zero,$zero,0x0
/* f075468: 45000008 */ bc1f .NB0f07548c
/* f07546c: 00000000 */ sll $zero,$zero,0x0
.NB0f075470:
/* f075470: 14470004 */ bne $v0,$a3,.NB0f075484
/* f075474: 00000000 */ sll $zero,$zero,0x0
/* f075478: 86380062 */ lh $t8,0x62($s1)
/* f07547c: 07020009 */ bltzl $t8,.NB0f0754a4
/* f075480: 8fad0600 */ lw $t5,0x600($sp)
.NB0f075484:
/* f075484: 10000006 */ beqz $zero,.NB0f0754a0
/* f075488: a6200062 */ sh $zero,0x62($s1)
.NB0f07548c:
/* f07548c: 10470004 */ beq $v0,$a3,.NB0f0754a0
/* f075490: 26440008 */ addiu $a0,$s2,0x8
/* f075494: 8fa50070 */ lw $a1,0x70($sp)
/* f075498: 0fc4a4ec */ jal smokeCreateSimple
/* f07549c: 24060009 */ addiu $a2,$zero,0x9
.NB0f0754a0:
/* f0754a0: 8fad0600 */ lw $t5,0x600($sp)
.NB0f0754a4:
/* f0754a4: 3c03800a */ lui $v1,0x800a
/* f0754a8: 55a00076 */ bnezl $t5,.NB0f075684
/* f0754ac: 02202025 */ or $a0,$s1,$zero
/* f0754b0: 8c63e6cc */ lw $v1,-0x1934($v1)
/* f0754b4: 8e0f00a4 */ lw $t7,0xa4($s0)
/* f0754b8: 2479fffe */ addiu $t9,$v1,-2
/* f0754bc: 01f9082a */ slt $at,$t7,$t9
/* f0754c0: 5020006f */ beqzl $at,.NB0f075680
/* f0754c4: ae0300a4 */ sw $v1,0xa4($s0)
/* f0754c8: 9227005c */ lbu $a3,0x5c($s1)
/* f0754cc: 2401001a */ addiu $at,$zero,0x1a
/* f0754d0: 00002025 */ or $a0,$zero,$zero
/* f0754d4: 10e10003 */ beq $a3,$at,.NB0f0754e4
/* f0754d8: 02402825 */ or $a1,$s2,$zero
/* f0754dc: 2401001a */ addiu $at,$zero,0x1a
/* f0754e0: 14e10015 */ bne $a3,$at,.NB0f075538
.NB0f0754e4:
/* f0754e4: 3c01bf80 */ lui $at,0xbf80
/* f0754e8: 44810000 */ mtc1 $at,$f0
/* f0754ec: 2409ffff */ addiu $t1,$zero,-1
/* f0754f0: 240bffff */ addiu $t3,$zero,-1
/* f0754f4: afab002c */ sw $t3,0x2c($sp)
/* f0754f8: afa90010 */ sw $t1,0x10($sp)
/* f0754fc: 2406808b */ addiu $a2,$zero,-32629
/* f075500: 2407ffff */ addiu $a3,$zero,-1
/* f075504: afa00014 */ sw $zero,0x14($sp)
/* f075508: afa00018 */ sw $zero,0x18($sp)
/* f07550c: afa0001c */ sw $zero,0x1c($sp)
/* f075510: afa00020 */ sw $zero,0x20($sp)
/* f075514: afa00028 */ sw $zero,0x28($sp)
/* f075518: e7a00024 */ swc1 $f0,0x24($sp)
/* f07551c: e7a00030 */ swc1 $f0,0x30($sp)
/* f075520: e7a00034 */ swc1 $f0,0x34($sp)
/* f075524: 0fc24762 */ jal propsnd0f0939f8
/* f075528: e7a00038 */ swc1 $f0,0x38($sp)
/* f07552c: 3c03800a */ lui $v1,0x800a
/* f075530: 10000052 */ beqz $zero,.NB0f07567c
/* f075534: 8c63e6cc */ lw $v1,-0x1934($v1)
.NB0f075538:
/* f075538: 2401001e */ addiu $at,$zero,0x1e
/* f07553c: 14e1003a */ bne $a3,$at,.NB0f075628
/* f075540: 00002025 */ or $a0,$zero,$zero
/* f075544: 922c005f */ lbu $t4,0x5f($s1)
/* f075548: 24010001 */ addiu $at,$zero,0x1
/* f07554c: 3c0e8007 */ lui $t6,0x8007
/* f075550: 15810035 */ bne $t4,$at,.NB0f075628
/* f075554: 25cec2bc */ addiu $t6,$t6,-15684
/* f075558: 8dc10000 */ lw $at,0x0($t6)
/* f07555c: 8dcd0004 */ lw $t5,0x4($t6)
/* f075560: 27aa0100 */ addiu $t2,$sp,0x100
/* f075564: ad410000 */ sw $at,0x0($t2)
/* f075568: 0c004d84 */ jal random
/* f07556c: ad4d0004 */ sw $t5,0x4($t2)
/* f075570: 304f0003 */ andi $t7,$v0,0x3
/* f075574: 000fc840 */ sll $t9,$t7,0x1
/* f075578: 03b93021 */ addu $a2,$sp,$t9
/* f07557c: 84c60100 */ lh $a2,0x100($a2)
/* f075580: 3c01bf80 */ lui $at,0xbf80
/* f075584: 44810000 */ mtc1 $at,$f0
/* f075588: 2409ffff */ addiu $t1,$zero,-1
/* f07558c: 240bffff */ addiu $t3,$zero,-1
/* f075590: afab002c */ sw $t3,0x2c($sp)
/* f075594: afa90010 */ sw $t1,0x10($sp)
/* f075598: afa00028 */ sw $zero,0x28($sp)
/* f07559c: afa00020 */ sw $zero,0x20($sp)
/* f0755a0: afa0001c */ sw $zero,0x1c($sp)
/* f0755a4: afa00018 */ sw $zero,0x18($sp)
/* f0755a8: afa00014 */ sw $zero,0x14($sp)
/* f0755ac: 00002025 */ or $a0,$zero,$zero
/* f0755b0: 02402825 */ or $a1,$s2,$zero
/* f0755b4: 2407ffff */ addiu $a3,$zero,-1
/* f0755b8: e7a00024 */ swc1 $f0,0x24($sp)
/* f0755bc: e7a00030 */ swc1 $f0,0x30($sp)
/* f0755c0: e7a00034 */ swc1 $f0,0x34($sp)
/* f0755c4: 0fc24762 */ jal propsnd0f0939f8
/* f0755c8: e7a00038 */ swc1 $f0,0x38($sp)
/* f0755cc: 3c01bf80 */ lui $at,0xbf80
/* f0755d0: 44810000 */ mtc1 $at,$f0
/* f0755d4: 240cffff */ addiu $t4,$zero,-1
/* f0755d8: 2418ffff */ addiu $t8,$zero,-1
/* f0755dc: afb8002c */ sw $t8,0x2c($sp)
/* f0755e0: afac0010 */ sw $t4,0x10($sp)
/* f0755e4: 00002025 */ or $a0,$zero,$zero
/* f0755e8: 02402825 */ or $a1,$s2,$zero
/* f0755ec: 2406808c */ addiu $a2,$zero,-32628
/* f0755f0: 2407ffff */ addiu $a3,$zero,-1
/* f0755f4: afa00014 */ sw $zero,0x14($sp)
/* f0755f8: afa00018 */ sw $zero,0x18($sp)
/* f0755fc: afa0001c */ sw $zero,0x1c($sp)
/* f075600: afa00020 */ sw $zero,0x20($sp)
/* f075604: afa00028 */ sw $zero,0x28($sp)
/* f075608: e7a00024 */ swc1 $f0,0x24($sp)
/* f07560c: e7a00030 */ swc1 $f0,0x30($sp)
/* f075610: e7a00034 */ swc1 $f0,0x34($sp)
/* f075614: 0fc24762 */ jal propsnd0f0939f8
/* f075618: e7a00038 */ swc1 $f0,0x38($sp)
/* f07561c: 3c03800a */ lui $v1,0x800a
/* f075620: 10000016 */ beqz $zero,.NB0f07567c
/* f075624: 8c63e6cc */ lw $v1,-0x1934($v1)
.NB0f075628:
/* f075628: 3c01bf80 */ lui $at,0xbf80
/* f07562c: 44810000 */ mtc1 $at,$f0
/* f075630: 240affff */ addiu $t2,$zero,-1
/* f075634: 240effff */ addiu $t6,$zero,-1
/* f075638: afae002c */ sw $t6,0x2c($sp)
/* f07563c: afaa0010 */ sw $t2,0x10($sp)
/* f075640: 02402825 */ or $a1,$s2,$zero
/* f075644: 2406808c */ addiu $a2,$zero,-32628
/* f075648: 2407ffff */ addiu $a3,$zero,-1
/* f07564c: afa00014 */ sw $zero,0x14($sp)
/* f075650: afa00018 */ sw $zero,0x18($sp)
/* f075654: afa0001c */ sw $zero,0x1c($sp)
/* f075658: afa00020 */ sw $zero,0x20($sp)
/* f07565c: afa00028 */ sw $zero,0x28($sp)
/* f075660: e7a00024 */ swc1 $f0,0x24($sp)
/* f075664: e7a00030 */ swc1 $f0,0x30($sp)
/* f075668: e7a00034 */ swc1 $f0,0x34($sp)
/* f07566c: 0fc24762 */ jal propsnd0f0939f8
/* f075670: e7a00038 */ swc1 $f0,0x38($sp)
/* f075674: 3c03800a */ lui $v1,0x800a
/* f075678: 8c63e6cc */ lw $v1,-0x1934($v1)
.NB0f07567c:
/* f07567c: ae0300a4 */ sw $v1,0xa4($s0)
.NB0f075680:
/* f075680: 02202025 */ or $a0,$s1,$zero
.NB0f075684:
/* f075684: 24050001 */ addiu $a1,$zero,0x1
/* f075688: 0fc1a3b7 */ jal func0f069c70
/* f07568c: 24060001 */ addiu $a2,$zero,0x1
/* f075690: 10000121 */ beqz $zero,.NB0f075b18
/* f075694: 8fbf005c */ lw $ra,0x5c($sp)
/* f075698: 304d0400 */ andi $t5,$v0,0x400
.NB0f07569c:
/* f07569c: 11a0011d */ beqz $t5,.NB0f075b14
/* f0756a0: 3c013f80 */ lui $at,0x3f80
/* f0756a4: 240f0001 */ addiu $t7,$zero,0x1
/* f0756a8: afaf00fc */ sw $t7,0xfc($sp)
/* f0756ac: 44816000 */ mtc1 $at,$f12
/* f0756b0: c6000060 */ lwc1 $f0,0x60($s0)
/* f0756b4: 26040068 */ addiu $a0,$s0,0x68
/* f0756b8: 26050078 */ addiu $a1,$s0,0x78
/* f0756bc: 460c003c */ c.lt.s $f0,$f12
/* f0756c0: 00000000 */ sll $zero,$zero,0x0
/* f0756c4: 4502002a */ bc1fl .NB0f075770
/* f0756c8: 4480a000 */ mtc1 $zero,$f20
/* f0756cc: c6020064 */ lwc1 $f2,0x64($s0)
/* f0756d0: c466004c */ lwc1 $f6,0x4c($v1)
/* f0756d4: 3c017f1a */ lui $at,0x7f1a
/* f0756d8: 46061202 */ mul.s $f8,$f2,$f6
/* f0756dc: 46080280 */ add.s $f10,$f0,$f8
/* f0756e0: e60a0060 */ swc1 $f10,0x60($s0)
/* f0756e4: 8c790038 */ lw $t9,0x38($v1)
/* f0756e8: 5b200005 */ blezl $t9,.NB0f075700
/* f0756ec: c6000060 */ lwc1 $f0,0x60($s0)
/* f0756f0: c4244748 */ lwc1 $f4,0x4748($at)
/* f0756f4: 46041182 */ mul.s $f6,$f2,$f4
/* f0756f8: e6060064 */ swc1 $f6,0x64($s0)
/* f0756fc: c6000060 */ lwc1 $f0,0x60($s0)
.NB0f075700:
/* f075700: 4600603c */ c.lt.s $f12,$f0
/* f075704: 00000000 */ sll $zero,$zero,0x0
/* f075708: 45020004 */ bc1fl .NB0f07571c
/* f07570c: 44060000 */ mfc1 $a2,$f0
/* f075710: e60c0060 */ swc1 $f12,0x60($s0)
/* f075714: c6000060 */ lwc1 $f0,0x60($s0)
/* f075718: 44060000 */ mfc1 $a2,$f0
.NB0f07571c:
/* f07571c: 0fc25492 */ jal quaternionSlerp
/* f075720: 27a700ec */ addiu $a3,$sp,0xec
/* f075724: 27a400ec */ addiu $a0,$sp,0xec
/* f075728: 0fc25399 */ jal quaternionToMtx
/* f07572c: 27a500ac */ addiu $a1,$sp,0xac
/* f075730: c60c00b8 */ lwc1 $f12,0xb8($s0)
/* f075734: 0c005b45 */ jal mtx00015e24
/* f075738: 27a500ac */ addiu $a1,$sp,0xac
/* f07573c: c60c00bc */ lwc1 $f12,0xbc($s0)
/* f075740: 0c005b5c */ jal mtx00015e80
/* f075744: 27a500ac */ addiu $a1,$sp,0xac
/* f075748: c60c00c0 */ lwc1 $f12,0xc0($s0)
/* f07574c: 0c005b73 */ jal mtx00015edc
/* f075750: 27a500ac */ addiu $a1,$sp,0xac
/* f075754: 27a400ac */ addiu $a0,$sp,0xac
/* f075758: 0c005b24 */ jal mtx4ToMtx3
/* f07575c: 2625001c */ addiu $a1,$s1,0x1c
/* f075760: 3c013f80 */ lui $at,0x3f80
/* f075764: 44816000 */ mtc1 $at,$f12
/* f075768: afa000fc */ sw $zero,0xfc($sp)
/* f07576c: 4480a000 */ mtc1 $zero,$f20
.NB0f075770:
/* f075770: c6080004 */ lwc1 $f8,0x4($s0)
/* f075774: 02202025 */ or $a0,$s1,$zero
/* f075778: 2629001c */ addiu $t1,$s1,0x1c
/* f07577c: 4608a032 */ c.eq.s $f20,$f8
/* f075780: 00000000 */ sll $zero,$zero,0x0
/* f075784: 4502000c */ bc1fl .NB0f0757b8
/* f075788: afa90078 */ sw $t1,0x78($sp)
/* f07578c: c60a000c */ lwc1 $f10,0xc($s0)
/* f075790: 460aa032 */ c.eq.s $f20,$f10
/* f075794: 00000000 */ sll $zero,$zero,0x0
/* f075798: 45020007 */ bc1fl .NB0f0757b8
/* f07579c: afa90078 */ sw $t1,0x78($sp)
/* f0757a0: c6040060 */ lwc1 $f4,0x60($s0)
/* f0757a4: 460c203c */ c.lt.s $f4,$f12
/* f0757a8: 00000000 */ sll $zero,$zero,0x0
/* f0757ac: 450200c7 */ bc1fl .NB0f075acc
/* f0757b0: 8faf00fc */ lw $t7,0xfc($sp)
/* f0757b4: afa90078 */ sw $t1,0x78($sp)
.NB0f0757b8:
/* f0757b8: 0fc19f5d */ jal objFindBboxRodata
/* f0757bc: afa000fc */ sw $zero,0xfc($sp)
/* f0757c0: 00402025 */ or $a0,$v0,$zero
/* f0757c4: 0fc196f7 */ jal func0f06695c
/* f0757c8: 8fa50078 */ lw $a1,0x78($sp)
/* f0757cc: 3c03800a */ lui $v1,0x800a
/* f0757d0: 8c63e6f8 */ lw $v1,-0x1908($v1)
/* f0757d4: e7a00098 */ swc1 $f0,0x98($sp)
/* f0757d8: 00001025 */ or $v0,$zero,$zero
/* f0757dc: 1860004d */ blez $v1,.NB0f075914
/* f0757e0: 3c017f1a */ lui $at,0x7f1a
/* f0757e4: c430474c */ lwc1 $f16,0x474c($at)
/* f0757e8: c7a605dc */ lwc1 $f6,0x5dc($sp)
.NB0f0757ec:
/* f0757ec: c6080004 */ lwc1 $f8,0x4($s0)
/* f0757f0: c7a405e4 */ lwc1 $f4,0x5e4($sp)
/* f0757f4: 3c013f80 */ lui $at,0x3f80
/* f0757f8: 46083280 */ add.s $f10,$f6,$f8
/* f0757fc: e7aa05dc */ swc1 $f10,0x5dc($sp)
/* f075800: c606000c */ lwc1 $f6,0xc($s0)
/* f075804: 46062200 */ add.s $f8,$f4,$f6
/* f075808: 44812000 */ mtc1 $at,$f4
/* f07580c: e7a805e4 */ swc1 $f8,0x5e4($sp)
/* f075810: c60a0060 */ lwc1 $f10,0x60($s0)
/* f075814: 460a203e */ c.le.s $f4,$f10
/* f075818: 00000000 */ sll $zero,$zero,0x0
/* f07581c: 4502003a */ bc1fl .NB0f075908
/* f075820: 24420001 */ addiu $v0,$v0,0x1
/* f075824: c6060098 */ lwc1 $f6,0x98($s0)
/* f075828: 4606a03c */ c.lt.s $f20,$f6
/* f07582c: 00000000 */ sll $zero,$zero,0x0
/* f075830: 4502002c */ bc1fl .NB0f0758e4
/* f075834: c6040004 */ lwc1 $f4,0x4($s0)
/* f075838: c602000c */ lwc1 $f2,0xc($s0)
/* f07583c: c60e0004 */ lwc1 $f14,0x4($s0)
/* f075840: afa2009c */ sw $v0,0x9c($sp)
/* f075844: 46021202 */ mul.s $f8,$f2,$f2
/* f075848: 00000000 */ sll $zero,$zero,0x0
/* f07584c: 460e7282 */ mul.s $f10,$f14,$f14
/* f075850: 0c012e84 */ jal sqrtf
/* f075854: 460a4300 */ add.s $f12,$f8,$f10
/* f075858: 4600a03c */ c.lt.s $f20,$f0
/* f07585c: 3c017f1a */ lui $at,0x7f1a
/* f075860: c4304750 */ lwc1 $f16,0x4750($at)
/* f075864: 8fa2009c */ lw $v0,0x9c($sp)
/* f075868: 45000019 */ bc1f .NB0f0758d0
/* f07586c: 3c03800a */ lui $v1,0x800a
/* f075870: 3c01800a */ lui $at,0x800a
/* f075874: c426e70c */ lwc1 $f6,-0x18f4($at)
/* f075878: c6040098 */ lwc1 $f4,0x98($s0)
/* f07587c: 3c013f80 */ lui $at,0x3f80
/* f075880: 44815000 */ mtc1 $at,$f10
/* f075884: 46062202 */ mul.s $f8,$f4,$f6
/* f075888: 46004303 */ div.s $f12,$f8,$f0
/* f07588c: 460c503e */ c.le.s $f10,$f12
/* f075890: 00000000 */ sll $zero,$zero,0x0
/* f075894: 45020005 */ bc1fl .NB0f0758ac
/* f075898: c60e0004 */ lwc1 $f14,0x4($s0)
/* f07589c: e6140004 */ swc1 $f20,0x4($s0)
/* f0758a0: 1000000d */ beqz $zero,.NB0f0758d8
/* f0758a4: e614000c */ swc1 $f20,0xc($s0)
/* f0758a8: c60e0004 */ lwc1 $f14,0x4($s0)
.NB0f0758ac:
/* f0758ac: c602000c */ lwc1 $f2,0xc($s0)
/* f0758b0: 460c7102 */ mul.s $f4,$f14,$f12
/* f0758b4: 00000000 */ sll $zero,$zero,0x0
/* f0758b8: 460c1202 */ mul.s $f8,$f2,$f12
/* f0758bc: 46047181 */ sub.s $f6,$f14,$f4
/* f0758c0: 46081281 */ sub.s $f10,$f2,$f8
/* f0758c4: e6060004 */ swc1 $f6,0x4($s0)
/* f0758c8: 10000003 */ beqz $zero,.NB0f0758d8
/* f0758cc: e60a000c */ swc1 $f10,0xc($s0)
.NB0f0758d0:
/* f0758d0: e6140004 */ swc1 $f20,0x4($s0)
/* f0758d4: e614000c */ swc1 $f20,0xc($s0)
.NB0f0758d8:
/* f0758d8: 1000000a */ beqz $zero,.NB0f075904
/* f0758dc: 8c63e6f8 */ lw $v1,-0x1908($v1)
/* f0758e0: c6040004 */ lwc1 $f4,0x4($s0)
.NB0f0758e4:
/* f0758e4: c608000c */ lwc1 $f8,0xc($s0)
/* f0758e8: 3c03800a */ lui $v1,0x800a
/* f0758ec: 46102182 */ mul.s $f6,$f4,$f16
/* f0758f0: 00000000 */ sll $zero,$zero,0x0
/* f0758f4: 46104282 */ mul.s $f10,$f8,$f16
/* f0758f8: e6060004 */ swc1 $f6,0x4($s0)
/* f0758fc: e60a000c */ swc1 $f10,0xc($s0)
/* f075900: 8c63e6f8 */ lw $v1,-0x1908($v1)
.NB0f075904:
/* f075904: 24420001 */ addiu $v0,$v0,0x1
.NB0f075908:
/* f075908: 0043082a */ slt $at,$v0,$v1
/* f07590c: 5420ffb7 */ bnezl $at,.NB0f0757ec
/* f075910: c7a605dc */ lwc1 $f6,0x5dc($sp)
.NB0f075914:
/* f075914: c6440008 */ lwc1 $f4,0x8($s2)
/* f075918: 26440028 */ addiu $a0,$s2,0x28
/* f07591c: 27a505b8 */ addiu $a1,$sp,0x5b8
/* f075920: e7a405c8 */ swc1 $f4,0x5c8($sp)
/* f075924: c646000c */ lwc1 $f6,0xc($s2)
/* f075928: e7a605cc */ swc1 $f6,0x5cc($sp)
/* f07592c: c6480010 */ lwc1 $f8,0x10($s2)
/* f075930: afa40070 */ sw $a0,0x70($sp)
/* f075934: 0fc19283 */ jal roomsCopy
/* f075938: e7a805d0 */ swc1 $f8,0x5d0($sp)
/* f07593c: 02202025 */ or $a0,$s1,$zero
/* f075940: 27a505dc */ addiu $a1,$sp,0x5dc
/* f075944: 27a605e8 */ addiu $a2,$sp,0x5e8
/* f075948: 0fc1b178 */ jal func0f06d37c
/* f07594c: 27a705f4 */ addiu $a3,$sp,0x5f4
/* f075950: 240b0001 */ addiu $t3,$zero,0x1
/* f075954: afab05d8 */ sw $t3,0x5d8($sp)
/* f075958: c64a0008 */ lwc1 $f10,0x8($s2)
/* f07595c: c7a60098 */ lwc1 $f6,0x98($sp)
/* f075960: 26270058 */ addiu $a3,$s1,0x58
/* f075964: e7aa05ac */ swc1 $f10,0x5ac($sp)
/* f075968: c644000c */ lwc1 $f4,0xc($s2)
/* f07596c: 27a405ac */ addiu $a0,$sp,0x5ac
/* f075970: 8fa50070 */ lw $a1,0x70($sp)
/* f075974: 46062200 */ add.s $f8,$f4,$f6
/* f075978: 27a600a4 */ addiu $a2,$sp,0xa4
/* f07597c: e7a805b0 */ swc1 $f8,0x5b0($sp)
/* f075980: c64a0010 */ lwc1 $f10,0x10($s2)
/* f075984: afa7007c */ sw $a3,0x7c($sp)
/* f075988: 0c00ae3e */ jal cd0002a4d0
/* f07598c: e7aa05b4 */ swc1 $f10,0x5b4($sp)
/* f075990: 00021c00 */ sll $v1,$v0,0x10
/* f075994: 1840000b */ blez $v0,.NB0f0759c4
/* f075998: 00036403 */ sra $t4,$v1,0x10
/* f07599c: 24180003 */ addiu $t8,$zero,0x3
/* f0759a0: afb80010 */ sw $t8,0x10($sp)
/* f0759a4: 27a405c8 */ addiu $a0,$sp,0x5c8
/* f0759a8: 27a505b8 */ addiu $a1,$sp,0x5b8
/* f0759ac: 27a605ac */ addiu $a2,$sp,0x5ac
/* f0759b0: 24070020 */ addiu $a3,$zero,0x20
/* f0759b4: 0c00bbe8 */ jal cd0002db98
/* f0759b8: a7ac00a2 */ sh $t4,0xa2($sp)
/* f0759bc: 10400009 */ beqz $v0,.NB0f0759e4
/* f0759c0: 87a300a2 */ lh $v1,0xa2($sp)
.NB0f0759c4:
/* f0759c4: 26440008 */ addiu $a0,$s2,0x8
/* f0759c8: 8fa50070 */ lw $a1,0x70($sp)
/* f0759cc: 27a600a4 */ addiu $a2,$sp,0xa4
/* f0759d0: 0c00ae22 */ jal cd0002a440
/* f0759d4: 8fa7007c */ lw $a3,0x7c($sp)
/* f0759d8: 00021c00 */ sll $v1,$v0,0x10
/* f0759dc: 00035403 */ sra $t2,$v1,0x10
/* f0759e0: 01401825 */ or $v1,$t2,$zero
.NB0f0759e4:
/* f0759e4: 1c600015 */ bgtz $v1,.NB0f075a3c
/* f0759e8: c7a405c8 */ lwc1 $f4,0x5c8($sp)
/* f0759ec: e6440008 */ swc1 $f4,0x8($s2)
/* f0759f0: c7a605d0 */ lwc1 $f6,0x5d0($sp)
/* f0759f4: 264e0008 */ addiu $t6,$s2,0x8
/* f0759f8: 02402025 */ or $a0,$s2,$zero
/* f0759fc: e6460010 */ swc1 $f6,0x10($s2)
/* f075a00: 0fc193ab */ jal propDeregisterRooms
/* f075a04: afae0074 */ sw $t6,0x74($sp)
/* f075a08: 27a405b8 */ addiu $a0,$sp,0x5b8
/* f075a0c: 0fc19283 */ jal roomsCopy
/* f075a10: 8fa50070 */ lw $a1,0x70($sp)
/* f075a14: 8fa40074 */ lw $a0,0x74($sp)
/* f075a18: 8fa50070 */ lw $a1,0x70($sp)
/* f075a1c: 27a600a4 */ addiu $a2,$sp,0xa4
/* f075a20: 0c00ae22 */ jal cd0002a440
/* f075a24: 8fa7007c */ lw $a3,0x7c($sp)
/* f075a28: 00021c00 */ sll $v1,$v0,0x10
/* f075a2c: 00036c03 */ sra $t5,$v1,0x10
/* f075a30: 01a01825 */ or $v1,$t5,$zero
/* f075a34: e6140004 */ swc1 $f20,0x4($s0)
/* f075a38: e614000c */ swc1 $f20,0xc($s0)
.NB0f075a3c:
/* f075a3c: 18600009 */ blez $v1,.NB0f075a64
/* f075a40: c7a805cc */ lwc1 $f8,0x5cc($sp)
/* f075a44: 0fc1a623 */ jal func0f06a620
/* f075a48: 02202025 */ or $a0,$s1,$zero
/* f075a4c: c7a800a4 */ lwc1 $f8,0xa4($sp)
/* f075a50: c7aa0098 */ lwc1 $f10,0x98($sp)
/* f075a54: 460a4101 */ sub.s $f4,$f8,$f10
/* f075a58: 46040180 */ add.s $f6,$f0,$f4
/* f075a5c: 10000002 */ beqz $zero,.NB0f075a68
/* f075a60: e646000c */ swc1 $f6,0xc($s2)
.NB0f075a64:
/* f075a64: e648000c */ swc1 $f8,0xc($s2)
.NB0f075a68:
/* f075a68: 3c017f1a */ lui $at,0x7f1a
/* f075a6c: c4304754 */ lwc1 $f16,0x4754($at)
/* f075a70: c60e0004 */ lwc1 $f14,0x4($s0)
/* f075a74: 3c017f1a */ lui $at,0x7f1a
/* f075a78: 4610703c */ c.lt.s $f14,$f16
/* f075a7c: 00000000 */ sll $zero,$zero,0x0
/* f075a80: 45020012 */ bc1fl .NB0f075acc
/* f075a84: 8faf00fc */ lw $t7,0xfc($sp)
/* f075a88: c4324758 */ lwc1 $f18,0x4758($at)
/* f075a8c: 460e903c */ c.lt.s $f18,$f14
/* f075a90: 00000000 */ sll $zero,$zero,0x0
/* f075a94: 4502000d */ bc1fl .NB0f075acc
/* f075a98: 8faf00fc */ lw $t7,0xfc($sp)
/* f075a9c: c602000c */ lwc1 $f2,0xc($s0)
/* f075aa0: 4610103c */ c.lt.s $f2,$f16
/* f075aa4: 00000000 */ sll $zero,$zero,0x0
/* f075aa8: 45020008 */ bc1fl .NB0f075acc
/* f075aac: 8faf00fc */ lw $t7,0xfc($sp)
/* f075ab0: 4602903c */ c.lt.s $f18,$f2
/* f075ab4: 00000000 */ sll $zero,$zero,0x0
/* f075ab8: 45020004 */ bc1fl .NB0f075acc
/* f075abc: 8faf00fc */ lw $t7,0xfc($sp)
/* f075ac0: e614000c */ swc1 $f20,0xc($s0)
/* f075ac4: e6140004 */ swc1 $f20,0x4($s0)
/* f075ac8: 8faf00fc */ lw $t7,0xfc($sp)
.NB0f075acc:
/* f075acc: 51e0000b */ beqzl $t7,.NB0f075afc
/* f075ad0: 8fa905d8 */ lw $t1,0x5d8($sp)
/* f075ad4: 0fc1a7a9 */ jal objEndFlight
/* f075ad8: 02202025 */ or $a0,$s1,$zero
/* f075adc: 92390003 */ lbu $t9,0x3($s1)
/* f075ae0: 24010008 */ addiu $at,$zero,0x8
/* f075ae4: 26450028 */ addiu $a1,$s2,0x28
/* f075ae8: 57210004 */ bnel $t9,$at,.NB0f075afc
/* f075aec: 8fa905d8 */ lw $t1,0x5d8($sp)
/* f075af0: 0fc24fd9 */ jal objectiveCheckThrowInRoom
/* f075af4: 9224005c */ lbu $a0,0x5c($s1)
/* f075af8: 8fa905d8 */ lw $t1,0x5d8($sp)
.NB0f075afc:
/* f075afc: 02202025 */ or $a0,$s1,$zero
/* f075b00: 24050001 */ addiu $a1,$zero,0x1
/* f075b04: 51200004 */ beqzl $t1,.NB0f075b18
/* f075b08: 8fbf005c */ lw $ra,0x5c($sp)
/* f075b0c: 0fc1a3b7 */ jal func0f069c70
/* f075b10: 24060001 */ addiu $a2,$zero,0x1
.NB0f075b14:
/* f075b14: 8fbf005c */ lw $ra,0x5c($sp)
.NB0f075b18:
/* f075b18: 8fa205d8 */ lw $v0,0x5d8($sp)
/* f075b1c: d7b40048 */ ldc1 $f20,0x48($sp)
/* f075b20: 8fb00050 */ lw $s0,0x50($sp)
/* f075b24: 8fb10054 */ lw $s1,0x54($sp)
/* f075b28: 8fb20058 */ lw $s2,0x58($sp)
/* f075b2c: 03e00008 */ jr $ra
/* f075b30: 27bd0608 */ addiu $sp,$sp,0x608
);
#endif
void doorTick(struct prop *doorprop)
{
struct doorobj *door = (struct doorobj *)doorprop->obj;
struct model *model = door->base.model;
f32 prevfrac = door->frac;
u32 stack[2];
#if VERSION < VERSION_PAL_BETA
static u32 debugdoor = 0;
mainOverrideVariable("debugdoor", &debugdoor);
// If debugdoor is set to 1 or to the address of this door,
// print the distance to the door to console
if (debugdoor) {
u32 addr = (u32)doorprop;
if (debugdoor == 1 || debugdoor == addr) {
f32 xdiff = doorprop->pos.x - g_Vars.players[0]->cam_pos.x;
f32 zdiff = doorprop->pos.z - g_Vars.players[0]->cam_pos.z;
sqrtf(xdiff * xdiff + zdiff * zdiff);
}
}
#endif
// If door should autoclose this tick
if (door->lastopen60 > 0
&& door->mode == DOORMODE_IDLE
&& (door->base.flags & OBJFLAG_DOOR_KEEPOPEN) == 0
&& door->lastopen60 < g_Vars.lvframe60 - TICKS(door->autoclosetime)) {
// Check if any sibling is automatic
struct doorobj *loopdoor = door->sibling;
bool pass = door->doorflags & DOORFLAG_AUTOMATIC;
while (loopdoor && loopdoor != door && !pass) {
pass = loopdoor->doorflags & DOORFLAG_AUTOMATIC;
loopdoor = loopdoor->sibling;
}
if (!pass) {
// Not automatic
doorsRequestMode(door, DOORMODE_CLOSING);
} else if (door->doorflags & DOORFLAG_AUTOMATIC) {
// Check if any sibling has anything in range
pass = !doorIsRangeEmpty(door);
loopdoor = door->sibling;
while (loopdoor && loopdoor != door && !pass) {
pass = !doorIsRangeEmpty(loopdoor);
loopdoor = loopdoor->sibling;
}
if (pass) {
// Something is in range, so keep open
loopdoor = door->sibling;
door->lastopen60 = g_Vars.lvframe60;
while (loopdoor && loopdoor != door) {
loopdoor->lastopen60 = g_Vars.lvframe60;
loopdoor = loopdoor->sibling;
}
} else {
doorsRequestMode(door, DOORMODE_CLOSING);
}
}
}
// If waiting for sibling to close, check for that
if (door->mode == DOORMODE_WAITING) {
bool shouldopen = true;
struct doorobj *loopdoor = door->sibling;
while (loopdoor && loopdoor != door) {
if (loopdoor->mode != DOORMODE_IDLE || loopdoor->frac > 0) {
shouldopen = false;
}
loopdoor = loopdoor->sibling;
}
if (shouldopen) {
doorSetMode(door, DOORMODE_OPENING);
}
}
// Open fall-away doors if padlock free (GE only)
if (door->doortype == DOORTYPE_FALLAWAY && doorIsClosed(door) && doorIsPadlockFree(door)) {
doorsActivate(doorprop, false);
}
// Update frac
if (door->lastcalc60 < g_Vars.lvframe60 || g_Vars.lvupdate240 == 0) {
doorsCalcFrac(door);
}
// Consider playing a sound effect
if (model->filedata->skel == &g_Skel13) {
f32 soundpoint = door->maxfrac * 0.3f;
if (door->frac > soundpoint) {
if (prevfrac <= soundpoint) {
// frac increased past the soundpoint
propsnd0f0939f8(NULL, doorprop, SFX_DOOR_8014, -1,
-1, 0, 0, 12, 0, -1, 0, -1, -1, -1, -1);
}
} else {
if (prevfrac > soundpoint) {
// frac decreased past the soundpoint
propsnd0f0939f8(NULL, doorprop, SFX_DOOR_8015, -1,
-1, 0, 0, 12, 0, -1, 0, -1, -1, -1, -1);
}
}
}
}
struct escastepkeyframe g_EscaStepKeyframesX[] = {
{ 0, { -1535.98, -511, -5258.18 } },
{ 41, { -1535.98, -505.76, -5188.43 } },
{ 149, { -1535.98, -504.79, -5008.75 } },
{ 698, { -1535.98, -100.91, -4210.86 } },
{ 759, { -1535.98, -98.89, -4109.62 } },
{ 800, { -1535.98, -102, -4039.06 } },
{ -1, { 0, 0, 0 } },
};
struct escastepkeyframe g_EscaStepKeyframesZ[] = {
{ 0, { -1932.27, -102, -3824.58 } },
{ 41, { -2002.83, -98.89, -3824.58 } },
{ 102, { -2104.07, -100.91, -3824.58 } },
{ 651, { -2901.96, -504.79, -3824.58 } },
{ 759, { -3081.64, -505.76, -3824.58 } },
{ 800, { -3151.39, -511, -3824.58 } },
{ -1, { 0, 0, 0 } },
};
u32 var80069cb8 = 0x2b000000;
u32 var80069cbc = 0x0e000001;
u32 var80069cc0 = 0x00000000;
const char var7f1a9fe8[] = "************** RWI : Door Stuck Mate -> Sort it out\n";
#if VERSION >= VERSION_PAL_FINAL
const char var7f1aa020[] = "prop/propobj.c";
const char var7f1aa02c[] = "prop/propobj.c";
const char var7f1aa038[] = "prop/propobj.c";
const char var7f1aa044[] = "prop/propobj.c";
#else
const char var7f1aa020[] = "propobj.c";
const char var7f1aa02c[] = "propobj.c";
const char var7f1aa038[] = "propobj.c";
const char var7f1aa044[] = "propobj.c";
#endif
const char var7f1aa050[] = "HC: %x - visible\n";
void doorUpdatePortalIfWindowed(struct prop *doorprop, s32 playercount)
{
struct doorobj *doorobj = doorprop->door;
struct modelnode *node;
bool canhide = true;
struct model *model = doorprop->obj->model;
union modelrwdata *rwdata;
if (doorobj->doorflags & DOORFLAG_WINDOWED) {
doorobj->fadealpha = glassCalculateOpacity(&doorprop->pos, doorobj->xludist, doorobj->opadist, 0);
if (doorobj->fadealpha != 255 || doorobj->frac > 0) {
canhide = false;
}
if (model->filedata->skel == &g_SkelWindowedDoor) {
node = modelGetPart(model->filedata, MODELPART_WINDOWEDDOOR_0001);
rwdata = modelGetNodeRwData(model, node);
if (!rwdata->toggle.visible) {
canhide = false;
}
}
if (playercount >= 2) {
canhide = false;
}
if (canhide) {
doorDeactivatePortal(doorobj);
} else {
doorActivatePortal(doorobj);
}
}
}
GLOBAL_ASM(
glabel doorInitMatrices
.late_rodata
glabel var7f1aa440
.word 0x3c8ef461
glabel var7f1aa444
.word 0x40c907a9
glabel var7f1aa448
.word 0x3c8ef461
glabel var7f1aa44c
.word 0x3e99999a
.text
/* f077448: 27bdffb8 */ addiu $sp,$sp,-72
/* f07744c: afbf0044 */ sw $ra,0x44($sp)
/* f077450: afb70040 */ sw $s7,0x40($sp)
/* f077454: afb6003c */ sw $s6,0x3c($sp)
/* f077458: afb50038 */ sw $s5,0x38($sp)
/* f07745c: afb40034 */ sw $s4,0x34($sp)
/* f077460: afb30030 */ sw $s3,0x30($sp)
/* f077464: afb2002c */ sw $s2,0x2c($sp)
/* f077468: afb10028 */ sw $s1,0x28($sp)
/* f07746c: afb00024 */ sw $s0,0x24($sp)
/* f077470: f7b60018 */ sdc1 $f22,0x18($sp)
/* f077474: f7b40010 */ sdc1 $f20,0x10($sp)
/* f077478: 8c900004 */ lw $s0,0x4($a0)
/* f07747c: 8e160018 */ lw $s6,0x18($s0)
/* f077480: 02002025 */ or $a0,$s0,$zero
/* f077484: 8ed5000c */ lw $s5,0xc($s6)
/* f077488: 0fc23109 */ jal func0f08c424
/* f07748c: 02a02825 */ or $a1,$s5,$zero
/* f077490: 0fc2d5be */ jal camGetWorldToScreenMtxf
/* f077494: 00000000 */ nop
/* f077498: 00402025 */ or $a0,$v0,$zero
/* f07749c: 0c0056f8 */ jal mtx00015be0
/* f0774a0: 02a02825 */ or $a1,$s5,$zero
/* f0774a4: 8ec40008 */ lw $a0,0x8($s6)
/* f0774a8: 3c0e8008 */ lui $t6,%hi(g_Skel11)
/* f0774ac: 25ceae84 */ addiu $t6,$t6,%lo(g_Skel11)
/* f0774b0: 8c820004 */ lw $v0,0x4($a0)
/* f0774b4: 3c0f8008 */ lui $t7,%hi(g_Skel13)
/* f0774b8: 3c017f1b */ lui $at,%hi(var7f1aa440)
/* f0774bc: 15c20024 */ bne $t6,$v0,.L0f077550
/* f0774c0: 25efaea8 */ addiu $t7,$t7,%lo(g_Skel13)
/* f0774c4: c42ea440 */ lwc1 $f14,%lo(var7f1aa440)($at)
/* f0774c8: c604007c */ lwc1 $f4,0x7c($s0)
/* f0774cc: 3c017f1b */ lui $at,%hi(var7f1aa444)
/* f0774d0: c436a444 */ lwc1 $f22,%lo(var7f1aa444)($at)
/* f0774d4: 460e2182 */ mul.s $f6,$f4,$f14
/* f0774d8: 24050001 */ addiu $a1,$zero,0x1
/* f0774dc: 0c006a6f */ jal modelGetPartRodata
/* f0774e0: 4606b501 */ sub.s $f20,$f22,$f6
/* f0774e4: 26b10040 */ addiu $s1,$s5,0x40
/* f0774e8: 00408025 */ or $s0,$v0,$zero
/* f0774ec: 02202825 */ or $a1,$s1,$zero
/* f0774f0: 0c0058ba */ jal mtx4LoadXRotation
/* f0774f4: 4600a306 */ mov.s $f12,$f20
/* f0774f8: 02002025 */ or $a0,$s0,$zero
/* f0774fc: 0c005775 */ jal mtx4SetTranslation
/* f077500: 02202825 */ or $a1,$s1,$zero
/* f077504: 02a02025 */ or $a0,$s5,$zero
/* f077508: 0c00567f */ jal mtx4MultMtx4InPlace
/* f07750c: 02202825 */ or $a1,$s1,$zero
/* f077510: 8ec40008 */ lw $a0,0x8($s6)
/* f077514: 0c006a6f */ jal modelGetPartRodata
/* f077518: 24050002 */ addiu $a1,$zero,0x2
/* f07751c: 26b10080 */ addiu $s1,$s5,0x80
/* f077520: 00408025 */ or $s0,$v0,$zero
/* f077524: 02202825 */ or $a1,$s1,$zero
/* f077528: 0c0058ba */ jal mtx4LoadXRotation
/* f07752c: 4614b301 */ sub.s $f12,$f22,$f20
/* f077530: 02002025 */ or $a0,$s0,$zero
/* f077534: 0c005775 */ jal mtx4SetTranslation
/* f077538: 02202825 */ or $a1,$s1,$zero
/* f07753c: 02a02025 */ or $a0,$s5,$zero
/* f077540: 0c00567f */ jal mtx4MultMtx4InPlace
/* f077544: 02202825 */ or $a1,$s1,$zero
/* f077548: 1000003c */ b .L0f07763c
/* f07754c: 8fbf0044 */ lw $ra,0x44($sp)
.L0f077550:
/* f077550: 15e20039 */ bne $t7,$v0,.L0f077638
/* f077554: 3c017f1b */ lui $at,%hi(var7f1aa448)
/* f077558: c42ea448 */ lwc1 $f14,%lo(var7f1aa448)($at)
/* f07755c: c600007c */ lwc1 $f0,0x7c($s0)
/* f077560: 3c017f1b */ lui $at,%hi(var7f1aa44c)
/* f077564: c428a44c */ lwc1 $f8,%lo(var7f1aa44c)($at)
/* f077568: c60c005c */ lwc1 $f12,0x5c($s0)
/* f07756c: 460e0582 */ mul.s $f22,$f0,$f14
/* f077570: 4480a000 */ mtc1 $zero,$f20
/* f077574: 0000a025 */ or $s4,$zero,$zero
/* f077578: 46086082 */ mul.s $f2,$f12,$f8
/* f07757c: 24170006 */ addiu $s7,$zero,0x6
/* f077580: 4600103c */ c.lt.s $f2,$f0
/* f077584: 00000000 */ nop
/* f077588: 45000007 */ bc1f .L0f0775a8
/* f07758c: 00000000 */ nop
/* f077590: 46020281 */ sub.s $f10,$f0,$f2
/* f077594: 46026481 */ sub.s $f18,$f12,$f2
/* f077598: 460a6402 */ mul.s $f16,$f12,$f10
/* f07759c: 46128103 */ div.s $f4,$f16,$f18
/* f0775a0: 460e2502 */ mul.s $f20,$f4,$f14
/* f0775a4: 00000000 */ nop
.L0f0775a8:
/* f0775a8: 00148840 */ sll $s1,$s4,0x1
.L0f0775ac:
/* f0775ac: 26330001 */ addiu $s3,$s1,0x1
/* f0775b0: 02602825 */ or $a1,$s3,$zero
/* f0775b4: 0c006a6f */ jal modelGetPartRodata
/* f0775b8: 8ec40008 */ lw $a0,0x8($s6)
/* f0775bc: 0013c180 */ sll $t8,$s3,0x6
/* f0775c0: 02b89021 */ addu $s2,$s5,$t8
/* f0775c4: 00408025 */ or $s0,$v0,$zero
/* f0775c8: 02402825 */ or $a1,$s2,$zero
/* f0775cc: 0c005900 */ jal mtx4LoadZRotation
/* f0775d0: 4600a306 */ mov.s $f12,$f20
/* f0775d4: 02002025 */ or $a0,$s0,$zero
/* f0775d8: 0c005775 */ jal mtx4SetTranslation
/* f0775dc: 02402825 */ or $a1,$s2,$zero
/* f0775e0: 02a02025 */ or $a0,$s5,$zero
/* f0775e4: 0c00567f */ jal mtx4MultMtx4InPlace
/* f0775e8: 02402825 */ or $a1,$s2,$zero
/* f0775ec: 26330002 */ addiu $s3,$s1,0x2
/* f0775f0: 02602825 */ or $a1,$s3,$zero
/* f0775f4: 0c006a6f */ jal modelGetPartRodata
/* f0775f8: 8ec40008 */ lw $a0,0x8($s6)
/* f0775fc: 0013c980 */ sll $t9,$s3,0x6
/* f077600: 02b98821 */ addu $s1,$s5,$t9
/* f077604: 00408025 */ or $s0,$v0,$zero
/* f077608: 02202825 */ or $a1,$s1,$zero
/* f07760c: 0c005900 */ jal mtx4LoadZRotation
/* f077610: 4600b306 */ mov.s $f12,$f22
/* f077614: 02002025 */ or $a0,$s0,$zero
/* f077618: 0c005775 */ jal mtx4SetTranslation
/* f07761c: 02202825 */ or $a1,$s1,$zero
/* f077620: 02402025 */ or $a0,$s2,$zero
/* f077624: 0c00567f */ jal mtx4MultMtx4InPlace
/* f077628: 02202825 */ or $a1,$s1,$zero
/* f07762c: 26940001 */ addiu $s4,$s4,0x1
/* f077630: 5697ffde */ bnel $s4,$s7,.L0f0775ac
/* f077634: 00148840 */ sll $s1,$s4,0x1
.L0f077638:
/* f077638: 8fbf0044 */ lw $ra,0x44($sp)
.L0f07763c:
/* f07763c: d7b40010 */ ldc1 $f20,0x10($sp)
/* f077640: d7b60018 */ ldc1 $f22,0x18($sp)
/* f077644: 8fb00024 */ lw $s0,0x24($sp)
/* f077648: 8fb10028 */ lw $s1,0x28($sp)
/* f07764c: 8fb2002c */ lw $s2,0x2c($sp)
/* f077650: 8fb30030 */ lw $s3,0x30($sp)
/* f077654: 8fb40034 */ lw $s4,0x34($sp)
/* f077658: 8fb50038 */ lw $s5,0x38($sp)
/* f07765c: 8fb6003c */ lw $s6,0x3c($sp)
/* f077660: 8fb70040 */ lw $s7,0x40($sp)
/* f077664: 03e00008 */ jr $ra
/* f077668: 27bd0048 */ addiu $sp,$sp,0x48
);
// Mismatch: regalloc
//void doorInitMatrices(struct prop *prop)
//{
// struct doorobj *door = prop->door;
// struct model *model = door->base.model;
// Mtxf *matrices = model->matrices;
// union modelrodata *rodata;
//
// func0f08c424(door, matrices);
// mtx00015be0(camGetWorldToScreenMtxf(), matrices);
//
// if (model->filedata->type == &g_Skel11) {
// f32 xrot = M_BADTAU - door->frac * 0.017450513318181f;
//
// rodata = modelGetPartRodata(model->filedata, 1);
// mtx4LoadXRotation(xrot, &matrices[1]);
// mtx4SetTranslation(&rodata->position.pos, &matrices[1]);
// mtx4MultMtx4InPlace(matrices, &matrices[1]);
//
// rodata = modelGetPartRodata(model->filedata, 2);
// mtx4LoadXRotation(M_BADTAU - xrot, &matrices[2]);
// mtx4SetTranslation(&rodata->position.pos, &matrices[2]);
// mtx4MultMtx4InPlace(matrices, &matrices[2]);
// } else if (model->filedata->type == &g_Skel13) {
// f32 zrot1 = 0;
// f32 zrot2 = door->frac * 0.017450513318181f;
// f32 limit = door->maxfrac * 0.3f;
// s32 i;
//
// if (door->frac > limit) {
// zrot1 = ((door->maxfrac * (door->frac - limit)) / (door->maxfrac - limit)) * 0.017450513318181f;
// }
//
// for (i = 0; i < 6; i++) {
// s32 index = i << 1;
//
// rodata = modelGetPartRodata(model->filedata, index + 1);
// mtx4LoadZRotation(zrot1, &matrices[index + 1]);
// mtx4SetTranslation(&rodata->position.pos, &matrices[index + 1]);
// mtx4MultMtx4InPlace(matrices, &matrices[index + 1]);
//
// rodata = modelGetPartRodata(model->filedata, index + 2);
// mtx4LoadZRotation(zrot2, &matrices[index + 2]);
// mtx4SetTranslation(&rodata->position.pos, &matrices[index + 2]);
// mtx4MultMtx4InPlace(&matrices[index + 1], &matrices[index + 2]);
// }
// }
//}
void platformDisplaceProps(struct prop *platform, s16 *propnums, struct coord *prevpos, struct coord *newpos)
{
struct prop *prop;
s16 *propnumptr = propnums;
while (*propnumptr >= 0) {
prop = &g_Vars.props[*propnumptr];
if (prop->type == PROPTYPE_OBJ || prop->type == PROPTYPE_WEAPON) {
struct defaultobj *obj = prop->obj;
if ((obj->hidden & OBJHFLAG_00020000) == 0) {
if ((obj->hidden & OBJHFLAG_AIRBORNE) == 0
|| (obj->projectile->flags & (PROJECTILEFLAG_00000400 | PROJECTILEFLAG_00000800))) {
struct hov *hov = NULL;
if (obj->type == OBJTYPE_HOVERPROP) {
struct hoverpropobj *hoverobj = (struct hoverpropobj *)obj;
hov = &hoverobj->hov;
} else if (obj->type == OBJTYPE_HOVERBIKE) {
struct hoverbikeobj *bike = (struct hoverbikeobj *)obj;
hov = &bike->hov;
}
if (hov) {
hov->unk30 += newpos->y - prevpos->y;
hov->ground += newpos->y - prevpos->y;
}
prop->pos.x += newpos->x - prevpos->x;
prop->pos.y += newpos->y - prevpos->y;
prop->pos.z += newpos->z - prevpos->z;
propDeregisterRooms(prop);
func0f065e74(&platform->pos, platform->rooms, &prop->pos, prop->rooms);
func0f069c70(obj, true, true);
}
}
} else if (prop->type == PROPTYPE_CHR) {
struct chrdata *chr = prop->chr;
s32 nodetype;
if (chr->fallspeed.y == 0.0f) {
chr->ground += newpos->y - prevpos->y;
chr->manground += newpos->y - prevpos->y;
chr->sumground = chr->manground * (PAL ? 8.417509f : 9.999998f);
prop->pos.x += newpos->x - prevpos->x;
prop->pos.y += newpos->y - prevpos->y;
prop->pos.z += newpos->z - prevpos->z;
propDeregisterRooms(prop);
func0f065e74(&platform->pos, platform->rooms, &prop->pos, prop->rooms);
chr0f0220ac(chr);
modelSetRootPosition(chr->model, &prop->pos);
nodetype = chr->model->filedata->rootnode->type;
if ((nodetype & 0xff) == MODELNODETYPE_CHRINFO) {
struct modelrwdata_chrinfo *rwdata = modelGetNodeRwData(chr->model, chr->model->filedata->rootnode);
rwdata->ground += newpos->y - prevpos->y;
}
}
} else if (prop->type == PROPTYPE_PLAYER) {
struct defaultobj *platformobj = platform->obj;
struct coord sp8c;
s32 playernum = playermgrGetPlayerNumByProp(prop);
s32 prevplayernum;
if (platformobj->type == OBJTYPE_LIFT) {
#if VERSION >= VERSION_NTSC_1_0
if (g_Vars.players[playernum]->lift == platform && g_Vars.players[playernum]->bondmovemode == MOVEMODE_WALK) {
if (platformobj->flags & OBJFLAG_20000000) {
g_Vars.players[playernum]->bondextrapos.x += newpos->x - prevpos->x;
g_Vars.players[playernum]->bondextrapos.z += newpos->z - prevpos->z;
sp8c.x = newpos->x - prevpos->x;
sp8c.y = 0.0f;
sp8c.z = newpos->z - prevpos->z;
prevplayernum = g_Vars.currentplayernum;
setCurrentPlayerNum(playernum);
bwalk0f0c63bc(&sp8c, 1, CDTYPE_BG);
playerUpdatePerimInfo();
bmoveUpdateRooms(g_Vars.players[playernum]);
setCurrentPlayerNum(prevplayernum);
}
if (g_Vars.players[playernum]->inlift && !g_Vars.players[playernum]->onladder && !g_Vars.players[playernum]->isfalling) {
struct coord sp78;
s16 sp68[8];
f32 ydist = newpos->y - prevpos->y;
if (ydist != 0.0f) {
g_Vars.players[playernum]->bondextrapos.y += ydist;
prevplayernum = g_Vars.currentplayernum;
setCurrentPlayerNum(playernum);
g_Vars.players[playernum]->vv_ground += ydist;
if (ydist > 0.0f || (platformobj->flags & OBJFLAG_80000000) == 0) {
sp78.x = prop->pos.x;
sp78.y = prop->pos.y + ydist;
sp78.z = prop->pos.z;
func0f065e74(&prop->pos, prop->rooms, &sp78, sp68);
prop->pos.x = sp78.x;
prop->pos.y = sp78.y;
prop->pos.z = sp78.z;
propDeregisterRooms(prop);
roomsCopy(sp68, prop->rooms);
g_Vars.players[playernum]->vv_manground += ydist;
g_Vars.players[playernum]->sumground = g_Vars.players[playernum]->vv_manground / (PAL ? 0.054400026798248f : 0.045499980449677f);
} else if (bwalkTryMoveUpwards(ydist) == CDRESULT_NOCOLLISION) {
g_Vars.players[playernum]->vv_manground += ydist;
g_Vars.players[playernum]->sumground = g_Vars.players[playernum]->vv_manground / (PAL ? 0.054400026798248f : 0.045499980449677f);
}
playerUpdatePerimInfo();
bmoveUpdateRooms(g_Vars.players[playernum]);
setCurrentPlayerNum(prevplayernum);
if (g_Vars.players[playernum]->walkinitmove) {
g_Vars.players[playernum]->walkinitstart.y += ydist;
}
}
}
}
#else
if ((platformobj->flags & OBJFLAG_20000000)
&& g_Vars.players[playernum]->lift == platform
&& g_Vars.players[playernum]->bondmovemode == MOVEMODE_WALK) {
g_Vars.players[playernum]->bondextrapos.x += newpos->x - prevpos->x;
g_Vars.players[playernum]->bondextrapos.y += newpos->y - prevpos->y;
g_Vars.players[playernum]->bondextrapos.z += newpos->z - prevpos->z;
prevplayernum = g_Vars.currentplayernum;
sp8c.x = newpos->x - prevpos->x;
sp8c.y = 0.0f;
sp8c.z = newpos->z - prevpos->z;
setCurrentPlayerNum(playernum);
bwalk0f0c63bc(&sp8c, 1, CDTYPE_BG);
prop->pos.y += newpos->y - prevpos->y;
g_Vars.players[playernum]->vv_ground += newpos->y - prevpos->y;
g_Vars.players[playernum]->vv_manground += newpos->y - prevpos->y;
g_Vars.players[playernum]->sumground = g_Vars.players[playernum]->vv_manground / (PAL ? 0.054400026798248f : 0.045499980449677f);
playerUpdatePerimInfo();
bmoveUpdateRooms(g_Vars.players[playernum]);
setCurrentPlayerNum(prevplayernum);
}
#endif
}
}
propnumptr++;
}
}
void liftTick(struct prop *prop)
{
struct liftobj *lift = (struct liftobj *)prop->obj;
struct defaultobj *obj = prop->obj;
struct doorobj *door;
struct pad padcur;
struct pad padaim;
f32 segdist;
f32 xdiff;
f32 ydiff;
f32 zdiff;
struct coord curcentre;
f32 frac;
s32 move;
struct coord newpos;
s16 newrooms[8];
struct coord prevpos;
#if VERSION >= VERSION_NTSC_1_0
f32 prevdist;
#endif
s16 propnums[256];
s32 stop;
lift->prevpos.x = prop->pos.x;
lift->prevpos.y = prop->pos.y;
lift->prevpos.z = prop->pos.z;
if (lift->levelcur != lift->levelaim) {
// Lift is not at the desired level. So try to move, but not if the lift
// is disabled or if the door needs to be closed first.
move = true;
if (obj->flags & OBJFLAG_DEACTIVATED) {
move = false;
} else if (lift->doors[lift->levelcur] && !doorIsClosed(lift->doors[lift->levelcur])) {
doorsRequestMode(lift->doors[lift->levelcur], DOORMODE_CLOSING);
move = false;
}
if (move) {
prevpos.x = prop->pos.x;
prevpos.y = prop->pos.y;
prevpos.z = prop->pos.z;
cdGetPropsOnPlatform(prop, propnums, ARRAYCOUNT(propnums));
if (lift->dist == 0 && lift->speed == 0) {
doorPlayOpeningSound(lift->soundtype, lift->base.prop);
if (obj->flags & OBJFLAG_LIFT_TRIGGERDISABLE) {
obj->flags &= ~OBJFLAG_LIFT_TRIGGERDISABLE;
obj->flags |= OBJFLAG_DEACTIVATED;
}
}
padGetCentre(lift->pads[lift->levelcur], &curcentre);
padUnpack(lift->pads[lift->levelcur], PADFIELD_POS, &padcur);
padUnpack(lift->pads[lift->levelaim], PADFIELD_POS, &padaim);
xdiff = padaim.pos.f[0] - padcur.pos.f[0];
ydiff = padaim.pos.f[1] - padcur.pos.f[1];
zdiff = padaim.pos.f[2] - padcur.pos.f[2];
segdist = sqrtf(xdiff * xdiff + ydiff * ydiff + zdiff * zdiff);
#if VERSION >= VERSION_NTSC_1_0
prevdist = lift->dist;
#endif
applySpeed(&lift->dist, segdist, &lift->speed, lift->accel, lift->accel, lift->maxspeed);
// If arriving at the destination, set the distance explicitly
if (lift->speed < 1 && lift->speed > -1) {
#if VERSION >= VERSION_NTSC_1_0
if (prevdist < segdist && lift->dist >= segdist) {
lift->dist = segdist;
} else if (prevdist > 0 && lift->dist <= 0) {
lift->dist = 0;
}
#else
if (lift->dist >= segdist) {
lift->dist = segdist;
} else if (lift->dist <= 0) {
lift->dist = 0;
}
#endif
}
frac = segdist == 0 ? 0 : lift->dist / segdist;
newpos.x = curcentre.f[0] + xdiff * frac;
newpos.y = curcentre.f[1] + ydiff * frac;
newpos.z = curcentre.f[2] + zdiff * frac;
if (segdist == lift->dist) {
lift->dist = 0;
lift->speed = 0;
lift->levelcur = lift->levelaim;
doorPlayOpenedSound(lift->soundtype, lift->base.prop);
if (obj->flags & OBJFLAG_LIFT_TRIGGERDISABLE) {
obj->flags &= ~OBJFLAG_LIFT_TRIGGERDISABLE;
obj->flags |= OBJFLAG_DEACTIVATED;
}
door = lift->doors[lift->levelcur];
if (door && door->keyflags == 0) {
doorsRequestMode(door, DOORMODE_OPENING);
}
}
func0f065e74(&prop->pos, prop->rooms, &newpos, newrooms);
prop->pos.x = newpos.x;
prop->pos.y = newpos.y;
prop->pos.z = newpos.z;
propDeregisterRooms(prop);
roomsCopy(newrooms, prop->rooms);
func0f069c70(obj, true, true);
liftUpdateTiles(lift, lift->levelcur == lift->levelaim);
platformDisplaceProps(prop, propnums, &prevpos, &prop->pos);
}
} else {
// Lift is at the aim stop
door = lift->doors[lift->levelcur];
if (!door || (doorIsClosed(door) && door->keyflags == 0)) {
// Find next stop
stop = lift->levelaim;
do {
stop = (stop + 1) % 4;
} while (lift->pads[stop] < 0);
liftGoToStop(lift, stop);
}
}
}
void escastepTick(struct prop *prop)
{
struct escalatorobj *step = (struct escalatorobj *)prop->obj;
struct defaultobj *obj = prop->obj;
struct coord newpos;
struct escastepkeyframe *keyframes;
s32 i;
f32 mult;
struct coord oldpos;
s16 propnums[256];
bool resetting;
resetting = false;
step->frame += g_Vars.lvupdate240_60;
keyframes = (obj->flags & OBJFLAG_ESCSTEP_ZALIGNED) ? g_EscaStepKeyframesZ : g_EscaStepKeyframesX;
for (i = 0; true; i++) {
if (keyframes[i + 1].frame == -1) {
step->frame -= keyframes[i].frame;
i = -1;
resetting = true;
} else if (step->frame < keyframes[i + 1].frame) {
mult = (f32)(step->frame - keyframes[i].frame) / (f32)(keyframes[i + 1].frame - keyframes[i].frame);
newpos.x = keyframes[i].pos.x + (keyframes[i + 1].pos.x - keyframes[i].pos.x) * mult;
newpos.y = keyframes[i].pos.y + (keyframes[i + 1].pos.y - keyframes[i].pos.y) * mult;
newpos.z = keyframes[i].pos.z + (keyframes[i + 1].pos.z - keyframes[i].pos.z) * mult;
break;
} else {
// empty
}
}
if (!resetting) {
oldpos.x = prop->pos.x;
oldpos.y = prop->pos.y;
oldpos.z = prop->pos.z;
cdGetPropsOnPlatform(prop, propnums, ARRAYCOUNT(propnums));
step->prevpos.x = prop->pos.x;
step->prevpos.y = prop->pos.y;
step->prevpos.z = prop->pos.z;
} else {
step->prevpos.x = newpos.f[0];
step->prevpos.y = newpos.f[1];
step->prevpos.z = newpos.f[2];
}
prop->pos.x = newpos.x;
prop->pos.y = newpos.y;
prop->pos.z = newpos.z;
if ((obj->flags & OBJFLAG_ILLUMINATED) == 0) {
cd0002a36c(&prop->pos, prop->rooms, &obj->floorcol, 0);
}
func0f069c70(obj, true, true);
if (!resetting) {
platformDisplaceProps(prop, propnums, &oldpos, &prop->pos);
}
}
void cctvTick(struct prop *camprop)
{
struct cctvobj *camera = (struct cctvobj *)camprop->obj;
struct defaultobj *obj = camprop->obj;
f32 yaw;
struct prop *playerprop;
f32 xdist;
f32 ydist;
f32 zdist;
bool canseeplayer = true;
// If playing in coop mode, cycle between players in alternating frames
if (g_Vars.coopplayernum >= 0) {
if (g_Vars.lvframenum & 1) {
playerprop = g_Vars.bond->prop;
} else {
playerprop = g_Vars.coop->prop;
}
} else {
playerprop = g_Vars.bond->prop;
}
// Check distance
xdist = playerprop->pos.x - camprop->pos.x;
ydist = playerprop->pos.y - camprop->pos.y;
zdist = playerprop->pos.z - camprop->pos.z;
yaw = camera->toleft ? camera->yleft : camera->yright;
if (camera->maxdist > 0) {
if (xdist * xdist + ydist * ydist + zdist * zdist > camera->maxdist * camera->maxdist) {
canseeplayer = false;
}
}
if (g_Vars.bondvisible == false
|| (obj->flags & OBJFLAG_CAMERA_DISABLED)
|| (playerprop->chr->hidden & CHRHFLAG_CLOAKED)) {
canseeplayer = false;
}
// Check horizontal angle
if (canseeplayer) {
f32 angle = atan2f(xdist, zdist);
f32 yrot = camera->yrot;
f32 finalangle;
if (yrot < 0) {
yrot += M_BADTAU;
} else if (yrot >= M_BADTAU) {
yrot -= M_BADTAU;
}
yrot += camera->yzero;
if (yrot >= M_BADTAU) {
yrot -= M_BADTAU;
}
finalangle = angle - yrot;
if (angle < yrot) {
finalangle += M_BADTAU;
}
finalangle -= M_BADPI;
if (finalangle < 0) {
finalangle += M_BADTAU;
}
if (finalangle > M_BADPI) {
finalangle -= M_BADTAU;
}
if (finalangle > 0.7852731347084f || finalangle < -0.7852731347084f) {
canseeplayer = false;
}
}
// Check vertical angle
if (canseeplayer) {
f32 angle = atan2f(ydist, sqrtf(xdist * xdist + zdist * zdist));
f32 finalangle = angle - camera->xzero;
if (angle < camera->xzero) {
finalangle = angle - camera->xzero + M_BADTAU;
}
if (finalangle > M_BADTAU) {
finalangle -= M_BADTAU;
}
if (finalangle > M_BADPI) {
finalangle -= M_BADTAU;
}
if (finalangle);
if (finalangle > 0.7852731347084f || finalangle < -0.7852731347084f) {
canseeplayer = false;
}
}
// Check line of sight
if (canseeplayer) {
playerSetPerimEnabled(playerprop, false);
if (!cdHasLineOfSight(&camprop->pos, camprop->rooms, &playerprop->pos, playerprop->rooms, 315, 8)) {
canseeplayer = false;
}
playerSetPerimEnabled(playerprop, true);
}
if (canseeplayer) {
obj->flags |= OBJFLAG_CAMERA_BONDINVIEW;
camera->seebondtime60 += g_Vars.lvupdate240_60;
if (g_Vars.coopplayernum >= 0) {
camera->seebondtime60 += g_Vars.lvupdate240_60;
}
if (camera->seebondtime60 >= (s32)(TICKS(300) * g_CameraWaitMultiplier)) {
alarmActivate();
camera->seebondtime60 = 0;
}
} else {
obj->flags &= ~OBJFLAG_CAMERA_BONDINVIEW;
}
// Update yaw
if (camera->yrot < yaw) {
f32 tmp = camera->yspeed * camera->yspeed * 764.06536865234f;
if (camera->yrot >= yaw - tmp) {
camera->yspeed -= 0.00065439427271485f * g_Vars.lvupdate240freal;
if (camera->yspeed < 0.00065439427271485f) {
camera->yspeed = 0.00065439427271485f;
}
} else if (camera->yspeed < camera->ymaxspeed) {
f32 newspeed = camera->yspeed + 0.00065439427271485f * g_Vars.lvupdate240freal;
if (newspeed > camera->ymaxspeed) {
newspeed = camera->ymaxspeed;
}
if (camera->yrot < yaw - newspeed * newspeed * 764.06536865234f) {
camera->yspeed = newspeed;
}
}
camera->yrot += camera->yspeed * g_Vars.lvupdate240freal;
if (camera->yrot >= yaw) {
camera->yrot = yaw;
camera->toleft = false;
camera->yspeed = 0;
}
} else {
f32 tmp = camera->yspeed * camera->yspeed * 764.06536865234f;
if (camera->yrot <= yaw + tmp) {
camera->yspeed -= 0.00065439427271485f * g_Vars.lvupdate240freal;
if (camera->yspeed < 0.00065439427271485f) {
camera->yspeed = 0.00065439427271485f;
}
} else if (camera->yspeed < camera->ymaxspeed) {
f32 newspeed = camera->yspeed + 0.00065439427271485f * g_Vars.lvupdate240freal;
if (newspeed > camera->ymaxspeed) {
newspeed = camera->ymaxspeed;
}
if (camera->yrot > yaw + newspeed * newspeed * 764.06536865234f) {
camera->yspeed = newspeed;
}
}
camera->yrot -= camera->yspeed * g_Vars.lvupdate240freal;
if (camera->yrot <= yaw) {
camera->yrot = yaw;
camera->toleft = true;
camera->yspeed = 0;
}
}
}
void cctvInitMatrices(struct prop *prop, Mtxf *mtx)
{
struct cctvobj *cctv = (struct cctvobj *)prop->obj;
struct model *model = cctv->base.model;
Mtxf *matrices = model->matrices;
union modelrodata *rodata = modelGetPartRodata(model->filedata, MODELPART_CCTV_CASING);
struct coord sp64;
Mtxf sp24;
f32 yrot = cctv->yrot;
if (yrot < 0) {
yrot += M_BADTAU;
} else if (yrot >= M_BADTAU) {
yrot -= M_BADTAU;
}
mtx4LoadYRotation(yrot, &sp24);
mtx4MultMtx4(&sp24, &cctv->camrotm, &matrices[1]);
sp64.x = rodata->position.pos.x;
sp64.y = rodata->position.pos.y;
sp64.z = rodata->position.pos.z;
mtx4TransformVecInPlace(mtx, &sp64);
mtx4SetTranslation(&sp64, &matrices[1]);
mtx00015be0(camGetWorldToScreenMtxf(), &matrices[1]);
}
void fanTick(struct prop *prop)
{
struct defaultobj *obj = (struct defaultobj *)prop->obj;
struct fanobj *fan = (struct fanobj *)prop->obj;
// If activated, toggle the power state
if (obj->hidden & (OBJHFLAG_ACTIVATED_BY_BOND | OBJHFLAG_ACTIVATED_BY_COOP)) {
if (fan->on == true) {
fan->on = false;
obj->hidden &= ~(OBJHFLAG_ACTIVATED_BY_BOND | OBJHFLAG_ACTIVATED_BY_COOP);
} else {
fan->on = true;
obj->hidden &= ~(OBJHFLAG_ACTIVATED_BY_BOND | OBJHFLAG_ACTIVATED_BY_COOP);
}
}
// Adjust fan speed
if (fan->on == true) {
// Accelerating
fan->yspeed += fan->yaccel * g_Vars.lvupdate240freal;
if (fan->yspeed > fan->ymaxspeed) {
fan->yspeed = fan->ymaxspeed;
}
} else if (fan->yspeed > 0) {
// Decelerating
s32 i;
for (i = 0; i < g_Vars.lvupdate240; i++) {
fan->yspeed -= fan->yaccel * 0.2f;
}
if (fan->yspeed <= fan->ymaxspeed * 0.01f) {
fan->yspeed = 0;
}
}
// Rotate
if (fan->yspeed > 0) {
fan->yrot += fan->yspeed * g_Vars.lvupdate240freal;
while (fan->yrot >= 1.5705462694168f) { // almost BADDEG2RAD(90)
fan->yrot -= 1.5705462694168f;
}
fan->yrotprev = fan->yrot;
}
}
void fanUpdateModel(struct prop *prop)
{
struct fanobj *fan = (struct fanobj *) prop->obj;
Mtxf sp6c;
f32 sp48[3][3];
f32 sp24[3][3];
f32 angle = fan->yspeed * g_Vars.lvupdate240freal;
while (angle >= M_BADTAU) {
angle -= M_BADTAU;
}
mtx4LoadYRotation(angle, &sp6c);
mtx4ToMtx3(&sp6c, sp48);
mtx00016140(fan->base.realrot, sp48, sp24);
mtx3Copy(sp24, fan->base.realrot);
}
#if PAL
GLOBAL_ASM(
glabel autogunTick
.late_rodata
glabel var7f1aa4c0
.word 0x3c8ef461
glabel var7f1aa4c4
.word 0x40c907a9
glabel var7f1aa4c8
.word 0x376a3783
glabel var7f1aa4cc
.word 0x3a5b940b
glabel var7f1aa4d0
.word 0x36ea3783
glabel var7f1aa4d4
.word 0x39db940b
glabel var7f1aa4d8
.word 0x40c907a9
glabel var7f1aa4dc
.word 0x376a3783
glabel var7f1aa4e0
.word 0x40c907a9
glabel var7f1aa4e4
.word 0x3a5b940b
glabel var7f1aa4e8
.word 0x36ea3783
glabel var7f1aa4ec
.word 0x40c907a9
glabel var7f1aa4f0
.word 0x39db940b
glabel var7f1aa4f4
.word 0x40c907a9
glabel var7f1aa4f8
.word 0x40c907a9
glabel var7f1aa4fc
.word 0x3ccddaca
glabel var7f1aa500
.word 0x358637bd
glabel var7f1aa504
.word 0x3c23606f
glabel var7f1aa508
.word 0x40c907a9
glabel var7f1aa50c
.word 0x40c907a9
glabel var7f1aa510
.word 0x40c907a9
glabel var7f1aa514
.word 0x404907a9
glabel var7f1aa518
.word 0x3f9c5b4b
glabel var7f1aa51c
.word 0xbf9c5b4b
glabel var7f1aa520
.word 0xc0490fdb
glabel var7f1aa524
.word 0x40490fdb
glabel var7f1aa528
.word 0x40c907a9
glabel var7f1aa52c
.word 0x40c907a9
glabel var7f1aa530
.word 0x40c907a9
glabel var7f1aa534
.word 0x40c907a9
glabel var7f1aa538
.word 0x40c907a9
glabel var7f1aa53c
.word 0x40c907a9
glabel var7f1aa540
.word 0x40c907a9
glabel var7f1aa544
.word 0x40c907a9
glabel var7f1aa548
.word 0x40c907a9
glabel var7f1aa54c
.word 0x3d80a8be
glabel var7f1aa550
.word 0x40c907a9
glabel var7f1aa554
.word 0x3f4ccccd
glabel var7f1aa558
.word 0xc0490fdb
glabel var7f1aa55c
.word 0x40490fdb
glabel var7f1aa560
.word 0x3a893c87
glabel var7f1aa564
.word 0x3a893c87
glabel var7f1aa568
.word 0x40c907a9
glabel var7f1aa56c
.word 0x40c907a9
glabel var7f1aa570
.word 0x404907a9
glabel var7f1aa574
.word 0x3f192a68
glabel var7f1aa578
.word 0x3c23606f
glabel var7f1aa57c
.word 0x3f7d70a4
glabel var7f1aa580
.word 0x38d1b717
.text
/* f078c78: 27bdff50 */ addiu $sp,$sp,-176
/* f078c7c: afbf001c */ sw $ra,0x1c($sp)
/* f078c80: afa400b0 */ sw $a0,0xb0($sp)
/* f078c84: 8c820004 */ lw $v0,0x4($a0)
/* f078c88: 44802000 */ mtc1 $zero,$f4
/* f078c8c: afa0007c */ sw $zero,0x7c($sp)
/* f078c90: afa00078 */ sw $zero,0x78($sp)
/* f078c94: afa00074 */ sw $zero,0x74($sp)
/* f078c98: afa200a8 */ sw $v0,0xa8($sp)
/* f078c9c: e7a40070 */ swc1 $f4,0x70($sp)
/* f078ca0: 8c4f000c */ lw $t7,0xc($v0)
/* f078ca4: 00001825 */ or $v1,$zero,$zero
/* f078ca8: 8fac00a8 */ lw $t4,0xa8($sp)
/* f078cac: 000fc000 */ sll $t8,$t7,0x0
/* f078cb0: 0701005a */ bgez $t8,.L0f078e1c
/* f078cb4: 00404025 */ or $t0,$v0,$zero
/* f078cb8: 000f5840 */ sll $t3,$t7,0x1
/* f078cbc: 05630008 */ bgezl $t3,.L0f078ce0
/* f078cc0: c5020060 */ lwc1 $f2,0x60($t0)
/* f078cc4: c448006c */ lwc1 $f8,0x6c($v0)
/* f078cc8: c4460078 */ lwc1 $f6,0x78($v0)
/* f078ccc: e4480060 */ swc1 $f8,0x60($v0)
/* f078cd0: c4420060 */ lwc1 $f2,0x60($v0)
/* f078cd4: 10000037 */ b .L0f078db4
/* f078cd8: e4460074 */ swc1 $f6,0x74($v0)
/* f078cdc: c5020060 */ lwc1 $f2,0x60($t0)
.L0f078ce0:
/* f078ce0: c50a006c */ lwc1 $f10,0x6c($t0)
/* f078ce4: 460a1032 */ c.eq.s $f2,$f10
/* f078ce8: 00000000 */ nop
/* f078cec: 45000031 */ bc1f .L0f078db4
/* f078cf0: 00000000 */ nop
/* f078cf4: c5040074 */ lwc1 $f4,0x74($t0)
/* f078cf8: c5060078 */ lwc1 $f6,0x78($t0)
/* f078cfc: 46062032 */ c.eq.s $f4,$f6
/* f078d00: 00000000 */ nop
/* f078d04: 4500002b */ bc1f .L0f078db4
/* f078d08: 00000000 */ nop
/* f078d0c: 0c004b70 */ jal random
/* f078d10: afa800ac */ sw $t0,0xac($sp)
/* f078d14: 44824000 */ mtc1 $v0,$f8
/* f078d18: 8fa800ac */ lw $t0,0xac($sp)
/* f078d1c: 04410005 */ bgez $v0,.L0f078d34
/* f078d20: 468042a0 */ cvt.s.w $f10,$f8
/* f078d24: 3c014f80 */ lui $at,0x4f80
/* f078d28: 44812000 */ mtc1 $at,$f4
/* f078d2c: 00000000 */ nop
/* f078d30: 46045280 */ add.s $f10,$f10,$f4
.L0f078d34:
/* f078d34: 3c012f80 */ lui $at,0x2f80
/* f078d38: 44813000 */ mtc1 $at,$f6
/* f078d3c: 3c01421c */ lui $at,0x421c
/* f078d40: 44812000 */ mtc1 $at,$f4
/* f078d44: 46065202 */ mul.s $f8,$f10,$f6
/* f078d48: 3c013f80 */ lui $at,0x3f80
/* f078d4c: 44813000 */ mtc1 $at,$f6
/* f078d50: 3c017f1b */ lui $at,%hi(var7f1aa4c0)
/* f078d54: 46044282 */ mul.s $f10,$f8,$f4
/* f078d58: c424a4c0 */ lwc1 $f4,%lo(var7f1aa4c0)($at)
/* f078d5c: 46065200 */ add.s $f8,$f10,$f6
/* f078d60: 46044282 */ mul.s $f10,$f8,$f4
/* f078d64: 0c004b70 */ jal random
/* f078d68: e50a0074 */ swc1 $f10,0x74($t0)
/* f078d6c: 44823000 */ mtc1 $v0,$f6
/* f078d70: 3c017f1b */ lui $at,%hi(var7f1aa4c4)
/* f078d74: c430a4c4 */ lwc1 $f16,%lo(var7f1aa4c4)($at)
/* f078d78: 8fa800ac */ lw $t0,0xac($sp)
/* f078d7c: 04410005 */ bgez $v0,.L0f078d94
/* f078d80: 46803220 */ cvt.s.w $f8,$f6
/* f078d84: 3c014f80 */ lui $at,0x4f80
/* f078d88: 44812000 */ mtc1 $at,$f4
/* f078d8c: 00000000 */ nop
/* f078d90: 46044200 */ add.s $f8,$f8,$f4
.L0f078d94:
/* f078d94: 3c012f80 */ lui $at,0x2f80
/* f078d98: 44815000 */ mtc1 $at,$f10
/* f078d9c: 00000000 */ nop
/* f078da0: 460a4182 */ mul.s $f6,$f8,$f10
/* f078da4: 00000000 */ nop
/* f078da8: 46103102 */ mul.s $f4,$f6,$f16
/* f078dac: e5040060 */ swc1 $f4,0x60($t0)
/* f078db0: c5020060 */ lwc1 $f2,0x60($t0)
.L0f078db4:
/* f078db4: 3c017f1b */ lui $at,%hi(var7f1aa4c8)
/* f078db8: c420a4c8 */ lwc1 $f0,%lo(var7f1aa4c8)($at)
/* f078dbc: 3c017f1b */ lui $at,%hi(var7f1aa4cc)
/* f078dc0: c428a4cc */ lwc1 $f8,%lo(var7f1aa4cc)($at)
/* f078dc4: 44051000 */ mfc1 $a1,$f2
/* f078dc8: 44070000 */ mfc1 $a3,$f0
/* f078dcc: 2504006c */ addiu $a0,$t0,0x6c
/* f078dd0: 25060070 */ addiu $a2,$t0,0x70
/* f078dd4: afa800ac */ sw $t0,0xac($sp)
/* f078dd8: e7a00010 */ swc1 $f0,0x10($sp)
/* f078ddc: 0fc1b6c0 */ jal applyRotation
/* f078de0: e7a80014 */ swc1 $f8,0x14($sp)
/* f078de4: 3c017f1b */ lui $at,%hi(var7f1aa4d0)
/* f078de8: c420a4d0 */ lwc1 $f0,%lo(var7f1aa4d0)($at)
/* f078dec: 8fa800ac */ lw $t0,0xac($sp)
/* f078df0: 3c017f1b */ lui $at,%hi(var7f1aa4d4)
/* f078df4: c42aa4d4 */ lwc1 $f10,%lo(var7f1aa4d4)($at)
/* f078df8: 44070000 */ mfc1 $a3,$f0
/* f078dfc: 8d050074 */ lw $a1,0x74($t0)
/* f078e00: e7a00010 */ swc1 $f0,0x10($sp)
/* f078e04: 25040078 */ addiu $a0,$t0,0x78
/* f078e08: 2506007c */ addiu $a2,$t0,0x7c
/* f078e0c: 0fc1b6c0 */ jal applyRotation
/* f078e10: e7aa0014 */ swc1 $f10,0x14($sp)
/* f078e14: 100003a0 */ b .L0f079c98
/* f078e18: 8fbf001c */ lw $ra,0x1c($sp)
.L0f078e1c:
/* f078e1c: 8d82000c */ lw $v0,0xc($t4)
/* f078e20: 00026880 */ sll $t5,$v0,0x2
/* f078e24: 05a10073 */ bgez $t5,.L0f078ff4
/* f078e28: 00027040 */ sll $t6,$v0,0x1
/* f078e2c: 05c30008 */ bgezl $t6,.L0f078e50
/* f078e30: c5020060 */ lwc1 $f2,0x60($t0)
/* f078e34: c504006c */ lwc1 $f4,0x6c($t0)
/* f078e38: c5060078 */ lwc1 $f6,0x78($t0)
/* f078e3c: e5040060 */ swc1 $f4,0x60($t0)
/* f078e40: c5020060 */ lwc1 $f2,0x60($t0)
/* f078e44: 1000001b */ b .L0f078eb4
/* f078e48: e5060074 */ swc1 $f6,0x74($t0)
/* f078e4c: c5020060 */ lwc1 $f2,0x60($t0)
.L0f078e50:
/* f078e50: c508006c */ lwc1 $f8,0x6c($t0)
/* f078e54: 46081032 */ c.eq.s $f2,$f8
/* f078e58: 00000000 */ nop
/* f078e5c: 45000015 */ bc1f .L0f078eb4
/* f078e60: 00000000 */ nop
/* f078e64: 0c004b70 */ jal random
/* f078e68: afa800ac */ sw $t0,0xac($sp)
/* f078e6c: 44825000 */ mtc1 $v0,$f10
/* f078e70: 3c017f1b */ lui $at,%hi(var7f1aa4d8)
/* f078e74: c430a4d8 */ lwc1 $f16,%lo(var7f1aa4d8)($at)
/* f078e78: 8fa800ac */ lw $t0,0xac($sp)
/* f078e7c: 04410005 */ bgez $v0,.L0f078e94
/* f078e80: 468051a0 */ cvt.s.w $f6,$f10
/* f078e84: 3c014f80 */ lui $at,0x4f80
/* f078e88: 44812000 */ mtc1 $at,$f4
/* f078e8c: 00000000 */ nop
/* f078e90: 46043180 */ add.s $f6,$f6,$f4
.L0f078e94:
/* f078e94: 3c012f80 */ lui $at,0x2f80
/* f078e98: 44814000 */ mtc1 $at,$f8
/* f078e9c: 00000000 */ nop
/* f078ea0: 46083282 */ mul.s $f10,$f6,$f8
/* f078ea4: 00000000 */ nop
/* f078ea8: 46105102 */ mul.s $f4,$f10,$f16
/* f078eac: e5040060 */ swc1 $f4,0x60($t0)
/* f078eb0: c5020060 */ lwc1 $f2,0x60($t0)
.L0f078eb4:
/* f078eb4: 3c017f1b */ lui $at,%hi(var7f1aa4dc)
/* f078eb8: c420a4dc */ lwc1 $f0,%lo(var7f1aa4dc)($at)
/* f078ebc: 3c017f1b */ lui $at,%hi(var7f1aa4e4)
/* f078ec0: c426a4e4 */ lwc1 $f6,%lo(var7f1aa4e4)($at)
/* f078ec4: 44051000 */ mfc1 $a1,$f2
/* f078ec8: 44070000 */ mfc1 $a3,$f0
/* f078ecc: 2504006c */ addiu $a0,$t0,0x6c
/* f078ed0: 25060070 */ addiu $a2,$t0,0x70
/* f078ed4: afa800ac */ sw $t0,0xac($sp)
/* f078ed8: e7a00010 */ swc1 $f0,0x10($sp)
/* f078edc: 0fc1b6c0 */ jal applyRotation
/* f078ee0: e7a60014 */ swc1 $f6,0x14($sp)
/* f078ee4: 3c017f1b */ lui $at,%hi(var7f1aa4e8)
/* f078ee8: c420a4e8 */ lwc1 $f0,%lo(var7f1aa4e8)($at)
/* f078eec: 8fa800ac */ lw $t0,0xac($sp)
/* f078ef0: 3c017f1b */ lui $at,%hi(var7f1aa4f0)
/* f078ef4: c428a4f0 */ lwc1 $f8,%lo(var7f1aa4f0)($at)
/* f078ef8: 44070000 */ mfc1 $a3,$f0
/* f078efc: 8d050074 */ lw $a1,0x74($t0)
/* f078f00: e7a00010 */ swc1 $f0,0x10($sp)
/* f078f04: 25040078 */ addiu $a0,$t0,0x78
/* f078f08: 2506007c */ addiu $a2,$t0,0x7c
/* f078f0c: 0fc1b6c0 */ jal applyRotation
/* f078f10: e7a80014 */ swc1 $f8,0x14($sp)
/* f078f14: 8fa800ac */ lw $t0,0xac($sp)
/* f078f18: 0c0068f4 */ jal cosf
/* f078f1c: c50c006c */ lwc1 $f12,0x6c($t0)
/* f078f20: 44807000 */ mtc1 $zero,$f14
/* f078f24: 3c017f1b */ lui $at,%hi(var7f1aa4f8)
/* f078f28: c430a4f8 */ lwc1 $f16,%lo(var7f1aa4f8)($at)
/* f078f2c: 4600703c */ c.lt.s $f14,$f0
/* f078f30: 3c09800a */ lui $t1,%hi(g_Vars)
/* f078f34: 8fa800ac */ lw $t0,0xac($sp)
/* f078f38: 3c017f1b */ lui $at,%hi(var7f1aa4fc)
/* f078f3c: 45000006 */ bc1f .L0f078f58
/* f078f40: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f078f44: 3c017f1b */ lui $at,%hi(var7f1aa500)
/* f078f48: c42aa4fc */ lwc1 $f10,%lo(var7f1aa4fc)($at)
/* f078f4c: 46005302 */ mul.s $f12,$f10,$f0
/* f078f50: 10000002 */ b .L0f078f5c
/* f078f54: 00000000 */ nop
.L0f078f58:
/* f078f58: c42ca500 */ lwc1 $f12,%lo(var7f1aa500)($at)
.L0f078f5c:
/* f078f5c: 3c017f1b */ lui $at,%hi(var7f1aa504)
/* f078f60: c424a504 */ lwc1 $f4,%lo(var7f1aa504)($at)
/* f078f64: c526004c */ lwc1 $f6,0x4c($t1)
/* f078f68: c50a0088 */ lwc1 $f10,0x88($t0)
/* f078f6c: 46062202 */ mul.s $f8,$f4,$f6
/* f078f70: 46085100 */ add.s $f4,$f10,$f8
/* f078f74: e5040088 */ swc1 $f4,0x88($t0)
/* f078f78: c5020088 */ lwc1 $f2,0x88($t0)
/* f078f7c: 4602603c */ c.lt.s $f12,$f2
/* f078f80: 00000000 */ nop
/* f078f84: 45020004 */ bc1fl .L0f078f98
/* f078f88: 4602703c */ c.lt.s $f14,$f2
/* f078f8c: e50c0088 */ swc1 $f12,0x88($t0)
/* f078f90: c5020088 */ lwc1 $f2,0x88($t0)
/* f078f94: 4602703c */ c.lt.s $f14,$f2
.L0f078f98:
/* f078f98: 3c09800a */ lui $t1,%hi(g_Vars)
/* f078f9c: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f078fa0: 4502033d */ bc1fl .L0f079c98
/* f078fa4: 8fbf001c */ lw $ra,0x1c($sp)
/* f078fa8: c52a004c */ lwc1 $f10,0x4c($t1)
/* f078fac: c506008c */ lwc1 $f6,0x8c($t0)
/* f078fb0: 460a1202 */ mul.s $f8,$f2,$f10
/* f078fb4: 46083100 */ add.s $f4,$f6,$f8
/* f078fb8: e504008c */ swc1 $f4,0x8c($t0)
/* f078fbc: c500008c */ lwc1 $f0,0x8c($t0)
/* f078fc0: 4600803e */ c.le.s $f16,$f0
/* f078fc4: 00000000 */ nop
/* f078fc8: 45020333 */ bc1fl .L0f079c98
/* f078fcc: 8fbf001c */ lw $ra,0x1c($sp)
/* f078fd0: 46100281 */ sub.s $f10,$f0,$f16
.L0f078fd4:
/* f078fd4: e50a008c */ swc1 $f10,0x8c($t0)
/* f078fd8: c500008c */ lwc1 $f0,0x8c($t0)
/* f078fdc: 4600803e */ c.le.s $f16,$f0
/* f078fe0: 00000000 */ nop
/* f078fe4: 4503fffb */ bc1tl .L0f078fd4
/* f078fe8: 46100281 */ sub.s $f10,$f0,$f16
/* f078fec: 1000032a */ b .L0f079c98
/* f078ff0: 8fbf001c */ lw $ra,0x1c($sp)
.L0f078ff4:
/* f078ff4: 910f00a9 */ lbu $t7,0xa9($t0)
/* f078ff8: 15e00004 */ bnez $t7,.L0f07900c
/* f078ffc: 3c09800a */ lui $t1,%hi(g_Vars)
/* f079000: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f079004: 10000096 */ b .L0f079260
/* f079008: afa3006c */ sw $v1,0x6c($sp)
.L0f07900c:
/* f07900c: 8d0200a4 */ lw $v0,0xa4($t0)
/* f079010: 3c09800a */ lui $t1,%hi(g_Vars)
/* f079014: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f079018: 50400004 */ beqzl $v0,.L0f07902c
/* f07901c: afa3006c */ sw $v1,0x6c($sp)
/* f079020: 1000008f */ b .L0f079260
/* f079024: afa2006c */ sw $v0,0x6c($sp)
/* f079028: afa3006c */ sw $v1,0x6c($sp)
.L0f07902c:
/* f07902c: 0fc6830c */ jal frIsInTraining
/* f079030: afa800ac */ sw $t0,0xac($sp)
/* f079034: 1040000a */ beqz $v0,.L0f079060
/* f079038: 8fa800ac */ lw $t0,0xac($sp)
/* f07903c: 8fa400b0 */ lw $a0,0xb0($sp)
/* f079040: afa800ac */ sw $t0,0xac($sp)
/* f079044: 0fc67ce7 */ jal frChooseAutogunTarget
/* f079048: 24840008 */ addiu $a0,$a0,0x8
/* f07904c: 3c09800a */ lui $t1,%hi(g_Vars)
/* f079050: 8fa800ac */ lw $t0,0xac($sp)
/* f079054: afa2006c */ sw $v0,0x6c($sp)
/* f079058: 10000081 */ b .L0f079260
/* f07905c: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
.L0f079060:
/* f079060: 911800a8 */ lbu $t8,0xa8($t0)
/* f079064: 3c09800a */ lui $t1,%hi(g_Vars)
/* f079068: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f07906c: 5300006b */ beqzl $t8,.L0f07921c
/* f079070: 8d2e0298 */ lw $t6,0x298($t1)
/* f079074: 3c09800a */ lui $t1,%hi(g_Vars)
/* f079078: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f07907c: 8d390318 */ lw $t9,0x318($t1)
/* f079080: 3c05800b */ lui $a1,%hi(g_MpNumChrs)
/* f079084: 13200003 */ beqz $t9,.L0f079094
/* f079088: 00000000 */ nop
/* f07908c: 10000007 */ b .L0f0790ac
/* f079090: 8ca5c530 */ lw $a1,%lo(g_MpNumChrs)($a1)
.L0f079094:
/* f079094: 0fc07934 */ jal chrsGetNumSlots
/* f079098: afa800ac */ sw $t0,0xac($sp)
/* f07909c: 3c09800a */ lui $t1,%hi(g_Vars)
/* f0790a0: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f0790a4: 8fa800ac */ lw $t0,0xac($sp)
/* f0790a8: 00402825 */ or $a1,$v0,$zero
.L0f0790ac:
/* f0790ac: 850300aa */ lh $v1,0xaa($t0)
.L0f0790b0:
/* f0790b0: 246a0001 */ addiu $t2,$v1,0x1
.L0f0790b4:
/* f0790b4: a50a00aa */ sh $t2,0xaa($t0)
/* f0790b8: 850300aa */ lh $v1,0xaa($t0)
/* f0790bc: 8fad00a8 */ lw $t5,0xa8($sp)
/* f0790c0: 3c198006 */ lui $t9,%hi(g_ChrSlots)
/* f0790c4: 0065082a */ slt $at,$v1,$a1
/* f0790c8: 14200004 */ bnez $at,.L0f0790dc
/* f0790cc: 0003c0c0 */ sll $t8,$v1,0x3
/* f0790d0: 240bffff */ addiu $t3,$zero,-1
/* f0790d4: 10000062 */ b .L0f079260
/* f0790d8: a50b00aa */ sh $t3,0xaa($t0)
.L0f0790dc:
/* f0790dc: 8d2c0318 */ lw $t4,0x318($t1)
/* f0790e0: 0303c023 */ subu $t8,$t8,$v1
/* f0790e4: 0018c080 */ sll $t8,$t8,0x2
/* f0790e8: 1180001c */ beqz $t4,.L0f07915c
/* f0790ec: 0303c023 */ subu $t8,$t8,$v1
/* f0790f0: 8da20040 */ lw $v0,0x40($t5)
/* f0790f4: 3c01f000 */ lui $at,0xf000
/* f0790f8: 0003c080 */ sll $t8,$v1,0x2
/* f0790fc: 00417024 */ and $t6,$v0,$at
/* f079100: 000e7f02 */ srl $t7,$t6,0x1c
/* f079104: 11e3ffea */ beq $t7,$v1,.L0f0790b0
/* f079108: 3c04800b */ lui $a0,%hi(g_MpAllChrPtrs)
/* f07910c: 00982021 */ addu $a0,$a0,$t8
/* f079110: 8c84c4d0 */ lw $a0,%lo(g_MpAllChrPtrs)($a0)
/* f079114: 8c99001c */ lw $t9,0x1c($a0)
/* f079118: 5320ffe6 */ beqzl $t9,.L0f0790b4
/* f07911c: 246a0001 */ addiu $t2,$v1,0x1
/* f079120: 8c8a0020 */ lw $t2,0x20($a0)
/* f079124: 3c0b800b */ lui $t3,%hi(g_MpSetup+0xc)
/* f079128: 5140ffe2 */ beqzl $t2,.L0f0790b4
/* f07912c: 246a0001 */ addiu $t2,$v1,0x1
/* f079130: 8d6bcb94 */ lw $t3,%lo(g_MpSetup+0xc)($t3)
/* f079134: 316c0002 */ andi $t4,$t3,0x2
/* f079138: 51800021 */ beqzl $t4,.L0f0791c0
/* f07913c: 8c990018 */ lw $t9,0x18($a0)
/* f079140: 908d0125 */ lbu $t5,0x125($a0)
/* f079144: 910e00a8 */ lbu $t6,0xa8($t0)
/* f079148: 01ae7824 */ and $t7,$t5,$t6
/* f07914c: 55e0001c */ bnezl $t7,.L0f0791c0
/* f079150: 8c990018 */ lw $t9,0x18($a0)
/* f079154: 1000ffd7 */ b .L0f0790b4
/* f079158: 246a0001 */ addiu $t2,$v1,0x1
.L0f07915c:
/* f07915c: 8f392988 */ lw $t9,%lo(g_ChrSlots)($t9)
/* f079160: 0018c080 */ sll $t8,$t8,0x2
/* f079164: 0303c021 */ addu $t8,$t8,$v1
/* f079168: 0018c0c0 */ sll $t8,$t8,0x3
/* f07916c: 03192021 */ addu $a0,$t8,$t9
/* f079170: 8c82001c */ lw $v0,0x1c($a0)
/* f079174: 5040ffcf */ beqzl $v0,.L0f0790b4
/* f079178: 246a0001 */ addiu $t2,$v1,0x1
/* f07917c: 908a0125 */ lbu $t2,0x125($a0)
/* f079180: 910b00a8 */ lbu $t3,0xa8($t0)
/* f079184: 014b6024 */ and $t4,$t2,$t3
/* f079188: 5180ffca */ beqzl $t4,.L0f0790b4
/* f07918c: 246a0001 */ addiu $t2,$v1,0x1
/* f079190: 8c8d0020 */ lw $t5,0x20($a0)
/* f079194: 51a00006 */ beqzl $t5,.L0f0791b0
/* f079198: 90580000 */ lbu $t8,0x0($v0)
/* f07919c: 904e0001 */ lbu $t6,0x1($v0)
/* f0791a0: 31cf0004 */ andi $t7,$t6,0x4
/* f0791a4: 55e00006 */ bnezl $t7,.L0f0791c0
/* f0791a8: 8c990018 */ lw $t9,0x18($a0)
/* f0791ac: 90580000 */ lbu $t8,0x0($v0)
.L0f0791b0:
/* f0791b0: 24010006 */ addiu $at,$zero,0x6
/* f0791b4: 5701ffbf */ bnel $t8,$at,.L0f0790b4
/* f0791b8: 246a0001 */ addiu $t2,$v1,0x1
/* f0791bc: 8c990018 */ lw $t9,0x18($a0)
.L0f0791c0:
/* f0791c0: 332a0400 */ andi $t2,$t9,0x400
/* f0791c4: 15400012 */ bnez $t2,.L0f079210
/* f0791c8: 00000000 */ nop
/* f0791cc: 8c8b0014 */ lw $t3,0x14($a0)
/* f0791d0: 000b6080 */ sll $t4,$t3,0x2
/* f0791d4: 0580000e */ bltz $t4,.L0f079210
/* f0791d8: 00000000 */ nop
/* f0791dc: afa40058 */ sw $a0,0x58($sp)
/* f0791e0: afa5005c */ sw $a1,0x5c($sp)
/* f0791e4: 0fc0e6a5 */ jal chrIsDead
/* f0791e8: afa800ac */ sw $t0,0xac($sp)
/* f0791ec: 3c09800a */ lui $t1,%hi(g_Vars)
/* f0791f0: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f0791f4: 8fa40058 */ lw $a0,0x58($sp)
/* f0791f8: 8fa5005c */ lw $a1,0x5c($sp)
/* f0791fc: 14400004 */ bnez $v0,.L0f079210
/* f079200: 8fa800ac */ lw $t0,0xac($sp)
/* f079204: 8c8d001c */ lw $t5,0x1c($a0)
/* f079208: 10000015 */ b .L0f079260
/* f07920c: afad006c */ sw $t5,0x6c($sp)
.L0f079210:
/* f079210: 1000ffa7 */ b .L0f0790b0
/* f079214: 850300aa */ lh $v1,0xaa($t0)
/* f079218: 8d2e0298 */ lw $t6,0x298($t1)
.L0f07921c:
/* f07921c: 05c2000e */ bltzl $t6,.L0f079258
/* f079220: 8d2d02a0 */ lw $t5,0x2a0($t1)
/* f079224: 8d2f000c */ lw $t7,0xc($t1)
/* f079228: 31f80001 */ andi $t8,$t7,0x1
/* f07922c: 53000006 */ beqzl $t8,.L0f079248
/* f079230: 8d2b02a4 */ lw $t3,0x2a4($t1)
/* f079234: 8d3902a0 */ lw $t9,0x2a0($t1)
/* f079238: 8f2a00bc */ lw $t2,0xbc($t9)
/* f07923c: 10000008 */ b .L0f079260
/* f079240: afaa006c */ sw $t2,0x6c($sp)
/* f079244: 8d2b02a4 */ lw $t3,0x2a4($t1)
.L0f079248:
/* f079248: 8d6c00bc */ lw $t4,0xbc($t3)
/* f07924c: 10000004 */ b .L0f079260
/* f079250: afac006c */ sw $t4,0x6c($sp)
/* f079254: 8d2d02a0 */ lw $t5,0x2a0($t1)
.L0f079258:
/* f079258: 8dae00bc */ lw $t6,0xbc($t5)
/* f07925c: afae006c */ sw $t6,0x6c($sp)
.L0f079260:
/* f079260: 8fa3006c */ lw $v1,0x6c($sp)
/* f079264: 50600016 */ beqzl $v1,.L0f0792c0
/* f079268: 8fa3006c */ lw $v1,0x6c($sp)
/* f07926c: 8c6f0004 */ lw $t7,0x4($v1)
/* f079270: 55e00004 */ bnezl $t7,.L0f079284
/* f079274: 90620000 */ lbu $v0,0x0($v1)
/* f079278: 10000010 */ b .L0f0792bc
/* f07927c: afa0006c */ sw $zero,0x6c($sp)
/* f079280: 90620000 */ lbu $v0,0x0($v1)
.L0f079284:
/* f079284: 24010003 */ addiu $at,$zero,0x3
/* f079288: afa3006c */ sw $v1,0x6c($sp)
/* f07928c: 1041000b */ beq $v0,$at,.L0f0792bc
/* f079290: 24010006 */ addiu $at,$zero,0x6
/* f079294: 10410009 */ beq $v0,$at,.L0f0792bc
/* f079298: afa3006c */ sw $v1,0x6c($sp)
/* f07929c: afa3006c */ sw $v1,0x6c($sp)
/* f0792a0: 0fc6830c */ jal frIsInTraining
/* f0792a4: afa800ac */ sw $t0,0xac($sp)
/* f0792a8: 3c09800a */ lui $t1,%hi(g_Vars)
/* f0792ac: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f0792b0: 14400002 */ bnez $v0,.L0f0792bc
/* f0792b4: 8fa800ac */ lw $t0,0xac($sp)
/* f0792b8: afa0006c */ sw $zero,0x6c($sp)
.L0f0792bc:
/* f0792bc: 8fa3006c */ lw $v1,0x6c($sp)
.L0f0792c0:
/* f0792c0: c5060074 */ lwc1 $f6,0x74($t0)
/* f0792c4: c5120060 */ lwc1 $f18,0x60($t0)
/* f0792c8: 10600152 */ beqz $v1,.L0f079814
/* f0792cc: e7a600a0 */ swc1 $f6,0xa0($sp)
/* f0792d0: 8fb800b0 */ lw $t8,0xb0($sp)
/* f0792d4: c46e0008 */ lwc1 $f14,0x8($v1)
/* f0792d8: 90790000 */ lbu $t9,0x0($v1)
/* f0792dc: c70c0008 */ lwc1 $f12,0x8($t8)
/* f0792e0: c46a000c */ lwc1 $f10,0xc($v1)
/* f0792e4: c708000c */ lwc1 $f8,0xc($t8)
/* f0792e8: 460c7081 */ sub.s $f2,$f14,$f12
/* f0792ec: c46c0010 */ lwc1 $f12,0x10($v1)
/* f0792f0: c70e0010 */ lwc1 $f14,0x10($t8)
/* f0792f4: 46085001 */ sub.s $f0,$f10,$f8
/* f0792f8: 24010006 */ addiu $at,$zero,0x6
/* f0792fc: 17210005 */ bne $t9,$at,.L0f079314
/* f079300: 460e6401 */ sub.s $f16,$f12,$f14
/* f079304: 3c0141a0 */ lui $at,0x41a0
/* f079308: 44815000 */ mtc1 $at,$f10
/* f07930c: 00000000 */ nop
/* f079310: 460a0001 */ sub.s $f0,$f0,$f10
.L0f079314:
/* f079314: 46021182 */ mul.s $f6,$f2,$f2
/* f079318: afa3006c */ sw $v1,0x6c($sp)
/* f07931c: afa800ac */ sw $t0,0xac($sp)
/* f079320: 46108202 */ mul.s $f8,$f16,$f16
/* f079324: e7a00090 */ swc1 $f0,0x90($sp)
/* f079328: e7a20094 */ swc1 $f2,0x94($sp)
/* f07932c: e7b0008c */ swc1 $f16,0x8c($sp)
/* f079330: e7b200a4 */ swc1 $f18,0xa4($sp)
/* f079334: 46083300 */ add.s $f12,$f6,$f8
/* f079338: e7ac0088 */ swc1 $f12,0x88($sp)
/* f07933c: 0c012974 */ jal sqrtf
/* f079340: e7ac0024 */ swc1 $f12,0x24($sp)
/* f079344: 8faa00a8 */ lw $t2,0xa8($sp)
/* f079348: e7a00080 */ swc1 $f0,0x80($sp)
/* f07934c: 8fa800ac */ lw $t0,0xac($sp)
/* f079350: 8d4b0008 */ lw $t3,0x8($t2)
/* f079354: c7ae0024 */ lwc1 $f14,0x24($sp)
/* f079358: c7b200a4 */ lwc1 $f18,0xa4($sp)
/* f07935c: 000b6100 */ sll $t4,$t3,0x4
/* f079360: 0581000b */ bgez $t4,.L0f079390
/* f079364: 46000086 */ mov.s $f2,$f0
/* f079368: c7a00090 */ lwc1 $f0,0x90($sp)
/* f07936c: afa800ac */ sw $t0,0xac($sp)
/* f079370: e7b200a4 */ swc1 $f18,0xa4($sp)
/* f079374: 46000102 */ mul.s $f4,$f0,$f0
/* f079378: 46047300 */ add.s $f12,$f14,$f4
/* f07937c: 0c012974 */ jal sqrtf
/* f079380: e7ac0088 */ swc1 $f12,0x88($sp)
/* f079384: 8fa800ac */ lw $t0,0xac($sp)
/* f079388: c7b200a4 */ lwc1 $f18,0xa4($sp)
/* f07938c: 46000086 */ mov.s $f2,$f0
.L0f079390:
/* f079390: c7ac0088 */ lwc1 $f12,0x88($sp)
/* f079394: afa800ac */ sw $t0,0xac($sp)
/* f079398: e7a20084 */ swc1 $f2,0x84($sp)
/* f07939c: 0fc0fe84 */ jal chrGetAimLimitAngle
/* f0793a0: e7b200a4 */ swc1 $f18,0xa4($sp)
/* f0793a4: 8fa800ac */ lw $t0,0xac($sp)
/* f0793a8: e7a00070 */ swc1 $f0,0x70($sp)
/* f0793ac: c7a20084 */ lwc1 $f2,0x84($sp)
/* f0793b0: c50a0084 */ lwc1 $f10,0x84($t0)
/* f0793b4: 3c09800a */ lui $t1,%hi(g_Vars)
/* f0793b8: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f0793bc: 460a103e */ c.le.s $f2,$f10
/* f0793c0: c7b200a4 */ lwc1 $f18,0xa4($sp)
/* f0793c4: c7ac0094 */ lwc1 $f12,0x94($sp)
/* f0793c8: c7ae008c */ lwc1 $f14,0x8c($sp)
/* f0793cc: 45020112 */ bc1fl .L0f079818
/* f0793d0: 8fb8007c */ lw $t8,0x7c($sp)
/* f0793d4: afa800ac */ sw $t0,0xac($sp)
/* f0793d8: 0fc259d4 */ jal atan2f
/* f0793dc: e7b200a4 */ swc1 $f18,0xa4($sp)
/* f0793e0: e7a00050 */ swc1 $f0,0x50($sp)
/* f0793e4: c7ac0090 */ lwc1 $f12,0x90($sp)
/* f0793e8: 0fc259d4 */ jal atan2f
/* f0793ec: c7ae0080 */ lwc1 $f14,0x80($sp)
/* f0793f0: 8fae00a8 */ lw $t6,0xa8($sp)
/* f0793f4: e7a0004c */ swc1 $f0,0x4c($sp)
/* f0793f8: 3c09800a */ lui $t1,%hi(g_Vars)
/* f0793fc: 8dc20008 */ lw $v0,0x8($t6)
/* f079400: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f079404: 3c054000 */ lui $a1,0x4000
/* f079408: 00027840 */ sll $t7,$v0,0x1
/* f07940c: 8fa800ac */ lw $t0,0xac($sp)
/* f079410: 05e00004 */ bltz $t7,.L0f079424
/* f079414: c7b200a4 */ lwc1 $f18,0xa4($sp)
/* f079418: 0002c080 */ sll $t8,$v0,0x2
/* f07941c: 07010006 */ bgez $t8,.L0f079438
/* f079420: c7a60050 */ lwc1 $f6,0x50($sp)
.L0f079424:
/* f079424: 24190001 */ addiu $t9,$zero,0x1
/* f079428: 3c017f1b */ lui $at,%hi(var7f1aa508)
/* f07942c: c430a508 */ lwc1 $f16,%lo(var7f1aa508)($at)
/* f079430: 10000029 */ b .L0f0794d8
/* f079434: afb9007c */ sw $t9,0x7c($sp)
.L0f079438:
/* f079438: c508006c */ lwc1 $f8,0x6c($t0)
/* f07943c: 44802000 */ mtc1 $zero,$f4
/* f079440: 3c017f1b */ lui $at,%hi(var7f1aa50c)
/* f079444: 46083301 */ sub.s $f12,$f6,$f8
/* f079448: 4604603c */ c.lt.s $f12,$f4
/* f07944c: 00000000 */ nop
/* f079450: 45000003 */ bc1f .L0f079460
/* f079454: 00000000 */ nop
/* f079458: c430a50c */ lwc1 $f16,%lo(var7f1aa50c)($at)
/* f07945c: 46106300 */ add.s $f12,$f12,$f16
.L0f079460:
/* f079460: 3c017f1b */ lui $at,%hi(var7f1aa510)
/* f079464: c430a510 */ lwc1 $f16,%lo(var7f1aa510)($at)
/* f079468: 3c017f1b */ lui $at,%hi(var7f1aa514)
/* f07946c: c42aa514 */ lwc1 $f10,%lo(var7f1aa514)($at)
/* f079470: 3c017f1b */ lui $at,%hi(var7f1aa518)
/* f079474: 460c503c */ c.lt.s $f10,$f12
/* f079478: 00000000 */ nop
/* f07947c: 45020003 */ bc1fl .L0f07948c
/* f079480: c5060078 */ lwc1 $f6,0x78($t0)
/* f079484: 46106301 */ sub.s $f12,$f12,$f16
/* f079488: c5060078 */ lwc1 $f6,0x78($t0)
.L0f07948c:
/* f07948c: 44804000 */ mtc1 $zero,$f8
/* f079490: 46060081 */ sub.s $f2,$f0,$f6
/* f079494: 4608103c */ c.lt.s $f2,$f8
/* f079498: 00000000 */ nop
/* f07949c: 45000001 */ bc1f .L0f0794a4
/* f0794a0: 00000000 */ nop
.L0f0794a4:
/* f0794a4: c424a518 */ lwc1 $f4,%lo(var7f1aa518)($at)
/* f0794a8: 3c017f1b */ lui $at,%hi(var7f1aa51c)
/* f0794ac: 4604603c */ c.lt.s $f12,$f4
/* f0794b0: 00000000 */ nop
/* f0794b4: 45020009 */ bc1fl .L0f0794dc
/* f0794b8: 8fab007c */ lw $t3,0x7c($sp)
/* f0794bc: c42aa51c */ lwc1 $f10,%lo(var7f1aa51c)($at)
/* f0794c0: 240a0001 */ addiu $t2,$zero,0x1
/* f0794c4: 460c503c */ c.lt.s $f10,$f12
/* f0794c8: 00000000 */ nop
/* f0794cc: 45020003 */ bc1fl .L0f0794dc
/* f0794d0: 8fab007c */ lw $t3,0x7c($sp)
/* f0794d4: afaa007c */ sw $t2,0x7c($sp)
.L0f0794d8:
/* f0794d8: 8fab007c */ lw $t3,0x7c($sp)
.L0f0794dc:
/* f0794dc: c7a60050 */ lwc1 $f6,0x50($sp)
/* f0794e0: 8fac006c */ lw $t4,0x6c($sp)
/* f0794e4: 516000cc */ beqzl $t3,.L0f079818
/* f0794e8: 8fb8007c */ lw $t8,0x7c($sp)
/* f0794ec: c5080060 */ lwc1 $f8,0x60($t0)
/* f0794f0: 3c017f1b */ lui $at,%hi(var7f1aa520)
/* f0794f4: c424a520 */ lwc1 $f4,%lo(var7f1aa520)($at)
/* f0794f8: 46083001 */ sub.s $f0,$f6,$f8
/* f0794fc: 24030001 */ addiu $v1,$zero,0x1
/* f079500: 3c017f1b */ lui $at,%hi(var7f1aa524)
/* f079504: 4604003c */ c.lt.s $f0,$f4
/* f079508: 00000000 */ nop
/* f07950c: 45000003 */ bc1f .L0f07951c
/* f079510: 00000000 */ nop
/* f079514: 10000007 */ b .L0f079534
/* f079518: 46100000 */ add.s $f0,$f0,$f16
.L0f07951c:
/* f07951c: c42aa524 */ lwc1 $f10,%lo(var7f1aa524)($at)
/* f079520: 4600503e */ c.le.s $f10,$f0
/* f079524: 00000000 */ nop
/* f079528: 45020003 */ bc1fl .L0f079538
/* f07952c: 91820000 */ lbu $v0,0x0($t4)
/* f079530: 46100001 */ sub.s $f0,$f0,$f16
.L0f079534:
/* f079534: 91820000 */ lbu $v0,0x0($t4)
.L0f079538:
/* f079538: 24010006 */ addiu $at,$zero,0x6
/* f07953c: 54410022 */ bnel $v0,$at,.L0f0795c8
/* f079540: 24010003 */ addiu $at,$zero,0x3
/* f079544: 8d2d0324 */ lw $t5,0x324($t1)
/* f079548: 01802025 */ or $a0,$t4,$zero
/* f07954c: 11a0001b */ beqz $t5,.L0f0795bc
/* f079550: 00000000 */ nop
/* f079554: afa30044 */ sw $v1,0x44($sp)
/* f079558: afa800ac */ sw $t0,0xac($sp)
/* f07955c: e7a00048 */ swc1 $f0,0x48($sp)
/* f079560: 0fc4a25f */ jal playermgrGetPlayerNumByProp
/* f079564: e7b200a4 */ swc1 $f18,0xa4($sp)
/* f079568: 3c09800a */ lui $t1,%hi(g_Vars)
/* f07956c: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f079570: 00027080 */ sll $t6,$v0,0x2
/* f079574: 012e7821 */ addu $t7,$t1,$t6
/* f079578: 8df80064 */ lw $t8,0x64($t7)
/* f07957c: 8fa30044 */ lw $v1,0x44($sp)
/* f079580: 8fa800ac */ lw $t0,0xac($sp)
/* f079584: 8f1900d8 */ lw $t9,0xd8($t8)
/* f079588: c7a00048 */ lwc1 $f0,0x48($sp)
/* f07958c: c7b200a4 */ lwc1 $f18,0xa4($sp)
/* f079590: 1720000a */ bnez $t9,.L0f0795bc
/* f079594: 8faa006c */ lw $t2,0x6c($sp)
/* f079598: 8d420004 */ lw $v0,0x4($t2)
/* f07959c: 8c4b0018 */ lw $t3,0x18($v0)
/* f0795a0: 316d0400 */ andi $t5,$t3,0x400
/* f0795a4: 15a00005 */ bnez $t5,.L0f0795bc
/* f0795a8: 00000000 */ nop
/* f0795ac: 8c4c0014 */ lw $t4,0x14($v0)
/* f0795b0: 000c7080 */ sll $t6,$t4,0x2
/* f0795b4: 05c30043 */ bgezl $t6,.L0f0796c4
/* f0795b8: 8fa400b0 */ lw $a0,0xb0($sp)
.L0f0795bc:
/* f0795bc: 10000040 */ b .L0f0796c0
/* f0795c0: 00001825 */ or $v1,$zero,$zero
/* f0795c4: 24010003 */ addiu $at,$zero,0x3
.L0f0795c8:
/* f0795c8: 14410024 */ bne $v0,$at,.L0f07965c
/* f0795cc: 8faf006c */ lw $t7,0x6c($sp)
/* f0795d0: 8de40004 */ lw $a0,0x4($t7)
/* f0795d4: 1080001f */ beqz $a0,.L0f079654
/* f0795d8: 00000000 */ nop
/* f0795dc: 8c980018 */ lw $t8,0x18($a0)
/* f0795e0: 33190400 */ andi $t9,$t8,0x400
/* f0795e4: 1720001b */ bnez $t9,.L0f079654
/* f0795e8: 00000000 */ nop
/* f0795ec: 8c820014 */ lw $v0,0x14($a0)
/* f0795f0: 00025080 */ sll $t2,$v0,0x2
/* f0795f4: 05400017 */ bltz $t2,.L0f079654
/* f0795f8: 00455824 */ and $t3,$v0,$a1
/* f0795fc: 15600015 */ bnez $t3,.L0f079654
/* f079600: 00000000 */ nop
/* f079604: afa30044 */ sw $v1,0x44($sp)
/* f079608: afa40040 */ sw $a0,0x40($sp)
/* f07960c: afa800ac */ sw $t0,0xac($sp)
/* f079610: e7a00048 */ swc1 $f0,0x48($sp)
/* f079614: 0fc0e6a5 */ jal chrIsDead
/* f079618: e7b200a4 */ swc1 $f18,0xa4($sp)
/* f07961c: 8fa30044 */ lw $v1,0x44($sp)
/* f079620: 8fa40040 */ lw $a0,0x40($sp)
/* f079624: 8fa800ac */ lw $t0,0xac($sp)
/* f079628: c7a00048 */ lwc1 $f0,0x48($sp)
/* f07962c: 14400009 */ bnez $v0,.L0f079654
/* f079630: c7b200a4 */ lwc1 $f18,0xa4($sp)
/* f079634: 80820007 */ lb $v0,0x7($a0)
/* f079638: 24010020 */ addiu $at,$zero,0x20
/* f07963c: 10410005 */ beq $v0,$at,.L0f079654
/* f079640: 2401001e */ addiu $at,$zero,0x1e
/* f079644: 10410003 */ beq $v0,$at,.L0f079654
/* f079648: 2401001f */ addiu $at,$zero,0x1f
/* f07964c: 5441001d */ bnel $v0,$at,.L0f0796c4
/* f079650: 8fa400b0 */ lw $a0,0xb0($sp)
.L0f079654:
/* f079654: 1000001a */ b .L0f0796c0
/* f079658: 00001825 */ or $v1,$zero,$zero
.L0f07965c:
/* f07965c: 24010001 */ addiu $at,$zero,0x1
/* f079660: 14410017 */ bne $v0,$at,.L0f0796c0
/* f079664: 8fad006c */ lw $t5,0x6c($sp)
/* f079668: 8da20004 */ lw $v0,0x4($t5)
/* f07966c: 50400014 */ beqzl $v0,.L0f0796c0
/* f079670: 00001825 */ or $v1,$zero,$zero
/* f079674: 844c0004 */ lh $t4,0x4($v0)
/* f079678: 2401014c */ addiu $at,$zero,0x14c
/* f07967c: 01a02025 */ or $a0,$t5,$zero
/* f079680: 1581000e */ bne $t4,$at,.L0f0796bc
/* f079684: 8fa500b0 */ lw $a1,0xb0($sp)
/* f079688: 24a50008 */ addiu $a1,$a1,0x8
/* f07968c: afa30044 */ sw $v1,0x44($sp)
/* f079690: afa800ac */ sw $t0,0xac($sp)
/* f079694: e7a00048 */ swc1 $f0,0x48($sp)
/* f079698: 0fc67cbb */ jal frIsTargetFacingPos
/* f07969c: e7b200a4 */ swc1 $f18,0xa4($sp)
/* f0796a0: 8fa30044 */ lw $v1,0x44($sp)
/* f0796a4: 8fa800ac */ lw $t0,0xac($sp)
/* f0796a8: c7a00048 */ lwc1 $f0,0x48($sp)
/* f0796ac: 14400004 */ bnez $v0,.L0f0796c0
/* f0796b0: c7b200a4 */ lwc1 $f18,0xa4($sp)
/* f0796b4: 10000002 */ b .L0f0796c0
/* f0796b8: 00001825 */ or $v1,$zero,$zero
.L0f0796bc:
/* f0796bc: 00001825 */ or $v1,$zero,$zero
.L0f0796c0:
/* f0796c0: 8fa400b0 */ lw $a0,0xb0($sp)
.L0f0796c4:
/* f0796c4: 00002825 */ or $a1,$zero,$zero
/* f0796c8: afa30044 */ sw $v1,0x44($sp)
/* f0796cc: afa800ac */ sw $t0,0xac($sp)
/* f0796d0: e7a00048 */ swc1 $f0,0x48($sp)
/* f0796d4: 0fc1905e */ jal propSetPerimEnabled
/* f0796d8: e7b200a4 */ swc1 $f18,0xa4($sp)
/* f0796dc: 8fa4006c */ lw $a0,0x6c($sp)
/* f0796e0: 0fc1905e */ jal propSetPerimEnabled
/* f0796e4: 00002825 */ or $a1,$zero,$zero
/* f0796e8: 8fa800ac */ lw $t0,0xac($sp)
/* f0796ec: c7a00048 */ lwc1 $f0,0x48($sp)
/* f0796f0: 3c09800a */ lui $t1,%hi(g_Vars)
/* f0796f4: c5060064 */ lwc1 $f6,0x64($t0)
/* f0796f8: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f0796fc: 8fa30044 */ lw $v1,0x44($sp)
/* f079700: 4606003e */ c.le.s $f0,$f6
/* f079704: c7b200a4 */ lwc1 $f18,0xa4($sp)
/* f079708: 4502002a */ bc1fl .L0f0797b4
/* f07970c: 8d020090 */ lw $v0,0x90($t0)
/* f079710: c5080068 */ lwc1 $f8,0x68($t0)
/* f079714: 4600403e */ c.le.s $f8,$f0
/* f079718: 00000000 */ nop
/* f07971c: 45020025 */ bc1fl .L0f0797b4
/* f079720: 8d020090 */ lw $v0,0x90($t0)
/* f079724: 10600022 */ beqz $v1,.L0f0797b0
/* f079728: 8fa200b0 */ lw $v0,0xb0($sp)
/* f07972c: 8fae006c */ lw $t6,0x6c($sp)
/* f079730: 240f003f */ addiu $t7,$zero,0x3f
/* f079734: 24180008 */ addiu $t8,$zero,0x8
/* f079738: afb80014 */ sw $t8,0x14($sp)
/* f07973c: afaf0010 */ sw $t7,0x10($sp)
/* f079740: 24440008 */ addiu $a0,$v0,0x8
/* f079744: 24450028 */ addiu $a1,$v0,0x28
/* f079748: afa800ac */ sw $t0,0xac($sp)
/* f07974c: e7b200a4 */ swc1 $f18,0xa4($sp)
/* f079750: 25c60008 */ addiu $a2,$t6,0x8
/* f079754: 0c00b70f */ jal cdHasLineOfSight
/* f079758: 25c70028 */ addiu $a3,$t6,0x28
/* f07975c: 3c09800a */ lui $t1,%hi(g_Vars)
/* f079760: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f079764: 8fa800ac */ lw $t0,0xac($sp)
/* f079768: 10400011 */ beqz $v0,.L0f0797b0
/* f07976c: c7b200a4 */ lwc1 $f18,0xa4($sp)
/* f079770: 8fa200a8 */ lw $v0,0xa8($sp)
/* f079774: 3c012000 */ lui $at,0x2000
/* f079778: 240b0001 */ addiu $t3,$zero,0x1
/* f07977c: 8c590008 */ lw $t9,0x8($v0)
/* f079780: 03215025 */ or $t2,$t9,$at
/* f079784: ac4a0008 */ sw $t2,0x8($v0)
/* f079788: c7a4004c */ lwc1 $f4,0x4c($sp)
/* f07978c: afab0074 */ sw $t3,0x74($sp)
/* f079790: c7b20050 */ lwc1 $f18,0x50($sp)
/* f079794: e7a400a0 */ swc1 $f4,0xa0($sp)
/* f079798: 8d0c00a4 */ lw $t4,0xa4($t0)
/* f07979c: 8fad006c */ lw $t5,0x6c($sp)
/* f0797a0: 55800011 */ bnezl $t4,.L0f0797e8
/* f0797a4: 8fa400b0 */ lw $a0,0xb0($sp)
/* f0797a8: 1000000e */ b .L0f0797e4
/* f0797ac: ad0d00a4 */ sw $t5,0xa4($t0)
.L0f0797b0:
/* f0797b0: 8d020090 */ lw $v0,0x90($t0)
.L0f0797b4:
/* f0797b4: 0442000b */ bltzl $v0,.L0f0797e4
/* f0797b8: afa0007c */ sw $zero,0x7c($sp)
/* f0797bc: 8d2e0008 */ lw $t6,0x8($t1)
/* f0797c0: 25cfff88 */ addiu $t7,$t6,-100
/* f0797c4: 01e2082a */ slt $at,$t7,$v0
/* f0797c8: 50200006 */ beqzl $at,.L0f0797e4
/* f0797cc: afa0007c */ sw $zero,0x7c($sp)
/* f0797d0: c50a0078 */ lwc1 $f10,0x78($t0)
/* f0797d4: c512006c */ lwc1 $f18,0x6c($t0)
/* f0797d8: 10000002 */ b .L0f0797e4
/* f0797dc: e7aa00a0 */ swc1 $f10,0xa0($sp)
/* f0797e0: afa0007c */ sw $zero,0x7c($sp)
.L0f0797e4:
/* f0797e4: 8fa400b0 */ lw $a0,0xb0($sp)
.L0f0797e8:
/* f0797e8: 24050001 */ addiu $a1,$zero,0x1
/* f0797ec: afa800ac */ sw $t0,0xac($sp)
/* f0797f0: 0fc1905e */ jal propSetPerimEnabled
/* f0797f4: e7b200a4 */ swc1 $f18,0xa4($sp)
/* f0797f8: 8fa4006c */ lw $a0,0x6c($sp)
/* f0797fc: 0fc1905e */ jal propSetPerimEnabled
/* f079800: 24050001 */ addiu $a1,$zero,0x1
/* f079804: 3c09800a */ lui $t1,%hi(g_Vars)
/* f079808: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f07980c: 8fa800ac */ lw $t0,0xac($sp)
/* f079810: c7b200a4 */ lwc1 $f18,0xa4($sp)
.L0f079814:
/* f079814: 8fb8007c */ lw $t8,0x7c($sp)
.L0f079818:
/* f079818: 3c017f1b */ lui $at,%hi(var7f1aa548)
/* f07981c: c430a548 */ lwc1 $f16,%lo(var7f1aa548)($at)
/* f079820: 57000003 */ bnezl $t8,.L0f079830
/* f079824: 8119005e */ lb $t9,0x5e($t0)
/* f079828: ad0000a4 */ sw $zero,0xa4($t0)
/* f07982c: 8119005e */ lb $t9,0x5e($t0)
.L0f079830:
/* f079830: 53200024 */ beqzl $t9,.L0f0798c4
/* f079834: c5020060 */ lwc1 $f2,0x60($t0)
/* f079838: 8d2a0008 */ lw $t2,0x8($t1)
/* f07983c: 24010078 */ addiu $at,$zero,0x64
/* f079840: afa800ac */ sw $t0,0xac($sp)
/* f079844: 0141001a */ div $zero,$t2,$at
/* f079848: 00005810 */ mfhi $t3
/* f07984c: 448b3000 */ mtc1 $t3,$f6
/* f079850: 3c017f1b */ lui $at,%hi(var7f1aa54c)
/* f079854: c424a54c */ lwc1 $f4,%lo(var7f1aa54c)($at)
/* f079858: 46803220 */ cvt.s.w $f8,$f6
/* f07985c: e7b200a4 */ swc1 $f18,0xa4($sp)
/* f079860: 46044302 */ mul.s $f12,$f8,$f4
/* f079864: 0c0068f7 */ jal sinf
/* f079868: 00000000 */ nop
/* f07986c: 3c017f1b */ lui $at,%hi(var7f1aa550)
/* f079870: c430a550 */ lwc1 $f16,%lo(var7f1aa550)($at)
/* f079874: 3c017f1b */ lui $at,%hi(var7f1aa554)
/* f079878: c426a554 */ lwc1 $f6,%lo(var7f1aa554)($at)
/* f07987c: c7aa0070 */ lwc1 $f10,0x70($sp)
/* f079880: c7b200a4 */ lwc1 $f18,0xa4($sp)
/* f079884: 8fa800ac */ lw $t0,0xac($sp)
/* f079888: 46065202 */ mul.s $f8,$f10,$f6
/* f07988c: 44805000 */ mtc1 $zero,$f10
/* f079890: 46004102 */ mul.s $f4,$f8,$f0
/* f079894: 46049480 */ add.s $f18,$f18,$f4
/* f079898: 460a903c */ c.lt.s $f18,$f10
/* f07989c: 00000000 */ nop
/* f0798a0: 45020003 */ bc1fl .L0f0798b0
/* f0798a4: 4612803e */ c.le.s $f16,$f18
/* f0798a8: 46109480 */ add.s $f18,$f18,$f16
/* f0798ac: 4612803e */ c.le.s $f16,$f18
.L0f0798b0:
/* f0798b0: 00000000 */ nop
/* f0798b4: 45020003 */ bc1fl .L0f0798c4
/* f0798b8: c5020060 */ lwc1 $f2,0x60($t0)
/* f0798bc: 46109481 */ sub.s $f18,$f18,$f16
/* f0798c0: c5020060 */ lwc1 $f2,0x60($t0)
.L0f0798c4:
/* f0798c4: 3c017f1b */ lui $at,%hi(var7f1aa558)
/* f0798c8: c426a558 */ lwc1 $f6,%lo(var7f1aa558)($at)
/* f0798cc: 46029001 */ sub.s $f0,$f18,$f2
/* f0798d0: 44802000 */ mtc1 $zero,$f4
/* f0798d4: 2504006c */ addiu $a0,$t0,0x6c
/* f0798d8: 4606003c */ c.lt.s $f0,$f6
/* f0798dc: 00000000 */ nop
/* f0798e0: 45000003 */ bc1f .L0f0798f0
/* f0798e4: 00000000 */ nop
/* f0798e8: 10000008 */ b .L0f07990c
/* f0798ec: 46100000 */ add.s $f0,$f0,$f16
.L0f0798f0:
/* f0798f0: 3c017f1b */ lui $at,%hi(var7f1aa55c)
/* f0798f4: c428a55c */ lwc1 $f8,%lo(var7f1aa55c)($at)
/* f0798f8: 4600403e */ c.le.s $f8,$f0
/* f0798fc: 00000000 */ nop
/* f079900: 45020003 */ bc1fl .L0f079910
/* f079904: c50c0064 */ lwc1 $f12,0x64($t0)
/* f079908: 46100001 */ sub.s $f0,$f0,$f16
.L0f07990c:
/* f07990c: c50c0064 */ lwc1 $f12,0x64($t0)
.L0f079910:
/* f079910: 3c017f1b */ lui $at,%hi(var7f1aa560)
/* f079914: 4600603c */ c.lt.s $f12,$f0
/* f079918: 00000000 */ nop
/* f07991c: 45020004 */ bc1fl .L0f079930
/* f079920: c50c0068 */ lwc1 $f12,0x68($t0)
/* f079924: 10000007 */ b .L0f079944
/* f079928: 460c1480 */ add.s $f18,$f2,$f12
/* f07992c: c50c0068 */ lwc1 $f12,0x68($t0)
.L0f079930:
/* f079930: 460c003c */ c.lt.s $f0,$f12
/* f079934: 00000000 */ nop
/* f079938: 45020003 */ bc1fl .L0f079948
/* f07993c: 4604903c */ c.lt.s $f18,$f4
/* f079940: 460c1480 */ add.s $f18,$f2,$f12
.L0f079944:
/* f079944: 4604903c */ c.lt.s $f18,$f4
.L0f079948:
/* f079948: 00000000 */ nop
/* f07994c: 45020003 */ bc1fl .L0f07995c
/* f079950: 4612803e */ c.le.s $f16,$f18
/* f079954: 46109480 */ add.s $f18,$f18,$f16
/* f079958: 4612803e */ c.le.s $f16,$f18
.L0f07995c:
/* f07995c: 00000000 */ nop
/* f079960: 45000002 */ bc1f .L0f07996c
/* f079964: 00000000 */ nop
/* f079968: 46109481 */ sub.s $f18,$f18,$f16
.L0f07996c:
/* f07996c: c420a560 */ lwc1 $f0,%lo(var7f1aa560)($at)
/* f079970: 44059000 */ mfc1 $a1,$f18
/* f079974: 25060070 */ addiu $a2,$t0,0x70
/* f079978: e7a00010 */ swc1 $f0,0x10($sp)
/* f07997c: c50a0080 */ lwc1 $f10,0x80($t0)
/* f079980: 44070000 */ mfc1 $a3,$f0
/* f079984: e7b200a4 */ swc1 $f18,0xa4($sp)
/* f079988: afa800ac */ sw $t0,0xac($sp)
/* f07998c: 0fc1b6c0 */ jal applyRotation
/* f079990: e7aa0014 */ swc1 $f10,0x14($sp)
/* f079994: 3c017f1b */ lui $at,%hi(var7f1aa564)
/* f079998: c420a564 */ lwc1 $f0,%lo(var7f1aa564)($at)
/* f07999c: 8fa800ac */ lw $t0,0xac($sp)
/* f0799a0: 8fa500a0 */ lw $a1,0xa0($sp)
/* f0799a4: e7a00010 */ swc1 $f0,0x10($sp)
/* f0799a8: c5060080 */ lwc1 $f6,0x80($t0)
/* f0799ac: 44070000 */ mfc1 $a3,$f0
/* f0799b0: 25040078 */ addiu $a0,$t0,0x78
/* f0799b4: 2506007c */ addiu $a2,$t0,0x7c
/* f0799b8: 0fc1b6c0 */ jal applyRotation
/* f0799bc: e7a60014 */ swc1 $f6,0x14($sp)
/* f0799c0: 8fa800ac */ lw $t0,0xac($sp)
/* f0799c4: c7b200a4 */ lwc1 $f18,0xa4($sp)
/* f0799c8: 44802000 */ mtc1 $zero,$f4
/* f0799cc: c508006c */ lwc1 $f8,0x6c($t0)
/* f0799d0: 3c017f1b */ lui $at,%hi(var7f1aa56c)
/* f0799d4: c430a56c */ lwc1 $f16,%lo(var7f1aa56c)($at)
/* f0799d8: 46089301 */ sub.s $f12,$f18,$f8
/* f0799dc: 3c09800a */ lui $t1,%hi(g_Vars)
/* f0799e0: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f0799e4: 3c017f1b */ lui $at,%hi(var7f1aa570)
/* f0799e8: 4604603c */ c.lt.s $f12,$f4
/* f0799ec: c7aa00a0 */ lwc1 $f10,0xa0($sp)
/* f0799f0: 45000002 */ bc1f .L0f0799fc
/* f0799f4: 00000000 */ nop
/* f0799f8: 46106300 */ add.s $f12,$f12,$f16
.L0f0799fc:
/* f0799fc: c420a570 */ lwc1 $f0,%lo(var7f1aa570)($at)
/* f079a00: 460c003c */ c.lt.s $f0,$f12
/* f079a04: 00000000 */ nop
/* f079a08: 45020003 */ bc1fl .L0f079a18
/* f079a0c: c5060078 */ lwc1 $f6,0x78($t0)
/* f079a10: 46106301 */ sub.s $f12,$f12,$f16
/* f079a14: c5060078 */ lwc1 $f6,0x78($t0)
.L0f079a18:
/* f079a18: 44804000 */ mtc1 $zero,$f8
/* f079a1c: 46065081 */ sub.s $f2,$f10,$f6
/* f079a20: 4608103c */ c.lt.s $f2,$f8
/* f079a24: 00000000 */ nop
/* f079a28: 45020003 */ bc1fl .L0f079a38
/* f079a2c: 4602003c */ c.lt.s $f0,$f2
/* f079a30: 46101080 */ add.s $f2,$f2,$f16
/* f079a34: 4602003c */ c.lt.s $f0,$f2
.L0f079a38:
/* f079a38: 00000000 */ nop
/* f079a3c: 45020003 */ bc1fl .L0f079a4c
/* f079a40: a100005e */ sb $zero,0x5e($t0)
/* f079a44: 46101081 */ sub.s $f2,$f2,$f16
/* f079a48: a100005e */ sb $zero,0x5e($t0)
.L0f079a4c:
/* f079a4c: 8fac007c */ lw $t4,0x7c($sp)
/* f079a50: c7a40070 */ lwc1 $f4,0x70($sp)
/* f079a54: 51800045 */ beqzl $t4,.L0f079b6c
/* f079a58: 8faa0078 */ lw $t2,0x78($sp)
/* f079a5c: 4604603c */ c.lt.s $f12,$f4
/* f079a60: c7aa0070 */ lwc1 $f10,0x70($sp)
/* f079a64: 4502001a */ bc1fl .L0f079ad0
/* f079a68: 460a5000 */ add.s $f0,$f10,$f10
/* f079a6c: 46002007 */ neg.s $f0,$f4
/* f079a70: 460c003c */ c.lt.s $f0,$f12
/* f079a74: 00000000 */ nop
/* f079a78: 45020015 */ bc1fl .L0f079ad0
/* f079a7c: 460a5000 */ add.s $f0,$f10,$f10
/* f079a80: 4604103c */ c.lt.s $f2,$f4
/* f079a84: 00000000 */ nop
/* f079a88: 45020011 */ bc1fl .L0f079ad0
/* f079a8c: 460a5000 */ add.s $f0,$f10,$f10
/* f079a90: 4602003c */ c.lt.s $f0,$f2
/* f079a94: 240d0001 */ addiu $t5,$zero,0x1
/* f079a98: 4502000d */ bc1fl .L0f079ad0
/* f079a9c: 460a5000 */ add.s $f0,$f10,$f10
/* f079aa0: a10d005e */ sb $t5,0x5e($t0)
/* f079aa4: 8faf0074 */ lw $t7,0x74($sp)
/* f079aa8: 240e0001 */ addiu $t6,$zero,0x1
/* f079aac: afae0078 */ sw $t6,0x78($sp)
/* f079ab0: 51e0002e */ beqzl $t7,.L0f079b6c
/* f079ab4: 8faa0078 */ lw $t2,0x78($sp)
/* f079ab8: 8d380008 */ lw $t8,0x8($t1)
/* f079abc: ad180090 */ sw $t8,0x90($t0)
/* f079ac0: 8d390008 */ lw $t9,0x8($t1)
/* f079ac4: 10000028 */ b .L0f079b68
/* f079ac8: ad190094 */ sw $t9,0x94($t0)
/* f079acc: 460a5000 */ add.s $f0,$f10,$f10
.L0f079ad0:
/* f079ad0: 4600603c */ c.lt.s $f12,$f0
/* f079ad4: 00000000 */ nop
/* f079ad8: 45020018 */ bc1fl .L0f079b3c
/* f079adc: 8d020090 */ lw $v0,0x90($t0)
/* f079ae0: 46000387 */ neg.s $f14,$f0
/* f079ae4: 460c703c */ c.lt.s $f14,$f12
/* f079ae8: 00000000 */ nop
/* f079aec: 45020013 */ bc1fl .L0f079b3c
/* f079af0: 8d020090 */ lw $v0,0x90($t0)
/* f079af4: 4600103c */ c.lt.s $f2,$f0
/* f079af8: 00000000 */ nop
/* f079afc: 4502000f */ bc1fl .L0f079b3c
/* f079b00: 8d020090 */ lw $v0,0x90($t0)
/* f079b04: 4602703c */ c.lt.s $f14,$f2
/* f079b08: 240a0001 */ addiu $t2,$zero,0x1
/* f079b0c: 4502000b */ bc1fl .L0f079b3c
/* f079b10: 8d020090 */ lw $v0,0x90($t0)
/* f079b14: a10a005e */ sb $t2,0x5e($t0)
/* f079b18: 8fac0074 */ lw $t4,0x74($sp)
/* f079b1c: 240b0001 */ addiu $t3,$zero,0x1
/* f079b20: afab0078 */ sw $t3,0x78($sp)
/* f079b24: 51800011 */ beqzl $t4,.L0f079b6c
/* f079b28: 8faa0078 */ lw $t2,0x78($sp)
/* f079b2c: 8d2d0008 */ lw $t5,0x8($t1)
/* f079b30: 1000000d */ b .L0f079b68
/* f079b34: ad0d0090 */ sw $t5,0x90($t0)
/* f079b38: 8d020090 */ lw $v0,0x90($t0)
.L0f079b3c:
/* f079b3c: 0442000b */ bltzl $v0,.L0f079b6c
/* f079b40: 8faa0078 */ lw $t2,0x78($sp)
/* f079b44: 8d2e0008 */ lw $t6,0x8($t1)
/* f079b48: 24180001 */ addiu $t8,$zero,0x1
/* f079b4c: 24190001 */ addiu $t9,$zero,0x1
/* f079b50: 25cfff88 */ addiu $t7,$t6,-100
/* f079b54: 01e2082a */ slt $at,$t7,$v0
/* f079b58: 50200004 */ beqzl $at,.L0f079b6c
/* f079b5c: 8faa0078 */ lw $t2,0x78($sp)
/* f079b60: a118005e */ sb $t8,0x5e($t0)
/* f079b64: afb90078 */ sw $t9,0x78($sp)
.L0f079b68:
/* f079b68: 8faa0078 */ lw $t2,0x78($sp)
.L0f079b6c:
/* f079b6c: 3c017f1b */ lui $at,%hi(var7f1aa574)
/* f079b70: 51400012 */ beqzl $t2,.L0f079bbc
/* f079b74: c5020088 */ lwc1 $f2,0x88($t0)
/* f079b78: c420a574 */ lwc1 $f0,%lo(var7f1aa574)($at)
/* f079b7c: 3c017f1b */ lui $at,%hi(var7f1aa578)
/* f079b80: c426a578 */ lwc1 $f6,%lo(var7f1aa578)($at)
/* f079b84: c528004c */ lwc1 $f8,0x4c($t1)
/* f079b88: c50a0088 */ lwc1 $f10,0x88($t0)
/* f079b8c: 46083102 */ mul.s $f4,$f6,$f8
/* f079b90: 46045180 */ add.s $f6,$f10,$f4
/* f079b94: e5060088 */ swc1 $f6,0x88($t0)
/* f079b98: c5020088 */ lwc1 $f2,0x88($t0)
/* f079b9c: 4602003c */ c.lt.s $f0,$f2
/* f079ba0: 00000000 */ nop
/* f079ba4: 45020025 */ bc1fl .L0f079c3c
/* f079ba8: 44805000 */ mtc1 $zero,$f10
/* f079bac: e5000088 */ swc1 $f0,0x88($t0)
/* f079bb0: 10000021 */ b .L0f079c38
/* f079bb4: c5020088 */ lwc1 $f2,0x88($t0)
/* f079bb8: c5020088 */ lwc1 $f2,0x88($t0)
.L0f079bbc:
/* f079bbc: 44804000 */ mtc1 $zero,$f8
/* f079bc0: 00000000 */ nop
/* f079bc4: 4602403c */ c.lt.s $f8,$f2
/* f079bc8: 00000000 */ nop
/* f079bcc: 4502001b */ bc1fl .L0f079c3c
/* f079bd0: 44805000 */ mtc1 $zero,$f10
/* f079bd4: 8d2b0038 */ lw $t3,0x38($t1)
/* f079bd8: 00001025 */ or $v0,$zero,$zero
/* f079bdc: 3c017f1b */ lui $at,%hi(var7f1aa57c)
/* f079be0: 1960000b */ blez $t3,.L0f079c10
/* f079be4: 00000000 */ nop
/* f079be8: c420a57c */ lwc1 $f0,%lo(var7f1aa57c)($at)
/* f079bec: c50a0088 */ lwc1 $f10,0x88($t0)
.L0f079bf0:
/* f079bf0: 24420001 */ addiu $v0,$v0,0x1
/* f079bf4: 46005102 */ mul.s $f4,$f10,$f0
/* f079bf8: e5040088 */ swc1 $f4,0x88($t0)
/* f079bfc: 8d2c0038 */ lw $t4,0x38($t1)
/* f079c00: 004c082a */ slt $at,$v0,$t4
/* f079c04: 5420fffa */ bnezl $at,.L0f079bf0
/* f079c08: c50a0088 */ lwc1 $f10,0x88($t0)
/* f079c0c: c5020088 */ lwc1 $f2,0x88($t0)
.L0f079c10:
/* f079c10: 3c017f1b */ lui $at,%hi(var7f1aa580)
/* f079c14: c426a580 */ lwc1 $f6,%lo(var7f1aa580)($at)
/* f079c18: 4606103e */ c.le.s $f2,$f6
/* f079c1c: 00000000 */ nop
/* f079c20: 45020006 */ bc1fl .L0f079c3c
/* f079c24: 44805000 */ mtc1 $zero,$f10
/* f079c28: 44804000 */ mtc1 $zero,$f8
/* f079c2c: 00000000 */ nop
/* f079c30: e5080088 */ swc1 $f8,0x88($t0)
/* f079c34: c5020088 */ lwc1 $f2,0x88($t0)
.L0f079c38:
/* f079c38: 44805000 */ mtc1 $zero,$f10
.L0f079c3c:
/* f079c3c: 00000000 */ nop
/* f079c40: 4602503c */ c.lt.s $f10,$f2
/* f079c44: 00000000 */ nop
/* f079c48: 45020013 */ bc1fl .L0f079c98
/* f079c4c: 8fbf001c */ lw $ra,0x1c($sp)
/* f079c50: c526004c */ lwc1 $f6,0x4c($t1)
/* f079c54: c504008c */ lwc1 $f4,0x8c($t0)
/* f079c58: 46061202 */ mul.s $f8,$f2,$f6
/* f079c5c: 46082280 */ add.s $f10,$f4,$f8
/* f079c60: e50a008c */ swc1 $f10,0x8c($t0)
/* f079c64: c500008c */ lwc1 $f0,0x8c($t0)
/* f079c68: 4600803e */ c.le.s $f16,$f0
/* f079c6c: 00000000 */ nop
/* f079c70: 45020009 */ bc1fl .L0f079c98
/* f079c74: 8fbf001c */ lw $ra,0x1c($sp)
/* f079c78: 46100181 */ sub.s $f6,$f0,$f16
.L0f079c7c:
/* f079c7c: e506008c */ swc1 $f6,0x8c($t0)
/* f079c80: c500008c */ lwc1 $f0,0x8c($t0)
/* f079c84: 4600803e */ c.le.s $f16,$f0
/* f079c88: 00000000 */ nop
/* f079c8c: 4503fffb */ bc1tl .L0f079c7c
/* f079c90: 46100181 */ sub.s $f6,$f0,$f16
/* f079c94: 8fbf001c */ lw $ra,0x1c($sp)
.L0f079c98:
/* f079c98: 27bd00b0 */ addiu $sp,$sp,0xb0
/* f079c9c: 03e00008 */ jr $ra
/* f079ca0: 00000000 */ nop
);
#else
GLOBAL_ASM(
glabel autogunTick
.late_rodata
glabel var7f1aa4c0
.word 0x3c8ef461
glabel var7f1aa4c4
.word 0x40c907a9
glabel var7f1aa4c8
.word 0x37432e42
glabel var7f1aa4cc
.word 0x3a36fb5e
glabel var7f1aa4d0
.word 0x36c32e42
glabel var7f1aa4d4
.word 0x39b6fb5e
glabel var7f1aa4d8
.word 0x40c907a9
glabel var7f1aa4dc
.word 0x37432e42
glabel var7f1aa4e0
.word 0x40c907a9
glabel var7f1aa4e4
.word 0x3a36fb5e
glabel var7f1aa4e8
.word 0x36c32e42
glabel var7f1aa4ec
.word 0x40c907a9
glabel var7f1aa4f0
.word 0x39b6fb5e
glabel var7f1aa4f4
.word 0x40c907a9
glabel var7f1aa4f8
.word 0x40c907a9
glabel var7f1aa4fc
.word 0x3ccddaca
glabel var7f1aa500
.word 0x358637bd
glabel var7f1aa504
.word 0x3c23606f
glabel var7f1aa508
.word 0x40c907a9
glabel var7f1aa50c
.word 0x40c907a9
glabel var7f1aa510
.word 0x40c907a9
glabel var7f1aa514
.word 0x404907a9
glabel var7f1aa518
.word 0x3f9c5b4b
glabel var7f1aa51c
.word 0xbf9c5b4b
glabel var7f1aa520
.word 0xc0490fdb
glabel var7f1aa524
.word 0x40490fdb
glabel var7f1aa528
.word 0x40c907a9
glabel var7f1aa52c
.word 0x40c907a9
glabel var7f1aa530
.word 0x40c907a9
glabel var7f1aa534
.word 0x40c907a9
glabel var7f1aa538
.word 0x40c907a9
glabel var7f1aa53c
.word 0x40c907a9
glabel var7f1aa540
.word 0x40c907a9
glabel var7f1aa544
.word 0x40c907a9
glabel var7f1aa548
.word 0x40c907a9
glabel var7f1aa54c
.word 0x3d566e92
glabel var7f1aa550
.word 0x40c907a9
glabel var7f1aa554
.word 0x3f4ccccd
glabel var7f1aa558
.word 0xc0490fdb
glabel var7f1aa55c
.word 0x40490fdb
glabel var7f1aa560
.word 0x3a64ba35
glabel var7f1aa564
.word 0x3a64ba35
glabel var7f1aa568
.word 0x40c907a9
glabel var7f1aa56c
.word 0x40c907a9
glabel var7f1aa570
.word 0x404907a9
glabel var7f1aa574
.word 0x3f192a68
glabel var7f1aa578
.word 0x3c23606f
glabel var7f1aa57c
.word 0x3f7d70a4
glabel var7f1aa580
.word 0x38d1b717
.text
/* f078c78: 27bdff50 */ addiu $sp,$sp,-176
/* f078c7c: afbf001c */ sw $ra,0x1c($sp)
/* f078c80: afa400b0 */ sw $a0,0xb0($sp)
/* f078c84: 8c820004 */ lw $v0,0x4($a0)
/* f078c88: 44802000 */ mtc1 $zero,$f4
/* f078c8c: afa0007c */ sw $zero,0x7c($sp)
/* f078c90: afa00078 */ sw $zero,0x78($sp)
/* f078c94: afa00074 */ sw $zero,0x74($sp)
/* f078c98: afa200a8 */ sw $v0,0xa8($sp)
/* f078c9c: e7a40070 */ swc1 $f4,0x70($sp)
/* f078ca0: 8c4f000c */ lw $t7,0xc($v0)
/* f078ca4: 00001825 */ or $v1,$zero,$zero
/* f078ca8: 8fac00a8 */ lw $t4,0xa8($sp)
/* f078cac: 000fc000 */ sll $t8,$t7,0x0
/* f078cb0: 0701005a */ bgez $t8,.L0f078e1c
/* f078cb4: 00404025 */ or $t0,$v0,$zero
/* f078cb8: 000f5840 */ sll $t3,$t7,0x1
/* f078cbc: 05630008 */ bgezl $t3,.L0f078ce0
/* f078cc0: c5020060 */ lwc1 $f2,0x60($t0)
/* f078cc4: c448006c */ lwc1 $f8,0x6c($v0)
/* f078cc8: c4460078 */ lwc1 $f6,0x78($v0)
/* f078ccc: e4480060 */ swc1 $f8,0x60($v0)
/* f078cd0: c4420060 */ lwc1 $f2,0x60($v0)
/* f078cd4: 10000037 */ b .L0f078db4
/* f078cd8: e4460074 */ swc1 $f6,0x74($v0)
/* f078cdc: c5020060 */ lwc1 $f2,0x60($t0)
.L0f078ce0:
/* f078ce0: c50a006c */ lwc1 $f10,0x6c($t0)
/* f078ce4: 460a1032 */ c.eq.s $f2,$f10
/* f078ce8: 00000000 */ nop
/* f078cec: 45000031 */ bc1f .L0f078db4
/* f078cf0: 00000000 */ nop
/* f078cf4: c5040074 */ lwc1 $f4,0x74($t0)
/* f078cf8: c5060078 */ lwc1 $f6,0x78($t0)
/* f078cfc: 46062032 */ c.eq.s $f4,$f6
/* f078d00: 00000000 */ nop
/* f078d04: 4500002b */ bc1f .L0f078db4
/* f078d08: 00000000 */ nop
/* f078d0c: 0c004b70 */ jal random
/* f078d10: afa800ac */ sw $t0,0xac($sp)
/* f078d14: 44824000 */ mtc1 $v0,$f8
/* f078d18: 8fa800ac */ lw $t0,0xac($sp)
/* f078d1c: 04410005 */ bgez $v0,.L0f078d34
/* f078d20: 468042a0 */ cvt.s.w $f10,$f8
/* f078d24: 3c014f80 */ lui $at,0x4f80
/* f078d28: 44812000 */ mtc1 $at,$f4
/* f078d2c: 00000000 */ nop
/* f078d30: 46045280 */ add.s $f10,$f10,$f4
.L0f078d34:
/* f078d34: 3c012f80 */ lui $at,0x2f80
/* f078d38: 44813000 */ mtc1 $at,$f6
/* f078d3c: 3c01421c */ lui $at,0x421c
/* f078d40: 44812000 */ mtc1 $at,$f4
/* f078d44: 46065202 */ mul.s $f8,$f10,$f6
/* f078d48: 3c013f80 */ lui $at,0x3f80
/* f078d4c: 44813000 */ mtc1 $at,$f6
/* f078d50: 3c017f1b */ lui $at,%hi(var7f1aa4c0)
/* f078d54: 46044282 */ mul.s $f10,$f8,$f4
/* f078d58: c424a4c0 */ lwc1 $f4,%lo(var7f1aa4c0)($at)
/* f078d5c: 46065200 */ add.s $f8,$f10,$f6
/* f078d60: 46044282 */ mul.s $f10,$f8,$f4
/* f078d64: 0c004b70 */ jal random
/* f078d68: e50a0074 */ swc1 $f10,0x74($t0)
/* f078d6c: 44823000 */ mtc1 $v0,$f6
/* f078d70: 3c017f1b */ lui $at,%hi(var7f1aa4c4)
/* f078d74: c430a4c4 */ lwc1 $f16,%lo(var7f1aa4c4)($at)
/* f078d78: 8fa800ac */ lw $t0,0xac($sp)
/* f078d7c: 04410005 */ bgez $v0,.L0f078d94
/* f078d80: 46803220 */ cvt.s.w $f8,$f6
/* f078d84: 3c014f80 */ lui $at,0x4f80
/* f078d88: 44812000 */ mtc1 $at,$f4
/* f078d8c: 00000000 */ nop
/* f078d90: 46044200 */ add.s $f8,$f8,$f4
.L0f078d94:
/* f078d94: 3c012f80 */ lui $at,0x2f80
/* f078d98: 44815000 */ mtc1 $at,$f10
/* f078d9c: 00000000 */ nop
/* f078da0: 460a4182 */ mul.s $f6,$f8,$f10
/* f078da4: 00000000 */ nop
/* f078da8: 46103102 */ mul.s $f4,$f6,$f16
/* f078dac: e5040060 */ swc1 $f4,0x60($t0)
/* f078db0: c5020060 */ lwc1 $f2,0x60($t0)
.L0f078db4:
/* f078db4: 3c017f1b */ lui $at,%hi(var7f1aa4c8)
/* f078db8: c420a4c8 */ lwc1 $f0,%lo(var7f1aa4c8)($at)
/* f078dbc: 3c017f1b */ lui $at,%hi(var7f1aa4cc)
/* f078dc0: c428a4cc */ lwc1 $f8,%lo(var7f1aa4cc)($at)
/* f078dc4: 44051000 */ mfc1 $a1,$f2
/* f078dc8: 44070000 */ mfc1 $a3,$f0
/* f078dcc: 2504006c */ addiu $a0,$t0,0x6c
/* f078dd0: 25060070 */ addiu $a2,$t0,0x70
/* f078dd4: afa800ac */ sw $t0,0xac($sp)
/* f078dd8: e7a00010 */ swc1 $f0,0x10($sp)
/* f078ddc: 0fc1b6c0 */ jal applyRotation
/* f078de0: e7a80014 */ swc1 $f8,0x14($sp)
/* f078de4: 3c017f1b */ lui $at,%hi(var7f1aa4d0)
/* f078de8: c420a4d0 */ lwc1 $f0,%lo(var7f1aa4d0)($at)
/* f078dec: 8fa800ac */ lw $t0,0xac($sp)
/* f078df0: 3c017f1b */ lui $at,%hi(var7f1aa4d4)
/* f078df4: c42aa4d4 */ lwc1 $f10,%lo(var7f1aa4d4)($at)
/* f078df8: 44070000 */ mfc1 $a3,$f0
/* f078dfc: 8d050074 */ lw $a1,0x74($t0)
/* f078e00: e7a00010 */ swc1 $f0,0x10($sp)
/* f078e04: 25040078 */ addiu $a0,$t0,0x78
/* f078e08: 2506007c */ addiu $a2,$t0,0x7c
/* f078e0c: 0fc1b6c0 */ jal applyRotation
/* f078e10: e7aa0014 */ swc1 $f10,0x14($sp)
/* f078e14: 100003a0 */ b .L0f079c98
/* f078e18: 8fbf001c */ lw $ra,0x1c($sp)
.L0f078e1c:
/* f078e1c: 8d82000c */ lw $v0,0xc($t4)
/* f078e20: 00026880 */ sll $t5,$v0,0x2
/* f078e24: 05a10073 */ bgez $t5,.L0f078ff4
/* f078e28: 00027040 */ sll $t6,$v0,0x1
/* f078e2c: 05c30008 */ bgezl $t6,.L0f078e50
/* f078e30: c5020060 */ lwc1 $f2,0x60($t0)
/* f078e34: c504006c */ lwc1 $f4,0x6c($t0)
/* f078e38: c5060078 */ lwc1 $f6,0x78($t0)
/* f078e3c: e5040060 */ swc1 $f4,0x60($t0)
/* f078e40: c5020060 */ lwc1 $f2,0x60($t0)
/* f078e44: 1000001b */ b .L0f078eb4
/* f078e48: e5060074 */ swc1 $f6,0x74($t0)
/* f078e4c: c5020060 */ lwc1 $f2,0x60($t0)
.L0f078e50:
/* f078e50: c508006c */ lwc1 $f8,0x6c($t0)
/* f078e54: 46081032 */ c.eq.s $f2,$f8
/* f078e58: 00000000 */ nop
/* f078e5c: 45000015 */ bc1f .L0f078eb4
/* f078e60: 00000000 */ nop
/* f078e64: 0c004b70 */ jal random
/* f078e68: afa800ac */ sw $t0,0xac($sp)
/* f078e6c: 44825000 */ mtc1 $v0,$f10
/* f078e70: 3c017f1b */ lui $at,%hi(var7f1aa4d8)
/* f078e74: c430a4d8 */ lwc1 $f16,%lo(var7f1aa4d8)($at)
/* f078e78: 8fa800ac */ lw $t0,0xac($sp)
/* f078e7c: 04410005 */ bgez $v0,.L0f078e94
/* f078e80: 468051a0 */ cvt.s.w $f6,$f10
/* f078e84: 3c014f80 */ lui $at,0x4f80
/* f078e88: 44812000 */ mtc1 $at,$f4
/* f078e8c: 00000000 */ nop
/* f078e90: 46043180 */ add.s $f6,$f6,$f4
.L0f078e94:
/* f078e94: 3c012f80 */ lui $at,0x2f80
/* f078e98: 44814000 */ mtc1 $at,$f8
/* f078e9c: 00000000 */ nop
/* f078ea0: 46083282 */ mul.s $f10,$f6,$f8
/* f078ea4: 00000000 */ nop
/* f078ea8: 46105102 */ mul.s $f4,$f10,$f16
/* f078eac: e5040060 */ swc1 $f4,0x60($t0)
/* f078eb0: c5020060 */ lwc1 $f2,0x60($t0)
.L0f078eb4:
/* f078eb4: 3c017f1b */ lui $at,%hi(var7f1aa4dc)
/* f078eb8: c420a4dc */ lwc1 $f0,%lo(var7f1aa4dc)($at)
/* f078ebc: 3c017f1b */ lui $at,%hi(var7f1aa4e4)
/* f078ec0: c426a4e4 */ lwc1 $f6,%lo(var7f1aa4e4)($at)
/* f078ec4: 44051000 */ mfc1 $a1,$f2
/* f078ec8: 44070000 */ mfc1 $a3,$f0
/* f078ecc: 2504006c */ addiu $a0,$t0,0x6c
/* f078ed0: 25060070 */ addiu $a2,$t0,0x70
/* f078ed4: afa800ac */ sw $t0,0xac($sp)
/* f078ed8: e7a00010 */ swc1 $f0,0x10($sp)
/* f078edc: 0fc1b6c0 */ jal applyRotation
/* f078ee0: e7a60014 */ swc1 $f6,0x14($sp)
/* f078ee4: 3c017f1b */ lui $at,%hi(var7f1aa4e8)
/* f078ee8: c420a4e8 */ lwc1 $f0,%lo(var7f1aa4e8)($at)
/* f078eec: 8fa800ac */ lw $t0,0xac($sp)
/* f078ef0: 3c017f1b */ lui $at,%hi(var7f1aa4f0)
/* f078ef4: c428a4f0 */ lwc1 $f8,%lo(var7f1aa4f0)($at)
/* f078ef8: 44070000 */ mfc1 $a3,$f0
/* f078efc: 8d050074 */ lw $a1,0x74($t0)
/* f078f00: e7a00010 */ swc1 $f0,0x10($sp)
/* f078f04: 25040078 */ addiu $a0,$t0,0x78
/* f078f08: 2506007c */ addiu $a2,$t0,0x7c
/* f078f0c: 0fc1b6c0 */ jal applyRotation
/* f078f10: e7a80014 */ swc1 $f8,0x14($sp)
/* f078f14: 8fa800ac */ lw $t0,0xac($sp)
/* f078f18: 0c0068f4 */ jal cosf
/* f078f1c: c50c006c */ lwc1 $f12,0x6c($t0)
/* f078f20: 44807000 */ mtc1 $zero,$f14
/* f078f24: 3c017f1b */ lui $at,%hi(var7f1aa4f8)
/* f078f28: c430a4f8 */ lwc1 $f16,%lo(var7f1aa4f8)($at)
/* f078f2c: 4600703c */ c.lt.s $f14,$f0
/* f078f30: 3c09800a */ lui $t1,%hi(g_Vars)
/* f078f34: 8fa800ac */ lw $t0,0xac($sp)
/* f078f38: 3c017f1b */ lui $at,%hi(var7f1aa4fc)
/* f078f3c: 45000006 */ bc1f .L0f078f58
/* f078f40: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f078f44: 3c017f1b */ lui $at,%hi(var7f1aa500)
/* f078f48: c42aa4fc */ lwc1 $f10,%lo(var7f1aa4fc)($at)
/* f078f4c: 46005302 */ mul.s $f12,$f10,$f0
/* f078f50: 10000002 */ b .L0f078f5c
/* f078f54: 00000000 */ nop
.L0f078f58:
/* f078f58: c42ca500 */ lwc1 $f12,%lo(var7f1aa500)($at)
.L0f078f5c:
/* f078f5c: 3c017f1b */ lui $at,%hi(var7f1aa504)
/* f078f60: c424a504 */ lwc1 $f4,%lo(var7f1aa504)($at)
/* f078f64: c526004c */ lwc1 $f6,0x4c($t1)
/* f078f68: c50a0088 */ lwc1 $f10,0x88($t0)
/* f078f6c: 46062202 */ mul.s $f8,$f4,$f6
/* f078f70: 46085100 */ add.s $f4,$f10,$f8
/* f078f74: e5040088 */ swc1 $f4,0x88($t0)
/* f078f78: c5020088 */ lwc1 $f2,0x88($t0)
/* f078f7c: 4602603c */ c.lt.s $f12,$f2
/* f078f80: 00000000 */ nop
/* f078f84: 45020004 */ bc1fl .L0f078f98
/* f078f88: 4602703c */ c.lt.s $f14,$f2
/* f078f8c: e50c0088 */ swc1 $f12,0x88($t0)
/* f078f90: c5020088 */ lwc1 $f2,0x88($t0)
/* f078f94: 4602703c */ c.lt.s $f14,$f2
.L0f078f98:
/* f078f98: 3c09800a */ lui $t1,%hi(g_Vars)
/* f078f9c: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f078fa0: 4502033d */ bc1fl .L0f079c98
/* f078fa4: 8fbf001c */ lw $ra,0x1c($sp)
/* f078fa8: c52a004c */ lwc1 $f10,0x4c($t1)
/* f078fac: c506008c */ lwc1 $f6,0x8c($t0)
/* f078fb0: 460a1202 */ mul.s $f8,$f2,$f10
/* f078fb4: 46083100 */ add.s $f4,$f6,$f8
/* f078fb8: e504008c */ swc1 $f4,0x8c($t0)
/* f078fbc: c500008c */ lwc1 $f0,0x8c($t0)
/* f078fc0: 4600803e */ c.le.s $f16,$f0
/* f078fc4: 00000000 */ nop
/* f078fc8: 45020333 */ bc1fl .L0f079c98
/* f078fcc: 8fbf001c */ lw $ra,0x1c($sp)
/* f078fd0: 46100281 */ sub.s $f10,$f0,$f16
.L0f078fd4:
/* f078fd4: e50a008c */ swc1 $f10,0x8c($t0)
/* f078fd8: c500008c */ lwc1 $f0,0x8c($t0)
/* f078fdc: 4600803e */ c.le.s $f16,$f0
/* f078fe0: 00000000 */ nop
/* f078fe4: 4503fffb */ bc1tl .L0f078fd4
/* f078fe8: 46100281 */ sub.s $f10,$f0,$f16
/* f078fec: 1000032a */ b .L0f079c98
/* f078ff0: 8fbf001c */ lw $ra,0x1c($sp)
.L0f078ff4:
/* f078ff4: 910f00a9 */ lbu $t7,0xa9($t0)
/* f078ff8: 15e00004 */ bnez $t7,.L0f07900c
/* f078ffc: 3c09800a */ lui $t1,%hi(g_Vars)
/* f079000: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f079004: 10000096 */ b .L0f079260
/* f079008: afa3006c */ sw $v1,0x6c($sp)
.L0f07900c:
/* f07900c: 8d0200a4 */ lw $v0,0xa4($t0)
/* f079010: 3c09800a */ lui $t1,%hi(g_Vars)
/* f079014: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f079018: 50400004 */ beqzl $v0,.L0f07902c
/* f07901c: afa3006c */ sw $v1,0x6c($sp)
/* f079020: 1000008f */ b .L0f079260
/* f079024: afa2006c */ sw $v0,0x6c($sp)
/* f079028: afa3006c */ sw $v1,0x6c($sp)
.L0f07902c:
/* f07902c: 0fc6830c */ jal frIsInTraining
/* f079030: afa800ac */ sw $t0,0xac($sp)
/* f079034: 1040000a */ beqz $v0,.L0f079060
/* f079038: 8fa800ac */ lw $t0,0xac($sp)
/* f07903c: 8fa400b0 */ lw $a0,0xb0($sp)
/* f079040: afa800ac */ sw $t0,0xac($sp)
/* f079044: 0fc67ce7 */ jal frChooseAutogunTarget
/* f079048: 24840008 */ addiu $a0,$a0,0x8
/* f07904c: 3c09800a */ lui $t1,%hi(g_Vars)
/* f079050: 8fa800ac */ lw $t0,0xac($sp)
/* f079054: afa2006c */ sw $v0,0x6c($sp)
/* f079058: 10000081 */ b .L0f079260
/* f07905c: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
.L0f079060:
/* f079060: 911800a8 */ lbu $t8,0xa8($t0)
/* f079064: 3c09800a */ lui $t1,%hi(g_Vars)
/* f079068: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f07906c: 5300006b */ beqzl $t8,.L0f07921c
/* f079070: 8d2e0298 */ lw $t6,0x298($t1)
/* f079074: 3c09800a */ lui $t1,%hi(g_Vars)
/* f079078: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f07907c: 8d390318 */ lw $t9,0x318($t1)
/* f079080: 3c05800b */ lui $a1,%hi(g_MpNumChrs)
/* f079084: 13200003 */ beqz $t9,.L0f079094
/* f079088: 00000000 */ nop
/* f07908c: 10000007 */ b .L0f0790ac
/* f079090: 8ca5c530 */ lw $a1,%lo(g_MpNumChrs)($a1)
.L0f079094:
/* f079094: 0fc07934 */ jal chrsGetNumSlots
/* f079098: afa800ac */ sw $t0,0xac($sp)
/* f07909c: 3c09800a */ lui $t1,%hi(g_Vars)
/* f0790a0: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f0790a4: 8fa800ac */ lw $t0,0xac($sp)
/* f0790a8: 00402825 */ or $a1,$v0,$zero
.L0f0790ac:
/* f0790ac: 850300aa */ lh $v1,0xaa($t0)
.L0f0790b0:
/* f0790b0: 246a0001 */ addiu $t2,$v1,0x1
.L0f0790b4:
/* f0790b4: a50a00aa */ sh $t2,0xaa($t0)
/* f0790b8: 850300aa */ lh $v1,0xaa($t0)
/* f0790bc: 8fad00a8 */ lw $t5,0xa8($sp)
/* f0790c0: 3c198006 */ lui $t9,%hi(g_ChrSlots)
/* f0790c4: 0065082a */ slt $at,$v1,$a1
/* f0790c8: 14200004 */ bnez $at,.L0f0790dc
/* f0790cc: 0003c0c0 */ sll $t8,$v1,0x3
/* f0790d0: 240bffff */ addiu $t3,$zero,-1
/* f0790d4: 10000062 */ b .L0f079260
/* f0790d8: a50b00aa */ sh $t3,0xaa($t0)
.L0f0790dc:
/* f0790dc: 8d2c0318 */ lw $t4,0x318($t1)
/* f0790e0: 0303c023 */ subu $t8,$t8,$v1
/* f0790e4: 0018c080 */ sll $t8,$t8,0x2
/* f0790e8: 1180001c */ beqz $t4,.L0f07915c
/* f0790ec: 0303c023 */ subu $t8,$t8,$v1
/* f0790f0: 8da20040 */ lw $v0,0x40($t5)
/* f0790f4: 3c01f000 */ lui $at,0xf000
/* f0790f8: 0003c080 */ sll $t8,$v1,0x2
/* f0790fc: 00417024 */ and $t6,$v0,$at
/* f079100: 000e7f02 */ srl $t7,$t6,0x1c
/* f079104: 11e3ffea */ beq $t7,$v1,.L0f0790b0
/* f079108: 3c04800b */ lui $a0,%hi(g_MpAllChrPtrs)
/* f07910c: 00982021 */ addu $a0,$a0,$t8
/* f079110: 8c84c4d0 */ lw $a0,%lo(g_MpAllChrPtrs)($a0)
/* f079114: 8c99001c */ lw $t9,0x1c($a0)
/* f079118: 5320ffe6 */ beqzl $t9,.L0f0790b4
/* f07911c: 246a0001 */ addiu $t2,$v1,0x1
/* f079120: 8c8a0020 */ lw $t2,0x20($a0)
/* f079124: 3c0b800b */ lui $t3,%hi(g_MpSetup+0xc)
/* f079128: 5140ffe2 */ beqzl $t2,.L0f0790b4
/* f07912c: 246a0001 */ addiu $t2,$v1,0x1
/* f079130: 8d6bcb94 */ lw $t3,%lo(g_MpSetup+0xc)($t3)
/* f079134: 316c0002 */ andi $t4,$t3,0x2
/* f079138: 51800021 */ beqzl $t4,.L0f0791c0
/* f07913c: 8c990018 */ lw $t9,0x18($a0)
/* f079140: 908d0125 */ lbu $t5,0x125($a0)
/* f079144: 910e00a8 */ lbu $t6,0xa8($t0)
/* f079148: 01ae7824 */ and $t7,$t5,$t6
/* f07914c: 55e0001c */ bnezl $t7,.L0f0791c0
/* f079150: 8c990018 */ lw $t9,0x18($a0)
/* f079154: 1000ffd7 */ b .L0f0790b4
/* f079158: 246a0001 */ addiu $t2,$v1,0x1
.L0f07915c:
/* f07915c: 8f392988 */ lw $t9,%lo(g_ChrSlots)($t9)
/* f079160: 0018c080 */ sll $t8,$t8,0x2
/* f079164: 0303c021 */ addu $t8,$t8,$v1
/* f079168: 0018c0c0 */ sll $t8,$t8,0x3
/* f07916c: 03192021 */ addu $a0,$t8,$t9
/* f079170: 8c82001c */ lw $v0,0x1c($a0)
/* f079174: 5040ffcf */ beqzl $v0,.L0f0790b4
/* f079178: 246a0001 */ addiu $t2,$v1,0x1
/* f07917c: 908a0125 */ lbu $t2,0x125($a0)
/* f079180: 910b00a8 */ lbu $t3,0xa8($t0)
/* f079184: 014b6024 */ and $t4,$t2,$t3
/* f079188: 5180ffca */ beqzl $t4,.L0f0790b4
/* f07918c: 246a0001 */ addiu $t2,$v1,0x1
/* f079190: 8c8d0020 */ lw $t5,0x20($a0)
/* f079194: 51a00006 */ beqzl $t5,.L0f0791b0
/* f079198: 90580000 */ lbu $t8,0x0($v0)
/* f07919c: 904e0001 */ lbu $t6,0x1($v0)
/* f0791a0: 31cf0004 */ andi $t7,$t6,0x4
/* f0791a4: 55e00006 */ bnezl $t7,.L0f0791c0
/* f0791a8: 8c990018 */ lw $t9,0x18($a0)
/* f0791ac: 90580000 */ lbu $t8,0x0($v0)
.L0f0791b0:
/* f0791b0: 24010006 */ addiu $at,$zero,0x6
/* f0791b4: 5701ffbf */ bnel $t8,$at,.L0f0790b4
/* f0791b8: 246a0001 */ addiu $t2,$v1,0x1
/* f0791bc: 8c990018 */ lw $t9,0x18($a0)
.L0f0791c0:
/* f0791c0: 332a0400 */ andi $t2,$t9,0x400
/* f0791c4: 15400012 */ bnez $t2,.L0f079210
/* f0791c8: 00000000 */ nop
/* f0791cc: 8c8b0014 */ lw $t3,0x14($a0)
/* f0791d0: 000b6080 */ sll $t4,$t3,0x2
/* f0791d4: 0580000e */ bltz $t4,.L0f079210
/* f0791d8: 00000000 */ nop
/* f0791dc: afa40058 */ sw $a0,0x58($sp)
/* f0791e0: afa5005c */ sw $a1,0x5c($sp)
/* f0791e4: 0fc0e6a5 */ jal chrIsDead
/* f0791e8: afa800ac */ sw $t0,0xac($sp)
/* f0791ec: 3c09800a */ lui $t1,%hi(g_Vars)
/* f0791f0: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f0791f4: 8fa40058 */ lw $a0,0x58($sp)
/* f0791f8: 8fa5005c */ lw $a1,0x5c($sp)
/* f0791fc: 14400004 */ bnez $v0,.L0f079210
/* f079200: 8fa800ac */ lw $t0,0xac($sp)
/* f079204: 8c8d001c */ lw $t5,0x1c($a0)
/* f079208: 10000015 */ b .L0f079260
/* f07920c: afad006c */ sw $t5,0x6c($sp)
.L0f079210:
/* f079210: 1000ffa7 */ b .L0f0790b0
/* f079214: 850300aa */ lh $v1,0xaa($t0)
/* f079218: 8d2e0298 */ lw $t6,0x298($t1)
.L0f07921c:
/* f07921c: 05c2000e */ bltzl $t6,.L0f079258
/* f079220: 8d2d02a0 */ lw $t5,0x2a0($t1)
/* f079224: 8d2f000c */ lw $t7,0xc($t1)
/* f079228: 31f80001 */ andi $t8,$t7,0x1
/* f07922c: 53000006 */ beqzl $t8,.L0f079248
/* f079230: 8d2b02a4 */ lw $t3,0x2a4($t1)
/* f079234: 8d3902a0 */ lw $t9,0x2a0($t1)
/* f079238: 8f2a00bc */ lw $t2,0xbc($t9)
/* f07923c: 10000008 */ b .L0f079260
/* f079240: afaa006c */ sw $t2,0x6c($sp)
/* f079244: 8d2b02a4 */ lw $t3,0x2a4($t1)
.L0f079248:
/* f079248: 8d6c00bc */ lw $t4,0xbc($t3)
/* f07924c: 10000004 */ b .L0f079260
/* f079250: afac006c */ sw $t4,0x6c($sp)
/* f079254: 8d2d02a0 */ lw $t5,0x2a0($t1)
.L0f079258:
/* f079258: 8dae00bc */ lw $t6,0xbc($t5)
/* f07925c: afae006c */ sw $t6,0x6c($sp)
.L0f079260:
/* f079260: 8fa3006c */ lw $v1,0x6c($sp)
/* f079264: 50600016 */ beqzl $v1,.L0f0792c0
/* f079268: 8fa3006c */ lw $v1,0x6c($sp)
/* f07926c: 8c6f0004 */ lw $t7,0x4($v1)
/* f079270: 55e00004 */ bnezl $t7,.L0f079284
/* f079274: 90620000 */ lbu $v0,0x0($v1)
/* f079278: 10000010 */ b .L0f0792bc
/* f07927c: afa0006c */ sw $zero,0x6c($sp)
/* f079280: 90620000 */ lbu $v0,0x0($v1)
.L0f079284:
/* f079284: 24010003 */ addiu $at,$zero,0x3
/* f079288: afa3006c */ sw $v1,0x6c($sp)
/* f07928c: 1041000b */ beq $v0,$at,.L0f0792bc
/* f079290: 24010006 */ addiu $at,$zero,0x6
/* f079294: 10410009 */ beq $v0,$at,.L0f0792bc
/* f079298: afa3006c */ sw $v1,0x6c($sp)
/* f07929c: afa3006c */ sw $v1,0x6c($sp)
/* f0792a0: 0fc6830c */ jal frIsInTraining
/* f0792a4: afa800ac */ sw $t0,0xac($sp)
/* f0792a8: 3c09800a */ lui $t1,%hi(g_Vars)
/* f0792ac: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f0792b0: 14400002 */ bnez $v0,.L0f0792bc
/* f0792b4: 8fa800ac */ lw $t0,0xac($sp)
/* f0792b8: afa0006c */ sw $zero,0x6c($sp)
.L0f0792bc:
/* f0792bc: 8fa3006c */ lw $v1,0x6c($sp)
.L0f0792c0:
/* f0792c0: c5060074 */ lwc1 $f6,0x74($t0)
/* f0792c4: c5120060 */ lwc1 $f18,0x60($t0)
/* f0792c8: 10600152 */ beqz $v1,.L0f079814
/* f0792cc: e7a600a0 */ swc1 $f6,0xa0($sp)
/* f0792d0: 8fb800b0 */ lw $t8,0xb0($sp)
/* f0792d4: c46e0008 */ lwc1 $f14,0x8($v1)
/* f0792d8: 90790000 */ lbu $t9,0x0($v1)
/* f0792dc: c70c0008 */ lwc1 $f12,0x8($t8)
/* f0792e0: c46a000c */ lwc1 $f10,0xc($v1)
/* f0792e4: c708000c */ lwc1 $f8,0xc($t8)
/* f0792e8: 460c7081 */ sub.s $f2,$f14,$f12
/* f0792ec: c46c0010 */ lwc1 $f12,0x10($v1)
/* f0792f0: c70e0010 */ lwc1 $f14,0x10($t8)
/* f0792f4: 46085001 */ sub.s $f0,$f10,$f8
/* f0792f8: 24010006 */ addiu $at,$zero,0x6
/* f0792fc: 17210005 */ bne $t9,$at,.L0f079314
/* f079300: 460e6401 */ sub.s $f16,$f12,$f14
/* f079304: 3c0141a0 */ lui $at,0x41a0
/* f079308: 44815000 */ mtc1 $at,$f10
/* f07930c: 00000000 */ nop
/* f079310: 460a0001 */ sub.s $f0,$f0,$f10
.L0f079314:
/* f079314: 46021182 */ mul.s $f6,$f2,$f2
/* f079318: afa3006c */ sw $v1,0x6c($sp)
/* f07931c: afa800ac */ sw $t0,0xac($sp)
/* f079320: 46108202 */ mul.s $f8,$f16,$f16
/* f079324: e7a00090 */ swc1 $f0,0x90($sp)
/* f079328: e7a20094 */ swc1 $f2,0x94($sp)
/* f07932c: e7b0008c */ swc1 $f16,0x8c($sp)
/* f079330: e7b200a4 */ swc1 $f18,0xa4($sp)
/* f079334: 46083300 */ add.s $f12,$f6,$f8
/* f079338: e7ac0088 */ swc1 $f12,0x88($sp)
/* f07933c: 0c012974 */ jal sqrtf
/* f079340: e7ac0024 */ swc1 $f12,0x24($sp)
/* f079344: 8faa00a8 */ lw $t2,0xa8($sp)
/* f079348: e7a00080 */ swc1 $f0,0x80($sp)
/* f07934c: 8fa800ac */ lw $t0,0xac($sp)
/* f079350: 8d4b0008 */ lw $t3,0x8($t2)
/* f079354: c7ae0024 */ lwc1 $f14,0x24($sp)
/* f079358: c7b200a4 */ lwc1 $f18,0xa4($sp)
/* f07935c: 000b6100 */ sll $t4,$t3,0x4
/* f079360: 0581000b */ bgez $t4,.L0f079390
/* f079364: 46000086 */ mov.s $f2,$f0
/* f079368: c7a00090 */ lwc1 $f0,0x90($sp)
/* f07936c: afa800ac */ sw $t0,0xac($sp)
/* f079370: e7b200a4 */ swc1 $f18,0xa4($sp)
/* f079374: 46000102 */ mul.s $f4,$f0,$f0
/* f079378: 46047300 */ add.s $f12,$f14,$f4
/* f07937c: 0c012974 */ jal sqrtf
/* f079380: e7ac0088 */ swc1 $f12,0x88($sp)
/* f079384: 8fa800ac */ lw $t0,0xac($sp)
/* f079388: c7b200a4 */ lwc1 $f18,0xa4($sp)
/* f07938c: 46000086 */ mov.s $f2,$f0
.L0f079390:
/* f079390: c7ac0088 */ lwc1 $f12,0x88($sp)
/* f079394: afa800ac */ sw $t0,0xac($sp)
/* f079398: e7a20084 */ swc1 $f2,0x84($sp)
/* f07939c: 0fc0fe84 */ jal chrGetAimLimitAngle
/* f0793a0: e7b200a4 */ swc1 $f18,0xa4($sp)
/* f0793a4: 8fa800ac */ lw $t0,0xac($sp)
/* f0793a8: e7a00070 */ swc1 $f0,0x70($sp)
/* f0793ac: c7a20084 */ lwc1 $f2,0x84($sp)
/* f0793b0: c50a0084 */ lwc1 $f10,0x84($t0)
/* f0793b4: 3c09800a */ lui $t1,%hi(g_Vars)
/* f0793b8: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f0793bc: 460a103e */ c.le.s $f2,$f10
/* f0793c0: c7b200a4 */ lwc1 $f18,0xa4($sp)
/* f0793c4: c7ac0094 */ lwc1 $f12,0x94($sp)
/* f0793c8: c7ae008c */ lwc1 $f14,0x8c($sp)
/* f0793cc: 45020112 */ bc1fl .L0f079818
/* f0793d0: 8fb8007c */ lw $t8,0x7c($sp)
/* f0793d4: afa800ac */ sw $t0,0xac($sp)
/* f0793d8: 0fc259d4 */ jal atan2f
/* f0793dc: e7b200a4 */ swc1 $f18,0xa4($sp)
/* f0793e0: e7a00050 */ swc1 $f0,0x50($sp)
/* f0793e4: c7ac0090 */ lwc1 $f12,0x90($sp)
/* f0793e8: 0fc259d4 */ jal atan2f
/* f0793ec: c7ae0080 */ lwc1 $f14,0x80($sp)
/* f0793f0: 8fae00a8 */ lw $t6,0xa8($sp)
/* f0793f4: e7a0004c */ swc1 $f0,0x4c($sp)
/* f0793f8: 3c09800a */ lui $t1,%hi(g_Vars)
/* f0793fc: 8dc20008 */ lw $v0,0x8($t6)
/* f079400: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f079404: 3c054000 */ lui $a1,0x4000
/* f079408: 00027840 */ sll $t7,$v0,0x1
/* f07940c: 8fa800ac */ lw $t0,0xac($sp)
/* f079410: 05e00004 */ bltz $t7,.L0f079424
/* f079414: c7b200a4 */ lwc1 $f18,0xa4($sp)
/* f079418: 0002c080 */ sll $t8,$v0,0x2
/* f07941c: 07010006 */ bgez $t8,.L0f079438
/* f079420: c7a60050 */ lwc1 $f6,0x50($sp)
.L0f079424:
/* f079424: 24190001 */ addiu $t9,$zero,0x1
/* f079428: 3c017f1b */ lui $at,%hi(var7f1aa508)
/* f07942c: c430a508 */ lwc1 $f16,%lo(var7f1aa508)($at)
/* f079430: 10000029 */ b .L0f0794d8
/* f079434: afb9007c */ sw $t9,0x7c($sp)
.L0f079438:
/* f079438: c508006c */ lwc1 $f8,0x6c($t0)
/* f07943c: 44802000 */ mtc1 $zero,$f4
/* f079440: 3c017f1b */ lui $at,%hi(var7f1aa50c)
/* f079444: 46083301 */ sub.s $f12,$f6,$f8
/* f079448: 4604603c */ c.lt.s $f12,$f4
/* f07944c: 00000000 */ nop
/* f079450: 45000003 */ bc1f .L0f079460
/* f079454: 00000000 */ nop
/* f079458: c430a50c */ lwc1 $f16,%lo(var7f1aa50c)($at)
/* f07945c: 46106300 */ add.s $f12,$f12,$f16
.L0f079460:
/* f079460: 3c017f1b */ lui $at,%hi(var7f1aa510)
/* f079464: c430a510 */ lwc1 $f16,%lo(var7f1aa510)($at)
/* f079468: 3c017f1b */ lui $at,%hi(var7f1aa514)
/* f07946c: c42aa514 */ lwc1 $f10,%lo(var7f1aa514)($at)
/* f079470: 3c017f1b */ lui $at,%hi(var7f1aa518)
/* f079474: 460c503c */ c.lt.s $f10,$f12
/* f079478: 00000000 */ nop
/* f07947c: 45020003 */ bc1fl .L0f07948c
/* f079480: c5060078 */ lwc1 $f6,0x78($t0)
/* f079484: 46106301 */ sub.s $f12,$f12,$f16
/* f079488: c5060078 */ lwc1 $f6,0x78($t0)
.L0f07948c:
/* f07948c: 44804000 */ mtc1 $zero,$f8
/* f079490: 46060081 */ sub.s $f2,$f0,$f6
/* f079494: 4608103c */ c.lt.s $f2,$f8
/* f079498: 00000000 */ nop
/* f07949c: 45000001 */ bc1f .L0f0794a4
/* f0794a0: 00000000 */ nop
.L0f0794a4:
/* f0794a4: c424a518 */ lwc1 $f4,%lo(var7f1aa518)($at)
/* f0794a8: 3c017f1b */ lui $at,%hi(var7f1aa51c)
/* f0794ac: 4604603c */ c.lt.s $f12,$f4
/* f0794b0: 00000000 */ nop
/* f0794b4: 45020009 */ bc1fl .L0f0794dc
/* f0794b8: 8fab007c */ lw $t3,0x7c($sp)
/* f0794bc: c42aa51c */ lwc1 $f10,%lo(var7f1aa51c)($at)
/* f0794c0: 240a0001 */ addiu $t2,$zero,0x1
/* f0794c4: 460c503c */ c.lt.s $f10,$f12
/* f0794c8: 00000000 */ nop
/* f0794cc: 45020003 */ bc1fl .L0f0794dc
/* f0794d0: 8fab007c */ lw $t3,0x7c($sp)
/* f0794d4: afaa007c */ sw $t2,0x7c($sp)
.L0f0794d8:
/* f0794d8: 8fab007c */ lw $t3,0x7c($sp)
.L0f0794dc:
/* f0794dc: c7a60050 */ lwc1 $f6,0x50($sp)
/* f0794e0: 8fac006c */ lw $t4,0x6c($sp)
/* f0794e4: 516000cc */ beqzl $t3,.L0f079818
/* f0794e8: 8fb8007c */ lw $t8,0x7c($sp)
/* f0794ec: c5080060 */ lwc1 $f8,0x60($t0)
/* f0794f0: 3c017f1b */ lui $at,%hi(var7f1aa520)
/* f0794f4: c424a520 */ lwc1 $f4,%lo(var7f1aa520)($at)
/* f0794f8: 46083001 */ sub.s $f0,$f6,$f8
/* f0794fc: 24030001 */ addiu $v1,$zero,0x1
/* f079500: 3c017f1b */ lui $at,%hi(var7f1aa524)
/* f079504: 4604003c */ c.lt.s $f0,$f4
/* f079508: 00000000 */ nop
/* f07950c: 45000003 */ bc1f .L0f07951c
/* f079510: 00000000 */ nop
/* f079514: 10000007 */ b .L0f079534
/* f079518: 46100000 */ add.s $f0,$f0,$f16
.L0f07951c:
/* f07951c: c42aa524 */ lwc1 $f10,%lo(var7f1aa524)($at)
/* f079520: 4600503e */ c.le.s $f10,$f0
/* f079524: 00000000 */ nop
/* f079528: 45020003 */ bc1fl .L0f079538
/* f07952c: 91820000 */ lbu $v0,0x0($t4)
/* f079530: 46100001 */ sub.s $f0,$f0,$f16
.L0f079534:
/* f079534: 91820000 */ lbu $v0,0x0($t4)
.L0f079538:
/* f079538: 24010006 */ addiu $at,$zero,0x6
/* f07953c: 54410022 */ bnel $v0,$at,.L0f0795c8
/* f079540: 24010003 */ addiu $at,$zero,0x3
/* f079544: 8d2d0324 */ lw $t5,0x324($t1)
/* f079548: 01802025 */ or $a0,$t4,$zero
/* f07954c: 11a0001b */ beqz $t5,.L0f0795bc
/* f079550: 00000000 */ nop
/* f079554: afa30044 */ sw $v1,0x44($sp)
/* f079558: afa800ac */ sw $t0,0xac($sp)
/* f07955c: e7a00048 */ swc1 $f0,0x48($sp)
/* f079560: 0fc4a25f */ jal playermgrGetPlayerNumByProp
/* f079564: e7b200a4 */ swc1 $f18,0xa4($sp)
/* f079568: 3c09800a */ lui $t1,%hi(g_Vars)
/* f07956c: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f079570: 00027080 */ sll $t6,$v0,0x2
/* f079574: 012e7821 */ addu $t7,$t1,$t6
/* f079578: 8df80064 */ lw $t8,0x64($t7)
/* f07957c: 8fa30044 */ lw $v1,0x44($sp)
/* f079580: 8fa800ac */ lw $t0,0xac($sp)
/* f079584: 8f1900d8 */ lw $t9,0xd8($t8)
/* f079588: c7a00048 */ lwc1 $f0,0x48($sp)
/* f07958c: c7b200a4 */ lwc1 $f18,0xa4($sp)
/* f079590: 1720000a */ bnez $t9,.L0f0795bc
/* f079594: 8faa006c */ lw $t2,0x6c($sp)
/* f079598: 8d420004 */ lw $v0,0x4($t2)
/* f07959c: 8c4b0018 */ lw $t3,0x18($v0)
/* f0795a0: 316d0400 */ andi $t5,$t3,0x400
/* f0795a4: 15a00005 */ bnez $t5,.L0f0795bc
/* f0795a8: 00000000 */ nop
/* f0795ac: 8c4c0014 */ lw $t4,0x14($v0)
/* f0795b0: 000c7080 */ sll $t6,$t4,0x2
/* f0795b4: 05c30043 */ bgezl $t6,.L0f0796c4
/* f0795b8: 8fa400b0 */ lw $a0,0xb0($sp)
.L0f0795bc:
/* f0795bc: 10000040 */ b .L0f0796c0
/* f0795c0: 00001825 */ or $v1,$zero,$zero
/* f0795c4: 24010003 */ addiu $at,$zero,0x3
.L0f0795c8:
/* f0795c8: 14410024 */ bne $v0,$at,.L0f07965c
/* f0795cc: 8faf006c */ lw $t7,0x6c($sp)
/* f0795d0: 8de40004 */ lw $a0,0x4($t7)
/* f0795d4: 1080001f */ beqz $a0,.L0f079654
/* f0795d8: 00000000 */ nop
/* f0795dc: 8c980018 */ lw $t8,0x18($a0)
/* f0795e0: 33190400 */ andi $t9,$t8,0x400
/* f0795e4: 1720001b */ bnez $t9,.L0f079654
/* f0795e8: 00000000 */ nop
/* f0795ec: 8c820014 */ lw $v0,0x14($a0)
/* f0795f0: 00025080 */ sll $t2,$v0,0x2
/* f0795f4: 05400017 */ bltz $t2,.L0f079654
/* f0795f8: 00455824 */ and $t3,$v0,$a1
/* f0795fc: 15600015 */ bnez $t3,.L0f079654
/* f079600: 00000000 */ nop
/* f079604: afa30044 */ sw $v1,0x44($sp)
/* f079608: afa40040 */ sw $a0,0x40($sp)
/* f07960c: afa800ac */ sw $t0,0xac($sp)
/* f079610: e7a00048 */ swc1 $f0,0x48($sp)
/* f079614: 0fc0e6a5 */ jal chrIsDead
/* f079618: e7b200a4 */ swc1 $f18,0xa4($sp)
/* f07961c: 8fa30044 */ lw $v1,0x44($sp)
/* f079620: 8fa40040 */ lw $a0,0x40($sp)
/* f079624: 8fa800ac */ lw $t0,0xac($sp)
/* f079628: c7a00048 */ lwc1 $f0,0x48($sp)
/* f07962c: 14400009 */ bnez $v0,.L0f079654
/* f079630: c7b200a4 */ lwc1 $f18,0xa4($sp)
/* f079634: 80820007 */ lb $v0,0x7($a0)
/* f079638: 24010020 */ addiu $at,$zero,0x20
/* f07963c: 10410005 */ beq $v0,$at,.L0f079654
/* f079640: 2401001e */ addiu $at,$zero,0x1e
/* f079644: 10410003 */ beq $v0,$at,.L0f079654
/* f079648: 2401001f */ addiu $at,$zero,0x1f
/* f07964c: 5441001d */ bnel $v0,$at,.L0f0796c4
/* f079650: 8fa400b0 */ lw $a0,0xb0($sp)
.L0f079654:
/* f079654: 1000001a */ b .L0f0796c0
/* f079658: 00001825 */ or $v1,$zero,$zero
.L0f07965c:
/* f07965c: 24010001 */ addiu $at,$zero,0x1
/* f079660: 14410017 */ bne $v0,$at,.L0f0796c0
/* f079664: 8fad006c */ lw $t5,0x6c($sp)
/* f079668: 8da20004 */ lw $v0,0x4($t5)
/* f07966c: 50400014 */ beqzl $v0,.L0f0796c0
/* f079670: 00001825 */ or $v1,$zero,$zero
/* f079674: 844c0004 */ lh $t4,0x4($v0)
/* f079678: 2401014c */ addiu $at,$zero,0x14c
/* f07967c: 01a02025 */ or $a0,$t5,$zero
/* f079680: 1581000e */ bne $t4,$at,.L0f0796bc
/* f079684: 8fa500b0 */ lw $a1,0xb0($sp)
/* f079688: 24a50008 */ addiu $a1,$a1,0x8
/* f07968c: afa30044 */ sw $v1,0x44($sp)
/* f079690: afa800ac */ sw $t0,0xac($sp)
/* f079694: e7a00048 */ swc1 $f0,0x48($sp)
/* f079698: 0fc67cbb */ jal frIsTargetFacingPos
/* f07969c: e7b200a4 */ swc1 $f18,0xa4($sp)
/* f0796a0: 8fa30044 */ lw $v1,0x44($sp)
/* f0796a4: 8fa800ac */ lw $t0,0xac($sp)
/* f0796a8: c7a00048 */ lwc1 $f0,0x48($sp)
/* f0796ac: 14400004 */ bnez $v0,.L0f0796c0
/* f0796b0: c7b200a4 */ lwc1 $f18,0xa4($sp)
/* f0796b4: 10000002 */ b .L0f0796c0
/* f0796b8: 00001825 */ or $v1,$zero,$zero
.L0f0796bc:
/* f0796bc: 00001825 */ or $v1,$zero,$zero
.L0f0796c0:
/* f0796c0: 8fa400b0 */ lw $a0,0xb0($sp)
.L0f0796c4:
/* f0796c4: 00002825 */ or $a1,$zero,$zero
/* f0796c8: afa30044 */ sw $v1,0x44($sp)
/* f0796cc: afa800ac */ sw $t0,0xac($sp)
/* f0796d0: e7a00048 */ swc1 $f0,0x48($sp)
/* f0796d4: 0fc1905e */ jal propSetPerimEnabled
/* f0796d8: e7b200a4 */ swc1 $f18,0xa4($sp)
/* f0796dc: 8fa4006c */ lw $a0,0x6c($sp)
/* f0796e0: 0fc1905e */ jal propSetPerimEnabled
/* f0796e4: 00002825 */ or $a1,$zero,$zero
/* f0796e8: 8fa800ac */ lw $t0,0xac($sp)
/* f0796ec: c7a00048 */ lwc1 $f0,0x48($sp)
/* f0796f0: 3c09800a */ lui $t1,%hi(g_Vars)
/* f0796f4: c5060064 */ lwc1 $f6,0x64($t0)
/* f0796f8: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f0796fc: 8fa30044 */ lw $v1,0x44($sp)
/* f079700: 4606003e */ c.le.s $f0,$f6
/* f079704: c7b200a4 */ lwc1 $f18,0xa4($sp)
/* f079708: 4502002a */ bc1fl .L0f0797b4
/* f07970c: 8d020090 */ lw $v0,0x90($t0)
/* f079710: c5080068 */ lwc1 $f8,0x68($t0)
/* f079714: 4600403e */ c.le.s $f8,$f0
/* f079718: 00000000 */ nop
/* f07971c: 45020025 */ bc1fl .L0f0797b4
/* f079720: 8d020090 */ lw $v0,0x90($t0)
/* f079724: 10600022 */ beqz $v1,.L0f0797b0
/* f079728: 8fa200b0 */ lw $v0,0xb0($sp)
/* f07972c: 8fae006c */ lw $t6,0x6c($sp)
/* f079730: 240f003f */ addiu $t7,$zero,0x3f
/* f079734: 24180008 */ addiu $t8,$zero,0x8
/* f079738: afb80014 */ sw $t8,0x14($sp)
/* f07973c: afaf0010 */ sw $t7,0x10($sp)
/* f079740: 24440008 */ addiu $a0,$v0,0x8
/* f079744: 24450028 */ addiu $a1,$v0,0x28
/* f079748: afa800ac */ sw $t0,0xac($sp)
/* f07974c: e7b200a4 */ swc1 $f18,0xa4($sp)
/* f079750: 25c60008 */ addiu $a2,$t6,0x8
/* f079754: 0c00b70f */ jal cdHasLineOfSight
/* f079758: 25c70028 */ addiu $a3,$t6,0x28
/* f07975c: 3c09800a */ lui $t1,%hi(g_Vars)
/* f079760: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f079764: 8fa800ac */ lw $t0,0xac($sp)
/* f079768: 10400011 */ beqz $v0,.L0f0797b0
/* f07976c: c7b200a4 */ lwc1 $f18,0xa4($sp)
/* f079770: 8fa200a8 */ lw $v0,0xa8($sp)
/* f079774: 3c012000 */ lui $at,0x2000
/* f079778: 240b0001 */ addiu $t3,$zero,0x1
/* f07977c: 8c590008 */ lw $t9,0x8($v0)
/* f079780: 03215025 */ or $t2,$t9,$at
/* f079784: ac4a0008 */ sw $t2,0x8($v0)
/* f079788: c7a4004c */ lwc1 $f4,0x4c($sp)
/* f07978c: afab0074 */ sw $t3,0x74($sp)
/* f079790: c7b20050 */ lwc1 $f18,0x50($sp)
/* f079794: e7a400a0 */ swc1 $f4,0xa0($sp)
/* f079798: 8d0c00a4 */ lw $t4,0xa4($t0)
/* f07979c: 8fad006c */ lw $t5,0x6c($sp)
/* f0797a0: 55800011 */ bnezl $t4,.L0f0797e8
/* f0797a4: 8fa400b0 */ lw $a0,0xb0($sp)
/* f0797a8: 1000000e */ b .L0f0797e4
/* f0797ac: ad0d00a4 */ sw $t5,0xa4($t0)
.L0f0797b0:
/* f0797b0: 8d020090 */ lw $v0,0x90($t0)
.L0f0797b4:
/* f0797b4: 0442000b */ bltzl $v0,.L0f0797e4
/* f0797b8: afa0007c */ sw $zero,0x7c($sp)
/* f0797bc: 8d2e0008 */ lw $t6,0x8($t1)
/* f0797c0: 25cfff88 */ addiu $t7,$t6,-120
/* f0797c4: 01e2082a */ slt $at,$t7,$v0
/* f0797c8: 50200006 */ beqzl $at,.L0f0797e4
/* f0797cc: afa0007c */ sw $zero,0x7c($sp)
/* f0797d0: c50a0078 */ lwc1 $f10,0x78($t0)
/* f0797d4: c512006c */ lwc1 $f18,0x6c($t0)
/* f0797d8: 10000002 */ b .L0f0797e4
/* f0797dc: e7aa00a0 */ swc1 $f10,0xa0($sp)
/* f0797e0: afa0007c */ sw $zero,0x7c($sp)
.L0f0797e4:
/* f0797e4: 8fa400b0 */ lw $a0,0xb0($sp)
.L0f0797e8:
/* f0797e8: 24050001 */ addiu $a1,$zero,0x1
/* f0797ec: afa800ac */ sw $t0,0xac($sp)
/* f0797f0: 0fc1905e */ jal propSetPerimEnabled
/* f0797f4: e7b200a4 */ swc1 $f18,0xa4($sp)
/* f0797f8: 8fa4006c */ lw $a0,0x6c($sp)
/* f0797fc: 0fc1905e */ jal propSetPerimEnabled
/* f079800: 24050001 */ addiu $a1,$zero,0x1
/* f079804: 3c09800a */ lui $t1,%hi(g_Vars)
/* f079808: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f07980c: 8fa800ac */ lw $t0,0xac($sp)
/* f079810: c7b200a4 */ lwc1 $f18,0xa4($sp)
.L0f079814:
/* f079814: 8fb8007c */ lw $t8,0x7c($sp)
.L0f079818:
/* f079818: 3c017f1b */ lui $at,%hi(var7f1aa548)
/* f07981c: c430a548 */ lwc1 $f16,%lo(var7f1aa548)($at)
/* f079820: 57000003 */ bnezl $t8,.L0f079830
/* f079824: 8119005e */ lb $t9,0x5e($t0)
/* f079828: ad0000a4 */ sw $zero,0xa4($t0)
/* f07982c: 8119005e */ lb $t9,0x5e($t0)
.L0f079830:
/* f079830: 53200024 */ beqzl $t9,.L0f0798c4
/* f079834: c5020060 */ lwc1 $f2,0x60($t0)
/* f079838: 8d2a0008 */ lw $t2,0x8($t1)
/* f07983c: 24010078 */ addiu $at,$zero,0x78
/* f079840: afa800ac */ sw $t0,0xac($sp)
/* f079844: 0141001a */ div $zero,$t2,$at
/* f079848: 00005810 */ mfhi $t3
/* f07984c: 448b3000 */ mtc1 $t3,$f6
/* f079850: 3c017f1b */ lui $at,%hi(var7f1aa54c)
/* f079854: c424a54c */ lwc1 $f4,%lo(var7f1aa54c)($at)
/* f079858: 46803220 */ cvt.s.w $f8,$f6
/* f07985c: e7b200a4 */ swc1 $f18,0xa4($sp)
/* f079860: 46044302 */ mul.s $f12,$f8,$f4
/* f079864: 0c0068f7 */ jal sinf
/* f079868: 00000000 */ nop
/* f07986c: 3c017f1b */ lui $at,%hi(var7f1aa550)
/* f079870: c430a550 */ lwc1 $f16,%lo(var7f1aa550)($at)
/* f079874: 3c017f1b */ lui $at,%hi(var7f1aa554)
/* f079878: c426a554 */ lwc1 $f6,%lo(var7f1aa554)($at)
/* f07987c: c7aa0070 */ lwc1 $f10,0x70($sp)
/* f079880: c7b200a4 */ lwc1 $f18,0xa4($sp)
/* f079884: 8fa800ac */ lw $t0,0xac($sp)
/* f079888: 46065202 */ mul.s $f8,$f10,$f6
/* f07988c: 44805000 */ mtc1 $zero,$f10
/* f079890: 46004102 */ mul.s $f4,$f8,$f0
/* f079894: 46049480 */ add.s $f18,$f18,$f4
/* f079898: 460a903c */ c.lt.s $f18,$f10
/* f07989c: 00000000 */ nop
/* f0798a0: 45020003 */ bc1fl .L0f0798b0
/* f0798a4: 4612803e */ c.le.s $f16,$f18
/* f0798a8: 46109480 */ add.s $f18,$f18,$f16
/* f0798ac: 4612803e */ c.le.s $f16,$f18
.L0f0798b0:
/* f0798b0: 00000000 */ nop
/* f0798b4: 45020003 */ bc1fl .L0f0798c4
/* f0798b8: c5020060 */ lwc1 $f2,0x60($t0)
/* f0798bc: 46109481 */ sub.s $f18,$f18,$f16
/* f0798c0: c5020060 */ lwc1 $f2,0x60($t0)
.L0f0798c4:
/* f0798c4: 3c017f1b */ lui $at,%hi(var7f1aa558)
/* f0798c8: c426a558 */ lwc1 $f6,%lo(var7f1aa558)($at)
/* f0798cc: 46029001 */ sub.s $f0,$f18,$f2
/* f0798d0: 44802000 */ mtc1 $zero,$f4
/* f0798d4: 2504006c */ addiu $a0,$t0,0x6c
/* f0798d8: 4606003c */ c.lt.s $f0,$f6
/* f0798dc: 00000000 */ nop
/* f0798e0: 45000003 */ bc1f .L0f0798f0
/* f0798e4: 00000000 */ nop
/* f0798e8: 10000008 */ b .L0f07990c
/* f0798ec: 46100000 */ add.s $f0,$f0,$f16
.L0f0798f0:
/* f0798f0: 3c017f1b */ lui $at,%hi(var7f1aa55c)
/* f0798f4: c428a55c */ lwc1 $f8,%lo(var7f1aa55c)($at)
/* f0798f8: 4600403e */ c.le.s $f8,$f0
/* f0798fc: 00000000 */ nop
/* f079900: 45020003 */ bc1fl .L0f079910
/* f079904: c50c0064 */ lwc1 $f12,0x64($t0)
/* f079908: 46100001 */ sub.s $f0,$f0,$f16
.L0f07990c:
/* f07990c: c50c0064 */ lwc1 $f12,0x64($t0)
.L0f079910:
/* f079910: 3c017f1b */ lui $at,%hi(var7f1aa560)
/* f079914: 4600603c */ c.lt.s $f12,$f0
/* f079918: 00000000 */ nop
/* f07991c: 45020004 */ bc1fl .L0f079930
/* f079920: c50c0068 */ lwc1 $f12,0x68($t0)
/* f079924: 10000007 */ b .L0f079944
/* f079928: 460c1480 */ add.s $f18,$f2,$f12
/* f07992c: c50c0068 */ lwc1 $f12,0x68($t0)
.L0f079930:
/* f079930: 460c003c */ c.lt.s $f0,$f12
/* f079934: 00000000 */ nop
/* f079938: 45020003 */ bc1fl .L0f079948
/* f07993c: 4604903c */ c.lt.s $f18,$f4
/* f079940: 460c1480 */ add.s $f18,$f2,$f12
.L0f079944:
/* f079944: 4604903c */ c.lt.s $f18,$f4
.L0f079948:
/* f079948: 00000000 */ nop
/* f07994c: 45020003 */ bc1fl .L0f07995c
/* f079950: 4612803e */ c.le.s $f16,$f18
/* f079954: 46109480 */ add.s $f18,$f18,$f16
/* f079958: 4612803e */ c.le.s $f16,$f18
.L0f07995c:
/* f07995c: 00000000 */ nop
/* f079960: 45000002 */ bc1f .L0f07996c
/* f079964: 00000000 */ nop
/* f079968: 46109481 */ sub.s $f18,$f18,$f16
.L0f07996c:
/* f07996c: c420a560 */ lwc1 $f0,%lo(var7f1aa560)($at)
/* f079970: 44059000 */ mfc1 $a1,$f18
/* f079974: 25060070 */ addiu $a2,$t0,0x70
/* f079978: e7a00010 */ swc1 $f0,0x10($sp)
/* f07997c: c50a0080 */ lwc1 $f10,0x80($t0)
/* f079980: 44070000 */ mfc1 $a3,$f0
/* f079984: e7b200a4 */ swc1 $f18,0xa4($sp)
/* f079988: afa800ac */ sw $t0,0xac($sp)
/* f07998c: 0fc1b6c0 */ jal applyRotation
/* f079990: e7aa0014 */ swc1 $f10,0x14($sp)
/* f079994: 3c017f1b */ lui $at,%hi(var7f1aa564)
/* f079998: c420a564 */ lwc1 $f0,%lo(var7f1aa564)($at)
/* f07999c: 8fa800ac */ lw $t0,0xac($sp)
/* f0799a0: 8fa500a0 */ lw $a1,0xa0($sp)
/* f0799a4: e7a00010 */ swc1 $f0,0x10($sp)
/* f0799a8: c5060080 */ lwc1 $f6,0x80($t0)
/* f0799ac: 44070000 */ mfc1 $a3,$f0
/* f0799b0: 25040078 */ addiu $a0,$t0,0x78
/* f0799b4: 2506007c */ addiu $a2,$t0,0x7c
/* f0799b8: 0fc1b6c0 */ jal applyRotation
/* f0799bc: e7a60014 */ swc1 $f6,0x14($sp)
/* f0799c0: 8fa800ac */ lw $t0,0xac($sp)
/* f0799c4: c7b200a4 */ lwc1 $f18,0xa4($sp)
/* f0799c8: 44802000 */ mtc1 $zero,$f4
/* f0799cc: c508006c */ lwc1 $f8,0x6c($t0)
/* f0799d0: 3c017f1b */ lui $at,%hi(var7f1aa56c)
/* f0799d4: c430a56c */ lwc1 $f16,%lo(var7f1aa56c)($at)
/* f0799d8: 46089301 */ sub.s $f12,$f18,$f8
/* f0799dc: 3c09800a */ lui $t1,%hi(g_Vars)
/* f0799e0: 25299fc0 */ addiu $t1,$t1,%lo(g_Vars)
/* f0799e4: 3c017f1b */ lui $at,%hi(var7f1aa570)
/* f0799e8: 4604603c */ c.lt.s $f12,$f4
/* f0799ec: c7aa00a0 */ lwc1 $f10,0xa0($sp)
/* f0799f0: 45000002 */ bc1f .L0f0799fc
/* f0799f4: 00000000 */ nop
/* f0799f8: 46106300 */ add.s $f12,$f12,$f16
.L0f0799fc:
/* f0799fc: c420a570 */ lwc1 $f0,%lo(var7f1aa570)($at)
/* f079a00: 460c003c */ c.lt.s $f0,$f12
/* f079a04: 00000000 */ nop
/* f079a08: 45020003 */ bc1fl .L0f079a18
/* f079a0c: c5060078 */ lwc1 $f6,0x78($t0)
/* f079a10: 46106301 */ sub.s $f12,$f12,$f16
/* f079a14: c5060078 */ lwc1 $f6,0x78($t0)
.L0f079a18:
/* f079a18: 44804000 */ mtc1 $zero,$f8
/* f079a1c: 46065081 */ sub.s $f2,$f10,$f6
/* f079a20: 4608103c */ c.lt.s $f2,$f8
/* f079a24: 00000000 */ nop
/* f079a28: 45020003 */ bc1fl .L0f079a38
/* f079a2c: 4602003c */ c.lt.s $f0,$f2
/* f079a30: 46101080 */ add.s $f2,$f2,$f16
/* f079a34: 4602003c */ c.lt.s $f0,$f2
.L0f079a38:
/* f079a38: 00000000 */ nop
/* f079a3c: 45020003 */ bc1fl .L0f079a4c
/* f079a40: a100005e */ sb $zero,0x5e($t0)
/* f079a44: 46101081 */ sub.s $f2,$f2,$f16
/* f079a48: a100005e */ sb $zero,0x5e($t0)
.L0f079a4c:
/* f079a4c: 8fac007c */ lw $t4,0x7c($sp)
/* f079a50: c7a40070 */ lwc1 $f4,0x70($sp)
/* f079a54: 51800045 */ beqzl $t4,.L0f079b6c
/* f079a58: 8faa0078 */ lw $t2,0x78($sp)
/* f079a5c: 4604603c */ c.lt.s $f12,$f4
/* f079a60: c7aa0070 */ lwc1 $f10,0x70($sp)
/* f079a64: 4502001a */ bc1fl .L0f079ad0
/* f079a68: 460a5000 */ add.s $f0,$f10,$f10
/* f079a6c: 46002007 */ neg.s $f0,$f4
/* f079a70: 460c003c */ c.lt.s $f0,$f12
/* f079a74: 00000000 */ nop
/* f079a78: 45020015 */ bc1fl .L0f079ad0
/* f079a7c: 460a5000 */ add.s $f0,$f10,$f10
/* f079a80: 4604103c */ c.lt.s $f2,$f4
/* f079a84: 00000000 */ nop
/* f079a88: 45020011 */ bc1fl .L0f079ad0
/* f079a8c: 460a5000 */ add.s $f0,$f10,$f10
/* f079a90: 4602003c */ c.lt.s $f0,$f2
/* f079a94: 240d0001 */ addiu $t5,$zero,0x1
/* f079a98: 4502000d */ bc1fl .L0f079ad0
/* f079a9c: 460a5000 */ add.s $f0,$f10,$f10
/* f079aa0: a10d005e */ sb $t5,0x5e($t0)
/* f079aa4: 8faf0074 */ lw $t7,0x74($sp)
/* f079aa8: 240e0001 */ addiu $t6,$zero,0x1
/* f079aac: afae0078 */ sw $t6,0x78($sp)
/* f079ab0: 51e0002e */ beqzl $t7,.L0f079b6c
/* f079ab4: 8faa0078 */ lw $t2,0x78($sp)
/* f079ab8: 8d380008 */ lw $t8,0x8($t1)
/* f079abc: ad180090 */ sw $t8,0x90($t0)
/* f079ac0: 8d390008 */ lw $t9,0x8($t1)
/* f079ac4: 10000028 */ b .L0f079b68
/* f079ac8: ad190094 */ sw $t9,0x94($t0)
/* f079acc: 460a5000 */ add.s $f0,$f10,$f10
.L0f079ad0:
/* f079ad0: 4600603c */ c.lt.s $f12,$f0
/* f079ad4: 00000000 */ nop
/* f079ad8: 45020018 */ bc1fl .L0f079b3c
/* f079adc: 8d020090 */ lw $v0,0x90($t0)
/* f079ae0: 46000387 */ neg.s $f14,$f0
/* f079ae4: 460c703c */ c.lt.s $f14,$f12
/* f079ae8: 00000000 */ nop
/* f079aec: 45020013 */ bc1fl .L0f079b3c
/* f079af0: 8d020090 */ lw $v0,0x90($t0)
/* f079af4: 4600103c */ c.lt.s $f2,$f0
/* f079af8: 00000000 */ nop
/* f079afc: 4502000f */ bc1fl .L0f079b3c
/* f079b00: 8d020090 */ lw $v0,0x90($t0)
/* f079b04: 4602703c */ c.lt.s $f14,$f2
/* f079b08: 240a0001 */ addiu $t2,$zero,0x1
/* f079b0c: 4502000b */ bc1fl .L0f079b3c
/* f079b10: 8d020090 */ lw $v0,0x90($t0)
/* f079b14: a10a005e */ sb $t2,0x5e($t0)
/* f079b18: 8fac0074 */ lw $t4,0x74($sp)
/* f079b1c: 240b0001 */ addiu $t3,$zero,0x1
/* f079b20: afab0078 */ sw $t3,0x78($sp)
/* f079b24: 51800011 */ beqzl $t4,.L0f079b6c
/* f079b28: 8faa0078 */ lw $t2,0x78($sp)
/* f079b2c: 8d2d0008 */ lw $t5,0x8($t1)
/* f079b30: 1000000d */ b .L0f079b68
/* f079b34: ad0d0090 */ sw $t5,0x90($t0)
/* f079b38: 8d020090 */ lw $v0,0x90($t0)
.L0f079b3c:
/* f079b3c: 0442000b */ bltzl $v0,.L0f079b6c
/* f079b40: 8faa0078 */ lw $t2,0x78($sp)
/* f079b44: 8d2e0008 */ lw $t6,0x8($t1)
/* f079b48: 24180001 */ addiu $t8,$zero,0x1
/* f079b4c: 24190001 */ addiu $t9,$zero,0x1
/* f079b50: 25cfff88 */ addiu $t7,$t6,-120
/* f079b54: 01e2082a */ slt $at,$t7,$v0
/* f079b58: 50200004 */ beqzl $at,.L0f079b6c
/* f079b5c: 8faa0078 */ lw $t2,0x78($sp)
/* f079b60: a118005e */ sb $t8,0x5e($t0)
/* f079b64: afb90078 */ sw $t9,0x78($sp)
.L0f079b68:
/* f079b68: 8faa0078 */ lw $t2,0x78($sp)
.L0f079b6c:
/* f079b6c: 3c017f1b */ lui $at,%hi(var7f1aa574)
/* f079b70: 51400012 */ beqzl $t2,.L0f079bbc
/* f079b74: c5020088 */ lwc1 $f2,0x88($t0)
/* f079b78: c420a574 */ lwc1 $f0,%lo(var7f1aa574)($at)
/* f079b7c: 3c017f1b */ lui $at,%hi(var7f1aa578)
/* f079b80: c426a578 */ lwc1 $f6,%lo(var7f1aa578)($at)
/* f079b84: c528004c */ lwc1 $f8,0x4c($t1)
/* f079b88: c50a0088 */ lwc1 $f10,0x88($t0)
/* f079b8c: 46083102 */ mul.s $f4,$f6,$f8
/* f079b90: 46045180 */ add.s $f6,$f10,$f4
/* f079b94: e5060088 */ swc1 $f6,0x88($t0)
/* f079b98: c5020088 */ lwc1 $f2,0x88($t0)
/* f079b9c: 4602003c */ c.lt.s $f0,$f2
/* f079ba0: 00000000 */ nop
/* f079ba4: 45020025 */ bc1fl .L0f079c3c
/* f079ba8: 44805000 */ mtc1 $zero,$f10
/* f079bac: e5000088 */ swc1 $f0,0x88($t0)
/* f079bb0: 10000021 */ b .L0f079c38
/* f079bb4: c5020088 */ lwc1 $f2,0x88($t0)
/* f079bb8: c5020088 */ lwc1 $f2,0x88($t0)
.L0f079bbc:
/* f079bbc: 44804000 */ mtc1 $zero,$f8
/* f079bc0: 00000000 */ nop
/* f079bc4: 4602403c */ c.lt.s $f8,$f2
/* f079bc8: 00000000 */ nop
/* f079bcc: 4502001b */ bc1fl .L0f079c3c
/* f079bd0: 44805000 */ mtc1 $zero,$f10
/* f079bd4: 8d2b0038 */ lw $t3,0x38($t1)
/* f079bd8: 00001025 */ or $v0,$zero,$zero
/* f079bdc: 3c017f1b */ lui $at,%hi(var7f1aa57c)
/* f079be0: 1960000b */ blez $t3,.L0f079c10
/* f079be4: 00000000 */ nop
/* f079be8: c420a57c */ lwc1 $f0,%lo(var7f1aa57c)($at)
/* f079bec: c50a0088 */ lwc1 $f10,0x88($t0)
.L0f079bf0:
/* f079bf0: 24420001 */ addiu $v0,$v0,0x1
/* f079bf4: 46005102 */ mul.s $f4,$f10,$f0
/* f079bf8: e5040088 */ swc1 $f4,0x88($t0)
/* f079bfc: 8d2c0038 */ lw $t4,0x38($t1)
/* f079c00: 004c082a */ slt $at,$v0,$t4
/* f079c04: 5420fffa */ bnezl $at,.L0f079bf0
/* f079c08: c50a0088 */ lwc1 $f10,0x88($t0)
/* f079c0c: c5020088 */ lwc1 $f2,0x88($t0)
.L0f079c10:
/* f079c10: 3c017f1b */ lui $at,%hi(var7f1aa580)
/* f079c14: c426a580 */ lwc1 $f6,%lo(var7f1aa580)($at)
/* f079c18: 4606103e */ c.le.s $f2,$f6
/* f079c1c: 00000000 */ nop
/* f079c20: 45020006 */ bc1fl .L0f079c3c
/* f079c24: 44805000 */ mtc1 $zero,$f10
/* f079c28: 44804000 */ mtc1 $zero,$f8
/* f079c2c: 00000000 */ nop
/* f079c30: e5080088 */ swc1 $f8,0x88($t0)
/* f079c34: c5020088 */ lwc1 $f2,0x88($t0)
.L0f079c38:
/* f079c38: 44805000 */ mtc1 $zero,$f10
.L0f079c3c:
/* f079c3c: 00000000 */ nop
/* f079c40: 4602503c */ c.lt.s $f10,$f2
/* f079c44: 00000000 */ nop
/* f079c48: 45020013 */ bc1fl .L0f079c98
/* f079c4c: 8fbf001c */ lw $ra,0x1c($sp)
/* f079c50: c526004c */ lwc1 $f6,0x4c($t1)
/* f079c54: c504008c */ lwc1 $f4,0x8c($t0)
/* f079c58: 46061202 */ mul.s $f8,$f2,$f6
/* f079c5c: 46082280 */ add.s $f10,$f4,$f8
/* f079c60: e50a008c */ swc1 $f10,0x8c($t0)
/* f079c64: c500008c */ lwc1 $f0,0x8c($t0)
/* f079c68: 4600803e */ c.le.s $f16,$f0
/* f079c6c: 00000000 */ nop
/* f079c70: 45020009 */ bc1fl .L0f079c98
/* f079c74: 8fbf001c */ lw $ra,0x1c($sp)
/* f079c78: 46100181 */ sub.s $f6,$f0,$f16
.L0f079c7c:
/* f079c7c: e506008c */ swc1 $f6,0x8c($t0)
/* f079c80: c500008c */ lwc1 $f0,0x8c($t0)
/* f079c84: 4600803e */ c.le.s $f16,$f0
/* f079c88: 00000000 */ nop
/* f079c8c: 4503fffb */ bc1tl .L0f079c7c
/* f079c90: 46100181 */ sub.s $f6,$f0,$f16
/* f079c94: 8fbf001c */ lw $ra,0x1c($sp)
.L0f079c98:
/* f079c98: 27bd00b0 */ addiu $sp,$sp,0xb0
/* f079c9c: 03e00008 */ jr $ra
/* f079ca0: 00000000 */ nop
);
#endif
// Mismatch: Goal reloads &g_Vars into t1 unnecessarily
//void autogunTick(struct prop *prop)
//{
// struct autogunobj *autogun; // ac
// struct defaultobj *obj; // a8
// f32 goalyrot; // a4
// f32 goalxrot; // a0
// f32 f0;
// f32 maxspeed;
// f32 xdist; // 94
// f32 ydist; // 90
// f32 zdist; // 8c
// f32 sqdist; // 88
// f32 dist; // 84
// f32 horizdist; // 80
// bool awake; // 7c
// bool spinup; // 78
// bool insight; // 74
// f32 limitangle; // 70
// struct prop *target; // 6c
// s32 ownerplayernum;
// f32 f2;
// f32 f12;
// s32 numchrs; // 5c
// struct chrdata *chr; // 58
// s32 i;
// f32 targetangleh; // 50
// f32 targetanglev; // 4c
// f32 relangleh; // 48
// bool track; // 44
// u32 stack[2];
//
// autogun = (struct autogunobj *)prop->obj;
// obj = prop->obj;
// target = NULL;
// awake = false;
// spinup = false;
// insight = false;
// limitangle = 0.0f;
//
// // Malfunctioning mode 1: The gun looks around continuously in random
// // directions on both axis without spinning the barrel.
// if (obj->flags2 & OBJFLAG2_AUTOGUN_MALFUNCTIONING1) {
// if (obj->flags2 & OBJFLAG2_AUTOGUN_40000000) {
// autogun->xzero = autogun->xrot;
// autogun->yzero = autogun->yrot;
// } else if (autogun->yrot == autogun->yzero && autogun->xrot == autogun->xzero) {
// autogun->xzero = (RANDOMFRAC() * 39.0f + 1.0f) * 0.017450513f;
// autogun->yzero = RANDOMFRAC() * M_BADTAU;
// }
//
// applyRotation(&autogun->yrot, autogun->yzero, &autogun->yspeed, 0.00001163367596746f, 0.00001163367596746f, 0.000698f);
// applyRotation(&autogun->xrot, autogun->xzero, &autogun->xspeed, 0.0000058168379837298f, 0.0000058168379837298f, 0.000349f);
// return;
// }
//
// // Malfunctioning mode 2: The gun looks around left/right continuously
// // and spins the barrel based on its angle.
// if (obj->flags2 & OBJFLAG2_AUTOGUN_MALFUNCTIONING2) {
// if (obj->flags2 & OBJFLAG2_AUTOGUN_40000000) {
// autogun->xzero = autogun->xrot;
// autogun->yzero = autogun->yrot;
// } else if (autogun->yrot == autogun->yzero) {
// autogun->yzero = RANDOMFRAC() * M_BADTAU;
// }
//
// applyRotation(&autogun->yrot, autogun->yzero, &autogun->yspeed, 0.00001163367596746f, 0.00001163367596746f, 0.000698f);
// applyRotation(&autogun->xrot, autogun->xzero, &autogun->xspeed, 0.0000058168379837298f, 0.0000058168379837298f, 0.000349f);
//
// maxspeed = cosf(autogun->yrot);
//
// if (maxspeed > 0.0f) {
// maxspeed = 0.02512874f * maxspeed;
// } else {
// maxspeed = 0.000001f;
// }
//
// if (1) {
// autogun->barrelspeed += 0.009971722f * g_Vars.lvupdate240freal;
//
// if (autogun->barrelspeed > maxspeed) {
// autogun->barrelspeed = maxspeed;
// }
// }
//
// if (autogun->barrelspeed > 0.0f) {
// autogun->barrelrot += autogun->barrelspeed * g_Vars.lvupdate240freal;
//
// while (autogun->barrelrot >= M_BADTAU) {
// autogun->barrelrot -= M_BADTAU;
// }
// }
//
// return;
// }
//
// // Regular behaviour
// if (autogun->ammoquantity == 0) {
// // don't set target
// } else if (autogun->target) {
// target = autogun->target;
// } else {
// // Find new target
// if (frIsInTraining()) {
// // Laptop gun in firing range
// target = frChooseAutogunTarget(&prop->pos);
// if (1);
// } else if (autogun->targetteam != 0) {
// // Autogun (solo or MP) configured to attack specific teams
// if (g_Vars.normmplayerisrunning) {
// numchrs = g_MpNumChrs;
// } else {
// numchrs = chrsGetNumSlots();
// }
//
// while (true) {
// autogun->nextchrtest++;
//
// if (autogun->nextchrtest >= numchrs) {
// autogun->nextchrtest = -1;
// break;
// }
//
// if (g_Vars.normmplayerisrunning) {
// ownerplayernum = (obj->hidden & 0xf0000000) >> 28;
//
// if (autogun->nextchrtest == ownerplayernum) {
// continue;
// }
//
// chr = g_MpAllChrPtrs[autogun->nextchrtest];
//
// if (!chr->prop) {
// continue;
// }
//
// if (!chr->model) {
// continue;
// }
//
// if ((g_MpSetup.options & MPOPTION_TEAMSENABLED) && (chr->team & autogun->targetteam) == 0) {
// continue;
// }
// } else {
// chr = &g_ChrSlots[autogun->nextchrtest];
//
// if (!chr->prop) {
// continue;
// }
//
// if ((chr->team & autogun->targetteam) == 0) {
// continue;
// }
//
// if ((!chr->model || (chr->prop->flags & PROPFLAG_ENABLED) == 0) && chr->prop->type != PROPTYPE_PLAYER) {
// continue;
// }
// }
//
// if ((chr->chrflags & CHRCFLAG_HIDDEN) == 0
// && (chr->hidden & CHRHFLAG_CLOAKED) == 0
// && !chrIsDead(chr)) {
// target = chr->prop;
// break;
// }
//
// if (1);
// }
// } else if (g_Vars.coopplayernum >= 0) {
// if (g_Vars.lvframenum & 1) {
// target = g_Vars.bond->prop;
// } else {
// target = g_Vars.coop->prop;
// }
// } else {
// target = g_Vars.bond->prop;
// }
// }
//
// if (target) {
// if (target->chr == NULL) {
// target = NULL;
// } else if (target->type != PROPTYPE_CHR && target->type != PROPTYPE_PLAYER && !frIsInTraining()) {
// target = NULL;
// }
// }
//
// goalyrot = autogun->yzero;
// goalxrot = autogun->xzero;
//
// if (target) {
// xdist = target->pos.f[0] - prop->pos.f[0];
// ydist = target->pos.f[1] - prop->pos.f[1];
// zdist = target->pos.f[2] - prop->pos.f[2];
//
// if (target->type == PROPTYPE_PLAYER) {
// ydist -= 20.0f;
// }
//
// sqdist = xdist * xdist + zdist * zdist;
// dist = sqrtf(sqdist);
// horizdist = dist;
//
// if (obj->flags & OBJFLAG_08000000) {
// sqdist += ydist * ydist;
// dist = sqrtf(sqdist);
// }
//
// limitangle = chrGetAimLimitAngle(sqdist);
//
// if (dist <= autogun->aimdist) {
// targetangleh = atan2f(xdist, zdist);
// targetanglev = atan2f(ydist, horizdist);
//
// if ((obj->flags & OBJFLAG_AUTOGUN_DAMAGED) || (obj->flags & OBJFLAG_AUTOGUN_SEENTARGET)) {
// awake = true;
// } else {
// f12 = targetangleh - autogun->yrot;
//
// if (f12 < 0.0f) {
// f12 += M_BADTAU;
// }
//
// if (f12 > M_PI) {
// f12 -= M_BADTAU;
// }
//
// f2 = targetanglev - autogun->xrot;
//
// if (f2 < 0.0f) {
// f2 += M_BADTAU;
// }
//
// if (f2 > M_PI) {
// f2 -= M_BADTAU;
// }
//
// if (f12 < 1.221536f && f12 > -1.221536f) {
// awake = true;
// }
// }
//
// if (awake) {
// relangleh = targetangleh - autogun->yzero;
// track = true;
//
// if (relangleh < -M_PI) {
// relangleh += M_BADTAU;
// } else if (relangleh >= M_PI) {
// relangleh -= M_BADTAU;
// }
//
// if (target->type == PROPTYPE_PLAYER) {
// if (!g_Vars.bondvisible
// || g_Vars.players[playermgrGetPlayerNumByProp(target)]->isdead
// || (target->chr->chrflags & CHRCFLAG_HIDDEN)
// || (target->chr->hidden & CHRHFLAG_CLOAKED)) {
// track = false;
// }
// } else if (target->type == PROPTYPE_CHR) {
// struct chrdata *chr = target->chr;
//
// if (chr == NULL
// || (chr->chrflags & CHRCFLAG_HIDDEN)
// || (chr->hidden & CHRHFLAG_CLOAKED)
// || (chr->hidden & CHRHFLAG_ANTINONINTERACTABLE)
// || chrIsDead(chr)
// || chr->actiontype == ACT_DRUGGEDCOMINGUP
// || chr->actiontype == ACT_DRUGGEDDROP
// || chr->actiontype == ACT_DRUGGEDKO) {
// track = false;
// }
// } else if (target->type == PROPTYPE_OBJ) {
// struct defaultobj *obj = target->obj;
//
// if (obj && obj->modelnum == MODEL_TARGET && !frIsTargetFacingPos(target, &prop->pos)) {
// track = false;
// }
// } else {
// track = false;
// }
//
// propSetPerimEnabled(prop, false);
// propSetPerimEnabled(target, false);
//
// if (relangleh <= autogun->ymaxleft
// && relangleh >= autogun->ymaxright
// && track
// && cdHasLineOfSight(&prop->pos, prop->rooms, &target->pos, target->rooms, CDTYPE_ALL, 8)) {
// obj->flags |= OBJFLAG_AUTOGUN_SEENTARGET;
// insight = true;
// goalxrot = targetanglev;
// goalyrot = targetangleh;
//
// if (autogun->target == NULL) {
// autogun->target = target;
// }
// } else if (autogun->lastseebond60 >= 0 && autogun->lastseebond60 > g_Vars.lvframe60 - 120) {
// // Target recently lost
// goalyrot = autogun->yrot;
// goalxrot = autogun->xrot;
// } else {
// awake = false;
// }
//
// propSetPerimEnabled(prop, true);
// propSetPerimEnabled(target, true);
// }
// }
// }
//
// if (!awake) {
// autogun->target = NULL;
// }
//
// // The turret swivels left and right while firing
// if (autogun->firing) {
// goalyrot += limitangle * 0.8f * sinf((g_Vars.lvframe60 % 120) * 0.05235154f);
//
// if (goalyrot < 0.0f) {
// goalyrot += M_BADTAU;
// }
//
// if (goalyrot >= M_BADTAU) {
// goalyrot -= M_BADTAU;
// }
// }
//
// f0 = goalyrot - autogun->yzero;
//
// if (f0 < -M_PI) {
// f0 += M_BADTAU;
// } else if (f0 >= M_PI) {
// f0 -= M_BADTAU;
// }
//
// if (f0 > autogun->ymaxleft) {
// goalyrot = autogun->yzero + autogun->ymaxleft;
// } else if (f0 < autogun->ymaxright) {
// goalyrot = autogun->yzero + autogun->ymaxright;
// }
//
// if (goalyrot < 0.0f) {
// goalyrot += M_BADTAU;
// }
//
// if (goalyrot >= M_BADTAU) {
// goalyrot -= M_BADTAU;
// }
//
// applyRotation(&autogun->yrot, goalyrot, &autogun->yspeed, 0.00087252567755058f, 0.00087252567755058f, autogun->maxspeed);
// applyRotation(&autogun->xrot, goalxrot, &autogun->xspeed, 0.00087252567755058f, 0.00087252567755058f, autogun->maxspeed);
//
// f12 = goalyrot - autogun->yrot;
//
// if (f12 < 0.0f) {
// f12 += M_BADTAU;
// }
//
// if (f12 > M_BADPI) {
// f12 -= M_BADTAU;
// }
//
// f2 = goalxrot - autogun->xrot;
//
// if (f2 < 0.0f) {
// f2 += M_BADTAU;
// }
//
// if (f2 > M_BADPI) {
// f2 -= M_BADTAU;
// }
//
// autogun->firing = false;
//
// if (awake) {
// if (f12 < limitangle && -limitangle < f12 && f2 < limitangle && -limitangle < f2) {
// autogun->firing = true;
// spinup = true;
//
// if (insight) {
// autogun->lastseebond60 = g_Vars.lvframe60;
// autogun->lastaimbond60 = g_Vars.lvframe60;
// }
// } else {
// f32 f0 = 2.0f * limitangle;
//
// if (f12 < f0 && -f0 < f12 && f2 < f0 && -f0 < f2) {
// autogun->firing = true;
// spinup = true;
//
// if (insight) {
// autogun->lastseebond60 = g_Vars.lvframe60;
// }
// } else {
// if (autogun->lastseebond60 >= 0 && autogun->lastseebond60 > g_Vars.lvframe60 - 120) {
// autogun->firing = true;
// spinup = true;
// }
// }
// }
// }
//
// if (spinup) {
// autogun->barrelspeed += 0.009971722f * g_Vars.lvupdate240freal;
//
// if (autogun->barrelspeed > 0.5983033f) {
// autogun->barrelspeed = 0.5983033f;
// }
// } else if (autogun->barrelspeed > 0.0f) {
// for (i = 0; i < g_Vars.lvupdate240_60; i++) {
// autogun->barrelspeed *= 0.99f;
// }
//
// if (autogun->barrelspeed <= 0.0001f) {
// autogun->barrelspeed = 0.0f;
// }
// }
//
// if (autogun->barrelspeed > 0.0f) {
// autogun->barrelrot += autogun->barrelspeed * g_Vars.lvupdate240freal;
//
// while (autogun->barrelrot >= M_BADTAU) {
// autogun->barrelrot -= M_BADTAU;
// }
// }
//}
void autogunInitMatrices(struct prop *prop, Mtxf *mtx)
{
struct autogunobj *autogun = (struct autogunobj *)prop->obj;
struct model *model = autogun->base.model;
Mtxf *matrices = model->matrices;
union modelrodata *rodata;
struct coord sp4c;
f32 yrot = autogun->yrot + 1.5705462694168f;
f32 xrot = -autogun->xrot;
Mtxf *tmp;
struct modelnode *node2;
struct modelnode *node3;
struct modelnode *node4;
struct modelnode *node6;
if (yrot >= M_BADTAU) {
yrot -= M_BADTAU;
}
rodata = modelGetPartRodata(model->filedata, MODELPART_AUTOGUN_0001);
sp4c.x = rodata->position.pos.x;
sp4c.y = rodata->position.pos.y;
sp4c.z = rodata->position.pos.z;
mtx4TransformVecInPlace(mtx, &sp4c);
mtx4LoadYRotation(yrot, &matrices[1]);
mtx4SetTranslation(&sp4c, &matrices[1]);
mtx00015f04(autogun->base.model->scale, &matrices[1]);
mtx00015be0(camGetWorldToScreenMtxf(), &matrices[1]);
node2 = modelGetPart(model->filedata, MODELPART_AUTOGUN_0002);
rodata = node2->rodata;
mtx4LoadZRotation(xrot, &matrices[2]);
mtx4SetTranslation(&rodata->position.pos, &matrices[2]);
mtx00015be0(&matrices[1], &matrices[2]);
tmp = model0001a5cc(model, node2, 0x100);
if (tmp != NULL) {
mtx4LoadZRotation(xrot * 0.5f, tmp);
mtx4SetTranslation(&rodata->position.pos, tmp);
mtx00015be0(&matrices[1], tmp);
}
node3 = modelGetPart(model->filedata, MODELPART_AUTOGUN_0003);
if (node3 != NULL) {
tmp = model0001a5cc(model, node3, 0);
rodata = node3->rodata;
mtx4LoadXRotation(autogun->barrelrot, tmp);
mtx4SetTranslation(&rodata->position.pos, tmp);
mtx00015be0(&matrices[2], tmp);
}
node4 = modelGetPart(model->filedata, MODELPART_AUTOGUN_0004);
if (node4 != NULL) {
tmp = model0001a5cc(model, node4, 0);
rodata = node4->rodata;
mtx4LoadTranslation(&rodata->position.pos, tmp);
mtx00015be0(&matrices[2], tmp);
}
node6 = modelGetPart(model->filedata, MODELPART_AUTOGUN_0006);
if (node6 != NULL) {
tmp = model0001a5cc(model, node6, 0);
rodata = node6->rodata;
mtx4LoadXRotation(autogun->barrelrot, tmp);
mtx4SetTranslation(&rodata->position.pos, tmp);
mtx00015be0(&matrices[2], tmp);
}
}
#if VERSION >= VERSION_PAL_FINAL
GLOBAL_ASM(
glabel func0f079f1c
.late_rodata
glabel var7f1aa58c
.word 0x3e23d70a
glabel var7f1aa590
.word 0x461c4000
glabel var7f1aa594
.word 0x453b8000
glabel var7f1aa598
.word 0x3f19999a
glabel var7f1aa59c
.word 0x3e99999a
glabel var7f1aa5a0
.word 0xbdcccccd
glabel var7f1aa5a4
.word 0x453b8000
glabel var7f1aa5a8
.word 0x3e4ccccd
.text
/* f079f1c: 27bdfe68 */ addiu $sp,$sp,-408
/* f079f20: afbf0044 */ sw $ra,0x44($sp)
/* f079f24: 0fc5b364 */ jal lvIsPaused
/* f079f28: afa40198 */ sw $a0,0x198($sp)
/* f079f2c: 14400363 */ bnez $v0,.L0f07acbc
/* f079f30: 8fae0198 */ lw $t6,0x198($sp)
/* f079f34: 8dc20004 */ lw $v0,0x4($t6)
/* f079f38: afa0018c */ sw $zero,0x18c($sp)
/* f079f3c: afa00188 */ sw $zero,0x188($sp)
/* f079f40: 8c4f0018 */ lw $t7,0x18($v0)
/* f079f44: afa00174 */ sw $zero,0x174($sp)
/* f079f48: afaf0184 */ sw $t7,0x184($sp)
/* f079f4c: 8058005e */ lb $t8,0x5e($v0)
/* f079f50: 53000347 */ beqzl $t8,.L0f07ac70
/* f079f54: 8fad0184 */ lw $t5,0x184($sp)
/* f079f58: 8c590008 */ lw $t9,0x8($v0)
/* f079f5c: 001940c0 */ sll $t0,$t9,0x3
/* f079f60: 05020343 */ bltzl $t0,.L0f07ac70
/* f079f64: 8fad0184 */ lw $t5,0x184($sp)
/* f079f68: 9049005f */ lbu $t1,0x5f($v0)
/* f079f6c: 24050005 */ addiu $a1,$zero,0x5
/* f079f70: 252b0001 */ addiu $t3,$t1,0x1
/* f079f74: a04b005f */ sb $t3,0x5f($v0)
/* f079f78: 8fae0184 */ lw $t6,0x184($sp)
/* f079f7c: 316c0001 */ andi $t4,$t3,0x1
/* f079f80: 2d8d0001 */ sltiu $t5,$t4,0x1
/* f079f84: afad018c */ sw $t5,0x18c($sp)
/* f079f88: 8dc40008 */ lw $a0,0x8($t6)
/* f079f8c: afa20194 */ sw $v0,0x194($sp)
/* f079f90: 0c006a47 */ jal modelGetPart
/* f079f94: afa20190 */ sw $v0,0x190($sp)
/* f079f98: 1040000b */ beqz $v0,.L0f079fc8
/* f079f9c: 8fa30190 */ lw $v1,0x190($sp)
/* f079fa0: 8faf0194 */ lw $t7,0x194($sp)
/* f079fa4: 91f8005f */ lbu $t8,0x5f($t7)
/* f079fa8: 07010004 */ bgez $t8,.L0f079fbc
/* f079fac: 33190001 */ andi $t9,$t8,0x1
/* f079fb0: 13200002 */ beqz $t9,.L0f079fbc
/* f079fb4: 00000000 */ nop
/* f079fb8: 2739fffe */ addiu $t9,$t9,-2
.L0f079fbc:
/* f079fbc: 3b280001 */ xori $t0,$t9,0x1
/* f079fc0: 2d080001 */ sltiu $t0,$t0,0x1
/* f079fc4: afa80188 */ sw $t0,0x188($sp)
.L0f079fc8:
/* f079fc8: 8fa9018c */ lw $t1,0x18c($sp)
/* f079fcc: 8faa0188 */ lw $t2,0x188($sp)
/* f079fd0: 55200004 */ bnezl $t1,.L0f079fe4
/* f079fd4: 8fab0194 */ lw $t3,0x194($sp)
/* f079fd8: 514002f0 */ beqzl $t2,.L0f07ab9c
/* f079fdc: 8fa80194 */ lw $t0,0x194($sp)
/* f079fe0: 8fab0194 */ lw $t3,0x194($sp)
.L0f079fe4:
/* f079fe4: afa00148 */ sw $zero,0x148($sp)
/* f079fe8: 3c188007 */ lui $t8,%hi(var80069cb8)
/* f079fec: 916c005f */ lbu $t4,0x5f($t3)
/* f079ff0: 8f189cb8 */ lw $t8,%lo(var80069cb8)($t8)
/* f079ff4: 3c09800a */ lui $t1,%hi(g_Vars+0x318)
/* f079ff8: 318d0003 */ andi $t5,$t4,0x3
/* f079ffc: 2dae0001 */ sltiu $t6,$t5,0x1
/* f07a000: afae0128 */ sw $t6,0x128($sp)
/* f07a004: 8d6f00a4 */ lw $t7,0xa4($t3)
/* f07a008: afa0011c */ sw $zero,0x11c($sp)
/* f07a00c: afa00114 */ sw $zero,0x114($sp)
/* f07a010: afa00110 */ sw $zero,0x110($sp)
/* f07a014: afb80118 */ sw $t8,0x118($sp)
/* f07a018: afaf0124 */ sw $t7,0x124($sp)
/* f07a01c: 8c640040 */ lw $a0,0x40($v1)
/* f07a020: 8d29a2d8 */ lw $t1,%lo(g_Vars+0x318)($t1)
/* f07a024: 3c01f000 */ lui $at,0xf000
/* f07a028: 0081c824 */ and $t9,$a0,$at
/* f07a02c: 11200007 */ beqz $t1,.L0f07a04c
/* f07a030: 00192702 */ srl $a0,$t9,0x1c
/* f07a034: 0fc63410 */ jal mpGetChrFromPlayerIndex
/* f07a038: 00000000 */ nop
/* f07a03c: 10400003 */ beqz $v0,.L0f07a04c
/* f07a040: afa20110 */ sw $v0,0x110($sp)
/* f07a044: 8c4a001c */ lw $t2,0x1c($v0)
/* f07a048: afaa0114 */ sw $t2,0x114($sp)
.L0f07a04c:
/* f07a04c: 8fac0194 */ lw $t4,0x194($sp)
/* f07a050: 918d005f */ lbu $t5,0x5f($t4)
/* f07a054: 31ae0007 */ andi $t6,$t5,0x7
/* f07a058: 55c00008 */ bnezl $t6,.L0f07a07c
/* f07a05c: 8faf0184 */ lw $t7,0x184($sp)
/* f07a060: 8fab0184 */ lw $t3,0x184($sp)
/* f07a064: 24050007 */ addiu $a1,$zero,0x7
/* f07a068: 0c006a47 */ jal modelGetPart
/* f07a06c: 8d640008 */ lw $a0,0x8($t3)
/* f07a070: 14400006 */ bnez $v0,.L0f07a08c
/* f07a074: 00403825 */ or $a3,$v0,$zero
/* f07a078: 8faf0184 */ lw $t7,0x184($sp)
.L0f07a07c:
/* f07a07c: 24050005 */ addiu $a1,$zero,0x5
/* f07a080: 0c006a47 */ jal modelGetPart
/* f07a084: 8de40008 */ lw $a0,0x8($t7)
/* f07a088: 00403825 */ or $a3,$v0,$zero
.L0f07a08c:
/* f07a08c: 54400009 */ bnezl $v0,.L0f07a0b4
/* f07a090: 8fa40198 */ lw $a0,0x198($sp)
/* f07a094: 8fb80184 */ lw $t8,0x184($sp)
/* f07a098: 24050003 */ addiu $a1,$zero,0x3
/* f07a09c: 8f040008 */ lw $a0,0x8($t8)
/* f07a0a0: 0c006a47 */ jal modelGetPart
/* f07a0a4: afa70120 */ sw $a3,0x120($sp)
/* f07a0a8: 8fa70120 */ lw $a3,0x120($sp)
/* f07a0ac: afa2011c */ sw $v0,0x11c($sp)
/* f07a0b0: 8fa40198 */ lw $a0,0x198($sp)
.L0f07a0b4:
/* f07a0b4: 00002825 */ or $a1,$zero,$zero
/* f07a0b8: 0fc1905e */ jal propSetPerimEnabled
/* f07a0bc: afa70120 */ sw $a3,0x120($sp)
/* f07a0c0: 8fa20198 */ lw $v0,0x198($sp)
/* f07a0c4: 8fa70120 */ lw $a3,0x120($sp)
/* f07a0c8: 90590001 */ lbu $t9,0x1($v0)
/* f07a0cc: 33280002 */ andi $t0,$t9,0x2
/* f07a0d0: 51000042 */ beqzl $t0,.L0f07a1dc
/* f07a0d4: c44a0008 */ lwc1 $f10,0x8($v0)
/* f07a0d8: 14e00003 */ bnez $a3,.L0f07a0e8
/* f07a0dc: 8fa9011c */ lw $t1,0x11c($sp)
/* f07a0e0: 5120003e */ beqzl $t1,.L0f07a1dc
/* f07a0e4: c44a0008 */ lwc1 $f10,0x8($v0)
.L0f07a0e8:
/* f07a0e8: 10e00010 */ beqz $a3,.L0f07a12c
/* f07a0ec: 8fa40184 */ lw $a0,0x184($sp)
/* f07a0f0: 8fa40184 */ lw $a0,0x184($sp)
/* f07a0f4: 00e02825 */ or $a1,$a3,$zero
/* f07a0f8: 00003025 */ or $a2,$zero,$zero
/* f07a0fc: 0c006973 */ jal model0001a5cc
/* f07a100: afa70120 */ sw $a3,0x120($sp)
/* f07a104: 8fa70120 */ lw $a3,0x120($sp)
/* f07a108: 00402825 */ or $a1,$v0,$zero
/* f07a10c: 8ce30004 */ lw $v1,0x4($a3)
/* f07a110: c4640000 */ lwc1 $f4,0x0($v1)
/* f07a114: e7a40168 */ swc1 $f4,0x168($sp)
/* f07a118: c4660004 */ lwc1 $f6,0x4($v1)
/* f07a11c: e7a6016c */ swc1 $f6,0x16c($sp)
/* f07a120: c4680008 */ lwc1 $f8,0x8($v1)
/* f07a124: 1000000b */ b .L0f07a154
/* f07a128: e7a80170 */ swc1 $f8,0x170($sp)
.L0f07a12c:
/* f07a12c: 8fa5011c */ lw $a1,0x11c($sp)
/* f07a130: 0c006973 */ jal model0001a5cc
/* f07a134: 00003025 */ or $a2,$zero,$zero
/* f07a138: 44805000 */ mtc1 $zero,$f10
/* f07a13c: 44808000 */ mtc1 $zero,$f16
/* f07a140: 44809000 */ mtc1 $zero,$f18
/* f07a144: 00402825 */ or $a1,$v0,$zero
/* f07a148: e7aa0168 */ swc1 $f10,0x168($sp)
/* f07a14c: e7b0016c */ swc1 $f16,0x16c($sp)
/* f07a150: e7b20170 */ swc1 $f18,0x170($sp)
.L0f07a154:
/* f07a154: 0fc2d5de */ jal camGetProjectionMtxF
/* f07a158: afa50108 */ sw $a1,0x108($sp)
/* f07a15c: 8fa50108 */ lw $a1,0x108($sp)
/* f07a160: 00402025 */ or $a0,$v0,$zero
/* f07a164: 0c0056f9 */ jal mtx00015be4
/* f07a168: 27a600c8 */ addiu $a2,$sp,0xc8
/* f07a16c: 27a400c8 */ addiu $a0,$sp,0xc8
/* f07a170: 0c0056d9 */ jal mtx4TransformVecInPlace
/* f07a174: 27a50168 */ addiu $a1,$sp,0x168
/* f07a178: 8fa20198 */ lw $v0,0x198($sp)
/* f07a17c: 240a0020 */ addiu $t2,$zero,0x20
/* f07a180: 240c0010 */ addiu $t4,$zero,0x10
/* f07a184: 24450028 */ addiu $a1,$v0,0x28
/* f07a188: afa5004c */ sw $a1,0x4c($sp)
/* f07a18c: afac0014 */ sw $t4,0x14($sp)
/* f07a190: afaa0010 */ sw $t2,0x10($sp)
/* f07a194: 27a60168 */ addiu $a2,$sp,0x168
/* f07a198: 27a70158 */ addiu $a3,$sp,0x158
/* f07a19c: 0c00b78d */ jal cd0002de34
/* f07a1a0: 24440008 */ addiu $a0,$v0,0x8
/* f07a1a4: 14400015 */ bnez $v0,.L0f07a1fc
/* f07a1a8: 8fad0198 */ lw $t5,0x198($sp)
/* f07a1ac: c5a40008 */ lwc1 $f4,0x8($t5)
/* f07a1b0: 8fa4004c */ lw $a0,0x4c($sp)
/* f07a1b4: 27a50158 */ addiu $a1,$sp,0x158
/* f07a1b8: e7a40168 */ swc1 $f4,0x168($sp)
/* f07a1bc: c5a6000c */ lwc1 $f6,0xc($t5)
/* f07a1c0: e7a6016c */ swc1 $f6,0x16c($sp)
/* f07a1c4: c5a80010 */ lwc1 $f8,0x10($t5)
/* f07a1c8: 0fc195e9 */ jal roomsCopy
/* f07a1cc: e7a80170 */ swc1 $f8,0x170($sp)
/* f07a1d0: 1000000b */ b .L0f07a200
/* f07a1d4: 8fae0194 */ lw $t6,0x194($sp)
/* f07a1d8: c44a0008 */ lwc1 $f10,0x8($v0)
.L0f07a1dc:
/* f07a1dc: 24440028 */ addiu $a0,$v0,0x28
/* f07a1e0: 27a50158 */ addiu $a1,$sp,0x158
/* f07a1e4: e7aa0168 */ swc1 $f10,0x168($sp)
/* f07a1e8: c450000c */ lwc1 $f16,0xc($v0)
/* f07a1ec: e7b0016c */ swc1 $f16,0x16c($sp)
/* f07a1f0: c4520010 */ lwc1 $f18,0x10($v0)
/* f07a1f4: 0fc195e9 */ jal roomsCopy
/* f07a1f8: e7b20170 */ swc1 $f18,0x170($sp)
.L0f07a1fc:
/* f07a1fc: 8fae0194 */ lw $t6,0x194($sp)
.L0f07a200:
/* f07a200: 0c0068f4 */ jal cosf
/* f07a204: c5cc0078 */ lwc1 $f12,0x78($t6)
/* f07a208: 8fab0194 */ lw $t3,0x194($sp)
/* f07a20c: e7a00050 */ swc1 $f0,0x50($sp)
/* f07a210: 0c0068f7 */ jal sinf
/* f07a214: c56c006c */ lwc1 $f12,0x6c($t3)
/* f07a218: c7a40050 */ lwc1 $f4,0x50($sp)
/* f07a21c: 8faf0194 */ lw $t7,0x194($sp)
/* f07a220: 46040182 */ mul.s $f6,$f0,$f4
/* f07a224: e7a6014c */ swc1 $f6,0x14c($sp)
/* f07a228: 0c0068f7 */ jal sinf
/* f07a22c: c5ec0078 */ lwc1 $f12,0x78($t7)
/* f07a230: 8fb80194 */ lw $t8,0x194($sp)
/* f07a234: e7a00150 */ swc1 $f0,0x150($sp)
/* f07a238: 0c0068f4 */ jal cosf
/* f07a23c: c70c0078 */ lwc1 $f12,0x78($t8)
/* f07a240: 8fb90194 */ lw $t9,0x194($sp)
/* f07a244: e7a00050 */ swc1 $f0,0x50($sp)
/* f07a248: 0c0068f4 */ jal cosf
/* f07a24c: c72c006c */ lwc1 $f12,0x6c($t9)
/* f07a250: c7a80050 */ lwc1 $f8,0x50($sp)
/* f07a254: 3c014780 */ lui $at,0x4780
/* f07a258: 44811000 */ mtc1 $at,$f2
/* f07a25c: 46080302 */ mul.s $f12,$f0,$f8
/* f07a260: c7aa014c */ lwc1 $f10,0x14c($sp)
/* f07a264: c7a60150 */ lwc1 $f6,0x150($sp)
/* f07a268: c7b20168 */ lwc1 $f18,0x168($sp)
/* f07a26c: 46025402 */ mul.s $f16,$f10,$f2
/* f07a270: c7aa016c */ lwc1 $f10,0x16c($sp)
/* f07a274: 3c03800a */ lui $v1,%hi(g_Vars)
/* f07a278: 46023202 */ mul.s $f8,$f6,$f2
/* f07a27c: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
/* f07a280: 8c680318 */ lw $t0,0x318($v1)
/* f07a284: e7ac0154 */ swc1 $f12,0x154($sp)
/* f07a288: 8fa20124 */ lw $v0,0x124($sp)
/* f07a28c: 46128100 */ add.s $f4,$f16,$f18
/* f07a290: 46026482 */ mul.s $f18,$f12,$f2
/* f07a294: 27a40168 */ addiu $a0,$sp,0x168
/* f07a298: 460a4400 */ add.s $f16,$f8,$f10
/* f07a29c: e7a4013c */ swc1 $f4,0x13c($sp)
/* f07a2a0: c7a40170 */ lwc1 $f4,0x170($sp)
/* f07a2a4: 27a50158 */ addiu $a1,$sp,0x158
/* f07a2a8: e7b00140 */ swc1 $f16,0x140($sp)
/* f07a2ac: 46049180 */ add.s $f6,$f18,$f4
/* f07a2b0: 27a6013c */ addiu $a2,$sp,0x13c
/* f07a2b4: 2407003f */ addiu $a3,$zero,0x3f
/* f07a2b8: 1500000f */ bnez $t0,.L0f07a2f8
/* f07a2bc: e7a60144 */ swc1 $f6,0x144($sp)
/* f07a2c0: 50400006 */ beqzl $v0,.L0f07a2dc
/* f07a2c4: 8c6a029c */ lw $t2,0x29c($v1)
/* f07a2c8: 90490000 */ lbu $t1,0x0($v0)
/* f07a2cc: 24010003 */ addiu $at,$zero,0x3
/* f07a2d0: 5121000a */ beql $t1,$at,.L0f07a2fc
/* f07a2d4: 240e0010 */ addiu $t6,$zero,0x10
/* f07a2d8: 8c6a029c */ lw $t2,0x29c($v1)
.L0f07a2dc:
/* f07a2dc: 0540007f */ bltz $t2,.L0f07a4dc
/* f07a2e0: 00000000 */ nop
/* f07a2e4: 1040007d */ beqz $v0,.L0f07a4dc
/* f07a2e8: 00000000 */ nop
/* f07a2ec: 8c6c02a8 */ lw $t4,0x2a8($v1)
/* f07a2f0: 8d8d00bc */ lw $t5,0xbc($t4)
/* f07a2f4: 144d0079 */ bne $v0,$t5,.L0f07a4dc
.L0f07a2f8:
/* f07a2f8: 240e0010 */ addiu $t6,$zero,0x10
.L0f07a2fc:
/* f07a2fc: 0c00b764 */ jal cdTestAToB4
/* f07a300: afae0010 */ sw $t6,0x10($sp)
/* f07a304: 14400151 */ bnez $v0,.L0f07a84c
/* f07a308: 27a4013c */ addiu $a0,$sp,0x13c
/* f07a30c: 3c067f1b */ lui $a2,%hi(var7f1aa020)
/* f07a310: 24c6a020 */ addiu $a2,$a2,%lo(var7f1aa020)
/* f07a314: 0c0093af */ jal cdGetPos
/* f07a318: 24052cc2 */ addiu $a1,$zero,0x2cd8
/* f07a31c: 0c0093ac */ jal cdGetObstacle
/* f07a320: 00000000 */ nop
/* f07a324: 1040006a */ beqz $v0,.L0f07a4d0
/* f07a328: afa20178 */ sw $v0,0x178($sp)
/* f07a32c: 90430000 */ lbu $v1,0x0($v0)
/* f07a330: 24010003 */ addiu $at,$zero,0x3
/* f07a334: 3c0b800a */ lui $t3,%hi(g_Vars+0x318)
/* f07a338: 10610003 */ beq $v1,$at,.L0f07a348
/* f07a33c: 24010006 */ addiu $at,$zero,0x6
/* f07a340: 54610064 */ bnel $v1,$at,.L0f07a4d4
/* f07a344: 24080001 */ addiu $t0,$zero,0x1
.L0f07a348:
/* f07a348: 8d6ba2d8 */ lw $t3,%lo(g_Vars+0x318)($t3)
/* f07a34c: 8faf0124 */ lw $t7,0x124($sp)
/* f07a350: 2418ffff */ addiu $t8,$zero,-1
/* f07a354: 15600003 */ bnez $t3,.L0f07a364
/* f07a358: 241900c8 */ addiu $t9,$zero,0xc8
/* f07a35c: 55e2005d */ bnel $t7,$v0,.L0f07a4d4
/* f07a360: 24080001 */ addiu $t0,$zero,0x1
.L0f07a364:
/* f07a364: afa000c0 */ sw $zero,0xc0($sp)
/* f07a368: afa000bc */ sw $zero,0xbc($sp)
/* f07a36c: afb800b8 */ sw $t8,0xb8($sp)
/* f07a370: afb900b4 */ sw $t9,0xb4($sp)
/* f07a374: 0fc2c74a */ jal gsetGetDamage
/* f07a378: 27a40118 */ addiu $a0,$sp,0x118
/* f07a37c: 8fa80178 */ lw $t0,0x178($sp)
/* f07a380: 3c09800a */ lui $t1,%hi(g_Vars+0x318)
/* f07a384: 8d29a2d8 */ lw $t1,%lo(g_Vars+0x318)($t1)
/* f07a388: e7a000b0 */ swc1 $f0,0xb0($sp)
/* f07a38c: 8d040004 */ lw $a0,0x4($t0)
/* f07a390: 3c013f00 */ lui $at,0x3f00
/* f07a394: 11200005 */ beqz $t1,.L0f07a3ac
/* f07a398: afa400ac */ sw $a0,0xac($sp)
/* f07a39c: 44814000 */ mtc1 $at,$f8
/* f07a3a0: 00000000 */ nop
/* f07a3a4: 46080282 */ mul.s $f10,$f0,$f8
/* f07a3a8: e7aa00b0 */ swc1 $f10,0xb0($sp)
.L0f07a3ac:
/* f07a3ac: 8faa0114 */ lw $t2,0x114($sp)
/* f07a3b0: 8fac0178 */ lw $t4,0x178($sp)
/* f07a3b4: 8fad0110 */ lw $t5,0x110($sp)
/* f07a3b8: 514c0007 */ beql $t2,$t4,.L0f07a3d8
/* f07a3bc: 240e0001 */ addiu $t6,$zero,0x1
/* f07a3c0: 11a00009 */ beqz $t5,.L0f07a3e8
/* f07a3c4: 01a02825 */ or $a1,$t5,$zero
/* f07a3c8: 0fc12aa3 */ jal chrCompareTeams
/* f07a3cc: 24060001 */ addiu $a2,$zero,0x1
/* f07a3d0: 10400005 */ beqz $v0,.L0f07a3e8
/* f07a3d4: 240e0001 */ addiu $t6,$zero,0x1
.L0f07a3d8:
/* f07a3d8: afa00128 */ sw $zero,0x128($sp)
/* f07a3dc: afa0018c */ sw $zero,0x18c($sp)
/* f07a3e0: afa00188 */ sw $zero,0x188($sp)
/* f07a3e4: afae0174 */ sw $t6,0x174($sp)
.L0f07a3e8:
/* f07a3e8: 8fab018c */ lw $t3,0x18c($sp)
/* f07a3ec: 8faf0188 */ lw $t7,0x188($sp)
/* f07a3f0: 27a40118 */ addiu $a0,$sp,0x118
/* f07a3f4: 15600003 */ bnez $t3,.L0f07a404
/* f07a3f8: 8fa50178 */ lw $a1,0x178($sp)
/* f07a3fc: 51e00114 */ beqzl $t7,.L0f07a850
/* f07a400: 8fa40198 */ lw $a0,0x198($sp)
.L0f07a404:
/* f07a404: 0fc29f66 */ jal bgunPlayPropHitSound
/* f07a408: 2406ffff */ addiu $a2,$zero,-1
/* f07a40c: 8fa400ac */ lw $a0,0xac($sp)
/* f07a410: 8c980020 */ lw $t8,0x20($a0)
/* f07a414: 53000012 */ beqzl $t8,.L0f07a460
/* f07a418: 8fac0110 */ lw $t4,0x110($sp)
/* f07a41c: 0fc0cfe8 */ jal chrGetShield
/* f07a420: 00000000 */ nop
/* f07a424: 44808000 */ mtc1 $zero,$f16
/* f07a428: 8fa400ac */ lw $a0,0xac($sp)
/* f07a42c: 27a5013c */ addiu $a1,$sp,0x13c
/* f07a430: 4600803c */ c.lt.s $f16,$f0
/* f07a434: 27a6014c */ addiu $a2,$sp,0x14c
/* f07a438: 27a700c0 */ addiu $a3,$sp,0xc0
/* f07a43c: 27b900b4 */ addiu $t9,$sp,0xb4
/* f07a440: 45000006 */ bc1f .L0f07a45c
/* f07a444: 27a800bc */ addiu $t0,$sp,0xbc
/* f07a448: 27a900b8 */ addiu $t1,$sp,0xb8
/* f07a44c: afa90018 */ sw $t1,0x18($sp)
/* f07a450: afb90010 */ sw $t9,0x10($sp)
/* f07a454: 0fc0ffcb */ jal chrCalculateShieldHit
/* f07a458: afa80014 */ sw $t0,0x14($sp)
.L0f07a45c:
/* f07a45c: 8fac0110 */ lw $t4,0x110($sp)
.L0f07a460:
/* f07a460: 27aa014c */ addiu $t2,$sp,0x14c
/* f07a464: 8fa400ac */ lw $a0,0xac($sp)
/* f07a468: afaa0010 */ sw $t2,0x10($sp)
/* f07a46c: 8fa50178 */ lw $a1,0x178($sp)
/* f07a470: 8fa600b4 */ lw $a2,0xb4($sp)
/* f07a474: 27a7013c */ addiu $a3,$sp,0x13c
/* f07a478: 0fc097a9 */ jal chrEmitSparks
/* f07a47c: afac0014 */ sw $t4,0x14($sp)
/* f07a480: 8fad0114 */ lw $t5,0x114($sp)
/* f07a484: 8fab0178 */ lw $t3,0x178($sp)
/* f07a488: 8faf00c0 */ lw $t7,0xc0($sp)
/* f07a48c: 8fb800bc */ lw $t8,0xbc($sp)
/* f07a490: 8fb900b8 */ lw $t9,0xb8($sp)
/* f07a494: 240e00c8 */ addiu $t6,$zero,0xc8
/* f07a498: afae0014 */ sw $t6,0x14($sp)
/* f07a49c: 8fa400ac */ lw $a0,0xac($sp)
/* f07a4a0: 8fa500b0 */ lw $a1,0xb0($sp)
/* f07a4a4: 27a6014c */ addiu $a2,$sp,0x14c
/* f07a4a8: 27a70118 */ addiu $a3,$sp,0x118
/* f07a4ac: afa00028 */ sw $zero,0x28($sp)
/* f07a4b0: afad0010 */ sw $t5,0x10($sp)
/* f07a4b4: afab0018 */ sw $t3,0x18($sp)
/* f07a4b8: afaf001c */ sw $t7,0x1c($sp)
/* f07a4bc: afb80020 */ sw $t8,0x20($sp)
/* f07a4c0: 0fc0d077 */ jal func0f0341dc
/* f07a4c4: afb90024 */ sw $t9,0x24($sp)
/* f07a4c8: 100000e1 */ b .L0f07a850
/* f07a4cc: 8fa40198 */ lw $a0,0x198($sp)
.L0f07a4d0:
/* f07a4d0: 24080001 */ addiu $t0,$zero,0x1
.L0f07a4d4:
/* f07a4d4: 100000dd */ b .L0f07a84c
/* f07a4d8: afa80148 */ sw $t0,0x148($sp)
.L0f07a4dc:
/* f07a4dc: 10400045 */ beqz $v0,.L0f07a5f4
/* f07a4e0: 27a40168 */ addiu $a0,$sp,0x168
/* f07a4e4: 90490000 */ lbu $t1,0x0($v0)
/* f07a4e8: 24010001 */ addiu $at,$zero,0x1
/* f07a4ec: 27a50158 */ addiu $a1,$sp,0x158
/* f07a4f0: 15210040 */ bne $t1,$at,.L0f07a5f4
/* f07a4f4: 27a6013c */ addiu $a2,$sp,0x13c
/* f07a4f8: 240a0010 */ addiu $t2,$zero,0x10
/* f07a4fc: afa000a8 */ sw $zero,0xa8($sp)
/* f07a500: afaa0010 */ sw $t2,0x10($sp)
/* f07a504: 27a40168 */ addiu $a0,$sp,0x168
/* f07a508: 0c00b764 */ jal cdTestAToB4
/* f07a50c: 2407003b */ addiu $a3,$zero,0x3b
/* f07a510: 1440000a */ bnez $v0,.L0f07a53c
/* f07a514: 27a4013c */ addiu $a0,$sp,0x13c
/* f07a518: 3c067f1b */ lui $a2,%hi(var7f1aa02c)
/* f07a51c: 24c6a02c */ addiu $a2,$a2,%lo(var7f1aa02c)
/* f07a520: 0c0093af */ jal cdGetPos
/* f07a524: 24052cf9 */ addiu $a1,$zero,0x2d0f
/* f07a528: 0c0093ac */ jal cdGetObstacle
/* f07a52c: 00000000 */ nop
/* f07a530: 240c0001 */ addiu $t4,$zero,0x1
/* f07a534: afac0148 */ sw $t4,0x148($sp)
/* f07a538: afa200a8 */ sw $v0,0xa8($sp)
.L0f07a53c:
/* f07a53c: 8fa300a8 */ lw $v1,0xa8($sp)
/* f07a540: 506000c3 */ beqzl $v1,.L0f07a850
/* f07a544: 8fa40198 */ lw $a0,0x198($sp)
/* f07a548: 906d0000 */ lbu $t5,0x0($v1)
/* f07a54c: 24010001 */ addiu $at,$zero,0x1
/* f07a550: 55a100bf */ bnel $t5,$at,.L0f07a850
/* f07a554: 8fa40198 */ lw $a0,0x198($sp)
/* f07a558: 8c640004 */ lw $a0,0x4($v1)
/* f07a55c: 2401014c */ addiu $at,$zero,0x14c
/* f07a560: 3c0b8007 */ lui $t3,%hi(var80069cbc)
/* f07a564: 848e0004 */ lh $t6,0x4($a0)
/* f07a568: 27a5013c */ addiu $a1,$sp,0x13c
/* f07a56c: 24060000 */ addiu $a2,$zero,0x0
/* f07a570: 55c100b7 */ bnel $t6,$at,.L0f07a850
/* f07a574: 8fa40198 */ lw $a0,0x198($sp)
/* f07a578: 8d6b9cbc */ lw $t3,%lo(var80069cbc)($t3)
/* f07a57c: afa00148 */ sw $zero,0x148($sp)
/* f07a580: afa300a8 */ sw $v1,0xa8($sp)
/* f07a584: 0fc68330 */ jal frCalculateHit
/* f07a588: afab00a0 */ sw $t3,0xa0($sp)
/* f07a58c: 0fc4f92a */ jal chrIsUsingPaintball
/* f07a590: 8fa40110 */ lw $a0,0x110($sp)
/* f07a594: 1040000b */ beqz $v0,.L0f07a5c4
/* f07a598: 8fa500a8 */ lw $a1,0xa8($sp)
/* f07a59c: 8fa500a8 */ lw $a1,0xa8($sp)
/* f07a5a0: 240f0019 */ addiu $t7,$zero,0x19
/* f07a5a4: 27a6013c */ addiu $a2,$sp,0x13c
/* f07a5a8: 84a40028 */ lh $a0,0x28($a1)
/* f07a5ac: afaf0014 */ sw $t7,0x14($sp)
/* f07a5b0: afa00010 */ sw $zero,0x10($sp)
/* f07a5b4: 0fc4be7c */ jal sparksCreate
/* f07a5b8: 00003825 */ or $a3,$zero,$zero
/* f07a5bc: 10000008 */ b .L0f07a5e0
/* f07a5c0: 27a400a0 */ addiu $a0,$sp,0xa0
.L0f07a5c4:
/* f07a5c4: 84a40028 */ lh $a0,0x28($a1)
/* f07a5c8: afa00014 */ sw $zero,0x14($sp)
/* f07a5cc: afa00010 */ sw $zero,0x10($sp)
/* f07a5d0: 27a6013c */ addiu $a2,$sp,0x13c
/* f07a5d4: 0fc4be7c */ jal sparksCreate
/* f07a5d8: 00003825 */ or $a3,$zero,$zero
/* f07a5dc: 27a400a0 */ addiu $a0,$sp,0xa0
.L0f07a5e0:
/* f07a5e0: 8fa500a8 */ lw $a1,0xa8($sp)
/* f07a5e4: 0fc29f66 */ jal bgunPlayPropHitSound
/* f07a5e8: 240600f2 */ addiu $a2,$zero,0xf2
/* f07a5ec: 10000098 */ b .L0f07a850
/* f07a5f0: 8fa40198 */ lw $a0,0x198($sp)
.L0f07a5f4:
/* f07a5f4: 24190010 */ addiu $t9,$zero,0x10
/* f07a5f8: afb90010 */ sw $t9,0x10($sp)
/* f07a5fc: 27a50158 */ addiu $a1,$sp,0x158
/* f07a600: 27a6013c */ addiu $a2,$sp,0x13c
/* f07a604: 0c00b764 */ jal cdTestAToB4
/* f07a608: 24070022 */ addiu $a3,$zero,0x22
/* f07a60c: 14400007 */ bnez $v0,.L0f07a62c
/* f07a610: 27a4013c */ addiu $a0,$sp,0x13c
/* f07a614: 3c067f1b */ lui $a2,%hi(var7f1aa038)
/* f07a618: 24c6a038 */ addiu $a2,$a2,%lo(var7f1aa038)
/* f07a61c: 0c0093af */ jal cdGetPos
/* f07a620: 24052d13 */ addiu $a1,$zero,0x2d29
/* f07a624: 24080001 */ addiu $t0,$zero,0x1
/* f07a628: afa80148 */ sw $t0,0x148($sp)
.L0f07a62c:
/* f07a62c: 8faa0194 */ lw $t2,0x194($sp)
/* f07a630: 3c09800a */ lui $t1,%hi(g_Vars+0x8)
/* f07a634: 8d299fc8 */ lw $t1,%lo(g_Vars+0x8)($t1)
/* f07a638: 8d4c0094 */ lw $t4,0x94($t2)
/* f07a63c: 8fa20124 */ lw $v0,0x124($sp)
/* f07a640: 552c0083 */ bnel $t1,$t4,.L0f07a850
/* f07a644: 8fa40198 */ lw $a0,0x198($sp)
/* f07a648: 50400081 */ beqzl $v0,.L0f07a850
/* f07a64c: 8fa40198 */ lw $a0,0x198($sp)
/* f07a650: 904d0000 */ lbu $t5,0x0($v0)
/* f07a654: 24010006 */ addiu $at,$zero,0x6
/* f07a658: c7a40168 */ lwc1 $f4,0x168($sp)
/* f07a65c: 55a1007c */ bnel $t5,$at,.L0f07a850
/* f07a660: 8fa40198 */ lw $a0,0x198($sp)
/* f07a664: c4520008 */ lwc1 $f18,0x8($v0)
/* f07a668: c446000c */ lwc1 $f6,0xc($v0)
/* f07a66c: c7a8016c */ lwc1 $f8,0x16c($sp)
/* f07a670: 46049001 */ sub.s $f0,$f18,$f4
/* f07a674: c44a0010 */ lwc1 $f10,0x10($v0)
/* f07a678: c7b00170 */ lwc1 $f16,0x170($sp)
/* f07a67c: 46083081 */ sub.s $f2,$f6,$f8
/* f07a680: 46000482 */ mul.s $f18,$f0,$f0
/* f07a684: 46105301 */ sub.s $f12,$f10,$f16
/* f07a688: 46021182 */ mul.s $f6,$f2,$f2
/* f07a68c: 46069280 */ add.s $f10,$f18,$f6
/* f07a690: 460c6482 */ mul.s $f18,$f12,$f12
/* f07a694: c7a6013c */ lwc1 $f6,0x13c($sp)
/* f07a698: 46043001 */ sub.s $f0,$f6,$f4
/* f07a69c: 46125380 */ add.s $f14,$f10,$f18
/* f07a6a0: c7aa0140 */ lwc1 $f10,0x140($sp)
/* f07a6a4: 46000182 */ mul.s $f6,$f0,$f0
/* f07a6a8: c7b20144 */ lwc1 $f18,0x144($sp)
/* f07a6ac: 46085081 */ sub.s $f2,$f10,$f8
/* f07a6b0: 46109301 */ sub.s $f12,$f18,$f16
/* f07a6b4: 46021102 */ mul.s $f4,$f2,$f2
/* f07a6b8: 46043280 */ add.s $f10,$f6,$f4
/* f07a6bc: 460c6202 */ mul.s $f8,$f12,$f12
/* f07a6c0: 46085480 */ add.s $f18,$f10,$f8
/* f07a6c4: 4612703e */ c.le.s $f14,$f18
/* f07a6c8: 00000000 */ nop
/* f07a6cc: 45020060 */ bc1fl .L0f07a850
/* f07a6d0: 8fa40198 */ lw $a0,0x198($sp)
/* f07a6d4: 0c012974 */ jal sqrtf
/* f07a6d8: 46007306 */ mov.s $f12,$f14
/* f07a6dc: 3c014348 */ lui $at,0x4348
/* f07a6e0: 44816000 */ mtc1 $at,$f12
/* f07a6e4: 3c017f1b */ lui $at,%hi(var7f1aa58c)
/* f07a6e8: c430a58c */ lwc1 $f16,%lo(var7f1aa58c)($at)
/* f07a6ec: 3c01800a */ lui $at,%hi(g_Vars+0x4c)
/* f07a6f0: c426a00c */ lwc1 $f6,%lo(g_Vars+0x4c)($at)
/* f07a6f4: 3c018007 */ lui $at,%hi(var80069950)
/* f07a6f8: 4600603c */ c.lt.s $f12,$f0
/* f07a6fc: 46068102 */ mul.s $f4,$f16,$f6
/* f07a700: c42a9950 */ lwc1 $f10,%lo(var80069950)($at)
/* f07a704: 8fae0194 */ lw $t6,0x194($sp)
/* f07a708: 460a2082 */ mul.s $f2,$f4,$f10
/* f07a70c: 45020005 */ bc1fl .L0f07a724
/* f07a710: c5d200a0 */ lwc1 $f18,0xa0($t6)
/* f07a714: 46006203 */ div.s $f8,$f12,$f0
/* f07a718: 46081082 */ mul.s $f2,$f2,$f8
/* f07a71c: 00000000 */ nop
/* f07a720: c5d200a0 */ lwc1 $f18,0xa0($t6)
.L0f07a724:
/* f07a724: 3c013f80 */ lui $at,0x3f80
/* f07a728: 44813000 */ mtc1 $at,$f6
/* f07a72c: 46029400 */ add.s $f16,$f18,$f2
/* f07a730: 4610303e */ c.le.s $f6,$f16
/* f07a734: e5d000a0 */ swc1 $f16,0xa0($t6)
/* f07a738: 8fab0124 */ lw $t3,0x124($sp)
/* f07a73c: 45020044 */ bc1fl .L0f07a850
/* f07a740: 8fa40198 */ lw $a0,0x198($sp)
/* f07a744: c5640008 */ lwc1 $f4,0x8($t3)
/* f07a748: e7a4013c */ swc1 $f4,0x13c($sp)
/* f07a74c: c56a000c */ lwc1 $f10,0xc($t3)
/* f07a750: e7aa0140 */ swc1 $f10,0x140($sp)
/* f07a754: c5680010 */ lwc1 $f8,0x10($t3)
/* f07a758: afa00148 */ sw $zero,0x148($sp)
/* f07a75c: 0c004b70 */ jal random
/* f07a760: e7a80144 */ swc1 $f8,0x144($sp)
/* f07a764: 304f0001 */ andi $t7,$v0,0x1
/* f07a768: 11e00012 */ beqz $t7,.L0f07a7b4
/* f07a76c: 00000000 */ nop
/* f07a770: 0c004b70 */ jal random
/* f07a774: 00000000 */ nop
/* f07a778: 2401000a */ addiu $at,$zero,0xa
/* f07a77c: 0041001b */ divu $zero,$v0,$at
/* f07a780: 0000c010 */ mfhi $t8
/* f07a784: 27190002 */ addiu $t9,$t8,0x2
/* f07a788: 44998000 */ mtc1 $t9,$f16
/* f07a78c: c7b20140 */ lwc1 $f18,0x140($sp)
/* f07a790: 07210005 */ bgez $t9,.L0f07a7a8
/* f07a794: 468081a0 */ cvt.s.w $f6,$f16
/* f07a798: 3c014f80 */ lui $at,0x4f80
/* f07a79c: 44812000 */ mtc1 $at,$f4
/* f07a7a0: 00000000 */ nop
/* f07a7a4: 46043180 */ add.s $f6,$f6,$f4
.L0f07a7a8:
/* f07a7a8: 46069280 */ add.s $f10,$f18,$f6
/* f07a7ac: 10000011 */ b .L0f07a7f4
/* f07a7b0: e7aa0140 */ swc1 $f10,0x140($sp)
.L0f07a7b4:
/* f07a7b4: 0c004b70 */ jal random
/* f07a7b8: 00000000 */ nop
/* f07a7bc: 2401000a */ addiu $at,$zero,0xa
/* f07a7c0: 0041001b */ divu $zero,$v0,$at
/* f07a7c4: 00004010 */ mfhi $t0
/* f07a7c8: 250a0002 */ addiu $t2,$t0,0x2
/* f07a7cc: 448a8000 */ mtc1 $t2,$f16
/* f07a7d0: c7a80140 */ lwc1 $f8,0x140($sp)
/* f07a7d4: 05410005 */ bgez $t2,.L0f07a7ec
/* f07a7d8: 46808120 */ cvt.s.w $f4,$f16
/* f07a7dc: 3c014f80 */ lui $at,0x4f80
/* f07a7e0: 44819000 */ mtc1 $at,$f18
/* f07a7e4: 00000000 */ nop
/* f07a7e8: 46122100 */ add.s $f4,$f4,$f18
.L0f07a7ec:
/* f07a7ec: 46044181 */ sub.s $f6,$f8,$f4
/* f07a7f0: e7a60140 */ swc1 $f6,0x140($sp)
.L0f07a7f4:
/* f07a7f4: 27a40118 */ addiu $a0,$sp,0x118
/* f07a7f8: 8fa50124 */ lw $a1,0x124($sp)
/* f07a7fc: 0fc29f66 */ jal bgunPlayPropHitSound
/* f07a800: 2406ffff */ addiu $a2,$zero,-1
/* f07a804: 3c013f00 */ lui $at,0x3f00
/* f07a808: 44815000 */ mtc1 $at,$f10
/* f07a80c: 3c018007 */ lui $at,%hi(var80069954)
/* f07a810: c4309954 */ lwc1 $f16,%lo(var80069954)($at)
/* f07a814: 8fa90124 */ lw $t1,0x124($sp)
/* f07a818: 240c00c8 */ addiu $t4,$zero,0xc8
/* f07a81c: 46105002 */ mul.s $f0,$f10,$f16
/* f07a820: 8d240004 */ lw $a0,0x4($t1)
/* f07a824: afac0014 */ sw $t4,0x14($sp)
/* f07a828: afa00010 */ sw $zero,0x10($sp)
/* f07a82c: 27a6014c */ addiu $a2,$sp,0x14c
/* f07a830: 27a70118 */ addiu $a3,$sp,0x118
/* f07a834: 44050000 */ mfc1 $a1,$f0
/* f07a838: 0fc0d0cc */ jal chrDamageByImpact
/* f07a83c: 00000000 */ nop
/* f07a840: 44809000 */ mtc1 $zero,$f18
/* f07a844: 8fad0194 */ lw $t5,0x194($sp)
/* f07a848: e5b200a0 */ swc1 $f18,0xa0($t5)
.L0f07a84c:
/* f07a84c: 8fa40198 */ lw $a0,0x198($sp)
.L0f07a850:
/* f07a850: 0fc1905e */ jal propSetPerimEnabled
/* f07a854: 24050001 */ addiu $a1,$zero,0x1
/* f07a858: 8fae018c */ lw $t6,0x18c($sp)
/* f07a85c: 8fab0188 */ lw $t3,0x188($sp)
/* f07a860: 8faf0194 */ lw $t7,0x194($sp)
/* f07a864: 15c00003 */ bnez $t6,.L0f07a874
/* f07a868: 27a40168 */ addiu $a0,$sp,0x168
/* f07a86c: 51600009 */ beqzl $t3,.L0f07a894
/* f07a870: 8fb90148 */ lw $t9,0x148($sp)
.L0f07a874:
/* f07a874: 91e200a9 */ lbu $v0,0xa9($t7)
/* f07a878: 240100ff */ addiu $at,$zero,0xff
/* f07a87c: 58400005 */ blezl $v0,.L0f07a894
/* f07a880: 8fb90148 */ lw $t9,0x148($sp)
/* f07a884: 10410002 */ beq $v0,$at,.L0f07a890
/* f07a888: 2458ffff */ addiu $t8,$v0,-1
/* f07a88c: a1f800a9 */ sb $t8,0xa9($t7)
.L0f07a890:
/* f07a890: 8fb90148 */ lw $t9,0x148($sp)
.L0f07a894:
/* f07a894: 27a5013c */ addiu $a1,$sp,0x13c
/* f07a898: 27a60158 */ addiu $a2,$sp,0x158
/* f07a89c: 13200024 */ beqz $t9,.L0f07a930
/* f07a8a0: 27a7012c */ addiu $a3,$sp,0x12c
/* f07a8a4: afa00010 */ sw $zero,0x10($sp)
/* f07a8a8: 0c006052 */ jal portal00018148
/* f07a8ac: afa00014 */ sw $zero,0x14($sp)
/* f07a8b0: 0fc4f92a */ jal chrIsUsingPaintball
/* f07a8b4: 8fa40110 */ lw $a0,0x110($sp)
/* f07a8b8: 1040000b */ beqz $v0,.L0f07a8e8
/* f07a8bc: 8faa0194 */ lw $t2,0x194($sp)
/* f07a8c0: 24080019 */ addiu $t0,$zero,0x19
/* f07a8c4: afa80014 */ sw $t0,0x14($sp)
/* f07a8c8: 87a4012c */ lh $a0,0x12c($sp)
/* f07a8cc: 00002825 */ or $a1,$zero,$zero
/* f07a8d0: 27a6013c */ addiu $a2,$sp,0x13c
/* f07a8d4: 00003825 */ or $a3,$zero,$zero
/* f07a8d8: 0fc4be7c */ jal sparksCreate
/* f07a8dc: afa00010 */ sw $zero,0x10($sp)
/* f07a8e0: 1000000f */ b .L0f07a920
/* f07a8e4: 27a40118 */ addiu $a0,$sp,0x118
.L0f07a8e8:
/* f07a8e8: 85490004 */ lh $t1,0x4($t2)
/* f07a8ec: 24010144 */ addiu $at,$zero,0x144
/* f07a8f0: 87a4012c */ lh $a0,0x12c($sp)
/* f07a8f4: 15210003 */ bne $t1,$at,.L0f07a904
/* f07a8f8: 00002825 */ or $a1,$zero,$zero
/* f07a8fc: 10000002 */ b .L0f07a908
/* f07a900: 24020017 */ addiu $v0,$zero,0x17
.L0f07a904:
/* f07a904: 00001025 */ or $v0,$zero,$zero
.L0f07a908:
/* f07a908: 27a6013c */ addiu $a2,$sp,0x13c
/* f07a90c: 00003825 */ or $a3,$zero,$zero
/* f07a910: afa00010 */ sw $zero,0x10($sp)
/* f07a914: 0fc4be7c */ jal sparksCreate
/* f07a918: afa20014 */ sw $v0,0x14($sp)
/* f07a91c: 27a40118 */ addiu $a0,$sp,0x118
.L0f07a920:
/* f07a920: 27a5013c */ addiu $a1,$sp,0x13c
/* f07a924: 2406ffff */ addiu $a2,$zero,-1
/* f07a928: 0fc2a132 */ jal bgunPlayBgHitSound
/* f07a92c: 27a7012c */ addiu $a3,$sp,0x12c
.L0f07a930:
/* f07a930: 8fac0128 */ lw $t4,0x128($sp)
/* f07a934: c7a8013c */ lwc1 $f8,0x13c($sp)
/* f07a938: c7a40168 */ lwc1 $f4,0x168($sp)
/* f07a93c: 51800097 */ beqzl $t4,.L0f07ab9c
/* f07a940: 8fa80194 */ lw $t0,0x194($sp)
/* f07a944: 46044181 */ sub.s $f6,$f8,$f4
/* f07a948: c7aa0140 */ lwc1 $f10,0x140($sp)
/* f07a94c: c7b0016c */ lwc1 $f16,0x16c($sp)
/* f07a950: c7a40170 */ lwc1 $f4,0x170($sp)
/* f07a954: c7a80144 */ lwc1 $f8,0x144($sp)
/* f07a958: 46105481 */ sub.s $f18,$f10,$f16
/* f07a95c: 8fad0194 */ lw $t5,0x194($sp)
/* f07a960: 46063402 */ mul.s $f16,$f6,$f6
/* f07a964: 46044281 */ sub.s $f10,$f8,$f4
/* f07a968: 8da3009c */ lw $v1,0x9c($t5)
/* f07a96c: 46129202 */ mul.s $f8,$f18,$f18
/* f07a970: e7a60068 */ swc1 $f6,0x68($sp)
/* f07a974: e7aa0070 */ swc1 $f10,0x70($sp)
/* f07a978: c7aa0070 */ lwc1 $f10,0x70($sp)
/* f07a97c: c7a60070 */ lwc1 $f6,0x70($sp)
/* f07a980: e7b2006c */ swc1 $f18,0x6c($sp)
/* f07a984: afa30078 */ sw $v1,0x78($sp)
/* f07a988: 46065482 */ mul.s $f18,$f10,$f6
/* f07a98c: 46088100 */ add.s $f4,$f16,$f8
/* f07a990: 0c012974 */ jal sqrtf
/* f07a994: 46049300 */ add.s $f12,$f18,$f4
/* f07a998: 44808000 */ mtc1 $zero,$f16
/* f07a99c: 8fa30078 */ lw $v1,0x78($sp)
/* f07a9a0: 46000306 */ mov.s $f12,$f0
/* f07a9a4: 4600803c */ c.lt.s $f16,$f0
/* f07a9a8: 3c017f1b */ lui $at,%hi(var7f1aa590)
/* f07a9ac: c7a80168 */ lwc1 $f8,0x168($sp)
/* f07a9b0: 4502007a */ bc1fl .L0f07ab9c
/* f07a9b4: 8fa80194 */ lw $t0,0x194($sp)
/* f07a9b8: c42ea590 */ lwc1 $f14,%lo(var7f1aa590)($at)
/* f07a9bc: e4680004 */ swc1 $f8,0x4($v1)
/* f07a9c0: 3c013f80 */ lui $at,0x3f80
/* f07a9c4: 44814000 */ mtc1 $at,$f8
/* f07a9c8: c7aa016c */ lwc1 $f10,0x16c($sp)
/* f07a9cc: 4600703c */ c.lt.s $f14,$f0
/* f07a9d0: 240f002b */ addiu $t7,$zero,0x2b
/* f07a9d4: 46004083 */ div.s $f2,$f8,$f0
/* f07a9d8: e46a0008 */ swc1 $f10,0x8($v1)
/* f07a9dc: c7a60170 */ lwc1 $f6,0x170($sp)
/* f07a9e0: 2418000c */ addiu $t8,$zero,0xc
/* f07a9e4: e466000c */ swc1 $f6,0xc($v1)
/* f07a9e8: c7b20068 */ lwc1 $f18,0x68($sp)
/* f07a9ec: e4720010 */ swc1 $f18,0x10($v1)
/* f07a9f0: c7a4006c */ lwc1 $f4,0x6c($sp)
/* f07a9f4: c46a0010 */ lwc1 $f10,0x10($v1)
/* f07a9f8: e4640014 */ swc1 $f4,0x14($v1)
/* f07a9fc: c7b00070 */ lwc1 $f16,0x70($sp)
/* f07aa00: c4720014 */ lwc1 $f18,0x14($v1)
/* f07aa04: e4700018 */ swc1 $f16,0x18($v1)
/* f07aa08: c4700018 */ lwc1 $f16,0x18($v1)
/* f07aa0c: 46025182 */ mul.s $f6,$f10,$f2
/* f07aa10: 00000000 */ nop
/* f07aa14: 46029102 */ mul.s $f4,$f18,$f2
/* f07aa18: 00000000 */ nop
/* f07aa1c: 46028202 */ mul.s $f8,$f16,$f2
/* f07aa20: e4660010 */ swc1 $f6,0x10($v1)
/* f07aa24: e4640014 */ swc1 $f4,0x14($v1)
/* f07aa28: 45000002 */ bc1f .L0f07aa34
/* f07aa2c: e4680018 */ swc1 $f8,0x18($v1)
/* f07aa30: 46007306 */ mov.s $f12,$f14
.L0f07aa34:
/* f07aa34: a0600000 */ sb $zero,0x0($v1)
/* f07aa38: 8fae0194 */ lw $t6,0x194($sp)
/* f07aa3c: 24010144 */ addiu $at,$zero,0x144
/* f07aa40: 85cb0004 */ lh $t3,0x4($t6)
/* f07aa44: 55610004 */ bnel $t3,$at,.L0f07aa58
/* f07aa48: a06f0001 */ sb $t7,0x1($v1)
/* f07aa4c: 10000002 */ b .L0f07aa58
/* f07aa50: a0780001 */ sb $t8,0x1($v1)
/* f07aa54: a06f0001 */ sb $t7,0x1($v1)
.L0f07aa58:
/* f07aa58: 3c0143fa */ lui $at,0x43fa
/* f07aa5c: 44810000 */ mtc1 $at,$f0
/* f07aa60: e46c001c */ swc1 $f12,0x1c($v1)
/* f07aa64: 4600603c */ c.lt.s $f12,$f0
/* f07aa68: 00000000 */ nop
/* f07aa6c: 45020003 */ bc1fl .L0f07aa7c
/* f07aa70: 80790001 */ lb $t9,0x1($v1)
/* f07aa74: 46000306 */ mov.s $f12,$f0
/* f07aa78: 80790001 */ lb $t9,0x1($v1)
.L0f07aa7c:
/* f07aa7c: 2401001d */ addiu $at,$zero,0x1d
/* f07aa80: 17210026 */ bne $t9,$at,.L0f07ab1c
/* f07aa84: 3c017f1b */ lui $at,%hi(var7f1aa594)
/* f07aa88: c422a594 */ lwc1 $f2,%lo(var7f1aa594)($at)
/* f07aa8c: 3c013e80 */ lui $at,0x3e80
/* f07aa90: 44815000 */ mtc1 $at,$f10
/* f07aa94: 3c017f1b */ lui $at,%hi(var7f1aa598)
/* f07aa98: 460c5182 */ mul.s $f6,$f10,$f12
/* f07aa9c: e4660020 */ swc1 $f6,0x20($v1)
/* f07aaa0: c432a598 */ lwc1 $f18,%lo(var7f1aa598)($at)
/* f07aaa4: 460c9002 */ mul.s $f0,$f18,$f12
/* f07aaa8: 4600103c */ c.lt.s $f2,$f0
/* f07aaac: e4600024 */ swc1 $f0,0x24($v1)
/* f07aab0: 45020003 */ bc1fl .L0f07aac0
/* f07aab4: afa30078 */ sw $v1,0x78($sp)
/* f07aab8: e4620024 */ swc1 $f2,0x24($v1)
/* f07aabc: afa30078 */ sw $v1,0x78($sp)
.L0f07aac0:
/* f07aac0: 0c004b70 */ jal random
/* f07aac4: e7ac007c */ swc1 $f12,0x7c($sp)
/* f07aac8: 44822000 */ mtc1 $v0,$f4
/* f07aacc: 8fa30078 */ lw $v1,0x78($sp)
/* f07aad0: c7ac007c */ lwc1 $f12,0x7c($sp)
/* f07aad4: 04410005 */ bgez $v0,.L0f07aaec
/* f07aad8: 46802420 */ cvt.s.w $f16,$f4
/* f07aadc: 3c014f80 */ lui $at,0x4f80
/* f07aae0: 44814000 */ mtc1 $at,$f8
/* f07aae4: 00000000 */ nop
/* f07aae8: 46088400 */ add.s $f16,$f16,$f8
.L0f07aaec:
/* f07aaec: 3c012f80 */ lui $at,0x2f80
/* f07aaf0: 44815000 */ mtc1 $at,$f10
/* f07aaf4: 3c017f1b */ lui $at,%hi(var7f1aa59c)
/* f07aaf8: c432a59c */ lwc1 $f18,%lo(var7f1aa59c)($at)
/* f07aafc: 460a8182 */ mul.s $f6,$f16,$f10
/* f07ab00: 3c017f1b */ lui $at,%hi(var7f1aa5a0)
/* f07ab04: c428a5a0 */ lwc1 $f8,%lo(var7f1aa5a0)($at)
/* f07ab08: 46123102 */ mul.s $f4,$f6,$f18
/* f07ab0c: 46044401 */ sub.s $f16,$f8,$f4
/* f07ab10: 460c8282 */ mul.s $f10,$f16,$f12
/* f07ab14: 10000020 */ b .L0f07ab98
/* f07ab18: e46a0028 */ swc1 $f10,0x28($v1)
.L0f07ab1c:
/* f07ab1c: 3c017f1b */ lui $at,%hi(var7f1aa5a4)
/* f07ab20: c422a5a4 */ lwc1 $f2,%lo(var7f1aa5a4)($at)
/* f07ab24: 3c017f1b */ lui $at,%hi(var7f1aa5a8)
/* f07ab28: c426a5a8 */ lwc1 $f6,%lo(var7f1aa5a8)($at)
/* f07ab2c: 460c3002 */ mul.s $f0,$f6,$f12
/* f07ab30: 4600103c */ c.lt.s $f2,$f0
/* f07ab34: e4600020 */ swc1 $f0,0x20($v1)
/* f07ab38: e4600024 */ swc1 $f0,0x24($v1)
/* f07ab3c: 45000002 */ bc1f .L0f07ab48
/* f07ab40: 00000000 */ nop
/* f07ab44: e4620024 */ swc1 $f2,0x24($v1)
.L0f07ab48:
/* f07ab48: 0c004b70 */ jal random
/* f07ab4c: afa30078 */ sw $v1,0x78($sp)
/* f07ab50: 44829000 */ mtc1 $v0,$f18
/* f07ab54: 8fa30078 */ lw $v1,0x78($sp)
/* f07ab58: 04410005 */ bgez $v0,.L0f07ab70
/* f07ab5c: 46809220 */ cvt.s.w $f8,$f18
/* f07ab60: 3c014f80 */ lui $at,0x4f80
/* f07ab64: 44812000 */ mtc1 $at,$f4
/* f07ab68: 00000000 */ nop
/* f07ab6c: 46044200 */ add.s $f8,$f8,$f4
.L0f07ab70:
/* f07ab70: 3c012f80 */ lui $at,0x2f80
/* f07ab74: 44818000 */ mtc1 $at,$f16
/* f07ab78: 3c013f80 */ lui $at,0x3f80
/* f07ab7c: 44813000 */ mtc1 $at,$f6
/* f07ab80: 46104002 */ mul.s $f0,$f8,$f16
/* f07ab84: c4640020 */ lwc1 $f4,0x20($v1)
/* f07ab88: 46000280 */ add.s $f10,$f0,$f0
/* f07ab8c: 46065481 */ sub.s $f18,$f10,$f6
/* f07ab90: 46049202 */ mul.s $f8,$f18,$f4
/* f07ab94: e4680028 */ swc1 $f8,0x28($v1)
.L0f07ab98:
/* f07ab98: 8fa80194 */ lw $t0,0x194($sp)
.L0f07ab9c:
/* f07ab9c: 3c09800a */ lui $t1,%hi(g_Vars+0x8)
/* f07aba0: 8d299fc8 */ lw $t1,%lo(g_Vars+0x8)($t1)
/* f07aba4: 8d0a0098 */ lw $t2,0x98($t0)
/* f07aba8: 240c0002 */ addiu $t4,$zero,0x2
/* f07abac: 24050001 */ addiu $a1,$zero,0x1
/* f07abb0: 0149082a */ slt $at,$t2,$t1
/* f07abb4: 1020002d */ beqz $at,.L0f07ac6c
/* f07abb8: 3406ffff */ dli $a2,0xffff
/* f07abbc: afac0064 */ sw $t4,0x64($sp)
/* f07abc0: 0fc249af */ jal func0f0926bc
/* f07abc4: 8fa40198 */ lw $a0,0x198($sp)
/* f07abc8: 8fad0174 */ lw $t5,0x174($sp)
/* f07abcc: 8fae0194 */ lw $t6,0x194($sp)
/* f07abd0: 00002025 */ or $a0,$zero,$zero
/* f07abd4: 15a0001f */ bnez $t5,.L0f07ac54
/* f07abd8: 2407ffff */ addiu $a3,$zero,-1
/* f07abdc: 85c30004 */ lh $v1,0x4($t6)
/* f07abe0: 24010144 */ addiu $at,$zero,0x144
/* f07abe4: 3402806f */ dli $v0,0x806f
/* f07abe8: 14610002 */ bne $v1,$at,.L0f07abf4
/* f07abec: 240fffff */ addiu $t7,$zero,-1
/* f07abf0: 34028040 */ dli $v0,0x8040
.L0f07abf4:
/* f07abf4: 24010157 */ addiu $at,$zero,0x157
/* f07abf8: 14610004 */ bne $v1,$at,.L0f07ac0c
/* f07abfc: 2419ffff */ addiu $t9,$zero,-1
/* f07ac00: 240b0004 */ addiu $t3,$zero,0x4
/* f07ac04: 34028044 */ dli $v0,0x8044
/* f07ac08: afab0064 */ sw $t3,0x64($sp)
.L0f07ac0c:
/* f07ac0c: 3c01bf80 */ lui $at,0xbf80
/* f07ac10: 44810000 */ mtc1 $at,$f0
/* f07ac14: 00023400 */ sll $a2,$v0,0x10
/* f07ac18: 0006c403 */ sra $t8,$a2,0x10
/* f07ac1c: 03003025 */ or $a2,$t8,$zero
/* f07ac20: 8fa50198 */ lw $a1,0x198($sp)
/* f07ac24: afaf0010 */ sw $t7,0x10($sp)
/* f07ac28: afa00014 */ sw $zero,0x14($sp)
/* f07ac2c: afa00018 */ sw $zero,0x18($sp)
/* f07ac30: afa0001c */ sw $zero,0x1c($sp)
/* f07ac34: afa00020 */ sw $zero,0x20($sp)
/* f07ac38: afa00028 */ sw $zero,0x28($sp)
/* f07ac3c: afb9002c */ sw $t9,0x2c($sp)
/* f07ac40: e7a00024 */ swc1 $f0,0x24($sp)
/* f07ac44: e7a00030 */ swc1 $f0,0x30($sp)
/* f07ac48: e7a00034 */ swc1 $f0,0x34($sp)
/* f07ac4c: 0fc24e7e */ jal propsnd0f0939f8
/* f07ac50: e7a00038 */ swc1 $f0,0x38($sp)
.L0f07ac54:
/* f07ac54: 3c0a800a */ lui $t2,%hi(g_Vars+0x8)
/* f07ac58: 8d4a9fc8 */ lw $t2,%lo(g_Vars+0x8)($t2)
/* f07ac5c: 8fa80064 */ lw $t0,0x64($sp)
/* f07ac60: 8fac0194 */ lw $t4,0x194($sp)
/* f07ac64: 010a4821 */ addu $t1,$t0,$t2
/* f07ac68: ad890098 */ sw $t1,0x98($t4)
.L0f07ac6c:
/* f07ac6c: 8fad0184 */ lw $t5,0x184($sp)
.L0f07ac70:
/* f07ac70: 24050005 */ addiu $a1,$zero,0x5
/* f07ac74: 0c006a47 */ jal modelGetPart
/* f07ac78: 8da40008 */ lw $a0,0x8($t5)
/* f07ac7c: 10400005 */ beqz $v0,.L0f07ac94
/* f07ac80: 00402825 */ or $a1,$v0,$zero
/* f07ac84: 0c006a87 */ jal modelGetNodeRwData
/* f07ac88: 8fa40184 */ lw $a0,0x184($sp)
/* f07ac8c: 8fae018c */ lw $t6,0x18c($sp)
/* f07ac90: a44e0000 */ sh $t6,0x0($v0)
.L0f07ac94:
/* f07ac94: 8fab0184 */ lw $t3,0x184($sp)
/* f07ac98: 24050007 */ addiu $a1,$zero,0x7
/* f07ac9c: 0c006a47 */ jal modelGetPart
/* f07aca0: 8d640008 */ lw $a0,0x8($t3)
/* f07aca4: 10400005 */ beqz $v0,.L0f07acbc
/* f07aca8: 00402825 */ or $a1,$v0,$zero
/* f07acac: 0c006a87 */ jal modelGetNodeRwData
/* f07acb0: 8fa40184 */ lw $a0,0x184($sp)
/* f07acb4: 8fb80188 */ lw $t8,0x188($sp)
/* f07acb8: a4580000 */ sh $t8,0x0($v0)
.L0f07acbc:
/* f07acbc: 8fbf0044 */ lw $ra,0x44($sp)
/* f07acc0: 27bd0198 */ addiu $sp,$sp,0x198
/* f07acc4: 03e00008 */ jr $ra
/* f07acc8: 00000000 */ nop
);
#elif VERSION >= VERSION_PAL_BETA
GLOBAL_ASM(
glabel func0f079f1c
.late_rodata
glabel var7f1aa58c
.word 0x3e23d70a
glabel var7f1aa590
.word 0x461c4000
glabel var7f1aa594
.word 0x453b8000
glabel var7f1aa598
.word 0x3f19999a
glabel var7f1aa59c
.word 0x3e99999a
glabel var7f1aa5a0
.word 0xbdcccccd
glabel var7f1aa5a4
.word 0x453b8000
glabel var7f1aa5a8
.word 0x3e4ccccd
.text
/* f07a0bc: 27bdfe68 */ addiu $sp,$sp,-408
/* f07a0c0: afbf0044 */ sw $ra,0x44($sp)
/* f07a0c4: 0fc5b9b8 */ jal lvIsPaused
/* f07a0c8: afa40198 */ sw $a0,0x198($sp)
/* f07a0cc: 14400363 */ bnez $v0,.PB0f07ae5c
/* f07a0d0: 8fae0198 */ lw $t6,0x198($sp)
/* f07a0d4: 8dc20004 */ lw $v0,0x4($t6)
/* f07a0d8: afa0018c */ sw $zero,0x18c($sp)
/* f07a0dc: afa00188 */ sw $zero,0x188($sp)
/* f07a0e0: 8c4f0018 */ lw $t7,0x18($v0)
/* f07a0e4: afa00174 */ sw $zero,0x174($sp)
/* f07a0e8: afaf0184 */ sw $t7,0x184($sp)
/* f07a0ec: 8058005e */ lb $t8,0x5e($v0)
/* f07a0f0: 53000347 */ beqzl $t8,.PB0f07ae10
/* f07a0f4: 8fad0184 */ lw $t5,0x184($sp)
/* f07a0f8: 8c590008 */ lw $t9,0x8($v0)
/* f07a0fc: 001940c0 */ sll $t0,$t9,0x3
/* f07a100: 05020343 */ bltzl $t0,.PB0f07ae10
/* f07a104: 8fad0184 */ lw $t5,0x184($sp)
/* f07a108: 9049005f */ lbu $t1,0x5f($v0)
/* f07a10c: 24050005 */ li $a1,0x5
/* f07a110: 252b0001 */ addiu $t3,$t1,0x1
/* f07a114: a04b005f */ sb $t3,0x5f($v0)
/* f07a118: 8fae0184 */ lw $t6,0x184($sp)
/* f07a11c: 316c0001 */ andi $t4,$t3,0x1
/* f07a120: 2d8d0001 */ sltiu $t5,$t4,0x1
/* f07a124: afad018c */ sw $t5,0x18c($sp)
/* f07a128: 8dc40008 */ lw $a0,0x8($t6)
/* f07a12c: afa20194 */ sw $v0,0x194($sp)
/* f07a130: 0c006cdb */ jal modelGetPart
/* f07a134: afa20190 */ sw $v0,0x190($sp)
/* f07a138: 1040000b */ beqz $v0,.PB0f07a168
/* f07a13c: 8fa30190 */ lw $v1,0x190($sp)
/* f07a140: 8faf0194 */ lw $t7,0x194($sp)
/* f07a144: 91f8005f */ lbu $t8,0x5f($t7)
/* f07a148: 07010004 */ bgez $t8,.PB0f07a15c
/* f07a14c: 33190001 */ andi $t9,$t8,0x1
/* f07a150: 13200002 */ beqz $t9,.PB0f07a15c
/* f07a154: 00000000 */ nop
/* f07a158: 2739fffe */ addiu $t9,$t9,-2
.PB0f07a15c:
/* f07a15c: 3b280001 */ xori $t0,$t9,0x1
/* f07a160: 2d080001 */ sltiu $t0,$t0,0x1
/* f07a164: afa80188 */ sw $t0,0x188($sp)
.PB0f07a168:
/* f07a168: 8fa9018c */ lw $t1,0x18c($sp)
/* f07a16c: 8faa0188 */ lw $t2,0x188($sp)
/* f07a170: 55200004 */ bnezl $t1,.PB0f07a184
/* f07a174: 8fab0194 */ lw $t3,0x194($sp)
/* f07a178: 514002f0 */ beqzl $t2,.PB0f07ad3c
/* f07a17c: 8fa80194 */ lw $t0,0x194($sp)
/* f07a180: 8fab0194 */ lw $t3,0x194($sp)
.PB0f07a184:
/* f07a184: afa00148 */ sw $zero,0x148($sp)
/* f07a188: 3c188007 */ lui $t8,0x8007
/* f07a18c: 916c005f */ lbu $t4,0x5f($t3)
/* f07a190: 8f18b380 */ lw $t8,-0x4c80($t8)
/* f07a194: 3c09800a */ lui $t1,0x800a
/* f07a198: 318d0003 */ andi $t5,$t4,0x3
/* f07a19c: 2dae0001 */ sltiu $t6,$t5,0x1
/* f07a1a0: afae0128 */ sw $t6,0x128($sp)
/* f07a1a4: 8d6f00a4 */ lw $t7,0xa4($t3)
/* f07a1a8: afa0011c */ sw $zero,0x11c($sp)
/* f07a1ac: afa00114 */ sw $zero,0x114($sp)
/* f07a1b0: afa00110 */ sw $zero,0x110($sp)
/* f07a1b4: afb80118 */ sw $t8,0x118($sp)
/* f07a1b8: afaf0124 */ sw $t7,0x124($sp)
/* f07a1bc: 8c640040 */ lw $a0,0x40($v1)
/* f07a1c0: 8d29e7e8 */ lw $t1,-0x1818($t1)
/* f07a1c4: 3c01f000 */ lui $at,0xf000
/* f07a1c8: 0081c824 */ and $t9,$a0,$at
/* f07a1cc: 11200007 */ beqz $t1,.PB0f07a1ec
/* f07a1d0: 00192702 */ srl $a0,$t9,0x1c
/* f07a1d4: 0fc63b03 */ jal mpGetChrFromPlayerIndex
/* f07a1d8: 00000000 */ nop
/* f07a1dc: 10400003 */ beqz $v0,.PB0f07a1ec
/* f07a1e0: afa20110 */ sw $v0,0x110($sp)
/* f07a1e4: 8c4a001c */ lw $t2,0x1c($v0)
/* f07a1e8: afaa0114 */ sw $t2,0x114($sp)
.PB0f07a1ec:
/* f07a1ec: 8fac0194 */ lw $t4,0x194($sp)
/* f07a1f0: 918d005f */ lbu $t5,0x5f($t4)
/* f07a1f4: 31ae0007 */ andi $t6,$t5,0x7
/* f07a1f8: 55c00008 */ bnezl $t6,.PB0f07a21c
/* f07a1fc: 8faf0184 */ lw $t7,0x184($sp)
/* f07a200: 8fab0184 */ lw $t3,0x184($sp)
/* f07a204: 24050007 */ li $a1,0x7
/* f07a208: 0c006cdb */ jal modelGetPart
/* f07a20c: 8d640008 */ lw $a0,0x8($t3)
/* f07a210: 14400006 */ bnez $v0,.PB0f07a22c
/* f07a214: 00403825 */ move $a3,$v0
/* f07a218: 8faf0184 */ lw $t7,0x184($sp)
.PB0f07a21c:
/* f07a21c: 24050005 */ li $a1,0x5
/* f07a220: 0c006cdb */ jal modelGetPart
/* f07a224: 8de40008 */ lw $a0,0x8($t7)
/* f07a228: 00403825 */ move $a3,$v0
.PB0f07a22c:
/* f07a22c: 54400009 */ bnezl $v0,.PB0f07a254
/* f07a230: 8fa40198 */ lw $a0,0x198($sp)
/* f07a234: 8fb80184 */ lw $t8,0x184($sp)
/* f07a238: 24050003 */ li $a1,0x3
/* f07a23c: 8f040008 */ lw $a0,0x8($t8)
/* f07a240: 0c006cdb */ jal modelGetPart
/* f07a244: afa70120 */ sw $a3,0x120($sp)
/* f07a248: 8fa70120 */ lw $a3,0x120($sp)
/* f07a24c: afa2011c */ sw $v0,0x11c($sp)
/* f07a250: 8fa40198 */ lw $a0,0x198($sp)
.PB0f07a254:
/* f07a254: 00002825 */ move $a1,$zero
/* f07a258: 0fc190d6 */ jal propSetPerimEnabled
/* f07a25c: afa70120 */ sw $a3,0x120($sp)
/* f07a260: 8fa20198 */ lw $v0,0x198($sp)
/* f07a264: 8fa70120 */ lw $a3,0x120($sp)
/* f07a268: 90590001 */ lbu $t9,0x1($v0)
/* f07a26c: 33280002 */ andi $t0,$t9,0x2
/* f07a270: 51000042 */ beqzl $t0,.PB0f07a37c
/* f07a274: c44a0008 */ lwc1 $f10,0x8($v0)
/* f07a278: 14e00003 */ bnez $a3,.PB0f07a288
/* f07a27c: 8fa9011c */ lw $t1,0x11c($sp)
/* f07a280: 5120003e */ beqzl $t1,.PB0f07a37c
/* f07a284: c44a0008 */ lwc1 $f10,0x8($v0)
.PB0f07a288:
/* f07a288: 10e00010 */ beqz $a3,.PB0f07a2cc
/* f07a28c: 8fa40184 */ lw $a0,0x184($sp)
/* f07a290: 8fa40184 */ lw $a0,0x184($sp)
/* f07a294: 00e02825 */ move $a1,$a3
/* f07a298: 00003025 */ move $a2,$zero
/* f07a29c: 0c006c07 */ jal model0001a5cc
/* f07a2a0: afa70120 */ sw $a3,0x120($sp)
/* f07a2a4: 8fa70120 */ lw $a3,0x120($sp)
/* f07a2a8: 00402825 */ move $a1,$v0
/* f07a2ac: 8ce30004 */ lw $v1,0x4($a3)
/* f07a2b0: c4640000 */ lwc1 $f4,0x0($v1)
/* f07a2b4: e7a40168 */ swc1 $f4,0x168($sp)
/* f07a2b8: c4660004 */ lwc1 $f6,0x4($v1)
/* f07a2bc: e7a6016c */ swc1 $f6,0x16c($sp)
/* f07a2c0: c4680008 */ lwc1 $f8,0x8($v1)
/* f07a2c4: 1000000b */ b .PB0f07a2f4
/* f07a2c8: e7a80170 */ swc1 $f8,0x170($sp)
.PB0f07a2cc:
/* f07a2cc: 8fa5011c */ lw $a1,0x11c($sp)
/* f07a2d0: 0c006c07 */ jal model0001a5cc
/* f07a2d4: 00003025 */ move $a2,$zero
/* f07a2d8: 44805000 */ mtc1 $zero,$f10
/* f07a2dc: 44808000 */ mtc1 $zero,$f16
/* f07a2e0: 44809000 */ mtc1 $zero,$f18
/* f07a2e4: 00402825 */ move $a1,$v0
/* f07a2e8: e7aa0168 */ swc1 $f10,0x168($sp)
/* f07a2ec: e7b0016c */ swc1 $f16,0x16c($sp)
/* f07a2f0: e7b20170 */ swc1 $f18,0x170($sp)
.PB0f07a2f4:
/* f07a2f4: 0fc2d6e2 */ jal camGetProjectionMtxF
/* f07a2f8: afa50108 */ sw $a1,0x108($sp)
/* f07a2fc: 8fa50108 */ lw $a1,0x108($sp)
/* f07a300: 00402025 */ move $a0,$v0
/* f07a304: 0c00598d */ jal mtx00015be4
/* f07a308: 27a600c8 */ addiu $a2,$sp,0xc8
/* f07a30c: 27a400c8 */ addiu $a0,$sp,0xc8
/* f07a310: 0c00596d */ jal mtx4TransformVecInPlace
/* f07a314: 27a50168 */ addiu $a1,$sp,0x168
/* f07a318: 8fa20198 */ lw $v0,0x198($sp)
/* f07a31c: 240a0020 */ li $t2,0x20
/* f07a320: 240c0010 */ li $t4,0x10
/* f07a324: 24450028 */ addiu $a1,$v0,0x28
/* f07a328: afa5004c */ sw $a1,0x4c($sp)
/* f07a32c: afac0014 */ sw $t4,0x14($sp)
/* f07a330: afaa0010 */ sw $t2,0x10($sp)
/* f07a334: 27a60168 */ addiu $a2,$sp,0x168
/* f07a338: 27a70158 */ addiu $a3,$sp,0x158
/* f07a33c: 0c00b8fd */ jal cd0002de34
/* f07a340: 24440008 */ addiu $a0,$v0,0x8
/* f07a344: 14400015 */ bnez $v0,.PB0f07a39c
/* f07a348: 8fad0198 */ lw $t5,0x198($sp)
/* f07a34c: c5a40008 */ lwc1 $f4,0x8($t5)
/* f07a350: 8fa4004c */ lw $a0,0x4c($sp)
/* f07a354: 27a50158 */ addiu $a1,$sp,0x158
/* f07a358: e7a40168 */ swc1 $f4,0x168($sp)
/* f07a35c: c5a6000c */ lwc1 $f6,0xc($t5)
/* f07a360: e7a6016c */ swc1 $f6,0x16c($sp)
/* f07a364: c5a80010 */ lwc1 $f8,0x10($t5)
/* f07a368: 0fc19661 */ jal roomsCopy
/* f07a36c: e7a80170 */ swc1 $f8,0x170($sp)
/* f07a370: 1000000b */ b .PB0f07a3a0
/* f07a374: 8fae0194 */ lw $t6,0x194($sp)
/* f07a378: c44a0008 */ lwc1 $f10,0x8($v0)
.PB0f07a37c:
/* f07a37c: 24440028 */ addiu $a0,$v0,0x28
/* f07a380: 27a50158 */ addiu $a1,$sp,0x158
/* f07a384: e7aa0168 */ swc1 $f10,0x168($sp)
/* f07a388: c450000c */ lwc1 $f16,0xc($v0)
/* f07a38c: e7b0016c */ swc1 $f16,0x16c($sp)
/* f07a390: c4520010 */ lwc1 $f18,0x10($v0)
/* f07a394: 0fc19661 */ jal roomsCopy
/* f07a398: e7b20170 */ swc1 $f18,0x170($sp)
.PB0f07a39c:
/* f07a39c: 8fae0194 */ lw $t6,0x194($sp)
.PB0f07a3a0:
/* f07a3a0: 0c006b88 */ jal cosf
/* f07a3a4: c5cc0078 */ lwc1 $f12,0x78($t6)
/* f07a3a8: 8fab0194 */ lw $t3,0x194($sp)
/* f07a3ac: e7a00050 */ swc1 $f0,0x50($sp)
/* f07a3b0: 0c006b8b */ jal sinf
/* f07a3b4: c56c006c */ lwc1 $f12,0x6c($t3)
/* f07a3b8: c7a40050 */ lwc1 $f4,0x50($sp)
/* f07a3bc: 8faf0194 */ lw $t7,0x194($sp)
/* f07a3c0: 46040182 */ mul.s $f6,$f0,$f4
/* f07a3c4: e7a6014c */ swc1 $f6,0x14c($sp)
/* f07a3c8: 0c006b8b */ jal sinf
/* f07a3cc: c5ec0078 */ lwc1 $f12,0x78($t7)
/* f07a3d0: 8fb80194 */ lw $t8,0x194($sp)
/* f07a3d4: e7a00150 */ swc1 $f0,0x150($sp)
/* f07a3d8: 0c006b88 */ jal cosf
/* f07a3dc: c70c0078 */ lwc1 $f12,0x78($t8)
/* f07a3e0: 8fb90194 */ lw $t9,0x194($sp)
/* f07a3e4: e7a00050 */ swc1 $f0,0x50($sp)
/* f07a3e8: 0c006b88 */ jal cosf
/* f07a3ec: c72c006c */ lwc1 $f12,0x6c($t9)
/* f07a3f0: c7a80050 */ lwc1 $f8,0x50($sp)
/* f07a3f4: 3c014780 */ lui $at,0x4780
/* f07a3f8: 44811000 */ mtc1 $at,$f2
/* f07a3fc: 46080302 */ mul.s $f12,$f0,$f8
/* f07a400: c7aa014c */ lwc1 $f10,0x14c($sp)
/* f07a404: c7a60150 */ lwc1 $f6,0x150($sp)
/* f07a408: c7b20168 */ lwc1 $f18,0x168($sp)
/* f07a40c: 46025402 */ mul.s $f16,$f10,$f2
/* f07a410: c7aa016c */ lwc1 $f10,0x16c($sp)
/* f07a414: 3c03800a */ lui $v1,0x800a
/* f07a418: 46023202 */ mul.s $f8,$f6,$f2
/* f07a41c: 2463e4d0 */ addiu $v1,$v1,-6960
/* f07a420: 8c680318 */ lw $t0,0x318($v1)
/* f07a424: e7ac0154 */ swc1 $f12,0x154($sp)
/* f07a428: 8fa20124 */ lw $v0,0x124($sp)
/* f07a42c: 46128100 */ add.s $f4,$f16,$f18
/* f07a430: 46026482 */ mul.s $f18,$f12,$f2
/* f07a434: 27a40168 */ addiu $a0,$sp,0x168
/* f07a438: 460a4400 */ add.s $f16,$f8,$f10
/* f07a43c: e7a4013c */ swc1 $f4,0x13c($sp)
/* f07a440: c7a40170 */ lwc1 $f4,0x170($sp)
/* f07a444: 27a50158 */ addiu $a1,$sp,0x158
/* f07a448: e7b00140 */ swc1 $f16,0x140($sp)
/* f07a44c: 46049180 */ add.s $f6,$f18,$f4
/* f07a450: 27a6013c */ addiu $a2,$sp,0x13c
/* f07a454: 2407003f */ li $a3,0x3f
/* f07a458: 1500000f */ bnez $t0,.PB0f07a498
/* f07a45c: e7a60144 */ swc1 $f6,0x144($sp)
/* f07a460: 50400006 */ beqzl $v0,.PB0f07a47c
/* f07a464: 8c6a029c */ lw $t2,0x29c($v1)
/* f07a468: 90490000 */ lbu $t1,0x0($v0)
/* f07a46c: 24010003 */ li $at,0x3
/* f07a470: 5121000a */ beql $t1,$at,.PB0f07a49c
/* f07a474: 240e0010 */ li $t6,0x10
/* f07a478: 8c6a029c */ lw $t2,0x29c($v1)
.PB0f07a47c:
/* f07a47c: 0540007f */ bltz $t2,.PB0f07a67c
/* f07a480: 00000000 */ nop
/* f07a484: 1040007d */ beqz $v0,.PB0f07a67c
/* f07a488: 00000000 */ nop
/* f07a48c: 8c6c02a8 */ lw $t4,0x2a8($v1)
/* f07a490: 8d8d00bc */ lw $t5,0xbc($t4)
/* f07a494: 144d0079 */ bne $v0,$t5,.PB0f07a67c
.PB0f07a498:
/* f07a498: 240e0010 */ li $t6,0x10
.PB0f07a49c:
/* f07a49c: 0c00b8d4 */ jal cdTestAToB4
/* f07a4a0: afae0010 */ sw $t6,0x10($sp)
/* f07a4a4: 14400151 */ bnez $v0,.PB0f07a9ec
/* f07a4a8: 27a4013c */ addiu $a0,$sp,0x13c
/* f07a4ac: 3c067f1b */ lui $a2,0x7f1b
/* f07a4b0: 24c6bd08 */ addiu $a2,$a2,-17144
/* f07a4b4: 0c00951f */ jal cdGetPos
/* f07a4b8: 24052cd8 */ li $a1,0x2cd8
/* f07a4bc: 0c00951c */ jal cdGetObstacle
/* f07a4c0: 00000000 */ nop
/* f07a4c4: 1040006a */ beqz $v0,.PB0f07a670
/* f07a4c8: afa20178 */ sw $v0,0x178($sp)
/* f07a4cc: 90430000 */ lbu $v1,0x0($v0)
/* f07a4d0: 24010003 */ li $at,0x3
/* f07a4d4: 3c0b800a */ lui $t3,0x800a
/* f07a4d8: 10610003 */ beq $v1,$at,.PB0f07a4e8
/* f07a4dc: 24010006 */ li $at,0x6
/* f07a4e0: 54610064 */ bnel $v1,$at,.PB0f07a674
/* f07a4e4: 24080001 */ li $t0,0x1
.PB0f07a4e8:
/* f07a4e8: 8d6be7e8 */ lw $t3,-0x1818($t3)
/* f07a4ec: 8faf0124 */ lw $t7,0x124($sp)
/* f07a4f0: 2418ffff */ li $t8,-1
/* f07a4f4: 15600003 */ bnez $t3,.PB0f07a504
/* f07a4f8: 241900c8 */ li $t9,0xc8
/* f07a4fc: 55e2005d */ bnel $t7,$v0,.PB0f07a674
/* f07a500: 24080001 */ li $t0,0x1
.PB0f07a504:
/* f07a504: afa000c0 */ sw $zero,0xc0($sp)
/* f07a508: afa000bc */ sw $zero,0xbc($sp)
/* f07a50c: afb800b8 */ sw $t8,0xb8($sp)
/* f07a510: afb900b4 */ sw $t9,0xb4($sp)
/* f07a514: 0fc2c84e */ jal gsetGetDamage
/* f07a518: 27a40118 */ addiu $a0,$sp,0x118
/* f07a51c: 8fa80178 */ lw $t0,0x178($sp)
/* f07a520: 3c09800a */ lui $t1,0x800a
/* f07a524: 8d29e7e8 */ lw $t1,-0x1818($t1)
/* f07a528: e7a000b0 */ swc1 $f0,0xb0($sp)
/* f07a52c: 8d040004 */ lw $a0,0x4($t0)
/* f07a530: 3c013f00 */ lui $at,0x3f00
/* f07a534: 11200005 */ beqz $t1,.PB0f07a54c
/* f07a538: afa400ac */ sw $a0,0xac($sp)
/* f07a53c: 44814000 */ mtc1 $at,$f8
/* f07a540: 00000000 */ nop
/* f07a544: 46080282 */ mul.s $f10,$f0,$f8
/* f07a548: e7aa00b0 */ swc1 $f10,0xb0($sp)
.PB0f07a54c:
/* f07a54c: 8faa0114 */ lw $t2,0x114($sp)
/* f07a550: 8fac0178 */ lw $t4,0x178($sp)
/* f07a554: 8fad0110 */ lw $t5,0x110($sp)
/* f07a558: 514c0007 */ beql $t2,$t4,.PB0f07a578
/* f07a55c: 240e0001 */ li $t6,0x1
/* f07a560: 11a00009 */ beqz $t5,.PB0f07a588
/* f07a564: 01a02825 */ move $a1,$t5
/* f07a568: 0fc12aec */ jal chrCompareTeams
/* f07a56c: 24060001 */ li $a2,0x1
/* f07a570: 10400005 */ beqz $v0,.PB0f07a588
/* f07a574: 240e0001 */ li $t6,0x1
.PB0f07a578:
/* f07a578: afa00128 */ sw $zero,0x128($sp)
/* f07a57c: afa0018c */ sw $zero,0x18c($sp)
/* f07a580: afa00188 */ sw $zero,0x188($sp)
/* f07a584: afae0174 */ sw $t6,0x174($sp)
.PB0f07a588:
/* f07a588: 8fab018c */ lw $t3,0x18c($sp)
/* f07a58c: 8faf0188 */ lw $t7,0x188($sp)
/* f07a590: 27a40118 */ addiu $a0,$sp,0x118
/* f07a594: 15600003 */ bnez $t3,.PB0f07a5a4
/* f07a598: 8fa50178 */ lw $a1,0x178($sp)
/* f07a59c: 51e00114 */ beqzl $t7,.PB0f07a9f0
/* f07a5a0: 8fa40198 */ lw $a0,0x198($sp)
.PB0f07a5a4:
/* f07a5a4: 0fc2a04d */ jal bgunPlayPropHitSound
/* f07a5a8: 2406ffff */ li $a2,-1
/* f07a5ac: 8fa400ac */ lw $a0,0xac($sp)
/* f07a5b0: 8c980020 */ lw $t8,0x20($a0)
/* f07a5b4: 53000012 */ beqzl $t8,.PB0f07a600
/* f07a5b8: 8fac0110 */ lw $t4,0x110($sp)
/* f07a5bc: 0fc0d025 */ jal chrGetShield
/* f07a5c0: 00000000 */ nop
/* f07a5c4: 44808000 */ mtc1 $zero,$f16
/* f07a5c8: 8fa400ac */ lw $a0,0xac($sp)
/* f07a5cc: 27a5013c */ addiu $a1,$sp,0x13c
/* f07a5d0: 4600803c */ c.lt.s $f16,$f0
/* f07a5d4: 27a6014c */ addiu $a2,$sp,0x14c
/* f07a5d8: 27a700c0 */ addiu $a3,$sp,0xc0
/* f07a5dc: 27b900b4 */ addiu $t9,$sp,0xb4
/* f07a5e0: 45000006 */ bc1f .PB0f07a5fc
/* f07a5e4: 27a800bc */ addiu $t0,$sp,0xbc
/* f07a5e8: 27a900b8 */ addiu $t1,$sp,0xb8
/* f07a5ec: afa90018 */ sw $t1,0x18($sp)
/* f07a5f0: afb90010 */ sw $t9,0x10($sp)
/* f07a5f4: 0fc1000f */ jal chrCalculateShieldHit
/* f07a5f8: afa80014 */ sw $t0,0x14($sp)
.PB0f07a5fc:
/* f07a5fc: 8fac0110 */ lw $t4,0x110($sp)
.PB0f07a600:
/* f07a600: 27aa014c */ addiu $t2,$sp,0x14c
/* f07a604: 8fa400ac */ lw $a0,0xac($sp)
/* f07a608: afaa0010 */ sw $t2,0x10($sp)
/* f07a60c: 8fa50178 */ lw $a1,0x178($sp)
/* f07a610: 8fa600b4 */ lw $a2,0xb4($sp)
/* f07a614: 27a7013c */ addiu $a3,$sp,0x13c
/* f07a618: 0fc097dd */ jal chrEmitSparks
/* f07a61c: afac0014 */ sw $t4,0x14($sp)
/* f07a620: 8fad0114 */ lw $t5,0x114($sp)
/* f07a624: 8fab0178 */ lw $t3,0x178($sp)
/* f07a628: 8faf00c0 */ lw $t7,0xc0($sp)
/* f07a62c: 8fb800bc */ lw $t8,0xbc($sp)
/* f07a630: 8fb900b8 */ lw $t9,0xb8($sp)
/* f07a634: 240e00c8 */ li $t6,0xc8
/* f07a638: afae0014 */ sw $t6,0x14($sp)
/* f07a63c: 8fa400ac */ lw $a0,0xac($sp)
/* f07a640: 8fa500b0 */ lw $a1,0xb0($sp)
/* f07a644: 27a6014c */ addiu $a2,$sp,0x14c
/* f07a648: 27a70118 */ addiu $a3,$sp,0x118
/* f07a64c: afa00028 */ sw $zero,0x28($sp)
/* f07a650: afad0010 */ sw $t5,0x10($sp)
/* f07a654: afab0018 */ sw $t3,0x18($sp)
/* f07a658: afaf001c */ sw $t7,0x1c($sp)
/* f07a65c: afb80020 */ sw $t8,0x20($sp)
/* f07a660: 0fc0d0b4 */ jal func0f0341dc
/* f07a664: afb90024 */ sw $t9,0x24($sp)
/* f07a668: 100000e1 */ b .PB0f07a9f0
/* f07a66c: 8fa40198 */ lw $a0,0x198($sp)
.PB0f07a670:
/* f07a670: 24080001 */ li $t0,0x1
.PB0f07a674:
/* f07a674: 100000dd */ b .PB0f07a9ec
/* f07a678: afa80148 */ sw $t0,0x148($sp)
.PB0f07a67c:
/* f07a67c: 10400045 */ beqz $v0,.PB0f07a794
/* f07a680: 27a40168 */ addiu $a0,$sp,0x168
/* f07a684: 90490000 */ lbu $t1,0x0($v0)
/* f07a688: 24010001 */ li $at,0x1
/* f07a68c: 27a50158 */ addiu $a1,$sp,0x158
/* f07a690: 15210040 */ bne $t1,$at,.PB0f07a794
/* f07a694: 27a6013c */ addiu $a2,$sp,0x13c
/* f07a698: 240a0010 */ li $t2,0x10
/* f07a69c: afa000a8 */ sw $zero,0xa8($sp)
/* f07a6a0: afaa0010 */ sw $t2,0x10($sp)
/* f07a6a4: 27a40168 */ addiu $a0,$sp,0x168
/* f07a6a8: 0c00b8d4 */ jal cdTestAToB4
/* f07a6ac: 2407003b */ li $a3,0x3b
/* f07a6b0: 1440000a */ bnez $v0,.PB0f07a6dc
/* f07a6b4: 27a4013c */ addiu $a0,$sp,0x13c
/* f07a6b8: 3c067f1b */ lui $a2,0x7f1b
/* f07a6bc: 24c6bd14 */ addiu $a2,$a2,-17132
/* f07a6c0: 0c00951f */ jal cdGetPos
/* f07a6c4: 24052d0f */ li $a1,0x2d0f
/* f07a6c8: 0c00951c */ jal cdGetObstacle
/* f07a6cc: 00000000 */ nop
/* f07a6d0: 240c0001 */ li $t4,0x1
/* f07a6d4: afac0148 */ sw $t4,0x148($sp)
/* f07a6d8: afa200a8 */ sw $v0,0xa8($sp)
.PB0f07a6dc:
/* f07a6dc: 8fa300a8 */ lw $v1,0xa8($sp)
/* f07a6e0: 506000c3 */ beqzl $v1,.PB0f07a9f0
/* f07a6e4: 8fa40198 */ lw $a0,0x198($sp)
/* f07a6e8: 906d0000 */ lbu $t5,0x0($v1)
/* f07a6ec: 24010001 */ li $at,0x1
/* f07a6f0: 55a100bf */ bnel $t5,$at,.PB0f07a9f0
/* f07a6f4: 8fa40198 */ lw $a0,0x198($sp)
/* f07a6f8: 8c640004 */ lw $a0,0x4($v1)
/* f07a6fc: 2401014c */ li $at,0x14c
/* f07a700: 3c0b8007 */ lui $t3,0x8007
/* f07a704: 848e0004 */ lh $t6,0x4($a0)
/* f07a708: 27a5013c */ addiu $a1,$sp,0x13c
/* f07a70c: 24060000 */ li $a2,0x0
/* f07a710: 55c100b7 */ bnel $t6,$at,.PB0f07a9f0
/* f07a714: 8fa40198 */ lw $a0,0x198($sp)
/* f07a718: 8d6bb384 */ lw $t3,-0x4c7c($t3)
/* f07a71c: afa00148 */ sw $zero,0x148($sp)
/* f07a720: afa300a8 */ sw $v1,0xa8($sp)
/* f07a724: 0fc68a52 */ jal frCalculateHit
/* f07a728: afab00a0 */ sw $t3,0xa0($sp)
/* f07a72c: 0fc4fe8e */ jal chrIsUsingPaintball
/* f07a730: 8fa40110 */ lw $a0,0x110($sp)
/* f07a734: 1040000b */ beqz $v0,.PB0f07a764
/* f07a738: 8fa500a8 */ lw $a1,0xa8($sp)
/* f07a73c: 8fa500a8 */ lw $a1,0xa8($sp)
/* f07a740: 240f0019 */ li $t7,0x19
/* f07a744: 27a6013c */ addiu $a2,$sp,0x13c
/* f07a748: 84a40028 */ lh $a0,0x28($a1)
/* f07a74c: afaf0014 */ sw $t7,0x14($sp)
/* f07a750: afa00010 */ sw $zero,0x10($sp)
/* f07a754: 0fc4c3dd */ jal sparksCreate
/* f07a758: 00003825 */ move $a3,$zero
/* f07a75c: 10000008 */ b .PB0f07a780
/* f07a760: 27a400a0 */ addiu $a0,$sp,0xa0
.PB0f07a764:
/* f07a764: 84a40028 */ lh $a0,0x28($a1)
/* f07a768: afa00014 */ sw $zero,0x14($sp)
/* f07a76c: afa00010 */ sw $zero,0x10($sp)
/* f07a770: 27a6013c */ addiu $a2,$sp,0x13c
/* f07a774: 0fc4c3dd */ jal sparksCreate
/* f07a778: 00003825 */ move $a3,$zero
/* f07a77c: 27a400a0 */ addiu $a0,$sp,0xa0
.PB0f07a780:
/* f07a780: 8fa500a8 */ lw $a1,0xa8($sp)
/* f07a784: 0fc2a04d */ jal bgunPlayPropHitSound
/* f07a788: 240600f2 */ li $a2,0xf2
/* f07a78c: 10000098 */ b .PB0f07a9f0
/* f07a790: 8fa40198 */ lw $a0,0x198($sp)
.PB0f07a794:
/* f07a794: 24190010 */ li $t9,0x10
/* f07a798: afb90010 */ sw $t9,0x10($sp)
/* f07a79c: 27a50158 */ addiu $a1,$sp,0x158
/* f07a7a0: 27a6013c */ addiu $a2,$sp,0x13c
/* f07a7a4: 0c00b8d4 */ jal cdTestAToB4
/* f07a7a8: 24070022 */ li $a3,0x22
/* f07a7ac: 14400007 */ bnez $v0,.PB0f07a7cc
/* f07a7b0: 27a4013c */ addiu $a0,$sp,0x13c
/* f07a7b4: 3c067f1b */ lui $a2,0x7f1b
/* f07a7b8: 24c6bd20 */ addiu $a2,$a2,-17120
/* f07a7bc: 0c00951f */ jal cdGetPos
/* f07a7c0: 24052d29 */ li $a1,0x2d29
/* f07a7c4: 24080001 */ li $t0,0x1
/* f07a7c8: afa80148 */ sw $t0,0x148($sp)
.PB0f07a7cc:
/* f07a7cc: 8faa0194 */ lw $t2,0x194($sp)
/* f07a7d0: 3c09800a */ lui $t1,0x800a
/* f07a7d4: 8d29e4d8 */ lw $t1,-0x1b28($t1)
/* f07a7d8: 8d4c0094 */ lw $t4,0x94($t2)
/* f07a7dc: 8fa20124 */ lw $v0,0x124($sp)
/* f07a7e0: 552c0083 */ bnel $t1,$t4,.PB0f07a9f0
/* f07a7e4: 8fa40198 */ lw $a0,0x198($sp)
/* f07a7e8: 50400081 */ beqzl $v0,.PB0f07a9f0
/* f07a7ec: 8fa40198 */ lw $a0,0x198($sp)
/* f07a7f0: 904d0000 */ lbu $t5,0x0($v0)
/* f07a7f4: 24010006 */ li $at,0x6
/* f07a7f8: c7a40168 */ lwc1 $f4,0x168($sp)
/* f07a7fc: 55a1007c */ bnel $t5,$at,.PB0f07a9f0
/* f07a800: 8fa40198 */ lw $a0,0x198($sp)
/* f07a804: c4520008 */ lwc1 $f18,0x8($v0)
/* f07a808: c446000c */ lwc1 $f6,0xc($v0)
/* f07a80c: c7a8016c */ lwc1 $f8,0x16c($sp)
/* f07a810: 46049001 */ sub.s $f0,$f18,$f4
/* f07a814: c44a0010 */ lwc1 $f10,0x10($v0)
/* f07a818: c7b00170 */ lwc1 $f16,0x170($sp)
/* f07a81c: 46083081 */ sub.s $f2,$f6,$f8
/* f07a820: 46000482 */ mul.s $f18,$f0,$f0
/* f07a824: 46105301 */ sub.s $f12,$f10,$f16
/* f07a828: 46021182 */ mul.s $f6,$f2,$f2
/* f07a82c: 46069280 */ add.s $f10,$f18,$f6
/* f07a830: 460c6482 */ mul.s $f18,$f12,$f12
/* f07a834: c7a6013c */ lwc1 $f6,0x13c($sp)
/* f07a838: 46043001 */ sub.s $f0,$f6,$f4
/* f07a83c: 46125380 */ add.s $f14,$f10,$f18
/* f07a840: c7aa0140 */ lwc1 $f10,0x140($sp)
/* f07a844: 46000182 */ mul.s $f6,$f0,$f0
/* f07a848: c7b20144 */ lwc1 $f18,0x144($sp)
/* f07a84c: 46085081 */ sub.s $f2,$f10,$f8
/* f07a850: 46109301 */ sub.s $f12,$f18,$f16
/* f07a854: 46021102 */ mul.s $f4,$f2,$f2
/* f07a858: 46043280 */ add.s $f10,$f6,$f4
/* f07a85c: 460c6202 */ mul.s $f8,$f12,$f12
/* f07a860: 46085480 */ add.s $f18,$f10,$f8
/* f07a864: 4612703e */ c.le.s $f14,$f18
/* f07a868: 00000000 */ nop
/* f07a86c: 45020060 */ bc1fl .PB0f07a9f0
/* f07a870: 8fa40198 */ lw $a0,0x198($sp)
/* f07a874: 0c012ae4 */ jal sqrtf
/* f07a878: 46007306 */ mov.s $f12,$f14
/* f07a87c: 3c014348 */ lui $at,0x4348
/* f07a880: 44816000 */ mtc1 $at,$f12
/* f07a884: 3c017f1b */ lui $at,0x7f1b
/* f07a888: c430c280 */ lwc1 $f16,-0x3d80($at)
/* f07a88c: 3c01800a */ lui $at,0x800a
/* f07a890: c426e51c */ lwc1 $f6,-0x1ae4($at)
/* f07a894: 3c018007 */ lui $at,0x8007
/* f07a898: 4600603c */ c.lt.s $f12,$f0
/* f07a89c: 46068102 */ mul.s $f4,$f16,$f6
/* f07a8a0: c42ab020 */ lwc1 $f10,-0x4fe0($at)
/* f07a8a4: 8fae0194 */ lw $t6,0x194($sp)
/* f07a8a8: 460a2082 */ mul.s $f2,$f4,$f10
/* f07a8ac: 45020005 */ bc1fl .PB0f07a8c4
/* f07a8b0: c5d200a0 */ lwc1 $f18,0xa0($t6)
/* f07a8b4: 46006203 */ div.s $f8,$f12,$f0
/* f07a8b8: 46081082 */ mul.s $f2,$f2,$f8
/* f07a8bc: 00000000 */ nop
/* f07a8c0: c5d200a0 */ lwc1 $f18,0xa0($t6)
.PB0f07a8c4:
/* f07a8c4: 3c013f80 */ lui $at,0x3f80
/* f07a8c8: 44813000 */ mtc1 $at,$f6
/* f07a8cc: 46029400 */ add.s $f16,$f18,$f2
/* f07a8d0: 4610303e */ c.le.s $f6,$f16
/* f07a8d4: e5d000a0 */ swc1 $f16,0xa0($t6)
/* f07a8d8: 8fab0124 */ lw $t3,0x124($sp)
/* f07a8dc: 45020044 */ bc1fl .PB0f07a9f0
/* f07a8e0: 8fa40198 */ lw $a0,0x198($sp)
/* f07a8e4: c5640008 */ lwc1 $f4,0x8($t3)
/* f07a8e8: e7a4013c */ swc1 $f4,0x13c($sp)
/* f07a8ec: c56a000c */ lwc1 $f10,0xc($t3)
/* f07a8f0: e7aa0140 */ swc1 $f10,0x140($sp)
/* f07a8f4: c5680010 */ lwc1 $f8,0x10($t3)
/* f07a8f8: afa00148 */ sw $zero,0x148($sp)
/* f07a8fc: 0c004be0 */ jal random
/* f07a900: e7a80144 */ swc1 $f8,0x144($sp)
/* f07a904: 304f0001 */ andi $t7,$v0,0x1
/* f07a908: 11e00012 */ beqz $t7,.PB0f07a954
/* f07a90c: 00000000 */ nop
/* f07a910: 0c004be0 */ jal random
/* f07a914: 00000000 */ nop
/* f07a918: 2401000a */ li $at,0xa
/* f07a91c: 0041001b */ divu $zero,$v0,$at
/* f07a920: 0000c010 */ mfhi $t8
/* f07a924: 27190002 */ addiu $t9,$t8,0x2
/* f07a928: 44998000 */ mtc1 $t9,$f16
/* f07a92c: c7b20140 */ lwc1 $f18,0x140($sp)
/* f07a930: 07210005 */ bgez $t9,.PB0f07a948
/* f07a934: 468081a0 */ cvt.s.w $f6,$f16
/* f07a938: 3c014f80 */ lui $at,0x4f80
/* f07a93c: 44812000 */ mtc1 $at,$f4
/* f07a940: 00000000 */ nop
/* f07a944: 46043180 */ add.s $f6,$f6,$f4
.PB0f07a948:
/* f07a948: 46069280 */ add.s $f10,$f18,$f6
/* f07a94c: 10000011 */ b .PB0f07a994
/* f07a950: e7aa0140 */ swc1 $f10,0x140($sp)
.PB0f07a954:
/* f07a954: 0c004be0 */ jal random
/* f07a958: 00000000 */ nop
/* f07a95c: 2401000a */ li $at,0xa
/* f07a960: 0041001b */ divu $zero,$v0,$at
/* f07a964: 00004010 */ mfhi $t0
/* f07a968: 250a0002 */ addiu $t2,$t0,0x2
/* f07a96c: 448a8000 */ mtc1 $t2,$f16
/* f07a970: c7a80140 */ lwc1 $f8,0x140($sp)
/* f07a974: 05410005 */ bgez $t2,.PB0f07a98c
/* f07a978: 46808120 */ cvt.s.w $f4,$f16
/* f07a97c: 3c014f80 */ lui $at,0x4f80
/* f07a980: 44819000 */ mtc1 $at,$f18
/* f07a984: 00000000 */ nop
/* f07a988: 46122100 */ add.s $f4,$f4,$f18
.PB0f07a98c:
/* f07a98c: 46044181 */ sub.s $f6,$f8,$f4
/* f07a990: e7a60140 */ swc1 $f6,0x140($sp)
.PB0f07a994:
/* f07a994: 27a40118 */ addiu $a0,$sp,0x118
/* f07a998: 8fa50124 */ lw $a1,0x124($sp)
/* f07a99c: 0fc2a04d */ jal bgunPlayPropHitSound
/* f07a9a0: 2406ffff */ li $a2,-1
/* f07a9a4: 3c013f00 */ lui $at,0x3f00
/* f07a9a8: 44815000 */ mtc1 $at,$f10
/* f07a9ac: 3c018007 */ lui $at,0x8007
/* f07a9b0: c430b024 */ lwc1 $f16,-0x4fdc($at)
/* f07a9b4: 8fa90124 */ lw $t1,0x124($sp)
/* f07a9b8: 240c00c8 */ li $t4,0xc8
/* f07a9bc: 46105002 */ mul.s $f0,$f10,$f16
/* f07a9c0: 8d240004 */ lw $a0,0x4($t1)
/* f07a9c4: afac0014 */ sw $t4,0x14($sp)
/* f07a9c8: afa00010 */ sw $zero,0x10($sp)
/* f07a9cc: 27a6014c */ addiu $a2,$sp,0x14c
/* f07a9d0: 27a70118 */ addiu $a3,$sp,0x118
/* f07a9d4: 44050000 */ mfc1 $a1,$f0
/* f07a9d8: 0fc0d109 */ jal chrDamageByImpact
/* f07a9dc: 00000000 */ nop
/* f07a9e0: 44809000 */ mtc1 $zero,$f18
/* f07a9e4: 8fad0194 */ lw $t5,0x194($sp)
/* f07a9e8: e5b200a0 */ swc1 $f18,0xa0($t5)
.PB0f07a9ec:
/* f07a9ec: 8fa40198 */ lw $a0,0x198($sp)
.PB0f07a9f0:
/* f07a9f0: 0fc190d6 */ jal propSetPerimEnabled
/* f07a9f4: 24050001 */ li $a1,0x1
/* f07a9f8: 8fae018c */ lw $t6,0x18c($sp)
/* f07a9fc: 8fab0188 */ lw $t3,0x188($sp)
/* f07aa00: 8faf0194 */ lw $t7,0x194($sp)
/* f07aa04: 15c00003 */ bnez $t6,.PB0f07aa14
/* f07aa08: 27a40168 */ addiu $a0,$sp,0x168
/* f07aa0c: 51600009 */ beqzl $t3,.PB0f07aa34
/* f07aa10: 8fb90148 */ lw $t9,0x148($sp)
.PB0f07aa14:
/* f07aa14: 91e200a9 */ lbu $v0,0xa9($t7)
/* f07aa18: 240100ff */ li $at,0xff
/* f07aa1c: 58400005 */ blezl $v0,.PB0f07aa34
/* f07aa20: 8fb90148 */ lw $t9,0x148($sp)
/* f07aa24: 10410002 */ beq $v0,$at,.PB0f07aa30
/* f07aa28: 2458ffff */ addiu $t8,$v0,-1
/* f07aa2c: a1f800a9 */ sb $t8,0xa9($t7)
.PB0f07aa30:
/* f07aa30: 8fb90148 */ lw $t9,0x148($sp)
.PB0f07aa34:
/* f07aa34: 27a5013c */ addiu $a1,$sp,0x13c
/* f07aa38: 27a60158 */ addiu $a2,$sp,0x158
/* f07aa3c: 13200024 */ beqz $t9,.PB0f07aad0
/* f07aa40: 27a7012c */ addiu $a3,$sp,0x12c
/* f07aa44: afa00010 */ sw $zero,0x10($sp)
/* f07aa48: 0c0062e6 */ jal portal00018148
/* f07aa4c: afa00014 */ sw $zero,0x14($sp)
/* f07aa50: 0fc4fe8e */ jal chrIsUsingPaintball
/* f07aa54: 8fa40110 */ lw $a0,0x110($sp)
/* f07aa58: 1040000b */ beqz $v0,.PB0f07aa88
/* f07aa5c: 8faa0194 */ lw $t2,0x194($sp)
/* f07aa60: 24080019 */ li $t0,0x19
/* f07aa64: afa80014 */ sw $t0,0x14($sp)
/* f07aa68: 87a4012c */ lh $a0,0x12c($sp)
/* f07aa6c: 00002825 */ move $a1,$zero
/* f07aa70: 27a6013c */ addiu $a2,$sp,0x13c
/* f07aa74: 00003825 */ move $a3,$zero
/* f07aa78: 0fc4c3dd */ jal sparksCreate
/* f07aa7c: afa00010 */ sw $zero,0x10($sp)
/* f07aa80: 1000000f */ b .PB0f07aac0
/* f07aa84: 27a40118 */ addiu $a0,$sp,0x118
.PB0f07aa88:
/* f07aa88: 85490004 */ lh $t1,0x4($t2)
/* f07aa8c: 24010144 */ li $at,0x144
/* f07aa90: 87a4012c */ lh $a0,0x12c($sp)
/* f07aa94: 15210003 */ bne $t1,$at,.PB0f07aaa4
/* f07aa98: 00002825 */ move $a1,$zero
/* f07aa9c: 10000002 */ b .PB0f07aaa8
/* f07aaa0: 24020017 */ li $v0,0x17
.PB0f07aaa4:
/* f07aaa4: 00001025 */ move $v0,$zero
.PB0f07aaa8:
/* f07aaa8: 27a6013c */ addiu $a2,$sp,0x13c
/* f07aaac: 00003825 */ move $a3,$zero
/* f07aab0: afa00010 */ sw $zero,0x10($sp)
/* f07aab4: 0fc4c3dd */ jal sparksCreate
/* f07aab8: afa20014 */ sw $v0,0x14($sp)
/* f07aabc: 27a40118 */ addiu $a0,$sp,0x118
.PB0f07aac0:
/* f07aac0: 27a5013c */ addiu $a1,$sp,0x13c
/* f07aac4: 2406ffff */ li $a2,-1
/* f07aac8: 0fc2a219 */ jal bgunPlayBgHitSound
/* f07aacc: 27a7012c */ addiu $a3,$sp,0x12c
.PB0f07aad0:
/* f07aad0: 8fac0128 */ lw $t4,0x128($sp)
/* f07aad4: c7a8013c */ lwc1 $f8,0x13c($sp)
/* f07aad8: c7a40168 */ lwc1 $f4,0x168($sp)
/* f07aadc: 51800097 */ beqzl $t4,.PB0f07ad3c
/* f07aae0: 8fa80194 */ lw $t0,0x194($sp)
/* f07aae4: 46044181 */ sub.s $f6,$f8,$f4
/* f07aae8: c7aa0140 */ lwc1 $f10,0x140($sp)
/* f07aaec: c7b0016c */ lwc1 $f16,0x16c($sp)
/* f07aaf0: c7a40170 */ lwc1 $f4,0x170($sp)
/* f07aaf4: c7a80144 */ lwc1 $f8,0x144($sp)
/* f07aaf8: 46105481 */ sub.s $f18,$f10,$f16
/* f07aafc: 8fad0194 */ lw $t5,0x194($sp)
/* f07ab00: 46063402 */ mul.s $f16,$f6,$f6
/* f07ab04: 46044281 */ sub.s $f10,$f8,$f4
/* f07ab08: 8da3009c */ lw $v1,0x9c($t5)
/* f07ab0c: 46129202 */ mul.s $f8,$f18,$f18
/* f07ab10: e7a60068 */ swc1 $f6,0x68($sp)
/* f07ab14: e7aa0070 */ swc1 $f10,0x70($sp)
/* f07ab18: c7aa0070 */ lwc1 $f10,0x70($sp)
/* f07ab1c: c7a60070 */ lwc1 $f6,0x70($sp)
/* f07ab20: e7b2006c */ swc1 $f18,0x6c($sp)
/* f07ab24: afa30078 */ sw $v1,0x78($sp)
/* f07ab28: 46065482 */ mul.s $f18,$f10,$f6
/* f07ab2c: 46088100 */ add.s $f4,$f16,$f8
/* f07ab30: 0c012ae4 */ jal sqrtf
/* f07ab34: 46049300 */ add.s $f12,$f18,$f4
/* f07ab38: 44808000 */ mtc1 $zero,$f16
/* f07ab3c: 8fa30078 */ lw $v1,0x78($sp)
/* f07ab40: 46000306 */ mov.s $f12,$f0
/* f07ab44: 4600803c */ c.lt.s $f16,$f0
/* f07ab48: 3c017f1b */ lui $at,0x7f1b
/* f07ab4c: c7a80168 */ lwc1 $f8,0x168($sp)
/* f07ab50: 4502007a */ bc1fl .PB0f07ad3c
/* f07ab54: 8fa80194 */ lw $t0,0x194($sp)
/* f07ab58: c42ec284 */ lwc1 $f14,-0x3d7c($at)
/* f07ab5c: e4680004 */ swc1 $f8,0x4($v1)
/* f07ab60: 3c013f80 */ lui $at,0x3f80
/* f07ab64: 44814000 */ mtc1 $at,$f8
/* f07ab68: c7aa016c */ lwc1 $f10,0x16c($sp)
/* f07ab6c: 4600703c */ c.lt.s $f14,$f0
/* f07ab70: 240f002b */ li $t7,0x2b
/* f07ab74: 46004083 */ div.s $f2,$f8,$f0
/* f07ab78: e46a0008 */ swc1 $f10,0x8($v1)
/* f07ab7c: c7a60170 */ lwc1 $f6,0x170($sp)
/* f07ab80: 2418000c */ li $t8,0xc
/* f07ab84: e466000c */ swc1 $f6,0xc($v1)
/* f07ab88: c7b20068 */ lwc1 $f18,0x68($sp)
/* f07ab8c: e4720010 */ swc1 $f18,0x10($v1)
/* f07ab90: c7a4006c */ lwc1 $f4,0x6c($sp)
/* f07ab94: c46a0010 */ lwc1 $f10,0x10($v1)
/* f07ab98: e4640014 */ swc1 $f4,0x14($v1)
/* f07ab9c: c7b00070 */ lwc1 $f16,0x70($sp)
/* f07aba0: c4720014 */ lwc1 $f18,0x14($v1)
/* f07aba4: e4700018 */ swc1 $f16,0x18($v1)
/* f07aba8: c4700018 */ lwc1 $f16,0x18($v1)
/* f07abac: 46025182 */ mul.s $f6,$f10,$f2
/* f07abb0: 00000000 */ nop
/* f07abb4: 46029102 */ mul.s $f4,$f18,$f2
/* f07abb8: 00000000 */ nop
/* f07abbc: 46028202 */ mul.s $f8,$f16,$f2
/* f07abc0: e4660010 */ swc1 $f6,0x10($v1)
/* f07abc4: e4640014 */ swc1 $f4,0x14($v1)
/* f07abc8: 45000002 */ bc1f .PB0f07abd4
/* f07abcc: e4680018 */ swc1 $f8,0x18($v1)
/* f07abd0: 46007306 */ mov.s $f12,$f14
.PB0f07abd4:
/* f07abd4: a0600000 */ sb $zero,0x0($v1)
/* f07abd8: 8fae0194 */ lw $t6,0x194($sp)
/* f07abdc: 24010144 */ li $at,0x144
/* f07abe0: 85cb0004 */ lh $t3,0x4($t6)
/* f07abe4: 55610004 */ bnel $t3,$at,.PB0f07abf8
/* f07abe8: a06f0001 */ sb $t7,0x1($v1)
/* f07abec: 10000002 */ b .PB0f07abf8
/* f07abf0: a0780001 */ sb $t8,0x1($v1)
/* f07abf4: a06f0001 */ sb $t7,0x1($v1)
.PB0f07abf8:
/* f07abf8: 3c0143fa */ lui $at,0x43fa
/* f07abfc: 44810000 */ mtc1 $at,$f0
/* f07ac00: e46c001c */ swc1 $f12,0x1c($v1)
/* f07ac04: 4600603c */ c.lt.s $f12,$f0
/* f07ac08: 00000000 */ nop
/* f07ac0c: 45020003 */ bc1fl .PB0f07ac1c
/* f07ac10: 80790001 */ lb $t9,0x1($v1)
/* f07ac14: 46000306 */ mov.s $f12,$f0
/* f07ac18: 80790001 */ lb $t9,0x1($v1)
.PB0f07ac1c:
/* f07ac1c: 2401001d */ li $at,0x1d
/* f07ac20: 17210026 */ bne $t9,$at,.PB0f07acbc
/* f07ac24: 3c017f1b */ lui $at,0x7f1b
/* f07ac28: c422c288 */ lwc1 $f2,-0x3d78($at)
/* f07ac2c: 3c013e80 */ lui $at,0x3e80
/* f07ac30: 44815000 */ mtc1 $at,$f10
/* f07ac34: 3c017f1b */ lui $at,0x7f1b
/* f07ac38: 460c5182 */ mul.s $f6,$f10,$f12
/* f07ac3c: e4660020 */ swc1 $f6,0x20($v1)
/* f07ac40: c432c28c */ lwc1 $f18,-0x3d74($at)
/* f07ac44: 460c9002 */ mul.s $f0,$f18,$f12
/* f07ac48: 4600103c */ c.lt.s $f2,$f0
/* f07ac4c: e4600024 */ swc1 $f0,0x24($v1)
/* f07ac50: 45020003 */ bc1fl .PB0f07ac60
/* f07ac54: afa30078 */ sw $v1,0x78($sp)
/* f07ac58: e4620024 */ swc1 $f2,0x24($v1)
/* f07ac5c: afa30078 */ sw $v1,0x78($sp)
.PB0f07ac60:
/* f07ac60: 0c004be0 */ jal random
/* f07ac64: e7ac007c */ swc1 $f12,0x7c($sp)
/* f07ac68: 44822000 */ mtc1 $v0,$f4
/* f07ac6c: 8fa30078 */ lw $v1,0x78($sp)
/* f07ac70: c7ac007c */ lwc1 $f12,0x7c($sp)
/* f07ac74: 04410005 */ bgez $v0,.PB0f07ac8c
/* f07ac78: 46802420 */ cvt.s.w $f16,$f4
/* f07ac7c: 3c014f80 */ lui $at,0x4f80
/* f07ac80: 44814000 */ mtc1 $at,$f8
/* f07ac84: 00000000 */ nop
/* f07ac88: 46088400 */ add.s $f16,$f16,$f8
.PB0f07ac8c:
/* f07ac8c: 3c012f80 */ lui $at,0x2f80
/* f07ac90: 44815000 */ mtc1 $at,$f10
/* f07ac94: 3c017f1b */ lui $at,0x7f1b
/* f07ac98: c432c290 */ lwc1 $f18,-0x3d70($at)
/* f07ac9c: 460a8182 */ mul.s $f6,$f16,$f10
/* f07aca0: 3c017f1b */ lui $at,0x7f1b
/* f07aca4: c428c294 */ lwc1 $f8,-0x3d6c($at)
/* f07aca8: 46123102 */ mul.s $f4,$f6,$f18
/* f07acac: 46044401 */ sub.s $f16,$f8,$f4
/* f07acb0: 460c8282 */ mul.s $f10,$f16,$f12
/* f07acb4: 10000020 */ b .PB0f07ad38
/* f07acb8: e46a0028 */ swc1 $f10,0x28($v1)
.PB0f07acbc:
/* f07acbc: 3c017f1b */ lui $at,0x7f1b
/* f07acc0: c422c298 */ lwc1 $f2,-0x3d68($at)
/* f07acc4: 3c017f1b */ lui $at,0x7f1b
/* f07acc8: c426c29c */ lwc1 $f6,-0x3d64($at)
/* f07accc: 460c3002 */ mul.s $f0,$f6,$f12
/* f07acd0: 4600103c */ c.lt.s $f2,$f0
/* f07acd4: e4600020 */ swc1 $f0,0x20($v1)
/* f07acd8: e4600024 */ swc1 $f0,0x24($v1)
/* f07acdc: 45000002 */ bc1f .PB0f07ace8
/* f07ace0: 00000000 */ nop
/* f07ace4: e4620024 */ swc1 $f2,0x24($v1)
.PB0f07ace8:
/* f07ace8: 0c004be0 */ jal random
/* f07acec: afa30078 */ sw $v1,0x78($sp)
/* f07acf0: 44829000 */ mtc1 $v0,$f18
/* f07acf4: 8fa30078 */ lw $v1,0x78($sp)
/* f07acf8: 04410005 */ bgez $v0,.PB0f07ad10
/* f07acfc: 46809220 */ cvt.s.w $f8,$f18
/* f07ad00: 3c014f80 */ lui $at,0x4f80
/* f07ad04: 44812000 */ mtc1 $at,$f4
/* f07ad08: 00000000 */ nop
/* f07ad0c: 46044200 */ add.s $f8,$f8,$f4
.PB0f07ad10:
/* f07ad10: 3c012f80 */ lui $at,0x2f80
/* f07ad14: 44818000 */ mtc1 $at,$f16
/* f07ad18: 3c013f80 */ lui $at,0x3f80
/* f07ad1c: 44813000 */ mtc1 $at,$f6
/* f07ad20: 46104002 */ mul.s $f0,$f8,$f16
/* f07ad24: c4640020 */ lwc1 $f4,0x20($v1)
/* f07ad28: 46000280 */ add.s $f10,$f0,$f0
/* f07ad2c: 46065481 */ sub.s $f18,$f10,$f6
/* f07ad30: 46049202 */ mul.s $f8,$f18,$f4
/* f07ad34: e4680028 */ swc1 $f8,0x28($v1)
.PB0f07ad38:
/* f07ad38: 8fa80194 */ lw $t0,0x194($sp)
.PB0f07ad3c:
/* f07ad3c: 3c09800a */ lui $t1,0x800a
/* f07ad40: 8d29e4d8 */ lw $t1,-0x1b28($t1)
/* f07ad44: 8d0a0098 */ lw $t2,0x98($t0)
/* f07ad48: 240c0002 */ li $t4,0x2
/* f07ad4c: 24050001 */ li $a1,0x1
/* f07ad50: 0149082a */ slt $at,$t2,$t1
/* f07ad54: 1020002d */ beqz $at,.PB0f07ae0c
/* f07ad58: 3406ffff */ li $a2,0xffff
/* f07ad5c: afac0064 */ sw $t4,0x64($sp)
/* f07ad60: 0fc24943 */ jal func0f0926bc
/* f07ad64: 8fa40198 */ lw $a0,0x198($sp)
/* f07ad68: 8fad0174 */ lw $t5,0x174($sp)
/* f07ad6c: 8fae0194 */ lw $t6,0x194($sp)
/* f07ad70: 00002025 */ move $a0,$zero
/* f07ad74: 15a0001f */ bnez $t5,.PB0f07adf4
/* f07ad78: 2407ffff */ li $a3,-1
/* f07ad7c: 85c30004 */ lh $v1,0x4($t6)
/* f07ad80: 24010144 */ li $at,0x144
/* f07ad84: 3402806f */ li $v0,0x806f
/* f07ad88: 14610002 */ bne $v1,$at,.PB0f07ad94
/* f07ad8c: 240fffff */ li $t7,-1
/* f07ad90: 34028040 */ li $v0,0x8040
.PB0f07ad94:
/* f07ad94: 24010157 */ li $at,0x157
/* f07ad98: 14610004 */ bne $v1,$at,.PB0f07adac
/* f07ad9c: 2419ffff */ li $t9,-1
/* f07ada0: 240b0004 */ li $t3,0x4
/* f07ada4: 34028044 */ li $v0,0x8044
/* f07ada8: afab0064 */ sw $t3,0x64($sp)
.PB0f07adac:
/* f07adac: 3c01bf80 */ lui $at,0xbf80
/* f07adb0: 44810000 */ mtc1 $at,$f0
/* f07adb4: 00023400 */ sll $a2,$v0,0x10
/* f07adb8: 0006c403 */ sra $t8,$a2,0x10
/* f07adbc: 03003025 */ move $a2,$t8
/* f07adc0: 8fa50198 */ lw $a1,0x198($sp)
/* f07adc4: afaf0010 */ sw $t7,0x10($sp)
/* f07adc8: afa00014 */ sw $zero,0x14($sp)
/* f07adcc: afa00018 */ sw $zero,0x18($sp)
/* f07add0: afa0001c */ sw $zero,0x1c($sp)
/* f07add4: afa00020 */ sw $zero,0x20($sp)
/* f07add8: afa00028 */ sw $zero,0x28($sp)
/* f07addc: afb9002c */ sw $t9,0x2c($sp)
/* f07ade0: e7a00024 */ swc1 $f0,0x24($sp)
/* f07ade4: e7a00030 */ swc1 $f0,0x30($sp)
/* f07ade8: e7a00034 */ swc1 $f0,0x34($sp)
/* f07adec: 0fc24e0e */ jal propsnd0f0939f8
/* f07adf0: e7a00038 */ swc1 $f0,0x38($sp)
.PB0f07adf4:
/* f07adf4: 3c0a800a */ lui $t2,0x800a
/* f07adf8: 8d4ae4d8 */ lw $t2,-0x1b28($t2)
/* f07adfc: 8fa80064 */ lw $t0,0x64($sp)
/* f07ae00: 8fac0194 */ lw $t4,0x194($sp)
/* f07ae04: 010a4821 */ addu $t1,$t0,$t2
/* f07ae08: ad890098 */ sw $t1,0x98($t4)
.PB0f07ae0c:
/* f07ae0c: 8fad0184 */ lw $t5,0x184($sp)
.PB0f07ae10:
/* f07ae10: 24050005 */ li $a1,0x5
/* f07ae14: 0c006cdb */ jal modelGetPart
/* f07ae18: 8da40008 */ lw $a0,0x8($t5)
/* f07ae1c: 10400005 */ beqz $v0,.PB0f07ae34
/* f07ae20: 00402825 */ move $a1,$v0
/* f07ae24: 0c006d1b */ jal modelGetNodeRwData
/* f07ae28: 8fa40184 */ lw $a0,0x184($sp)
/* f07ae2c: 8fae018c */ lw $t6,0x18c($sp)
/* f07ae30: a44e0000 */ sh $t6,0x0($v0)
.PB0f07ae34:
/* f07ae34: 8fab0184 */ lw $t3,0x184($sp)
/* f07ae38: 24050007 */ li $a1,0x7
/* f07ae3c: 0c006cdb */ jal modelGetPart
/* f07ae40: 8d640008 */ lw $a0,0x8($t3)
/* f07ae44: 10400005 */ beqz $v0,.PB0f07ae5c
/* f07ae48: 00402825 */ move $a1,$v0
/* f07ae4c: 0c006d1b */ jal modelGetNodeRwData
/* f07ae50: 8fa40184 */ lw $a0,0x184($sp)
/* f07ae54: 8fb80188 */ lw $t8,0x188($sp)
/* f07ae58: a4580000 */ sh $t8,0x0($v0)
.PB0f07ae5c:
/* f07ae5c: 8fbf0044 */ lw $ra,0x44($sp)
/* f07ae60: 27bd0198 */ addiu $sp,$sp,0x198
/* f07ae64: 03e00008 */ jr $ra
/* f07ae68: 00000000 */ nop
);
#elif VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel func0f079f1c
.late_rodata
glabel var7f1aa58c
.word 0x3e23d70a
glabel var7f1aa590
.word 0x461c4000
glabel var7f1aa594
.word 0x453b8000
glabel var7f1aa598
.word 0x3f19999a
glabel var7f1aa59c
.word 0x3e99999a
glabel var7f1aa5a0
.word 0xbdcccccd
glabel var7f1aa5a4
.word 0x453b8000
glabel var7f1aa5a8
.word 0x3e4ccccd
.text
/* f079f1c: 27bdfe68 */ addiu $sp,$sp,-408
/* f079f20: afbf0044 */ sw $ra,0x44($sp)
/* f079f24: 0fc5b364 */ jal lvIsPaused
/* f079f28: afa40198 */ sw $a0,0x198($sp)
/* f079f2c: 14400363 */ bnez $v0,.L0f07acbc
/* f079f30: 8fae0198 */ lw $t6,0x198($sp)
/* f079f34: 8dc20004 */ lw $v0,0x4($t6)
/* f079f38: afa0018c */ sw $zero,0x18c($sp)
/* f079f3c: afa00188 */ sw $zero,0x188($sp)
/* f079f40: 8c4f0018 */ lw $t7,0x18($v0)
/* f079f44: afa00174 */ sw $zero,0x174($sp)
/* f079f48: afaf0184 */ sw $t7,0x184($sp)
/* f079f4c: 8058005e */ lb $t8,0x5e($v0)
/* f079f50: 53000347 */ beqzl $t8,.L0f07ac70
/* f079f54: 8fad0184 */ lw $t5,0x184($sp)
/* f079f58: 8c590008 */ lw $t9,0x8($v0)
/* f079f5c: 001940c0 */ sll $t0,$t9,0x3
/* f079f60: 05020343 */ bltzl $t0,.L0f07ac70
/* f079f64: 8fad0184 */ lw $t5,0x184($sp)
/* f079f68: 9049005f */ lbu $t1,0x5f($v0)
/* f079f6c: 24050005 */ addiu $a1,$zero,0x5
/* f079f70: 252b0001 */ addiu $t3,$t1,0x1
/* f079f74: a04b005f */ sb $t3,0x5f($v0)
/* f079f78: 8fae0184 */ lw $t6,0x184($sp)
/* f079f7c: 316c0001 */ andi $t4,$t3,0x1
/* f079f80: 2d8d0001 */ sltiu $t5,$t4,0x1
/* f079f84: afad018c */ sw $t5,0x18c($sp)
/* f079f88: 8dc40008 */ lw $a0,0x8($t6)
/* f079f8c: afa20194 */ sw $v0,0x194($sp)
/* f079f90: 0c006a47 */ jal modelGetPart
/* f079f94: afa20190 */ sw $v0,0x190($sp)
/* f079f98: 1040000b */ beqz $v0,.L0f079fc8
/* f079f9c: 8fa30190 */ lw $v1,0x190($sp)
/* f079fa0: 8faf0194 */ lw $t7,0x194($sp)
/* f079fa4: 91f8005f */ lbu $t8,0x5f($t7)
/* f079fa8: 07010004 */ bgez $t8,.L0f079fbc
/* f079fac: 33190001 */ andi $t9,$t8,0x1
/* f079fb0: 13200002 */ beqz $t9,.L0f079fbc
/* f079fb4: 00000000 */ nop
/* f079fb8: 2739fffe */ addiu $t9,$t9,-2
.L0f079fbc:
/* f079fbc: 3b280001 */ xori $t0,$t9,0x1
/* f079fc0: 2d080001 */ sltiu $t0,$t0,0x1
/* f079fc4: afa80188 */ sw $t0,0x188($sp)
.L0f079fc8:
/* f079fc8: 8fa9018c */ lw $t1,0x18c($sp)
/* f079fcc: 8faa0188 */ lw $t2,0x188($sp)
/* f079fd0: 55200004 */ bnezl $t1,.L0f079fe4
/* f079fd4: 8fab0194 */ lw $t3,0x194($sp)
/* f079fd8: 514002f0 */ beqzl $t2,.L0f07ab9c
/* f079fdc: 8fa80194 */ lw $t0,0x194($sp)
/* f079fe0: 8fab0194 */ lw $t3,0x194($sp)
.L0f079fe4:
/* f079fe4: afa00148 */ sw $zero,0x148($sp)
/* f079fe8: 3c188007 */ lui $t8,%hi(var80069cb8)
/* f079fec: 916c005f */ lbu $t4,0x5f($t3)
/* f079ff0: 8f189cb8 */ lw $t8,%lo(var80069cb8)($t8)
/* f079ff4: 3c09800a */ lui $t1,%hi(g_Vars+0x318)
/* f079ff8: 318d0003 */ andi $t5,$t4,0x3
/* f079ffc: 2dae0001 */ sltiu $t6,$t5,0x1
/* f07a000: afae0128 */ sw $t6,0x128($sp)
/* f07a004: 8d6f00a4 */ lw $t7,0xa4($t3)
/* f07a008: afa0011c */ sw $zero,0x11c($sp)
/* f07a00c: afa00114 */ sw $zero,0x114($sp)
/* f07a010: afa00110 */ sw $zero,0x110($sp)
/* f07a014: afb80118 */ sw $t8,0x118($sp)
/* f07a018: afaf0124 */ sw $t7,0x124($sp)
/* f07a01c: 8c640040 */ lw $a0,0x40($v1)
/* f07a020: 8d29a2d8 */ lw $t1,%lo(g_Vars+0x318)($t1)
/* f07a024: 3c01f000 */ lui $at,0xf000
/* f07a028: 0081c824 */ and $t9,$a0,$at
/* f07a02c: 11200007 */ beqz $t1,.L0f07a04c
/* f07a030: 00192702 */ srl $a0,$t9,0x1c
/* f07a034: 0fc63410 */ jal mpGetChrFromPlayerIndex
/* f07a038: 00000000 */ nop
/* f07a03c: 10400003 */ beqz $v0,.L0f07a04c
/* f07a040: afa20110 */ sw $v0,0x110($sp)
/* f07a044: 8c4a001c */ lw $t2,0x1c($v0)
/* f07a048: afaa0114 */ sw $t2,0x114($sp)
.L0f07a04c:
/* f07a04c: 8fac0194 */ lw $t4,0x194($sp)
/* f07a050: 918d005f */ lbu $t5,0x5f($t4)
/* f07a054: 31ae0007 */ andi $t6,$t5,0x7
/* f07a058: 55c00008 */ bnezl $t6,.L0f07a07c
/* f07a05c: 8faf0184 */ lw $t7,0x184($sp)
/* f07a060: 8fab0184 */ lw $t3,0x184($sp)
/* f07a064: 24050007 */ addiu $a1,$zero,0x7
/* f07a068: 0c006a47 */ jal modelGetPart
/* f07a06c: 8d640008 */ lw $a0,0x8($t3)
/* f07a070: 14400006 */ bnez $v0,.L0f07a08c
/* f07a074: 00403825 */ or $a3,$v0,$zero
/* f07a078: 8faf0184 */ lw $t7,0x184($sp)
.L0f07a07c:
/* f07a07c: 24050005 */ addiu $a1,$zero,0x5
/* f07a080: 0c006a47 */ jal modelGetPart
/* f07a084: 8de40008 */ lw $a0,0x8($t7)
/* f07a088: 00403825 */ or $a3,$v0,$zero
.L0f07a08c:
/* f07a08c: 54400009 */ bnezl $v0,.L0f07a0b4
/* f07a090: 8fa40198 */ lw $a0,0x198($sp)
/* f07a094: 8fb80184 */ lw $t8,0x184($sp)
/* f07a098: 24050003 */ addiu $a1,$zero,0x3
/* f07a09c: 8f040008 */ lw $a0,0x8($t8)
/* f07a0a0: 0c006a47 */ jal modelGetPart
/* f07a0a4: afa70120 */ sw $a3,0x120($sp)
/* f07a0a8: 8fa70120 */ lw $a3,0x120($sp)
/* f07a0ac: afa2011c */ sw $v0,0x11c($sp)
/* f07a0b0: 8fa40198 */ lw $a0,0x198($sp)
.L0f07a0b4:
/* f07a0b4: 00002825 */ or $a1,$zero,$zero
/* f07a0b8: 0fc1905e */ jal propSetPerimEnabled
/* f07a0bc: afa70120 */ sw $a3,0x120($sp)
/* f07a0c0: 8fa20198 */ lw $v0,0x198($sp)
/* f07a0c4: 8fa70120 */ lw $a3,0x120($sp)
/* f07a0c8: 90590001 */ lbu $t9,0x1($v0)
/* f07a0cc: 33280002 */ andi $t0,$t9,0x2
/* f07a0d0: 51000042 */ beqzl $t0,.L0f07a1dc
/* f07a0d4: c44a0008 */ lwc1 $f10,0x8($v0)
/* f07a0d8: 14e00003 */ bnez $a3,.L0f07a0e8
/* f07a0dc: 8fa9011c */ lw $t1,0x11c($sp)
/* f07a0e0: 5120003e */ beqzl $t1,.L0f07a1dc
/* f07a0e4: c44a0008 */ lwc1 $f10,0x8($v0)
.L0f07a0e8:
/* f07a0e8: 10e00010 */ beqz $a3,.L0f07a12c
/* f07a0ec: 8fa40184 */ lw $a0,0x184($sp)
/* f07a0f0: 8fa40184 */ lw $a0,0x184($sp)
/* f07a0f4: 00e02825 */ or $a1,$a3,$zero
/* f07a0f8: 00003025 */ or $a2,$zero,$zero
/* f07a0fc: 0c006973 */ jal model0001a5cc
/* f07a100: afa70120 */ sw $a3,0x120($sp)
/* f07a104: 8fa70120 */ lw $a3,0x120($sp)
/* f07a108: 00402825 */ or $a1,$v0,$zero
/* f07a10c: 8ce30004 */ lw $v1,0x4($a3)
/* f07a110: c4640000 */ lwc1 $f4,0x0($v1)
/* f07a114: e7a40168 */ swc1 $f4,0x168($sp)
/* f07a118: c4660004 */ lwc1 $f6,0x4($v1)
/* f07a11c: e7a6016c */ swc1 $f6,0x16c($sp)
/* f07a120: c4680008 */ lwc1 $f8,0x8($v1)
/* f07a124: 1000000b */ b .L0f07a154
/* f07a128: e7a80170 */ swc1 $f8,0x170($sp)
.L0f07a12c:
/* f07a12c: 8fa5011c */ lw $a1,0x11c($sp)
/* f07a130: 0c006973 */ jal model0001a5cc
/* f07a134: 00003025 */ or $a2,$zero,$zero
/* f07a138: 44805000 */ mtc1 $zero,$f10
/* f07a13c: 44808000 */ mtc1 $zero,$f16
/* f07a140: 44809000 */ mtc1 $zero,$f18
/* f07a144: 00402825 */ or $a1,$v0,$zero
/* f07a148: e7aa0168 */ swc1 $f10,0x168($sp)
/* f07a14c: e7b0016c */ swc1 $f16,0x16c($sp)
/* f07a150: e7b20170 */ swc1 $f18,0x170($sp)
.L0f07a154:
/* f07a154: 0fc2d5de */ jal camGetProjectionMtxF
/* f07a158: afa50108 */ sw $a1,0x108($sp)
/* f07a15c: 8fa50108 */ lw $a1,0x108($sp)
/* f07a160: 00402025 */ or $a0,$v0,$zero
/* f07a164: 0c0056f9 */ jal mtx00015be4
/* f07a168: 27a600c8 */ addiu $a2,$sp,0xc8
/* f07a16c: 27a400c8 */ addiu $a0,$sp,0xc8
/* f07a170: 0c0056d9 */ jal mtx4TransformVecInPlace
/* f07a174: 27a50168 */ addiu $a1,$sp,0x168
/* f07a178: 8fa20198 */ lw $v0,0x198($sp)
/* f07a17c: 240a0020 */ addiu $t2,$zero,0x20
/* f07a180: 240c0010 */ addiu $t4,$zero,0x10
/* f07a184: 24450028 */ addiu $a1,$v0,0x28
/* f07a188: afa5004c */ sw $a1,0x4c($sp)
/* f07a18c: afac0014 */ sw $t4,0x14($sp)
/* f07a190: afaa0010 */ sw $t2,0x10($sp)
/* f07a194: 27a60168 */ addiu $a2,$sp,0x168
/* f07a198: 27a70158 */ addiu $a3,$sp,0x158
/* f07a19c: 0c00b78d */ jal cd0002de34
/* f07a1a0: 24440008 */ addiu $a0,$v0,0x8
/* f07a1a4: 14400015 */ bnez $v0,.L0f07a1fc
/* f07a1a8: 8fad0198 */ lw $t5,0x198($sp)
/* f07a1ac: c5a40008 */ lwc1 $f4,0x8($t5)
/* f07a1b0: 8fa4004c */ lw $a0,0x4c($sp)
/* f07a1b4: 27a50158 */ addiu $a1,$sp,0x158
/* f07a1b8: e7a40168 */ swc1 $f4,0x168($sp)
/* f07a1bc: c5a6000c */ lwc1 $f6,0xc($t5)
/* f07a1c0: e7a6016c */ swc1 $f6,0x16c($sp)
/* f07a1c4: c5a80010 */ lwc1 $f8,0x10($t5)
/* f07a1c8: 0fc195e9 */ jal roomsCopy
/* f07a1cc: e7a80170 */ swc1 $f8,0x170($sp)
/* f07a1d0: 1000000b */ b .L0f07a200
/* f07a1d4: 8fae0194 */ lw $t6,0x194($sp)
/* f07a1d8: c44a0008 */ lwc1 $f10,0x8($v0)
.L0f07a1dc:
/* f07a1dc: 24440028 */ addiu $a0,$v0,0x28
/* f07a1e0: 27a50158 */ addiu $a1,$sp,0x158
/* f07a1e4: e7aa0168 */ swc1 $f10,0x168($sp)
/* f07a1e8: c450000c */ lwc1 $f16,0xc($v0)
/* f07a1ec: e7b0016c */ swc1 $f16,0x16c($sp)
/* f07a1f0: c4520010 */ lwc1 $f18,0x10($v0)
/* f07a1f4: 0fc195e9 */ jal roomsCopy
/* f07a1f8: e7b20170 */ swc1 $f18,0x170($sp)
.L0f07a1fc:
/* f07a1fc: 8fae0194 */ lw $t6,0x194($sp)
.L0f07a200:
/* f07a200: 0c0068f4 */ jal cosf
/* f07a204: c5cc0078 */ lwc1 $f12,0x78($t6)
/* f07a208: 8fab0194 */ lw $t3,0x194($sp)
/* f07a20c: e7a00050 */ swc1 $f0,0x50($sp)
/* f07a210: 0c0068f7 */ jal sinf
/* f07a214: c56c006c */ lwc1 $f12,0x6c($t3)
/* f07a218: c7a40050 */ lwc1 $f4,0x50($sp)
/* f07a21c: 8faf0194 */ lw $t7,0x194($sp)
/* f07a220: 46040182 */ mul.s $f6,$f0,$f4
/* f07a224: e7a6014c */ swc1 $f6,0x14c($sp)
/* f07a228: 0c0068f7 */ jal sinf
/* f07a22c: c5ec0078 */ lwc1 $f12,0x78($t7)
/* f07a230: 8fb80194 */ lw $t8,0x194($sp)
/* f07a234: e7a00150 */ swc1 $f0,0x150($sp)
/* f07a238: 0c0068f4 */ jal cosf
/* f07a23c: c70c0078 */ lwc1 $f12,0x78($t8)
/* f07a240: 8fb90194 */ lw $t9,0x194($sp)
/* f07a244: e7a00050 */ swc1 $f0,0x50($sp)
/* f07a248: 0c0068f4 */ jal cosf
/* f07a24c: c72c006c */ lwc1 $f12,0x6c($t9)
/* f07a250: c7a80050 */ lwc1 $f8,0x50($sp)
/* f07a254: 3c014780 */ lui $at,0x4780
/* f07a258: 44811000 */ mtc1 $at,$f2
/* f07a25c: 46080302 */ mul.s $f12,$f0,$f8
/* f07a260: c7aa014c */ lwc1 $f10,0x14c($sp)
/* f07a264: c7a60150 */ lwc1 $f6,0x150($sp)
/* f07a268: c7b20168 */ lwc1 $f18,0x168($sp)
/* f07a26c: 46025402 */ mul.s $f16,$f10,$f2
/* f07a270: c7aa016c */ lwc1 $f10,0x16c($sp)
/* f07a274: 3c03800a */ lui $v1,%hi(g_Vars)
/* f07a278: 46023202 */ mul.s $f8,$f6,$f2
/* f07a27c: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
/* f07a280: 8c680318 */ lw $t0,0x318($v1)
/* f07a284: e7ac0154 */ swc1 $f12,0x154($sp)
/* f07a288: 8fa20124 */ lw $v0,0x124($sp)
/* f07a28c: 46128100 */ add.s $f4,$f16,$f18
/* f07a290: 46026482 */ mul.s $f18,$f12,$f2
/* f07a294: 27a40168 */ addiu $a0,$sp,0x168
/* f07a298: 460a4400 */ add.s $f16,$f8,$f10
/* f07a29c: e7a4013c */ swc1 $f4,0x13c($sp)
/* f07a2a0: c7a40170 */ lwc1 $f4,0x170($sp)
/* f07a2a4: 27a50158 */ addiu $a1,$sp,0x158
/* f07a2a8: e7b00140 */ swc1 $f16,0x140($sp)
/* f07a2ac: 46049180 */ add.s $f6,$f18,$f4
/* f07a2b0: 27a6013c */ addiu $a2,$sp,0x13c
/* f07a2b4: 2407003f */ addiu $a3,$zero,0x3f
/* f07a2b8: 1500000f */ bnez $t0,.L0f07a2f8
/* f07a2bc: e7a60144 */ swc1 $f6,0x144($sp)
/* f07a2c0: 50400006 */ beqzl $v0,.L0f07a2dc
/* f07a2c4: 8c6a029c */ lw $t2,0x29c($v1)
/* f07a2c8: 90490000 */ lbu $t1,0x0($v0)
/* f07a2cc: 24010003 */ addiu $at,$zero,0x3
/* f07a2d0: 5121000a */ beql $t1,$at,.L0f07a2fc
/* f07a2d4: 240e0010 */ addiu $t6,$zero,0x10
/* f07a2d8: 8c6a029c */ lw $t2,0x29c($v1)
.L0f07a2dc:
/* f07a2dc: 0540007f */ bltz $t2,.L0f07a4dc
/* f07a2e0: 00000000 */ nop
/* f07a2e4: 1040007d */ beqz $v0,.L0f07a4dc
/* f07a2e8: 00000000 */ nop
/* f07a2ec: 8c6c02a8 */ lw $t4,0x2a8($v1)
/* f07a2f0: 8d8d00bc */ lw $t5,0xbc($t4)
/* f07a2f4: 144d0079 */ bne $v0,$t5,.L0f07a4dc
.L0f07a2f8:
/* f07a2f8: 240e0010 */ addiu $t6,$zero,0x10
.L0f07a2fc:
/* f07a2fc: 0c00b764 */ jal cdTestAToB4
/* f07a300: afae0010 */ sw $t6,0x10($sp)
/* f07a304: 14400151 */ bnez $v0,.L0f07a84c
/* f07a308: 27a4013c */ addiu $a0,$sp,0x13c
/* f07a30c: 3c067f1b */ lui $a2,%hi(var7f1aa020)
/* f07a310: 24c6a020 */ addiu $a2,$a2,%lo(var7f1aa020)
/* f07a314: 0c0093af */ jal cdGetPos
/* f07a318: 24052cc2 */ addiu $a1,$zero,0x2cc2
/* f07a31c: 0c0093ac */ jal cdGetObstacle
/* f07a320: 00000000 */ nop
/* f07a324: 1040006a */ beqz $v0,.L0f07a4d0
/* f07a328: afa20178 */ sw $v0,0x178($sp)
/* f07a32c: 90430000 */ lbu $v1,0x0($v0)
/* f07a330: 24010003 */ addiu $at,$zero,0x3
/* f07a334: 3c0b800a */ lui $t3,%hi(g_Vars+0x318)
/* f07a338: 10610003 */ beq $v1,$at,.L0f07a348
/* f07a33c: 24010006 */ addiu $at,$zero,0x6
/* f07a340: 54610064 */ bnel $v1,$at,.L0f07a4d4
/* f07a344: 24080001 */ addiu $t0,$zero,0x1
.L0f07a348:
/* f07a348: 8d6ba2d8 */ lw $t3,%lo(g_Vars+0x318)($t3)
/* f07a34c: 8faf0124 */ lw $t7,0x124($sp)
/* f07a350: 2418ffff */ addiu $t8,$zero,-1
/* f07a354: 15600003 */ bnez $t3,.L0f07a364
/* f07a358: 241900c8 */ addiu $t9,$zero,0xc8
/* f07a35c: 55e2005d */ bnel $t7,$v0,.L0f07a4d4
/* f07a360: 24080001 */ addiu $t0,$zero,0x1
.L0f07a364:
/* f07a364: afa000c0 */ sw $zero,0xc0($sp)
/* f07a368: afa000bc */ sw $zero,0xbc($sp)
/* f07a36c: afb800b8 */ sw $t8,0xb8($sp)
/* f07a370: afb900b4 */ sw $t9,0xb4($sp)
/* f07a374: 0fc2c74a */ jal gsetGetDamage
/* f07a378: 27a40118 */ addiu $a0,$sp,0x118
/* f07a37c: 8fa80178 */ lw $t0,0x178($sp)
/* f07a380: 3c09800a */ lui $t1,%hi(g_Vars+0x318)
/* f07a384: 8d29a2d8 */ lw $t1,%lo(g_Vars+0x318)($t1)
/* f07a388: e7a000b0 */ swc1 $f0,0xb0($sp)
/* f07a38c: 8d040004 */ lw $a0,0x4($t0)
/* f07a390: 3c013f00 */ lui $at,0x3f00
/* f07a394: 11200005 */ beqz $t1,.L0f07a3ac
/* f07a398: afa400ac */ sw $a0,0xac($sp)
/* f07a39c: 44814000 */ mtc1 $at,$f8
/* f07a3a0: 00000000 */ nop
/* f07a3a4: 46080282 */ mul.s $f10,$f0,$f8
/* f07a3a8: e7aa00b0 */ swc1 $f10,0xb0($sp)
.L0f07a3ac:
/* f07a3ac: 8faa0114 */ lw $t2,0x114($sp)
/* f07a3b0: 8fac0178 */ lw $t4,0x178($sp)
/* f07a3b4: 8fad0110 */ lw $t5,0x110($sp)
/* f07a3b8: 514c0007 */ beql $t2,$t4,.L0f07a3d8
/* f07a3bc: 240e0001 */ addiu $t6,$zero,0x1
/* f07a3c0: 11a00009 */ beqz $t5,.L0f07a3e8
/* f07a3c4: 01a02825 */ or $a1,$t5,$zero
/* f07a3c8: 0fc12aa3 */ jal chrCompareTeams
/* f07a3cc: 24060001 */ addiu $a2,$zero,0x1
/* f07a3d0: 10400005 */ beqz $v0,.L0f07a3e8
/* f07a3d4: 240e0001 */ addiu $t6,$zero,0x1
.L0f07a3d8:
/* f07a3d8: afa00128 */ sw $zero,0x128($sp)
/* f07a3dc: afa0018c */ sw $zero,0x18c($sp)
/* f07a3e0: afa00188 */ sw $zero,0x188($sp)
/* f07a3e4: afae0174 */ sw $t6,0x174($sp)
.L0f07a3e8:
/* f07a3e8: 8fab018c */ lw $t3,0x18c($sp)
/* f07a3ec: 8faf0188 */ lw $t7,0x188($sp)
/* f07a3f0: 27a40118 */ addiu $a0,$sp,0x118
/* f07a3f4: 15600003 */ bnez $t3,.L0f07a404
/* f07a3f8: 8fa50178 */ lw $a1,0x178($sp)
/* f07a3fc: 51e00114 */ beqzl $t7,.L0f07a850
/* f07a400: 8fa40198 */ lw $a0,0x198($sp)
.L0f07a404:
/* f07a404: 0fc29f66 */ jal bgunPlayPropHitSound
/* f07a408: 2406ffff */ addiu $a2,$zero,-1
/* f07a40c: 8fa400ac */ lw $a0,0xac($sp)
/* f07a410: 8c980020 */ lw $t8,0x20($a0)
/* f07a414: 53000012 */ beqzl $t8,.L0f07a460
/* f07a418: 8fac0110 */ lw $t4,0x110($sp)
/* f07a41c: 0fc0cfe8 */ jal chrGetShield
/* f07a420: 00000000 */ nop
/* f07a424: 44808000 */ mtc1 $zero,$f16
/* f07a428: 8fa400ac */ lw $a0,0xac($sp)
/* f07a42c: 27a5013c */ addiu $a1,$sp,0x13c
/* f07a430: 4600803c */ c.lt.s $f16,$f0
/* f07a434: 27a6014c */ addiu $a2,$sp,0x14c
/* f07a438: 27a700c0 */ addiu $a3,$sp,0xc0
/* f07a43c: 27b900b4 */ addiu $t9,$sp,0xb4
/* f07a440: 45000006 */ bc1f .L0f07a45c
/* f07a444: 27a800bc */ addiu $t0,$sp,0xbc
/* f07a448: 27a900b8 */ addiu $t1,$sp,0xb8
/* f07a44c: afa90018 */ sw $t1,0x18($sp)
/* f07a450: afb90010 */ sw $t9,0x10($sp)
/* f07a454: 0fc0ffcb */ jal chrCalculateShieldHit
/* f07a458: afa80014 */ sw $t0,0x14($sp)
.L0f07a45c:
/* f07a45c: 8fac0110 */ lw $t4,0x110($sp)
.L0f07a460:
/* f07a460: 27aa014c */ addiu $t2,$sp,0x14c
/* f07a464: 8fa400ac */ lw $a0,0xac($sp)
/* f07a468: afaa0010 */ sw $t2,0x10($sp)
/* f07a46c: 8fa50178 */ lw $a1,0x178($sp)
/* f07a470: 8fa600b4 */ lw $a2,0xb4($sp)
/* f07a474: 27a7013c */ addiu $a3,$sp,0x13c
/* f07a478: 0fc097a9 */ jal chrEmitSparks
/* f07a47c: afac0014 */ sw $t4,0x14($sp)
/* f07a480: 8fad0114 */ lw $t5,0x114($sp)
/* f07a484: 8fab0178 */ lw $t3,0x178($sp)
/* f07a488: 8faf00c0 */ lw $t7,0xc0($sp)
/* f07a48c: 8fb800bc */ lw $t8,0xbc($sp)
/* f07a490: 8fb900b8 */ lw $t9,0xb8($sp)
/* f07a494: 240e00c8 */ addiu $t6,$zero,0xc8
/* f07a498: afae0014 */ sw $t6,0x14($sp)
/* f07a49c: 8fa400ac */ lw $a0,0xac($sp)
/* f07a4a0: 8fa500b0 */ lw $a1,0xb0($sp)
/* f07a4a4: 27a6014c */ addiu $a2,$sp,0x14c
/* f07a4a8: 27a70118 */ addiu $a3,$sp,0x118
/* f07a4ac: afa00028 */ sw $zero,0x28($sp)
/* f07a4b0: afad0010 */ sw $t5,0x10($sp)
/* f07a4b4: afab0018 */ sw $t3,0x18($sp)
/* f07a4b8: afaf001c */ sw $t7,0x1c($sp)
/* f07a4bc: afb80020 */ sw $t8,0x20($sp)
/* f07a4c0: 0fc0d077 */ jal func0f0341dc
/* f07a4c4: afb90024 */ sw $t9,0x24($sp)
/* f07a4c8: 100000e1 */ b .L0f07a850
/* f07a4cc: 8fa40198 */ lw $a0,0x198($sp)
.L0f07a4d0:
/* f07a4d0: 24080001 */ addiu $t0,$zero,0x1
.L0f07a4d4:
/* f07a4d4: 100000dd */ b .L0f07a84c
/* f07a4d8: afa80148 */ sw $t0,0x148($sp)
.L0f07a4dc:
/* f07a4dc: 10400045 */ beqz $v0,.L0f07a5f4
/* f07a4e0: 27a40168 */ addiu $a0,$sp,0x168
/* f07a4e4: 90490000 */ lbu $t1,0x0($v0)
/* f07a4e8: 24010001 */ addiu $at,$zero,0x1
/* f07a4ec: 27a50158 */ addiu $a1,$sp,0x158
/* f07a4f0: 15210040 */ bne $t1,$at,.L0f07a5f4
/* f07a4f4: 27a6013c */ addiu $a2,$sp,0x13c
/* f07a4f8: 240a0010 */ addiu $t2,$zero,0x10
/* f07a4fc: afa000a8 */ sw $zero,0xa8($sp)
/* f07a500: afaa0010 */ sw $t2,0x10($sp)
/* f07a504: 27a40168 */ addiu $a0,$sp,0x168
/* f07a508: 0c00b764 */ jal cdTestAToB4
/* f07a50c: 2407003b */ addiu $a3,$zero,0x3b
/* f07a510: 1440000a */ bnez $v0,.L0f07a53c
/* f07a514: 27a4013c */ addiu $a0,$sp,0x13c
/* f07a518: 3c067f1b */ lui $a2,%hi(var7f1aa02c)
/* f07a51c: 24c6a02c */ addiu $a2,$a2,%lo(var7f1aa02c)
/* f07a520: 0c0093af */ jal cdGetPos
/* f07a524: 24052cf9 */ addiu $a1,$zero,0x2cf9
/* f07a528: 0c0093ac */ jal cdGetObstacle
/* f07a52c: 00000000 */ nop
/* f07a530: 240c0001 */ addiu $t4,$zero,0x1
/* f07a534: afac0148 */ sw $t4,0x148($sp)
/* f07a538: afa200a8 */ sw $v0,0xa8($sp)
.L0f07a53c:
/* f07a53c: 8fa300a8 */ lw $v1,0xa8($sp)
/* f07a540: 506000c3 */ beqzl $v1,.L0f07a850
/* f07a544: 8fa40198 */ lw $a0,0x198($sp)
/* f07a548: 906d0000 */ lbu $t5,0x0($v1)
/* f07a54c: 24010001 */ addiu $at,$zero,0x1
/* f07a550: 55a100bf */ bnel $t5,$at,.L0f07a850
/* f07a554: 8fa40198 */ lw $a0,0x198($sp)
/* f07a558: 8c640004 */ lw $a0,0x4($v1)
/* f07a55c: 2401014c */ addiu $at,$zero,0x14c
/* f07a560: 3c0b8007 */ lui $t3,%hi(var80069cbc)
/* f07a564: 848e0004 */ lh $t6,0x4($a0)
/* f07a568: 27a5013c */ addiu $a1,$sp,0x13c
/* f07a56c: 24060000 */ addiu $a2,$zero,0x0
/* f07a570: 55c100b7 */ bnel $t6,$at,.L0f07a850
/* f07a574: 8fa40198 */ lw $a0,0x198($sp)
/* f07a578: 8d6b9cbc */ lw $t3,%lo(var80069cbc)($t3)
/* f07a57c: afa00148 */ sw $zero,0x148($sp)
/* f07a580: afa300a8 */ sw $v1,0xa8($sp)
/* f07a584: 0fc68330 */ jal frCalculateHit
/* f07a588: afab00a0 */ sw $t3,0xa0($sp)
/* f07a58c: 0fc4f92a */ jal chrIsUsingPaintball
/* f07a590: 8fa40110 */ lw $a0,0x110($sp)
/* f07a594: 1040000b */ beqz $v0,.L0f07a5c4
/* f07a598: 8fa500a8 */ lw $a1,0xa8($sp)
/* f07a59c: 8fa500a8 */ lw $a1,0xa8($sp)
/* f07a5a0: 240f0019 */ addiu $t7,$zero,0x19
/* f07a5a4: 27a6013c */ addiu $a2,$sp,0x13c
/* f07a5a8: 84a40028 */ lh $a0,0x28($a1)
/* f07a5ac: afaf0014 */ sw $t7,0x14($sp)
/* f07a5b0: afa00010 */ sw $zero,0x10($sp)
/* f07a5b4: 0fc4be7c */ jal sparksCreate
/* f07a5b8: 00003825 */ or $a3,$zero,$zero
/* f07a5bc: 10000008 */ b .L0f07a5e0
/* f07a5c0: 27a400a0 */ addiu $a0,$sp,0xa0
.L0f07a5c4:
/* f07a5c4: 84a40028 */ lh $a0,0x28($a1)
/* f07a5c8: afa00014 */ sw $zero,0x14($sp)
/* f07a5cc: afa00010 */ sw $zero,0x10($sp)
/* f07a5d0: 27a6013c */ addiu $a2,$sp,0x13c
/* f07a5d4: 0fc4be7c */ jal sparksCreate
/* f07a5d8: 00003825 */ or $a3,$zero,$zero
/* f07a5dc: 27a400a0 */ addiu $a0,$sp,0xa0
.L0f07a5e0:
/* f07a5e0: 8fa500a8 */ lw $a1,0xa8($sp)
/* f07a5e4: 0fc29f66 */ jal bgunPlayPropHitSound
/* f07a5e8: 240600f2 */ addiu $a2,$zero,0xf2
/* f07a5ec: 10000098 */ b .L0f07a850
/* f07a5f0: 8fa40198 */ lw $a0,0x198($sp)
.L0f07a5f4:
/* f07a5f4: 24190010 */ addiu $t9,$zero,0x10
/* f07a5f8: afb90010 */ sw $t9,0x10($sp)
/* f07a5fc: 27a50158 */ addiu $a1,$sp,0x158
/* f07a600: 27a6013c */ addiu $a2,$sp,0x13c
/* f07a604: 0c00b764 */ jal cdTestAToB4
/* f07a608: 24070022 */ addiu $a3,$zero,0x22
/* f07a60c: 14400007 */ bnez $v0,.L0f07a62c
/* f07a610: 27a4013c */ addiu $a0,$sp,0x13c
/* f07a614: 3c067f1b */ lui $a2,%hi(var7f1aa038)
/* f07a618: 24c6a038 */ addiu $a2,$a2,%lo(var7f1aa038)
/* f07a61c: 0c0093af */ jal cdGetPos
/* f07a620: 24052d13 */ addiu $a1,$zero,0x2d13
/* f07a624: 24080001 */ addiu $t0,$zero,0x1
/* f07a628: afa80148 */ sw $t0,0x148($sp)
.L0f07a62c:
/* f07a62c: 8faa0194 */ lw $t2,0x194($sp)
/* f07a630: 3c09800a */ lui $t1,%hi(g_Vars+0x8)
/* f07a634: 8d299fc8 */ lw $t1,%lo(g_Vars+0x8)($t1)
/* f07a638: 8d4c0094 */ lw $t4,0x94($t2)
/* f07a63c: 8fa20124 */ lw $v0,0x124($sp)
/* f07a640: 552c0083 */ bnel $t1,$t4,.L0f07a850
/* f07a644: 8fa40198 */ lw $a0,0x198($sp)
/* f07a648: 50400081 */ beqzl $v0,.L0f07a850
/* f07a64c: 8fa40198 */ lw $a0,0x198($sp)
/* f07a650: 904d0000 */ lbu $t5,0x0($v0)
/* f07a654: 24010006 */ addiu $at,$zero,0x6
/* f07a658: c7a40168 */ lwc1 $f4,0x168($sp)
/* f07a65c: 55a1007c */ bnel $t5,$at,.L0f07a850
/* f07a660: 8fa40198 */ lw $a0,0x198($sp)
/* f07a664: c4520008 */ lwc1 $f18,0x8($v0)
/* f07a668: c446000c */ lwc1 $f6,0xc($v0)
/* f07a66c: c7a8016c */ lwc1 $f8,0x16c($sp)
/* f07a670: 46049001 */ sub.s $f0,$f18,$f4
/* f07a674: c44a0010 */ lwc1 $f10,0x10($v0)
/* f07a678: c7b00170 */ lwc1 $f16,0x170($sp)
/* f07a67c: 46083081 */ sub.s $f2,$f6,$f8
/* f07a680: 46000482 */ mul.s $f18,$f0,$f0
/* f07a684: 46105301 */ sub.s $f12,$f10,$f16
/* f07a688: 46021182 */ mul.s $f6,$f2,$f2
/* f07a68c: 46069280 */ add.s $f10,$f18,$f6
/* f07a690: 460c6482 */ mul.s $f18,$f12,$f12
/* f07a694: c7a6013c */ lwc1 $f6,0x13c($sp)
/* f07a698: 46043001 */ sub.s $f0,$f6,$f4
/* f07a69c: 46125380 */ add.s $f14,$f10,$f18
/* f07a6a0: c7aa0140 */ lwc1 $f10,0x140($sp)
/* f07a6a4: 46000182 */ mul.s $f6,$f0,$f0
/* f07a6a8: c7b20144 */ lwc1 $f18,0x144($sp)
/* f07a6ac: 46085081 */ sub.s $f2,$f10,$f8
/* f07a6b0: 46109301 */ sub.s $f12,$f18,$f16
/* f07a6b4: 46021102 */ mul.s $f4,$f2,$f2
/* f07a6b8: 46043280 */ add.s $f10,$f6,$f4
/* f07a6bc: 460c6202 */ mul.s $f8,$f12,$f12
/* f07a6c0: 46085480 */ add.s $f18,$f10,$f8
/* f07a6c4: 4612703e */ c.le.s $f14,$f18
/* f07a6c8: 00000000 */ nop
/* f07a6cc: 45020060 */ bc1fl .L0f07a850
/* f07a6d0: 8fa40198 */ lw $a0,0x198($sp)
/* f07a6d4: 0c012974 */ jal sqrtf
/* f07a6d8: 46007306 */ mov.s $f12,$f14
/* f07a6dc: 3c014348 */ lui $at,0x4348
/* f07a6e0: 44816000 */ mtc1 $at,$f12
/* f07a6e4: 3c017f1b */ lui $at,%hi(var7f1aa58c)
/* f07a6e8: c430a58c */ lwc1 $f16,%lo(var7f1aa58c)($at)
/* f07a6ec: 3c01800a */ lui $at,%hi(g_Vars+0x4c)
/* f07a6f0: c426a00c */ lwc1 $f6,%lo(g_Vars+0x4c)($at)
/* f07a6f4: 3c018007 */ lui $at,%hi(var80069950)
/* f07a6f8: 4600603c */ c.lt.s $f12,$f0
/* f07a6fc: 46068102 */ mul.s $f4,$f16,$f6
/* f07a700: c42a9950 */ lwc1 $f10,%lo(var80069950)($at)
/* f07a704: 8fae0194 */ lw $t6,0x194($sp)
/* f07a708: 460a2082 */ mul.s $f2,$f4,$f10
/* f07a70c: 45020005 */ bc1fl .L0f07a724
/* f07a710: c5d200a0 */ lwc1 $f18,0xa0($t6)
/* f07a714: 46006203 */ div.s $f8,$f12,$f0
/* f07a718: 46081082 */ mul.s $f2,$f2,$f8
/* f07a71c: 00000000 */ nop
/* f07a720: c5d200a0 */ lwc1 $f18,0xa0($t6)
.L0f07a724:
/* f07a724: 3c013f80 */ lui $at,0x3f80
/* f07a728: 44813000 */ mtc1 $at,$f6
/* f07a72c: 46029400 */ add.s $f16,$f18,$f2
/* f07a730: 4610303e */ c.le.s $f6,$f16
/* f07a734: e5d000a0 */ swc1 $f16,0xa0($t6)
/* f07a738: 8fab0124 */ lw $t3,0x124($sp)
/* f07a73c: 45020044 */ bc1fl .L0f07a850
/* f07a740: 8fa40198 */ lw $a0,0x198($sp)
/* f07a744: c5640008 */ lwc1 $f4,0x8($t3)
/* f07a748: e7a4013c */ swc1 $f4,0x13c($sp)
/* f07a74c: c56a000c */ lwc1 $f10,0xc($t3)
/* f07a750: e7aa0140 */ swc1 $f10,0x140($sp)
/* f07a754: c5680010 */ lwc1 $f8,0x10($t3)
/* f07a758: afa00148 */ sw $zero,0x148($sp)
/* f07a75c: 0c004b70 */ jal random
/* f07a760: e7a80144 */ swc1 $f8,0x144($sp)
/* f07a764: 304f0001 */ andi $t7,$v0,0x1
/* f07a768: 11e00012 */ beqz $t7,.L0f07a7b4
/* f07a76c: 00000000 */ nop
/* f07a770: 0c004b70 */ jal random
/* f07a774: 00000000 */ nop
/* f07a778: 2401000a */ addiu $at,$zero,0xa
/* f07a77c: 0041001b */ divu $zero,$v0,$at
/* f07a780: 0000c010 */ mfhi $t8
/* f07a784: 27190002 */ addiu $t9,$t8,0x2
/* f07a788: 44998000 */ mtc1 $t9,$f16
/* f07a78c: c7b20140 */ lwc1 $f18,0x140($sp)
/* f07a790: 07210005 */ bgez $t9,.L0f07a7a8
/* f07a794: 468081a0 */ cvt.s.w $f6,$f16
/* f07a798: 3c014f80 */ lui $at,0x4f80
/* f07a79c: 44812000 */ mtc1 $at,$f4
/* f07a7a0: 00000000 */ nop
/* f07a7a4: 46043180 */ add.s $f6,$f6,$f4
.L0f07a7a8:
/* f07a7a8: 46069280 */ add.s $f10,$f18,$f6
/* f07a7ac: 10000011 */ b .L0f07a7f4
/* f07a7b0: e7aa0140 */ swc1 $f10,0x140($sp)
.L0f07a7b4:
/* f07a7b4: 0c004b70 */ jal random
/* f07a7b8: 00000000 */ nop
/* f07a7bc: 2401000a */ addiu $at,$zero,0xa
/* f07a7c0: 0041001b */ divu $zero,$v0,$at
/* f07a7c4: 00004010 */ mfhi $t0
/* f07a7c8: 250a0002 */ addiu $t2,$t0,0x2
/* f07a7cc: 448a8000 */ mtc1 $t2,$f16
/* f07a7d0: c7a80140 */ lwc1 $f8,0x140($sp)
/* f07a7d4: 05410005 */ bgez $t2,.L0f07a7ec
/* f07a7d8: 46808120 */ cvt.s.w $f4,$f16
/* f07a7dc: 3c014f80 */ lui $at,0x4f80
/* f07a7e0: 44819000 */ mtc1 $at,$f18
/* f07a7e4: 00000000 */ nop
/* f07a7e8: 46122100 */ add.s $f4,$f4,$f18
.L0f07a7ec:
/* f07a7ec: 46044181 */ sub.s $f6,$f8,$f4
/* f07a7f0: e7a60140 */ swc1 $f6,0x140($sp)
.L0f07a7f4:
/* f07a7f4: 27a40118 */ addiu $a0,$sp,0x118
/* f07a7f8: 8fa50124 */ lw $a1,0x124($sp)
/* f07a7fc: 0fc29f66 */ jal bgunPlayPropHitSound
/* f07a800: 2406ffff */ addiu $a2,$zero,-1
/* f07a804: 3c013f00 */ lui $at,0x3f00
/* f07a808: 44815000 */ mtc1 $at,$f10
/* f07a80c: 3c018007 */ lui $at,%hi(var80069954)
/* f07a810: c4309954 */ lwc1 $f16,%lo(var80069954)($at)
/* f07a814: 8fa90124 */ lw $t1,0x124($sp)
/* f07a818: 240c00c8 */ addiu $t4,$zero,0xc8
/* f07a81c: 46105002 */ mul.s $f0,$f10,$f16
/* f07a820: 8d240004 */ lw $a0,0x4($t1)
/* f07a824: afac0014 */ sw $t4,0x14($sp)
/* f07a828: afa00010 */ sw $zero,0x10($sp)
/* f07a82c: 27a6014c */ addiu $a2,$sp,0x14c
/* f07a830: 27a70118 */ addiu $a3,$sp,0x118
/* f07a834: 44050000 */ mfc1 $a1,$f0
/* f07a838: 0fc0d0cc */ jal chrDamageByImpact
/* f07a83c: 00000000 */ nop
/* f07a840: 44809000 */ mtc1 $zero,$f18
/* f07a844: 8fad0194 */ lw $t5,0x194($sp)
/* f07a848: e5b200a0 */ swc1 $f18,0xa0($t5)
.L0f07a84c:
/* f07a84c: 8fa40198 */ lw $a0,0x198($sp)
.L0f07a850:
/* f07a850: 0fc1905e */ jal propSetPerimEnabled
/* f07a854: 24050001 */ addiu $a1,$zero,0x1
/* f07a858: 8fae018c */ lw $t6,0x18c($sp)
/* f07a85c: 8fab0188 */ lw $t3,0x188($sp)
/* f07a860: 8faf0194 */ lw $t7,0x194($sp)
/* f07a864: 15c00003 */ bnez $t6,.L0f07a874
/* f07a868: 27a40168 */ addiu $a0,$sp,0x168
/* f07a86c: 51600009 */ beqzl $t3,.L0f07a894
/* f07a870: 8fb90148 */ lw $t9,0x148($sp)
.L0f07a874:
/* f07a874: 91e200a9 */ lbu $v0,0xa9($t7)
/* f07a878: 240100ff */ addiu $at,$zero,0xff
/* f07a87c: 58400005 */ blezl $v0,.L0f07a894
/* f07a880: 8fb90148 */ lw $t9,0x148($sp)
/* f07a884: 10410002 */ beq $v0,$at,.L0f07a890
/* f07a888: 2458ffff */ addiu $t8,$v0,-1
/* f07a88c: a1f800a9 */ sb $t8,0xa9($t7)
.L0f07a890:
/* f07a890: 8fb90148 */ lw $t9,0x148($sp)
.L0f07a894:
/* f07a894: 27a5013c */ addiu $a1,$sp,0x13c
/* f07a898: 27a60158 */ addiu $a2,$sp,0x158
/* f07a89c: 13200024 */ beqz $t9,.L0f07a930
/* f07a8a0: 27a7012c */ addiu $a3,$sp,0x12c
/* f07a8a4: afa00010 */ sw $zero,0x10($sp)
/* f07a8a8: 0c006052 */ jal portal00018148
/* f07a8ac: afa00014 */ sw $zero,0x14($sp)
/* f07a8b0: 0fc4f92a */ jal chrIsUsingPaintball
/* f07a8b4: 8fa40110 */ lw $a0,0x110($sp)
/* f07a8b8: 1040000b */ beqz $v0,.L0f07a8e8
/* f07a8bc: 8faa0194 */ lw $t2,0x194($sp)
/* f07a8c0: 24080019 */ addiu $t0,$zero,0x19
/* f07a8c4: afa80014 */ sw $t0,0x14($sp)
/* f07a8c8: 87a4012c */ lh $a0,0x12c($sp)
/* f07a8cc: 00002825 */ or $a1,$zero,$zero
/* f07a8d0: 27a6013c */ addiu $a2,$sp,0x13c
/* f07a8d4: 00003825 */ or $a3,$zero,$zero
/* f07a8d8: 0fc4be7c */ jal sparksCreate
/* f07a8dc: afa00010 */ sw $zero,0x10($sp)
/* f07a8e0: 1000000f */ b .L0f07a920
/* f07a8e4: 27a40118 */ addiu $a0,$sp,0x118
.L0f07a8e8:
/* f07a8e8: 85490004 */ lh $t1,0x4($t2)
/* f07a8ec: 24010144 */ addiu $at,$zero,0x144
/* f07a8f0: 87a4012c */ lh $a0,0x12c($sp)
/* f07a8f4: 15210003 */ bne $t1,$at,.L0f07a904
/* f07a8f8: 00002825 */ or $a1,$zero,$zero
/* f07a8fc: 10000002 */ b .L0f07a908
/* f07a900: 24020017 */ addiu $v0,$zero,0x17
.L0f07a904:
/* f07a904: 00001025 */ or $v0,$zero,$zero
.L0f07a908:
/* f07a908: 27a6013c */ addiu $a2,$sp,0x13c
/* f07a90c: 00003825 */ or $a3,$zero,$zero
/* f07a910: afa00010 */ sw $zero,0x10($sp)
/* f07a914: 0fc4be7c */ jal sparksCreate
/* f07a918: afa20014 */ sw $v0,0x14($sp)
/* f07a91c: 27a40118 */ addiu $a0,$sp,0x118
.L0f07a920:
/* f07a920: 27a5013c */ addiu $a1,$sp,0x13c
/* f07a924: 2406ffff */ addiu $a2,$zero,-1
/* f07a928: 0fc2a132 */ jal bgunPlayBgHitSound
/* f07a92c: 27a7012c */ addiu $a3,$sp,0x12c
.L0f07a930:
/* f07a930: 8fac0128 */ lw $t4,0x128($sp)
/* f07a934: c7a8013c */ lwc1 $f8,0x13c($sp)
/* f07a938: c7a40168 */ lwc1 $f4,0x168($sp)
/* f07a93c: 51800097 */ beqzl $t4,.L0f07ab9c
/* f07a940: 8fa80194 */ lw $t0,0x194($sp)
/* f07a944: 46044181 */ sub.s $f6,$f8,$f4
/* f07a948: c7aa0140 */ lwc1 $f10,0x140($sp)
/* f07a94c: c7b0016c */ lwc1 $f16,0x16c($sp)
/* f07a950: c7a40170 */ lwc1 $f4,0x170($sp)
/* f07a954: c7a80144 */ lwc1 $f8,0x144($sp)
/* f07a958: 46105481 */ sub.s $f18,$f10,$f16
/* f07a95c: 8fad0194 */ lw $t5,0x194($sp)
/* f07a960: 46063402 */ mul.s $f16,$f6,$f6
/* f07a964: 46044281 */ sub.s $f10,$f8,$f4
/* f07a968: 8da3009c */ lw $v1,0x9c($t5)
/* f07a96c: 46129202 */ mul.s $f8,$f18,$f18
/* f07a970: e7a60068 */ swc1 $f6,0x68($sp)
/* f07a974: e7aa0070 */ swc1 $f10,0x70($sp)
/* f07a978: c7aa0070 */ lwc1 $f10,0x70($sp)
/* f07a97c: c7a60070 */ lwc1 $f6,0x70($sp)
/* f07a980: e7b2006c */ swc1 $f18,0x6c($sp)
/* f07a984: afa30078 */ sw $v1,0x78($sp)
/* f07a988: 46065482 */ mul.s $f18,$f10,$f6
/* f07a98c: 46088100 */ add.s $f4,$f16,$f8
/* f07a990: 0c012974 */ jal sqrtf
/* f07a994: 46049300 */ add.s $f12,$f18,$f4
/* f07a998: 44808000 */ mtc1 $zero,$f16
/* f07a99c: 8fa30078 */ lw $v1,0x78($sp)
/* f07a9a0: 46000306 */ mov.s $f12,$f0
/* f07a9a4: 4600803c */ c.lt.s $f16,$f0
/* f07a9a8: 3c017f1b */ lui $at,%hi(var7f1aa590)
/* f07a9ac: c7a80168 */ lwc1 $f8,0x168($sp)
/* f07a9b0: 4502007a */ bc1fl .L0f07ab9c
/* f07a9b4: 8fa80194 */ lw $t0,0x194($sp)
/* f07a9b8: c42ea590 */ lwc1 $f14,%lo(var7f1aa590)($at)
/* f07a9bc: e4680004 */ swc1 $f8,0x4($v1)
/* f07a9c0: 3c013f80 */ lui $at,0x3f80
/* f07a9c4: 44814000 */ mtc1 $at,$f8
/* f07a9c8: c7aa016c */ lwc1 $f10,0x16c($sp)
/* f07a9cc: 4600703c */ c.lt.s $f14,$f0
/* f07a9d0: 240f002b */ addiu $t7,$zero,0x2b
/* f07a9d4: 46004083 */ div.s $f2,$f8,$f0
/* f07a9d8: e46a0008 */ swc1 $f10,0x8($v1)
/* f07a9dc: c7a60170 */ lwc1 $f6,0x170($sp)
/* f07a9e0: 2418000c */ addiu $t8,$zero,0xc
/* f07a9e4: e466000c */ swc1 $f6,0xc($v1)
/* f07a9e8: c7b20068 */ lwc1 $f18,0x68($sp)
/* f07a9ec: e4720010 */ swc1 $f18,0x10($v1)
/* f07a9f0: c7a4006c */ lwc1 $f4,0x6c($sp)
/* f07a9f4: c46a0010 */ lwc1 $f10,0x10($v1)
/* f07a9f8: e4640014 */ swc1 $f4,0x14($v1)
/* f07a9fc: c7b00070 */ lwc1 $f16,0x70($sp)
/* f07aa00: c4720014 */ lwc1 $f18,0x14($v1)
/* f07aa04: e4700018 */ swc1 $f16,0x18($v1)
/* f07aa08: c4700018 */ lwc1 $f16,0x18($v1)
/* f07aa0c: 46025182 */ mul.s $f6,$f10,$f2
/* f07aa10: 00000000 */ nop
/* f07aa14: 46029102 */ mul.s $f4,$f18,$f2
/* f07aa18: 00000000 */ nop
/* f07aa1c: 46028202 */ mul.s $f8,$f16,$f2
/* f07aa20: e4660010 */ swc1 $f6,0x10($v1)
/* f07aa24: e4640014 */ swc1 $f4,0x14($v1)
/* f07aa28: 45000002 */ bc1f .L0f07aa34
/* f07aa2c: e4680018 */ swc1 $f8,0x18($v1)
/* f07aa30: 46007306 */ mov.s $f12,$f14
.L0f07aa34:
/* f07aa34: a0600000 */ sb $zero,0x0($v1)
/* f07aa38: 8fae0194 */ lw $t6,0x194($sp)
/* f07aa3c: 24010144 */ addiu $at,$zero,0x144
/* f07aa40: 85cb0004 */ lh $t3,0x4($t6)
/* f07aa44: 55610004 */ bnel $t3,$at,.L0f07aa58
/* f07aa48: a06f0001 */ sb $t7,0x1($v1)
/* f07aa4c: 10000002 */ b .L0f07aa58
/* f07aa50: a0780001 */ sb $t8,0x1($v1)
/* f07aa54: a06f0001 */ sb $t7,0x1($v1)
.L0f07aa58:
/* f07aa58: 3c0143fa */ lui $at,0x43fa
/* f07aa5c: 44810000 */ mtc1 $at,$f0
/* f07aa60: e46c001c */ swc1 $f12,0x1c($v1)
/* f07aa64: 4600603c */ c.lt.s $f12,$f0
/* f07aa68: 00000000 */ nop
/* f07aa6c: 45020003 */ bc1fl .L0f07aa7c
/* f07aa70: 80790001 */ lb $t9,0x1($v1)
/* f07aa74: 46000306 */ mov.s $f12,$f0
/* f07aa78: 80790001 */ lb $t9,0x1($v1)
.L0f07aa7c:
/* f07aa7c: 2401001d */ addiu $at,$zero,0x1d
/* f07aa80: 17210026 */ bne $t9,$at,.L0f07ab1c
/* f07aa84: 3c017f1b */ lui $at,%hi(var7f1aa594)
/* f07aa88: c422a594 */ lwc1 $f2,%lo(var7f1aa594)($at)
/* f07aa8c: 3c013e80 */ lui $at,0x3e80
/* f07aa90: 44815000 */ mtc1 $at,$f10
/* f07aa94: 3c017f1b */ lui $at,%hi(var7f1aa598)
/* f07aa98: 460c5182 */ mul.s $f6,$f10,$f12
/* f07aa9c: e4660020 */ swc1 $f6,0x20($v1)
/* f07aaa0: c432a598 */ lwc1 $f18,%lo(var7f1aa598)($at)
/* f07aaa4: 460c9002 */ mul.s $f0,$f18,$f12
/* f07aaa8: 4600103c */ c.lt.s $f2,$f0
/* f07aaac: e4600024 */ swc1 $f0,0x24($v1)
/* f07aab0: 45020003 */ bc1fl .L0f07aac0
/* f07aab4: afa30078 */ sw $v1,0x78($sp)
/* f07aab8: e4620024 */ swc1 $f2,0x24($v1)
/* f07aabc: afa30078 */ sw $v1,0x78($sp)
.L0f07aac0:
/* f07aac0: 0c004b70 */ jal random
/* f07aac4: e7ac007c */ swc1 $f12,0x7c($sp)
/* f07aac8: 44822000 */ mtc1 $v0,$f4
/* f07aacc: 8fa30078 */ lw $v1,0x78($sp)
/* f07aad0: c7ac007c */ lwc1 $f12,0x7c($sp)
/* f07aad4: 04410005 */ bgez $v0,.L0f07aaec
/* f07aad8: 46802420 */ cvt.s.w $f16,$f4
/* f07aadc: 3c014f80 */ lui $at,0x4f80
/* f07aae0: 44814000 */ mtc1 $at,$f8
/* f07aae4: 00000000 */ nop
/* f07aae8: 46088400 */ add.s $f16,$f16,$f8
.L0f07aaec:
/* f07aaec: 3c012f80 */ lui $at,0x2f80
/* f07aaf0: 44815000 */ mtc1 $at,$f10
/* f07aaf4: 3c017f1b */ lui $at,%hi(var7f1aa59c)
/* f07aaf8: c432a59c */ lwc1 $f18,%lo(var7f1aa59c)($at)
/* f07aafc: 460a8182 */ mul.s $f6,$f16,$f10
/* f07ab00: 3c017f1b */ lui $at,%hi(var7f1aa5a0)
/* f07ab04: c428a5a0 */ lwc1 $f8,%lo(var7f1aa5a0)($at)
/* f07ab08: 46123102 */ mul.s $f4,$f6,$f18
/* f07ab0c: 46044401 */ sub.s $f16,$f8,$f4
/* f07ab10: 460c8282 */ mul.s $f10,$f16,$f12
/* f07ab14: 10000020 */ b .L0f07ab98
/* f07ab18: e46a0028 */ swc1 $f10,0x28($v1)
.L0f07ab1c:
/* f07ab1c: 3c017f1b */ lui $at,%hi(var7f1aa5a4)
/* f07ab20: c422a5a4 */ lwc1 $f2,%lo(var7f1aa5a4)($at)
/* f07ab24: 3c017f1b */ lui $at,%hi(var7f1aa5a8)
/* f07ab28: c426a5a8 */ lwc1 $f6,%lo(var7f1aa5a8)($at)
/* f07ab2c: 460c3002 */ mul.s $f0,$f6,$f12
/* f07ab30: 4600103c */ c.lt.s $f2,$f0
/* f07ab34: e4600020 */ swc1 $f0,0x20($v1)
/* f07ab38: e4600024 */ swc1 $f0,0x24($v1)
/* f07ab3c: 45000002 */ bc1f .L0f07ab48
/* f07ab40: 00000000 */ nop
/* f07ab44: e4620024 */ swc1 $f2,0x24($v1)
.L0f07ab48:
/* f07ab48: 0c004b70 */ jal random
/* f07ab4c: afa30078 */ sw $v1,0x78($sp)
/* f07ab50: 44829000 */ mtc1 $v0,$f18
/* f07ab54: 8fa30078 */ lw $v1,0x78($sp)
/* f07ab58: 04410005 */ bgez $v0,.L0f07ab70
/* f07ab5c: 46809220 */ cvt.s.w $f8,$f18
/* f07ab60: 3c014f80 */ lui $at,0x4f80
/* f07ab64: 44812000 */ mtc1 $at,$f4
/* f07ab68: 00000000 */ nop
/* f07ab6c: 46044200 */ add.s $f8,$f8,$f4
.L0f07ab70:
/* f07ab70: 3c012f80 */ lui $at,0x2f80
/* f07ab74: 44818000 */ mtc1 $at,$f16
/* f07ab78: 3c013f80 */ lui $at,0x3f80
/* f07ab7c: 44813000 */ mtc1 $at,$f6
/* f07ab80: 46104002 */ mul.s $f0,$f8,$f16
/* f07ab84: c4640020 */ lwc1 $f4,0x20($v1)
/* f07ab88: 46000280 */ add.s $f10,$f0,$f0
/* f07ab8c: 46065481 */ sub.s $f18,$f10,$f6
/* f07ab90: 46049202 */ mul.s $f8,$f18,$f4
/* f07ab94: e4680028 */ swc1 $f8,0x28($v1)
.L0f07ab98:
/* f07ab98: 8fa80194 */ lw $t0,0x194($sp)
.L0f07ab9c:
/* f07ab9c: 3c09800a */ lui $t1,%hi(g_Vars+0x8)
/* f07aba0: 8d299fc8 */ lw $t1,%lo(g_Vars+0x8)($t1)
/* f07aba4: 8d0a0098 */ lw $t2,0x98($t0)
/* f07aba8: 240c0002 */ addiu $t4,$zero,0x2
/* f07abac: 24050001 */ addiu $a1,$zero,0x1
/* f07abb0: 0149082a */ slt $at,$t2,$t1
/* f07abb4: 1020002d */ beqz $at,.L0f07ac6c
/* f07abb8: 3406ffff */ dli $a2,0xffff
/* f07abbc: afac0064 */ sw $t4,0x64($sp)
/* f07abc0: 0fc249af */ jal func0f0926bc
/* f07abc4: 8fa40198 */ lw $a0,0x198($sp)
/* f07abc8: 8fad0174 */ lw $t5,0x174($sp)
/* f07abcc: 8fae0194 */ lw $t6,0x194($sp)
/* f07abd0: 00002025 */ or $a0,$zero,$zero
/* f07abd4: 15a0001f */ bnez $t5,.L0f07ac54
/* f07abd8: 2407ffff */ addiu $a3,$zero,-1
/* f07abdc: 85c30004 */ lh $v1,0x4($t6)
/* f07abe0: 24010144 */ addiu $at,$zero,0x144
/* f07abe4: 3402806f */ dli $v0,0x806f
/* f07abe8: 14610002 */ bne $v1,$at,.L0f07abf4
/* f07abec: 240fffff */ addiu $t7,$zero,-1
/* f07abf0: 34028040 */ dli $v0,0x8040
.L0f07abf4:
/* f07abf4: 24010157 */ addiu $at,$zero,0x157
/* f07abf8: 14610004 */ bne $v1,$at,.L0f07ac0c
/* f07abfc: 2419ffff */ addiu $t9,$zero,-1
/* f07ac00: 240b0004 */ addiu $t3,$zero,0x4
/* f07ac04: 34028044 */ dli $v0,0x8044
/* f07ac08: afab0064 */ sw $t3,0x64($sp)
.L0f07ac0c:
/* f07ac0c: 3c01bf80 */ lui $at,0xbf80
/* f07ac10: 44810000 */ mtc1 $at,$f0
/* f07ac14: 00023400 */ sll $a2,$v0,0x10
/* f07ac18: 0006c403 */ sra $t8,$a2,0x10
/* f07ac1c: 03003025 */ or $a2,$t8,$zero
/* f07ac20: 8fa50198 */ lw $a1,0x198($sp)
/* f07ac24: afaf0010 */ sw $t7,0x10($sp)
/* f07ac28: afa00014 */ sw $zero,0x14($sp)
/* f07ac2c: afa00018 */ sw $zero,0x18($sp)
/* f07ac30: afa0001c */ sw $zero,0x1c($sp)
/* f07ac34: afa00020 */ sw $zero,0x20($sp)
/* f07ac38: afa00028 */ sw $zero,0x28($sp)
/* f07ac3c: afb9002c */ sw $t9,0x2c($sp)
/* f07ac40: e7a00024 */ swc1 $f0,0x24($sp)
/* f07ac44: e7a00030 */ swc1 $f0,0x30($sp)
/* f07ac48: e7a00034 */ swc1 $f0,0x34($sp)
/* f07ac4c: 0fc24e7e */ jal propsnd0f0939f8
/* f07ac50: e7a00038 */ swc1 $f0,0x38($sp)
.L0f07ac54:
/* f07ac54: 3c0a800a */ lui $t2,%hi(g_Vars+0x8)
/* f07ac58: 8d4a9fc8 */ lw $t2,%lo(g_Vars+0x8)($t2)
/* f07ac5c: 8fa80064 */ lw $t0,0x64($sp)
/* f07ac60: 8fac0194 */ lw $t4,0x194($sp)
/* f07ac64: 010a4821 */ addu $t1,$t0,$t2
/* f07ac68: ad890098 */ sw $t1,0x98($t4)
.L0f07ac6c:
/* f07ac6c: 8fad0184 */ lw $t5,0x184($sp)
.L0f07ac70:
/* f07ac70: 24050005 */ addiu $a1,$zero,0x5
/* f07ac74: 0c006a47 */ jal modelGetPart
/* f07ac78: 8da40008 */ lw $a0,0x8($t5)
/* f07ac7c: 10400005 */ beqz $v0,.L0f07ac94
/* f07ac80: 00402825 */ or $a1,$v0,$zero
/* f07ac84: 0c006a87 */ jal modelGetNodeRwData
/* f07ac88: 8fa40184 */ lw $a0,0x184($sp)
/* f07ac8c: 8fae018c */ lw $t6,0x18c($sp)
/* f07ac90: a44e0000 */ sh $t6,0x0($v0)
.L0f07ac94:
/* f07ac94: 8fab0184 */ lw $t3,0x184($sp)
/* f07ac98: 24050007 */ addiu $a1,$zero,0x7
/* f07ac9c: 0c006a47 */ jal modelGetPart
/* f07aca0: 8d640008 */ lw $a0,0x8($t3)
/* f07aca4: 10400005 */ beqz $v0,.L0f07acbc
/* f07aca8: 00402825 */ or $a1,$v0,$zero
/* f07acac: 0c006a87 */ jal modelGetNodeRwData
/* f07acb0: 8fa40184 */ lw $a0,0x184($sp)
/* f07acb4: 8fb80188 */ lw $t8,0x188($sp)
/* f07acb8: a4580000 */ sh $t8,0x0($v0)
.L0f07acbc:
/* f07acbc: 8fbf0044 */ lw $ra,0x44($sp)
/* f07acc0: 27bd0198 */ addiu $sp,$sp,0x198
/* f07acc4: 03e00008 */ jr $ra
/* f07acc8: 00000000 */ nop
);
#else
GLOBAL_ASM(
glabel func0f079f1c
.late_rodata
glabel var7f1aa58c
.word 0x3e23d70a
glabel var7f1aa590
.word 0x461c4000
glabel var7f1aa594
.word 0x453b8000
glabel var7f1aa598
.word 0x3f19999a
glabel var7f1aa59c
.word 0x3e99999a
glabel var7f1aa5a0
.word 0xbdcccccd
glabel var7f1aa5a4
.word 0x453b8000
glabel var7f1aa5a8
.word 0x3e4ccccd
.text
/* f079f1c: 27bdfe68 */ addiu $sp,$sp,-408
/* f079f20: afbf0044 */ sw $ra,0x44($sp)
/* f079f24: 0fc5b364 */ jal lvIsPaused
/* f079f28: afa40198 */ sw $a0,0x198($sp)
/* f079f2c: 14400363 */ bnez $v0,.L0f07acbc
/* f079f30: 8fae0198 */ lw $t6,0x198($sp)
/* f079f34: 8dc20004 */ lw $v0,0x4($t6)
/* f079f38: afa0018c */ sw $zero,0x18c($sp)
/* f079f3c: afa00188 */ sw $zero,0x188($sp)
/* f079f40: 8c4f0018 */ lw $t7,0x18($v0)
/* f079f44: afa00174 */ sw $zero,0x174($sp)
/* f079f48: afaf0184 */ sw $t7,0x184($sp)
/* f079f4c: 8058005e */ lb $t8,0x5e($v0)
/* f079f50: 53000347 */ beqzl $t8,.L0f07ac70
/* f079f54: 8fad0184 */ lw $t5,0x184($sp)
/* f079f58: 8c590008 */ lw $t9,0x8($v0)
/* f079f5c: 001940c0 */ sll $t0,$t9,0x3
/* f079f60: 05020343 */ bltzl $t0,.L0f07ac70
/* f079f64: 8fad0184 */ lw $t5,0x184($sp)
/* f079f68: 9049005f */ lbu $t1,0x5f($v0)
/* f079f6c: 24050005 */ addiu $a1,$zero,0x5
/* f079f70: 252b0001 */ addiu $t3,$t1,0x1
/* f079f74: a04b005f */ sb $t3,0x5f($v0)
/* f079f78: 8fae0184 */ lw $t6,0x184($sp)
/* f079f7c: 316c0001 */ andi $t4,$t3,0x1
/* f079f80: 2d8d0001 */ sltiu $t5,$t4,0x1
/* f079f84: afad018c */ sw $t5,0x18c($sp)
/* f079f88: 8dc40008 */ lw $a0,0x8($t6)
/* f079f8c: afa20194 */ sw $v0,0x194($sp)
/* f079f90: 0c006a47 */ jal modelGetPart
/* f079f94: afa20190 */ sw $v0,0x190($sp)
/* f079f98: 1040000b */ beqz $v0,.L0f079fc8
/* f079f9c: 8fa30190 */ lw $v1,0x190($sp)
/* f079fa0: 8faf0194 */ lw $t7,0x194($sp)
/* f079fa4: 91f8005f */ lbu $t8,0x5f($t7)
/* f079fa8: 07010004 */ bgez $t8,.L0f079fbc
/* f079fac: 33190001 */ andi $t9,$t8,0x1
/* f079fb0: 13200002 */ beqz $t9,.L0f079fbc
/* f079fb4: 00000000 */ nop
/* f079fb8: 2739fffe */ addiu $t9,$t9,-2
.L0f079fbc:
/* f079fbc: 3b280001 */ xori $t0,$t9,0x1
/* f079fc0: 2d080001 */ sltiu $t0,$t0,0x1
/* f079fc4: afa80188 */ sw $t0,0x188($sp)
.L0f079fc8:
/* f079fc8: 8fa9018c */ lw $t1,0x18c($sp)
/* f079fcc: 8faa0188 */ lw $t2,0x188($sp)
/* f079fd0: 55200004 */ bnezl $t1,.L0f079fe4
/* f079fd4: 8fab0194 */ lw $t3,0x194($sp)
/* f079fd8: 514002f0 */ beqzl $t2,.L0f07ab9c
/* f079fdc: 8fa80194 */ lw $t0,0x194($sp)
/* f079fe0: 8fab0194 */ lw $t3,0x194($sp)
.L0f079fe4:
/* f079fe4: afa00148 */ sw $zero,0x148($sp)
/* f079fe8: 3c188007 */ lui $t8,%hi(var80069cb8)
/* f079fec: 916c005f */ lbu $t4,0x5f($t3)
/* f079ff0: 8f189cb8 */ lw $t8,%lo(var80069cb8)($t8)
/* f079ff4: 3c09800a */ lui $t1,%hi(g_Vars+0x318)
/* f079ff8: 318d0003 */ andi $t5,$t4,0x3
/* f079ffc: 2dae0001 */ sltiu $t6,$t5,0x1
/* f07a000: afae0128 */ sw $t6,0x128($sp)
/* f07a004: 8d6f00a4 */ lw $t7,0xa4($t3)
/* f07a008: afa0011c */ sw $zero,0x11c($sp)
/* f07a00c: afa00114 */ sw $zero,0x114($sp)
/* f07a010: afa00110 */ sw $zero,0x110($sp)
/* f07a014: afb80118 */ sw $t8,0x118($sp)
/* f07a018: afaf0124 */ sw $t7,0x124($sp)
/* f07a01c: 8c640040 */ lw $a0,0x40($v1)
/* f07a020: 8d29a2d8 */ lw $t1,%lo(g_Vars+0x318)($t1)
/* f07a024: 3c01f000 */ lui $at,0xf000
/* f07a028: 0081c824 */ and $t9,$a0,$at
/* f07a02c: 11200007 */ beqz $t1,.L0f07a04c
/* f07a030: 00192702 */ srl $a0,$t9,0x1c
/* f07a034: 0fc63410 */ jal mpGetChrFromPlayerIndex
/* f07a038: 00000000 */ nop
/* f07a03c: 10400003 */ beqz $v0,.L0f07a04c
/* f07a040: afa20110 */ sw $v0,0x110($sp)
/* f07a044: 8c4a001c */ lw $t2,0x1c($v0)
/* f07a048: afaa0114 */ sw $t2,0x114($sp)
.L0f07a04c:
/* f07a04c: 8fac0194 */ lw $t4,0x194($sp)
/* f07a050: 918d005f */ lbu $t5,0x5f($t4)
/* f07a054: 31ae0007 */ andi $t6,$t5,0x7
/* f07a058: 55c00008 */ bnezl $t6,.L0f07a07c
/* f07a05c: 8faf0184 */ lw $t7,0x184($sp)
/* f07a060: 8fab0184 */ lw $t3,0x184($sp)
/* f07a064: 24050007 */ addiu $a1,$zero,0x7
/* f07a068: 0c006a47 */ jal modelGetPart
/* f07a06c: 8d640008 */ lw $a0,0x8($t3)
/* f07a070: 14400006 */ bnez $v0,.L0f07a08c
/* f07a074: 00403825 */ or $a3,$v0,$zero
/* f07a078: 8faf0184 */ lw $t7,0x184($sp)
.L0f07a07c:
/* f07a07c: 24050005 */ addiu $a1,$zero,0x5
/* f07a080: 0c006a47 */ jal modelGetPart
/* f07a084: 8de40008 */ lw $a0,0x8($t7)
/* f07a088: 00403825 */ or $a3,$v0,$zero
.L0f07a08c:
/* f07a08c: 54400009 */ bnezl $v0,.L0f07a0b4
/* f07a090: 8fa40198 */ lw $a0,0x198($sp)
/* f07a094: 8fb80184 */ lw $t8,0x184($sp)
/* f07a098: 24050003 */ addiu $a1,$zero,0x3
/* f07a09c: 8f040008 */ lw $a0,0x8($t8)
/* f07a0a0: 0c006a47 */ jal modelGetPart
/* f07a0a4: afa70120 */ sw $a3,0x120($sp)
/* f07a0a8: 8fa70120 */ lw $a3,0x120($sp)
/* f07a0ac: afa2011c */ sw $v0,0x11c($sp)
/* f07a0b0: 8fa40198 */ lw $a0,0x198($sp)
.L0f07a0b4:
/* f07a0b4: 00002825 */ or $a1,$zero,$zero
/* f07a0b8: 0fc1905e */ jal propSetPerimEnabled
/* f07a0bc: afa70120 */ sw $a3,0x120($sp)
/* f07a0c0: 8fa20198 */ lw $v0,0x198($sp)
/* f07a0c4: 8fa70120 */ lw $a3,0x120($sp)
/* f07a0c8: 90590001 */ lbu $t9,0x1($v0)
/* f07a0cc: 33280002 */ andi $t0,$t9,0x2
/* f07a0d0: 51000042 */ beqzl $t0,.L0f07a1dc
/* f07a0d4: c44a0008 */ lwc1 $f10,0x8($v0)
/* f07a0d8: 14e00003 */ bnez $a3,.L0f07a0e8
/* f07a0dc: 8fa9011c */ lw $t1,0x11c($sp)
/* f07a0e0: 5120003e */ beqzl $t1,.L0f07a1dc
/* f07a0e4: c44a0008 */ lwc1 $f10,0x8($v0)
.L0f07a0e8:
/* f07a0e8: 10e00010 */ beqz $a3,.L0f07a12c
/* f07a0ec: 8fa40184 */ lw $a0,0x184($sp)
/* f07a0f0: 8fa40184 */ lw $a0,0x184($sp)
/* f07a0f4: 00e02825 */ or $a1,$a3,$zero
/* f07a0f8: 00003025 */ or $a2,$zero,$zero
/* f07a0fc: 0c006973 */ jal model0001a5cc
/* f07a100: afa70120 */ sw $a3,0x120($sp)
/* f07a104: 8fa70120 */ lw $a3,0x120($sp)
/* f07a108: 00402825 */ or $a1,$v0,$zero
/* f07a10c: 8ce30004 */ lw $v1,0x4($a3)
/* f07a110: c4640000 */ lwc1 $f4,0x0($v1)
/* f07a114: e7a40168 */ swc1 $f4,0x168($sp)
/* f07a118: c4660004 */ lwc1 $f6,0x4($v1)
/* f07a11c: e7a6016c */ swc1 $f6,0x16c($sp)
/* f07a120: c4680008 */ lwc1 $f8,0x8($v1)
/* f07a124: 1000000b */ b .L0f07a154
/* f07a128: e7a80170 */ swc1 $f8,0x170($sp)
.L0f07a12c:
/* f07a12c: 8fa5011c */ lw $a1,0x11c($sp)
/* f07a130: 0c006973 */ jal model0001a5cc
/* f07a134: 00003025 */ or $a2,$zero,$zero
/* f07a138: 44805000 */ mtc1 $zero,$f10
/* f07a13c: 44808000 */ mtc1 $zero,$f16
/* f07a140: 44809000 */ mtc1 $zero,$f18
/* f07a144: 00402825 */ or $a1,$v0,$zero
/* f07a148: e7aa0168 */ swc1 $f10,0x168($sp)
/* f07a14c: e7b0016c */ swc1 $f16,0x16c($sp)
/* f07a150: e7b20170 */ swc1 $f18,0x170($sp)
.L0f07a154:
/* f07a154: 0fc2d5de */ jal camGetProjectionMtxF
/* f07a158: afa50108 */ sw $a1,0x108($sp)
/* f07a15c: 8fa50108 */ lw $a1,0x108($sp)
/* f07a160: 00402025 */ or $a0,$v0,$zero
/* f07a164: 0c0056f9 */ jal mtx00015be4
/* f07a168: 27a600c8 */ addiu $a2,$sp,0xc8
/* f07a16c: 27a400c8 */ addiu $a0,$sp,0xc8
/* f07a170: 0c0056d9 */ jal mtx4TransformVecInPlace
/* f07a174: 27a50168 */ addiu $a1,$sp,0x168
/* f07a178: 8fa20198 */ lw $v0,0x198($sp)
/* f07a17c: 240a0020 */ addiu $t2,$zero,0x20
/* f07a180: 240c0010 */ addiu $t4,$zero,0x10
/* f07a184: 24450028 */ addiu $a1,$v0,0x28
/* f07a188: afa5004c */ sw $a1,0x4c($sp)
/* f07a18c: afac0014 */ sw $t4,0x14($sp)
/* f07a190: afaa0010 */ sw $t2,0x10($sp)
/* f07a194: 27a60168 */ addiu $a2,$sp,0x168
/* f07a198: 27a70158 */ addiu $a3,$sp,0x158
/* f07a19c: 0c00b78d */ jal cd0002de34
/* f07a1a0: 24440008 */ addiu $a0,$v0,0x8
/* f07a1a4: 14400015 */ bnez $v0,.L0f07a1fc
/* f07a1a8: 8fad0198 */ lw $t5,0x198($sp)
/* f07a1ac: c5a40008 */ lwc1 $f4,0x8($t5)
/* f07a1b0: 8fa4004c */ lw $a0,0x4c($sp)
/* f07a1b4: 27a50158 */ addiu $a1,$sp,0x158
/* f07a1b8: e7a40168 */ swc1 $f4,0x168($sp)
/* f07a1bc: c5a6000c */ lwc1 $f6,0xc($t5)
/* f07a1c0: e7a6016c */ swc1 $f6,0x16c($sp)
/* f07a1c4: c5a80010 */ lwc1 $f8,0x10($t5)
/* f07a1c8: 0fc195e9 */ jal roomsCopy
/* f07a1cc: e7a80170 */ swc1 $f8,0x170($sp)
/* f07a1d0: 1000000b */ b .L0f07a200
/* f07a1d4: 8fae0194 */ lw $t6,0x194($sp)
/* f07a1d8: c44a0008 */ lwc1 $f10,0x8($v0)
.L0f07a1dc:
/* f07a1dc: 24440028 */ addiu $a0,$v0,0x28
/* f07a1e0: 27a50158 */ addiu $a1,$sp,0x158
/* f07a1e4: e7aa0168 */ swc1 $f10,0x168($sp)
/* f07a1e8: c450000c */ lwc1 $f16,0xc($v0)
/* f07a1ec: e7b0016c */ swc1 $f16,0x16c($sp)
/* f07a1f0: c4520010 */ lwc1 $f18,0x10($v0)
/* f07a1f4: 0fc195e9 */ jal roomsCopy
/* f07a1f8: e7b20170 */ swc1 $f18,0x170($sp)
.L0f07a1fc:
/* f07a1fc: 8fae0194 */ lw $t6,0x194($sp)
.L0f07a200:
/* f07a200: 0c0068f4 */ jal cosf
/* f07a204: c5cc0078 */ lwc1 $f12,0x78($t6)
/* f07a208: 8fab0194 */ lw $t3,0x194($sp)
/* f07a20c: e7a00050 */ swc1 $f0,0x50($sp)
/* f07a210: 0c0068f7 */ jal sinf
/* f07a214: c56c006c */ lwc1 $f12,0x6c($t3)
/* f07a218: c7a40050 */ lwc1 $f4,0x50($sp)
/* f07a21c: 8faf0194 */ lw $t7,0x194($sp)
/* f07a220: 46040182 */ mul.s $f6,$f0,$f4
/* f07a224: e7a6014c */ swc1 $f6,0x14c($sp)
/* f07a228: 0c0068f7 */ jal sinf
/* f07a22c: c5ec0078 */ lwc1 $f12,0x78($t7)
/* f07a230: 8fb80194 */ lw $t8,0x194($sp)
/* f07a234: e7a00150 */ swc1 $f0,0x150($sp)
/* f07a238: 0c0068f4 */ jal cosf
/* f07a23c: c70c0078 */ lwc1 $f12,0x78($t8)
/* f07a240: 8fb90194 */ lw $t9,0x194($sp)
/* f07a244: e7a00050 */ swc1 $f0,0x50($sp)
/* f07a248: 0c0068f4 */ jal cosf
/* f07a24c: c72c006c */ lwc1 $f12,0x6c($t9)
/* f07a250: c7a80050 */ lwc1 $f8,0x50($sp)
/* f07a254: 3c014780 */ lui $at,0x4780
/* f07a258: 44811000 */ mtc1 $at,$f2
/* f07a25c: 46080302 */ mul.s $f12,$f0,$f8
/* f07a260: c7aa014c */ lwc1 $f10,0x14c($sp)
/* f07a264: c7a60150 */ lwc1 $f6,0x150($sp)
/* f07a268: c7b20168 */ lwc1 $f18,0x168($sp)
/* f07a26c: 46025402 */ mul.s $f16,$f10,$f2
/* f07a270: c7aa016c */ lwc1 $f10,0x16c($sp)
/* f07a274: 3c03800a */ lui $v1,%hi(g_Vars)
/* f07a278: 46023202 */ mul.s $f8,$f6,$f2
/* f07a27c: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
/* f07a280: 8c680318 */ lw $t0,0x318($v1)
/* f07a284: e7ac0154 */ swc1 $f12,0x154($sp)
/* f07a288: 8fa20124 */ lw $v0,0x124($sp)
/* f07a28c: 46128100 */ add.s $f4,$f16,$f18
/* f07a290: 46026482 */ mul.s $f18,$f12,$f2
/* f07a294: 27a40168 */ addiu $a0,$sp,0x168
/* f07a298: 460a4400 */ add.s $f16,$f8,$f10
/* f07a29c: e7a4013c */ swc1 $f4,0x13c($sp)
/* f07a2a0: c7a40170 */ lwc1 $f4,0x170($sp)
/* f07a2a4: 27a50158 */ addiu $a1,$sp,0x158
/* f07a2a8: e7b00140 */ swc1 $f16,0x140($sp)
/* f07a2ac: 46049180 */ add.s $f6,$f18,$f4
/* f07a2b0: 27a6013c */ addiu $a2,$sp,0x13c
/* f07a2b4: 2407003f */ addiu $a3,$zero,0x3f
/* f07a2b8: 1500000f */ bnez $t0,.L0f07a2f8
/* f07a2bc: e7a60144 */ swc1 $f6,0x144($sp)
/* f07a2c0: 50400006 */ beqzl $v0,.L0f07a2dc
/* f07a2c4: 8c6a029c */ lw $t2,0x29c($v1)
/* f07a2c8: 90490000 */ lbu $t1,0x0($v0)
/* f07a2cc: 24010003 */ addiu $at,$zero,0x3
/* f07a2d0: 5121000a */ beql $t1,$at,.L0f07a2fc
/* f07a2d4: 240e0010 */ addiu $t6,$zero,0x10
/* f07a2d8: 8c6a029c */ lw $t2,0x29c($v1)
.L0f07a2dc:
/* f07a2dc: 0540007f */ bltz $t2,.L0f07a4dc
/* f07a2e0: 00000000 */ nop
/* f07a2e4: 1040007d */ beqz $v0,.L0f07a4dc
/* f07a2e8: 00000000 */ nop
/* f07a2ec: 8c6c02a8 */ lw $t4,0x2a8($v1)
/* f07a2f0: 8d8d00bc */ lw $t5,0xbc($t4)
/* f07a2f4: 144d0079 */ bne $v0,$t5,.L0f07a4dc
.L0f07a2f8:
/* f07a2f8: 240e0010 */ addiu $t6,$zero,0x10
.L0f07a2fc:
/* f07a2fc: 0c00b764 */ jal cdTestAToB4
/* f07a300: afae0010 */ sw $t6,0x10($sp)
/* f07a304: 14400151 */ bnez $v0,.L0f07a84c
/* f07a308: 27a4013c */ addiu $a0,$sp,0x13c
/* f07a30c: 3c067f1b */ lui $a2,%hi(var7f1aa020)
/* f07a310: 24c6a020 */ addiu $a2,$a2,%lo(var7f1aa020)
/* f07a314: 0c0093af */ jal cdGetPos
/* f07a318: 24052cc2 */ addiu $a1,$zero,0x2c20
/* f07a31c: 0c0093ac */ jal cdGetObstacle
/* f07a320: 00000000 */ nop
/* f07a324: 1040006a */ beqz $v0,.L0f07a4d0
/* f07a328: afa20178 */ sw $v0,0x178($sp)
/* f07a32c: 90430000 */ lbu $v1,0x0($v0)
/* f07a330: 24010003 */ addiu $at,$zero,0x3
/* f07a334: 3c0b800a */ lui $t3,%hi(g_Vars+0x318)
/* f07a338: 10610003 */ beq $v1,$at,.L0f07a348
/* f07a33c: 24010006 */ addiu $at,$zero,0x6
/* f07a340: 54610064 */ bnel $v1,$at,.L0f07a4d4
/* f07a344: 24080001 */ addiu $t0,$zero,0x1
.L0f07a348:
/* f07a348: 8d6ba2d8 */ lw $t3,%lo(g_Vars+0x318)($t3)
/* f07a34c: 8faf0124 */ lw $t7,0x124($sp)
/* f07a350: 2418ffff */ addiu $t8,$zero,-1
/* f07a354: 15600003 */ bnez $t3,.L0f07a364
/* f07a358: 241900c8 */ addiu $t9,$zero,0xc8
/* f07a35c: 55e2005d */ bnel $t7,$v0,.L0f07a4d4
/* f07a360: 24080001 */ addiu $t0,$zero,0x1
.L0f07a364:
/* f07a364: afa000c0 */ sw $zero,0xc0($sp)
/* f07a368: afa000bc */ sw $zero,0xbc($sp)
/* f07a36c: afb800b8 */ sw $t8,0xb8($sp)
/* f07a370: afb900b4 */ sw $t9,0xb4($sp)
/* f07a374: 0fc2c74a */ jal gsetGetDamage
/* f07a378: 27a40118 */ addiu $a0,$sp,0x118
/* f07a37c: 8fa80178 */ lw $t0,0x178($sp)
/* f07a380: 3c09800a */ lui $t1,%hi(g_Vars+0x318)
/* f07a384: 8d29a2d8 */ lw $t1,%lo(g_Vars+0x318)($t1)
/* f07a388: e7a000b0 */ swc1 $f0,0xb0($sp)
/* f07a38c: 8d040004 */ lw $a0,0x4($t0)
/* f07a390: 3c013f00 */ lui $at,0x3f00
/* f07a394: 11200005 */ beqz $t1,.L0f07a3ac
/* f07a398: afa400ac */ sw $a0,0xac($sp)
/* f07a39c: 44814000 */ mtc1 $at,$f8
/* f07a3a0: 00000000 */ nop
/* f07a3a4: 46080282 */ mul.s $f10,$f0,$f8
/* f07a3a8: e7aa00b0 */ swc1 $f10,0xb0($sp)
.L0f07a3ac:
/* f07a3ac: 8faa0114 */ lw $t2,0x114($sp)
/* f07a3b0: 8fac0178 */ lw $t4,0x178($sp)
/* f07a3b4: 8fad0110 */ lw $t5,0x110($sp)
/* f07a3b8: 514c0007 */ beql $t2,$t4,.L0f07a3d8
/* f07a3bc: 240e0001 */ addiu $t6,$zero,0x1
/* f07a3c0: 11a00009 */ beqz $t5,.L0f07a3e8
/* f07a3c4: 01a02825 */ or $a1,$t5,$zero
/* f07a3c8: 0fc12aa3 */ jal chrCompareTeams
/* f07a3cc: 24060001 */ addiu $a2,$zero,0x1
/* f07a3d0: 10400005 */ beqz $v0,.L0f07a3e8
/* f07a3d4: 240e0001 */ addiu $t6,$zero,0x1
.L0f07a3d8:
/* f07a3d8: afa00128 */ sw $zero,0x128($sp)
/* f07a3dc: afa0018c */ sw $zero,0x18c($sp)
/* f07a3e0: afa00188 */ sw $zero,0x188($sp)
/* f07a3e4: afae0174 */ sw $t6,0x174($sp)
.L0f07a3e8:
/* f07a3e8: 8fab018c */ lw $t3,0x18c($sp)
/* f07a3ec: 8faf0188 */ lw $t7,0x188($sp)
/* f07a3f0: 27a40118 */ addiu $a0,$sp,0x118
/* f07a3f4: 15600003 */ bnez $t3,.L0f07a404
/* f07a3f8: 8fa50178 */ lw $a1,0x178($sp)
/* f07a3fc: 51e00114 */ beqzl $t7,.L0f07a850
/* f07a400: 8fa40198 */ lw $a0,0x198($sp)
.L0f07a404:
/* f07a404: 0fc29f66 */ jal bgunPlayPropHitSound
/* f07a408: 2406ffff */ addiu $a2,$zero,-1
/* f07a40c: 8fa400ac */ lw $a0,0xac($sp)
/* f07a410: 8c980020 */ lw $t8,0x20($a0)
/* f07a414: 53000012 */ beqzl $t8,.L0f07a460
/* f07a418: 8fac0110 */ lw $t4,0x110($sp)
/* f07a41c: 0fc0cfe8 */ jal chrGetShield
/* f07a420: 00000000 */ nop
/* f07a424: 44808000 */ mtc1 $zero,$f16
/* f07a428: 8fa400ac */ lw $a0,0xac($sp)
/* f07a42c: 27a5013c */ addiu $a1,$sp,0x13c
/* f07a430: 4600803c */ c.lt.s $f16,$f0
/* f07a434: 27a6014c */ addiu $a2,$sp,0x14c
/* f07a438: 27a700c0 */ addiu $a3,$sp,0xc0
/* f07a43c: 27b900b4 */ addiu $t9,$sp,0xb4
/* f07a440: 45000006 */ bc1f .L0f07a45c
/* f07a444: 27a800bc */ addiu $t0,$sp,0xbc
/* f07a448: 27a900b8 */ addiu $t1,$sp,0xb8
/* f07a44c: afa90018 */ sw $t1,0x18($sp)
/* f07a450: afb90010 */ sw $t9,0x10($sp)
/* f07a454: 0fc0ffcb */ jal chrCalculateShieldHit
/* f07a458: afa80014 */ sw $t0,0x14($sp)
.L0f07a45c:
/* f07a45c: 8fac0110 */ lw $t4,0x110($sp)
.L0f07a460:
/* f07a460: 27aa014c */ addiu $t2,$sp,0x14c
/* f07a464: 8fa400ac */ lw $a0,0xac($sp)
/* f07a468: afaa0010 */ sw $t2,0x10($sp)
/* f07a46c: 8fa50178 */ lw $a1,0x178($sp)
/* f07a470: 8fa600b4 */ lw $a2,0xb4($sp)
/* f07a474: 27a7013c */ addiu $a3,$sp,0x13c
/* f07a478: 0fc097a9 */ jal chrEmitSparks
/* f07a47c: afac0014 */ sw $t4,0x14($sp)
/* f07a480: 8fad0114 */ lw $t5,0x114($sp)
/* f07a484: 8fab0178 */ lw $t3,0x178($sp)
/* f07a488: 8faf00c0 */ lw $t7,0xc0($sp)
/* f07a48c: 8fb800bc */ lw $t8,0xbc($sp)
/* f07a490: 8fb900b8 */ lw $t9,0xb8($sp)
/* f07a494: 240e00c8 */ addiu $t6,$zero,0xc8
/* f07a498: afae0014 */ sw $t6,0x14($sp)
/* f07a49c: 8fa400ac */ lw $a0,0xac($sp)
/* f07a4a0: 8fa500b0 */ lw $a1,0xb0($sp)
/* f07a4a4: 27a6014c */ addiu $a2,$sp,0x14c
/* f07a4a8: 27a70118 */ addiu $a3,$sp,0x118
/* f07a4ac: afa00028 */ sw $zero,0x28($sp)
/* f07a4b0: afad0010 */ sw $t5,0x10($sp)
/* f07a4b4: afab0018 */ sw $t3,0x18($sp)
/* f07a4b8: afaf001c */ sw $t7,0x1c($sp)
/* f07a4bc: afb80020 */ sw $t8,0x20($sp)
/* f07a4c0: 0fc0d077 */ jal func0f0341dc
/* f07a4c4: afb90024 */ sw $t9,0x24($sp)
/* f07a4c8: 100000e1 */ b .L0f07a850
/* f07a4cc: 8fa40198 */ lw $a0,0x198($sp)
.L0f07a4d0:
/* f07a4d0: 24080001 */ addiu $t0,$zero,0x1
.L0f07a4d4:
/* f07a4d4: 100000dd */ b .L0f07a84c
/* f07a4d8: afa80148 */ sw $t0,0x148($sp)
.L0f07a4dc:
/* f07a4dc: 10400045 */ beqz $v0,.L0f07a5f4
/* f07a4e0: 27a40168 */ addiu $a0,$sp,0x168
/* f07a4e4: 90490000 */ lbu $t1,0x0($v0)
/* f07a4e8: 24010001 */ addiu $at,$zero,0x1
/* f07a4ec: 27a50158 */ addiu $a1,$sp,0x158
/* f07a4f0: 15210040 */ bne $t1,$at,.L0f07a5f4
/* f07a4f4: 27a6013c */ addiu $a2,$sp,0x13c
/* f07a4f8: 240a0010 */ addiu $t2,$zero,0x10
/* f07a4fc: afa000a8 */ sw $zero,0xa8($sp)
/* f07a500: afaa0010 */ sw $t2,0x10($sp)
/* f07a504: 27a40168 */ addiu $a0,$sp,0x168
/* f07a508: 0c00b764 */ jal cdTestAToB4
/* f07a50c: 2407003b */ addiu $a3,$zero,0x3b
/* f07a510: 1440000a */ bnez $v0,.L0f07a53c
/* f07a514: 27a4013c */ addiu $a0,$sp,0x13c
/* f07a518: 3c067f1b */ lui $a2,%hi(var7f1aa02c)
/* f07a51c: 24c6a02c */ addiu $a2,$a2,%lo(var7f1aa02c)
/* f07a520: 0c0093af */ jal cdGetPos
/* f07a524: 24052cf9 */ addiu $a1,$zero,0x2c57
/* f07a528: 0c0093ac */ jal cdGetObstacle
/* f07a52c: 00000000 */ nop
/* f07a530: 240c0001 */ addiu $t4,$zero,0x1
/* f07a534: afac0148 */ sw $t4,0x148($sp)
/* f07a538: afa200a8 */ sw $v0,0xa8($sp)
.L0f07a53c:
/* f07a53c: 8fa300a8 */ lw $v1,0xa8($sp)
/* f07a540: 506000c3 */ beqzl $v1,.L0f07a850
/* f07a544: 8fa40198 */ lw $a0,0x198($sp)
/* f07a548: 906d0000 */ lbu $t5,0x0($v1)
/* f07a54c: 24010001 */ addiu $at,$zero,0x1
/* f07a550: 55a100bf */ bnel $t5,$at,.L0f07a850
/* f07a554: 8fa40198 */ lw $a0,0x198($sp)
/* f07a558: 8c640004 */ lw $a0,0x4($v1)
/* f07a55c: 2401014c */ addiu $at,$zero,0x14c
/* f07a560: 3c0b8007 */ lui $t3,%hi(var80069cbc)
/* f07a564: 848e0004 */ lh $t6,0x4($a0)
/* f07a568: 27a5013c */ addiu $a1,$sp,0x13c
/* f07a56c: 24060000 */ addiu $a2,$zero,0x0
/* f07a570: 55c100b7 */ bnel $t6,$at,.L0f07a850
/* f07a574: 8fa40198 */ lw $a0,0x198($sp)
/* f07a578: 8d6b9cbc */ lw $t3,%lo(var80069cbc)($t3)
/* f07a57c: afa00148 */ sw $zero,0x148($sp)
/* f07a580: afa300a8 */ sw $v1,0xa8($sp)
/* f07a584: 0fc68330 */ jal frCalculateHit
/* f07a588: afab00a0 */ sw $t3,0xa0($sp)
/* f07a58c: 0fc4f92a */ jal chrIsUsingPaintball
/* f07a590: 8fa40110 */ lw $a0,0x110($sp)
/* f07a594: 1040000b */ beqz $v0,.L0f07a5c4
/* f07a598: 8fa500a8 */ lw $a1,0xa8($sp)
/* f07a59c: 8fa500a8 */ lw $a1,0xa8($sp)
/* f07a5a0: 240f0019 */ addiu $t7,$zero,0x19
/* f07a5a4: 27a6013c */ addiu $a2,$sp,0x13c
/* f07a5a8: 84a40028 */ lh $a0,0x28($a1)
/* f07a5ac: afaf0014 */ sw $t7,0x14($sp)
/* f07a5b0: afa00010 */ sw $zero,0x10($sp)
/* f07a5b4: 0fc4be7c */ jal sparksCreate
/* f07a5b8: 00003825 */ or $a3,$zero,$zero
/* f07a5bc: 10000008 */ b .L0f07a5e0
/* f07a5c0: 27a400a0 */ addiu $a0,$sp,0xa0
.L0f07a5c4:
/* f07a5c4: 84a40028 */ lh $a0,0x28($a1)
/* f07a5c8: afa00014 */ sw $zero,0x14($sp)
/* f07a5cc: afa00010 */ sw $zero,0x10($sp)
/* f07a5d0: 27a6013c */ addiu $a2,$sp,0x13c
/* f07a5d4: 0fc4be7c */ jal sparksCreate
/* f07a5d8: 00003825 */ or $a3,$zero,$zero
/* f07a5dc: 27a400a0 */ addiu $a0,$sp,0xa0
.L0f07a5e0:
/* f07a5e0: 8fa500a8 */ lw $a1,0xa8($sp)
/* f07a5e4: 0fc29f66 */ jal bgunPlayPropHitSound
/* f07a5e8: 240600f2 */ addiu $a2,$zero,0xf2
/* f07a5ec: 10000098 */ b .L0f07a850
/* f07a5f0: 8fa40198 */ lw $a0,0x198($sp)
.L0f07a5f4:
/* f07a5f4: 24190010 */ addiu $t9,$zero,0x10
/* f07a5f8: afb90010 */ sw $t9,0x10($sp)
/* f07a5fc: 27a50158 */ addiu $a1,$sp,0x158
/* f07a600: 27a6013c */ addiu $a2,$sp,0x13c
/* f07a604: 0c00b764 */ jal cdTestAToB4
/* f07a608: 24070022 */ addiu $a3,$zero,0x22
/* f07a60c: 14400007 */ bnez $v0,.L0f07a62c
/* f07a610: 27a4013c */ addiu $a0,$sp,0x13c
/* f07a614: 3c067f1b */ lui $a2,%hi(var7f1aa038)
/* f07a618: 24c6a038 */ addiu $a2,$a2,%lo(var7f1aa038)
/* f07a61c: 0c0093af */ jal cdGetPos
/* f07a620: 24052d13 */ addiu $a1,$zero,0x2c71
/* f07a624: 24080001 */ addiu $t0,$zero,0x1
/* f07a628: afa80148 */ sw $t0,0x148($sp)
.L0f07a62c:
/* f07a62c: 8faa0194 */ lw $t2,0x194($sp)
/* f07a630: 3c09800a */ lui $t1,%hi(g_Vars+0x8)
/* f07a634: 8d299fc8 */ lw $t1,%lo(g_Vars+0x8)($t1)
/* f07a638: 8d4c0094 */ lw $t4,0x94($t2)
/* f07a63c: 8fa20124 */ lw $v0,0x124($sp)
/* f07a640: 552c0083 */ bnel $t1,$t4,.L0f07a850
/* f07a644: 8fa40198 */ lw $a0,0x198($sp)
/* f07a648: 50400081 */ beqzl $v0,.L0f07a850
/* f07a64c: 8fa40198 */ lw $a0,0x198($sp)
/* f07a650: 904d0000 */ lbu $t5,0x0($v0)
/* f07a654: 24010006 */ addiu $at,$zero,0x6
/* f07a658: c7a40168 */ lwc1 $f4,0x168($sp)
/* f07a65c: 55a1007c */ bnel $t5,$at,.L0f07a850
/* f07a660: 8fa40198 */ lw $a0,0x198($sp)
/* f07a664: c4520008 */ lwc1 $f18,0x8($v0)
/* f07a668: c446000c */ lwc1 $f6,0xc($v0)
/* f07a66c: c7a8016c */ lwc1 $f8,0x16c($sp)
/* f07a670: 46049001 */ sub.s $f0,$f18,$f4
/* f07a674: c44a0010 */ lwc1 $f10,0x10($v0)
/* f07a678: c7b00170 */ lwc1 $f16,0x170($sp)
/* f07a67c: 46083081 */ sub.s $f2,$f6,$f8
/* f07a680: 46000482 */ mul.s $f18,$f0,$f0
/* f07a684: 46105301 */ sub.s $f12,$f10,$f16
/* f07a688: 46021182 */ mul.s $f6,$f2,$f2
/* f07a68c: 46069280 */ add.s $f10,$f18,$f6
/* f07a690: 460c6482 */ mul.s $f18,$f12,$f12
/* f07a694: c7a6013c */ lwc1 $f6,0x13c($sp)
/* f07a698: 46043001 */ sub.s $f0,$f6,$f4
/* f07a69c: 46125380 */ add.s $f14,$f10,$f18
/* f07a6a0: c7aa0140 */ lwc1 $f10,0x140($sp)
/* f07a6a4: 46000182 */ mul.s $f6,$f0,$f0
/* f07a6a8: c7b20144 */ lwc1 $f18,0x144($sp)
/* f07a6ac: 46085081 */ sub.s $f2,$f10,$f8
/* f07a6b0: 46109301 */ sub.s $f12,$f18,$f16
/* f07a6b4: 46021102 */ mul.s $f4,$f2,$f2
/* f07a6b8: 46043280 */ add.s $f10,$f6,$f4
/* f07a6bc: 460c6202 */ mul.s $f8,$f12,$f12
/* f07a6c0: 46085480 */ add.s $f18,$f10,$f8
/* f07a6c4: 4612703e */ c.le.s $f14,$f18
/* f07a6c8: 00000000 */ nop
/* f07a6cc: 45020060 */ bc1fl .L0f07a850
/* f07a6d0: 8fa40198 */ lw $a0,0x198($sp)
/* f07a6d4: 0c012974 */ jal sqrtf
/* f07a6d8: 46007306 */ mov.s $f12,$f14
/* f07a6dc: 3c014348 */ lui $at,0x4348
/* f07a6e0: 44816000 */ mtc1 $at,$f12
/* f07a6e4: 3c017f1b */ lui $at,%hi(var7f1aa58c)
/* f07a6e8: c430a58c */ lwc1 $f16,%lo(var7f1aa58c)($at)
/* f07a6ec: 3c01800a */ lui $at,%hi(g_Vars+0x4c)
/* f07a6f0: c426a00c */ lwc1 $f6,%lo(g_Vars+0x4c)($at)
/* f07a6f4: 3c018007 */ lui $at,%hi(var80069950)
/* f07a6f8: 4600603c */ c.lt.s $f12,$f0
/* f07a6fc: 46068102 */ mul.s $f4,$f16,$f6
/* f07a700: c42a9950 */ lwc1 $f10,%lo(var80069950)($at)
/* f07a704: 8fae0194 */ lw $t6,0x194($sp)
/* f07a708: 460a2082 */ mul.s $f2,$f4,$f10
/* f07a70c: 45020005 */ bc1fl .L0f07a724
/* f07a710: c5d200a0 */ lwc1 $f18,0xa0($t6)
/* f07a714: 46006203 */ div.s $f8,$f12,$f0
/* f07a718: 46081082 */ mul.s $f2,$f2,$f8
/* f07a71c: 00000000 */ nop
/* f07a720: c5d200a0 */ lwc1 $f18,0xa0($t6)
.L0f07a724:
/* f07a724: 3c013f80 */ lui $at,0x3f80
/* f07a728: 44813000 */ mtc1 $at,$f6
/* f07a72c: 46029400 */ add.s $f16,$f18,$f2
/* f07a730: 4610303e */ c.le.s $f6,$f16
/* f07a734: e5d000a0 */ swc1 $f16,0xa0($t6)
/* f07a738: 8fab0124 */ lw $t3,0x124($sp)
/* f07a73c: 45020044 */ bc1fl .L0f07a850
/* f07a740: 8fa40198 */ lw $a0,0x198($sp)
/* f07a744: c5640008 */ lwc1 $f4,0x8($t3)
/* f07a748: e7a4013c */ swc1 $f4,0x13c($sp)
/* f07a74c: c56a000c */ lwc1 $f10,0xc($t3)
/* f07a750: e7aa0140 */ swc1 $f10,0x140($sp)
/* f07a754: c5680010 */ lwc1 $f8,0x10($t3)
/* f07a758: afa00148 */ sw $zero,0x148($sp)
/* f07a75c: 0c004b70 */ jal random
/* f07a760: e7a80144 */ swc1 $f8,0x144($sp)
/* f07a764: 304f0001 */ andi $t7,$v0,0x1
/* f07a768: 11e00012 */ beqz $t7,.L0f07a7b4
/* f07a76c: 00000000 */ nop
/* f07a770: 0c004b70 */ jal random
/* f07a774: 00000000 */ nop
/* f07a778: 2401000a */ addiu $at,$zero,0xa
/* f07a77c: 0041001b */ divu $zero,$v0,$at
/* f07a780: 0000c010 */ mfhi $t8
/* f07a784: 27190002 */ addiu $t9,$t8,0x2
/* f07a788: 44998000 */ mtc1 $t9,$f16
/* f07a78c: c7b20140 */ lwc1 $f18,0x140($sp)
/* f07a790: 07210005 */ bgez $t9,.L0f07a7a8
/* f07a794: 468081a0 */ cvt.s.w $f6,$f16
/* f07a798: 3c014f80 */ lui $at,0x4f80
/* f07a79c: 44812000 */ mtc1 $at,$f4
/* f07a7a0: 00000000 */ nop
/* f07a7a4: 46043180 */ add.s $f6,$f6,$f4
.L0f07a7a8:
/* f07a7a8: 46069280 */ add.s $f10,$f18,$f6
/* f07a7ac: 10000011 */ b .L0f07a7f4
/* f07a7b0: e7aa0140 */ swc1 $f10,0x140($sp)
.L0f07a7b4:
/* f07a7b4: 0c004b70 */ jal random
/* f07a7b8: 00000000 */ nop
/* f07a7bc: 2401000a */ addiu $at,$zero,0xa
/* f07a7c0: 0041001b */ divu $zero,$v0,$at
/* f07a7c4: 00004010 */ mfhi $t0
/* f07a7c8: 250a0002 */ addiu $t2,$t0,0x2
/* f07a7cc: 448a8000 */ mtc1 $t2,$f16
/* f07a7d0: c7a80140 */ lwc1 $f8,0x140($sp)
/* f07a7d4: 05410005 */ bgez $t2,.L0f07a7ec
/* f07a7d8: 46808120 */ cvt.s.w $f4,$f16
/* f07a7dc: 3c014f80 */ lui $at,0x4f80
/* f07a7e0: 44819000 */ mtc1 $at,$f18
/* f07a7e4: 00000000 */ nop
/* f07a7e8: 46122100 */ add.s $f4,$f4,$f18
.L0f07a7ec:
/* f07a7ec: 46044181 */ sub.s $f6,$f8,$f4
/* f07a7f0: e7a60140 */ swc1 $f6,0x140($sp)
.L0f07a7f4:
/* f07a7f4: 27a40118 */ addiu $a0,$sp,0x118
/* f07a7f8: 8fa50124 */ lw $a1,0x124($sp)
/* f07a7fc: 0fc29f66 */ jal bgunPlayPropHitSound
/* f07a800: 2406ffff */ addiu $a2,$zero,-1
/* f07a804: 3c013f00 */ lui $at,0x3f00
/* f07a808: 44815000 */ mtc1 $at,$f10
/* f07a80c: 3c018007 */ lui $at,%hi(var80069954)
/* f07a810: c4309954 */ lwc1 $f16,%lo(var80069954)($at)
/* f07a814: 8fa90124 */ lw $t1,0x124($sp)
/* f07a818: 240c00c8 */ addiu $t4,$zero,0xc8
/* f07a81c: 46105002 */ mul.s $f0,$f10,$f16
/* f07a820: 8d240004 */ lw $a0,0x4($t1)
/* f07a824: afac0014 */ sw $t4,0x14($sp)
/* f07a828: afa00010 */ sw $zero,0x10($sp)
/* f07a82c: 27a6014c */ addiu $a2,$sp,0x14c
/* f07a830: 27a70118 */ addiu $a3,$sp,0x118
/* f07a834: 44050000 */ mfc1 $a1,$f0
/* f07a838: 0fc0d0cc */ jal chrDamageByImpact
/* f07a83c: 00000000 */ nop
/* f07a840: 44809000 */ mtc1 $zero,$f18
/* f07a844: 8fad0194 */ lw $t5,0x194($sp)
/* f07a848: e5b200a0 */ swc1 $f18,0xa0($t5)
.L0f07a84c:
/* f07a84c: 8fa40198 */ lw $a0,0x198($sp)
.L0f07a850:
/* f07a850: 0fc1905e */ jal propSetPerimEnabled
/* f07a854: 24050001 */ addiu $a1,$zero,0x1
/* f07a858: 8fae018c */ lw $t6,0x18c($sp)
/* f07a85c: 8fab0188 */ lw $t3,0x188($sp)
/* f07a860: 8faf0194 */ lw $t7,0x194($sp)
/* f07a864: 15c00003 */ bnez $t6,.L0f07a874
/* f07a868: 27a40168 */ addiu $a0,$sp,0x168
/* f07a86c: 51600009 */ beqzl $t3,.L0f07a894
/* f07a870: 8fb90148 */ lw $t9,0x148($sp)
.L0f07a874:
/* f07a874: 91e200a9 */ lbu $v0,0xa9($t7)
/* f07a878: 240100ff */ addiu $at,$zero,0xff
/* f07a87c: 58400005 */ blezl $v0,.L0f07a894
/* f07a880: 8fb90148 */ lw $t9,0x148($sp)
/* f07a884: 10410002 */ beq $v0,$at,.L0f07a890
/* f07a888: 2458ffff */ addiu $t8,$v0,-1
/* f07a88c: a1f800a9 */ sb $t8,0xa9($t7)
.L0f07a890:
/* f07a890: 8fb90148 */ lw $t9,0x148($sp)
.L0f07a894:
/* f07a894: 27a5013c */ addiu $a1,$sp,0x13c
/* f07a898: 27a60158 */ addiu $a2,$sp,0x158
/* f07a89c: 13200024 */ beqz $t9,.L0f07a930
/* f07a8a0: 27a7012c */ addiu $a3,$sp,0x12c
/* f07a8a4: afa00010 */ sw $zero,0x10($sp)
/* f07a8a8: 0c006052 */ jal portal00018148
/* f07a8ac: afa00014 */ sw $zero,0x14($sp)
/* f07a8b0: 0fc4f92a */ jal chrIsUsingPaintball
/* f07a8b4: 8fa40110 */ lw $a0,0x110($sp)
/* f07a8b8: 1040000b */ beqz $v0,.L0f07a8e8
/* f07a8bc: 8faa0194 */ lw $t2,0x194($sp)
/* f07a8c0: 24080019 */ addiu $t0,$zero,0x19
/* f07a8c4: afa80014 */ sw $t0,0x14($sp)
/* f07a8c8: 87a4012c */ lh $a0,0x12c($sp)
/* f07a8cc: 00002825 */ or $a1,$zero,$zero
/* f07a8d0: 27a6013c */ addiu $a2,$sp,0x13c
/* f07a8d4: 00003825 */ or $a3,$zero,$zero
/* f07a8d8: 0fc4be7c */ jal sparksCreate
/* f07a8dc: afa00010 */ sw $zero,0x10($sp)
/* f07a8e0: 1000000f */ b .L0f07a920
/* f07a8e4: 27a40118 */ addiu $a0,$sp,0x118
.L0f07a8e8:
/* f07a8e8: 85490004 */ lh $t1,0x4($t2)
/* f07a8ec: 24010144 */ addiu $at,$zero,0x144
/* f07a8f0: 87a4012c */ lh $a0,0x12c($sp)
/* f07a8f4: 15210003 */ bne $t1,$at,.L0f07a904
/* f07a8f8: 00002825 */ or $a1,$zero,$zero
/* f07a8fc: 10000002 */ b .L0f07a908
/* f07a900: 24020017 */ addiu $v0,$zero,0x17
.L0f07a904:
/* f07a904: 00001025 */ or $v0,$zero,$zero
.L0f07a908:
/* f07a908: 27a6013c */ addiu $a2,$sp,0x13c
/* f07a90c: 00003825 */ or $a3,$zero,$zero
/* f07a910: afa00010 */ sw $zero,0x10($sp)
/* f07a914: 0fc4be7c */ jal sparksCreate
/* f07a918: afa20014 */ sw $v0,0x14($sp)
/* f07a91c: 27a40118 */ addiu $a0,$sp,0x118
.L0f07a920:
/* f07a920: 27a5013c */ addiu $a1,$sp,0x13c
/* f07a924: 2406ffff */ addiu $a2,$zero,-1
/* f07a928: 0fc2a132 */ jal bgunPlayBgHitSound
/* f07a92c: 27a7012c */ addiu $a3,$sp,0x12c
.L0f07a930:
/* f07a930: 8fac0128 */ lw $t4,0x128($sp)
/* f07a934: c7a8013c */ lwc1 $f8,0x13c($sp)
/* f07a938: c7a40168 */ lwc1 $f4,0x168($sp)
/* f07a93c: 51800097 */ beqzl $t4,.L0f07ab9c
/* f07a940: 8fa80194 */ lw $t0,0x194($sp)
/* f07a944: 46044181 */ sub.s $f6,$f8,$f4
/* f07a948: c7aa0140 */ lwc1 $f10,0x140($sp)
/* f07a94c: c7b0016c */ lwc1 $f16,0x16c($sp)
/* f07a950: c7a40170 */ lwc1 $f4,0x170($sp)
/* f07a954: c7a80144 */ lwc1 $f8,0x144($sp)
/* f07a958: 46105481 */ sub.s $f18,$f10,$f16
/* f07a95c: 8fad0194 */ lw $t5,0x194($sp)
/* f07a960: 46063402 */ mul.s $f16,$f6,$f6
/* f07a964: 46044281 */ sub.s $f10,$f8,$f4
/* f07a968: 8da3009c */ lw $v1,0x9c($t5)
/* f07a96c: 46129202 */ mul.s $f8,$f18,$f18
/* f07a970: e7a60068 */ swc1 $f6,0x68($sp)
/* f07a974: e7aa0070 */ swc1 $f10,0x70($sp)
/* f07a978: c7aa0070 */ lwc1 $f10,0x70($sp)
/* f07a97c: c7a60070 */ lwc1 $f6,0x70($sp)
/* f07a980: e7b2006c */ swc1 $f18,0x6c($sp)
/* f07a984: afa30078 */ sw $v1,0x78($sp)
/* f07a988: 46065482 */ mul.s $f18,$f10,$f6
/* f07a98c: 46088100 */ add.s $f4,$f16,$f8
/* f07a990: 0c012974 */ jal sqrtf
/* f07a994: 46049300 */ add.s $f12,$f18,$f4
/* f07a998: 44808000 */ mtc1 $zero,$f16
/* f07a99c: 8fa30078 */ lw $v1,0x78($sp)
/* f07a9a0: 46000306 */ mov.s $f12,$f0
/* f07a9a4: 4600803c */ c.lt.s $f16,$f0
/* f07a9a8: 3c017f1b */ lui $at,%hi(var7f1aa590)
/* f07a9ac: c7a80168 */ lwc1 $f8,0x168($sp)
/* f07a9b0: 4502007a */ bc1fl .L0f07ab9c
/* f07a9b4: 8fa80194 */ lw $t0,0x194($sp)
/* f07a9b8: c42ea590 */ lwc1 $f14,%lo(var7f1aa590)($at)
/* f07a9bc: e4680004 */ swc1 $f8,0x4($v1)
/* f07a9c0: 3c013f80 */ lui $at,0x3f80
/* f07a9c4: 44814000 */ mtc1 $at,$f8
/* f07a9c8: c7aa016c */ lwc1 $f10,0x16c($sp)
/* f07a9cc: 4600703c */ c.lt.s $f14,$f0
/* f07a9d0: 240f002b */ addiu $t7,$zero,0x2b
/* f07a9d4: 46004083 */ div.s $f2,$f8,$f0
/* f07a9d8: e46a0008 */ swc1 $f10,0x8($v1)
/* f07a9dc: c7a60170 */ lwc1 $f6,0x170($sp)
/* f07a9e0: 2418000c */ addiu $t8,$zero,0xc
/* f07a9e4: e466000c */ swc1 $f6,0xc($v1)
/* f07a9e8: c7b20068 */ lwc1 $f18,0x68($sp)
/* f07a9ec: e4720010 */ swc1 $f18,0x10($v1)
/* f07a9f0: c7a4006c */ lwc1 $f4,0x6c($sp)
/* f07a9f4: c46a0010 */ lwc1 $f10,0x10($v1)
/* f07a9f8: e4640014 */ swc1 $f4,0x14($v1)
/* f07a9fc: c7b00070 */ lwc1 $f16,0x70($sp)
/* f07aa00: c4720014 */ lwc1 $f18,0x14($v1)
/* f07aa04: e4700018 */ swc1 $f16,0x18($v1)
/* f07aa08: c4700018 */ lwc1 $f16,0x18($v1)
/* f07aa0c: 46025182 */ mul.s $f6,$f10,$f2
/* f07aa10: 00000000 */ nop
/* f07aa14: 46029102 */ mul.s $f4,$f18,$f2
/* f07aa18: 00000000 */ nop
/* f07aa1c: 46028202 */ mul.s $f8,$f16,$f2
/* f07aa20: e4660010 */ swc1 $f6,0x10($v1)
/* f07aa24: e4640014 */ swc1 $f4,0x14($v1)
/* f07aa28: 45000002 */ bc1f .L0f07aa34
/* f07aa2c: e4680018 */ swc1 $f8,0x18($v1)
/* f07aa30: 46007306 */ mov.s $f12,$f14
.L0f07aa34:
/* f07aa34: a0600000 */ sb $zero,0x0($v1)
/* f07aa38: 8fae0194 */ lw $t6,0x194($sp)
/* f07aa3c: 24010144 */ addiu $at,$zero,0x144
/* f07aa40: 85cb0004 */ lh $t3,0x4($t6)
/* f07aa44: 55610004 */ bnel $t3,$at,.L0f07aa58
/* f07aa48: a06f0001 */ sb $t7,0x1($v1)
/* f07aa4c: 10000002 */ b .L0f07aa58
/* f07aa50: a0780001 */ sb $t8,0x1($v1)
/* f07aa54: a06f0001 */ sb $t7,0x1($v1)
.L0f07aa58:
/* f07aa58: 3c0143fa */ lui $at,0x43fa
/* f07aa5c: 44810000 */ mtc1 $at,$f0
/* f07aa60: e46c001c */ swc1 $f12,0x1c($v1)
/* f07aa64: 4600603c */ c.lt.s $f12,$f0
/* f07aa68: 00000000 */ nop
/* f07aa6c: 45020003 */ bc1fl .L0f07aa7c
/* f07aa70: 80790001 */ lb $t9,0x1($v1)
/* f07aa74: 46000306 */ mov.s $f12,$f0
/* f07aa78: 80790001 */ lb $t9,0x1($v1)
.L0f07aa7c:
/* f07aa7c: 2401001d */ addiu $at,$zero,0x1d
/* f07aa80: 17210026 */ bne $t9,$at,.L0f07ab1c
/* f07aa84: 3c017f1b */ lui $at,%hi(var7f1aa594)
/* f07aa88: c422a594 */ lwc1 $f2,%lo(var7f1aa594)($at)
/* f07aa8c: 3c013e80 */ lui $at,0x3e80
/* f07aa90: 44815000 */ mtc1 $at,$f10
/* f07aa94: 3c017f1b */ lui $at,%hi(var7f1aa598)
/* f07aa98: 460c5182 */ mul.s $f6,$f10,$f12
/* f07aa9c: e4660020 */ swc1 $f6,0x20($v1)
/* f07aaa0: c432a598 */ lwc1 $f18,%lo(var7f1aa598)($at)
/* f07aaa4: 460c9002 */ mul.s $f0,$f18,$f12
/* f07aaa8: 4600103c */ c.lt.s $f2,$f0
/* f07aaac: e4600024 */ swc1 $f0,0x24($v1)
/* f07aab0: 45020003 */ bc1fl .L0f07aac0
/* f07aab4: afa30078 */ sw $v1,0x78($sp)
/* f07aab8: e4620024 */ swc1 $f2,0x24($v1)
/* f07aabc: afa30078 */ sw $v1,0x78($sp)
.L0f07aac0:
/* f07aac0: 0c004b70 */ jal random
/* f07aac4: e7ac007c */ swc1 $f12,0x7c($sp)
/* f07aac8: 44822000 */ mtc1 $v0,$f4
/* f07aacc: 8fa30078 */ lw $v1,0x78($sp)
/* f07aad0: c7ac007c */ lwc1 $f12,0x7c($sp)
/* f07aad4: 04410005 */ bgez $v0,.L0f07aaec
/* f07aad8: 46802420 */ cvt.s.w $f16,$f4
/* f07aadc: 3c014f80 */ lui $at,0x4f80
/* f07aae0: 44814000 */ mtc1 $at,$f8
/* f07aae4: 00000000 */ nop
/* f07aae8: 46088400 */ add.s $f16,$f16,$f8
.L0f07aaec:
/* f07aaec: 3c012f80 */ lui $at,0x2f80
/* f07aaf0: 44815000 */ mtc1 $at,$f10
/* f07aaf4: 3c017f1b */ lui $at,%hi(var7f1aa59c)
/* f07aaf8: c432a59c */ lwc1 $f18,%lo(var7f1aa59c)($at)
/* f07aafc: 460a8182 */ mul.s $f6,$f16,$f10
/* f07ab00: 3c017f1b */ lui $at,%hi(var7f1aa5a0)
/* f07ab04: c428a5a0 */ lwc1 $f8,%lo(var7f1aa5a0)($at)
/* f07ab08: 46123102 */ mul.s $f4,$f6,$f18
/* f07ab0c: 46044401 */ sub.s $f16,$f8,$f4
/* f07ab10: 460c8282 */ mul.s $f10,$f16,$f12
/* f07ab14: 10000020 */ b .L0f07ab98
/* f07ab18: e46a0028 */ swc1 $f10,0x28($v1)
.L0f07ab1c:
/* f07ab1c: 3c017f1b */ lui $at,%hi(var7f1aa5a4)
/* f07ab20: c422a5a4 */ lwc1 $f2,%lo(var7f1aa5a4)($at)
/* f07ab24: 3c017f1b */ lui $at,%hi(var7f1aa5a8)
/* f07ab28: c426a5a8 */ lwc1 $f6,%lo(var7f1aa5a8)($at)
/* f07ab2c: 460c3002 */ mul.s $f0,$f6,$f12
/* f07ab30: 4600103c */ c.lt.s $f2,$f0
/* f07ab34: e4600020 */ swc1 $f0,0x20($v1)
/* f07ab38: e4600024 */ swc1 $f0,0x24($v1)
/* f07ab3c: 45000002 */ bc1f .L0f07ab48
/* f07ab40: 00000000 */ nop
/* f07ab44: e4620024 */ swc1 $f2,0x24($v1)
.L0f07ab48:
/* f07ab48: 0c004b70 */ jal random
/* f07ab4c: afa30078 */ sw $v1,0x78($sp)
/* f07ab50: 44829000 */ mtc1 $v0,$f18
/* f07ab54: 8fa30078 */ lw $v1,0x78($sp)
/* f07ab58: 04410005 */ bgez $v0,.L0f07ab70
/* f07ab5c: 46809220 */ cvt.s.w $f8,$f18
/* f07ab60: 3c014f80 */ lui $at,0x4f80
/* f07ab64: 44812000 */ mtc1 $at,$f4
/* f07ab68: 00000000 */ nop
/* f07ab6c: 46044200 */ add.s $f8,$f8,$f4
.L0f07ab70:
/* f07ab70: 3c012f80 */ lui $at,0x2f80
/* f07ab74: 44818000 */ mtc1 $at,$f16
/* f07ab78: 3c013f80 */ lui $at,0x3f80
/* f07ab7c: 44813000 */ mtc1 $at,$f6
/* f07ab80: 46104002 */ mul.s $f0,$f8,$f16
/* f07ab84: c4640020 */ lwc1 $f4,0x20($v1)
/* f07ab88: 46000280 */ add.s $f10,$f0,$f0
/* f07ab8c: 46065481 */ sub.s $f18,$f10,$f6
/* f07ab90: 46049202 */ mul.s $f8,$f18,$f4
/* f07ab94: e4680028 */ swc1 $f8,0x28($v1)
.L0f07ab98:
/* f07ab98: 8fa80194 */ lw $t0,0x194($sp)
.L0f07ab9c:
/* f07ab9c: 3c09800a */ lui $t1,%hi(g_Vars+0x8)
/* f07aba0: 8d299fc8 */ lw $t1,%lo(g_Vars+0x8)($t1)
/* f07aba4: 8d0a0098 */ lw $t2,0x98($t0)
/* f07aba8: 240c0002 */ addiu $t4,$zero,0x2
/* f07abac: 24050001 */ addiu $a1,$zero,0x1
/* f07abb0: 0149082a */ slt $at,$t2,$t1
/* f07abb4: 1020002d */ beqz $at,.L0f07ac6c
/* f07abb8: 3406ffff */ dli $a2,0xffff
/* f07abbc: afac0064 */ sw $t4,0x64($sp)
/* f07abc0: 0fc249af */ jal func0f0926bc
/* f07abc4: 8fa40198 */ lw $a0,0x198($sp)
/* f07abc8: 8fad0174 */ lw $t5,0x174($sp)
/* f07abcc: 8fae0194 */ lw $t6,0x194($sp)
/* f07abd0: 00002025 */ or $a0,$zero,$zero
/* f07abd4: 15a0001f */ bnez $t5,.L0f07ac54
/* f07abd8: 2407ffff */ addiu $a3,$zero,-1
/* f07abdc: 85c30004 */ lh $v1,0x4($t6)
/* f07abe0: 24010144 */ addiu $at,$zero,0x144
/* f07abe4: 3402806f */ dli $v0,0x806f
/* f07abe8: 14610002 */ bne $v1,$at,.L0f07abf4
/* f07abec: 240fffff */ addiu $t7,$zero,-1
/* f07abf0: 34028040 */ dli $v0,0x8040
.L0f07abf4:
/* f07abf4: 24010157 */ addiu $at,$zero,0x157
/* f07abf8: 14610004 */ bne $v1,$at,.L0f07ac0c
/* f07abfc: 2419ffff */ addiu $t9,$zero,-1
/* f07ac00: 240b0004 */ addiu $t3,$zero,0x4
/* f07ac04: 34028044 */ dli $v0,0x8044
/* f07ac08: afab0064 */ sw $t3,0x64($sp)
.L0f07ac0c:
/* f07ac0c: 3c01bf80 */ lui $at,0xbf80
/* f07ac10: 44810000 */ mtc1 $at,$f0
/* f07ac14: 00023400 */ sll $a2,$v0,0x10
/* f07ac18: 0006c403 */ sra $t8,$a2,0x10
/* f07ac1c: 03003025 */ or $a2,$t8,$zero
/* f07ac20: 8fa50198 */ lw $a1,0x198($sp)
/* f07ac24: afaf0010 */ sw $t7,0x10($sp)
/* f07ac28: afa00014 */ sw $zero,0x14($sp)
/* f07ac2c: afa00018 */ sw $zero,0x18($sp)
/* f07ac30: afa0001c */ sw $zero,0x1c($sp)
/* f07ac34: afa00020 */ sw $zero,0x20($sp)
/* f07ac38: afa00028 */ sw $zero,0x28($sp)
/* f07ac3c: afb9002c */ sw $t9,0x2c($sp)
/* f07ac40: e7a00024 */ swc1 $f0,0x24($sp)
/* f07ac44: e7a00030 */ swc1 $f0,0x30($sp)
/* f07ac48: e7a00034 */ swc1 $f0,0x34($sp)
/* f07ac4c: 0fc24e7e */ jal propsnd0f0939f8
/* f07ac50: e7a00038 */ swc1 $f0,0x38($sp)
.L0f07ac54:
/* f07ac54: 3c0a800a */ lui $t2,%hi(g_Vars+0x8)
/* f07ac58: 8d4a9fc8 */ lw $t2,%lo(g_Vars+0x8)($t2)
/* f07ac5c: 8fa80064 */ lw $t0,0x64($sp)
/* f07ac60: 8fac0194 */ lw $t4,0x194($sp)
/* f07ac64: 010a4821 */ addu $t1,$t0,$t2
/* f07ac68: ad890098 */ sw $t1,0x98($t4)
.L0f07ac6c:
/* f07ac6c: 8fad0184 */ lw $t5,0x184($sp)
.L0f07ac70:
/* f07ac70: 24050005 */ addiu $a1,$zero,0x5
/* f07ac74: 0c006a47 */ jal modelGetPart
/* f07ac78: 8da40008 */ lw $a0,0x8($t5)
/* f07ac7c: 10400005 */ beqz $v0,.L0f07ac94
/* f07ac80: 00402825 */ or $a1,$v0,$zero
/* f07ac84: 0c006a87 */ jal modelGetNodeRwData
/* f07ac88: 8fa40184 */ lw $a0,0x184($sp)
/* f07ac8c: 8fae018c */ lw $t6,0x18c($sp)
/* f07ac90: a44e0000 */ sh $t6,0x0($v0)
.L0f07ac94:
/* f07ac94: 8fab0184 */ lw $t3,0x184($sp)
/* f07ac98: 24050007 */ addiu $a1,$zero,0x7
/* f07ac9c: 0c006a47 */ jal modelGetPart
/* f07aca0: 8d640008 */ lw $a0,0x8($t3)
/* f07aca4: 10400005 */ beqz $v0,.L0f07acbc
/* f07aca8: 00402825 */ or $a1,$v0,$zero
/* f07acac: 0c006a87 */ jal modelGetNodeRwData
/* f07acb0: 8fa40184 */ lw $a0,0x184($sp)
/* f07acb4: 8fb80188 */ lw $t8,0x188($sp)
/* f07acb8: a4580000 */ sh $t8,0x0($v0)
.L0f07acbc:
/* f07acbc: 8fbf0044 */ lw $ra,0x44($sp)
/* f07acc0: 27bd0198 */ addiu $sp,$sp,0x198
/* f07acc4: 03e00008 */ jr $ra
/* f07acc8: 00000000 */ nop
);
#endif
void chopperInitMatrices(struct prop *prop)
{
struct chopperobj *chopper = (struct chopperobj *)prop->obj;
struct model *model = chopper->base.model;
Mtxf *matrices = model->matrices;
union modelrodata *rodata;
Mtxf spa8;
Mtxf sp68;
Mtxf sp28;
rodata = modelGetPartRodata(model->filedata, MODELPART_CHOPPER_0001);
mtx4LoadZRotation(M_BADTAU - chopper->gunrotx, &sp68);
mtx4LoadYRotation(chopper->gunroty + 1.5707963705063f, &sp28);
mtx00015be4(&sp28, &sp68, &spa8);
mtx4SetTranslation(&rodata->position.pos, &spa8);
mtx00015be4(matrices, &spa8, &matrices[1]);
rodata = modelGetPartRodata(model->filedata, MODELPART_CHOPPER_0002);
mtx4LoadXRotation(chopper->barrelrot, &spa8);
mtx4SetTranslation(&rodata->position.pos, &spa8);
mtx00015be4(&matrices[1], &spa8, &matrices[2]);
}
struct prop *chopperGetTargetProp(struct chopperobj *chopper)
{
if (chopper->target == -1) {
return g_Vars.currentplayer->prop;
}
return g_Vars.props + chopper->target;
}
struct chopperobj *chopperFromHovercar(struct chopperobj *chopper)
{
if (chopper->base.type == OBJTYPE_CHOPPER) {
return chopper;
}
return NULL;
}
bool chopperCheckTargetInFov(struct chopperobj *hovercar, u8 fov)
{
struct chopperobj *chopper = chopperFromHovercar(hovercar);
u8 visible = false;
if (chopper) {
f32 roty = chopper->roty;
struct prop *target = chopperGetTargetProp(chopper);
struct prop *prop = chopper->base.prop;
f32 angle = atan2f(prop->pos.x - target->pos.x, prop->pos.z - target->pos.z);
f32 anglediff = angle - roty;
if (angle < roty) {
anglediff += M_BADTAU;
}
visible = false;
// This logic looks wrong, but is actually correct. I think the fov is
// actually the not viewable area and starts at the back of the chopper,
// which makes sense because the chopper's windows go around the side.
if (!(anglediff < fov * 0.024539785459638f && anglediff < M_PI)
&& !(anglediff > M_BADTAU - fov * 0.024539785459638f && anglediff > M_PI)) {
visible = true;
}
chopper->targetvisible = visible;
}
return visible;
}
bool chopperCheckTargetInSight(struct chopperobj *obj)
{
struct chopperobj *chopper = chopperFromHovercar(obj);
if (chopper) {
bool visible = false;
struct prop *target = chopperGetTargetProp(chopper);
if (target->type != PROPTYPE_PLAYER || g_Vars.bondvisible) {
visible = cdHasLineOfSight(&target->pos, target->rooms, &chopper->base.prop->pos, chopper->base.prop->rooms, 307, 16);
}
chopper->targetvisible = visible;
return visible;
}
return false;
}
void chopperSetTarget(struct chopperobj *obj, u32 chrnum)
{
struct chopperobj *chopper = chopperFromHovercar(obj);
if (chopper) {
struct chrdata *chr = chrFindById(NULL, chrnum);
if (chr && chr->prop) {
chopper->target = chr->prop - g_Vars.props;
}
}
}
bool chopperAttack(struct chopperobj *obj)
{
struct chopperobj *chopper = chopperFromHovercar(obj);
if (chopper) {
chopper->attackmode = CHOPPERMODE_COMBAT;
chopper->patroltimer60 = TICKS(240);
return true;
}
return false;
}
bool chopperStop(struct chopperobj *obj)
{
struct chopperobj *chopper = chopperFromHovercar(obj);
if (chopper) {
chopper->attackmode = CHOPPERMODE_PATROL;
chopper->patroltimer60 = TICKS(120);
chopper->power = 0;
return true;
}
return false;
}
bool chopperSetArmed(struct chopperobj *obj, bool armed)
{
struct chopperobj *chopper = chopperFromHovercar(obj);
if (chopper) {
chopper->weaponsarmed = armed;
return true;
}
return false;
}
void chopperRestartTimer(struct chopperobj *obj)
{
struct chopperobj *chopper = chopperFromHovercar(obj);
if (chopper) {
chopper->timer60 = 0;
}
}
f32 chopperGetTimer(struct chopperobj *obj)
{
struct chopperobj *chopper = chopperFromHovercar(obj);
return chopper->timer60 * FRAMEDURATION;
}
void chopperSetMaxDamage(struct chopperobj *chopper, u16 health)
{
chopper->base.maxdamage = health;
}
f32 func0f07b164(struct coord *pos1, struct coord *pos2, struct coord *pos3, struct coord *result)
{
struct coord sp34;
struct coord sp28;
f32 tmp;
sp34.x = pos2->x - pos1->x;
sp34.y = pos2->y - pos1->y;
sp34.z = pos2->z - pos1->z;
sp28.x = pos3->x - pos1->x;
sp28.y = pos3->y - pos1->y;
sp28.z = pos3->z - pos1->z;
guNormalize(&sp34.x, &sp34.y, &sp34.z);
tmp = sp28.f[0] * sp34.f[0] + sp28.f[1] * sp34.f[1] + sp28.f[2] * sp34.f[2];
result->x = sp34.x * tmp + pos1->x;
result->y = sp34.y * tmp + pos1->y;
result->z = sp34.z * tmp + pos1->z;
return sp28.f[0] * sp28.f[0] + sp28.f[1] * sp28.f[1] + sp28.f[2] * sp28.f[2] - tmp * tmp;
}
void chopperFireRocket(struct chopperobj *chopper, bool side)
{
if (chopper->ontarget) {
struct coord direction;
struct coord pos;
struct prop *targetprop = chopperGetTargetProp(chopper);
struct prop *chopperprop = chopper->base.prop;
u32 stack;
Mtxf sp6c;
Mtxf sp2c;
pos.x = side ? -754 : 754;
pos.y = -400;
pos.z = -400;
mtx3ToMtx4(chopper->base.realrot, &sp2c);
mtx4LoadTranslation(&pos, &sp6c);
mtx4MultMtx4InPlace(&sp2c, &sp6c);
pos.x = sp6c.m[3][0] + chopperprop->pos.f[0];
pos.y = sp6c.m[3][1] + chopperprop->pos.f[1];
pos.z = sp6c.m[3][2] + chopperprop->pos.f[2];
direction.x = targetprop->pos.x - pos.x;
direction.y = targetprop->pos.y - pos.y + (s32)(random() % 100);
direction.z = targetprop->pos.z - pos.z;
guNormalize(&direction.x, &direction.y, &direction.z);
smokeCreateSimple(&pos, chopperprop->rooms, SMOKETYPE_3);
projectileCreate(chopperprop, 0, &pos, &direction, WEAPON_ROCKETLAUNCHER, targetprop);
}
}
void chopperIncrementBarrel(struct prop *chopperprop, bool firing)
{
struct defaultobj *obj = chopperprop->obj;
struct chopperobj *chopper = (struct chopperobj *)chopperprop->obj;
struct model *model = obj->model;
f32 angleh = 0.0f;
f32 anglev = 0.0f;
f32 speedmult = 1.0f;
struct coord rot;
struct coord gunpos;
f32 gunroty = chopper->gunroty;
f32 gunrotx = chopper->gunrotx;
f32 gunturnyspeed60 = chopper->gunturnyspeed60;
f32 gunturnxspeed60 = chopper->gunturnxspeed60;
struct prop *targetprop = chopperGetTargetProp(chopper);
struct modelnode *node;
struct modelrwdata_gunfire *rwdata = NULL;
struct modelrodata_position *rodata;
Mtxf sp90;
Mtxf sp50;
f32 gunaimy;
if (chopper->fireslotthing->unk00);
chopper->fireslotthing->unk01 = (chopper->fireslotthing->unk00 % 3) == 0;
if (firing) {
rodata = modelGetPartRodata(model->filedata, MODELPART_CHOPPER_0001);
gunaimy = targetprop->pos.y - 20.0f;
gunpos.x = random() * random() * 0 * 30.0f + rodata->pos.x;
gunpos.y = random() * 0 * 30.0f + (rodata->pos.y - 50.0f);
gunpos.z = rodata->pos.z + 250.0f;
if (obj->modelnum == MODEL_A51INTERCEPTOR) {
f32 scale = 0.1f / obj->model->scale;
gunpos.x *= scale;
gunpos.y *= scale;
gunpos.z *= scale;
}
mtx3ToMtx4(obj->realrot, &sp50);
mtx4LoadTranslation(&gunpos, &sp90);
mtx4MultMtx4InPlace(&sp50, &sp90);
gunpos.x = sp90.m[3][0] + chopperprop->pos.f[0];
gunpos.y = sp90.m[3][1] + chopperprop->pos.f[1];
gunpos.z = sp90.m[3][2] + chopperprop->pos.f[2];
angleh = atan2f(targetprop->pos.x - gunpos.x, targetprop->pos.z - gunpos.z);
if (angleh <= 0.0f) {
angleh += M_BADTAU;
}
if (angleh > M_BADTAU) {
angleh -= M_BADTAU;
}
angleh -= chopper->roty;
if (angleh > M_PI) {
angleh -= M_BADTAU;
}
if (angleh < -M_PI) {
angleh += M_BADTAU;
}
anglev = atan2f(gunaimy - gunpos.y, sqrtf((targetprop->pos.x - gunpos.x) * (targetprop->pos.x - gunpos.x) + (targetprop->pos.z - gunpos.z) * (targetprop->pos.z - gunpos.z))) - chopper->rotx + M_BADTAU;
if (anglev > M_PI) {
anglev -= M_BADTAU;
}
if (chopper->barrelrotspeed < 0.34906584f) {
chopper->barrelrotspeed += 0.017453292f * LVUPDATE240FREAL();
} else {
chopper->barrelrotspeed = 0.34906584f;
}
} else {
speedmult = 0.125f;
if (chopper->barrelrotspeed > 0.0f) {
chopper->barrelrotspeed -= 0.017453292f;
} else {
chopper->barrelrotspeed = 0.0f;
}
}
chopper->barrelrot += chopper->barrelrotspeed * LVUPDATE240FREAL();
#if PAL
applySpeed(&gunroty, angleh, &gunturnyspeed60, 0.0027920822612941f * speedmult, 0.0055841645225883f * speedmult, 0.16752494871616f * speedmult);
if (gunroty == angleh && gunturnyspeed60 <= 0.0055841645225883f * speedmult && -0.0055841645225883f * speedmult <= gunturnyspeed60) {
gunturnyspeed60 = 0.0f;
}
applySpeed(&gunrotx, anglev, &gunturnxspeed60, 0.0027920822612941f * speedmult, 0.0055841645225883f * speedmult, 0.16752494871616f * speedmult);
if (gunrotx == anglev && gunturnxspeed60 <= 0.0055841645225883f * speedmult && -0.0055841645225883f * speedmult <= gunturnxspeed60) {
gunturnxspeed60 = 0.0f;
}
#else
applySpeed(&gunroty, angleh, &gunturnyspeed60, 0.0023267353f * speedmult, 0.0046534706f * speedmult, 0.1396041f * speedmult);
if (gunroty == angleh && gunturnyspeed60 <= 0.0046534706f * speedmult && -0.0046534706f * speedmult <= gunturnyspeed60) {
gunturnyspeed60 = 0.0f;
}
applySpeed(&gunrotx, anglev, &gunturnxspeed60, 0.0023267353f * speedmult, 0.0046534706f * speedmult, 0.1396041f * speedmult);
if (gunrotx == anglev && gunturnxspeed60 <= 0.0046534706f * speedmult && -0.0046534706f * speedmult <= gunturnxspeed60) {
gunturnxspeed60 = 0.0f;
}
#endif
chopper->gunroty = gunroty;
chopper->gunrotx = gunrotx;
chopper->gunturnyspeed60 = gunturnyspeed60;
chopper->gunturnxspeed60 = gunturnxspeed60;
if (!(chopper->fireslotthing->unk00 % 2)) {
firing = false;
}
node = modelGetPart(model->filedata, MODELPART_CHOPPER_GUNFLASH);
if (node) {
rwdata = modelGetNodeRwData(model, node);
}
if (firing) {
f32 totalrotx = chopper->gunrotx + chopper->rotx;
f32 totalroty = chopper->gunroty + chopper->roty;
rot.x = sinf(totalroty) * cosf(totalrotx);
rot.y = sinf(totalrotx);
rot.z = cosf(totalroty) * cosf(totalrotx);
projectileCreate(chopperprop, chopper->fireslotthing, &gunpos, &rot, WEAPON_CHOPPERGUN, targetprop);
if (rwdata != NULL) {
rwdata->visible = true;
}
} else {
if (rwdata != NULL) {
rwdata->visible = false;
}
}
chopper->fireslotthing->unk00++;
}
void chopperIncrementMovement(struct prop *prop, f32 goalroty, f32 goalrotx, struct coord *dir, bool firing)
{
struct defaultobj *obj = prop->obj;
struct chopperobj *chopper = (struct chopperobj *)obj;
s16 newrooms[8];
struct coord newpos;
f32 curroty;
f32 currotx;
f32 currotz;
f32 turnyspeed;
f32 turnxspeed;
f32 rotmtx3[3][3];
f32 tmp;
f32 f2;
s32 i;
f32 speed;
s32 soundnum;
struct coord spfc;
Mtxf spbc;
Mtxf sp7c;
Mtxf sp3c;
f32 angle;
curroty = chopper->roty;
currotx = chopper->rotx;
currotz = chopper->rotz;
turnyspeed = chopper->turnyspeed60;
turnxspeed = chopper->turnxspeed60;
chopper->otx = dir->x;
chopper->oty = dir->y;
chopper->otz = dir->z;
dir->x *= chopper->power;
dir->y *= chopper->power;
dir->z *= chopper->power;
if (chopper->power < 3.7f) {
chopper->power += 0.030833334f * g_Vars.lvupdate240freal;
}
chopper->bob += 0.052359f;
if (chopper->bob > M_BADTAU) {
chopper->bob = 0.0f;
chopper->bobstrength = ((random() % 8) + 2) * 0.01f;
if (chopper->base.flags & OBJFLAG_CHOPPER_INACTIVE) {
chopper->bobstrength *= 0.15f;
}
}
dir->y += chopper->bobstrength * sinf(chopper->bob);
f2 = PAL ? 0.976f : 0.98f;
for (i = 1; i < g_Vars.lvupdate240_60; i++) {
f2 *= PAL ? 0.976f : 0.98f;
}
chopper->vx += dir->x;
chopper->vy += dir->y;
chopper->vz += dir->z;
chopper->vx *= f2;
chopper->vy *= f2;
chopper->vz *= f2;
if (chopper->attackmode != CHOPPERMODE_FALL) {
if (chopper->attackmode != CHOPPERMODE_PATROL || chopper->patroltimer60 > 0) {
speed = 5.0f;
} else {
speed = 8.0f;
}
tmp = chopper->vx * chopper->vx + chopper->vy * chopper->vy + chopper->vz * chopper->vz;
if (tmp > speed * speed) {
guNormalize(&chopper->vx, &chopper->vy, &chopper->vz);
chopper->vx *= speed;
chopper->vy *= speed;
chopper->vz *= speed;
}
}
if (goalrotx > M_PI && goalrotx < 5.8f) {
goalrotx = 5.8f;
}
#if PAL
applyRotation(&curroty, goalroty, &turnyspeed, 0.00026175772654824f, 0.00052351545309648f, 0.015705462545156f);
if (curroty == goalroty && turnyspeed <= 0.00052351545309648f && turnyspeed >= -0.00052351545309648f) {
turnyspeed = 0.0f;
}
applyRotation(&currotx, goalrotx, &turnxspeed, 0.00026175772654824, 0.00052351545309648f, 0.015705462545156f);
if (currotx == goalrotx && turnxspeed <= 0.00052351545309648f && turnxspeed >= -0.00052351545309648f) {
turnxspeed = 0.0f;
}
#else
applyRotation(&curroty, goalroty, &turnyspeed, 0.00021813141938765f, 0.00043626284f, 0.013087885f);
if (curroty == goalroty && turnyspeed <= 0.00043626284f && turnyspeed >= -0.00043626284f) {
turnyspeed = 0.0f;
}
applyRotation(&currotx, goalrotx, &turnxspeed, 0.00021813141938765f, 0.00043626284f, 0.013087885f);
if (currotx == goalrotx && turnxspeed <= 0.00043626284f && turnxspeed >= -0.00043626284f) {
turnxspeed = 0.0f;
}
#endif
currotz += (-turnyspeed * 40.0f - currotz) * 0.1f;
spfc.x = M_BADTAU - currotx;
spfc.y = curroty;
spfc.z = 0.0f;
if (currotz >= 0) {
mtx4LoadZRotation(currotz, &sp3c);
} else {
mtx4LoadZRotation(currotz + M_BADTAU, &sp3c);
}
mtx4LoadRotation(&spfc, &sp7c);
mtx00015f04(chopper->base.model->scale, &sp7c);
mtx4MultMtx4(&sp7c, &sp3c, &spbc);
mtx4ToMtx3(&spbc, rotmtx3);
mtx3Copy(rotmtx3, chopper->base.realrot);
if (chopper->power > 0.45f && !firing && (chopper->base.flags2 & OBJFLAG2_INVISIBLE) == 0 && objIsHealthy(&chopper->base)) {
soundnum = g_Vars.stagenum == STAGE_EXTRACTION ? SFX_810D : SFX_8110;
propsnd0f09294c(prop, soundnum, 6);
} else {
func0f0926bc(prop, 6, 0xffff);
}
chopper->roty = curroty;
chopper->rotx = currotx;
chopper->rotz = currotz;
chopper->turnyspeed60 = turnyspeed;
chopper->turnxspeed60 = turnxspeed;
if (goalroty < curroty) {
angle = curroty - goalroty;
} else {
angle = -(curroty - goalroty);
}
chopper->ontarget = angle < 0.1745f;
newpos.x = prop->pos.x + chopper->vx * g_Vars.lvupdate240freal;
newpos.y = prop->pos.y + chopper->vy * g_Vars.lvupdate240freal;
newpos.z = prop->pos.z + chopper->vz * g_Vars.lvupdate240freal;
func0f065e74(&prop->pos, prop->rooms, &newpos, newrooms);
prop->pos.x = newpos.x;
prop->pos.y = newpos.y;
prop->pos.z = newpos.z;
propDeregisterRooms(prop);
roomsCopy(newrooms, prop->rooms);
func0f069c70(&chopper->base, false, true);
chopperIncrementBarrel(prop, firing);
if ((chopper->base.flags2 & OBJFLAG2_INVISIBLE) == 0 && objIsHealthy(&chopper->base)) {
soundnum = g_Vars.stagenum == STAGE_EXTRACTION ? SFX_SHIP_HUM : SFX_810F;
propsnd0f09294c(prop, soundnum, 5);
} else {
func0f0926bc(prop, 5, 0xffff);
}
}
#if VERSION >= VERSION_JPN_FINAL
GLOBAL_ASM(
glabel chopperTickFall
.late_rodata
glabel var7f1aa66c
.word 0xbf333333
glabel var7f1aa670
.word 0x3c1374bc
glabel var7f1aa674
.word 0xc6ea6000
glabel var7f1aa678
.word 0x40490fdb
glabel var7f1aa67c
.word 0xc0490fdb
glabel var7f1aa680
.word 0x3f7ae148
glabel var7f1aa684
.word 0x3d567664
glabel var7f1aa688
.word 0x40c907a9
glabel var7f1aa68c
.word 0x3c23d70a
glabel var7f1aa690
.word 0x3e19999a
glabel var7f1aa694
.word 0x40490fdb
glabel var7f1aa698
.word 0xc0490fdb
.text
/* f07c12c: 27bdfe80 */ addiu $sp,$sp,-384
/* f07c130: afbf0034 */ sw $ra,0x34($sp)
/* f07c134: afb10030 */ sw $s1,0x30($sp)
/* f07c138: afb0002c */ sw $s0,0x2c($sp)
/* f07c13c: 8c900004 */ lw $s0,0x4($a0)
/* f07c140: 24010002 */ addiu $at,$zero,0x2
/* f07c144: 00808825 */ or $s1,$a0,$zero
/* f07c148: 8e0300c0 */ lw $v1,0xc0($s0)
/* f07c14c: 3c0e800a */ lui $t6,%hi(g_Vars+0x38)
/* f07c150: 02002825 */ or $a1,$s0,$zero
/* f07c154: 14610078 */ bne $v1,$at,.L0f07c338
/* f07c158: 00000000 */ nop
/* f07c15c: 8dce9ff8 */ lw $t6,%lo(g_Vars+0x38)($t6)
/* f07c160: 8e080088 */ lw $t0,0x88($s0)
/* f07c164: 44801000 */ mtc1 $zero,$f2
/* f07c168: 44807000 */ mtc1 $zero,$f14
/* f07c16c: 006e7823 */ subu $t7,$v1,$t6
/* f07c170: 1100006a */ beqz $t0,.L0f07c31c
/* f07c174: ae0f00c0 */ sw $t7,0xc0($s0)
/* f07c178: 95070006 */ lhu $a3,0x6($t0)
/* f07c17c: 00001825 */ or $v1,$zero,$zero
/* f07c180: 58e0001c */ blezl $a3,.L0f07c1f4
/* f07c184: 920a0097 */ lbu $t2,0x97($s0)
/* f07c188: 92040097 */ lbu $a0,0x97($s0)
/* f07c18c: 8e06008c */ lw $a2,0x8c($s0)
.L0f07c190:
/* f07c190: 50800004 */ beqzl $a0,.L0f07c1a4
/* f07c194: 24780001 */ addiu $t8,$v1,0x1
/* f07c198: 1000000d */ b .L0f07c1d0
/* f07c19c: 00601025 */ or $v0,$v1,$zero
/* f07c1a0: 24780001 */ addiu $t8,$v1,0x1
.L0f07c1a4:
/* f07c1a4: 0307001a */ div $zero,$t8,$a3
/* f07c1a8: 00001010 */ mfhi $v0
/* f07c1ac: 14e00002 */ bnez $a3,.L0f07c1b8
/* f07c1b0: 00000000 */ nop
/* f07c1b4: 0007000d */ break 0x7
.L0f07c1b8:
/* f07c1b8: 2401ffff */ addiu $at,$zero,-1
/* f07c1bc: 14e10004 */ bne $a3,$at,.L0f07c1d0
/* f07c1c0: 3c018000 */ lui $at,0x8000
/* f07c1c4: 17010002 */ bne $t8,$at,.L0f07c1d0
/* f07c1c8: 00000000 */ nop
/* f07c1cc: 0006000d */ break 0x6
.L0f07c1d0:
/* f07c1d0: 50460008 */ beql $v0,$a2,.L0f07c1f4
/* f07c1d4: 920a0097 */ lbu $t2,0x97($s0)
/* f07c1d8: 8cb90088 */ lw $t9,0x88($a1)
/* f07c1dc: 24630001 */ addiu $v1,$v1,0x1
/* f07c1e0: 97290006 */ lhu $t1,0x6($t9)
/* f07c1e4: 0069082a */ slt $at,$v1,$t1
/* f07c1e8: 1420ffe9 */ bnez $at,.L0f07c190
/* f07c1ec: 00000000 */ nop
/* f07c1f0: 920a0097 */ lbu $t2,0x97($s0)
.L0f07c1f4:
/* f07c1f4: 24050002 */ addiu $a1,$zero,0x2
/* f07c1f8: 246b0001 */ addiu $t3,$v1,0x1
/* f07c1fc: 5140000f */ beqzl $t2,.L0f07c23c
/* f07c200: 00601025 */ or $v0,$v1,$zero
/* f07c204: 0167001a */ div $zero,$t3,$a3
/* f07c208: 00001010 */ mfhi $v0
/* f07c20c: 14e00002 */ bnez $a3,.L0f07c218
/* f07c210: 00000000 */ nop
/* f07c214: 0007000d */ break 0x7
.L0f07c218:
/* f07c218: 2401ffff */ addiu $at,$zero,-1
/* f07c21c: 14e10004 */ bne $a3,$at,.L0f07c230
/* f07c220: 3c018000 */ lui $at,0x8000
/* f07c224: 15610002 */ bne $t3,$at,.L0f07c230
/* f07c228: 00000000 */ nop
/* f07c22c: 0006000d */ break 0x6
.L0f07c230:
/* f07c230: 10000003 */ b .L0f07c240
/* f07c234: 8d0c0000 */ lw $t4,0x0($t0)
/* f07c238: 00601025 */ or $v0,$v1,$zero
.L0f07c23c:
/* f07c23c: 8d0c0000 */ lw $t4,0x0($t0)
.L0f07c240:
/* f07c240: 00026880 */ sll $t5,$v0,0x2
/* f07c244: 27a60104 */ addiu $a2,$sp,0x104
/* f07c248: 018d7021 */ addu $t6,$t4,$t5
/* f07c24c: 8dc40000 */ lw $a0,0x0($t6)
/* f07c250: 0fc456ac */ jal padUnpack
/* f07c254: afa30158 */ sw $v1,0x158($sp)
/* f07c258: 920f0097 */ lbu $t7,0x97($s0)
/* f07c25c: 8fa30158 */ lw $v1,0x158($sp)
/* f07c260: 24050002 */ addiu $a1,$zero,0x2
/* f07c264: 51e00005 */ beqzl $t7,.L0f07c27c
/* f07c268: 8e080088 */ lw $t0,0x88($s0)
/* f07c26c: 00601025 */ or $v0,$v1,$zero
/* f07c270: 1000000f */ b .L0f07c2b0
/* f07c274: 8e080088 */ lw $t0,0x88($s0)
/* f07c278: 8e080088 */ lw $t0,0x88($s0)
.L0f07c27c:
/* f07c27c: 24780001 */ addiu $t8,$v1,0x1
/* f07c280: 95190006 */ lhu $t9,0x6($t0)
/* f07c284: 0319001a */ div $zero,$t8,$t9
/* f07c288: 00001010 */ mfhi $v0
/* f07c28c: 17200002 */ bnez $t9,.L0f07c298
/* f07c290: 00000000 */ nop
/* f07c294: 0007000d */ break 0x7
.L0f07c298:
/* f07c298: 2401ffff */ addiu $at,$zero,-1
/* f07c29c: 17210004 */ bne $t9,$at,.L0f07c2b0
/* f07c2a0: 3c018000 */ lui $at,0x8000
/* f07c2a4: 17010002 */ bne $t8,$at,.L0f07c2b0
/* f07c2a8: 00000000 */ nop
/* f07c2ac: 0006000d */ break 0x6
.L0f07c2b0:
/* f07c2b0: 8d090000 */ lw $t1,0x0($t0)
/* f07c2b4: 00025080 */ sll $t2,$v0,0x2
/* f07c2b8: 27a600b0 */ addiu $a2,$sp,0xb0
/* f07c2bc: 012a5821 */ addu $t3,$t1,$t2
/* f07c2c0: 0fc456ac */ jal padUnpack
/* f07c2c4: 8d640000 */ lw $a0,0x0($t3)
/* f07c2c8: c7a40104 */ lwc1 $f4,0x104($sp)
/* f07c2cc: c7a600b0 */ lwc1 $f6,0xb0($sp)
/* f07c2d0: c7a8010c */ lwc1 $f8,0x10c($sp)
/* f07c2d4: c7aa00b8 */ lwc1 $f10,0xb8($sp)
/* f07c2d8: 46062081 */ sub.s $f2,$f4,$f6
/* f07c2dc: 460a4381 */ sub.s $f14,$f8,$f10
/* f07c2e0: 46021402 */ mul.s $f16,$f2,$f2
/* f07c2e4: e7a200ac */ swc1 $f2,0xac($sp)
/* f07c2e8: 460e7482 */ mul.s $f18,$f14,$f14
/* f07c2ec: e7ae00a8 */ swc1 $f14,0xa8($sp)
/* f07c2f0: 0c012974 */ jal sqrtf
/* f07c2f4: 46128300 */ add.s $f12,$f16,$f18
/* f07c2f8: 3c013e80 */ lui $at,0x3e80
/* f07c2fc: 44812000 */ mtc1 $at,$f4
/* f07c300: c7a200ac */ lwc1 $f2,0xac($sp)
/* f07c304: c7ae00a8 */ lwc1 $f14,0xa8($sp)
/* f07c308: 46002303 */ div.s $f12,$f4,$f0
/* f07c30c: 460c1082 */ mul.s $f2,$f2,$f12
/* f07c310: 00000000 */ nop
/* f07c314: 460c7382 */ mul.s $f14,$f14,$f12
/* f07c318: 00000000 */ nop
.L0f07c31c:
/* f07c31c: 44804000 */ mtc1 $zero,$f8
/* f07c320: 46007187 */ neg.s $f6,$f14
/* f07c324: 26020068 */ addiu $v0,$s0,0x68
/* f07c328: e6060064 */ swc1 $f6,0x64($s0)
/* f07c32c: e4480000 */ swc1 $f8,0x0($v0)
/* f07c330: 10000017 */ b .L0f07c390
/* f07c334: e602006c */ swc1 $f2,0x6c($s0)
.L0f07c338:
/* f07c338: 04600007 */ bltz $v1,.L0f07c358
/* f07c33c: 26020068 */ addiu $v0,$s0,0x68
/* f07c340: 3c0c800a */ lui $t4,%hi(g_Vars+0x38)
/* f07c344: 8d8c9ff8 */ lw $t4,%lo(g_Vars+0x38)($t4)
/* f07c348: 26020068 */ addiu $v0,$s0,0x68
/* f07c34c: 006c6823 */ subu $t5,$v1,$t4
/* f07c350: 1000000f */ b .L0f07c390
/* f07c354: ae0d00c0 */ sw $t5,0xc0($s0)
.L0f07c358:
/* f07c358: 3c017f1b */ lui $at,%hi(var7f1aa66c)
/* f07c35c: c42aa66c */ lwc1 $f10,%lo(var7f1aa66c)($at)
/* f07c360: c4400000 */ lwc1 $f0,0x0($v0)
/* f07c364: 3c017f1b */ lui $at,%hi(var7f1aa670)
/* f07c368: 4600503c */ c.lt.s $f10,$f0
/* f07c36c: 00000000 */ nop
/* f07c370: 45020008 */ bc1fl .L0f07c394
/* f07c374: 26030064 */ addiu $v1,$s0,0x64
/* f07c378: c430a670 */ lwc1 $f16,%lo(var7f1aa670)($at)
/* f07c37c: 3c01800a */ lui $at,%hi(g_Vars+0x44)
/* f07c380: c432a004 */ lwc1 $f18,%lo(g_Vars+0x44)($at)
/* f07c384: 46128102 */ mul.s $f4,$f16,$f18
/* f07c388: 46040181 */ sub.s $f6,$f0,$f4
/* f07c38c: e4460000 */ swc1 $f6,0x0($v0)
.L0f07c390:
/* f07c390: 26030064 */ addiu $v1,$s0,0x64
.L0f07c394:
/* f07c394: c4680000 */ lwc1 $f8,0x0($v1)
/* f07c398: 2605006c */ addiu $a1,$s0,0x6c
/* f07c39c: 3c04800a */ lui $a0,%hi(g_Vars+0x4b4)
/* f07c3a0: e7a8015c */ swc1 $f8,0x15c($sp)
/* f07c3a4: c44a0000 */ lwc1 $f10,0x0($v0)
/* f07c3a8: 8c84a474 */ lw $a0,%lo(g_Vars+0x4b4)($a0)
/* f07c3ac: e7aa0160 */ swc1 $f10,0x160($sp)
/* f07c3b0: c4b00000 */ lwc1 $f16,0x0($a1)
/* f07c3b4: e7b00164 */ swc1 $f16,0x164($sp)
/* f07c3b8: c4640000 */ lwc1 $f4,0x0($v1)
/* f07c3bc: c612007c */ lwc1 $f18,0x7c($s0)
/* f07c3c0: c4a80000 */ lwc1 $f8,0x0($a1)
/* f07c3c4: 46049180 */ add.s $f6,$f18,$f4
/* f07c3c8: 46064280 */ add.s $f10,$f8,$f6
/* f07c3cc: 0fc59585 */ jal stageGetIndex
/* f07c3d0: e7aa0174 */ swc1 $f10,0x174($sp)
/* f07c3d4: 2401000e */ addiu $at,$zero,0xe
/* f07c3d8: 14410022 */ bne $v0,$at,.L0f07c464
/* f07c3dc: 3c03800a */ lui $v1,%hi(g_Vars+0x38)
/* f07c3e0: 3c017f1b */ lui $at,%hi(var7f1aa674)
/* f07c3e4: c432a674 */ lwc1 $f18,%lo(var7f1aa674)($at)
/* f07c3e8: c630000c */ lwc1 $f16,0xc($s1)
/* f07c3ec: 3406ffff */ dli $a2,0xffff
/* f07c3f0: 02202025 */ or $a0,$s1,$zero
/* f07c3f4: 4612803c */ c.lt.s $f16,$f18
/* f07c3f8: 8fa50174 */ lw $a1,0x174($sp)
/* f07c3fc: 27a7015c */ addiu $a3,$sp,0x15c
/* f07c400: 45020009 */ bc1fl .L0f07c428
/* f07c404: c6040080 */ lwc1 $f4,0x80($s0)
/* f07c408: 02202025 */ or $a0,$s1,$zero
/* f07c40c: 0fc249af */ jal func0f0926bc
/* f07c410: 24050001 */ addiu $a1,$zero,0x1
/* f07c414: 8e0e0040 */ lw $t6,0x40($s0)
/* f07c418: 35cf0004 */ ori $t7,$t6,0x4
/* f07c41c: 100000df */ b .L0f07c79c
/* f07c420: ae0f0040 */ sw $t7,0x40($s0)
/* f07c424: c6040080 */ lwc1 $f4,0x80($s0)
.L0f07c428:
/* f07c428: 44804000 */ mtc1 $zero,$f8
/* f07c42c: 3c017f1b */ lui $at,%hi(var7f1aa678)
/* f07c430: 4608203c */ c.lt.s $f4,$f8
/* f07c434: 00000000 */ nop
/* f07c438: 45000004 */ bc1f .L0f07c44c
/* f07c43c: 00000000 */ nop
/* f07c440: 3c017f1b */ lui $at,%hi(var7f1aa67c)
/* f07c444: 10000002 */ b .L0f07c450
/* f07c448: c420a678 */ lwc1 $f0,%lo(var7f1aa678)($at)
.L0f07c44c:
/* f07c44c: c420a67c */ lwc1 $f0,%lo(var7f1aa67c)($at)
.L0f07c450:
/* f07c450: 44060000 */ mfc1 $a2,$f0
/* f07c454: 0fc1ee8e */ jal chopperIncrementMovement
/* f07c458: afa00010 */ sw $zero,0x10($sp)
/* f07c45c: 100000d0 */ b .L0f07c7a0
/* f07c460: 8fbf0034 */ lw $ra,0x34($sp)
.L0f07c464:
/* f07c464: 8c639ff8 */ lw $v1,%lo(g_Vars+0x38)($v1)
/* f07c468: 3c017f1b */ lui $at,%hi(var7f1aa680)
/* f07c46c: c420a680 */ lwc1 $f0,%lo(var7f1aa680)($at)
/* f07c470: 28610002 */ slti $at,$v1,0x2
/* f07c474: 24020001 */ addiu $v0,$zero,0x1
/* f07c478: 14200006 */ bnez $at,.L0f07c494
/* f07c47c: 46000086 */ mov.s $f2,$f0
/* f07c480: 24420001 */ addiu $v0,$v0,0x1
.L0f07c484:
/* f07c484: 0043082a */ slt $at,$v0,$v1
/* f07c488: 46001082 */ mul.s $f2,$f2,$f0
/* f07c48c: 5420fffd */ bnezl $at,.L0f07c484
/* f07c490: 24420001 */ addiu $v0,$v0,0x1
.L0f07c494:
/* f07c494: 3c017f1b */ lui $at,%hi(var7f1aa684)
/* f07c498: c42aa684 */ lwc1 $f10,%lo(var7f1aa684)($at)
/* f07c49c: c60600b4 */ lwc1 $f6,0xb4($s0)
/* f07c4a0: 3c017f1b */ lui $at,%hi(var7f1aa688)
/* f07c4a4: c430a688 */ lwc1 $f16,%lo(var7f1aa688)($at)
/* f07c4a8: 460a3300 */ add.s $f12,$f6,$f10
/* f07c4ac: 460c803c */ c.lt.s $f16,$f12
/* f07c4b0: 00000000 */ nop
/* f07c4b4: 4500001c */ bc1f .L0f07c528
/* f07c4b8: 00000000 */ nop
/* f07c4bc: 44806000 */ mtc1 $zero,$f12
/* f07c4c0: e7a20088 */ swc1 $f2,0x88($sp)
/* f07c4c4: 0c004b70 */ jal random
/* f07c4c8: e7ac0084 */ swc1 $f12,0x84($sp)
/* f07c4cc: 30580007 */ andi $t8,$v0,0x7
/* f07c4d0: 27190002 */ addiu $t9,$t8,0x2
/* f07c4d4: 44999000 */ mtc1 $t9,$f18
/* f07c4d8: c7a20088 */ lwc1 $f2,0x88($sp)
/* f07c4dc: c7ac0084 */ lwc1 $f12,0x84($sp)
/* f07c4e0: 07210005 */ bgez $t9,.L0f07c4f8
/* f07c4e4: 46809120 */ cvt.s.w $f4,$f18
/* f07c4e8: 3c014f80 */ lui $at,0x4f80
/* f07c4ec: 44814000 */ mtc1 $at,$f8
/* f07c4f0: 00000000 */ nop
/* f07c4f4: 46082100 */ add.s $f4,$f4,$f8
.L0f07c4f8:
/* f07c4f8: 3c017f1b */ lui $at,%hi(var7f1aa68c)
/* f07c4fc: c426a68c */ lwc1 $f6,%lo(var7f1aa68c)($at)
/* f07c500: 8e090008 */ lw $t1,0x8($s0)
/* f07c504: 3c017f1b */ lui $at,%hi(var7f1aa690)
/* f07c508: 46062282 */ mul.s $f10,$f4,$f6
/* f07c50c: 00095000 */ sll $t2,$t1,0x0
/* f07c510: 05410005 */ bgez $t2,.L0f07c528
/* f07c514: e60a00b8 */ swc1 $f10,0xb8($s0)
/* f07c518: c61000b8 */ lwc1 $f16,0xb8($s0)
/* f07c51c: c432a690 */ lwc1 $f18,%lo(var7f1aa690)($at)
/* f07c520: 46128202 */ mul.s $f8,$f16,$f18
/* f07c524: e60800b8 */ swc1 $f8,0xb8($s0)
.L0f07c528:
/* f07c528: 0c0068f7 */ jal sinf
/* f07c52c: e7a20088 */ swc1 $f2,0x88($sp)
/* f07c530: c60600b8 */ lwc1 $f6,0xb8($s0)
/* f07c534: c7a40160 */ lwc1 $f4,0x160($sp)
/* f07c538: c7b2015c */ lwc1 $f18,0x15c($sp)
/* f07c53c: 46003282 */ mul.s $f10,$f6,$f0
/* f07c540: c7a20088 */ lwc1 $f2,0x88($sp)
/* f07c544: 3c01800a */ lui $at,%hi(g_Vars+0x4c)
/* f07c548: c42ca00c */ lwc1 $f12,%lo(g_Vars+0x4c)($at)
/* f07c54c: 26240008 */ addiu $a0,$s1,0x8
/* f07c550: 26250028 */ addiu $a1,$s1,0x28
/* f07c554: 27a60098 */ addiu $a2,$sp,0x98
/* f07c558: 460a2400 */ add.s $f16,$f4,$f10
/* f07c55c: 24070020 */ addiu $a3,$zero,0x20
/* f07c560: e7b00160 */ swc1 $f16,0x160($sp)
/* f07c564: c60800a4 */ lwc1 $f8,0xa4($s0)
/* f07c568: c6040098 */ lwc1 $f4,0x98($s0)
/* f07c56c: 46089182 */ mul.s $f6,$f18,$f8
/* f07c570: 46043280 */ add.s $f10,$f6,$f4
/* f07c574: 46025482 */ mul.s $f18,$f10,$f2
/* f07c578: e7b2008c */ swc1 $f18,0x8c($sp)
/* f07c57c: c60800a4 */ lwc1 $f8,0xa4($s0)
/* f07c580: c604009c */ lwc1 $f4,0x9c($s0)
/* f07c584: 46088182 */ mul.s $f6,$f16,$f8
/* f07c588: c7a80164 */ lwc1 $f8,0x164($sp)
/* f07c58c: 46043280 */ add.s $f10,$f6,$f4
/* f07c590: 46025402 */ mul.s $f16,$f10,$f2
/* f07c594: e7b00090 */ swc1 $f16,0x90($sp)
/* f07c598: c60600a4 */ lwc1 $f6,0xa4($s0)
/* f07c59c: c60a00a0 */ lwc1 $f10,0xa0($s0)
/* f07c5a0: 46064102 */ mul.s $f4,$f8,$f6
/* f07c5a4: 460a2200 */ add.s $f8,$f4,$f10
/* f07c5a8: 46024182 */ mul.s $f6,$f8,$f2
/* f07c5ac: e7a60094 */ swc1 $f6,0x94($sp)
/* f07c5b0: 460c9102 */ mul.s $f4,$f18,$f12
/* f07c5b4: c62a0008 */ lwc1 $f10,0x8($s1)
/* f07c5b8: 460c8482 */ mul.s $f18,$f16,$f12
/* f07c5bc: 460a2200 */ add.s $f8,$f4,$f10
/* f07c5c0: e7a80098 */ swc1 $f8,0x98($sp)
/* f07c5c4: c624000c */ lwc1 $f4,0xc($s1)
/* f07c5c8: 460c3202 */ mul.s $f8,$f6,$f12
/* f07c5cc: 46049280 */ add.s $f10,$f18,$f4
/* f07c5d0: e7aa009c */ swc1 $f10,0x9c($sp)
/* f07c5d4: c6300010 */ lwc1 $f16,0x10($s1)
/* f07c5d8: afa50040 */ sw $a1,0x40($sp)
/* f07c5dc: afa40044 */ sw $a0,0x44($sp)
/* f07c5e0: 46104480 */ add.s $f18,$f8,$f16
/* f07c5e4: 0c00b784 */ jal cd0002de10
/* f07c5e8: e7b200a0 */ swc1 $f18,0xa0($sp)
/* f07c5ec: 14400058 */ bnez $v0,.L0f07c750
/* f07c5f0: 8fa40044 */ lw $a0,0x44($sp)
/* f07c5f4: 3c0142c8 */ lui $at,0x42c8
/* f07c5f8: 44815000 */ mtc1 $at,$f10
/* f07c5fc: c624000c */ lwc1 $f4,0xc($s1)
/* f07c600: 3c0540a0 */ lui $a1,0x40a0
/* f07c604: 00003825 */ or $a3,$zero,$zero
/* f07c608: 460a2180 */ add.s $f6,$f4,$f10
/* f07c60c: e626000c */ swc1 $f6,0xc($s1)
/* f07c610: afa00010 */ sw $zero,0x10($sp)
/* f07c614: 8fa60040 */ lw $a2,0x40($sp)
/* f07c618: 0c00a8cc */ jal cdFindGroundYSimple
/* f07c61c: 8fa40044 */ lw $a0,0x44($sp)
/* f07c620: e7a00060 */ swc1 $f0,0x60($sp)
/* f07c624: 3c0142c8 */ lui $at,0x42c8
/* f07c628: 44818000 */ mtc1 $at,$f16
/* f07c62c: c628000c */ lwc1 $f8,0xc($s1)
/* f07c630: 3c067f1b */ lui $a2,%hi(var7f1aa044)
/* f07c634: 24c6a044 */ addiu $a2,$a2,%lo(var7f1aa044)
/* f07c638: 46104481 */ sub.s $f18,$f8,$f16
/* f07c63c: 27a40064 */ addiu $a0,$sp,0x64
/* f07c640: 240530a1 */ addiu $a1,$zero,0x30bc
/* f07c644: 0c0093af */ jal cdGetPos
/* f07c648: e632000c */ swc1 $f18,0xc($s1)
/* f07c64c: 3c0141a0 */ lui $at,0x41a0
/* f07c650: 44813000 */ mtc1 $at,$f6
/* f07c654: c7aa0060 */ lwc1 $f10,0x60($sp)
/* f07c658: c7a40064 */ lwc1 $f4,0x64($sp)
/* f07c65c: c7b0006c */ lwc1 $f16,0x6c($sp)
/* f07c660: 46065200 */ add.s $f8,$f10,$f6
/* f07c664: 8fa40044 */ lw $a0,0x44($sp)
/* f07c668: 8fa50040 */ lw $a1,0x40($sp)
/* f07c66c: 27a60098 */ addiu $a2,$sp,0x98
/* f07c670: e7a8009c */ swc1 $f8,0x9c($sp)
/* f07c674: 27a70050 */ addiu $a3,$sp,0x50
/* f07c678: e7a40098 */ swc1 $f4,0x98($sp)
/* f07c67c: 0fc1979d */ jal func0f065e74
/* f07c680: e7b000a0 */ swc1 $f16,0xa0($sp)
/* f07c684: c7b20098 */ lwc1 $f18,0x98($sp)
/* f07c688: 02202025 */ or $a0,$s1,$zero
/* f07c68c: e6320008 */ swc1 $f18,0x8($s1)
/* f07c690: c7a4009c */ lwc1 $f4,0x9c($sp)
/* f07c694: e624000c */ swc1 $f4,0xc($s1)
/* f07c698: c7aa00a0 */ lwc1 $f10,0xa0($sp)
/* f07c69c: 0fc19711 */ jal propDeregisterRooms
/* f07c6a0: e62a0010 */ swc1 $f10,0x10($s1)
/* f07c6a4: 27a40050 */ addiu $a0,$sp,0x50
/* f07c6a8: 0fc195e9 */ jal roomsCopy
/* f07c6ac: 8fa50040 */ lw $a1,0x40($sp)
/* f07c6b0: 02002025 */ or $a0,$s0,$zero
/* f07c6b4: 00002825 */ or $a1,$zero,$zero
/* f07c6b8: 0fc1a71c */ jal func0f069c70
/* f07c6bc: 24060001 */ addiu $a2,$zero,0x1
/* f07c6c0: 920b0096 */ lbu $t3,0x96($s0)
/* f07c6c4: 02002025 */ or $a0,$s0,$zero
/* f07c6c8: 24050008 */ addiu $a1,$zero,0x8
/* f07c6cc: 256c0001 */ addiu $t4,$t3,0x1
/* f07c6d0: 0fc20733 */ jal objDeform
/* f07c6d4: a20c0096 */ sb $t4,0x96($s0)
/* f07c6d8: 862d0028 */ lh $t5,0x28($s1)
/* f07c6dc: 3c013f80 */ lui $at,0x3f80
/* f07c6e0: 44803000 */ mtc1 $zero,$f6
/* f07c6e4: 44814000 */ mtc1 $at,$f8
/* f07c6e8: 44808000 */ mtc1 $zero,$f16
/* f07c6ec: 02202025 */ or $a0,$s1,$zero
/* f07c6f0: 24050001 */ addiu $a1,$zero,0x1
/* f07c6f4: 3406ffff */ dli $a2,0xffff
/* f07c6f8: a7ad0072 */ sh $t5,0x72($sp)
/* f07c6fc: e7a60074 */ swc1 $f6,0x74($sp)
/* f07c700: e7a80078 */ swc1 $f8,0x78($sp)
/* f07c704: 0fc249af */ jal func0f0926bc
/* f07c708: e7b0007c */ swc1 $f16,0x7c($sp)
/* f07c70c: 87b80072 */ lh $t8,0x72($sp)
/* f07c710: 240e0001 */ addiu $t6,$zero,0x1
/* f07c714: 27af0098 */ addiu $t7,$sp,0x98
/* f07c718: 27b90074 */ addiu $t9,$sp,0x74
/* f07c71c: afb90020 */ sw $t9,0x20($sp)
/* f07c720: afaf0018 */ sw $t7,0x18($sp)
/* f07c724: afae0014 */ sw $t6,0x14($sp)
/* f07c728: 00002025 */ or $a0,$zero,$zero
/* f07c72c: 8fa50044 */ lw $a1,0x44($sp)
/* f07c730: 8fa60040 */ lw $a2,0x40($sp)
/* f07c734: 2407000d */ addiu $a3,$zero,0xd
/* f07c738: afa00010 */ sw $zero,0x10($sp)
/* f07c73c: 0fc4a7d5 */ jal explosionCreate
/* f07c740: afb8001c */ sw $t8,0x1c($sp)
/* f07c744: 24090001 */ addiu $t1,$zero,0x1
/* f07c748: 10000014 */ b .L0f07c79c
/* f07c74c: ae0900e4 */ sw $t1,0xe4($s0)
.L0f07c750:
/* f07c750: 8fa50040 */ lw $a1,0x40($sp)
/* f07c754: 0fc4ba08 */ jal smokeCreateSimple
/* f07c758: 24060003 */ addiu $a2,$zero,0x3
/* f07c75c: c6120080 */ lwc1 $f18,0x80($s0)
/* f07c760: 44802000 */ mtc1 $zero,$f4
/* f07c764: 02202025 */ or $a0,$s1,$zero
/* f07c768: 8fa50174 */ lw $a1,0x174($sp)
/* f07c76c: 4604903c */ c.lt.s $f18,$f4
/* f07c770: 27a7015c */ addiu $a3,$sp,0x15c
/* f07c774: 3c017f1b */ lui $at,%hi(var7f1aa694)
/* f07c778: 45000004 */ bc1f .L0f07c78c
/* f07c77c: 00000000 */ nop
/* f07c780: 3c017f1b */ lui $at,%hi(var7f1aa698)
/* f07c784: 10000002 */ b .L0f07c790
/* f07c788: c420a694 */ lwc1 $f0,%lo(var7f1aa694)($at)
.L0f07c78c:
/* f07c78c: c420a698 */ lwc1 $f0,%lo(var7f1aa698)($at)
.L0f07c790:
/* f07c790: 44060000 */ mfc1 $a2,$f0
/* f07c794: 0fc1ee8e */ jal chopperIncrementMovement
/* f07c798: afa00010 */ sw $zero,0x10($sp)
.L0f07c79c:
/* f07c79c: 8fbf0034 */ lw $ra,0x34($sp)
.L0f07c7a0:
/* f07c7a0: 8fb0002c */ lw $s0,0x2c($sp)
/* f07c7a4: 8fb10030 */ lw $s1,0x30($sp)
/* f07c7a8: 03e00008 */ jr $ra
/* f07c7ac: 27bd0180 */ addiu $sp,$sp,0x180
);
#elif PAL
GLOBAL_ASM(
glabel chopperTickFall
.late_rodata
glabel var7f1aa66c
.word 0xbf333333
glabel var7f1aa670
.word 0x3c1374bc
glabel var7f1aa674
.word 0xc6ea6000
glabel var7f1aa678
.word 0x40490fdb
glabel var7f1aa67c
.word 0xc0490fdb
glabel var7f1aa680
.word 0x3f79db23
glabel var7f1aa684
.word 0x3d567664
glabel var7f1aa688
.word 0x40c907a9
glabel var7f1aa68c
.word 0x3c23d70a
glabel var7f1aa690
.word 0x3e19999a
glabel var7f1aa694
.word 0x40490fdb
glabel var7f1aa698
.word 0xc0490fdb
.text
/* f07c12c: 27bdfe80 */ addiu $sp,$sp,-384
/* f07c130: afbf0034 */ sw $ra,0x34($sp)
/* f07c134: afb10030 */ sw $s1,0x30($sp)
/* f07c138: afb0002c */ sw $s0,0x2c($sp)
/* f07c13c: 8c900004 */ lw $s0,0x4($a0)
/* f07c140: 24010002 */ addiu $at,$zero,0x2
/* f07c144: 00808825 */ or $s1,$a0,$zero
/* f07c148: 8e0300c0 */ lw $v1,0xc0($s0)
/* f07c14c: 3c0e800a */ lui $t6,%hi(g_Vars+0x38)
/* f07c150: 02002825 */ or $a1,$s0,$zero
/* f07c154: 14610078 */ bne $v1,$at,.L0f07c338
/* f07c158: 00000000 */ nop
/* f07c15c: 8dce9ff8 */ lw $t6,%lo(g_Vars+0x38)($t6)
/* f07c160: 8e080088 */ lw $t0,0x88($s0)
/* f07c164: 44801000 */ mtc1 $zero,$f2
/* f07c168: 44807000 */ mtc1 $zero,$f14
/* f07c16c: 006e7823 */ subu $t7,$v1,$t6
/* f07c170: 1100006a */ beqz $t0,.L0f07c31c
/* f07c174: ae0f00c0 */ sw $t7,0xc0($s0)
/* f07c178: 95070006 */ lhu $a3,0x6($t0)
/* f07c17c: 00001825 */ or $v1,$zero,$zero
/* f07c180: 58e0001c */ blezl $a3,.L0f07c1f4
/* f07c184: 920a0097 */ lbu $t2,0x97($s0)
/* f07c188: 92040097 */ lbu $a0,0x97($s0)
/* f07c18c: 8e06008c */ lw $a2,0x8c($s0)
.L0f07c190:
/* f07c190: 50800004 */ beqzl $a0,.L0f07c1a4
/* f07c194: 24780001 */ addiu $t8,$v1,0x1
/* f07c198: 1000000d */ b .L0f07c1d0
/* f07c19c: 00601025 */ or $v0,$v1,$zero
/* f07c1a0: 24780001 */ addiu $t8,$v1,0x1
.L0f07c1a4:
/* f07c1a4: 0307001a */ div $zero,$t8,$a3
/* f07c1a8: 00001010 */ mfhi $v0
/* f07c1ac: 14e00002 */ bnez $a3,.L0f07c1b8
/* f07c1b0: 00000000 */ nop
/* f07c1b4: 0007000d */ break 0x7
.L0f07c1b8:
/* f07c1b8: 2401ffff */ addiu $at,$zero,-1
/* f07c1bc: 14e10004 */ bne $a3,$at,.L0f07c1d0
/* f07c1c0: 3c018000 */ lui $at,0x8000
/* f07c1c4: 17010002 */ bne $t8,$at,.L0f07c1d0
/* f07c1c8: 00000000 */ nop
/* f07c1cc: 0006000d */ break 0x6
.L0f07c1d0:
/* f07c1d0: 50460008 */ beql $v0,$a2,.L0f07c1f4
/* f07c1d4: 920a0097 */ lbu $t2,0x97($s0)
/* f07c1d8: 8cb90088 */ lw $t9,0x88($a1)
/* f07c1dc: 24630001 */ addiu $v1,$v1,0x1
/* f07c1e0: 97290006 */ lhu $t1,0x6($t9)
/* f07c1e4: 0069082a */ slt $at,$v1,$t1
/* f07c1e8: 1420ffe9 */ bnez $at,.L0f07c190
/* f07c1ec: 00000000 */ nop
/* f07c1f0: 920a0097 */ lbu $t2,0x97($s0)
.L0f07c1f4:
/* f07c1f4: 24050002 */ addiu $a1,$zero,0x2
/* f07c1f8: 246b0001 */ addiu $t3,$v1,0x1
/* f07c1fc: 5140000f */ beqzl $t2,.L0f07c23c
/* f07c200: 00601025 */ or $v0,$v1,$zero
/* f07c204: 0167001a */ div $zero,$t3,$a3
/* f07c208: 00001010 */ mfhi $v0
/* f07c20c: 14e00002 */ bnez $a3,.L0f07c218
/* f07c210: 00000000 */ nop
/* f07c214: 0007000d */ break 0x7
.L0f07c218:
/* f07c218: 2401ffff */ addiu $at,$zero,-1
/* f07c21c: 14e10004 */ bne $a3,$at,.L0f07c230
/* f07c220: 3c018000 */ lui $at,0x8000
/* f07c224: 15610002 */ bne $t3,$at,.L0f07c230
/* f07c228: 00000000 */ nop
/* f07c22c: 0006000d */ break 0x6
.L0f07c230:
/* f07c230: 10000003 */ b .L0f07c240
/* f07c234: 8d0c0000 */ lw $t4,0x0($t0)
/* f07c238: 00601025 */ or $v0,$v1,$zero
.L0f07c23c:
/* f07c23c: 8d0c0000 */ lw $t4,0x0($t0)
.L0f07c240:
/* f07c240: 00026880 */ sll $t5,$v0,0x2
/* f07c244: 27a60104 */ addiu $a2,$sp,0x104
/* f07c248: 018d7021 */ addu $t6,$t4,$t5
/* f07c24c: 8dc40000 */ lw $a0,0x0($t6)
/* f07c250: 0fc456ac */ jal padUnpack
/* f07c254: afa30158 */ sw $v1,0x158($sp)
/* f07c258: 920f0097 */ lbu $t7,0x97($s0)
/* f07c25c: 8fa30158 */ lw $v1,0x158($sp)
/* f07c260: 24050002 */ addiu $a1,$zero,0x2
/* f07c264: 51e00005 */ beqzl $t7,.L0f07c27c
/* f07c268: 8e080088 */ lw $t0,0x88($s0)
/* f07c26c: 00601025 */ or $v0,$v1,$zero
/* f07c270: 1000000f */ b .L0f07c2b0
/* f07c274: 8e080088 */ lw $t0,0x88($s0)
/* f07c278: 8e080088 */ lw $t0,0x88($s0)
.L0f07c27c:
/* f07c27c: 24780001 */ addiu $t8,$v1,0x1
/* f07c280: 95190006 */ lhu $t9,0x6($t0)
/* f07c284: 0319001a */ div $zero,$t8,$t9
/* f07c288: 00001010 */ mfhi $v0
/* f07c28c: 17200002 */ bnez $t9,.L0f07c298
/* f07c290: 00000000 */ nop
/* f07c294: 0007000d */ break 0x7
.L0f07c298:
/* f07c298: 2401ffff */ addiu $at,$zero,-1
/* f07c29c: 17210004 */ bne $t9,$at,.L0f07c2b0
/* f07c2a0: 3c018000 */ lui $at,0x8000
/* f07c2a4: 17010002 */ bne $t8,$at,.L0f07c2b0
/* f07c2a8: 00000000 */ nop
/* f07c2ac: 0006000d */ break 0x6
.L0f07c2b0:
/* f07c2b0: 8d090000 */ lw $t1,0x0($t0)
/* f07c2b4: 00025080 */ sll $t2,$v0,0x2
/* f07c2b8: 27a600b0 */ addiu $a2,$sp,0xb0
/* f07c2bc: 012a5821 */ addu $t3,$t1,$t2
/* f07c2c0: 0fc456ac */ jal padUnpack
/* f07c2c4: 8d640000 */ lw $a0,0x0($t3)
/* f07c2c8: c7a40104 */ lwc1 $f4,0x104($sp)
/* f07c2cc: c7a600b0 */ lwc1 $f6,0xb0($sp)
/* f07c2d0: c7a8010c */ lwc1 $f8,0x10c($sp)
/* f07c2d4: c7aa00b8 */ lwc1 $f10,0xb8($sp)
/* f07c2d8: 46062081 */ sub.s $f2,$f4,$f6
/* f07c2dc: 460a4381 */ sub.s $f14,$f8,$f10
/* f07c2e0: 46021402 */ mul.s $f16,$f2,$f2
/* f07c2e4: e7a200ac */ swc1 $f2,0xac($sp)
/* f07c2e8: 460e7482 */ mul.s $f18,$f14,$f14
/* f07c2ec: e7ae00a8 */ swc1 $f14,0xa8($sp)
/* f07c2f0: 0c012974 */ jal sqrtf
/* f07c2f4: 46128300 */ add.s $f12,$f16,$f18
/* f07c2f8: 3c013e80 */ lui $at,0x3e80
/* f07c2fc: 44812000 */ mtc1 $at,$f4
/* f07c300: c7a200ac */ lwc1 $f2,0xac($sp)
/* f07c304: c7ae00a8 */ lwc1 $f14,0xa8($sp)
/* f07c308: 46002303 */ div.s $f12,$f4,$f0
/* f07c30c: 460c1082 */ mul.s $f2,$f2,$f12
/* f07c310: 00000000 */ nop
/* f07c314: 460c7382 */ mul.s $f14,$f14,$f12
/* f07c318: 00000000 */ nop
.L0f07c31c:
/* f07c31c: 44804000 */ mtc1 $zero,$f8
/* f07c320: 46007187 */ neg.s $f6,$f14
/* f07c324: 26020068 */ addiu $v0,$s0,0x68
/* f07c328: e6060064 */ swc1 $f6,0x64($s0)
/* f07c32c: e4480000 */ swc1 $f8,0x0($v0)
/* f07c330: 10000017 */ b .L0f07c390
/* f07c334: e602006c */ swc1 $f2,0x6c($s0)
.L0f07c338:
/* f07c338: 04600007 */ bltz $v1,.L0f07c358
/* f07c33c: 26020068 */ addiu $v0,$s0,0x68
/* f07c340: 3c0c800a */ lui $t4,%hi(g_Vars+0x38)
/* f07c344: 8d8c9ff8 */ lw $t4,%lo(g_Vars+0x38)($t4)
/* f07c348: 26020068 */ addiu $v0,$s0,0x68
/* f07c34c: 006c6823 */ subu $t5,$v1,$t4
/* f07c350: 1000000f */ b .L0f07c390
/* f07c354: ae0d00c0 */ sw $t5,0xc0($s0)
.L0f07c358:
/* f07c358: 3c017f1b */ lui $at,%hi(var7f1aa66c)
/* f07c35c: c42aa66c */ lwc1 $f10,%lo(var7f1aa66c)($at)
/* f07c360: c4400000 */ lwc1 $f0,0x0($v0)
/* f07c364: 3c017f1b */ lui $at,%hi(var7f1aa670)
/* f07c368: 4600503c */ c.lt.s $f10,$f0
/* f07c36c: 00000000 */ nop
/* f07c370: 45020008 */ bc1fl .L0f07c394
/* f07c374: 26030064 */ addiu $v1,$s0,0x64
/* f07c378: c430a670 */ lwc1 $f16,%lo(var7f1aa670)($at)
/* f07c37c: 3c01800a */ lui $at,%hi(g_Vars+0x44)
/* f07c380: c432a004 */ lwc1 $f18,%lo(g_Vars+0x44)($at)
/* f07c384: 46128102 */ mul.s $f4,$f16,$f18
/* f07c388: 46040181 */ sub.s $f6,$f0,$f4
/* f07c38c: e4460000 */ swc1 $f6,0x0($v0)
.L0f07c390:
/* f07c390: 26030064 */ addiu $v1,$s0,0x64
.L0f07c394:
/* f07c394: c4680000 */ lwc1 $f8,0x0($v1)
/* f07c398: 2605006c */ addiu $a1,$s0,0x6c
/* f07c39c: 3c04800a */ lui $a0,%hi(g_Vars+0x4b4)
/* f07c3a0: e7a8015c */ swc1 $f8,0x15c($sp)
/* f07c3a4: c44a0000 */ lwc1 $f10,0x0($v0)
/* f07c3a8: 8c84a474 */ lw $a0,%lo(g_Vars+0x4b4)($a0)
/* f07c3ac: e7aa0160 */ swc1 $f10,0x160($sp)
/* f07c3b0: c4b00000 */ lwc1 $f16,0x0($a1)
/* f07c3b4: e7b00164 */ swc1 $f16,0x164($sp)
/* f07c3b8: c4640000 */ lwc1 $f4,0x0($v1)
/* f07c3bc: c612007c */ lwc1 $f18,0x7c($s0)
/* f07c3c0: c4a80000 */ lwc1 $f8,0x0($a1)
/* f07c3c4: 46049180 */ add.s $f6,$f18,$f4
/* f07c3c8: 46064280 */ add.s $f10,$f8,$f6
/* f07c3cc: 0fc59585 */ jal stageGetIndex
/* f07c3d0: e7aa0174 */ swc1 $f10,0x174($sp)
/* f07c3d4: 2401000e */ addiu $at,$zero,0xe
/* f07c3d8: 14410022 */ bne $v0,$at,.L0f07c464
/* f07c3dc: 3c03800a */ lui $v1,%hi(g_Vars+0x38)
/* f07c3e0: 3c017f1b */ lui $at,%hi(var7f1aa674)
/* f07c3e4: c432a674 */ lwc1 $f18,%lo(var7f1aa674)($at)
/* f07c3e8: c630000c */ lwc1 $f16,0xc($s1)
/* f07c3ec: 3406ffff */ dli $a2,0xffff
/* f07c3f0: 02202025 */ or $a0,$s1,$zero
/* f07c3f4: 4612803c */ c.lt.s $f16,$f18
/* f07c3f8: 8fa50174 */ lw $a1,0x174($sp)
/* f07c3fc: 27a7015c */ addiu $a3,$sp,0x15c
/* f07c400: 45020009 */ bc1fl .L0f07c428
/* f07c404: c6040080 */ lwc1 $f4,0x80($s0)
/* f07c408: 02202025 */ or $a0,$s1,$zero
/* f07c40c: 0fc249af */ jal func0f0926bc
/* f07c410: 24050001 */ addiu $a1,$zero,0x1
/* f07c414: 8e0e0040 */ lw $t6,0x40($s0)
/* f07c418: 35cf0004 */ ori $t7,$t6,0x4
/* f07c41c: 100000df */ b .L0f07c79c
/* f07c420: ae0f0040 */ sw $t7,0x40($s0)
/* f07c424: c6040080 */ lwc1 $f4,0x80($s0)
.L0f07c428:
/* f07c428: 44804000 */ mtc1 $zero,$f8
/* f07c42c: 3c017f1b */ lui $at,%hi(var7f1aa678)
/* f07c430: 4608203c */ c.lt.s $f4,$f8
/* f07c434: 00000000 */ nop
/* f07c438: 45000004 */ bc1f .L0f07c44c
/* f07c43c: 00000000 */ nop
/* f07c440: 3c017f1b */ lui $at,%hi(var7f1aa67c)
/* f07c444: 10000002 */ b .L0f07c450
/* f07c448: c420a678 */ lwc1 $f0,%lo(var7f1aa678)($at)
.L0f07c44c:
/* f07c44c: c420a67c */ lwc1 $f0,%lo(var7f1aa67c)($at)
.L0f07c450:
/* f07c450: 44060000 */ mfc1 $a2,$f0
/* f07c454: 0fc1ee8e */ jal chopperIncrementMovement
/* f07c458: afa00010 */ sw $zero,0x10($sp)
/* f07c45c: 100000d0 */ b .L0f07c7a0
/* f07c460: 8fbf0034 */ lw $ra,0x34($sp)
.L0f07c464:
/* f07c464: 8c639ff8 */ lw $v1,%lo(g_Vars+0x38)($v1)
/* f07c468: 3c017f1b */ lui $at,%hi(var7f1aa680)
/* f07c46c: c420a680 */ lwc1 $f0,%lo(var7f1aa680)($at)
/* f07c470: 28610002 */ slti $at,$v1,0x2
/* f07c474: 24020001 */ addiu $v0,$zero,0x1
/* f07c478: 14200006 */ bnez $at,.L0f07c494
/* f07c47c: 46000086 */ mov.s $f2,$f0
/* f07c480: 24420001 */ addiu $v0,$v0,0x1
.L0f07c484:
/* f07c484: 0043082a */ slt $at,$v0,$v1
/* f07c488: 46001082 */ mul.s $f2,$f2,$f0
/* f07c48c: 5420fffd */ bnezl $at,.L0f07c484
/* f07c490: 24420001 */ addiu $v0,$v0,0x1
.L0f07c494:
/* f07c494: 3c017f1b */ lui $at,%hi(var7f1aa684)
/* f07c498: c42aa684 */ lwc1 $f10,%lo(var7f1aa684)($at)
/* f07c49c: c60600b4 */ lwc1 $f6,0xb4($s0)
/* f07c4a0: 3c017f1b */ lui $at,%hi(var7f1aa688)
/* f07c4a4: c430a688 */ lwc1 $f16,%lo(var7f1aa688)($at)
/* f07c4a8: 460a3300 */ add.s $f12,$f6,$f10
/* f07c4ac: 460c803c */ c.lt.s $f16,$f12
/* f07c4b0: 00000000 */ nop
/* f07c4b4: 4500001c */ bc1f .L0f07c528
/* f07c4b8: 00000000 */ nop
/* f07c4bc: 44806000 */ mtc1 $zero,$f12
/* f07c4c0: e7a20088 */ swc1 $f2,0x88($sp)
/* f07c4c4: 0c004b70 */ jal random
/* f07c4c8: e7ac0084 */ swc1 $f12,0x84($sp)
/* f07c4cc: 30580007 */ andi $t8,$v0,0x7
/* f07c4d0: 27190002 */ addiu $t9,$t8,0x2
/* f07c4d4: 44999000 */ mtc1 $t9,$f18
/* f07c4d8: c7a20088 */ lwc1 $f2,0x88($sp)
/* f07c4dc: c7ac0084 */ lwc1 $f12,0x84($sp)
/* f07c4e0: 07210005 */ bgez $t9,.L0f07c4f8
/* f07c4e4: 46809120 */ cvt.s.w $f4,$f18
/* f07c4e8: 3c014f80 */ lui $at,0x4f80
/* f07c4ec: 44814000 */ mtc1 $at,$f8
/* f07c4f0: 00000000 */ nop
/* f07c4f4: 46082100 */ add.s $f4,$f4,$f8
.L0f07c4f8:
/* f07c4f8: 3c017f1b */ lui $at,%hi(var7f1aa68c)
/* f07c4fc: c426a68c */ lwc1 $f6,%lo(var7f1aa68c)($at)
/* f07c500: 8e090008 */ lw $t1,0x8($s0)
/* f07c504: 3c017f1b */ lui $at,%hi(var7f1aa690)
/* f07c508: 46062282 */ mul.s $f10,$f4,$f6
/* f07c50c: 00095000 */ sll $t2,$t1,0x0
/* f07c510: 05410005 */ bgez $t2,.L0f07c528
/* f07c514: e60a00b8 */ swc1 $f10,0xb8($s0)
/* f07c518: c61000b8 */ lwc1 $f16,0xb8($s0)
/* f07c51c: c432a690 */ lwc1 $f18,%lo(var7f1aa690)($at)
/* f07c520: 46128202 */ mul.s $f8,$f16,$f18
/* f07c524: e60800b8 */ swc1 $f8,0xb8($s0)
.L0f07c528:
/* f07c528: 0c0068f7 */ jal sinf
/* f07c52c: e7a20088 */ swc1 $f2,0x88($sp)
/* f07c530: c60600b8 */ lwc1 $f6,0xb8($s0)
/* f07c534: c7a40160 */ lwc1 $f4,0x160($sp)
/* f07c538: c7b2015c */ lwc1 $f18,0x15c($sp)
/* f07c53c: 46003282 */ mul.s $f10,$f6,$f0
/* f07c540: c7a20088 */ lwc1 $f2,0x88($sp)
/* f07c544: 3c01800a */ lui $at,%hi(g_Vars+0x4c)
/* f07c548: c42ca00c */ lwc1 $f12,%lo(g_Vars+0x4c)($at)
/* f07c54c: 26240008 */ addiu $a0,$s1,0x8
/* f07c550: 26250028 */ addiu $a1,$s1,0x28
/* f07c554: 27a60098 */ addiu $a2,$sp,0x98
/* f07c558: 460a2400 */ add.s $f16,$f4,$f10
/* f07c55c: 24070020 */ addiu $a3,$zero,0x20
/* f07c560: e7b00160 */ swc1 $f16,0x160($sp)
/* f07c564: c60800a4 */ lwc1 $f8,0xa4($s0)
/* f07c568: c6040098 */ lwc1 $f4,0x98($s0)
/* f07c56c: 46089182 */ mul.s $f6,$f18,$f8
/* f07c570: 46043280 */ add.s $f10,$f6,$f4
/* f07c574: 46025482 */ mul.s $f18,$f10,$f2
/* f07c578: e7b2008c */ swc1 $f18,0x8c($sp)
/* f07c57c: c60800a4 */ lwc1 $f8,0xa4($s0)
/* f07c580: c604009c */ lwc1 $f4,0x9c($s0)
/* f07c584: 46088182 */ mul.s $f6,$f16,$f8
/* f07c588: c7a80164 */ lwc1 $f8,0x164($sp)
/* f07c58c: 46043280 */ add.s $f10,$f6,$f4
/* f07c590: 46025402 */ mul.s $f16,$f10,$f2
/* f07c594: e7b00090 */ swc1 $f16,0x90($sp)
/* f07c598: c60600a4 */ lwc1 $f6,0xa4($s0)
/* f07c59c: c60a00a0 */ lwc1 $f10,0xa0($s0)
/* f07c5a0: 46064102 */ mul.s $f4,$f8,$f6
/* f07c5a4: 460a2200 */ add.s $f8,$f4,$f10
/* f07c5a8: 46024182 */ mul.s $f6,$f8,$f2
/* f07c5ac: e7a60094 */ swc1 $f6,0x94($sp)
/* f07c5b0: 460c9102 */ mul.s $f4,$f18,$f12
/* f07c5b4: c62a0008 */ lwc1 $f10,0x8($s1)
/* f07c5b8: 460c8482 */ mul.s $f18,$f16,$f12
/* f07c5bc: 460a2200 */ add.s $f8,$f4,$f10
/* f07c5c0: e7a80098 */ swc1 $f8,0x98($sp)
/* f07c5c4: c624000c */ lwc1 $f4,0xc($s1)
/* f07c5c8: 460c3202 */ mul.s $f8,$f6,$f12
/* f07c5cc: 46049280 */ add.s $f10,$f18,$f4
/* f07c5d0: e7aa009c */ swc1 $f10,0x9c($sp)
/* f07c5d4: c6300010 */ lwc1 $f16,0x10($s1)
/* f07c5d8: afa50040 */ sw $a1,0x40($sp)
/* f07c5dc: afa40044 */ sw $a0,0x44($sp)
/* f07c5e0: 46104480 */ add.s $f18,$f8,$f16
/* f07c5e4: 0c00b784 */ jal cd0002de10
/* f07c5e8: e7b200a0 */ swc1 $f18,0xa0($sp)
/* f07c5ec: 14400058 */ bnez $v0,.L0f07c750
/* f07c5f0: 8fa40044 */ lw $a0,0x44($sp)
/* f07c5f4: 3c0142c8 */ lui $at,0x42c8
/* f07c5f8: 44815000 */ mtc1 $at,$f10
/* f07c5fc: c624000c */ lwc1 $f4,0xc($s1)
/* f07c600: 3c0540a0 */ lui $a1,0x40a0
/* f07c604: 00003825 */ or $a3,$zero,$zero
/* f07c608: 460a2180 */ add.s $f6,$f4,$f10
/* f07c60c: e626000c */ swc1 $f6,0xc($s1)
/* f07c610: afa00010 */ sw $zero,0x10($sp)
/* f07c614: 8fa60040 */ lw $a2,0x40($sp)
/* f07c618: 0c00a8cc */ jal cdFindGroundYSimple
/* f07c61c: 8fa40044 */ lw $a0,0x44($sp)
/* f07c620: e7a00060 */ swc1 $f0,0x60($sp)
/* f07c624: 3c0142c8 */ lui $at,0x42c8
/* f07c628: 44818000 */ mtc1 $at,$f16
/* f07c62c: c628000c */ lwc1 $f8,0xc($s1)
/* f07c630: 3c067f1b */ lui $a2,%hi(var7f1aa044)
/* f07c634: 24c6a044 */ addiu $a2,$a2,%lo(var7f1aa044)
/* f07c638: 46104481 */ sub.s $f18,$f8,$f16
/* f07c63c: 27a40064 */ addiu $a0,$sp,0x64
/* f07c640: 240530a1 */ addiu $a1,$zero,0x30bc
/* f07c644: 0c0093af */ jal cdGetPos
/* f07c648: e632000c */ swc1 $f18,0xc($s1)
/* f07c64c: 3c0141a0 */ lui $at,0x41a0
/* f07c650: 44813000 */ mtc1 $at,$f6
/* f07c654: c7aa0060 */ lwc1 $f10,0x60($sp)
/* f07c658: c7a40064 */ lwc1 $f4,0x64($sp)
/* f07c65c: c7b0006c */ lwc1 $f16,0x6c($sp)
/* f07c660: 46065200 */ add.s $f8,$f10,$f6
/* f07c664: 8fa40044 */ lw $a0,0x44($sp)
/* f07c668: 8fa50040 */ lw $a1,0x40($sp)
/* f07c66c: 27a60098 */ addiu $a2,$sp,0x98
/* f07c670: e7a8009c */ swc1 $f8,0x9c($sp)
/* f07c674: 27a70050 */ addiu $a3,$sp,0x50
/* f07c678: e7a40098 */ swc1 $f4,0x98($sp)
/* f07c67c: 0fc1979d */ jal func0f065e74
/* f07c680: e7b000a0 */ swc1 $f16,0xa0($sp)
/* f07c684: c7b20098 */ lwc1 $f18,0x98($sp)
/* f07c688: 02202025 */ or $a0,$s1,$zero
/* f07c68c: e6320008 */ swc1 $f18,0x8($s1)
/* f07c690: c7a4009c */ lwc1 $f4,0x9c($sp)
/* f07c694: e624000c */ swc1 $f4,0xc($s1)
/* f07c698: c7aa00a0 */ lwc1 $f10,0xa0($sp)
/* f07c69c: 0fc19711 */ jal propDeregisterRooms
/* f07c6a0: e62a0010 */ swc1 $f10,0x10($s1)
/* f07c6a4: 27a40050 */ addiu $a0,$sp,0x50
/* f07c6a8: 0fc195e9 */ jal roomsCopy
/* f07c6ac: 8fa50040 */ lw $a1,0x40($sp)
/* f07c6b0: 02002025 */ or $a0,$s0,$zero
/* f07c6b4: 00002825 */ or $a1,$zero,$zero
/* f07c6b8: 0fc1a71c */ jal func0f069c70
/* f07c6bc: 24060001 */ addiu $a2,$zero,0x1
/* f07c6c0: 920b0096 */ lbu $t3,0x96($s0)
/* f07c6c4: 02002025 */ or $a0,$s0,$zero
/* f07c6c8: 24050008 */ addiu $a1,$zero,0x8
/* f07c6cc: 256c0001 */ addiu $t4,$t3,0x1
/* f07c6d0: 0fc20733 */ jal objDeform
/* f07c6d4: a20c0096 */ sb $t4,0x96($s0)
/* f07c6d8: 862d0028 */ lh $t5,0x28($s1)
/* f07c6dc: 3c013f80 */ lui $at,0x3f80
/* f07c6e0: 44803000 */ mtc1 $zero,$f6
/* f07c6e4: 44814000 */ mtc1 $at,$f8
/* f07c6e8: 44808000 */ mtc1 $zero,$f16
/* f07c6ec: 02202025 */ or $a0,$s1,$zero
/* f07c6f0: 24050001 */ addiu $a1,$zero,0x1
/* f07c6f4: 3406ffff */ dli $a2,0xffff
/* f07c6f8: a7ad0072 */ sh $t5,0x72($sp)
/* f07c6fc: e7a60074 */ swc1 $f6,0x74($sp)
/* f07c700: e7a80078 */ swc1 $f8,0x78($sp)
/* f07c704: 0fc249af */ jal func0f0926bc
/* f07c708: e7b0007c */ swc1 $f16,0x7c($sp)
/* f07c70c: 87b80072 */ lh $t8,0x72($sp)
/* f07c710: 240e0001 */ addiu $t6,$zero,0x1
/* f07c714: 27af0098 */ addiu $t7,$sp,0x98
/* f07c718: 27b90074 */ addiu $t9,$sp,0x74
/* f07c71c: afb90020 */ sw $t9,0x20($sp)
/* f07c720: afaf0018 */ sw $t7,0x18($sp)
/* f07c724: afae0014 */ sw $t6,0x14($sp)
/* f07c728: 00002025 */ or $a0,$zero,$zero
/* f07c72c: 8fa50044 */ lw $a1,0x44($sp)
/* f07c730: 8fa60040 */ lw $a2,0x40($sp)
/* f07c734: 2407000d */ addiu $a3,$zero,0xd
/* f07c738: afa00010 */ sw $zero,0x10($sp)
/* f07c73c: 0fc4a7d5 */ jal explosionCreate
/* f07c740: afb8001c */ sw $t8,0x1c($sp)
/* f07c744: 24090001 */ addiu $t1,$zero,0x1
/* f07c748: 10000014 */ b .L0f07c79c
/* f07c74c: ae0900e4 */ sw $t1,0xe4($s0)
.L0f07c750:
/* f07c750: 8fa50040 */ lw $a1,0x40($sp)
/* f07c754: 0fc4ba08 */ jal smokeCreateSimple
/* f07c758: 24060003 */ addiu $a2,$zero,0x3
/* f07c75c: c6120080 */ lwc1 $f18,0x80($s0)
/* f07c760: 44802000 */ mtc1 $zero,$f4
/* f07c764: 02202025 */ or $a0,$s1,$zero
/* f07c768: 8fa50174 */ lw $a1,0x174($sp)
/* f07c76c: 4604903c */ c.lt.s $f18,$f4
/* f07c770: 27a7015c */ addiu $a3,$sp,0x15c
/* f07c774: 3c017f1b */ lui $at,%hi(var7f1aa694)
/* f07c778: 45000004 */ bc1f .L0f07c78c
/* f07c77c: 00000000 */ nop
/* f07c780: 3c017f1b */ lui $at,%hi(var7f1aa698)
/* f07c784: 10000002 */ b .L0f07c790
/* f07c788: c420a694 */ lwc1 $f0,%lo(var7f1aa694)($at)
.L0f07c78c:
/* f07c78c: c420a698 */ lwc1 $f0,%lo(var7f1aa698)($at)
.L0f07c790:
/* f07c790: 44060000 */ mfc1 $a2,$f0
/* f07c794: 0fc1ee8e */ jal chopperIncrementMovement
/* f07c798: afa00010 */ sw $zero,0x10($sp)
.L0f07c79c:
/* f07c79c: 8fbf0034 */ lw $ra,0x34($sp)
.L0f07c7a0:
/* f07c7a0: 8fb0002c */ lw $s0,0x2c($sp)
/* f07c7a4: 8fb10030 */ lw $s1,0x30($sp)
/* f07c7a8: 03e00008 */ jr $ra
/* f07c7ac: 27bd0180 */ addiu $sp,$sp,0x180
);
#elif VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel chopperTickFall
.late_rodata
glabel var7f1aa66c
.word 0xbf333333
glabel var7f1aa670
.word 0x3c1374bc
glabel var7f1aa674
.word 0xc6ea6000
glabel var7f1aa678
.word 0x40490fdb
glabel var7f1aa67c
.word 0xc0490fdb
glabel var7f1aa680
.word 0x3f7ae148
glabel var7f1aa684
.word 0x3d567664
glabel var7f1aa688
.word 0x40c907a9
glabel var7f1aa68c
.word 0x3c23d70a
glabel var7f1aa690
.word 0x3e19999a
glabel var7f1aa694
.word 0x40490fdb
glabel var7f1aa698
.word 0xc0490fdb
.text
/* f07c12c: 27bdfe80 */ addiu $sp,$sp,-384
/* f07c130: afbf0034 */ sw $ra,0x34($sp)
/* f07c134: afb10030 */ sw $s1,0x30($sp)
/* f07c138: afb0002c */ sw $s0,0x2c($sp)
/* f07c13c: 8c900004 */ lw $s0,0x4($a0)
/* f07c140: 24010002 */ addiu $at,$zero,0x2
/* f07c144: 00808825 */ or $s1,$a0,$zero
/* f07c148: 8e0300c0 */ lw $v1,0xc0($s0)
/* f07c14c: 3c0e800a */ lui $t6,%hi(g_Vars+0x38)
/* f07c150: 02002825 */ or $a1,$s0,$zero
/* f07c154: 14610078 */ bne $v1,$at,.L0f07c338
/* f07c158: 00000000 */ nop
/* f07c15c: 8dce9ff8 */ lw $t6,%lo(g_Vars+0x38)($t6)
/* f07c160: 8e080088 */ lw $t0,0x88($s0)
/* f07c164: 44801000 */ mtc1 $zero,$f2
/* f07c168: 44807000 */ mtc1 $zero,$f14
/* f07c16c: 006e7823 */ subu $t7,$v1,$t6
/* f07c170: 1100006a */ beqz $t0,.L0f07c31c
/* f07c174: ae0f00c0 */ sw $t7,0xc0($s0)
/* f07c178: 95070006 */ lhu $a3,0x6($t0)
/* f07c17c: 00001825 */ or $v1,$zero,$zero
/* f07c180: 58e0001c */ blezl $a3,.L0f07c1f4
/* f07c184: 920a0097 */ lbu $t2,0x97($s0)
/* f07c188: 92040097 */ lbu $a0,0x97($s0)
/* f07c18c: 8e06008c */ lw $a2,0x8c($s0)
.L0f07c190:
/* f07c190: 50800004 */ beqzl $a0,.L0f07c1a4
/* f07c194: 24780001 */ addiu $t8,$v1,0x1
/* f07c198: 1000000d */ b .L0f07c1d0
/* f07c19c: 00601025 */ or $v0,$v1,$zero
/* f07c1a0: 24780001 */ addiu $t8,$v1,0x1
.L0f07c1a4:
/* f07c1a4: 0307001a */ div $zero,$t8,$a3
/* f07c1a8: 00001010 */ mfhi $v0
/* f07c1ac: 14e00002 */ bnez $a3,.L0f07c1b8
/* f07c1b0: 00000000 */ nop
/* f07c1b4: 0007000d */ break 0x7
.L0f07c1b8:
/* f07c1b8: 2401ffff */ addiu $at,$zero,-1
/* f07c1bc: 14e10004 */ bne $a3,$at,.L0f07c1d0
/* f07c1c0: 3c018000 */ lui $at,0x8000
/* f07c1c4: 17010002 */ bne $t8,$at,.L0f07c1d0
/* f07c1c8: 00000000 */ nop
/* f07c1cc: 0006000d */ break 0x6
.L0f07c1d0:
/* f07c1d0: 50460008 */ beql $v0,$a2,.L0f07c1f4
/* f07c1d4: 920a0097 */ lbu $t2,0x97($s0)
/* f07c1d8: 8cb90088 */ lw $t9,0x88($a1)
/* f07c1dc: 24630001 */ addiu $v1,$v1,0x1
/* f07c1e0: 97290006 */ lhu $t1,0x6($t9)
/* f07c1e4: 0069082a */ slt $at,$v1,$t1
/* f07c1e8: 1420ffe9 */ bnez $at,.L0f07c190
/* f07c1ec: 00000000 */ nop
/* f07c1f0: 920a0097 */ lbu $t2,0x97($s0)
.L0f07c1f4:
/* f07c1f4: 24050002 */ addiu $a1,$zero,0x2
/* f07c1f8: 246b0001 */ addiu $t3,$v1,0x1
/* f07c1fc: 5140000f */ beqzl $t2,.L0f07c23c
/* f07c200: 00601025 */ or $v0,$v1,$zero
/* f07c204: 0167001a */ div $zero,$t3,$a3
/* f07c208: 00001010 */ mfhi $v0
/* f07c20c: 14e00002 */ bnez $a3,.L0f07c218
/* f07c210: 00000000 */ nop
/* f07c214: 0007000d */ break 0x7
.L0f07c218:
/* f07c218: 2401ffff */ addiu $at,$zero,-1
/* f07c21c: 14e10004 */ bne $a3,$at,.L0f07c230
/* f07c220: 3c018000 */ lui $at,0x8000
/* f07c224: 15610002 */ bne $t3,$at,.L0f07c230
/* f07c228: 00000000 */ nop
/* f07c22c: 0006000d */ break 0x6
.L0f07c230:
/* f07c230: 10000003 */ b .L0f07c240
/* f07c234: 8d0c0000 */ lw $t4,0x0($t0)
/* f07c238: 00601025 */ or $v0,$v1,$zero
.L0f07c23c:
/* f07c23c: 8d0c0000 */ lw $t4,0x0($t0)
.L0f07c240:
/* f07c240: 00026880 */ sll $t5,$v0,0x2
/* f07c244: 27a60104 */ addiu $a2,$sp,0x104
/* f07c248: 018d7021 */ addu $t6,$t4,$t5
/* f07c24c: 8dc40000 */ lw $a0,0x0($t6)
/* f07c250: 0fc456ac */ jal padUnpack
/* f07c254: afa30158 */ sw $v1,0x158($sp)
/* f07c258: 920f0097 */ lbu $t7,0x97($s0)
/* f07c25c: 8fa30158 */ lw $v1,0x158($sp)
/* f07c260: 24050002 */ addiu $a1,$zero,0x2
/* f07c264: 51e00005 */ beqzl $t7,.L0f07c27c
/* f07c268: 8e080088 */ lw $t0,0x88($s0)
/* f07c26c: 00601025 */ or $v0,$v1,$zero
/* f07c270: 1000000f */ b .L0f07c2b0
/* f07c274: 8e080088 */ lw $t0,0x88($s0)
/* f07c278: 8e080088 */ lw $t0,0x88($s0)
.L0f07c27c:
/* f07c27c: 24780001 */ addiu $t8,$v1,0x1
/* f07c280: 95190006 */ lhu $t9,0x6($t0)
/* f07c284: 0319001a */ div $zero,$t8,$t9
/* f07c288: 00001010 */ mfhi $v0
/* f07c28c: 17200002 */ bnez $t9,.L0f07c298
/* f07c290: 00000000 */ nop
/* f07c294: 0007000d */ break 0x7
.L0f07c298:
/* f07c298: 2401ffff */ addiu $at,$zero,-1
/* f07c29c: 17210004 */ bne $t9,$at,.L0f07c2b0
/* f07c2a0: 3c018000 */ lui $at,0x8000
/* f07c2a4: 17010002 */ bne $t8,$at,.L0f07c2b0
/* f07c2a8: 00000000 */ nop
/* f07c2ac: 0006000d */ break 0x6
.L0f07c2b0:
/* f07c2b0: 8d090000 */ lw $t1,0x0($t0)
/* f07c2b4: 00025080 */ sll $t2,$v0,0x2
/* f07c2b8: 27a600b0 */ addiu $a2,$sp,0xb0
/* f07c2bc: 012a5821 */ addu $t3,$t1,$t2
/* f07c2c0: 0fc456ac */ jal padUnpack
/* f07c2c4: 8d640000 */ lw $a0,0x0($t3)
/* f07c2c8: c7a40104 */ lwc1 $f4,0x104($sp)
/* f07c2cc: c7a600b0 */ lwc1 $f6,0xb0($sp)
/* f07c2d0: c7a8010c */ lwc1 $f8,0x10c($sp)
/* f07c2d4: c7aa00b8 */ lwc1 $f10,0xb8($sp)
/* f07c2d8: 46062081 */ sub.s $f2,$f4,$f6
/* f07c2dc: 460a4381 */ sub.s $f14,$f8,$f10
/* f07c2e0: 46021402 */ mul.s $f16,$f2,$f2
/* f07c2e4: e7a200ac */ swc1 $f2,0xac($sp)
/* f07c2e8: 460e7482 */ mul.s $f18,$f14,$f14
/* f07c2ec: e7ae00a8 */ swc1 $f14,0xa8($sp)
/* f07c2f0: 0c012974 */ jal sqrtf
/* f07c2f4: 46128300 */ add.s $f12,$f16,$f18
/* f07c2f8: 3c013e80 */ lui $at,0x3e80
/* f07c2fc: 44812000 */ mtc1 $at,$f4
/* f07c300: c7a200ac */ lwc1 $f2,0xac($sp)
/* f07c304: c7ae00a8 */ lwc1 $f14,0xa8($sp)
/* f07c308: 46002303 */ div.s $f12,$f4,$f0
/* f07c30c: 460c1082 */ mul.s $f2,$f2,$f12
/* f07c310: 00000000 */ nop
/* f07c314: 460c7382 */ mul.s $f14,$f14,$f12
/* f07c318: 00000000 */ nop
.L0f07c31c:
/* f07c31c: 44804000 */ mtc1 $zero,$f8
/* f07c320: 46007187 */ neg.s $f6,$f14
/* f07c324: 26020068 */ addiu $v0,$s0,0x68
/* f07c328: e6060064 */ swc1 $f6,0x64($s0)
/* f07c32c: e4480000 */ swc1 $f8,0x0($v0)
/* f07c330: 10000017 */ b .L0f07c390
/* f07c334: e602006c */ swc1 $f2,0x6c($s0)
.L0f07c338:
/* f07c338: 04600007 */ bltz $v1,.L0f07c358
/* f07c33c: 26020068 */ addiu $v0,$s0,0x68
/* f07c340: 3c0c800a */ lui $t4,%hi(g_Vars+0x38)
/* f07c344: 8d8c9ff8 */ lw $t4,%lo(g_Vars+0x38)($t4)
/* f07c348: 26020068 */ addiu $v0,$s0,0x68
/* f07c34c: 006c6823 */ subu $t5,$v1,$t4
/* f07c350: 1000000f */ b .L0f07c390
/* f07c354: ae0d00c0 */ sw $t5,0xc0($s0)
.L0f07c358:
/* f07c358: 3c017f1b */ lui $at,%hi(var7f1aa66c)
/* f07c35c: c42aa66c */ lwc1 $f10,%lo(var7f1aa66c)($at)
/* f07c360: c4400000 */ lwc1 $f0,0x0($v0)
/* f07c364: 3c017f1b */ lui $at,%hi(var7f1aa670)
/* f07c368: 4600503c */ c.lt.s $f10,$f0
/* f07c36c: 00000000 */ nop
/* f07c370: 45020008 */ bc1fl .L0f07c394
/* f07c374: 26030064 */ addiu $v1,$s0,0x64
/* f07c378: c430a670 */ lwc1 $f16,%lo(var7f1aa670)($at)
/* f07c37c: 3c01800a */ lui $at,%hi(g_Vars+0x44)
/* f07c380: c432a004 */ lwc1 $f18,%lo(g_Vars+0x44)($at)
/* f07c384: 46128102 */ mul.s $f4,$f16,$f18
/* f07c388: 46040181 */ sub.s $f6,$f0,$f4
/* f07c38c: e4460000 */ swc1 $f6,0x0($v0)
.L0f07c390:
/* f07c390: 26030064 */ addiu $v1,$s0,0x64
.L0f07c394:
/* f07c394: c4680000 */ lwc1 $f8,0x0($v1)
/* f07c398: 2605006c */ addiu $a1,$s0,0x6c
/* f07c39c: 3c04800a */ lui $a0,%hi(g_Vars+0x4b4)
/* f07c3a0: e7a8015c */ swc1 $f8,0x15c($sp)
/* f07c3a4: c44a0000 */ lwc1 $f10,0x0($v0)
/* f07c3a8: 8c84a474 */ lw $a0,%lo(g_Vars+0x4b4)($a0)
/* f07c3ac: e7aa0160 */ swc1 $f10,0x160($sp)
/* f07c3b0: c4b00000 */ lwc1 $f16,0x0($a1)
/* f07c3b4: e7b00164 */ swc1 $f16,0x164($sp)
/* f07c3b8: c4640000 */ lwc1 $f4,0x0($v1)
/* f07c3bc: c612007c */ lwc1 $f18,0x7c($s0)
/* f07c3c0: c4a80000 */ lwc1 $f8,0x0($a1)
/* f07c3c4: 46049180 */ add.s $f6,$f18,$f4
/* f07c3c8: 46064280 */ add.s $f10,$f8,$f6
/* f07c3cc: 0fc59585 */ jal stageGetIndex
/* f07c3d0: e7aa0174 */ swc1 $f10,0x174($sp)
/* f07c3d4: 2401000e */ addiu $at,$zero,0xe
/* f07c3d8: 14410022 */ bne $v0,$at,.L0f07c464
/* f07c3dc: 3c03800a */ lui $v1,%hi(g_Vars+0x38)
/* f07c3e0: 3c017f1b */ lui $at,%hi(var7f1aa674)
/* f07c3e4: c432a674 */ lwc1 $f18,%lo(var7f1aa674)($at)
/* f07c3e8: c630000c */ lwc1 $f16,0xc($s1)
/* f07c3ec: 3406ffff */ dli $a2,0xffff
/* f07c3f0: 02202025 */ or $a0,$s1,$zero
/* f07c3f4: 4612803c */ c.lt.s $f16,$f18
/* f07c3f8: 8fa50174 */ lw $a1,0x174($sp)
/* f07c3fc: 27a7015c */ addiu $a3,$sp,0x15c
/* f07c400: 45020009 */ bc1fl .L0f07c428
/* f07c404: c6040080 */ lwc1 $f4,0x80($s0)
/* f07c408: 02202025 */ or $a0,$s1,$zero
/* f07c40c: 0fc249af */ jal func0f0926bc
/* f07c410: 24050001 */ addiu $a1,$zero,0x1
/* f07c414: 8e0e0040 */ lw $t6,0x40($s0)
/* f07c418: 35cf0004 */ ori $t7,$t6,0x4
/* f07c41c: 100000df */ b .L0f07c79c
/* f07c420: ae0f0040 */ sw $t7,0x40($s0)
/* f07c424: c6040080 */ lwc1 $f4,0x80($s0)
.L0f07c428:
/* f07c428: 44804000 */ mtc1 $zero,$f8
/* f07c42c: 3c017f1b */ lui $at,%hi(var7f1aa678)
/* f07c430: 4608203c */ c.lt.s $f4,$f8
/* f07c434: 00000000 */ nop
/* f07c438: 45000004 */ bc1f .L0f07c44c
/* f07c43c: 00000000 */ nop
/* f07c440: 3c017f1b */ lui $at,%hi(var7f1aa67c)
/* f07c444: 10000002 */ b .L0f07c450
/* f07c448: c420a678 */ lwc1 $f0,%lo(var7f1aa678)($at)
.L0f07c44c:
/* f07c44c: c420a67c */ lwc1 $f0,%lo(var7f1aa67c)($at)
.L0f07c450:
/* f07c450: 44060000 */ mfc1 $a2,$f0
/* f07c454: 0fc1ee8e */ jal chopperIncrementMovement
/* f07c458: afa00010 */ sw $zero,0x10($sp)
/* f07c45c: 100000d0 */ b .L0f07c7a0
/* f07c460: 8fbf0034 */ lw $ra,0x34($sp)
.L0f07c464:
/* f07c464: 8c639ff8 */ lw $v1,%lo(g_Vars+0x38)($v1)
/* f07c468: 3c017f1b */ lui $at,%hi(var7f1aa680)
/* f07c46c: c420a680 */ lwc1 $f0,%lo(var7f1aa680)($at)
/* f07c470: 28610002 */ slti $at,$v1,0x2
/* f07c474: 24020001 */ addiu $v0,$zero,0x1
/* f07c478: 14200006 */ bnez $at,.L0f07c494
/* f07c47c: 46000086 */ mov.s $f2,$f0
/* f07c480: 24420001 */ addiu $v0,$v0,0x1
.L0f07c484:
/* f07c484: 0043082a */ slt $at,$v0,$v1
/* f07c488: 46001082 */ mul.s $f2,$f2,$f0
/* f07c48c: 5420fffd */ bnezl $at,.L0f07c484
/* f07c490: 24420001 */ addiu $v0,$v0,0x1
.L0f07c494:
/* f07c494: 3c017f1b */ lui $at,%hi(var7f1aa684)
/* f07c498: c42aa684 */ lwc1 $f10,%lo(var7f1aa684)($at)
/* f07c49c: c60600b4 */ lwc1 $f6,0xb4($s0)
/* f07c4a0: 3c017f1b */ lui $at,%hi(var7f1aa688)
/* f07c4a4: c430a688 */ lwc1 $f16,%lo(var7f1aa688)($at)
/* f07c4a8: 460a3300 */ add.s $f12,$f6,$f10
/* f07c4ac: 460c803c */ c.lt.s $f16,$f12
/* f07c4b0: 00000000 */ nop
/* f07c4b4: 4500001c */ bc1f .L0f07c528
/* f07c4b8: 00000000 */ nop
/* f07c4bc: 44806000 */ mtc1 $zero,$f12
/* f07c4c0: e7a20088 */ swc1 $f2,0x88($sp)
/* f07c4c4: 0c004b70 */ jal random
/* f07c4c8: e7ac0084 */ swc1 $f12,0x84($sp)
/* f07c4cc: 30580007 */ andi $t8,$v0,0x7
/* f07c4d0: 27190002 */ addiu $t9,$t8,0x2
/* f07c4d4: 44999000 */ mtc1 $t9,$f18
/* f07c4d8: c7a20088 */ lwc1 $f2,0x88($sp)
/* f07c4dc: c7ac0084 */ lwc1 $f12,0x84($sp)
/* f07c4e0: 07210005 */ bgez $t9,.L0f07c4f8
/* f07c4e4: 46809120 */ cvt.s.w $f4,$f18
/* f07c4e8: 3c014f80 */ lui $at,0x4f80
/* f07c4ec: 44814000 */ mtc1 $at,$f8
/* f07c4f0: 00000000 */ nop
/* f07c4f4: 46082100 */ add.s $f4,$f4,$f8
.L0f07c4f8:
/* f07c4f8: 3c017f1b */ lui $at,%hi(var7f1aa68c)
/* f07c4fc: c426a68c */ lwc1 $f6,%lo(var7f1aa68c)($at)
/* f07c500: 8e090008 */ lw $t1,0x8($s0)
/* f07c504: 3c017f1b */ lui $at,%hi(var7f1aa690)
/* f07c508: 46062282 */ mul.s $f10,$f4,$f6
/* f07c50c: 00095000 */ sll $t2,$t1,0x0
/* f07c510: 05410005 */ bgez $t2,.L0f07c528
/* f07c514: e60a00b8 */ swc1 $f10,0xb8($s0)
/* f07c518: c61000b8 */ lwc1 $f16,0xb8($s0)
/* f07c51c: c432a690 */ lwc1 $f18,%lo(var7f1aa690)($at)
/* f07c520: 46128202 */ mul.s $f8,$f16,$f18
/* f07c524: e60800b8 */ swc1 $f8,0xb8($s0)
.L0f07c528:
/* f07c528: 0c0068f7 */ jal sinf
/* f07c52c: e7a20088 */ swc1 $f2,0x88($sp)
/* f07c530: c60600b8 */ lwc1 $f6,0xb8($s0)
/* f07c534: c7a40160 */ lwc1 $f4,0x160($sp)
/* f07c538: c7b2015c */ lwc1 $f18,0x15c($sp)
/* f07c53c: 46003282 */ mul.s $f10,$f6,$f0
/* f07c540: c7a20088 */ lwc1 $f2,0x88($sp)
/* f07c544: 3c01800a */ lui $at,%hi(g_Vars+0x4c)
/* f07c548: c42ca00c */ lwc1 $f12,%lo(g_Vars+0x4c)($at)
/* f07c54c: 26240008 */ addiu $a0,$s1,0x8
/* f07c550: 26250028 */ addiu $a1,$s1,0x28
/* f07c554: 27a60098 */ addiu $a2,$sp,0x98
/* f07c558: 460a2400 */ add.s $f16,$f4,$f10
/* f07c55c: 24070020 */ addiu $a3,$zero,0x20
/* f07c560: e7b00160 */ swc1 $f16,0x160($sp)
/* f07c564: c60800a4 */ lwc1 $f8,0xa4($s0)
/* f07c568: c6040098 */ lwc1 $f4,0x98($s0)
/* f07c56c: 46089182 */ mul.s $f6,$f18,$f8
/* f07c570: 46043280 */ add.s $f10,$f6,$f4
/* f07c574: 46025482 */ mul.s $f18,$f10,$f2
/* f07c578: e7b2008c */ swc1 $f18,0x8c($sp)
/* f07c57c: c60800a4 */ lwc1 $f8,0xa4($s0)
/* f07c580: c604009c */ lwc1 $f4,0x9c($s0)
/* f07c584: 46088182 */ mul.s $f6,$f16,$f8
/* f07c588: c7a80164 */ lwc1 $f8,0x164($sp)
/* f07c58c: 46043280 */ add.s $f10,$f6,$f4
/* f07c590: 46025402 */ mul.s $f16,$f10,$f2
/* f07c594: e7b00090 */ swc1 $f16,0x90($sp)
/* f07c598: c60600a4 */ lwc1 $f6,0xa4($s0)
/* f07c59c: c60a00a0 */ lwc1 $f10,0xa0($s0)
/* f07c5a0: 46064102 */ mul.s $f4,$f8,$f6
/* f07c5a4: 460a2200 */ add.s $f8,$f4,$f10
/* f07c5a8: 46024182 */ mul.s $f6,$f8,$f2
/* f07c5ac: e7a60094 */ swc1 $f6,0x94($sp)
/* f07c5b0: 460c9102 */ mul.s $f4,$f18,$f12
/* f07c5b4: c62a0008 */ lwc1 $f10,0x8($s1)
/* f07c5b8: 460c8482 */ mul.s $f18,$f16,$f12
/* f07c5bc: 460a2200 */ add.s $f8,$f4,$f10
/* f07c5c0: e7a80098 */ swc1 $f8,0x98($sp)
/* f07c5c4: c624000c */ lwc1 $f4,0xc($s1)
/* f07c5c8: 460c3202 */ mul.s $f8,$f6,$f12
/* f07c5cc: 46049280 */ add.s $f10,$f18,$f4
/* f07c5d0: e7aa009c */ swc1 $f10,0x9c($sp)
/* f07c5d4: c6300010 */ lwc1 $f16,0x10($s1)
/* f07c5d8: afa50040 */ sw $a1,0x40($sp)
/* f07c5dc: afa40044 */ sw $a0,0x44($sp)
/* f07c5e0: 46104480 */ add.s $f18,$f8,$f16
/* f07c5e4: 0c00b784 */ jal cd0002de10
/* f07c5e8: e7b200a0 */ swc1 $f18,0xa0($sp)
/* f07c5ec: 14400058 */ bnez $v0,.L0f07c750
/* f07c5f0: 8fa40044 */ lw $a0,0x44($sp)
/* f07c5f4: 3c0142c8 */ lui $at,0x42c8
/* f07c5f8: 44815000 */ mtc1 $at,$f10
/* f07c5fc: c624000c */ lwc1 $f4,0xc($s1)
/* f07c600: 3c0540a0 */ lui $a1,0x40a0
/* f07c604: 00003825 */ or $a3,$zero,$zero
/* f07c608: 460a2180 */ add.s $f6,$f4,$f10
/* f07c60c: e626000c */ swc1 $f6,0xc($s1)
/* f07c610: afa00010 */ sw $zero,0x10($sp)
/* f07c614: 8fa60040 */ lw $a2,0x40($sp)
/* f07c618: 0c00a8cc */ jal cdFindGroundYSimple
/* f07c61c: 8fa40044 */ lw $a0,0x44($sp)
/* f07c620: e7a00060 */ swc1 $f0,0x60($sp)
/* f07c624: 3c0142c8 */ lui $at,0x42c8
/* f07c628: 44818000 */ mtc1 $at,$f16
/* f07c62c: c628000c */ lwc1 $f8,0xc($s1)
/* f07c630: 3c067f1b */ lui $a2,%hi(var7f1aa044)
/* f07c634: 24c6a044 */ addiu $a2,$a2,%lo(var7f1aa044)
/* f07c638: 46104481 */ sub.s $f18,$f8,$f16
/* f07c63c: 27a40064 */ addiu $a0,$sp,0x64
/* f07c640: 240530a1 */ addiu $a1,$zero,0x30a1
/* f07c644: 0c0093af */ jal cdGetPos
/* f07c648: e632000c */ swc1 $f18,0xc($s1)
/* f07c64c: 3c0141a0 */ lui $at,0x41a0
/* f07c650: 44813000 */ mtc1 $at,$f6
/* f07c654: c7aa0060 */ lwc1 $f10,0x60($sp)
/* f07c658: c7a40064 */ lwc1 $f4,0x64($sp)
/* f07c65c: c7b0006c */ lwc1 $f16,0x6c($sp)
/* f07c660: 46065200 */ add.s $f8,$f10,$f6
/* f07c664: 8fa40044 */ lw $a0,0x44($sp)
/* f07c668: 8fa50040 */ lw $a1,0x40($sp)
/* f07c66c: 27a60098 */ addiu $a2,$sp,0x98
/* f07c670: e7a8009c */ swc1 $f8,0x9c($sp)
/* f07c674: 27a70050 */ addiu $a3,$sp,0x50
/* f07c678: e7a40098 */ swc1 $f4,0x98($sp)
/* f07c67c: 0fc1979d */ jal func0f065e74
/* f07c680: e7b000a0 */ swc1 $f16,0xa0($sp)
/* f07c684: c7b20098 */ lwc1 $f18,0x98($sp)
/* f07c688: 02202025 */ or $a0,$s1,$zero
/* f07c68c: e6320008 */ swc1 $f18,0x8($s1)
/* f07c690: c7a4009c */ lwc1 $f4,0x9c($sp)
/* f07c694: e624000c */ swc1 $f4,0xc($s1)
/* f07c698: c7aa00a0 */ lwc1 $f10,0xa0($sp)
/* f07c69c: 0fc19711 */ jal propDeregisterRooms
/* f07c6a0: e62a0010 */ swc1 $f10,0x10($s1)
/* f07c6a4: 27a40050 */ addiu $a0,$sp,0x50
/* f07c6a8: 0fc195e9 */ jal roomsCopy
/* f07c6ac: 8fa50040 */ lw $a1,0x40($sp)
/* f07c6b0: 02002025 */ or $a0,$s0,$zero
/* f07c6b4: 00002825 */ or $a1,$zero,$zero
/* f07c6b8: 0fc1a71c */ jal func0f069c70
/* f07c6bc: 24060001 */ addiu $a2,$zero,0x1
/* f07c6c0: 920b0096 */ lbu $t3,0x96($s0)
/* f07c6c4: 02002025 */ or $a0,$s0,$zero
/* f07c6c8: 24050008 */ addiu $a1,$zero,0x8
/* f07c6cc: 256c0001 */ addiu $t4,$t3,0x1
/* f07c6d0: 0fc20733 */ jal objDeform
/* f07c6d4: a20c0096 */ sb $t4,0x96($s0)
/* f07c6d8: 862d0028 */ lh $t5,0x28($s1)
/* f07c6dc: 3c013f80 */ lui $at,0x3f80
/* f07c6e0: 44803000 */ mtc1 $zero,$f6
/* f07c6e4: 44814000 */ mtc1 $at,$f8
/* f07c6e8: 44808000 */ mtc1 $zero,$f16
/* f07c6ec: 02202025 */ or $a0,$s1,$zero
/* f07c6f0: 24050001 */ addiu $a1,$zero,0x1
/* f07c6f4: 3406ffff */ dli $a2,0xffff
/* f07c6f8: a7ad0072 */ sh $t5,0x72($sp)
/* f07c6fc: e7a60074 */ swc1 $f6,0x74($sp)
/* f07c700: e7a80078 */ swc1 $f8,0x78($sp)
/* f07c704: 0fc249af */ jal func0f0926bc
/* f07c708: e7b0007c */ swc1 $f16,0x7c($sp)
/* f07c70c: 87b80072 */ lh $t8,0x72($sp)
/* f07c710: 240e0001 */ addiu $t6,$zero,0x1
/* f07c714: 27af0098 */ addiu $t7,$sp,0x98
/* f07c718: 27b90074 */ addiu $t9,$sp,0x74
/* f07c71c: afb90020 */ sw $t9,0x20($sp)
/* f07c720: afaf0018 */ sw $t7,0x18($sp)
/* f07c724: afae0014 */ sw $t6,0x14($sp)
/* f07c728: 00002025 */ or $a0,$zero,$zero
/* f07c72c: 8fa50044 */ lw $a1,0x44($sp)
/* f07c730: 8fa60040 */ lw $a2,0x40($sp)
/* f07c734: 2407000d */ addiu $a3,$zero,0xd
/* f07c738: afa00010 */ sw $zero,0x10($sp)
/* f07c73c: 0fc4a7d5 */ jal explosionCreate
/* f07c740: afb8001c */ sw $t8,0x1c($sp)
/* f07c744: 24090001 */ addiu $t1,$zero,0x1
/* f07c748: 10000014 */ b .L0f07c79c
/* f07c74c: ae0900e4 */ sw $t1,0xe4($s0)
.L0f07c750:
/* f07c750: 8fa50040 */ lw $a1,0x40($sp)
/* f07c754: 0fc4ba08 */ jal smokeCreateSimple
/* f07c758: 24060003 */ addiu $a2,$zero,0x3
/* f07c75c: c6120080 */ lwc1 $f18,0x80($s0)
/* f07c760: 44802000 */ mtc1 $zero,$f4
/* f07c764: 02202025 */ or $a0,$s1,$zero
/* f07c768: 8fa50174 */ lw $a1,0x174($sp)
/* f07c76c: 4604903c */ c.lt.s $f18,$f4
/* f07c770: 27a7015c */ addiu $a3,$sp,0x15c
/* f07c774: 3c017f1b */ lui $at,%hi(var7f1aa694)
/* f07c778: 45000004 */ bc1f .L0f07c78c
/* f07c77c: 00000000 */ nop
/* f07c780: 3c017f1b */ lui $at,%hi(var7f1aa698)
/* f07c784: 10000002 */ b .L0f07c790
/* f07c788: c420a694 */ lwc1 $f0,%lo(var7f1aa694)($at)
.L0f07c78c:
/* f07c78c: c420a698 */ lwc1 $f0,%lo(var7f1aa698)($at)
.L0f07c790:
/* f07c790: 44060000 */ mfc1 $a2,$f0
/* f07c794: 0fc1ee8e */ jal chopperIncrementMovement
/* f07c798: afa00010 */ sw $zero,0x10($sp)
.L0f07c79c:
/* f07c79c: 8fbf0034 */ lw $ra,0x34($sp)
.L0f07c7a0:
/* f07c7a0: 8fb0002c */ lw $s0,0x2c($sp)
/* f07c7a4: 8fb10030 */ lw $s1,0x30($sp)
/* f07c7a8: 03e00008 */ jr $ra
/* f07c7ac: 27bd0180 */ addiu $sp,$sp,0x180
);
#else
GLOBAL_ASM(
glabel chopperTickFall
.late_rodata
glabel var7f1aa66c
.word 0xbf333333
glabel var7f1aa670
.word 0x3c1374bc
glabel var7f1aa674
.word 0xc6ea6000
glabel var7f1aa678
.word 0x40490fdb
glabel var7f1aa67c
.word 0xc0490fdb
glabel var7f1aa680
.word 0x3f7ae148
glabel var7f1aa684
.word 0x3d567664
glabel var7f1aa688
.word 0x40c907a9
glabel var7f1aa68c
.word 0x3c23d70a
glabel var7f1aa690
.word 0x3e19999a
glabel var7f1aa694
.word 0x40490fdb
glabel var7f1aa698
.word 0xc0490fdb
.text
/* f07abdc: 27bdfe80 */ addiu $sp,$sp,-384
/* f07abe0: afbf0034 */ sw $ra,0x34($sp)
/* f07abe4: afb10030 */ sw $s1,0x30($sp)
/* f07abe8: afb0002c */ sw $s0,0x2c($sp)
/* f07abec: 8c900004 */ lw $s0,0x4($a0)
/* f07abf0: 24010002 */ addiu $at,$zero,0x2
/* f07abf4: 00808825 */ or $s1,$a0,$zero
/* f07abf8: 8e0200c0 */ lw $v0,0xc0($s0)
/* f07abfc: 3c0e800a */ lui $t6,0x800a
/* f07ac00: 02002825 */ or $a1,$s0,$zero
/* f07ac04: 14410077 */ bne $v0,$at,.NB0f07ade4
/* f07ac08: 00000000 */ sll $zero,$zero,0x0
/* f07ac0c: 8dcee6f8 */ lw $t6,-0x1908($t6)
/* f07ac10: 8e080088 */ lw $t0,0x88($s0)
/* f07ac14: 44801000 */ mtc1 $zero,$f2
/* f07ac18: 44807000 */ mtc1 $zero,$f14
/* f07ac1c: 004e7823 */ subu $t7,$v0,$t6
/* f07ac20: 1100006a */ beqz $t0,.NB0f07adcc
/* f07ac24: ae0f00c0 */ sw $t7,0xc0($s0)
/* f07ac28: 95070006 */ lhu $a3,0x6($t0)
/* f07ac2c: 00001825 */ or $v1,$zero,$zero
/* f07ac30: 58e0001c */ blezl $a3,.NB0f07aca4
/* f07ac34: 920a0097 */ lbu $t2,0x97($s0)
/* f07ac38: 92040097 */ lbu $a0,0x97($s0)
/* f07ac3c: 8e06008c */ lw $a2,0x8c($s0)
.NB0f07ac40:
/* f07ac40: 50800004 */ beqzl $a0,.NB0f07ac54
/* f07ac44: 24780001 */ addiu $t8,$v1,0x1
/* f07ac48: 1000000d */ beqz $zero,.NB0f07ac80
/* f07ac4c: 00601025 */ or $v0,$v1,$zero
/* f07ac50: 24780001 */ addiu $t8,$v1,0x1
.NB0f07ac54:
/* f07ac54: 0307001a */ div $zero,$t8,$a3
/* f07ac58: 00001010 */ mfhi $v0
/* f07ac5c: 14e00002 */ bnez $a3,.NB0f07ac68
/* f07ac60: 00000000 */ sll $zero,$zero,0x0
/* f07ac64: 0007000d */ break 0x7
.NB0f07ac68:
/* f07ac68: 2401ffff */ addiu $at,$zero,-1
/* f07ac6c: 14e10004 */ bne $a3,$at,.NB0f07ac80
/* f07ac70: 3c018000 */ lui $at,0x8000
/* f07ac74: 17010002 */ bne $t8,$at,.NB0f07ac80
/* f07ac78: 00000000 */ sll $zero,$zero,0x0
/* f07ac7c: 0006000d */ break 0x6
.NB0f07ac80:
/* f07ac80: 50460008 */ beql $v0,$a2,.NB0f07aca4
/* f07ac84: 920a0097 */ lbu $t2,0x97($s0)
/* f07ac88: 8cb90088 */ lw $t9,0x88($a1)
/* f07ac8c: 24630001 */ addiu $v1,$v1,0x1
/* f07ac90: 97290006 */ lhu $t1,0x6($t9)
/* f07ac94: 0069082a */ slt $at,$v1,$t1
/* f07ac98: 1420ffe9 */ bnez $at,.NB0f07ac40
/* f07ac9c: 00000000 */ sll $zero,$zero,0x0
/* f07aca0: 920a0097 */ lbu $t2,0x97($s0)
.NB0f07aca4:
/* f07aca4: 24050002 */ addiu $a1,$zero,0x2
/* f07aca8: 246b0001 */ addiu $t3,$v1,0x1
/* f07acac: 5140000f */ beqzl $t2,.NB0f07acec
/* f07acb0: 00601025 */ or $v0,$v1,$zero
/* f07acb4: 0167001a */ div $zero,$t3,$a3
/* f07acb8: 00001010 */ mfhi $v0
/* f07acbc: 14e00002 */ bnez $a3,.NB0f07acc8
/* f07acc0: 00000000 */ sll $zero,$zero,0x0
/* f07acc4: 0007000d */ break 0x7
.NB0f07acc8:
/* f07acc8: 2401ffff */ addiu $at,$zero,-1
/* f07accc: 14e10004 */ bne $a3,$at,.NB0f07ace0
/* f07acd0: 3c018000 */ lui $at,0x8000
/* f07acd4: 15610002 */ bne $t3,$at,.NB0f07ace0
/* f07acd8: 00000000 */ sll $zero,$zero,0x0
/* f07acdc: 0006000d */ break 0x6
.NB0f07ace0:
/* f07ace0: 10000003 */ beqz $zero,.NB0f07acf0
/* f07ace4: 8d0c0000 */ lw $t4,0x0($t0)
/* f07ace8: 00601025 */ or $v0,$v1,$zero
.NB0f07acec:
/* f07acec: 8d0c0000 */ lw $t4,0x0($t0)
.NB0f07acf0:
/* f07acf0: 00026880 */ sll $t5,$v0,0x2
/* f07acf4: 27a60104 */ addiu $a2,$sp,0x104
/* f07acf8: 018d7021 */ addu $t6,$t4,$t5
/* f07acfc: 8dc40000 */ lw $a0,0x0($t6)
/* f07ad00: 0fc43fc4 */ jal padUnpack
/* f07ad04: afa30158 */ sw $v1,0x158($sp)
/* f07ad08: 920f0097 */ lbu $t7,0x97($s0)
/* f07ad0c: 8fa30158 */ lw $v1,0x158($sp)
/* f07ad10: 24050002 */ addiu $a1,$zero,0x2
/* f07ad14: 51e00005 */ beqzl $t7,.NB0f07ad2c
/* f07ad18: 8e080088 */ lw $t0,0x88($s0)
/* f07ad1c: 00601025 */ or $v0,$v1,$zero
/* f07ad20: 1000000f */ beqz $zero,.NB0f07ad60
/* f07ad24: 8e080088 */ lw $t0,0x88($s0)
/* f07ad28: 8e080088 */ lw $t0,0x88($s0)
.NB0f07ad2c:
/* f07ad2c: 24780001 */ addiu $t8,$v1,0x1
/* f07ad30: 95190006 */ lhu $t9,0x6($t0)
/* f07ad34: 0319001a */ div $zero,$t8,$t9
/* f07ad38: 00001010 */ mfhi $v0
/* f07ad3c: 17200002 */ bnez $t9,.NB0f07ad48
/* f07ad40: 00000000 */ sll $zero,$zero,0x0
/* f07ad44: 0007000d */ break 0x7
.NB0f07ad48:
/* f07ad48: 2401ffff */ addiu $at,$zero,-1
/* f07ad4c: 17210004 */ bne $t9,$at,.NB0f07ad60
/* f07ad50: 3c018000 */ lui $at,0x8000
/* f07ad54: 17010002 */ bne $t8,$at,.NB0f07ad60
/* f07ad58: 00000000 */ sll $zero,$zero,0x0
/* f07ad5c: 0006000d */ break 0x6
.NB0f07ad60:
/* f07ad60: 8d090000 */ lw $t1,0x0($t0)
/* f07ad64: 00025080 */ sll $t2,$v0,0x2
/* f07ad68: 27a600b0 */ addiu $a2,$sp,0xb0
/* f07ad6c: 012a5821 */ addu $t3,$t1,$t2
/* f07ad70: 0fc43fc4 */ jal padUnpack
/* f07ad74: 8d640000 */ lw $a0,0x0($t3)
/* f07ad78: c7a40104 */ lwc1 $f4,0x104($sp)
/* f07ad7c: c7a600b0 */ lwc1 $f6,0xb0($sp)
/* f07ad80: c7a8010c */ lwc1 $f8,0x10c($sp)
/* f07ad84: c7aa00b8 */ lwc1 $f10,0xb8($sp)
/* f07ad88: 46062081 */ sub.s $f2,$f4,$f6
/* f07ad8c: 460a4381 */ sub.s $f14,$f8,$f10
/* f07ad90: 46021402 */ mul.s $f16,$f2,$f2
/* f07ad94: e7a200ac */ swc1 $f2,0xac($sp)
/* f07ad98: 460e7482 */ mul.s $f18,$f14,$f14
/* f07ad9c: e7ae00a8 */ swc1 $f14,0xa8($sp)
/* f07ada0: 0c012e84 */ jal sqrtf
/* f07ada4: 46128300 */ add.s $f12,$f16,$f18
/* f07ada8: 3c013e80 */ lui $at,0x3e80
/* f07adac: 44812000 */ mtc1 $at,$f4
/* f07adb0: c7a200ac */ lwc1 $f2,0xac($sp)
/* f07adb4: c7ae00a8 */ lwc1 $f14,0xa8($sp)
/* f07adb8: 46002303 */ div.s $f12,$f4,$f0
/* f07adbc: 460c1082 */ mul.s $f2,$f2,$f12
/* f07adc0: 00000000 */ sll $zero,$zero,0x0
/* f07adc4: 460c7382 */ mul.s $f14,$f14,$f12
/* f07adc8: 00000000 */ sll $zero,$zero,0x0
.NB0f07adcc:
/* f07adcc: 44804000 */ mtc1 $zero,$f8
/* f07add0: 46007187 */ neg.s $f6,$f14
/* f07add4: e602006c */ swc1 $f2,0x6c($s0)
/* f07add8: e6060064 */ swc1 $f6,0x64($s0)
/* f07addc: 10000017 */ beqz $zero,.NB0f07ae3c
/* f07ade0: e6080068 */ swc1 $f8,0x68($s0)
.NB0f07ade4:
/* f07ade4: 04400006 */ bltz $v0,.NB0f07ae00
/* f07ade8: 3c017f1a */ lui $at,0x7f1a
/* f07adec: 3c0c800a */ lui $t4,0x800a
/* f07adf0: 8d8ce6f8 */ lw $t4,-0x1908($t4)
/* f07adf4: 004c6823 */ subu $t5,$v0,$t4
/* f07adf8: 10000010 */ beqz $zero,.NB0f07ae3c
/* f07adfc: ae0d00c0 */ sw $t5,0xc0($s0)
.NB0f07ae00:
/* f07ae00: c42a498c */ lwc1 $f10,0x498c($at)
/* f07ae04: c7b00160 */ lwc1 $f16,0x160($sp)
/* f07ae08: 3c017f1a */ lui $at,0x7f1a
/* f07ae0c: 4610503c */ c.lt.s $f10,$f16
/* f07ae10: 00000000 */ sll $zero,$zero,0x0
/* f07ae14: 4502000a */ bc1fl .NB0f07ae40
/* f07ae18: 26020064 */ addiu $v0,$s0,0x64
/* f07ae1c: c4324990 */ lwc1 $f18,0x4990($at)
/* f07ae20: 3c01800a */ lui $at,0x800a
/* f07ae24: c424e704 */ lwc1 $f4,-0x18fc($at)
/* f07ae28: 26020068 */ addiu $v0,$s0,0x68
/* f07ae2c: c4480000 */ lwc1 $f8,0x0($v0)
/* f07ae30: 46049182 */ mul.s $f6,$f18,$f4
/* f07ae34: 46064281 */ sub.s $f10,$f8,$f6
/* f07ae38: e44a0000 */ swc1 $f10,0x0($v0)
.NB0f07ae3c:
/* f07ae3c: 26020064 */ addiu $v0,$s0,0x64
.NB0f07ae40:
/* f07ae40: c4500000 */ lwc1 $f16,0x0($v0)
/* f07ae44: 2603006c */ addiu $v1,$s0,0x6c
/* f07ae48: 3c04800a */ lui $a0,0x800a
/* f07ae4c: e7b0015c */ swc1 $f16,0x15c($sp)
/* f07ae50: c6120068 */ lwc1 $f18,0x68($s0)
/* f07ae54: 8c84eb74 */ lw $a0,-0x148c($a0)
/* f07ae58: e7b20160 */ swc1 $f18,0x160($sp)
/* f07ae5c: c4640000 */ lwc1 $f4,0x0($v1)
/* f07ae60: e7a40164 */ swc1 $f4,0x164($sp)
/* f07ae64: c4460000 */ lwc1 $f6,0x0($v0)
/* f07ae68: c608007c */ lwc1 $f8,0x7c($s0)
/* f07ae6c: c4700000 */ lwc1 $f16,0x0($v1)
/* f07ae70: 46064280 */ add.s $f10,$f8,$f6
/* f07ae74: 460a8480 */ add.s $f18,$f16,$f10
/* f07ae78: 0fc57f85 */ jal stageGetIndex
/* f07ae7c: e7b20174 */ swc1 $f18,0x174($sp)
/* f07ae80: 2401000e */ addiu $at,$zero,0xe
/* f07ae84: 14410022 */ bne $v0,$at,.NB0f07af10
/* f07ae88: 3c03800a */ lui $v1,0x800a
/* f07ae8c: 3c017f1a */ lui $at,0x7f1a
/* f07ae90: c4284994 */ lwc1 $f8,0x4994($at)
/* f07ae94: c624000c */ lwc1 $f4,0xc($s1)
/* f07ae98: 3406ffff */ dli $a2,0xffff
/* f07ae9c: 02202025 */ or $a0,$s1,$zero
/* f07aea0: 4608203c */ c.lt.s $f4,$f8
/* f07aea4: 8fa50174 */ lw $a1,0x174($sp)
/* f07aea8: 27a7015c */ addiu $a3,$sp,0x15c
/* f07aeac: 45020009 */ bc1fl .NB0f07aed4
/* f07aeb0: c6060080 */ lwc1 $f6,0x80($s0)
/* f07aeb4: 02202025 */ or $a0,$s1,$zero
/* f07aeb8: 0fc2433d */ jal func0f0926bc
/* f07aebc: 24050001 */ addiu $a1,$zero,0x1
/* f07aec0: 8e0e0040 */ lw $t6,0x40($s0)
/* f07aec4: 35cf0004 */ ori $t7,$t6,0x4
/* f07aec8: 100000df */ beqz $zero,.NB0f07b248
/* f07aecc: ae0f0040 */ sw $t7,0x40($s0)
/* f07aed0: c6060080 */ lwc1 $f6,0x80($s0)
.NB0f07aed4:
/* f07aed4: 44808000 */ mtc1 $zero,$f16
/* f07aed8: 3c017f1a */ lui $at,0x7f1a
/* f07aedc: 4610303c */ c.lt.s $f6,$f16
/* f07aee0: 00000000 */ sll $zero,$zero,0x0
/* f07aee4: 45000004 */ bc1f .NB0f07aef8
/* f07aee8: 00000000 */ sll $zero,$zero,0x0
/* f07aeec: 3c017f1a */ lui $at,0x7f1a
/* f07aef0: 10000002 */ beqz $zero,.NB0f07aefc
/* f07aef4: c4204998 */ lwc1 $f0,0x4998($at)
.NB0f07aef8:
/* f07aef8: c420499c */ lwc1 $f0,0x499c($at)
.NB0f07aefc:
/* f07aefc: 44060000 */ mfc1 $a2,$f0
/* f07af00: 0fc1e93a */ jal chopperIncrementMovement
/* f07af04: afa00010 */ sw $zero,0x10($sp)
/* f07af08: 100000d0 */ beqz $zero,.NB0f07b24c
/* f07af0c: 8fbf0034 */ lw $ra,0x34($sp)
.NB0f07af10:
/* f07af10: 8c63e6f8 */ lw $v1,-0x1908($v1)
/* f07af14: 3c017f1a */ lui $at,0x7f1a
/* f07af18: c42049a0 */ lwc1 $f0,0x49a0($at)
/* f07af1c: 28610002 */ slti $at,$v1,0x2
/* f07af20: 24020001 */ addiu $v0,$zero,0x1
/* f07af24: 14200006 */ bnez $at,.NB0f07af40
/* f07af28: 46000086 */ mov.s $f2,$f0
/* f07af2c: 24420001 */ addiu $v0,$v0,0x1
.NB0f07af30:
/* f07af30: 0043082a */ slt $at,$v0,$v1
/* f07af34: 46001082 */ mul.s $f2,$f2,$f0
/* f07af38: 5420fffd */ bnezl $at,.NB0f07af30
/* f07af3c: 24420001 */ addiu $v0,$v0,0x1
.NB0f07af40:
/* f07af40: 3c017f1a */ lui $at,0x7f1a
/* f07af44: c43249a4 */ lwc1 $f18,0x49a4($at)
/* f07af48: c60a00b4 */ lwc1 $f10,0xb4($s0)
/* f07af4c: 3c017f1a */ lui $at,0x7f1a
/* f07af50: c42449a8 */ lwc1 $f4,0x49a8($at)
/* f07af54: 46125300 */ add.s $f12,$f10,$f18
/* f07af58: 460c203c */ c.lt.s $f4,$f12
/* f07af5c: 00000000 */ sll $zero,$zero,0x0
/* f07af60: 4500001c */ bc1f .NB0f07afd4
/* f07af64: 00000000 */ sll $zero,$zero,0x0
/* f07af68: 44806000 */ mtc1 $zero,$f12
/* f07af6c: e7a20088 */ swc1 $f2,0x88($sp)
/* f07af70: 0c004d84 */ jal random
/* f07af74: e7ac0084 */ swc1 $f12,0x84($sp)
/* f07af78: 30580007 */ andi $t8,$v0,0x7
/* f07af7c: 27190002 */ addiu $t9,$t8,0x2
/* f07af80: 44994000 */ mtc1 $t9,$f8
/* f07af84: c7a20088 */ lwc1 $f2,0x88($sp)
/* f07af88: c7ac0084 */ lwc1 $f12,0x84($sp)
/* f07af8c: 07210005 */ bgez $t9,.NB0f07afa4
/* f07af90: 468041a0 */ cvt.s.w $f6,$f8
/* f07af94: 3c014f80 */ lui $at,0x4f80
/* f07af98: 44818000 */ mtc1 $at,$f16
/* f07af9c: 00000000 */ sll $zero,$zero,0x0
/* f07afa0: 46103180 */ add.s $f6,$f6,$f16
.NB0f07afa4:
/* f07afa4: 3c017f1a */ lui $at,0x7f1a
/* f07afa8: c42a49ac */ lwc1 $f10,0x49ac($at)
/* f07afac: 8e090008 */ lw $t1,0x8($s0)
/* f07afb0: 3c017f1a */ lui $at,0x7f1a
/* f07afb4: 460a3482 */ mul.s $f18,$f6,$f10
/* f07afb8: 00095000 */ sll $t2,$t1,0x0
/* f07afbc: 05410005 */ bgez $t2,.NB0f07afd4
/* f07afc0: e61200b8 */ swc1 $f18,0xb8($s0)
/* f07afc4: c60400b8 */ lwc1 $f4,0xb8($s0)
/* f07afc8: c42849b0 */ lwc1 $f8,0x49b0($at)
/* f07afcc: 46082402 */ mul.s $f16,$f4,$f8
/* f07afd0: e61000b8 */ swc1 $f16,0xb8($s0)
.NB0f07afd4:
/* f07afd4: 0c006d55 */ jal sinf
/* f07afd8: e7a20088 */ swc1 $f2,0x88($sp)
/* f07afdc: c60a00b8 */ lwc1 $f10,0xb8($s0)
/* f07afe0: c7a60160 */ lwc1 $f6,0x160($sp)
/* f07afe4: c7a8015c */ lwc1 $f8,0x15c($sp)
/* f07afe8: 46005482 */ mul.s $f18,$f10,$f0
/* f07afec: c7a20088 */ lwc1 $f2,0x88($sp)
/* f07aff0: 3c01800a */ lui $at,0x800a
/* f07aff4: c42ce70c */ lwc1 $f12,-0x18f4($at)
/* f07aff8: 26240008 */ addiu $a0,$s1,0x8
/* f07affc: 26250028 */ addiu $a1,$s1,0x28
/* f07b000: 27a60098 */ addiu $a2,$sp,0x98
/* f07b004: 46123100 */ add.s $f4,$f6,$f18
/* f07b008: 24070020 */ addiu $a3,$zero,0x20
/* f07b00c: e7a40160 */ swc1 $f4,0x160($sp)
/* f07b010: c61000a4 */ lwc1 $f16,0xa4($s0)
/* f07b014: c6060098 */ lwc1 $f6,0x98($s0)
/* f07b018: 46104282 */ mul.s $f10,$f8,$f16
/* f07b01c: 46065480 */ add.s $f18,$f10,$f6
/* f07b020: 46029202 */ mul.s $f8,$f18,$f2
/* f07b024: e7a8008c */ swc1 $f8,0x8c($sp)
/* f07b028: c61000a4 */ lwc1 $f16,0xa4($s0)
/* f07b02c: c606009c */ lwc1 $f6,0x9c($s0)
/* f07b030: 46102282 */ mul.s $f10,$f4,$f16
/* f07b034: c7b00164 */ lwc1 $f16,0x164($sp)
/* f07b038: 46065480 */ add.s $f18,$f10,$f6
/* f07b03c: 46029102 */ mul.s $f4,$f18,$f2
/* f07b040: e7a40090 */ swc1 $f4,0x90($sp)
/* f07b044: c60a00a4 */ lwc1 $f10,0xa4($s0)
/* f07b048: c61200a0 */ lwc1 $f18,0xa0($s0)
/* f07b04c: 460a8182 */ mul.s $f6,$f16,$f10
/* f07b050: 46123400 */ add.s $f16,$f6,$f18
/* f07b054: 46028282 */ mul.s $f10,$f16,$f2
/* f07b058: e7aa0094 */ swc1 $f10,0x94($sp)
/* f07b05c: 460c4182 */ mul.s $f6,$f8,$f12
/* f07b060: c6320008 */ lwc1 $f18,0x8($s1)
/* f07b064: 460c2202 */ mul.s $f8,$f4,$f12
/* f07b068: 46123400 */ add.s $f16,$f6,$f18
/* f07b06c: e7b00098 */ swc1 $f16,0x98($sp)
/* f07b070: c626000c */ lwc1 $f6,0xc($s1)
/* f07b074: 460c5402 */ mul.s $f16,$f10,$f12
/* f07b078: 46064480 */ add.s $f18,$f8,$f6
/* f07b07c: e7b2009c */ swc1 $f18,0x9c($sp)
/* f07b080: c6240010 */ lwc1 $f4,0x10($s1)
/* f07b084: afa50040 */ sw $a1,0x40($sp)
/* f07b088: afa40044 */ sw $a0,0x44($sp)
/* f07b08c: 46048200 */ add.s $f8,$f16,$f4
/* f07b090: 0c00bc86 */ jal cd0002de10
/* f07b094: e7a800a0 */ swc1 $f8,0xa0($sp)
/* f07b098: 14400058 */ bnez $v0,.NB0f07b1fc
/* f07b09c: 8fa40044 */ lw $a0,0x44($sp)
/* f07b0a0: 3c0142c8 */ lui $at,0x42c8
/* f07b0a4: 44819000 */ mtc1 $at,$f18
/* f07b0a8: c626000c */ lwc1 $f6,0xc($s1)
/* f07b0ac: 3c0540a0 */ lui $a1,0x40a0
/* f07b0b0: 00003825 */ or $a3,$zero,$zero
/* f07b0b4: 46123280 */ add.s $f10,$f6,$f18
/* f07b0b8: e62a000c */ swc1 $f10,0xc($s1)
/* f07b0bc: afa00010 */ sw $zero,0x10($sp)
/* f07b0c0: 8fa60040 */ lw $a2,0x40($sp)
/* f07b0c4: 0c00adde */ jal cdFindGroundYSimple
/* f07b0c8: 8fa40044 */ lw $a0,0x44($sp)
/* f07b0cc: e7a00060 */ swc1 $f0,0x60($sp)
/* f07b0d0: 3c0142c8 */ lui $at,0x42c8
/* f07b0d4: 44812000 */ mtc1 $at,$f4
/* f07b0d8: c630000c */ lwc1 $f16,0xc($s1)
/* f07b0dc: 3c067f1a */ lui $a2,0x7f1a
/* f07b0e0: 24c64364 */ addiu $a2,$a2,0x4364
/* f07b0e4: 46048201 */ sub.s $f8,$f16,$f4
/* f07b0e8: 27a40064 */ addiu $a0,$sp,0x64
/* f07b0ec: 24052ffe */ addiu $a1,$zero,0x2ffe
/* f07b0f0: 0c0098a7 */ jal cdGetPos
/* f07b0f4: e628000c */ swc1 $f8,0xc($s1)
/* f07b0f8: 3c0141a0 */ lui $at,0x41a0
/* f07b0fc: 44815000 */ mtc1 $at,$f10
/* f07b100: c7b20060 */ lwc1 $f18,0x60($sp)
/* f07b104: c7a60064 */ lwc1 $f6,0x64($sp)
/* f07b108: c7a4006c */ lwc1 $f4,0x6c($sp)
/* f07b10c: 460a9400 */ add.s $f16,$f18,$f10
/* f07b110: 8fa40044 */ lw $a0,0x44($sp)
/* f07b114: 8fa50040 */ lw $a1,0x40($sp)
/* f07b118: 27a60098 */ addiu $a2,$sp,0x98
/* f07b11c: e7b0009c */ swc1 $f16,0x9c($sp)
/* f07b120: 27a70050 */ addiu $a3,$sp,0x50
/* f07b124: e7a60098 */ swc1 $f6,0x98($sp)
/* f07b128: 0fc19437 */ jal func0f065e74
/* f07b12c: e7a400a0 */ swc1 $f4,0xa0($sp)
/* f07b130: c7a80098 */ lwc1 $f8,0x98($sp)
/* f07b134: 02202025 */ or $a0,$s1,$zero
/* f07b138: e6280008 */ swc1 $f8,0x8($s1)
/* f07b13c: c7a6009c */ lwc1 $f6,0x9c($sp)
/* f07b140: e626000c */ swc1 $f6,0xc($s1)
/* f07b144: c7b200a0 */ lwc1 $f18,0xa0($sp)
/* f07b148: 0fc193ab */ jal propDeregisterRooms
/* f07b14c: e6320010 */ swc1 $f18,0x10($s1)
/* f07b150: 27a40050 */ addiu $a0,$sp,0x50
/* f07b154: 0fc19283 */ jal roomsCopy
/* f07b158: 8fa50040 */ lw $a1,0x40($sp)
/* f07b15c: 02002025 */ or $a0,$s0,$zero
/* f07b160: 00002825 */ or $a1,$zero,$zero
/* f07b164: 0fc1a3b7 */ jal func0f069c70
/* f07b168: 24060001 */ addiu $a2,$zero,0x1
/* f07b16c: 920b0096 */ lbu $t3,0x96($s0)
/* f07b170: 02002025 */ or $a0,$s0,$zero
/* f07b174: 24050008 */ addiu $a1,$zero,0x8
/* f07b178: 256c0001 */ addiu $t4,$t3,0x1
/* f07b17c: 0fc201d0 */ jal objDeform
/* f07b180: a20c0096 */ sb $t4,0x96($s0)
/* f07b184: 862d0028 */ lh $t5,0x28($s1)
/* f07b188: 3c013f80 */ lui $at,0x3f80
/* f07b18c: 44805000 */ mtc1 $zero,$f10
/* f07b190: 44818000 */ mtc1 $at,$f16
/* f07b194: 44802000 */ mtc1 $zero,$f4
/* f07b198: 02202025 */ or $a0,$s1,$zero
/* f07b19c: 24050001 */ addiu $a1,$zero,0x1
/* f07b1a0: 3406ffff */ dli $a2,0xffff
/* f07b1a4: a7ad0072 */ sh $t5,0x72($sp)
/* f07b1a8: e7aa0074 */ swc1 $f10,0x74($sp)
/* f07b1ac: e7b00078 */ swc1 $f16,0x78($sp)
/* f07b1b0: 0fc2433d */ jal func0f0926bc
/* f07b1b4: e7a4007c */ swc1 $f4,0x7c($sp)
/* f07b1b8: 87b80072 */ lh $t8,0x72($sp)
/* f07b1bc: 240e0001 */ addiu $t6,$zero,0x1
/* f07b1c0: 27af0098 */ addiu $t7,$sp,0x98
/* f07b1c4: 27b90074 */ addiu $t9,$sp,0x74
/* f07b1c8: afb90020 */ sw $t9,0x20($sp)
/* f07b1cc: afaf0018 */ sw $t7,0x18($sp)
/* f07b1d0: afae0014 */ sw $t6,0x14($sp)
/* f07b1d4: 00002025 */ or $a0,$zero,$zero
/* f07b1d8: 8fa50044 */ lw $a1,0x44($sp)
/* f07b1dc: 8fa60040 */ lw $a2,0x40($sp)
/* f07b1e0: 2407000d */ addiu $a3,$zero,0xd
/* f07b1e4: afa00010 */ sw $zero,0x10($sp)
/* f07b1e8: 0fc492bc */ jal explosionCreate
/* f07b1ec: afb8001c */ sw $t8,0x1c($sp)
/* f07b1f0: 24090001 */ addiu $t1,$zero,0x1
/* f07b1f4: 10000014 */ beqz $zero,.NB0f07b248
/* f07b1f8: ae0900e4 */ sw $t1,0xe4($s0)
.NB0f07b1fc:
/* f07b1fc: 8fa50040 */ lw $a1,0x40($sp)
/* f07b200: 0fc4a4ec */ jal smokeCreateSimple
/* f07b204: 24060003 */ addiu $a2,$zero,0x3
/* f07b208: c6080080 */ lwc1 $f8,0x80($s0)
/* f07b20c: 44803000 */ mtc1 $zero,$f6
/* f07b210: 02202025 */ or $a0,$s1,$zero
/* f07b214: 8fa50174 */ lw $a1,0x174($sp)
/* f07b218: 4606403c */ c.lt.s $f8,$f6
/* f07b21c: 27a7015c */ addiu $a3,$sp,0x15c
/* f07b220: 3c017f1a */ lui $at,0x7f1a
/* f07b224: 45000004 */ bc1f .NB0f07b238
/* f07b228: 00000000 */ sll $zero,$zero,0x0
/* f07b22c: 3c017f1a */ lui $at,0x7f1a
/* f07b230: 10000002 */ beqz $zero,.NB0f07b23c
/* f07b234: c42049b4 */ lwc1 $f0,0x49b4($at)
.NB0f07b238:
/* f07b238: c42049b8 */ lwc1 $f0,0x49b8($at)
.NB0f07b23c:
/* f07b23c: 44060000 */ mfc1 $a2,$f0
/* f07b240: 0fc1e93a */ jal chopperIncrementMovement
/* f07b244: afa00010 */ sw $zero,0x10($sp)
.NB0f07b248:
/* f07b248: 8fbf0034 */ lw $ra,0x34($sp)
.NB0f07b24c:
/* f07b24c: 8fb0002c */ lw $s0,0x2c($sp)
/* f07b250: 8fb10030 */ lw $s1,0x30($sp)
/* f07b254: 03e00008 */ jr $ra
/* f07b258: 27bd0180 */ addiu $sp,$sp,0x180
);
#endif
// Mismatch: Something weird with the chopper->fall property.
// Might be the start of a new struct using a union
//void chopperTickFall(struct prop *chopperprop)
//{
// struct defaultobj *obj = chopperprop->obj;
// struct chopperobj *chopper = (struct chopperobj *) obj;
// f32 sp174;
// f32 sp164;
// f32 sp160;
// struct coord sp15c;
// struct pad nextpad;
// struct pad prevpad;
// s32 i;
// struct coord sp98;
// struct coord sp8c;
//
// // I guess the timer is set explicitly to 2 when the chopper is destroyed,
// // otherwise there's no guarantee that the timer will land on this value
// // when ticking down normally. So this code is run once when entering
// // fall mode.
// if (chopper->timer60 == 2) {
// // Figure out what direction to fall in
// f32 spac = 0;
// f32 spa8 = 0;
// s32 nextstep;
// f32 tmp;
//
// chopper->timer60 -= g_Vars.lvupdate240_60;
//
// if (chopper->path) {
// for (i = 0; i < chopper->path->len; i++) {
// if (chopper->cw) {
// nextstep = i;
// } else {
// nextstep = (i + 1) % chopper->path->len;
// }
//
// if (nextstep == chopper->nextstep) {
// break;
// }
// }
//
// if (chopper->cw) {
// nextstep = (i + 1) % chopper->path->len;
// } else {
// nextstep = i;
// }
//
// padUnpack(chopper->path->pads[nextstep], PADFIELD_POS, &nextpad);
//
// if (chopper->cw) {
// nextstep = i;
// } else {
// nextstep = (i + 1) % chopper->path->len;
// }
//
// padUnpack(chopper->path->pads[nextstep], PADFIELD_POS, &prevpad);
//
// spac = nextpad.pos.x - prevpad.pos.x;
// spa8 = nextpad.pos.z - prevpad.pos.z;
//
// tmp = 0.25f / sqrtf(spac * spac + spa8 * spa8);
//
// spac *= tmp;
// spa8 *= tmp;
// }
//
// chopper->fall.f[0] = -spa8;
// chopper->fall.f[1] = 0;
// chopper->fall.f[2] = spac;
// } else if (chopper->timer60 >= 0) {
// // Haven't started falling yet
// chopper->timer60 -= g_Vars.lvupdate240_60;
// } else if (chopper->fall.f[1] > -0.7f) {
// // Increase fall speed
// chopper->fall.f[1] -= 0.009f * g_Vars.lvupdate240f;
// }
//
// sp15c.x = chopper->fall.f[0];
// sp15c.y = chopper->fall.f[1];
// sp15c.z = chopper->fall.f[2];
// sp174 = chopper->roty + sp15c.x + sp15c.z;
//
// if (stageGetIndex(g_Vars.stagenum) == STAGEINDEX_EXTRACTION) {
// // The Extraction chopper falls without any collision checks and is
// // reaped once it reaches the lower barrier
// if (chopperprop->pos.y < -30000) {
// func0f0926bc(chopperprop, 1, 0xffff);
// obj->hidden |= OBJHFLAG_REAPABLE;
// } else {
// chopperIncrementMovement(chopperprop, sp174, chopper->rotx < 0 ? M_PI : -M_PI, &sp15c, false);
// }
// } else {
// // Area 51 interceptors do collision checks
// // and explode once they hit the ground.
// f32 mult = 0.98f;
// f32 bob;
// s32 i;
//
// for (i = 1; i < g_Vars.lvupdate240_60; i++) {
// mult *= 0.98f;
// }
//
// bob = chopper->bob + 0.052358999848366f;
//
// if (bob > M_BADTAU) {
// bob = 0;
//
// chopper->bobstrength = (random() % 8 + 2) * 0.01f;
//
// if (obj->flags & OBJFLAG_80000000) {
// chopper->bobstrength *= 0.15f;
// }
// }
//
// sp160 += chopper->bobstrength * sinf(bob);
//
// sp8c.f[0] = mult * (sp15c.f[0] * chopper->power + chopper->vx);
// sp8c.f[1] = mult * (sp15c.f[1] * chopper->power + chopper->vy);
// sp8c.f[2] = mult * (sp15c.f[2] * chopper->power + chopper->vz);
//
// sp98.f[0] = sp8c.f[0] * g_Vars.lvupdate240freal + chopperprop->pos.x;
// sp98.f[1] = sp8c.f[1] * g_Vars.lvupdate240freal + chopperprop->pos.y;
// sp98.f[2] = sp8c.f[2] * g_Vars.lvupdate240freal + chopperprop->pos.z;
//
// if (cd0002de10(&chopperprop->pos, chopperprop->rooms, &sp98, CDTYPE_BG) == CDRESULT_COLLISION) {
// struct coord sp74;
// s16 room;
// struct coord sp64;
// f32 sp60;
// s16 sp50[8];
//
// chopperprop->pos.y += 100;
// sp60 = cdFindGroundYSimple(&chopperprop->pos, 5, chopperprop->rooms, NULL, NULL);
// chopperprop->pos.y -= 100;
//
//#if VERSION >= VERSION_PAL_FINAL
// cdGetPos(&sp64, 12449, "prop/propobj.c");
//#else
// cdGetPos(&sp64, 12449, "propobj.c");
//#endif
//
// sp98.x = sp64.x;
// sp98.y = sp60 + 20;
// sp98.z = sp64.z;
//
// func0f065e74(&chopperprop->pos, chopperprop->rooms, &sp98, sp50);
//
// chopperprop->pos.x = sp98.x;
// chopperprop->pos.y = sp98.y;
// chopperprop->pos.z = sp98.z;
//
// propDeregisterRooms(chopperprop);
// roomsCopy(sp50, chopperprop->rooms);
// func0f069c70(obj, false, true);
//
// // Move to CHOPPERMODE_DEAD
// chopper->attackmode++;
//
// objDeform(chopper, 8);
//
// room = chopperprop->rooms[0];
// sp74.x = 0;
// sp74.y = 1;
// sp74.z = 0;
//
// func0f0926bc(chopperprop, 1, 0xffff);
//
// explosionCreate(NULL, &chopperprop->pos, chopperprop->rooms, EXPLOSIONTYPE_ROCKET,
// 0, true, &sp98, room, &sp74);
//
// chopper->dead = true;
// } else {
// smokeCreateSimple(&chopperprop->pos, chopperprop->rooms, SMOKETYPE_3);
// chopperIncrementMovement(chopperprop, sp174, chopper->rotx < 0 ? M_PI : -M_PI, &sp15c, false);
// }
// }
//}
void chopperTickIdle(struct prop *prop)
{
struct chopperobj *chopper = (struct chopperobj *)prop->obj;
u32 stack;
f32 roty = chopper->roty;
f32 rotx = chopper->rotx;
struct coord coord;
chraiExecute(chopper, PROPTYPE_OBJ);
chopper->timer60 += g_Vars.lvupdate240_60;
coord.x = 0;
coord.y = 0;
coord.z = 0;
chopperIncrementMovement(prop, roty, rotx, &coord, false);
}
void chopperTickPatrol(struct prop *chopperprop)
{
struct chopperobj *chopper = (struct chopperobj *)chopperprop->obj;
f32 xdiff;
f32 roty = chopper->roty;
f32 rotx = chopper->rotx;
struct coord vector;
struct pad pad;
f32 mult;
f32 zdiff;
chraiExecute(chopper, PROPTYPE_OBJ);
chopper->timer60 += g_Vars.lvupdate240_60;
if (chopper->patroltimer60 > 0) {
chopper->patroltimer60 -= g_Vars.lvupdate240_60;
}
if (chopper->path) {
padUnpack(chopper->path->pads[chopper->nextstep], PADFIELD_POS, &pad);
pad.pos.y += -250;
if (posIsArrivingLaterallyAtPos(&chopperprop->pos, &chopperprop->pos, &pad.pos, 350)) {
chopper->nextstep = ((chopper->cw ? -1 : 1) + chopper->nextstep + chopper->path->len) % chopper->path->len;
padUnpack(chopper->path->pads[chopper->nextstep], PADFIELD_POS, &pad);
pad.pos.y += -250;
}
roty = atan2f(pad.pos.x - chopperprop->pos.x, pad.pos.z - chopperprop->pos.z);
xdiff = pad.pos.x - chopperprop->pos.x;
zdiff = pad.pos.z - chopperprop->pos.z;
rotx = atan2f(pad.pos.y - chopperprop->pos.y, sqrtf(xdiff * xdiff + zdiff * zdiff));
}
if (chopper->base.flags & OBJFLAG_20000000) {
chopper->roty = roty;
chopper->rotx = rotx;
if (1);
chopper->base.flags &= ~OBJFLAG_20000000;
}
if (chopper->patroltimer60 > 0) {
vector.x = pad.pos.x - chopperprop->pos.x;
vector.y = pad.pos.y - chopperprop->pos.y;
vector.z = pad.pos.z - chopperprop->pos.z;
guNormalize(&vector.x, &vector.y, &vector.z);
} else {
mult = cosf(chopper->rotx);
vector.x = sinf(chopper->roty) * mult;
vector.y = sinf(chopper->rotx);
vector.z = cosf(chopper->roty) * mult;
}
chopperIncrementMovement(chopperprop, roty, rotx, &vector, false);
}
/**
* Tick the chopper when it's in combat mode (ie. knows where the player is).
*
* The actual firing logic is in the chopper's AI scripting. Same with choosing
* to return to patrol when the player is out of sight for a few seconds.
*
* This function is only directly responsible for the chopper's movement during
* combat.
*/
void chopperTickCombat(struct prop *chopperprop)
{
struct defaultobj *obj = chopperprop->obj;
struct chopperobj *chopper = (struct chopperobj *)obj;
s32 i;
f32 f0;
struct prop *targetprop = chopperGetTargetProp(chopper);
f32 dist;
struct coord goalpos;
struct coord dir;
struct pad pad;
struct pad nextpad;
f32 f20;
s32 sp90;
s32 sp8c;
bool reverse;
s8 numsteps;
s8 tmp;
struct coord sp78;
struct coord sp6c;
dist = coordGetSquaredDistanceToCoord(&targetprop->pos, &chopperprop->pos);
chraiExecute(chopper, PROPTYPE_OBJ);
chopper->timer60 += g_Vars.lvupdate240_60;
if ((chopper->targetvisible && dist < 2000000.0f) || chopper->path == NULL) {
// Stay put
goalpos.x = chopperprop->pos.x;
goalpos.y = chopperprop->pos.y;
goalpos.z = chopperprop->pos.z;
} else {
f20 = 2.6843546e8f;
for (i = 0; i < chopper->path->len; i++) {
padUnpack(chopper->path->pads[i], PADFIELD_POS, &pad);
padUnpack(chopper->path->pads[(i + 1) % chopper->path->len], PADFIELD_POS, &nextpad);
pad.pos.y += -250.0f;
nextpad.pos.y += -250.0f;
f0 = func0f07b164(&pad.pos, &nextpad.pos, &targetprop->pos, &sp78);
if (f0 < f20) {
f20 = f0;
sp90 = i;
goalpos.x = sp78.x;
goalpos.y = sp78.y;
goalpos.z = sp78.z;
}
if ((chopper->cw ? i : (i + 1) % chopper->path->len) == chopper->nextstep) {
sp8c = i;
sp6c.x = sp78.x;
sp6c.y = sp78.y;
sp6c.z = sp78.z;
}
}
if (sp8c != sp90) {
if (dist > 400000.0f) {
reverse = false;
numsteps = sp8c - sp90;
if (numsteps < 0) {
numsteps *= -1;
reverse = true;
}
tmp = chopper->path->len - numsteps;
chopper->cw = numsteps < tmp;
if (reverse) {
chopper->cw = !chopper->cw;
}
chopper->nextstep = chopper->cw ? sp8c : (sp8c + 1) % chopper->path->len;
padUnpack(chopper->path->pads[chopper->nextstep], PADFIELD_POS, &pad);
pad.pos.y += -250.0f;
if (coordGetSquaredDistanceToCoord(&pad.pos, &chopperprop->pos) < 10000.0f) {
chopper->power = 0.0f;
chopper->nextstep = (chopper->nextstep + (chopper->cw ? -1 : 1) + chopper->path->len) % chopper->path->len;
padUnpack(chopper->path->pads[chopper->nextstep], PADFIELD_POS, &pad);
pad.pos.y += -250.0f;
}
goalpos.x = pad.pos.x;
goalpos.y = pad.pos.y;
goalpos.z = pad.pos.z;
} else {
goalpos.x = sp6c.x;
goalpos.y = sp6c.y;
goalpos.z = sp6c.z;
}
} else if (cd0002db98(&targetprop->pos, targetprop->rooms, &goalpos, CDTYPE_OBJS | CDTYPE_DOORS | CDTYPE_PATHBLOCKER | CDTYPE_BG | CDTYPE_AIOPAQUE, 0x10) == 0) {
padUnpack(chopper->path->pads[chopper->cw ? (sp8c + 1) % chopper->path->len : sp8c], PADFIELD_POS, &pad);
pad.pos.y += -250.0f;
sp78.x = pad.pos.x - goalpos.x;
sp78.y = pad.pos.y - goalpos.y;
sp78.z = pad.pos.z - goalpos.z;
guNormalize(&sp78.x, &sp78.y, &sp78.z);
goalpos.x += sp78.x * 400.0f;
goalpos.y += sp78.y * 400.0f;
goalpos.z += sp78.z * 400.0f;
}
}
if (coordGetSquaredDistanceToCoord(&goalpos, &chopperprop->pos) < 2500.0f) {
// Close to the goal pos - power off
chopper->power = 0.0f;
dir.x = 0.0f;
dir.y = 0.0f;
dir.z = 0.0f;
} else {
// Check if chopper has overshot the goal pos?
dir.x = goalpos.x - chopperprop->pos.x;
dir.y = goalpos.y - chopperprop->pos.y;
dir.z = goalpos.z - chopperprop->pos.z;
guNormalize(&dir.x, &dir.y, &dir.z);
if (dir.f[0] * chopper->otx + dir.f[1] * chopper->oty + dir.f[2] * chopper->otz < 0.0f) {
chopper->power = 0.0f;
}
}
{
f32 roty;
f32 rotx;
roty = atan2f(targetprop->pos.x - chopperprop->pos.x, targetprop->pos.z - chopperprop->pos.z);
dist = sqrtf((targetprop->pos.x - chopperprop->pos.x) * (targetprop->pos.x - chopperprop->pos.x) + (targetprop->pos.z - chopperprop->pos.z) * (targetprop->pos.z - chopperprop->pos.z));
rotx = atan2f(targetprop->pos.y - chopperprop->pos.y, dist);
chopperIncrementMovement(chopperprop, roty, rotx, &dir, chopper->targetvisible && chopper->weaponsarmed);
}
}
#if VERSION >= VERSION_JPN_FINAL
GLOBAL_ASM(
glabel hovercarTick
.late_rodata
glabel var7f1aa6ac
.word 0x471c4000
glabel var7f1aa6b0
.word 0x47148900
glabel var7f1aa6b4
.word 0x3d2aaaab
glabel var7f1aa6b8
.word 0x3dcccccd
glabel var7f1aa6bc
.word 0x3d2aaaab
glabel var7f1aa6c0
.word 0x3e555555
glabel var7f1aa6c4
.word 0x3964ba35
glabel var7f1aa6c8
.word 0x3c566e92
glabel var7f1aa6cc
.word 0x3964ba35
glabel var7f1aa6d0
.word 0x3c566e92
glabel var7f1aa6d4
.word 0x3964ba35
glabel var7f1aa6d8
.word 0x3dcccccd
glabel var7f1aa6dc
.word 0x40c907a9
glabel var7f1aa6e0
.word 0x40c907a9
glabel var7f1aa6e4
.word 0xc7c35000
.text
/* f07e29c: 27bdfd88 */ addiu $sp,$sp,-632
/* f07e2a0: afbf004c */ sw $ra,0x4c($sp)
/* f07e2a4: afb00048 */ sw $s0,0x48($sp)
/* f07e2a8: afa40278 */ sw $a0,0x278($sp)
/* f07e2ac: 8c900004 */ lw $s0,0x4($a0)
/* f07e2b0: 3c018000 */ lui $at,0x8000
/* f07e2b4: c604007c */ lwc1 $f4,0x7c($s0)
/* f07e2b8: e7a40200 */ swc1 $f4,0x200($sp)
/* f07e2bc: c6060080 */ lwc1 $f6,0x80($s0)
/* f07e2c0: e7a601fc */ swc1 $f6,0x1fc($sp)
/* f07e2c4: 8e020008 */ lw $v0,0x8($s0)
/* f07e2c8: 00417824 */ and $t7,$v0,$at
/* f07e2cc: 11e00005 */ beqz $t7,.JF0f07e2e4
/* f07e2d0: 01e01025 */ move $v0,$t7
/* f07e2d4: 3c0140a0 */ lui $at,0x40a0
/* f07e2d8: 44814000 */ mtc1 $at,$f8
/* f07e2dc: 10000005 */ b .JF0f07e2f4
/* f07e2e0: e7a801f4 */ swc1 $f8,0x1f4($sp)
.JF0f07e2e4:
/* f07e2e4: 3c014120 */ lui $at,0x4120
/* f07e2e8: 44815000 */ mtc1 $at,$f10
/* f07e2ec: 00000000 */ nop
/* f07e2f0: e7aa01f4 */ swc1 $f10,0x1f4($sp)
.JF0f07e2f4:
/* f07e2f4: 10400038 */ beqz $v0,.JF0f07e3d8
/* f07e2f8: afa001f0 */ sw $zero,0x1f0($sp)
/* f07e2fc: 86180094 */ lh $t8,0x94($s0)
/* f07e300: 07030036 */ bgezl $t8,.JF0f07e3dc
/* f07e304: 860f0092 */ lh $t7,0x92($s0)
/* f07e308: 0fc1a6f2 */ jal modelFindBboxRodata
/* f07e30c: 8e040018 */ lw $a0,0x18($s0)
/* f07e310: 0fc19e37 */ jal modelBboxGetYMin
/* f07e314: 00402025 */ move $a0,$v0
/* f07e318: 8fa40278 */ lw $a0,0x278($sp)
/* f07e31c: 24050001 */ li $a1,0x1
/* f07e320: 3406ffff */ li $a2,0xffff
/* f07e324: 84990028 */ lh $t9,0x28($a0)
/* f07e328: a7b901d6 */ sh $t9,0x1d6($sp)
/* f07e32c: c6040028 */ lwc1 $f4,0x28($s0)
/* f07e330: e7a401d8 */ swc1 $f4,0x1d8($sp)
/* f07e334: c606002c */ lwc1 $f6,0x2c($s0)
/* f07e338: e7a601dc */ swc1 $f6,0x1dc($sp)
/* f07e33c: c6080030 */ lwc1 $f8,0x30($s0)
/* f07e340: e7a801e0 */ swc1 $f8,0x1e0($sp)
/* f07e344: c60a0028 */ lwc1 $f10,0x28($s0)
/* f07e348: c4860008 */ lwc1 $f6,0x8($a0)
/* f07e34c: 46005102 */ mul.s $f4,$f10,$f0
/* f07e350: 46062200 */ add.s $f8,$f4,$f6
/* f07e354: e7a801e4 */ swc1 $f8,0x1e4($sp)
/* f07e358: c60a002c */ lwc1 $f10,0x2c($s0)
/* f07e35c: c486000c */ lwc1 $f6,0xc($a0)
/* f07e360: 46005102 */ mul.s $f4,$f10,$f0
/* f07e364: 46062200 */ add.s $f8,$f4,$f6
/* f07e368: e7a801e8 */ swc1 $f8,0x1e8($sp)
/* f07e36c: c60a0030 */ lwc1 $f10,0x30($s0)
/* f07e370: c4860010 */ lwc1 $f6,0x10($a0)
/* f07e374: 46005102 */ mul.s $f4,$f10,$f0
/* f07e378: 46062200 */ add.s $f8,$f4,$f6
/* f07e37c: 0fc24d13 */ jal func0f0926bc
/* f07e380: e7a801ec */ swc1 $f8,0x1ec($sp)
/* f07e384: 8fa20278 */ lw $v0,0x278($sp)
/* f07e388: 3c08800a */ lui $t0,0x800a
/* f07e38c: 8d08a8bc */ lw $t0,-0x5744($t0)
/* f07e390: 87ab01d6 */ lh $t3,0x1d6($sp)
/* f07e394: 24090001 */ li $t1,0x1
/* f07e398: 27aa01e4 */ addiu $t2,$sp,0x1e4
/* f07e39c: 27ac01d8 */ addiu $t4,$sp,0x1d8
/* f07e3a0: afac0020 */ sw $t4,0x20($sp)
/* f07e3a4: afaa0018 */ sw $t2,0x18($sp)
/* f07e3a8: afa90014 */ sw $t1,0x14($sp)
/* f07e3ac: 00002025 */ move $a0,$zero
/* f07e3b0: 24070007 */ li $a3,0x7
/* f07e3b4: 24450008 */ addiu $a1,$v0,0x8
/* f07e3b8: 24460028 */ addiu $a2,$v0,0x28
/* f07e3bc: afa80010 */ sw $t0,0x10($sp)
/* f07e3c0: 0fc4a8d5 */ jal explosionCreate
/* f07e3c4: afab001c */ sw $t3,0x1c($sp)
/* f07e3c8: 8e0d0040 */ lw $t5,0x40($s0)
/* f07e3cc: 35ae0004 */ ori $t6,$t5,0x4
/* f07e3d0: 10000311 */ b .JF0f07f018
/* f07e3d4: ae0e0040 */ sw $t6,0x40($s0)
.JF0f07e3d8:
/* f07e3d8: 860f0092 */ lh $t7,0x92($s0)
.JF0f07e3dc:
/* f07e3dc: 02002025 */ move $a0,$s0
/* f07e3e0: 24050001 */ li $a1,0x1
/* f07e3e4: 11e00063 */ beqz $t7,.JF0f07e574
/* f07e3e8: 00000000 */ nop
/* f07e3ec: 1040002c */ beqz $v0,.JF0f07e4a0
/* f07e3f0: 3c02800a */ lui $v0,0x800a
/* f07e3f4: 2442a630 */ addiu $v0,$v0,-22992
/* f07e3f8: 8c590038 */ lw $t9,0x38($v0)
/* f07e3fc: 86180094 */ lh $t8,0x94($s0)
/* f07e400: 86090096 */ lh $t1,0x96($s0)
/* f07e404: 3c01bf80 */ lui $at,0xbf80
/* f07e408: 03194023 */ subu $t0,$t8,$t9
/* f07e40c: a6080094 */ sh $t0,0x94($s0)
/* f07e410: 8c4a0038 */ lw $t2,0x38($v0)
/* f07e414: 240d0032 */ li $t5,0x32
/* f07e418: 00002025 */ move $a0,$zero
/* f07e41c: 012a5823 */ subu $t3,$t1,$t2
/* f07e420: a60b0096 */ sh $t3,0x96($s0)
/* f07e424: 860c0096 */ lh $t4,0x96($s0)
/* f07e428: 24060064 */ li $a2,0x64
/* f07e42c: 2407ffff */ li $a3,-1
/* f07e430: 058102f9 */ bgez $t4,.JF0f07f018
/* f07e434: 240effff */ li $t6,-1
/* f07e438: a60d0096 */ sh $t5,0x96($s0)
/* f07e43c: 44810000 */ mtc1 $at,$f0
/* f07e440: 240f0400 */ li $t7,0x400
/* f07e444: 2418ffff */ li $t8,-1
/* f07e448: afb8002c */ sw $t8,0x2c($sp)
/* f07e44c: afaf0014 */ sw $t7,0x14($sp)
/* f07e450: afa00028 */ sw $zero,0x28($sp)
/* f07e454: afa00020 */ sw $zero,0x20($sp)
/* f07e458: afa0001c */ sw $zero,0x1c($sp)
/* f07e45c: afa00018 */ sw $zero,0x18($sp)
/* f07e460: afae0010 */ sw $t6,0x10($sp)
/* f07e464: 8fa50278 */ lw $a1,0x278($sp)
/* f07e468: e7a00024 */ swc1 $f0,0x24($sp)
/* f07e46c: e7a00030 */ swc1 $f0,0x30($sp)
/* f07e470: e7a00034 */ swc1 $f0,0x34($sp)
/* f07e474: 0fc251de */ jal propsnd0f0939f8
/* f07e478: e7a00038 */ swc1 $f0,0x38($sp)
/* f07e47c: 8fa50278 */ lw $a1,0x278($sp)
/* f07e480: 00003825 */ move $a3,$zero
/* f07e484: 84a40028 */ lh $a0,0x28($a1)
/* f07e488: afa00014 */ sw $zero,0x14($sp)
/* f07e48c: afa00010 */ sw $zero,0x10($sp)
/* f07e490: 0fc4bf7c */ jal sparksCreate
/* f07e494: 24a60008 */ addiu $a2,$a1,0x8
/* f07e498: 100002e0 */ b .JF0f07f01c
/* f07e49c: 8fbf004c */ lw $ra,0x4c($sp)
.JF0f07e4a0:
/* f07e4a0: 44805000 */ mtc1 $zero,$f10
/* f07e4a4: c604006c */ lwc1 $f4,0x6c($s0)
/* f07e4a8: 3c0140c0 */ lui $at,0x40c0
/* f07e4ac: 46045032 */ c.eq.s $f10,$f4
/* f07e4b0: 00000000 */ nop
/* f07e4b4: 450202d9 */ bc1fl .JF0f07f01c
/* f07e4b8: 8fbf004c */ lw $ra,0x4c($sp)
/* f07e4bc: c6060064 */ lwc1 $f6,0x64($s0)
/* f07e4c0: 44814000 */ mtc1 $at,$f8
/* f07e4c4: 3c013f80 */ lui $at,0x3f80
/* f07e4c8: 46083280 */ add.s $f10,$f6,$f8
/* f07e4cc: e60a0064 */ swc1 $f10,0x64($s0)
/* f07e4d0: 8fb90278 */ lw $t9,0x278($sp)
/* f07e4d4: c7240008 */ lwc1 $f4,0x8($t9)
/* f07e4d8: e7a401c0 */ swc1 $f4,0x1c0($sp)
/* f07e4dc: c6080064 */ lwc1 $f8,0x64($s0)
/* f07e4e0: c726000c */ lwc1 $f6,0xc($t9)
/* f07e4e4: 46083281 */ sub.s $f10,$f6,$f8
/* f07e4e8: e7aa01c4 */ swc1 $f10,0x1c4($sp)
/* f07e4ec: c7240010 */ lwc1 $f4,0x10($t9)
/* f07e4f0: e7a401c8 */ swc1 $f4,0x1c8($sp)
/* f07e4f4: c6020068 */ lwc1 $f2,0x68($s0)
/* f07e4f8: 4602503c */ c.lt.s $f10,$f2
/* f07e4fc: 00000000 */ nop
/* f07e500: 45020005 */ bc1fl .JF0f07e518
/* f07e504: 8fa80278 */ lw $t0,0x278($sp)
/* f07e508: 44813000 */ mtc1 $at,$f6
/* f07e50c: e7a201c4 */ swc1 $f2,0x1c4($sp)
/* f07e510: e606006c */ swc1 $f6,0x6c($s0)
/* f07e514: 8fa80278 */ lw $t0,0x278($sp)
.JF0f07e518:
/* f07e518: 27a601c0 */ addiu $a2,$sp,0x1c0
/* f07e51c: 27a701b0 */ addiu $a3,$sp,0x1b0
/* f07e520: 25050028 */ addiu $a1,$t0,0x28
/* f07e524: afa50054 */ sw $a1,0x54($sp)
/* f07e528: 0fc19be5 */ jal func0f065e74
/* f07e52c: 25040008 */ addiu $a0,$t0,0x8
/* f07e530: 8fa40278 */ lw $a0,0x278($sp)
/* f07e534: c7a801c0 */ lwc1 $f8,0x1c0($sp)
/* f07e538: e4880008 */ swc1 $f8,0x8($a0)
/* f07e53c: c7a401c4 */ lwc1 $f4,0x1c4($sp)
/* f07e540: e484000c */ swc1 $f4,0xc($a0)
/* f07e544: c7aa01c8 */ lwc1 $f10,0x1c8($sp)
/* f07e548: 0fc19b59 */ jal propDeregisterRooms
/* f07e54c: e48a0010 */ swc1 $f10,0x10($a0)
/* f07e550: 27a401b0 */ addiu $a0,$sp,0x1b0
/* f07e554: 0fc19a31 */ jal roomsCopy
/* f07e558: 8fa50054 */ lw $a1,0x54($sp)
/* f07e55c: 02002025 */ move $a0,$s0
/* f07e560: 00002825 */ move $a1,$zero
/* f07e564: 0fc1ab62 */ jal func0f069c70
/* f07e568: 24060001 */ li $a2,0x1
/* f07e56c: 100002ab */ b .JF0f07f01c
/* f07e570: 8fbf004c */ lw $ra,0x4c($sp)
.JF0f07e574:
/* f07e574: 0fc139d5 */ jal chraiExecute
/* f07e578: afa201f8 */ sw $v0,0x1f8($sp)
/* f07e57c: afa00274 */ sw $zero,0x274($sp)
/* f07e580: 8e020088 */ lw $v0,0x88($s0)
/* f07e584: 24050042 */ li $a1,0x42
/* f07e588: 5040009f */ beqzl $v0,.JF0f07e808
/* f07e58c: 8e090008 */ lw $t1,0x8($s0)
/* f07e590: 8e0a008c */ lw $t2,0x8c($s0)
/* f07e594: 8c490000 */ lw $t1,0x0($v0)
/* f07e598: 27a60220 */ addiu $a2,$sp,0x220
/* f07e59c: 000a5880 */ sll $t3,$t2,0x2
/* f07e5a0: 012b1821 */ addu $v1,$t1,$t3
/* f07e5a4: 0fc45798 */ jal padUnpack
/* f07e5a8: 8c640000 */ lw $a0,0x0($v1)
/* f07e5ac: 8fac01f8 */ lw $t4,0x1f8($sp)
/* f07e5b0: c7a60220 */ lwc1 $f6,0x220($sp)
/* f07e5b4: c7aa0224 */ lwc1 $f10,0x224($sp)
/* f07e5b8: 11800011 */ beqz $t4,.JF0f07e600
/* f07e5bc: e7a60214 */ swc1 $f6,0x214($sp)
/* f07e5c0: 8fad0268 */ lw $t5,0x268($sp)
/* f07e5c4: 240effff */ li $t6,-1
/* f07e5c8: a7ae0212 */ sh $t6,0x212($sp)
/* f07e5cc: 27a40220 */ addiu $a0,$sp,0x220
/* f07e5d0: 3c0540a0 */ lui $a1,0x40a0
/* f07e5d4: 27a60210 */ addiu $a2,$sp,0x210
/* f07e5d8: 00003825 */ move $a3,$zero
/* f07e5dc: afa00010 */ sw $zero,0x10($sp)
/* f07e5e0: 0c00a790 */ jal cdFindGroundYSimple
/* f07e5e4: a7ad0210 */ sh $t5,0x210($sp)
/* f07e5e8: 3c01420c */ lui $at,0x420c
/* f07e5ec: 44814000 */ mtc1 $at,$f8
/* f07e5f0: 00000000 */ nop
/* f07e5f4: 46080100 */ add.s $f4,$f0,$f8
/* f07e5f8: 10000002 */ b .JF0f07e604
/* f07e5fc: e7a40218 */ swc1 $f4,0x218($sp)
.JF0f07e600:
/* f07e600: e7aa0218 */ swc1 $f10,0x218($sp)
.JF0f07e604:
/* f07e604: c7a60228 */ lwc1 $f6,0x228($sp)
/* f07e608: 8fa40278 */ lw $a0,0x278($sp)
/* f07e60c: 27a60214 */ addiu $a2,$sp,0x214
/* f07e610: e7a6021c */ swc1 $f6,0x21c($sp)
/* f07e614: 8e0f0008 */ lw $t7,0x8($s0)
/* f07e618: 24840008 */ addiu $a0,$a0,0x8
/* f07e61c: 00802825 */ move $a1,$a0
/* f07e620: 000fc080 */ sll $t8,$t7,0x2
/* f07e624: 07030011 */ bgezl $t8,.JF0f07e66c
/* f07e628: 8fa20278 */ lw $v0,0x278($sp)
/* f07e62c: 0fc11645 */ jal posIsArrivingLaterallyAtPos
/* f07e630: 8fa701f4 */ lw $a3,0x1f4($sp)
/* f07e634: 5040000d */ beqzl $v0,.JF0f07e66c
/* f07e638: 8fa20278 */ lw $v0,0x278($sp)
/* f07e63c: 0fc1ce23 */ jal hovercarIncrementStep
/* f07e640: 02002025 */ move $a0,$s0
/* f07e644: 8e190088 */ lw $t9,0x88($s0)
/* f07e648: 8e0a008c */ lw $t2,0x8c($s0)
/* f07e64c: 24050002 */ li $a1,0x2
/* f07e650: 8f280000 */ lw $t0,0x0($t9)
/* f07e654: 000a4880 */ sll $t1,$t2,0x2
/* f07e658: 27a60220 */ addiu $a2,$sp,0x220
/* f07e65c: 01091821 */ addu $v1,$t0,$t1
/* f07e660: 0fc45798 */ jal padUnpack
/* f07e664: 8c640000 */ lw $a0,0x0($v1)
/* f07e668: 8fa20278 */ lw $v0,0x278($sp)
.JF0f07e66c:
/* f07e66c: c7a80214 */ lwc1 $f8,0x214($sp)
/* f07e670: c7aa021c */ lwc1 $f10,0x21c($sp)
/* f07e674: c4440008 */ lwc1 $f4,0x8($v0)
/* f07e678: c4460010 */ lwc1 $f6,0x10($v0)
/* f07e67c: 46044301 */ sub.s $f12,$f8,$f4
/* f07e680: 0fc25d3c */ jal atan2f
/* f07e684: 46065381 */ sub.s $f14,$f10,$f6
/* f07e688: 8fa20278 */ lw $v0,0x278($sp)
/* f07e68c: e7a00200 */ swc1 $f0,0x200($sp)
/* f07e690: c7a80214 */ lwc1 $f8,0x214($sp)
/* f07e694: c4440008 */ lwc1 $f4,0x8($v0)
/* f07e698: c7aa021c */ lwc1 $f10,0x21c($sp)
/* f07e69c: c4460010 */ lwc1 $f6,0x10($v0)
/* f07e6a0: 46044081 */ sub.s $f2,$f8,$f4
/* f07e6a4: 46065381 */ sub.s $f14,$f10,$f6
/* f07e6a8: 46021202 */ mul.s $f8,$f2,$f2
/* f07e6ac: 00000000 */ nop
/* f07e6b0: 460e7102 */ mul.s $f4,$f14,$f14
/* f07e6b4: 0c012838 */ jal sqrtf
/* f07e6b8: 46044300 */ add.s $f12,$f8,$f4
/* f07e6bc: 8fab0278 */ lw $t3,0x278($sp)
/* f07e6c0: c7aa0218 */ lwc1 $f10,0x218($sp)
/* f07e6c4: 46000386 */ mov.s $f14,$f0
/* f07e6c8: c566000c */ lwc1 $f6,0xc($t3)
/* f07e6cc: 0fc25d3c */ jal atan2f
/* f07e6d0: 46065301 */ sub.s $f12,$f10,$f6
/* f07e6d4: e7a001fc */ swc1 $f0,0x1fc($sp)
/* f07e6d8: 8e0c0008 */ lw $t4,0x8($s0)
/* f07e6dc: 3c01dfff */ lui $at,0xdfff
/* f07e6e0: c7a80200 */ lwc1 $f8,0x200($sp)
/* f07e6e4: 000c6880 */ sll $t5,$t4,0x2
/* f07e6e8: 05a1000c */ bgez $t5,.JF0f07e71c
/* f07e6ec: 3421ffff */ ori $at,$at,0xffff
/* f07e6f0: 8e0e0008 */ lw $t6,0x8($s0)
/* f07e6f4: e608007c */ swc1 $f8,0x7c($s0)
/* f07e6f8: e6000080 */ swc1 $f0,0x80($s0)
/* f07e6fc: 01c17824 */ and $t7,$t6,$at
/* f07e700: ae0f0008 */ sw $t7,0x8($s0)
/* f07e704: 8fb801f8 */ lw $t8,0x1f8($sp)
/* f07e708: 8fa30278 */ lw $v1,0x278($sp)
/* f07e70c: c7a40218 */ lwc1 $f4,0x218($sp)
/* f07e710: 53000003 */ beqzl $t8,.JF0f07e720
/* f07e714: 8fb901f8 */ lw $t9,0x1f8($sp)
/* f07e718: e464000c */ swc1 $f4,0xc($v1)
.JF0f07e71c:
/* f07e71c: 8fb901f8 */ lw $t9,0x1f8($sp)
.JF0f07e720:
/* f07e720: 8fa30278 */ lw $v1,0x278($sp)
/* f07e724: 27a60214 */ addiu $a2,$sp,0x214
/* f07e728: 13200034 */ beqz $t9,.JF0f07e7fc
/* f07e72c: 24640008 */ addiu $a0,$v1,0x8
/* f07e730: 44800000 */ mtc1 $zero,$f0
/* f07e734: 24650028 */ addiu $a1,$v1,0x28
/* f07e738: 24075000 */ li $a3,0x5000
/* f07e73c: afa00010 */ sw $zero,0x10($sp)
/* f07e740: e7a00014 */ swc1 $f0,0x14($sp)
/* f07e744: 0c00b4b4 */ jal cd0002d7c0
/* f07e748: e7a00018 */ swc1 $f0,0x18($sp)
/* f07e74c: 54400005 */ bnezl $v0,.JF0f07e764
/* f07e750: 8fa301f0 */ lw $v1,0x1f0($sp)
/* f07e754: 0c009270 */ jal cdGetObstacle
/* f07e758: 00000000 */ nop
/* f07e75c: afa201f0 */ sw $v0,0x1f0($sp)
/* f07e760: 8fa301f0 */ lw $v1,0x1f0($sp)
.JF0f07e764:
/* f07e764: 10600025 */ beqz $v1,.JF0f07e7fc
/* f07e768: 00000000 */ nop
/* f07e76c: 8c6a0004 */ lw $t2,0x4($v1)
/* f07e770: 8fa60278 */ lw $a2,0x278($sp)
/* f07e774: 3c017f1b */ lui $at,0x7f1b
/* f07e778: afaa01a0 */ sw $t2,0x1a0($sp)
/* f07e77c: c46a0008 */ lwc1 $f10,0x8($v1)
/* f07e780: c4c60008 */ lwc1 $f6,0x8($a2)
/* f07e784: c4680010 */ lwc1 $f8,0x10($v1)
/* f07e788: c4c40010 */ lwc1 $f4,0x10($a2)
/* f07e78c: 46065001 */ sub.s $f0,$f10,$f6
/* f07e790: 01402825 */ move $a1,$t2
/* f07e794: 00c02025 */ move $a0,$a2
/* f07e798: 46044081 */ sub.s $f2,$f8,$f4
/* f07e79c: 46000282 */ mul.s $f10,$f0,$f0
/* f07e7a0: c428b3e8 */ lwc1 $f8,-0x4c18($at)
/* f07e7a4: 46021182 */ mul.s $f6,$f2,$f2
/* f07e7a8: 46065300 */ add.s $f12,$f10,$f6
/* f07e7ac: 4608603c */ c.lt.s $f12,$f8
/* f07e7b0: 00000000 */ nop
/* f07e7b4: 45000007 */ bc1f .JF0f07e7d4
/* f07e7b8: 00000000 */ nop
/* f07e7bc: 0fc24391 */ jal doorsChooseSwingDirection
/* f07e7c0: e7ac0058 */ swc1 $f12,0x58($sp)
/* f07e7c4: 8fa401a0 */ lw $a0,0x1a0($sp)
/* f07e7c8: 0fc23c83 */ jal doorsRequestMode
/* f07e7cc: 24050001 */ li $a1,0x1
/* f07e7d0: c7ac0058 */ lwc1 $f12,0x58($sp)
.JF0f07e7d4:
/* f07e7d4: 3c017f1b */ lui $at,0x7f1b
/* f07e7d8: c424b3ec */ lwc1 $f4,-0x4c14($at)
/* f07e7dc: 4604603c */ c.lt.s $f12,$f4
/* f07e7e0: 00000000 */ nop
/* f07e7e4: 45000005 */ bc1f .JF0f07e7fc
/* f07e7e8: 00000000 */ nop
/* f07e7ec: 0fc23cba */ jal doorIsOpen
/* f07e7f0: 8fa401a0 */ lw $a0,0x1a0($sp)
/* f07e7f4: 2c480001 */ sltiu $t0,$v0,0x1
/* f07e7f8: afa80274 */ sw $t0,0x274($sp)
.JF0f07e7fc:
/* f07e7fc: 1000001a */ b .JF0f07e868
/* f07e800: 44807000 */ mtc1 $zero,$f14
/* f07e804: 8e090008 */ lw $t1,0x8($s0)
.JF0f07e808:
/* f07e808: 00095880 */ sll $t3,$t1,0x2
/* f07e80c: 05630016 */ bgezl $t3,.JF0f07e868
/* f07e810: 44807000 */ mtc1 $zero,$f14
/* f07e814: c60c0034 */ lwc1 $f12,0x34($s0)
/* f07e818: 0fc25d3c */ jal atan2f
/* f07e81c: c60e003c */ lwc1 $f14,0x3c($s0)
/* f07e820: c6020034 */ lwc1 $f2,0x34($s0)
/* f07e824: c60e003c */ lwc1 $f14,0x3c($s0)
/* f07e828: e600007c */ swc1 $f0,0x7c($s0)
/* f07e82c: 46021282 */ mul.s $f10,$f2,$f2
/* f07e830: 00000000 */ nop
/* f07e834: 460e7182 */ mul.s $f6,$f14,$f14
/* f07e838: 0c012838 */ jal sqrtf
/* f07e83c: 46065300 */ add.s $f12,$f10,$f6
/* f07e840: c60c0038 */ lwc1 $f12,0x38($s0)
/* f07e844: 0fc25d3c */ jal atan2f
/* f07e848: 46000386 */ mov.s $f14,$f0
/* f07e84c: 8e0c0008 */ lw $t4,0x8($s0)
/* f07e850: 3c01dfff */ lui $at,0xdfff
/* f07e854: 3421ffff */ ori $at,$at,0xffff
/* f07e858: 01816824 */ and $t5,$t4,$at
/* f07e85c: e6000080 */ swc1 $f0,0x80($s0)
/* f07e860: ae0d0008 */ sw $t5,0x8($s0)
/* f07e864: 44807000 */ mtc1 $zero,$f14
.JF0f07e868:
/* f07e868: c60c006c */ lwc1 $f12,0x6c($s0)
/* f07e86c: 3c02800a */ lui $v0,0x800a
/* f07e870: 8fa30278 */ lw $v1,0x278($sp)
/* f07e874: 460c703e */ c.le.s $f14,$f12
/* f07e878: 2442a630 */ addiu $v0,$v0,-22992
/* f07e87c: 45020015 */ bc1fl .JF0f07e8d4
/* f07e880: 8fae01f8 */ lw $t6,0x1f8($sp)
/* f07e884: c442004c */ lwc1 $f2,0x4c($v0)
/* f07e888: 4602603e */ c.le.s $f12,$f2
/* f07e88c: 00000000 */ nop
/* f07e890: 45020006 */ bc1fl .JF0f07e8ac
/* f07e894: c6000064 */ lwc1 $f0,0x64($s0)
/* f07e898: c6080068 */ lwc1 $f8,0x68($s0)
/* f07e89c: c60c006c */ lwc1 $f12,0x6c($s0)
/* f07e8a0: 10000008 */ b .JF0f07e8c4
/* f07e8a4: e6080064 */ swc1 $f8,0x64($s0)
/* f07e8a8: c6000064 */ lwc1 $f0,0x64($s0)
.JF0f07e8ac:
/* f07e8ac: c6040068 */ lwc1 $f4,0x68($s0)
/* f07e8b0: 46002281 */ sub.s $f10,$f4,$f0
/* f07e8b4: 46025182 */ mul.s $f6,$f10,$f2
/* f07e8b8: 460c3203 */ div.s $f8,$f6,$f12
/* f07e8bc: 46080100 */ add.s $f4,$f0,$f8
/* f07e8c0: e6040064 */ swc1 $f4,0x64($s0)
.JF0f07e8c4:
/* f07e8c4: c44a004c */ lwc1 $f10,0x4c($v0)
/* f07e8c8: 460a6181 */ sub.s $f6,$f12,$f10
/* f07e8cc: e606006c */ swc1 $f6,0x6c($s0)
/* f07e8d0: 8fae01f8 */ lw $t6,0x1f8($sp)
.JF0f07e8d4:
/* f07e8d4: 3c02800a */ lui $v0,0x800a
/* f07e8d8: 2442a630 */ addiu $v0,$v0,-22992
/* f07e8dc: 51c00037 */ beqzl $t6,.JF0f07e9bc
/* f07e8e0: c6040064 */ lwc1 $f4,0x64($s0)
/* f07e8e4: c6080070 */ lwc1 $f8,0x70($s0)
/* f07e8e8: 3c017f1b */ lui $at,0x7f1b
/* f07e8ec: 4608703c */ c.lt.s $f14,$f8
/* f07e8f0: 00000000 */ nop
/* f07e8f4: 45020013 */ bc1fl .JF0f07e944
/* f07e8f8: c6000064 */ lwc1 $f0,0x64($s0)
/* f07e8fc: c6040068 */ lwc1 $f4,0x68($s0)
/* f07e900: c42ab3f0 */ lwc1 $f10,-0x4c10($at)
/* f07e904: c448004c */ lwc1 $f8,0x4c($v0)
/* f07e908: 3c017f1b */ lui $at,0x7f1b
/* f07e90c: 460a2182 */ mul.s $f6,$f4,$f10
/* f07e910: c60a0064 */ lwc1 $f10,0x64($s0)
/* f07e914: 46083102 */ mul.s $f4,$f6,$f8
/* f07e918: 46045181 */ sub.s $f6,$f10,$f4
/* f07e91c: e6060064 */ swc1 $f6,0x64($s0)
/* f07e920: c6080064 */ lwc1 $f8,0x64($s0)
/* f07e924: 460e403c */ c.lt.s $f8,$f14
/* f07e928: 00000000 */ nop
/* f07e92c: 45020013 */ bc1fl .JF0f07e97c
/* f07e930: 8faf0274 */ lw $t7,0x274($sp)
/* f07e934: c42ab3f4 */ lwc1 $f10,-0x4c0c($at)
/* f07e938: 1000000f */ b .JF0f07e978
/* f07e93c: e60a0064 */ swc1 $f10,0x64($s0)
/* f07e940: c6000064 */ lwc1 $f0,0x64($s0)
.JF0f07e944:
/* f07e944: c6020068 */ lwc1 $f2,0x68($s0)
/* f07e948: 3c017f1b */ lui $at,0x7f1b
/* f07e94c: 4602003c */ c.lt.s $f0,$f2
/* f07e950: 00000000 */ nop
/* f07e954: 45020009 */ bc1fl .JF0f07e97c
/* f07e958: 8faf0274 */ lw $t7,0x274($sp)
/* f07e95c: c424b3f8 */ lwc1 $f4,-0x4c08($at)
/* f07e960: c448004c */ lwc1 $f8,0x4c($v0)
/* f07e964: 46041182 */ mul.s $f6,$f2,$f4
/* f07e968: 00000000 */ nop
/* f07e96c: 46083282 */ mul.s $f10,$f6,$f8
/* f07e970: 460a0100 */ add.s $f4,$f0,$f10
/* f07e974: e6040064 */ swc1 $f4,0x64($s0)
.JF0f07e978:
/* f07e978: 8faf0274 */ lw $t7,0x274($sp)
.JF0f07e97c:
/* f07e97c: 3c017f1b */ lui $at,0x7f1b
/* f07e980: 51e0000e */ beqzl $t7,.JF0f07e9bc
/* f07e984: c6040064 */ lwc1 $f4,0x64($s0)
/* f07e988: c426b3fc */ lwc1 $f6,-0x4c04($at)
/* f07e98c: c448004c */ lwc1 $f8,0x4c($v0)
/* f07e990: c6040064 */ lwc1 $f4,0x64($s0)
/* f07e994: 46083282 */ mul.s $f10,$f6,$f8
/* f07e998: 460a2181 */ sub.s $f6,$f4,$f10
/* f07e99c: e6060064 */ swc1 $f6,0x64($s0)
/* f07e9a0: c6080064 */ lwc1 $f8,0x64($s0)
/* f07e9a4: 460e403c */ c.lt.s $f8,$f14
/* f07e9a8: 00000000 */ nop
/* f07e9ac: 45020003 */ bc1fl .JF0f07e9bc
/* f07e9b0: c6040064 */ lwc1 $f4,0x64($s0)
/* f07e9b4: e60e0064 */ swc1 $f14,0x64($s0)
/* f07e9b8: c6040064 */ lwc1 $f4,0x64($s0)
.JF0f07e9bc:
/* f07e9bc: 4604703c */ c.lt.s $f14,$f4
/* f07e9c0: 00000000 */ nop
/* f07e9c4: 45020195 */ bc1fl .JF0f07f01c
/* f07e9c8: 8fbf004c */ lw $ra,0x4c($sp)
/* f07e9cc: c60a007c */ lwc1 $f10,0x7c($s0)
/* f07e9d0: 24780008 */ addiu $t8,$v1,0x8
/* f07e9d4: 24790028 */ addiu $t9,$v1,0x28
/* f07e9d8: e7aa0190 */ swc1 $f10,0x190($sp)
/* f07e9dc: c6060080 */ lwc1 $f6,0x80($s0)
/* f07e9e0: e7a6018c */ swc1 $f6,0x18c($sp)
/* f07e9e4: c6080084 */ lwc1 $f8,0x84($s0)
/* f07e9e8: e7a80188 */ swc1 $f8,0x188($sp)
/* f07e9ec: c6040070 */ lwc1 $f4,0x70($s0)
/* f07e9f0: e7a40184 */ swc1 $f4,0x184($sp)
/* f07e9f4: c60a0074 */ lwc1 $f10,0x74($s0)
/* f07e9f8: e7aa0180 */ swc1 $f10,0x180($sp)
/* f07e9fc: c60c007c */ lwc1 $f12,0x7c($s0)
/* f07ea00: afb90054 */ sw $t9,0x54($sp)
/* f07ea04: 0c0068df */ jal sinf
/* f07ea08: afb80058 */ sw $t8,0x58($sp)
/* f07ea0c: c60c0080 */ lwc1 $f12,0x80($s0)
/* f07ea10: 0c0068dc */ jal cosf
/* f07ea14: e7a00068 */ swc1 $f0,0x68($sp)
/* f07ea18: c7a20068 */ lwc1 $f2,0x68($sp)
/* f07ea1c: 46020182 */ mul.s $f6,$f0,$f2
/* f07ea20: e7a60194 */ swc1 $f6,0x194($sp)
/* f07ea24: 0c0068df */ jal sinf
/* f07ea28: c60c0080 */ lwc1 $f12,0x80($s0)
/* f07ea2c: e7a00198 */ swc1 $f0,0x198($sp)
/* f07ea30: 0c0068dc */ jal cosf
/* f07ea34: c60c007c */ lwc1 $f12,0x7c($s0)
/* f07ea38: c60c0080 */ lwc1 $f12,0x80($s0)
/* f07ea3c: 0c0068dc */ jal cosf
/* f07ea40: e7a00068 */ swc1 $f0,0x68($sp)
/* f07ea44: c7a20068 */ lwc1 $f2,0x68($sp)
/* f07ea48: 8fa40058 */ lw $a0,0x58($sp)
/* f07ea4c: 27a50194 */ addiu $a1,$sp,0x194
/* f07ea50: 46020202 */ mul.s $f8,$f0,$f2
/* f07ea54: 27a60214 */ addiu $a2,$sp,0x214
/* f07ea58: 8fa701f4 */ lw $a3,0x1f4($sp)
/* f07ea5c: 0fc115fe */ jal posIsMovingTowardsPosOrStoppedInRange
/* f07ea60: e7a8019c */ swc1 $f8,0x19c($sp)
/* f07ea64: 50400006 */ beqzl $v0,.JF0f07ea80
/* f07ea68: 8fa201f8 */ lw $v0,0x1f8($sp)
/* f07ea6c: c604007c */ lwc1 $f4,0x7c($s0)
/* f07ea70: e7a40200 */ swc1 $f4,0x200($sp)
/* f07ea74: c60a0080 */ lwc1 $f10,0x80($s0)
/* f07ea78: e7aa01fc */ swc1 $f10,0x1fc($sp)
/* f07ea7c: 8fa201f8 */ lw $v0,0x1f8($sp)
.JF0f07ea80:
/* f07ea80: 10400004 */ beqz $v0,.JF0f07ea94
/* f07ea84: 3c014170 */ lui $at,0x4170
/* f07ea88: 44818000 */ mtc1 $at,$f16
/* f07ea8c: 10000006 */ b .JF0f07eaa8
/* f07ea90: 46008386 */ mov.s $f14,$f16
.JF0f07ea94:
/* f07ea94: 3c0140a0 */ lui $at,0x40a0
/* f07ea98: 44817000 */ mtc1 $at,$f14
/* f07ea9c: 3c014170 */ lui $at,0x4170
/* f07eaa0: 44818000 */ mtc1 $at,$f16
/* f07eaa4: 00000000 */ nop
.JF0f07eaa8:
/* f07eaa8: 50400004 */ beqzl $v0,.JF0f07eabc
/* f07eaac: 3c0140a0 */ lui $at,0x40a0
/* f07eab0: 10000004 */ b .JF0f07eac4
/* f07eab4: 46008306 */ mov.s $f12,$f16
/* f07eab8: 3c0140a0 */ lui $at,0x40a0
.JF0f07eabc:
/* f07eabc: 44816000 */ mtc1 $at,$f12
/* f07eac0: 00000000 */ nop
.JF0f07eac4:
/* f07eac4: 50400004 */ beqzl $v0,.JF0f07ead8
/* f07eac8: 3c0140a0 */ lui $at,0x40a0
/* f07eacc: 10000004 */ b .JF0f07eae0
/* f07ead0: 46008086 */ mov.s $f2,$f16
/* f07ead4: 3c0140a0 */ lui $at,0x40a0
.JF0f07ead8:
/* f07ead8: 44811000 */ mtc1 $at,$f2
/* f07eadc: 00000000 */ nop
.JF0f07eae0:
/* f07eae0: 3c017f1b */ lui $at,0x7f1b
/* f07eae4: c432b400 */ lwc1 $f18,-0x4c00($at)
/* f07eae8: 3c017f1b */ lui $at,0x7f1b
/* f07eaec: c424b404 */ lwc1 $f4,-0x4bfc($at)
/* f07eaf0: 46127182 */ mul.s $f6,$f14,$f18
/* f07eaf4: 27a40190 */ addiu $a0,$sp,0x190
/* f07eaf8: 8fa50200 */ lw $a1,0x200($sp)
/* f07eafc: 46126002 */ mul.s $f0,$f12,$f18
/* f07eb00: 27a60184 */ addiu $a2,$sp,0x184
/* f07eb04: 46041282 */ mul.s $f10,$f2,$f4
/* f07eb08: 44073000 */ mfc1 $a3,$f6
/* f07eb0c: 46000200 */ add.s $f8,$f0,$f0
/* f07eb10: e7aa0014 */ swc1 $f10,0x14($sp)
/* f07eb14: 0fc1bb06 */ jal applyRotation
/* f07eb18: e7a80010 */ swc1 $f8,0x10($sp)
/* f07eb1c: c7a60190 */ lwc1 $f6,0x190($sp)
/* f07eb20: c7a80200 */ lwc1 $f8,0x200($sp)
/* f07eb24: 3c014170 */ lui $at,0x4170
/* f07eb28: 44818000 */ mtc1 $at,$f16
/* f07eb2c: 46083032 */ c.eq.s $f6,$f8
/* f07eb30: 3c017f1b */ lui $at,0x7f1b
/* f07eb34: c432b408 */ lwc1 $f18,-0x4bf8($at)
/* f07eb38: 45020021 */ bc1fl .JF0f07ebc0
/* f07eb3c: 8fa201f8 */ lw $v0,0x1f8($sp)
/* f07eb40: 8fa201f8 */ lw $v0,0x1f8($sp)
/* f07eb44: 3c0140a0 */ lui $at,0x40a0
/* f07eb48: 50400004 */ beqzl $v0,.JF0f07eb5c
/* f07eb4c: 44811000 */ mtc1 $at,$f2
/* f07eb50: 10000003 */ b .JF0f07eb60
/* f07eb54: 46008086 */ mov.s $f2,$f16
/* f07eb58: 44811000 */ mtc1 $at,$f2
.JF0f07eb5c:
/* f07eb5c: 00000000 */ nop
.JF0f07eb60:
/* f07eb60: 46121002 */ mul.s $f0,$f2,$f18
/* f07eb64: c7ae0184 */ lwc1 $f14,0x184($sp)
/* f07eb68: 46000100 */ add.s $f4,$f0,$f0
/* f07eb6c: 4604703e */ c.le.s $f14,$f4
/* f07eb70: 00000000 */ nop
/* f07eb74: 45020012 */ bc1fl .JF0f07ebc0
/* f07eb78: 8fa201f8 */ lw $v0,0x1f8($sp)
/* f07eb7c: 10400003 */ beqz $v0,.JF0f07eb8c
/* f07eb80: 3c0140a0 */ lui $at,0x40a0
/* f07eb84: 10000003 */ b .JF0f07eb94
/* f07eb88: 46008306 */ mov.s $f12,$f16
.JF0f07eb8c:
/* f07eb8c: 44816000 */ mtc1 $at,$f12
/* f07eb90: 00000000 */ nop
.JF0f07eb94:
/* f07eb94: 46126002 */ mul.s $f0,$f12,$f18
/* f07eb98: 46000007 */ neg.s $f0,$f0
/* f07eb9c: 46000280 */ add.s $f10,$f0,$f0
/* f07eba0: 460e503e */ c.le.s $f10,$f14
/* f07eba4: 00000000 */ nop
/* f07eba8: 45020005 */ bc1fl .JF0f07ebc0
/* f07ebac: 8fa201f8 */ lw $v0,0x1f8($sp)
/* f07ebb0: 44807000 */ mtc1 $zero,$f14
/* f07ebb4: 00000000 */ nop
/* f07ebb8: e7ae0184 */ swc1 $f14,0x184($sp)
/* f07ebbc: 8fa201f8 */ lw $v0,0x1f8($sp)
.JF0f07ebc0:
/* f07ebc0: 50400004 */ beqzl $v0,.JF0f07ebd4
/* f07ebc4: 3c0140a0 */ lui $at,0x40a0
/* f07ebc8: 10000004 */ b .JF0f07ebdc
/* f07ebcc: 46008386 */ mov.s $f14,$f16
/* f07ebd0: 3c0140a0 */ lui $at,0x40a0
.JF0f07ebd4:
/* f07ebd4: 44817000 */ mtc1 $at,$f14
/* f07ebd8: 00000000 */ nop
.JF0f07ebdc:
/* f07ebdc: 46127182 */ mul.s $f6,$f14,$f18
/* f07ebe0: 50400004 */ beqzl $v0,.JF0f07ebf4
/* f07ebe4: 3c0140a0 */ lui $at,0x40a0
/* f07ebe8: 10000004 */ b .JF0f07ebfc
/* f07ebec: 46008306 */ mov.s $f12,$f16
/* f07ebf0: 3c0140a0 */ lui $at,0x40a0
.JF0f07ebf4:
/* f07ebf4: 44816000 */ mtc1 $at,$f12
/* f07ebf8: 00000000 */ nop
.JF0f07ebfc:
/* f07ebfc: 46126002 */ mul.s $f0,$f12,$f18
/* f07ec00: 50400004 */ beqzl $v0,.JF0f07ec14
/* f07ec04: 3c0140a0 */ lui $at,0x40a0
/* f07ec08: 10000004 */ b .JF0f07ec1c
/* f07ec0c: 46008086 */ mov.s $f2,$f16
/* f07ec10: 3c0140a0 */ lui $at,0x40a0
.JF0f07ec14:
/* f07ec14: 44811000 */ mtc1 $at,$f2
/* f07ec18: 00000000 */ nop
.JF0f07ec1c:
/* f07ec1c: 3c017f1b */ lui $at,0x7f1b
/* f07ec20: c424b40c */ lwc1 $f4,-0x4bf4($at)
/* f07ec24: 46000200 */ add.s $f8,$f0,$f0
/* f07ec28: 44073000 */ mfc1 $a3,$f6
/* f07ec2c: 46041282 */ mul.s $f10,$f2,$f4
/* f07ec30: 27a4018c */ addiu $a0,$sp,0x18c
/* f07ec34: e7a80010 */ swc1 $f8,0x10($sp)
/* f07ec38: 8fa501fc */ lw $a1,0x1fc($sp)
/* f07ec3c: 27a60180 */ addiu $a2,$sp,0x180
/* f07ec40: 0fc1bb06 */ jal applyRotation
/* f07ec44: e7aa0014 */ swc1 $f10,0x14($sp)
/* f07ec48: c7a6018c */ lwc1 $f6,0x18c($sp)
/* f07ec4c: c7a801fc */ lwc1 $f8,0x1fc($sp)
/* f07ec50: 3c014170 */ lui $at,0x4170
/* f07ec54: 44818000 */ mtc1 $at,$f16
/* f07ec58: 46083032 */ c.eq.s $f6,$f8
/* f07ec5c: 3c017f1b */ lui $at,0x7f1b
/* f07ec60: c432b410 */ lwc1 $f18,-0x4bf0($at)
/* f07ec64: 45020022 */ bc1fl .JF0f07ecf0
/* f07ec68: 8e090008 */ lw $t1,0x8($s0)
/* f07ec6c: 8faa01f8 */ lw $t2,0x1f8($sp)
/* f07ec70: 3c0140a0 */ lui $at,0x40a0
/* f07ec74: 8fa801f8 */ lw $t0,0x1f8($sp)
/* f07ec78: 51400004 */ beqzl $t2,.JF0f07ec8c
/* f07ec7c: 44811000 */ mtc1 $at,$f2
/* f07ec80: 10000003 */ b .JF0f07ec90
/* f07ec84: 46008086 */ mov.s $f2,$f16
/* f07ec88: 44811000 */ mtc1 $at,$f2
.JF0f07ec8c:
/* f07ec8c: 00000000 */ nop
.JF0f07ec90:
/* f07ec90: 46121002 */ mul.s $f0,$f2,$f18
/* f07ec94: c7ae0180 */ lwc1 $f14,0x180($sp)
/* f07ec98: 46000100 */ add.s $f4,$f0,$f0
/* f07ec9c: 4604703e */ c.le.s $f14,$f4
/* f07eca0: 00000000 */ nop
/* f07eca4: 45020012 */ bc1fl .JF0f07ecf0
/* f07eca8: 8e090008 */ lw $t1,0x8($s0)
/* f07ecac: 11000003 */ beqz $t0,.JF0f07ecbc
/* f07ecb0: 3c0140a0 */ lui $at,0x40a0
/* f07ecb4: 10000003 */ b .JF0f07ecc4
/* f07ecb8: 46008306 */ mov.s $f12,$f16
.JF0f07ecbc:
/* f07ecbc: 44816000 */ mtc1 $at,$f12
/* f07ecc0: 00000000 */ nop
.JF0f07ecc4:
/* f07ecc4: 46126002 */ mul.s $f0,$f12,$f18
/* f07ecc8: 46000007 */ neg.s $f0,$f0
/* f07eccc: 46000280 */ add.s $f10,$f0,$f0
/* f07ecd0: 460e503e */ c.le.s $f10,$f14
/* f07ecd4: 00000000 */ nop
/* f07ecd8: 45020005 */ bc1fl .JF0f07ecf0
/* f07ecdc: 8e090008 */ lw $t1,0x8($s0)
/* f07ece0: 44807000 */ mtc1 $zero,$f14
/* f07ece4: 00000000 */ nop
/* f07ece8: e7ae0180 */ swc1 $f14,0x180($sp)
/* f07ecec: 8e090008 */ lw $t1,0x8($s0)
.JF0f07ecf0:
/* f07ecf0: 44800000 */ mtc1 $zero,$f0
/* f07ecf4: 00095800 */ sll $t3,$t1,0x0
/* f07ecf8: 05630004 */ bgezl $t3,.JF0f07ed0c
/* f07ecfc: c7ae0184 */ lwc1 $f14,0x184($sp)
/* f07ed00: 1000000d */ b .JF0f07ed38
/* f07ed04: e7a00188 */ swc1 $f0,0x188($sp)
/* f07ed08: c7ae0184 */ lwc1 $f14,0x184($sp)
.JF0f07ed0c:
/* f07ed0c: 3c0142f0 */ lui $at,0x42f0
/* f07ed10: 44814000 */ mtc1 $at,$f8
/* f07ed14: 46007187 */ neg.s $f6,$f14
/* f07ed18: c7aa0188 */ lwc1 $f10,0x188($sp)
/* f07ed1c: 46083102 */ mul.s $f4,$f6,$f8
/* f07ed20: 3c017f1b */ lui $at,0x7f1b
/* f07ed24: c428b414 */ lwc1 $f8,-0x4bec($at)
/* f07ed28: 460a2181 */ sub.s $f6,$f4,$f10
/* f07ed2c: 46083102 */ mul.s $f4,$f6,$f8
/* f07ed30: 46045180 */ add.s $f6,$f10,$f4
/* f07ed34: e7a60188 */ swc1 $f6,0x188($sp)
.JF0f07ed38:
/* f07ed38: 8fac01f8 */ lw $t4,0x1f8($sp)
/* f07ed3c: 11800006 */ beqz $t4,.JF0f07ed58
/* f07ed40: 3c017f1b */ lui $at,0x7f1b
/* f07ed44: c428b418 */ lwc1 $f8,-0x4be8($at)
/* f07ed48: c7aa018c */ lwc1 $f10,0x18c($sp)
/* f07ed4c: 460a4101 */ sub.s $f4,$f8,$f10
/* f07ed50: 10000002 */ b .JF0f07ed5c
/* f07ed54: e7a4012c */ swc1 $f4,0x12c($sp)
.JF0f07ed58:
/* f07ed58: e7a0012c */ swc1 $f0,0x12c($sp)
.JF0f07ed5c:
/* f07ed5c: c7a80188 */ lwc1 $f8,0x188($sp)
/* f07ed60: c7a60190 */ lwc1 $f6,0x190($sp)
/* f07ed64: e7a00134 */ swc1 $f0,0x134($sp)
/* f07ed68: 4608003e */ c.le.s $f0,$f8
/* f07ed6c: e7a60130 */ swc1 $f6,0x130($sp)
/* f07ed70: 45000006 */ bc1f .JF0f07ed8c
/* f07ed74: 00000000 */ nop
/* f07ed78: 46004306 */ mov.s $f12,$f8
/* f07ed7c: 0c0058e8 */ jal mtx4LoadZRotation
/* f07ed80: 27a5006c */ addiu $a1,$sp,0x6c
/* f07ed84: 10000008 */ b .JF0f07eda8
/* f07ed88: 27a4012c */ addiu $a0,$sp,0x12c
.JF0f07ed8c:
/* f07ed8c: 3c017f1b */ lui $at,0x7f1b
/* f07ed90: c424b41c */ lwc1 $f4,-0x4be4($at)
/* f07ed94: c7aa0188 */ lwc1 $f10,0x188($sp)
/* f07ed98: 27a5006c */ addiu $a1,$sp,0x6c
/* f07ed9c: 0c0058e8 */ jal mtx4LoadZRotation
/* f07eda0: 46045300 */ add.s $f12,$f10,$f4
/* f07eda4: 27a4012c */ addiu $a0,$sp,0x12c
.JF0f07eda8:
/* f07eda8: 0c00590b */ jal mtx4LoadRotation
/* f07edac: 27a500ac */ addiu $a1,$sp,0xac
/* f07edb0: 8e0d0018 */ lw $t5,0x18($s0)
/* f07edb4: 27a500ac */ addiu $a1,$sp,0xac
/* f07edb8: 0c0057a9 */ jal mtx00015f04
/* f07edbc: c5ac0014 */ lwc1 $f12,0x14($t5)
/* f07edc0: 27a400ac */ addiu $a0,$sp,0xac
/* f07edc4: 27a5006c */ addiu $a1,$sp,0x6c
/* f07edc8: 0c005668 */ jal mtx4MultMtx4
/* f07edcc: 27a600ec */ addiu $a2,$sp,0xec
/* f07edd0: 27a400ec */ addiu $a0,$sp,0xec
/* f07edd4: 0c005750 */ jal mtx4ToMtx3
/* f07edd8: 27a5015c */ addiu $a1,$sp,0x15c
/* f07eddc: 27a4015c */ addiu $a0,$sp,0x15c
/* f07ede0: 0c00571e */ jal mtx3Copy
/* f07ede4: 2605001c */ addiu $a1,$s0,0x1c
/* f07ede8: 0c0068dc */ jal cosf
/* f07edec: c7ac018c */ lwc1 $f12,0x18c($sp)
/* f07edf0: e7a00138 */ swc1 $f0,0x138($sp)
/* f07edf4: 0c0068df */ jal sinf
/* f07edf8: c7ac0190 */ lwc1 $f12,0x190($sp)
/* f07edfc: c7a60138 */ lwc1 $f6,0x138($sp)
/* f07ee00: 8fae01f8 */ lw $t6,0x1f8($sp)
/* f07ee04: 46060202 */ mul.s $f8,$f0,$f6
/* f07ee08: 11c00005 */ beqz $t6,.JF0f07ee20
/* f07ee0c: e7a80194 */ swc1 $f8,0x194($sp)
/* f07ee10: 0c0068df */ jal sinf
/* f07ee14: c7ac01fc */ lwc1 $f12,0x1fc($sp)
/* f07ee18: 10000004 */ b .JF0f07ee2c
/* f07ee1c: e7a00198 */ swc1 $f0,0x198($sp)
.JF0f07ee20:
/* f07ee20: 0c0068df */ jal sinf
/* f07ee24: c7ac018c */ lwc1 $f12,0x18c($sp)
/* f07ee28: e7a00198 */ swc1 $f0,0x198($sp)
.JF0f07ee2c:
/* f07ee2c: 0c0068dc */ jal cosf
/* f07ee30: c7ac0190 */ lwc1 $f12,0x190($sp)
/* f07ee34: c7aa0138 */ lwc1 $f10,0x138($sp)
/* f07ee38: 3c01800a */ lui $at,0x800a
/* f07ee3c: c422a67c */ lwc1 $f2,-0x5984($at)
/* f07ee40: 460a0102 */ mul.s $f4,$f0,$f10
/* f07ee44: c7a60194 */ lwc1 $f6,0x194($sp)
/* f07ee48: 8faf0278 */ lw $t7,0x278($sp)
/* f07ee4c: 8fa40058 */ lw $a0,0x58($sp)
/* f07ee50: 8fa50054 */ lw $a1,0x54($sp)
/* f07ee54: 27a60150 */ addiu $a2,$sp,0x150
/* f07ee58: 27a70140 */ addiu $a3,$sp,0x140
/* f07ee5c: e7a4019c */ swc1 $f4,0x19c($sp)
/* f07ee60: c6080064 */ lwc1 $f8,0x64($s0)
/* f07ee64: 46024282 */ mul.s $f10,$f8,$f2
/* f07ee68: c5e80008 */ lwc1 $f8,0x8($t7)
/* f07ee6c: 460a3102 */ mul.s $f4,$f6,$f10
/* f07ee70: c7aa0198 */ lwc1 $f10,0x198($sp)
/* f07ee74: 46082180 */ add.s $f6,$f4,$f8
/* f07ee78: e7a60150 */ swc1 $f6,0x150($sp)
/* f07ee7c: c6040064 */ lwc1 $f4,0x64($s0)
/* f07ee80: 46022202 */ mul.s $f8,$f4,$f2
/* f07ee84: c5e4000c */ lwc1 $f4,0xc($t7)
/* f07ee88: 46085182 */ mul.s $f6,$f10,$f8
/* f07ee8c: c7a8019c */ lwc1 $f8,0x19c($sp)
/* f07ee90: 46043280 */ add.s $f10,$f6,$f4
/* f07ee94: e7aa0154 */ swc1 $f10,0x154($sp)
/* f07ee98: c6060064 */ lwc1 $f6,0x64($s0)
/* f07ee9c: 46023102 */ mul.s $f4,$f6,$f2
/* f07eea0: c5e60010 */ lwc1 $f6,0x10($t7)
/* f07eea4: 46044282 */ mul.s $f10,$f8,$f4
/* f07eea8: 46065200 */ add.s $f8,$f10,$f6
/* f07eeac: 0fc19be5 */ jal func0f065e74
/* f07eeb0: e7a80158 */ swc1 $f8,0x158($sp)
/* f07eeb4: 8fb801f8 */ lw $t8,0x1f8($sp)
/* f07eeb8: 27a40150 */ addiu $a0,$sp,0x150
/* f07eebc: 3c0540a0 */ lui $a1,0x40a0
/* f07eec0: 13000017 */ beqz $t8,.JF0f07ef20
/* f07eec4: 27a60140 */ addiu $a2,$sp,0x140
/* f07eec8: 00003825 */ move $a3,$zero
/* f07eecc: 0c00a790 */ jal cdFindGroundYSimple
/* f07eed0: afa00010 */ sw $zero,0x10($sp)
/* f07eed4: 3c01420c */ lui $at,0x420c
/* f07eed8: 44812000 */ mtc1 $at,$f4
/* f07eedc: 3c017f1b */ lui $at,0x7f1b
/* f07eee0: c42ab420 */ lwc1 $f10,-0x4be0($at)
/* f07eee4: 46040080 */ add.s $f2,$f0,$f4
/* f07eee8: 3c01800a */ lui $at,0x800a
/* f07eeec: 460a103c */ c.lt.s $f2,$f10
/* f07eef0: e7a20154 */ swc1 $f2,0x154($sp)
/* f07eef4: 4502000b */ bc1fl .JF0f07ef24
/* f07eef8: c7a40150 */ lwc1 $f4,0x150($sp)
/* f07eefc: c6060064 */ lwc1 $f6,0x64($s0)
/* f07ef00: c428a67c */ lwc1 $f8,-0x5984($at)
/* f07ef04: c7aa0198 */ lwc1 $f10,0x198($sp)
/* f07ef08: 8fb90278 */ lw $t9,0x278($sp)
/* f07ef0c: 46083102 */ mul.s $f4,$f6,$f8
/* f07ef10: c728000c */ lwc1 $f8,0xc($t9)
/* f07ef14: 46045182 */ mul.s $f6,$f10,$f4
/* f07ef18: 46083280 */ add.s $f10,$f6,$f8
/* f07ef1c: e7aa0154 */ swc1 $f10,0x154($sp)
.JF0f07ef20:
/* f07ef20: c7a40150 */ lwc1 $f4,0x150($sp)
.JF0f07ef24:
/* f07ef24: 8fa40278 */ lw $a0,0x278($sp)
/* f07ef28: e4840008 */ swc1 $f4,0x8($a0)
/* f07ef2c: c7a60154 */ lwc1 $f6,0x154($sp)
/* f07ef30: e486000c */ swc1 $f6,0xc($a0)
/* f07ef34: c7a80158 */ lwc1 $f8,0x158($sp)
/* f07ef38: 0fc19b59 */ jal propDeregisterRooms
/* f07ef3c: e4880010 */ swc1 $f8,0x10($a0)
/* f07ef40: 27a40140 */ addiu $a0,$sp,0x140
/* f07ef44: 0fc19a31 */ jal roomsCopy
/* f07ef48: 8fa50054 */ lw $a1,0x54($sp)
/* f07ef4c: c7aa0190 */ lwc1 $f10,0x190($sp)
/* f07ef50: 8e020088 */ lw $v0,0x88($s0)
/* f07ef54: e60a007c */ swc1 $f10,0x7c($s0)
/* f07ef58: c7a4018c */ lwc1 $f4,0x18c($sp)
/* f07ef5c: e6040080 */ swc1 $f4,0x80($s0)
/* f07ef60: c7a60188 */ lwc1 $f6,0x188($sp)
/* f07ef64: e6060084 */ swc1 $f6,0x84($s0)
/* f07ef68: c7a80184 */ lwc1 $f8,0x184($sp)
/* f07ef6c: e6080070 */ swc1 $f8,0x70($s0)
/* f07ef70: c7aa0180 */ lwc1 $f10,0x180($sp)
/* f07ef74: 10400024 */ beqz $v0,.JF0f07f008
/* f07ef78: e60a0074 */ swc1 $f10,0x74($s0)
/* f07ef7c: 8e09008c */ lw $t1,0x8c($s0)
/* f07ef80: 8c480000 */ lw $t0,0x0($v0)
/* f07ef84: c7a601f4 */ lwc1 $f6,0x1f4($sp)
/* f07ef88: 00095880 */ sll $t3,$t1,0x2
/* f07ef8c: 010b6021 */ addu $t4,$t0,$t3
/* f07ef90: 8d8d0004 */ lw $t5,0x4($t4)
/* f07ef94: c7a401f4 */ lwc1 $f4,0x1f4($sp)
/* f07ef98: 05a20010 */ bltzl $t5,.JF0f07efdc
/* f07ef9c: c60a0064 */ lwc1 $f10,0x64($s0)
/* f07efa0: c6040064 */ lwc1 $f4,0x64($s0)
/* f07efa4: 8fa40058 */ lw $a0,0x58($sp)
/* f07efa8: 27a50150 */ addiu $a1,$sp,0x150
/* f07efac: 46062202 */ mul.s $f8,$f4,$f6
/* f07efb0: 27a60214 */ addiu $a2,$sp,0x214
/* f07efb4: 44074000 */ mfc1 $a3,$f8
/* f07efb8: 0fc11645 */ jal posIsArrivingLaterallyAtPos
/* f07efbc: 00000000 */ nop
/* f07efc0: 50400012 */ beqzl $v0,.JF0f07f00c
/* f07efc4: 02002025 */ move $a0,$s0
/* f07efc8: 0fc1ce23 */ jal hovercarIncrementStep
/* f07efcc: 02002025 */ move $a0,$s0
/* f07efd0: 1000000e */ b .JF0f07f00c
/* f07efd4: 02002025 */ move $a0,$s0
/* f07efd8: c60a0064 */ lwc1 $f10,0x64($s0)
.JF0f07efdc:
/* f07efdc: 8fa40058 */ lw $a0,0x58($sp)
/* f07efe0: 27a50150 */ addiu $a1,$sp,0x150
/* f07efe4: 46045182 */ mul.s $f6,$f10,$f4
/* f07efe8: 27a60214 */ addiu $a2,$sp,0x214
/* f07efec: 44073000 */ mfc1 $a3,$f6
/* f07eff0: 0fc11645 */ jal posIsArrivingLaterallyAtPos
/* f07eff4: 00000000 */ nop
/* f07eff8: 50400004 */ beqzl $v0,.JF0f07f00c
/* f07effc: 02002025 */ move $a0,$s0
/* f07f000: 0fc1ce23 */ jal hovercarIncrementStep
/* f07f004: 02002025 */ move $a0,$s0
.JF0f07f008:
/* f07f008: 02002025 */ move $a0,$s0
.JF0f07f00c:
/* f07f00c: 00002825 */ move $a1,$zero
/* f07f010: 0fc1ab62 */ jal func0f069c70
/* f07f014: 24060001 */ li $a2,0x1
.JF0f07f018:
/* f07f018: 8fbf004c */ lw $ra,0x4c($sp)
.JF0f07f01c:
/* f07f01c: 8fb00048 */ lw $s0,0x48($sp)
/* f07f020: 27bd0278 */ addiu $sp,$sp,0x278
/* f07f024: 03e00008 */ jr $ra
/* f07f028: 00000000 */ nop
);
#elif PAL
GLOBAL_ASM(
glabel hovercarTick
.late_rodata
glabel var7f1aa6ac
.word 0x471c4000
glabel var7f1aa6b0
.word 0x47148900
glabel var7f1aa6b4
.word 0x3d2aaaab
glabel var7f1aa6b8
.word 0x3dcccccd
glabel var7f1aa6bc
.word 0x3d2aaaab
glabel var7f1aa6c0
.word 0x3e555555
glabel var7f1aa6c4
.word 0x39893c87
glabel var7f1aa6c8
.word 0x3c80a8be
glabel var7f1aa6cc
.word 0x39893c87
glabel var7f1aa6d0
.word 0x3c80a8be
glabel var7f1aa6d4
.word 0x39893c87
glabel var7f1aa6d8
.word 0x3dcccccd
glabel var7f1aa6dc
.word 0x40c907a9
glabel var7f1aa6e0
.word 0x40c907a9
glabel var7f1aa6e4
.word 0xc7c35000
.text
/* f07d1e4: 27bdfd88 */ addiu $sp,$sp,-632
/* f07d1e8: afbf004c */ sw $ra,0x4c($sp)
/* f07d1ec: afb00048 */ sw $s0,0x48($sp)
/* f07d1f0: afa40278 */ sw $a0,0x278($sp)
/* f07d1f4: 8c900004 */ lw $s0,0x4($a0)
/* f07d1f8: 3c018000 */ lui $at,0x8000
/* f07d1fc: c604007c */ lwc1 $f4,0x7c($s0)
/* f07d200: e7a40200 */ swc1 $f4,0x200($sp)
/* f07d204: c6060080 */ lwc1 $f6,0x80($s0)
/* f07d208: e7a601fc */ swc1 $f6,0x1fc($sp)
/* f07d20c: 8e020008 */ lw $v0,0x8($s0)
/* f07d210: 00417824 */ and $t7,$v0,$at
/* f07d214: 11e00005 */ beqz $t7,.L0f07d22c
/* f07d218: 01e01025 */ or $v0,$t7,$zero
/* f07d21c: 3c0140a0 */ lui $at,0x40a0
/* f07d220: 44814000 */ mtc1 $at,$f8
/* f07d224: 10000005 */ b .L0f07d23c
/* f07d228: e7a801f4 */ swc1 $f8,0x1f4($sp)
.L0f07d22c:
/* f07d22c: 3c014120 */ lui $at,0x4120
/* f07d230: 44815000 */ mtc1 $at,$f10
/* f07d234: 00000000 */ nop
/* f07d238: e7aa01f4 */ swc1 $f10,0x1f4($sp)
.L0f07d23c:
/* f07d23c: 10400038 */ beqz $v0,.L0f07d320
/* f07d240: afa001f0 */ sw $zero,0x1f0($sp)
/* f07d244: 86180094 */ lh $t8,0x94($s0)
/* f07d248: 07030036 */ bgezl $t8,.L0f07d324
/* f07d24c: 860f0092 */ lh $t7,0x92($s0)
/* f07d250: 0fc1a2aa */ jal modelFindBboxRodata
/* f07d254: 8e040018 */ lw $a0,0x18($s0)
/* f07d258: 0fc199ef */ jal modelBboxGetYMin
/* f07d25c: 00402025 */ or $a0,$v0,$zero
/* f07d260: 8fa40278 */ lw $a0,0x278($sp)
/* f07d264: 24050001 */ addiu $a1,$zero,0x1
/* f07d268: 3406ffff */ dli $a2,0xffff
/* f07d26c: 84990028 */ lh $t9,0x28($a0)
/* f07d270: a7b901d6 */ sh $t9,0x1d6($sp)
/* f07d274: c6040028 */ lwc1 $f4,0x28($s0)
/* f07d278: e7a401d8 */ swc1 $f4,0x1d8($sp)
/* f07d27c: c606002c */ lwc1 $f6,0x2c($s0)
/* f07d280: e7a601dc */ swc1 $f6,0x1dc($sp)
/* f07d284: c6080030 */ lwc1 $f8,0x30($s0)
/* f07d288: e7a801e0 */ swc1 $f8,0x1e0($sp)
/* f07d28c: c60a0028 */ lwc1 $f10,0x28($s0)
/* f07d290: c4860008 */ lwc1 $f6,0x8($a0)
/* f07d294: 46005102 */ mul.s $f4,$f10,$f0
/* f07d298: 46062200 */ add.s $f8,$f4,$f6
/* f07d29c: e7a801e4 */ swc1 $f8,0x1e4($sp)
/* f07d2a0: c60a002c */ lwc1 $f10,0x2c($s0)
/* f07d2a4: c486000c */ lwc1 $f6,0xc($a0)
/* f07d2a8: 46005102 */ mul.s $f4,$f10,$f0
/* f07d2ac: 46062200 */ add.s $f8,$f4,$f6
/* f07d2b0: e7a801e8 */ swc1 $f8,0x1e8($sp)
/* f07d2b4: c60a0030 */ lwc1 $f10,0x30($s0)
/* f07d2b8: c4860010 */ lwc1 $f6,0x10($a0)
/* f07d2bc: 46005102 */ mul.s $f4,$f10,$f0
/* f07d2c0: 46062200 */ add.s $f8,$f4,$f6
/* f07d2c4: 0fc249af */ jal func0f0926bc
/* f07d2c8: e7a801ec */ swc1 $f8,0x1ec($sp)
/* f07d2cc: 8fa20278 */ lw $v0,0x278($sp)
/* f07d2d0: 3c08800a */ lui $t0,%hi(g_Vars+0x28c)
/* f07d2d4: 8d08a24c */ lw $t0,%lo(g_Vars+0x28c)($t0)
/* f07d2d8: 87ab01d6 */ lh $t3,0x1d6($sp)
/* f07d2dc: 24090001 */ addiu $t1,$zero,0x1
/* f07d2e0: 27aa01e4 */ addiu $t2,$sp,0x1e4
/* f07d2e4: 27ac01d8 */ addiu $t4,$sp,0x1d8
/* f07d2e8: afac0020 */ sw $t4,0x20($sp)
/* f07d2ec: afaa0018 */ sw $t2,0x18($sp)
/* f07d2f0: afa90014 */ sw $t1,0x14($sp)
/* f07d2f4: 00002025 */ or $a0,$zero,$zero
/* f07d2f8: 24070007 */ addiu $a3,$zero,0x7
/* f07d2fc: 24450008 */ addiu $a1,$v0,0x8
/* f07d300: 24460028 */ addiu $a2,$v0,0x28
/* f07d304: afa80010 */ sw $t0,0x10($sp)
/* f07d308: 0fc4a7d5 */ jal explosionCreate
/* f07d30c: afab001c */ sw $t3,0x1c($sp)
/* f07d310: 8e0d0040 */ lw $t5,0x40($s0)
/* f07d314: 35ae0004 */ ori $t6,$t5,0x4
/* f07d318: 10000311 */ b .L0f07df60
/* f07d31c: ae0e0040 */ sw $t6,0x40($s0)
.L0f07d320:
/* f07d320: 860f0092 */ lh $t7,0x92($s0)
.L0f07d324:
/* f07d324: 02002025 */ or $a0,$s0,$zero
/* f07d328: 24050001 */ addiu $a1,$zero,0x1
/* f07d32c: 11e00063 */ beqz $t7,.L0f07d4bc
/* f07d330: 00000000 */ nop
/* f07d334: 1040002c */ beqz $v0,.L0f07d3e8
/* f07d338: 3c02800a */ lui $v0,%hi(g_Vars)
/* f07d33c: 24429fc0 */ addiu $v0,$v0,%lo(g_Vars)
/* f07d340: 8c590038 */ lw $t9,0x38($v0)
/* f07d344: 86180094 */ lh $t8,0x94($s0)
/* f07d348: 86090096 */ lh $t1,0x96($s0)
/* f07d34c: 3c01bf80 */ lui $at,0xbf80
/* f07d350: 03194023 */ subu $t0,$t8,$t9
/* f07d354: a6080094 */ sh $t0,0x94($s0)
/* f07d358: 8c4a0038 */ lw $t2,0x38($v0)
/* f07d35c: 240d0032 */ addiu $t5,$zero,0x29
/* f07d360: 00002025 */ or $a0,$zero,$zero
/* f07d364: 012a5823 */ subu $t3,$t1,$t2
/* f07d368: a60b0096 */ sh $t3,0x96($s0)
/* f07d36c: 860c0096 */ lh $t4,0x96($s0)
/* f07d370: 24060064 */ addiu $a2,$zero,0x64
/* f07d374: 2407ffff */ addiu $a3,$zero,-1
/* f07d378: 058102f9 */ bgez $t4,.L0f07df60
/* f07d37c: 240effff */ addiu $t6,$zero,-1
/* f07d380: a60d0096 */ sh $t5,0x96($s0)
/* f07d384: 44810000 */ mtc1 $at,$f0
/* f07d388: 240f0400 */ addiu $t7,$zero,0x400
/* f07d38c: 2418ffff */ addiu $t8,$zero,-1
/* f07d390: afb8002c */ sw $t8,0x2c($sp)
/* f07d394: afaf0014 */ sw $t7,0x14($sp)
/* f07d398: afa00028 */ sw $zero,0x28($sp)
/* f07d39c: afa00020 */ sw $zero,0x20($sp)
/* f07d3a0: afa0001c */ sw $zero,0x1c($sp)
/* f07d3a4: afa00018 */ sw $zero,0x18($sp)
/* f07d3a8: afae0010 */ sw $t6,0x10($sp)
/* f07d3ac: 8fa50278 */ lw $a1,0x278($sp)
/* f07d3b0: e7a00024 */ swc1 $f0,0x24($sp)
/* f07d3b4: e7a00030 */ swc1 $f0,0x30($sp)
/* f07d3b8: e7a00034 */ swc1 $f0,0x34($sp)
/* f07d3bc: 0fc24e7e */ jal propsnd0f0939f8
/* f07d3c0: e7a00038 */ swc1 $f0,0x38($sp)
/* f07d3c4: 8fa50278 */ lw $a1,0x278($sp)
/* f07d3c8: 00003825 */ or $a3,$zero,$zero
/* f07d3cc: 84a40028 */ lh $a0,0x28($a1)
/* f07d3d0: afa00014 */ sw $zero,0x14($sp)
/* f07d3d4: afa00010 */ sw $zero,0x10($sp)
/* f07d3d8: 0fc4be7c */ jal sparksCreate
/* f07d3dc: 24a60008 */ addiu $a2,$a1,0x8
/* f07d3e0: 100002e0 */ b .L0f07df64
/* f07d3e4: 8fbf004c */ lw $ra,0x4c($sp)
.L0f07d3e8:
/* f07d3e8: 44805000 */ mtc1 $zero,$f10
/* f07d3ec: c604006c */ lwc1 $f4,0x6c($s0)
/* f07d3f0: 3c0140c0 */ lui $at,0x40c0
/* f07d3f4: 46045032 */ c.eq.s $f10,$f4
/* f07d3f8: 00000000 */ nop
/* f07d3fc: 450202d9 */ bc1fl .L0f07df64
/* f07d400: 8fbf004c */ lw $ra,0x4c($sp)
/* f07d404: c6060064 */ lwc1 $f6,0x64($s0)
/* f07d408: 44814000 */ mtc1 $at,$f8
/* f07d40c: 3c013f80 */ lui $at,0x3f80
/* f07d410: 46083280 */ add.s $f10,$f6,$f8
/* f07d414: e60a0064 */ swc1 $f10,0x64($s0)
/* f07d418: 8fb90278 */ lw $t9,0x278($sp)
/* f07d41c: c7240008 */ lwc1 $f4,0x8($t9)
/* f07d420: e7a401c0 */ swc1 $f4,0x1c0($sp)
/* f07d424: c6080064 */ lwc1 $f8,0x64($s0)
/* f07d428: c726000c */ lwc1 $f6,0xc($t9)
/* f07d42c: 46083281 */ sub.s $f10,$f6,$f8
/* f07d430: e7aa01c4 */ swc1 $f10,0x1c4($sp)
/* f07d434: c7240010 */ lwc1 $f4,0x10($t9)
/* f07d438: e7a401c8 */ swc1 $f4,0x1c8($sp)
/* f07d43c: c6020068 */ lwc1 $f2,0x68($s0)
/* f07d440: 4602503c */ c.lt.s $f10,$f2
/* f07d444: 00000000 */ nop
/* f07d448: 45020005 */ bc1fl .L0f07d460
/* f07d44c: 8fa80278 */ lw $t0,0x278($sp)
/* f07d450: 44813000 */ mtc1 $at,$f6
/* f07d454: e7a201c4 */ swc1 $f2,0x1c4($sp)
/* f07d458: e606006c */ swc1 $f6,0x6c($s0)
/* f07d45c: 8fa80278 */ lw $t0,0x278($sp)
.L0f07d460:
/* f07d460: 27a601c0 */ addiu $a2,$sp,0x1c0
/* f07d464: 27a701b0 */ addiu $a3,$sp,0x1b0
/* f07d468: 25050028 */ addiu $a1,$t0,0x28
/* f07d46c: afa50054 */ sw $a1,0x54($sp)
/* f07d470: 0fc1979d */ jal func0f065e74
/* f07d474: 25040008 */ addiu $a0,$t0,0x8
/* f07d478: 8fa40278 */ lw $a0,0x278($sp)
/* f07d47c: c7a801c0 */ lwc1 $f8,0x1c0($sp)
/* f07d480: e4880008 */ swc1 $f8,0x8($a0)
/* f07d484: c7a401c4 */ lwc1 $f4,0x1c4($sp)
/* f07d488: e484000c */ swc1 $f4,0xc($a0)
/* f07d48c: c7aa01c8 */ lwc1 $f10,0x1c8($sp)
/* f07d490: 0fc19711 */ jal propDeregisterRooms
/* f07d494: e48a0010 */ swc1 $f10,0x10($a0)
/* f07d498: 27a401b0 */ addiu $a0,$sp,0x1b0
/* f07d49c: 0fc195e9 */ jal roomsCopy
/* f07d4a0: 8fa50054 */ lw $a1,0x54($sp)
/* f07d4a4: 02002025 */ or $a0,$s0,$zero
/* f07d4a8: 00002825 */ or $a1,$zero,$zero
/* f07d4ac: 0fc1a71c */ jal func0f069c70
/* f07d4b0: 24060001 */ addiu $a2,$zero,0x1
/* f07d4b4: 100002ab */ b .L0f07df64
/* f07d4b8: 8fbf004c */ lw $ra,0x4c($sp)
.L0f07d4bc:
/* f07d4bc: 0fc135ad */ jal chraiExecute
/* f07d4c0: afa201f8 */ sw $v0,0x1f8($sp)
/* f07d4c4: afa00274 */ sw $zero,0x274($sp)
/* f07d4c8: 8e020088 */ lw $v0,0x88($s0)
/* f07d4cc: 24050042 */ addiu $a1,$zero,0x42
/* f07d4d0: 5040009f */ beqzl $v0,.L0f07d750
/* f07d4d4: 8e090008 */ lw $t1,0x8($s0)
/* f07d4d8: 8e0a008c */ lw $t2,0x8c($s0)
/* f07d4dc: 8c490000 */ lw $t1,0x0($v0)
/* f07d4e0: 27a60220 */ addiu $a2,$sp,0x220
/* f07d4e4: 000a5880 */ sll $t3,$t2,0x2
/* f07d4e8: 012b1821 */ addu $v1,$t1,$t3
/* f07d4ec: 0fc456ac */ jal padUnpack
/* f07d4f0: 8c640000 */ lw $a0,0x0($v1)
/* f07d4f4: 8fac01f8 */ lw $t4,0x1f8($sp)
/* f07d4f8: c7a60220 */ lwc1 $f6,0x220($sp)
/* f07d4fc: c7aa0224 */ lwc1 $f10,0x224($sp)
/* f07d500: 11800011 */ beqz $t4,.L0f07d548
/* f07d504: e7a60214 */ swc1 $f6,0x214($sp)
/* f07d508: 8fad0268 */ lw $t5,0x268($sp)
/* f07d50c: 240effff */ addiu $t6,$zero,-1
/* f07d510: a7ae0212 */ sh $t6,0x212($sp)
/* f07d514: 27a40220 */ addiu $a0,$sp,0x220
/* f07d518: 3c0540a0 */ lui $a1,0x40a0
/* f07d51c: 27a60210 */ addiu $a2,$sp,0x210
/* f07d520: 00003825 */ or $a3,$zero,$zero
/* f07d524: afa00010 */ sw $zero,0x10($sp)
/* f07d528: 0c00a8cc */ jal cdFindGroundYSimple
/* f07d52c: a7ad0210 */ sh $t5,0x210($sp)
/* f07d530: 3c01420c */ lui $at,0x420c
/* f07d534: 44814000 */ mtc1 $at,$f8
/* f07d538: 00000000 */ nop
/* f07d53c: 46080100 */ add.s $f4,$f0,$f8
/* f07d540: 10000002 */ b .L0f07d54c
/* f07d544: e7a40218 */ swc1 $f4,0x218($sp)
.L0f07d548:
/* f07d548: e7aa0218 */ swc1 $f10,0x218($sp)
.L0f07d54c:
/* f07d54c: c7a60228 */ lwc1 $f6,0x228($sp)
/* f07d550: 8fa40278 */ lw $a0,0x278($sp)
/* f07d554: 27a60214 */ addiu $a2,$sp,0x214
/* f07d558: e7a6021c */ swc1 $f6,0x21c($sp)
/* f07d55c: 8e0f0008 */ lw $t7,0x8($s0)
/* f07d560: 24840008 */ addiu $a0,$a0,0x8
/* f07d564: 00802825 */ or $a1,$a0,$zero
/* f07d568: 000fc080 */ sll $t8,$t7,0x2
/* f07d56c: 07030011 */ bgezl $t8,.L0f07d5b4
/* f07d570: 8fa20278 */ lw $v0,0x278($sp)
/* f07d574: 0fc111b8 */ jal posIsArrivingLaterallyAtPos
/* f07d578: 8fa701f4 */ lw $a3,0x1f4($sp)
/* f07d57c: 5040000d */ beqzl $v0,.L0f07d5b4
/* f07d580: 8fa20278 */ lw $v0,0x278($sp)
/* f07d584: 0fc1c9dd */ jal hovercarIncrementStep
/* f07d588: 02002025 */ or $a0,$s0,$zero
/* f07d58c: 8e190088 */ lw $t9,0x88($s0)
/* f07d590: 8e0a008c */ lw $t2,0x8c($s0)
/* f07d594: 24050002 */ addiu $a1,$zero,0x2
/* f07d598: 8f280000 */ lw $t0,0x0($t9)
/* f07d59c: 000a4880 */ sll $t1,$t2,0x2
/* f07d5a0: 27a60220 */ addiu $a2,$sp,0x220
/* f07d5a4: 01091821 */ addu $v1,$t0,$t1
/* f07d5a8: 0fc456ac */ jal padUnpack
/* f07d5ac: 8c640000 */ lw $a0,0x0($v1)
/* f07d5b0: 8fa20278 */ lw $v0,0x278($sp)
.L0f07d5b4:
/* f07d5b4: c7a80214 */ lwc1 $f8,0x214($sp)
/* f07d5b8: c7aa021c */ lwc1 $f10,0x21c($sp)
/* f07d5bc: c4440008 */ lwc1 $f4,0x8($v0)
/* f07d5c0: c4460010 */ lwc1 $f6,0x10($v0)
/* f07d5c4: 46044301 */ sub.s $f12,$f8,$f4
/* f07d5c8: 0fc259d4 */ jal atan2f
/* f07d5cc: 46065381 */ sub.s $f14,$f10,$f6
/* f07d5d0: 8fa20278 */ lw $v0,0x278($sp)
/* f07d5d4: e7a00200 */ swc1 $f0,0x200($sp)
/* f07d5d8: c7a80214 */ lwc1 $f8,0x214($sp)
/* f07d5dc: c4440008 */ lwc1 $f4,0x8($v0)
/* f07d5e0: c7aa021c */ lwc1 $f10,0x21c($sp)
/* f07d5e4: c4460010 */ lwc1 $f6,0x10($v0)
/* f07d5e8: 46044081 */ sub.s $f2,$f8,$f4
/* f07d5ec: 46065381 */ sub.s $f14,$f10,$f6
/* f07d5f0: 46021202 */ mul.s $f8,$f2,$f2
/* f07d5f4: 00000000 */ nop
/* f07d5f8: 460e7102 */ mul.s $f4,$f14,$f14
/* f07d5fc: 0c012974 */ jal sqrtf
/* f07d600: 46044300 */ add.s $f12,$f8,$f4
/* f07d604: 8fab0278 */ lw $t3,0x278($sp)
/* f07d608: c7aa0218 */ lwc1 $f10,0x218($sp)
/* f07d60c: 46000386 */ mov.s $f14,$f0
/* f07d610: c566000c */ lwc1 $f6,0xc($t3)
/* f07d614: 0fc259d4 */ jal atan2f
/* f07d618: 46065301 */ sub.s $f12,$f10,$f6
/* f07d61c: e7a001fc */ swc1 $f0,0x1fc($sp)
/* f07d620: 8e0c0008 */ lw $t4,0x8($s0)
/* f07d624: 3c01dfff */ lui $at,0xdfff
/* f07d628: c7a80200 */ lwc1 $f8,0x200($sp)
/* f07d62c: 000c6880 */ sll $t5,$t4,0x2
/* f07d630: 05a1000c */ bgez $t5,.L0f07d664
/* f07d634: 3421ffff */ ori $at,$at,0xffff
/* f07d638: 8e0e0008 */ lw $t6,0x8($s0)
/* f07d63c: e608007c */ swc1 $f8,0x7c($s0)
/* f07d640: e6000080 */ swc1 $f0,0x80($s0)
/* f07d644: 01c17824 */ and $t7,$t6,$at
/* f07d648: ae0f0008 */ sw $t7,0x8($s0)
/* f07d64c: 8fb801f8 */ lw $t8,0x1f8($sp)
/* f07d650: 8fa30278 */ lw $v1,0x278($sp)
/* f07d654: c7a40218 */ lwc1 $f4,0x218($sp)
/* f07d658: 53000003 */ beqzl $t8,.L0f07d668
/* f07d65c: 8fb901f8 */ lw $t9,0x1f8($sp)
/* f07d660: e464000c */ swc1 $f4,0xc($v1)
.L0f07d664:
/* f07d664: 8fb901f8 */ lw $t9,0x1f8($sp)
.L0f07d668:
/* f07d668: 8fa30278 */ lw $v1,0x278($sp)
/* f07d66c: 27a60214 */ addiu $a2,$sp,0x214
/* f07d670: 13200034 */ beqz $t9,.L0f07d744
/* f07d674: 24640008 */ addiu $a0,$v1,0x8
/* f07d678: 44800000 */ mtc1 $zero,$f0
/* f07d67c: 24650028 */ addiu $a1,$v1,0x28
/* f07d680: 24075000 */ addiu $a3,$zero,0x5000
/* f07d684: afa00010 */ sw $zero,0x10($sp)
/* f07d688: e7a00014 */ swc1 $f0,0x14($sp)
/* f07d68c: 0c00b5f0 */ jal cd0002d7c0
/* f07d690: e7a00018 */ swc1 $f0,0x18($sp)
/* f07d694: 54400005 */ bnezl $v0,.L0f07d6ac
/* f07d698: 8fa301f0 */ lw $v1,0x1f0($sp)
/* f07d69c: 0c0093ac */ jal cdGetObstacle
/* f07d6a0: 00000000 */ nop
/* f07d6a4: afa201f0 */ sw $v0,0x1f0($sp)
/* f07d6a8: 8fa301f0 */ lw $v1,0x1f0($sp)
.L0f07d6ac:
/* f07d6ac: 10600025 */ beqz $v1,.L0f07d744
/* f07d6b0: 00000000 */ nop
/* f07d6b4: 8c6a0004 */ lw $t2,0x4($v1)
/* f07d6b8: 8fa60278 */ lw $a2,0x278($sp)
/* f07d6bc: 3c017f1b */ lui $at,%hi(var7f1aa6ac)
/* f07d6c0: afaa01a0 */ sw $t2,0x1a0($sp)
/* f07d6c4: c46a0008 */ lwc1 $f10,0x8($v1)
/* f07d6c8: c4c60008 */ lwc1 $f6,0x8($a2)
/* f07d6cc: c4680010 */ lwc1 $f8,0x10($v1)
/* f07d6d0: c4c40010 */ lwc1 $f4,0x10($a2)
/* f07d6d4: 46065001 */ sub.s $f0,$f10,$f6
/* f07d6d8: 01402825 */ or $a1,$t2,$zero
/* f07d6dc: 00c02025 */ or $a0,$a2,$zero
/* f07d6e0: 46044081 */ sub.s $f2,$f8,$f4
/* f07d6e4: 46000282 */ mul.s $f10,$f0,$f0
/* f07d6e8: c428a6ac */ lwc1 $f8,%lo(var7f1aa6ac)($at)
/* f07d6ec: 46021182 */ mul.s $f6,$f2,$f2
/* f07d6f0: 46065300 */ add.s $f12,$f10,$f6
/* f07d6f4: 4608603c */ c.lt.s $f12,$f8
/* f07d6f8: 00000000 */ nop
/* f07d6fc: 45000007 */ bc1f .L0f07d71c
/* f07d700: 00000000 */ nop
/* f07d704: 0fc24030 */ jal doorsChooseSwingDirection
/* f07d708: e7ac0058 */ swc1 $f12,0x58($sp)
/* f07d70c: 8fa401a0 */ lw $a0,0x1a0($sp)
/* f07d710: 0fc23922 */ jal doorsRequestMode
/* f07d714: 24050001 */ addiu $a1,$zero,0x1
/* f07d718: c7ac0058 */ lwc1 $f12,0x58($sp)
.L0f07d71c:
/* f07d71c: 3c017f1b */ lui $at,%hi(var7f1aa6b0)
/* f07d720: c424a6b0 */ lwc1 $f4,%lo(var7f1aa6b0)($at)
/* f07d724: 4604603c */ c.lt.s $f12,$f4
/* f07d728: 00000000 */ nop
/* f07d72c: 45000005 */ bc1f .L0f07d744
/* f07d730: 00000000 */ nop
/* f07d734: 0fc23959 */ jal doorIsOpen
/* f07d738: 8fa401a0 */ lw $a0,0x1a0($sp)
/* f07d73c: 2c480001 */ sltiu $t0,$v0,0x1
/* f07d740: afa80274 */ sw $t0,0x274($sp)
.L0f07d744:
/* f07d744: 1000001a */ b .L0f07d7b0
/* f07d748: 44807000 */ mtc1 $zero,$f14
/* f07d74c: 8e090008 */ lw $t1,0x8($s0)
.L0f07d750:
/* f07d750: 00095880 */ sll $t3,$t1,0x2
/* f07d754: 05630016 */ bgezl $t3,.L0f07d7b0
/* f07d758: 44807000 */ mtc1 $zero,$f14
/* f07d75c: c60c0034 */ lwc1 $f12,0x34($s0)
/* f07d760: 0fc259d4 */ jal atan2f
/* f07d764: c60e003c */ lwc1 $f14,0x3c($s0)
/* f07d768: c6020034 */ lwc1 $f2,0x34($s0)
/* f07d76c: c60e003c */ lwc1 $f14,0x3c($s0)
/* f07d770: e600007c */ swc1 $f0,0x7c($s0)
/* f07d774: 46021282 */ mul.s $f10,$f2,$f2
/* f07d778: 00000000 */ nop
/* f07d77c: 460e7182 */ mul.s $f6,$f14,$f14
/* f07d780: 0c012974 */ jal sqrtf
/* f07d784: 46065300 */ add.s $f12,$f10,$f6
/* f07d788: c60c0038 */ lwc1 $f12,0x38($s0)
/* f07d78c: 0fc259d4 */ jal atan2f
/* f07d790: 46000386 */ mov.s $f14,$f0
/* f07d794: 8e0c0008 */ lw $t4,0x8($s0)
/* f07d798: 3c01dfff */ lui $at,0xdfff
/* f07d79c: 3421ffff */ ori $at,$at,0xffff
/* f07d7a0: 01816824 */ and $t5,$t4,$at
/* f07d7a4: e6000080 */ swc1 $f0,0x80($s0)
/* f07d7a8: ae0d0008 */ sw $t5,0x8($s0)
/* f07d7ac: 44807000 */ mtc1 $zero,$f14
.L0f07d7b0:
/* f07d7b0: c60c006c */ lwc1 $f12,0x6c($s0)
/* f07d7b4: 3c02800a */ lui $v0,%hi(g_Vars)
/* f07d7b8: 8fa30278 */ lw $v1,0x278($sp)
/* f07d7bc: 460c703e */ c.le.s $f14,$f12
/* f07d7c0: 24429fc0 */ addiu $v0,$v0,%lo(g_Vars)
/* f07d7c4: 45020015 */ bc1fl .L0f07d81c
/* f07d7c8: 8fae01f8 */ lw $t6,0x1f8($sp)
/* f07d7cc: c442004c */ lwc1 $f2,0x4c($v0)
/* f07d7d0: 4602603e */ c.le.s $f12,$f2
/* f07d7d4: 00000000 */ nop
/* f07d7d8: 45020006 */ bc1fl .L0f07d7f4
/* f07d7dc: c6000064 */ lwc1 $f0,0x64($s0)
/* f07d7e0: c6080068 */ lwc1 $f8,0x68($s0)
/* f07d7e4: c60c006c */ lwc1 $f12,0x6c($s0)
/* f07d7e8: 10000008 */ b .L0f07d80c
/* f07d7ec: e6080064 */ swc1 $f8,0x64($s0)
/* f07d7f0: c6000064 */ lwc1 $f0,0x64($s0)
.L0f07d7f4:
/* f07d7f4: c6040068 */ lwc1 $f4,0x68($s0)
/* f07d7f8: 46002281 */ sub.s $f10,$f4,$f0
/* f07d7fc: 46025182 */ mul.s $f6,$f10,$f2
/* f07d800: 460c3203 */ div.s $f8,$f6,$f12
/* f07d804: 46080100 */ add.s $f4,$f0,$f8
/* f07d808: e6040064 */ swc1 $f4,0x64($s0)
.L0f07d80c:
/* f07d80c: c44a004c */ lwc1 $f10,0x4c($v0)
/* f07d810: 460a6181 */ sub.s $f6,$f12,$f10
/* f07d814: e606006c */ swc1 $f6,0x6c($s0)
/* f07d818: 8fae01f8 */ lw $t6,0x1f8($sp)
.L0f07d81c:
/* f07d81c: 3c02800a */ lui $v0,%hi(g_Vars)
/* f07d820: 24429fc0 */ addiu $v0,$v0,%lo(g_Vars)
/* f07d824: 51c00037 */ beqzl $t6,.L0f07d904
/* f07d828: c6040064 */ lwc1 $f4,0x64($s0)
/* f07d82c: c6080070 */ lwc1 $f8,0x70($s0)
/* f07d830: 3c017f1b */ lui $at,%hi(var7f1aa6b4)
/* f07d834: 4608703c */ c.lt.s $f14,$f8
/* f07d838: 00000000 */ nop
/* f07d83c: 45020013 */ bc1fl .L0f07d88c
/* f07d840: c6000064 */ lwc1 $f0,0x64($s0)
/* f07d844: c6040068 */ lwc1 $f4,0x68($s0)
/* f07d848: c42aa6b4 */ lwc1 $f10,%lo(var7f1aa6b4)($at)
/* f07d84c: c4480044 */ lwc1 $f8,0x4c($v0)
/* f07d850: 3c017f1b */ lui $at,%hi(var7f1aa6b8)
/* f07d854: 460a2182 */ mul.s $f6,$f4,$f10
/* f07d858: c60a0064 */ lwc1 $f10,0x64($s0)
/* f07d85c: 46083102 */ mul.s $f4,$f6,$f8
/* f07d860: 46045181 */ sub.s $f6,$f10,$f4
/* f07d864: e6060064 */ swc1 $f6,0x64($s0)
/* f07d868: c6080064 */ lwc1 $f8,0x64($s0)
/* f07d86c: 460e403c */ c.lt.s $f8,$f14
/* f07d870: 00000000 */ nop
/* f07d874: 45020013 */ bc1fl .L0f07d8c4
/* f07d878: 8faf0274 */ lw $t7,0x274($sp)
/* f07d87c: c42aa6b8 */ lwc1 $f10,%lo(var7f1aa6b8)($at)
/* f07d880: 1000000f */ b .L0f07d8c0
/* f07d884: e60a0064 */ swc1 $f10,0x64($s0)
/* f07d888: c6000064 */ lwc1 $f0,0x64($s0)
.L0f07d88c:
/* f07d88c: c6020068 */ lwc1 $f2,0x68($s0)
/* f07d890: 3c017f1b */ lui $at,%hi(var7f1aa6bc)
/* f07d894: 4602003c */ c.lt.s $f0,$f2
/* f07d898: 00000000 */ nop
/* f07d89c: 45020009 */ bc1fl .L0f07d8c4
/* f07d8a0: 8faf0274 */ lw $t7,0x274($sp)
/* f07d8a4: c424a6bc */ lwc1 $f4,%lo(var7f1aa6bc)($at)
/* f07d8a8: c4480044 */ lwc1 $f8,0x4c($v0)
/* f07d8ac: 46041182 */ mul.s $f6,$f2,$f4
/* f07d8b0: 00000000 */ nop
/* f07d8b4: 46083282 */ mul.s $f10,$f6,$f8
/* f07d8b8: 460a0100 */ add.s $f4,$f0,$f10
/* f07d8bc: e6040064 */ swc1 $f4,0x64($s0)
.L0f07d8c0:
/* f07d8c0: 8faf0274 */ lw $t7,0x274($sp)
.L0f07d8c4:
/* f07d8c4: 3c017f1b */ lui $at,%hi(var7f1aa6c0)
/* f07d8c8: 51e0000e */ beqzl $t7,.L0f07d904
/* f07d8cc: c6040064 */ lwc1 $f4,0x64($s0)
/* f07d8d0: c426a6c0 */ lwc1 $f6,%lo(var7f1aa6c0)($at)
/* f07d8d4: c4480044 */ lwc1 $f8,0x4c($v0)
/* f07d8d8: c6040064 */ lwc1 $f4,0x64($s0)
/* f07d8dc: 46083282 */ mul.s $f10,$f6,$f8
/* f07d8e0: 460a2181 */ sub.s $f6,$f4,$f10
/* f07d8e4: e6060064 */ swc1 $f6,0x64($s0)
/* f07d8e8: c6080064 */ lwc1 $f8,0x64($s0)
/* f07d8ec: 460e403c */ c.lt.s $f8,$f14
/* f07d8f0: 00000000 */ nop
/* f07d8f4: 45020003 */ bc1fl .L0f07d904
/* f07d8f8: c6040064 */ lwc1 $f4,0x64($s0)
/* f07d8fc: e60e0064 */ swc1 $f14,0x64($s0)
/* f07d900: c6040064 */ lwc1 $f4,0x64($s0)
.L0f07d904:
/* f07d904: 4604703c */ c.lt.s $f14,$f4
/* f07d908: 00000000 */ nop
/* f07d90c: 45020195 */ bc1fl .L0f07df64
/* f07d910: 8fbf004c */ lw $ra,0x4c($sp)
/* f07d914: c60a007c */ lwc1 $f10,0x7c($s0)
/* f07d918: 24780008 */ addiu $t8,$v1,0x8
/* f07d91c: 24790028 */ addiu $t9,$v1,0x28
/* f07d920: e7aa0190 */ swc1 $f10,0x190($sp)
/* f07d924: c6060080 */ lwc1 $f6,0x80($s0)
/* f07d928: e7a6018c */ swc1 $f6,0x18c($sp)
/* f07d92c: c6080084 */ lwc1 $f8,0x84($s0)
/* f07d930: e7a80188 */ swc1 $f8,0x188($sp)
/* f07d934: c6040070 */ lwc1 $f4,0x70($s0)
/* f07d938: e7a40184 */ swc1 $f4,0x184($sp)
/* f07d93c: c60a0074 */ lwc1 $f10,0x74($s0)
/* f07d940: e7aa0180 */ swc1 $f10,0x180($sp)
/* f07d944: c60c007c */ lwc1 $f12,0x7c($s0)
/* f07d948: afb90054 */ sw $t9,0x54($sp)
/* f07d94c: 0c0068f7 */ jal sinf
/* f07d950: afb80058 */ sw $t8,0x58($sp)
/* f07d954: c60c0080 */ lwc1 $f12,0x80($s0)
/* f07d958: 0c0068f4 */ jal cosf
/* f07d95c: e7a00068 */ swc1 $f0,0x68($sp)
/* f07d960: c7a20068 */ lwc1 $f2,0x68($sp)
/* f07d964: 46020182 */ mul.s $f6,$f0,$f2
/* f07d968: e7a60194 */ swc1 $f6,0x194($sp)
/* f07d96c: 0c0068f7 */ jal sinf
/* f07d970: c60c0080 */ lwc1 $f12,0x80($s0)
/* f07d974: e7a00198 */ swc1 $f0,0x198($sp)
/* f07d978: 0c0068f4 */ jal cosf
/* f07d97c: c60c007c */ lwc1 $f12,0x7c($s0)
/* f07d980: c60c0080 */ lwc1 $f12,0x80($s0)
/* f07d984: 0c0068f4 */ jal cosf
/* f07d988: e7a00068 */ swc1 $f0,0x68($sp)
/* f07d98c: c7a20068 */ lwc1 $f2,0x68($sp)
/* f07d990: 8fa40058 */ lw $a0,0x58($sp)
/* f07d994: 27a50194 */ addiu $a1,$sp,0x194
/* f07d998: 46020202 */ mul.s $f8,$f0,$f2
/* f07d99c: 27a60214 */ addiu $a2,$sp,0x214
/* f07d9a0: 8fa701f4 */ lw $a3,0x1f4($sp)
/* f07d9a4: 0fc11171 */ jal posIsMovingTowardsPosOrStoppedInRange
/* f07d9a8: e7a8019c */ swc1 $f8,0x19c($sp)
/* f07d9ac: 50400006 */ beqzl $v0,.L0f07d9c8
/* f07d9b0: 8fa201f8 */ lw $v0,0x1f8($sp)
/* f07d9b4: c604007c */ lwc1 $f4,0x7c($s0)
/* f07d9b8: e7a40200 */ swc1 $f4,0x200($sp)
/* f07d9bc: c60a0080 */ lwc1 $f10,0x80($s0)
/* f07d9c0: e7aa01fc */ swc1 $f10,0x1fc($sp)
/* f07d9c4: 8fa201f8 */ lw $v0,0x1f8($sp)
.L0f07d9c8:
/* f07d9c8: 10400004 */ beqz $v0,.L0f07d9dc
/* f07d9cc: 3c014170 */ lui $at,0x4170
/* f07d9d0: 44818000 */ mtc1 $at,$f16
/* f07d9d4: 10000006 */ b .L0f07d9f0
/* f07d9d8: 46008386 */ mov.s $f14,$f16
.L0f07d9dc:
/* f07d9dc: 3c0140a0 */ lui $at,0x40a0
/* f07d9e0: 44817000 */ mtc1 $at,$f14
/* f07d9e4: 3c014170 */ lui $at,0x4170
/* f07d9e8: 44818000 */ mtc1 $at,$f16
/* f07d9ec: 00000000 */ nop
.L0f07d9f0:
/* f07d9f0: 50400004 */ beqzl $v0,.L0f07da04
/* f07d9f4: 3c0140a0 */ lui $at,0x40a0
/* f07d9f8: 10000004 */ b .L0f07da0c
/* f07d9fc: 46008306 */ mov.s $f12,$f16
/* f07da00: 3c0140a0 */ lui $at,0x40a0
.L0f07da04:
/* f07da04: 44816000 */ mtc1 $at,$f12
/* f07da08: 00000000 */ nop
.L0f07da0c:
/* f07da0c: 50400004 */ beqzl $v0,.L0f07da20
/* f07da10: 3c0140a0 */ lui $at,0x40a0
/* f07da14: 10000004 */ b .L0f07da28
/* f07da18: 46008086 */ mov.s $f2,$f16
/* f07da1c: 3c0140a0 */ lui $at,0x40a0
.L0f07da20:
/* f07da20: 44811000 */ mtc1 $at,$f2
/* f07da24: 00000000 */ nop
.L0f07da28:
/* f07da28: 3c017f1b */ lui $at,%hi(var7f1aa6c4)
/* f07da2c: c432a6c4 */ lwc1 $f18,%lo(var7f1aa6c4)($at)
/* f07da30: 3c017f1b */ lui $at,%hi(var7f1aa6c8)
/* f07da34: c424a6c8 */ lwc1 $f4,%lo(var7f1aa6c8)($at)
/* f07da38: 46127182 */ mul.s $f6,$f14,$f18
/* f07da3c: 27a40190 */ addiu $a0,$sp,0x190
/* f07da40: 8fa50200 */ lw $a1,0x200($sp)
/* f07da44: 46126002 */ mul.s $f0,$f12,$f18
/* f07da48: 27a60184 */ addiu $a2,$sp,0x184
/* f07da4c: 46041282 */ mul.s $f10,$f2,$f4
/* f07da50: 44073000 */ mfc1 $a3,$f6
/* f07da54: 46000200 */ add.s $f8,$f0,$f0
/* f07da58: e7aa0014 */ swc1 $f10,0x14($sp)
/* f07da5c: 0fc1b6c0 */ jal applyRotation
/* f07da60: e7a80010 */ swc1 $f8,0x10($sp)
/* f07da64: c7a60190 */ lwc1 $f6,0x190($sp)
/* f07da68: c7a80200 */ lwc1 $f8,0x200($sp)
/* f07da6c: 3c014170 */ lui $at,0x4170
/* f07da70: 44818000 */ mtc1 $at,$f16
/* f07da74: 46083032 */ c.eq.s $f6,$f8
/* f07da78: 3c017f1b */ lui $at,%hi(var7f1aa6cc)
/* f07da7c: c432a6cc */ lwc1 $f18,%lo(var7f1aa6cc)($at)
/* f07da80: 45020021 */ bc1fl .L0f07db08
/* f07da84: 8fa201f8 */ lw $v0,0x1f8($sp)
/* f07da88: 8fa201f8 */ lw $v0,0x1f8($sp)
/* f07da8c: 3c0140a0 */ lui $at,0x40a0
/* f07da90: 50400004 */ beqzl $v0,.L0f07daa4
/* f07da94: 44811000 */ mtc1 $at,$f2
/* f07da98: 10000003 */ b .L0f07daa8
/* f07da9c: 46008086 */ mov.s $f2,$f16
/* f07daa0: 44811000 */ mtc1 $at,$f2
.L0f07daa4:
/* f07daa4: 00000000 */ nop
.L0f07daa8:
/* f07daa8: 46121002 */ mul.s $f0,$f2,$f18
/* f07daac: c7ae0184 */ lwc1 $f14,0x184($sp)
/* f07dab0: 46000100 */ add.s $f4,$f0,$f0
/* f07dab4: 4604703e */ c.le.s $f14,$f4
/* f07dab8: 00000000 */ nop
/* f07dabc: 45020012 */ bc1fl .L0f07db08
/* f07dac0: 8fa201f8 */ lw $v0,0x1f8($sp)
/* f07dac4: 10400003 */ beqz $v0,.L0f07dad4
/* f07dac8: 3c0140a0 */ lui $at,0x40a0
/* f07dacc: 10000003 */ b .L0f07dadc
/* f07dad0: 46008306 */ mov.s $f12,$f16
.L0f07dad4:
/* f07dad4: 44816000 */ mtc1 $at,$f12
/* f07dad8: 00000000 */ nop
.L0f07dadc:
/* f07dadc: 46126002 */ mul.s $f0,$f12,$f18
/* f07dae0: 46000007 */ neg.s $f0,$f0
/* f07dae4: 46000280 */ add.s $f10,$f0,$f0
/* f07dae8: 460e503e */ c.le.s $f10,$f14
/* f07daec: 00000000 */ nop
/* f07daf0: 45020005 */ bc1fl .L0f07db08
/* f07daf4: 8fa201f8 */ lw $v0,0x1f8($sp)
/* f07daf8: 44807000 */ mtc1 $zero,$f14
/* f07dafc: 00000000 */ nop
/* f07db00: e7ae0184 */ swc1 $f14,0x184($sp)
/* f07db04: 8fa201f8 */ lw $v0,0x1f8($sp)
.L0f07db08:
/* f07db08: 50400004 */ beqzl $v0,.L0f07db1c
/* f07db0c: 3c0140a0 */ lui $at,0x40a0
/* f07db10: 10000004 */ b .L0f07db24
/* f07db14: 46008386 */ mov.s $f14,$f16
/* f07db18: 3c0140a0 */ lui $at,0x40a0
.L0f07db1c:
/* f07db1c: 44817000 */ mtc1 $at,$f14
/* f07db20: 00000000 */ nop
.L0f07db24:
/* f07db24: 46127182 */ mul.s $f6,$f14,$f18
/* f07db28: 50400004 */ beqzl $v0,.L0f07db3c
/* f07db2c: 3c0140a0 */ lui $at,0x40a0
/* f07db30: 10000004 */ b .L0f07db44
/* f07db34: 46008306 */ mov.s $f12,$f16
/* f07db38: 3c0140a0 */ lui $at,0x40a0
.L0f07db3c:
/* f07db3c: 44816000 */ mtc1 $at,$f12
/* f07db40: 00000000 */ nop
.L0f07db44:
/* f07db44: 46126002 */ mul.s $f0,$f12,$f18
/* f07db48: 50400004 */ beqzl $v0,.L0f07db5c
/* f07db4c: 3c0140a0 */ lui $at,0x40a0
/* f07db50: 10000004 */ b .L0f07db64
/* f07db54: 46008086 */ mov.s $f2,$f16
/* f07db58: 3c0140a0 */ lui $at,0x40a0
.L0f07db5c:
/* f07db5c: 44811000 */ mtc1 $at,$f2
/* f07db60: 00000000 */ nop
.L0f07db64:
/* f07db64: 3c017f1b */ lui $at,%hi(var7f1aa6d0)
/* f07db68: c424a6d0 */ lwc1 $f4,%lo(var7f1aa6d0)($at)
/* f07db6c: 46000200 */ add.s $f8,$f0,$f0
/* f07db70: 44073000 */ mfc1 $a3,$f6
/* f07db74: 46041282 */ mul.s $f10,$f2,$f4
/* f07db78: 27a4018c */ addiu $a0,$sp,0x18c
/* f07db7c: e7a80010 */ swc1 $f8,0x10($sp)
/* f07db80: 8fa501fc */ lw $a1,0x1fc($sp)
/* f07db84: 27a60180 */ addiu $a2,$sp,0x180
/* f07db88: 0fc1b6c0 */ jal applyRotation
/* f07db8c: e7aa0014 */ swc1 $f10,0x14($sp)
/* f07db90: c7a6018c */ lwc1 $f6,0x18c($sp)
/* f07db94: c7a801fc */ lwc1 $f8,0x1fc($sp)
/* f07db98: 3c014170 */ lui $at,0x4170
/* f07db9c: 44818000 */ mtc1 $at,$f16
/* f07dba0: 46083032 */ c.eq.s $f6,$f8
/* f07dba4: 3c017f1b */ lui $at,%hi(var7f1aa6d4)
/* f07dba8: c432a6d4 */ lwc1 $f18,%lo(var7f1aa6d4)($at)
/* f07dbac: 45020022 */ bc1fl .L0f07dc38
/* f07dbb0: 8e090008 */ lw $t1,0x8($s0)
/* f07dbb4: 8faa01f8 */ lw $t2,0x1f8($sp)
/* f07dbb8: 3c0140a0 */ lui $at,0x40a0
/* f07dbbc: 8fa801f8 */ lw $t0,0x1f8($sp)
/* f07dbc0: 51400004 */ beqzl $t2,.L0f07dbd4
/* f07dbc4: 44811000 */ mtc1 $at,$f2
/* f07dbc8: 10000003 */ b .L0f07dbd8
/* f07dbcc: 46008086 */ mov.s $f2,$f16
/* f07dbd0: 44811000 */ mtc1 $at,$f2
.L0f07dbd4:
/* f07dbd4: 00000000 */ nop
.L0f07dbd8:
/* f07dbd8: 46121002 */ mul.s $f0,$f2,$f18
/* f07dbdc: c7ae0180 */ lwc1 $f14,0x180($sp)
/* f07dbe0: 46000100 */ add.s $f4,$f0,$f0
/* f07dbe4: 4604703e */ c.le.s $f14,$f4
/* f07dbe8: 00000000 */ nop
/* f07dbec: 45020012 */ bc1fl .L0f07dc38
/* f07dbf0: 8e090008 */ lw $t1,0x8($s0)
/* f07dbf4: 11000003 */ beqz $t0,.L0f07dc04
/* f07dbf8: 3c0140a0 */ lui $at,0x40a0
/* f07dbfc: 10000003 */ b .L0f07dc0c
/* f07dc00: 46008306 */ mov.s $f12,$f16
.L0f07dc04:
/* f07dc04: 44816000 */ mtc1 $at,$f12
/* f07dc08: 00000000 */ nop
.L0f07dc0c:
/* f07dc0c: 46126002 */ mul.s $f0,$f12,$f18
/* f07dc10: 46000007 */ neg.s $f0,$f0
/* f07dc14: 46000280 */ add.s $f10,$f0,$f0
/* f07dc18: 460e503e */ c.le.s $f10,$f14
/* f07dc1c: 00000000 */ nop
/* f07dc20: 45020005 */ bc1fl .L0f07dc38
/* f07dc24: 8e090008 */ lw $t1,0x8($s0)
/* f07dc28: 44807000 */ mtc1 $zero,$f14
/* f07dc2c: 00000000 */ nop
/* f07dc30: e7ae0180 */ swc1 $f14,0x180($sp)
/* f07dc34: 8e090008 */ lw $t1,0x8($s0)
.L0f07dc38:
/* f07dc38: 44800000 */ mtc1 $zero,$f0
/* f07dc3c: 00095800 */ sll $t3,$t1,0x0
/* f07dc40: 05630004 */ bgezl $t3,.L0f07dc54
/* f07dc44: c7ae0184 */ lwc1 $f14,0x184($sp)
/* f07dc48: 1000000d */ b .L0f07dc80
/* f07dc4c: e7a00188 */ swc1 $f0,0x188($sp)
/* f07dc50: c7ae0184 */ lwc1 $f14,0x184($sp)
.L0f07dc54:
/* f07dc54: 3c0142f0 */ lui $at,0x42f0
/* f07dc58: 44814000 */ mtc1 $at,$f8
/* f07dc5c: 46007187 */ neg.s $f6,$f14
/* f07dc60: c7aa0188 */ lwc1 $f10,0x188($sp)
/* f07dc64: 46083102 */ mul.s $f4,$f6,$f8
/* f07dc68: 3c017f1b */ lui $at,%hi(var7f1aa6d8)
/* f07dc6c: c428a6d8 */ lwc1 $f8,%lo(var7f1aa6d8)($at)
/* f07dc70: 460a2181 */ sub.s $f6,$f4,$f10
/* f07dc74: 46083102 */ mul.s $f4,$f6,$f8
/* f07dc78: 46045180 */ add.s $f6,$f10,$f4
/* f07dc7c: e7a60188 */ swc1 $f6,0x188($sp)
.L0f07dc80:
/* f07dc80: 8fac01f8 */ lw $t4,0x1f8($sp)
/* f07dc84: 11800006 */ beqz $t4,.L0f07dca0
/* f07dc88: 3c017f1b */ lui $at,%hi(var7f1aa6dc)
/* f07dc8c: c428a6dc */ lwc1 $f8,%lo(var7f1aa6dc)($at)
/* f07dc90: c7aa018c */ lwc1 $f10,0x18c($sp)
/* f07dc94: 460a4101 */ sub.s $f4,$f8,$f10
/* f07dc98: 10000002 */ b .L0f07dca4
/* f07dc9c: e7a4012c */ swc1 $f4,0x12c($sp)
.L0f07dca0:
/* f07dca0: e7a0012c */ swc1 $f0,0x12c($sp)
.L0f07dca4:
/* f07dca4: c7a80188 */ lwc1 $f8,0x188($sp)
/* f07dca8: c7a60190 */ lwc1 $f6,0x190($sp)
/* f07dcac: e7a00134 */ swc1 $f0,0x134($sp)
/* f07dcb0: 4608003e */ c.le.s $f0,$f8
/* f07dcb4: e7a60130 */ swc1 $f6,0x130($sp)
/* f07dcb8: 45000006 */ bc1f .L0f07dcd4
/* f07dcbc: 00000000 */ nop
/* f07dcc0: 46004306 */ mov.s $f12,$f8
/* f07dcc4: 0c005900 */ jal mtx4LoadZRotation
/* f07dcc8: 27a5006c */ addiu $a1,$sp,0x6c
/* f07dccc: 10000008 */ b .L0f07dcf0
/* f07dcd0: 27a4012c */ addiu $a0,$sp,0x12c
.L0f07dcd4:
/* f07dcd4: 3c017f1b */ lui $at,%hi(var7f1aa6e0)
/* f07dcd8: c424a6e0 */ lwc1 $f4,%lo(var7f1aa6e0)($at)
/* f07dcdc: c7aa0188 */ lwc1 $f10,0x188($sp)
/* f07dce0: 27a5006c */ addiu $a1,$sp,0x6c
/* f07dce4: 0c005900 */ jal mtx4LoadZRotation
/* f07dce8: 46045300 */ add.s $f12,$f10,$f4
/* f07dcec: 27a4012c */ addiu $a0,$sp,0x12c
.L0f07dcf0:
/* f07dcf0: 0c005923 */ jal mtx4LoadRotation
/* f07dcf4: 27a500ac */ addiu $a1,$sp,0xac
/* f07dcf8: 8e0d0018 */ lw $t5,0x18($s0)
/* f07dcfc: 27a500ac */ addiu $a1,$sp,0xac
/* f07dd00: 0c0057c1 */ jal mtx00015f04
/* f07dd04: c5ac0014 */ lwc1 $f12,0x14($t5)
/* f07dd08: 27a400ac */ addiu $a0,$sp,0xac
/* f07dd0c: 27a5006c */ addiu $a1,$sp,0x6c
/* f07dd10: 0c005680 */ jal mtx4MultMtx4
/* f07dd14: 27a600ec */ addiu $a2,$sp,0xec
/* f07dd18: 27a400ec */ addiu $a0,$sp,0xec
/* f07dd1c: 0c005768 */ jal mtx4ToMtx3
/* f07dd20: 27a5015c */ addiu $a1,$sp,0x15c
/* f07dd24: 27a4015c */ addiu $a0,$sp,0x15c
/* f07dd28: 0c005736 */ jal mtx3Copy
/* f07dd2c: 2605001c */ addiu $a1,$s0,0x1c
/* f07dd30: 0c0068f4 */ jal cosf
/* f07dd34: c7ac018c */ lwc1 $f12,0x18c($sp)
/* f07dd38: e7a00138 */ swc1 $f0,0x138($sp)
/* f07dd3c: 0c0068f7 */ jal sinf
/* f07dd40: c7ac0190 */ lwc1 $f12,0x190($sp)
/* f07dd44: c7a60138 */ lwc1 $f6,0x138($sp)
/* f07dd48: 8fae01f8 */ lw $t6,0x1f8($sp)
/* f07dd4c: 46060202 */ mul.s $f8,$f0,$f6
/* f07dd50: 11c00005 */ beqz $t6,.L0f07dd68
/* f07dd54: e7a80194 */ swc1 $f8,0x194($sp)
/* f07dd58: 0c0068f7 */ jal sinf
/* f07dd5c: c7ac01fc */ lwc1 $f12,0x1fc($sp)
/* f07dd60: 10000004 */ b .L0f07dd74
/* f07dd64: e7a00198 */ swc1 $f0,0x198($sp)
.L0f07dd68:
/* f07dd68: 0c0068f7 */ jal sinf
/* f07dd6c: c7ac018c */ lwc1 $f12,0x18c($sp)
/* f07dd70: e7a00198 */ swc1 $f0,0x198($sp)
.L0f07dd74:
/* f07dd74: 0c0068f4 */ jal cosf
/* f07dd78: c7ac0190 */ lwc1 $f12,0x190($sp)
/* f07dd7c: c7aa0138 */ lwc1 $f10,0x138($sp)
/* f07dd80: 3c01800a */ lui $at,%hi(g_Vars+0x4c)
/* f07dd84: c422a00c */ lwc1 $f2,%lo(g_Vars+0x4c)($at)
/* f07dd88: 460a0102 */ mul.s $f4,$f0,$f10
/* f07dd8c: c7a60194 */ lwc1 $f6,0x194($sp)
/* f07dd90: 8faf0278 */ lw $t7,0x278($sp)
/* f07dd94: 8fa40058 */ lw $a0,0x58($sp)
/* f07dd98: 8fa50054 */ lw $a1,0x54($sp)
/* f07dd9c: 27a60150 */ addiu $a2,$sp,0x150
/* f07dda0: 27a70140 */ addiu $a3,$sp,0x140
/* f07dda4: e7a4019c */ swc1 $f4,0x19c($sp)
/* f07dda8: c6080064 */ lwc1 $f8,0x64($s0)
/* f07ddac: 46024282 */ mul.s $f10,$f8,$f2
/* f07ddb0: c5e80008 */ lwc1 $f8,0x8($t7)
/* f07ddb4: 460a3102 */ mul.s $f4,$f6,$f10
/* f07ddb8: c7aa0198 */ lwc1 $f10,0x198($sp)
/* f07ddbc: 46082180 */ add.s $f6,$f4,$f8
/* f07ddc0: e7a60150 */ swc1 $f6,0x150($sp)
/* f07ddc4: c6040064 */ lwc1 $f4,0x64($s0)
/* f07ddc8: 46022202 */ mul.s $f8,$f4,$f2
/* f07ddcc: c5e4000c */ lwc1 $f4,0xc($t7)
/* f07ddd0: 46085182 */ mul.s $f6,$f10,$f8
/* f07ddd4: c7a8019c */ lwc1 $f8,0x19c($sp)
/* f07ddd8: 46043280 */ add.s $f10,$f6,$f4
/* f07dddc: e7aa0154 */ swc1 $f10,0x154($sp)
/* f07dde0: c6060064 */ lwc1 $f6,0x64($s0)
/* f07dde4: 46023102 */ mul.s $f4,$f6,$f2
/* f07dde8: c5e60010 */ lwc1 $f6,0x10($t7)
/* f07ddec: 46044282 */ mul.s $f10,$f8,$f4
/* f07ddf0: 46065200 */ add.s $f8,$f10,$f6
/* f07ddf4: 0fc1979d */ jal func0f065e74
/* f07ddf8: e7a80158 */ swc1 $f8,0x158($sp)
/* f07ddfc: 8fb801f8 */ lw $t8,0x1f8($sp)
/* f07de00: 27a40150 */ addiu $a0,$sp,0x150
/* f07de04: 3c0540a0 */ lui $a1,0x40a0
/* f07de08: 13000017 */ beqz $t8,.L0f07de68
/* f07de0c: 27a60140 */ addiu $a2,$sp,0x140
/* f07de10: 00003825 */ or $a3,$zero,$zero
/* f07de14: 0c00a8cc */ jal cdFindGroundYSimple
/* f07de18: afa00010 */ sw $zero,0x10($sp)
/* f07de1c: 3c01420c */ lui $at,0x420c
/* f07de20: 44812000 */ mtc1 $at,$f4
/* f07de24: 3c017f1b */ lui $at,%hi(var7f1aa6e4)
/* f07de28: c42aa6e4 */ lwc1 $f10,%lo(var7f1aa6e4)($at)
/* f07de2c: 46040080 */ add.s $f2,$f0,$f4
/* f07de30: 3c01800a */ lui $at,%hi(g_Vars+0x4c)
/* f07de34: 460a103c */ c.lt.s $f2,$f10
/* f07de38: e7a20154 */ swc1 $f2,0x154($sp)
/* f07de3c: 4502000b */ bc1fl .L0f07de6c
/* f07de40: c7a40150 */ lwc1 $f4,0x150($sp)
/* f07de44: c6060064 */ lwc1 $f6,0x64($s0)
/* f07de48: c428a00c */ lwc1 $f8,%lo(g_Vars+0x4c)($at)
/* f07de4c: c7aa0198 */ lwc1 $f10,0x198($sp)
/* f07de50: 8fb90278 */ lw $t9,0x278($sp)
/* f07de54: 46083102 */ mul.s $f4,$f6,$f8
/* f07de58: c728000c */ lwc1 $f8,0xc($t9)
/* f07de5c: 46045182 */ mul.s $f6,$f10,$f4
/* f07de60: 46083280 */ add.s $f10,$f6,$f8
/* f07de64: e7aa0154 */ swc1 $f10,0x154($sp)
.L0f07de68:
/* f07de68: c7a40150 */ lwc1 $f4,0x150($sp)
.L0f07de6c:
/* f07de6c: 8fa40278 */ lw $a0,0x278($sp)
/* f07de70: e4840008 */ swc1 $f4,0x8($a0)
/* f07de74: c7a60154 */ lwc1 $f6,0x154($sp)
/* f07de78: e486000c */ swc1 $f6,0xc($a0)
/* f07de7c: c7a80158 */ lwc1 $f8,0x158($sp)
/* f07de80: 0fc19711 */ jal propDeregisterRooms
/* f07de84: e4880010 */ swc1 $f8,0x10($a0)
/* f07de88: 27a40140 */ addiu $a0,$sp,0x140
/* f07de8c: 0fc195e9 */ jal roomsCopy
/* f07de90: 8fa50054 */ lw $a1,0x54($sp)
/* f07de94: c7aa0190 */ lwc1 $f10,0x190($sp)
/* f07de98: 8e020088 */ lw $v0,0x88($s0)
/* f07de9c: e60a007c */ swc1 $f10,0x7c($s0)
/* f07dea0: c7a4018c */ lwc1 $f4,0x18c($sp)
/* f07dea4: e6040080 */ swc1 $f4,0x80($s0)
/* f07dea8: c7a60188 */ lwc1 $f6,0x188($sp)
/* f07deac: e6060084 */ swc1 $f6,0x84($s0)
/* f07deb0: c7a80184 */ lwc1 $f8,0x184($sp)
/* f07deb4: e6080070 */ swc1 $f8,0x70($s0)
/* f07deb8: c7aa0180 */ lwc1 $f10,0x180($sp)
/* f07debc: 10400024 */ beqz $v0,.L0f07df50
/* f07dec0: e60a0074 */ swc1 $f10,0x74($s0)
/* f07dec4: 8e09008c */ lw $t1,0x8c($s0)
/* f07dec8: 8c480000 */ lw $t0,0x0($v0)
/* f07decc: c7a601f4 */ lwc1 $f6,0x1f4($sp)
/* f07ded0: 00095880 */ sll $t3,$t1,0x2
/* f07ded4: 010b6021 */ addu $t4,$t0,$t3
/* f07ded8: 8d8d0004 */ lw $t5,0x4($t4)
/* f07dedc: c7a401f4 */ lwc1 $f4,0x1f4($sp)
/* f07dee0: 05a20010 */ bltzl $t5,.L0f07df24
/* f07dee4: c60a0064 */ lwc1 $f10,0x64($s0)
/* f07dee8: c6040064 */ lwc1 $f4,0x64($s0)
/* f07deec: 8fa40058 */ lw $a0,0x58($sp)
/* f07def0: 27a50150 */ addiu $a1,$sp,0x150
/* f07def4: 46062202 */ mul.s $f8,$f4,$f6
/* f07def8: 27a60214 */ addiu $a2,$sp,0x214
/* f07defc: 44074000 */ mfc1 $a3,$f8
/* f07df00: 0fc111b8 */ jal posIsArrivingLaterallyAtPos
/* f07df04: 00000000 */ nop
/* f07df08: 50400012 */ beqzl $v0,.L0f07df54
/* f07df0c: 02002025 */ or $a0,$s0,$zero
/* f07df10: 0fc1c9dd */ jal hovercarIncrementStep
/* f07df14: 02002025 */ or $a0,$s0,$zero
/* f07df18: 1000000e */ b .L0f07df54
/* f07df1c: 02002025 */ or $a0,$s0,$zero
/* f07df20: c60a0064 */ lwc1 $f10,0x64($s0)
.L0f07df24:
/* f07df24: 8fa40058 */ lw $a0,0x58($sp)
/* f07df28: 27a50150 */ addiu $a1,$sp,0x150
/* f07df2c: 46045182 */ mul.s $f6,$f10,$f4
/* f07df30: 27a60214 */ addiu $a2,$sp,0x214
/* f07df34: 44073000 */ mfc1 $a3,$f6
/* f07df38: 0fc111b8 */ jal posIsArrivingLaterallyAtPos
/* f07df3c: 00000000 */ nop
/* f07df40: 50400004 */ beqzl $v0,.L0f07df54
/* f07df44: 02002025 */ or $a0,$s0,$zero
/* f07df48: 0fc1c9dd */ jal hovercarIncrementStep
/* f07df4c: 02002025 */ or $a0,$s0,$zero
.L0f07df50:
/* f07df50: 02002025 */ or $a0,$s0,$zero
.L0f07df54:
/* f07df54: 00002825 */ or $a1,$zero,$zero
/* f07df58: 0fc1a71c */ jal func0f069c70
/* f07df5c: 24060001 */ addiu $a2,$zero,0x1
.L0f07df60:
/* f07df60: 8fbf004c */ lw $ra,0x4c($sp)
.L0f07df64:
/* f07df64: 8fb00048 */ lw $s0,0x48($sp)
/* f07df68: 27bd0278 */ addiu $sp,$sp,0x278
/* f07df6c: 03e00008 */ jr $ra
/* f07df70: 00000000 */ nop
);
#elif VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel hovercarTick
.late_rodata
glabel var7f1aa6ac
.word 0x471c4000
glabel var7f1aa6b0
.word 0x47148900
glabel var7f1aa6b4
.word 0x3d2aaaab
glabel var7f1aa6b8
.word 0x3dcccccd
glabel var7f1aa6bc
.word 0x3d2aaaab
glabel var7f1aa6c0
.word 0x3e555555
glabel var7f1aa6c4
.word 0x3964ba35
glabel var7f1aa6c8
.word 0x3c566e92
glabel var7f1aa6cc
.word 0x3964ba35
glabel var7f1aa6d0
.word 0x3c566e92
glabel var7f1aa6d4
.word 0x3964ba35
glabel var7f1aa6d8
.word 0x3dcccccd
glabel var7f1aa6dc
.word 0x40c907a9
glabel var7f1aa6e0
.word 0x40c907a9
glabel var7f1aa6e4
.word 0xc7c35000
.text
/* f07d1e4: 27bdfd88 */ addiu $sp,$sp,-632
/* f07d1e8: afbf004c */ sw $ra,0x4c($sp)
/* f07d1ec: afb00048 */ sw $s0,0x48($sp)
/* f07d1f0: afa40278 */ sw $a0,0x278($sp)
/* f07d1f4: 8c900004 */ lw $s0,0x4($a0)
/* f07d1f8: 3c018000 */ lui $at,0x8000
/* f07d1fc: c604007c */ lwc1 $f4,0x7c($s0)
/* f07d200: e7a40200 */ swc1 $f4,0x200($sp)
/* f07d204: c6060080 */ lwc1 $f6,0x80($s0)
/* f07d208: e7a601fc */ swc1 $f6,0x1fc($sp)
/* f07d20c: 8e020008 */ lw $v0,0x8($s0)
/* f07d210: 00417824 */ and $t7,$v0,$at
/* f07d214: 11e00005 */ beqz $t7,.L0f07d22c
/* f07d218: 01e01025 */ or $v0,$t7,$zero
/* f07d21c: 3c0140a0 */ lui $at,0x40a0
/* f07d220: 44814000 */ mtc1 $at,$f8
/* f07d224: 10000005 */ b .L0f07d23c
/* f07d228: e7a801f4 */ swc1 $f8,0x1f4($sp)
.L0f07d22c:
/* f07d22c: 3c014120 */ lui $at,0x4120
/* f07d230: 44815000 */ mtc1 $at,$f10
/* f07d234: 00000000 */ nop
/* f07d238: e7aa01f4 */ swc1 $f10,0x1f4($sp)
.L0f07d23c:
/* f07d23c: 10400038 */ beqz $v0,.L0f07d320
/* f07d240: afa001f0 */ sw $zero,0x1f0($sp)
/* f07d244: 86180094 */ lh $t8,0x94($s0)
/* f07d248: 07030036 */ bgezl $t8,.L0f07d324
/* f07d24c: 860f0092 */ lh $t7,0x92($s0)
/* f07d250: 0fc1a2aa */ jal modelFindBboxRodata
/* f07d254: 8e040018 */ lw $a0,0x18($s0)
/* f07d258: 0fc199ef */ jal modelBboxGetYMin
/* f07d25c: 00402025 */ or $a0,$v0,$zero
/* f07d260: 8fa40278 */ lw $a0,0x278($sp)
/* f07d264: 24050001 */ addiu $a1,$zero,0x1
/* f07d268: 3406ffff */ dli $a2,0xffff
/* f07d26c: 84990028 */ lh $t9,0x28($a0)
/* f07d270: a7b901d6 */ sh $t9,0x1d6($sp)
/* f07d274: c6040028 */ lwc1 $f4,0x28($s0)
/* f07d278: e7a401d8 */ swc1 $f4,0x1d8($sp)
/* f07d27c: c606002c */ lwc1 $f6,0x2c($s0)
/* f07d280: e7a601dc */ swc1 $f6,0x1dc($sp)
/* f07d284: c6080030 */ lwc1 $f8,0x30($s0)
/* f07d288: e7a801e0 */ swc1 $f8,0x1e0($sp)
/* f07d28c: c60a0028 */ lwc1 $f10,0x28($s0)
/* f07d290: c4860008 */ lwc1 $f6,0x8($a0)
/* f07d294: 46005102 */ mul.s $f4,$f10,$f0
/* f07d298: 46062200 */ add.s $f8,$f4,$f6
/* f07d29c: e7a801e4 */ swc1 $f8,0x1e4($sp)
/* f07d2a0: c60a002c */ lwc1 $f10,0x2c($s0)
/* f07d2a4: c486000c */ lwc1 $f6,0xc($a0)
/* f07d2a8: 46005102 */ mul.s $f4,$f10,$f0
/* f07d2ac: 46062200 */ add.s $f8,$f4,$f6
/* f07d2b0: e7a801e8 */ swc1 $f8,0x1e8($sp)
/* f07d2b4: c60a0030 */ lwc1 $f10,0x30($s0)
/* f07d2b8: c4860010 */ lwc1 $f6,0x10($a0)
/* f07d2bc: 46005102 */ mul.s $f4,$f10,$f0
/* f07d2c0: 46062200 */ add.s $f8,$f4,$f6
/* f07d2c4: 0fc249af */ jal func0f0926bc
/* f07d2c8: e7a801ec */ swc1 $f8,0x1ec($sp)
/* f07d2cc: 8fa20278 */ lw $v0,0x278($sp)
/* f07d2d0: 3c08800a */ lui $t0,%hi(g_Vars+0x28c)
/* f07d2d4: 8d08a24c */ lw $t0,%lo(g_Vars+0x28c)($t0)
/* f07d2d8: 87ab01d6 */ lh $t3,0x1d6($sp)
/* f07d2dc: 24090001 */ addiu $t1,$zero,0x1
/* f07d2e0: 27aa01e4 */ addiu $t2,$sp,0x1e4
/* f07d2e4: 27ac01d8 */ addiu $t4,$sp,0x1d8
/* f07d2e8: afac0020 */ sw $t4,0x20($sp)
/* f07d2ec: afaa0018 */ sw $t2,0x18($sp)
/* f07d2f0: afa90014 */ sw $t1,0x14($sp)
/* f07d2f4: 00002025 */ or $a0,$zero,$zero
/* f07d2f8: 24070007 */ addiu $a3,$zero,0x7
/* f07d2fc: 24450008 */ addiu $a1,$v0,0x8
/* f07d300: 24460028 */ addiu $a2,$v0,0x28
/* f07d304: afa80010 */ sw $t0,0x10($sp)
/* f07d308: 0fc4a7d5 */ jal explosionCreate
/* f07d30c: afab001c */ sw $t3,0x1c($sp)
/* f07d310: 8e0d0040 */ lw $t5,0x40($s0)
/* f07d314: 35ae0004 */ ori $t6,$t5,0x4
/* f07d318: 10000311 */ b .L0f07df60
/* f07d31c: ae0e0040 */ sw $t6,0x40($s0)
.L0f07d320:
/* f07d320: 860f0092 */ lh $t7,0x92($s0)
.L0f07d324:
/* f07d324: 02002025 */ or $a0,$s0,$zero
/* f07d328: 24050001 */ addiu $a1,$zero,0x1
/* f07d32c: 11e00063 */ beqz $t7,.L0f07d4bc
/* f07d330: 00000000 */ nop
/* f07d334: 1040002c */ beqz $v0,.L0f07d3e8
/* f07d338: 3c02800a */ lui $v0,%hi(g_Vars)
/* f07d33c: 24429fc0 */ addiu $v0,$v0,%lo(g_Vars)
/* f07d340: 8c590038 */ lw $t9,0x38($v0)
/* f07d344: 86180094 */ lh $t8,0x94($s0)
/* f07d348: 86090096 */ lh $t1,0x96($s0)
/* f07d34c: 3c01bf80 */ lui $at,0xbf80
/* f07d350: 03194023 */ subu $t0,$t8,$t9
/* f07d354: a6080094 */ sh $t0,0x94($s0)
/* f07d358: 8c4a0038 */ lw $t2,0x38($v0)
/* f07d35c: 240d0032 */ addiu $t5,$zero,0x32
/* f07d360: 00002025 */ or $a0,$zero,$zero
/* f07d364: 012a5823 */ subu $t3,$t1,$t2
/* f07d368: a60b0096 */ sh $t3,0x96($s0)
/* f07d36c: 860c0096 */ lh $t4,0x96($s0)
/* f07d370: 24060064 */ addiu $a2,$zero,0x64
/* f07d374: 2407ffff */ addiu $a3,$zero,-1
/* f07d378: 058102f9 */ bgez $t4,.L0f07df60
/* f07d37c: 240effff */ addiu $t6,$zero,-1
/* f07d380: a60d0096 */ sh $t5,0x96($s0)
/* f07d384: 44810000 */ mtc1 $at,$f0
/* f07d388: 240f0400 */ addiu $t7,$zero,0x400
/* f07d38c: 2418ffff */ addiu $t8,$zero,-1
/* f07d390: afb8002c */ sw $t8,0x2c($sp)
/* f07d394: afaf0014 */ sw $t7,0x14($sp)
/* f07d398: afa00028 */ sw $zero,0x28($sp)
/* f07d39c: afa00020 */ sw $zero,0x20($sp)
/* f07d3a0: afa0001c */ sw $zero,0x1c($sp)
/* f07d3a4: afa00018 */ sw $zero,0x18($sp)
/* f07d3a8: afae0010 */ sw $t6,0x10($sp)
/* f07d3ac: 8fa50278 */ lw $a1,0x278($sp)
/* f07d3b0: e7a00024 */ swc1 $f0,0x24($sp)
/* f07d3b4: e7a00030 */ swc1 $f0,0x30($sp)
/* f07d3b8: e7a00034 */ swc1 $f0,0x34($sp)
/* f07d3bc: 0fc24e7e */ jal propsnd0f0939f8
/* f07d3c0: e7a00038 */ swc1 $f0,0x38($sp)
/* f07d3c4: 8fa50278 */ lw $a1,0x278($sp)
/* f07d3c8: 00003825 */ or $a3,$zero,$zero
/* f07d3cc: 84a40028 */ lh $a0,0x28($a1)
/* f07d3d0: afa00014 */ sw $zero,0x14($sp)
/* f07d3d4: afa00010 */ sw $zero,0x10($sp)
/* f07d3d8: 0fc4be7c */ jal sparksCreate
/* f07d3dc: 24a60008 */ addiu $a2,$a1,0x8
/* f07d3e0: 100002e0 */ b .L0f07df64
/* f07d3e4: 8fbf004c */ lw $ra,0x4c($sp)
.L0f07d3e8:
/* f07d3e8: 44805000 */ mtc1 $zero,$f10
/* f07d3ec: c604006c */ lwc1 $f4,0x6c($s0)
/* f07d3f0: 3c0140c0 */ lui $at,0x40c0
/* f07d3f4: 46045032 */ c.eq.s $f10,$f4
/* f07d3f8: 00000000 */ nop
/* f07d3fc: 450202d9 */ bc1fl .L0f07df64
/* f07d400: 8fbf004c */ lw $ra,0x4c($sp)
/* f07d404: c6060064 */ lwc1 $f6,0x64($s0)
/* f07d408: 44814000 */ mtc1 $at,$f8
/* f07d40c: 3c013f80 */ lui $at,0x3f80
/* f07d410: 46083280 */ add.s $f10,$f6,$f8
/* f07d414: e60a0064 */ swc1 $f10,0x64($s0)
/* f07d418: 8fb90278 */ lw $t9,0x278($sp)
/* f07d41c: c7240008 */ lwc1 $f4,0x8($t9)
/* f07d420: e7a401c0 */ swc1 $f4,0x1c0($sp)
/* f07d424: c6080064 */ lwc1 $f8,0x64($s0)
/* f07d428: c726000c */ lwc1 $f6,0xc($t9)
/* f07d42c: 46083281 */ sub.s $f10,$f6,$f8
/* f07d430: e7aa01c4 */ swc1 $f10,0x1c4($sp)
/* f07d434: c7240010 */ lwc1 $f4,0x10($t9)
/* f07d438: e7a401c8 */ swc1 $f4,0x1c8($sp)
/* f07d43c: c6020068 */ lwc1 $f2,0x68($s0)
/* f07d440: 4602503c */ c.lt.s $f10,$f2
/* f07d444: 00000000 */ nop
/* f07d448: 45020005 */ bc1fl .L0f07d460
/* f07d44c: 8fa80278 */ lw $t0,0x278($sp)
/* f07d450: 44813000 */ mtc1 $at,$f6
/* f07d454: e7a201c4 */ swc1 $f2,0x1c4($sp)
/* f07d458: e606006c */ swc1 $f6,0x6c($s0)
/* f07d45c: 8fa80278 */ lw $t0,0x278($sp)
.L0f07d460:
/* f07d460: 27a601c0 */ addiu $a2,$sp,0x1c0
/* f07d464: 27a701b0 */ addiu $a3,$sp,0x1b0
/* f07d468: 25050028 */ addiu $a1,$t0,0x28
/* f07d46c: afa50054 */ sw $a1,0x54($sp)
/* f07d470: 0fc1979d */ jal func0f065e74
/* f07d474: 25040008 */ addiu $a0,$t0,0x8
/* f07d478: 8fa40278 */ lw $a0,0x278($sp)
/* f07d47c: c7a801c0 */ lwc1 $f8,0x1c0($sp)
/* f07d480: e4880008 */ swc1 $f8,0x8($a0)
/* f07d484: c7a401c4 */ lwc1 $f4,0x1c4($sp)
/* f07d488: e484000c */ swc1 $f4,0xc($a0)
/* f07d48c: c7aa01c8 */ lwc1 $f10,0x1c8($sp)
/* f07d490: 0fc19711 */ jal propDeregisterRooms
/* f07d494: e48a0010 */ swc1 $f10,0x10($a0)
/* f07d498: 27a401b0 */ addiu $a0,$sp,0x1b0
/* f07d49c: 0fc195e9 */ jal roomsCopy
/* f07d4a0: 8fa50054 */ lw $a1,0x54($sp)
/* f07d4a4: 02002025 */ or $a0,$s0,$zero
/* f07d4a8: 00002825 */ or $a1,$zero,$zero
/* f07d4ac: 0fc1a71c */ jal func0f069c70
/* f07d4b0: 24060001 */ addiu $a2,$zero,0x1
/* f07d4b4: 100002ab */ b .L0f07df64
/* f07d4b8: 8fbf004c */ lw $ra,0x4c($sp)
.L0f07d4bc:
/* f07d4bc: 0fc135ad */ jal chraiExecute
/* f07d4c0: afa201f8 */ sw $v0,0x1f8($sp)
/* f07d4c4: afa00274 */ sw $zero,0x274($sp)
/* f07d4c8: 8e020088 */ lw $v0,0x88($s0)
/* f07d4cc: 24050042 */ addiu $a1,$zero,0x42
/* f07d4d0: 5040009f */ beqzl $v0,.L0f07d750
/* f07d4d4: 8e090008 */ lw $t1,0x8($s0)
/* f07d4d8: 8e0a008c */ lw $t2,0x8c($s0)
/* f07d4dc: 8c490000 */ lw $t1,0x0($v0)
/* f07d4e0: 27a60220 */ addiu $a2,$sp,0x220
/* f07d4e4: 000a5880 */ sll $t3,$t2,0x2
/* f07d4e8: 012b1821 */ addu $v1,$t1,$t3
/* f07d4ec: 0fc456ac */ jal padUnpack
/* f07d4f0: 8c640000 */ lw $a0,0x0($v1)
/* f07d4f4: 8fac01f8 */ lw $t4,0x1f8($sp)
/* f07d4f8: c7a60220 */ lwc1 $f6,0x220($sp)
/* f07d4fc: c7aa0224 */ lwc1 $f10,0x224($sp)
/* f07d500: 11800011 */ beqz $t4,.L0f07d548
/* f07d504: e7a60214 */ swc1 $f6,0x214($sp)
/* f07d508: 8fad0268 */ lw $t5,0x268($sp)
/* f07d50c: 240effff */ addiu $t6,$zero,-1
/* f07d510: a7ae0212 */ sh $t6,0x212($sp)
/* f07d514: 27a40220 */ addiu $a0,$sp,0x220
/* f07d518: 3c0540a0 */ lui $a1,0x40a0
/* f07d51c: 27a60210 */ addiu $a2,$sp,0x210
/* f07d520: 00003825 */ or $a3,$zero,$zero
/* f07d524: afa00010 */ sw $zero,0x10($sp)
/* f07d528: 0c00a8cc */ jal cdFindGroundYSimple
/* f07d52c: a7ad0210 */ sh $t5,0x210($sp)
/* f07d530: 3c01420c */ lui $at,0x420c
/* f07d534: 44814000 */ mtc1 $at,$f8
/* f07d538: 00000000 */ nop
/* f07d53c: 46080100 */ add.s $f4,$f0,$f8
/* f07d540: 10000002 */ b .L0f07d54c
/* f07d544: e7a40218 */ swc1 $f4,0x218($sp)
.L0f07d548:
/* f07d548: e7aa0218 */ swc1 $f10,0x218($sp)
.L0f07d54c:
/* f07d54c: c7a60228 */ lwc1 $f6,0x228($sp)
/* f07d550: 8fa40278 */ lw $a0,0x278($sp)
/* f07d554: 27a60214 */ addiu $a2,$sp,0x214
/* f07d558: e7a6021c */ swc1 $f6,0x21c($sp)
/* f07d55c: 8e0f0008 */ lw $t7,0x8($s0)
/* f07d560: 24840008 */ addiu $a0,$a0,0x8
/* f07d564: 00802825 */ or $a1,$a0,$zero
/* f07d568: 000fc080 */ sll $t8,$t7,0x2
/* f07d56c: 07030011 */ bgezl $t8,.L0f07d5b4
/* f07d570: 8fa20278 */ lw $v0,0x278($sp)
/* f07d574: 0fc111b8 */ jal posIsArrivingLaterallyAtPos
/* f07d578: 8fa701f4 */ lw $a3,0x1f4($sp)
/* f07d57c: 5040000d */ beqzl $v0,.L0f07d5b4
/* f07d580: 8fa20278 */ lw $v0,0x278($sp)
/* f07d584: 0fc1c9dd */ jal hovercarIncrementStep
/* f07d588: 02002025 */ or $a0,$s0,$zero
/* f07d58c: 8e190088 */ lw $t9,0x88($s0)
/* f07d590: 8e0a008c */ lw $t2,0x8c($s0)
/* f07d594: 24050002 */ addiu $a1,$zero,0x2
/* f07d598: 8f280000 */ lw $t0,0x0($t9)
/* f07d59c: 000a4880 */ sll $t1,$t2,0x2
/* f07d5a0: 27a60220 */ addiu $a2,$sp,0x220
/* f07d5a4: 01091821 */ addu $v1,$t0,$t1
/* f07d5a8: 0fc456ac */ jal padUnpack
/* f07d5ac: 8c640000 */ lw $a0,0x0($v1)
/* f07d5b0: 8fa20278 */ lw $v0,0x278($sp)
.L0f07d5b4:
/* f07d5b4: c7a80214 */ lwc1 $f8,0x214($sp)
/* f07d5b8: c7aa021c */ lwc1 $f10,0x21c($sp)
/* f07d5bc: c4440008 */ lwc1 $f4,0x8($v0)
/* f07d5c0: c4460010 */ lwc1 $f6,0x10($v0)
/* f07d5c4: 46044301 */ sub.s $f12,$f8,$f4
/* f07d5c8: 0fc259d4 */ jal atan2f
/* f07d5cc: 46065381 */ sub.s $f14,$f10,$f6
/* f07d5d0: 8fa20278 */ lw $v0,0x278($sp)
/* f07d5d4: e7a00200 */ swc1 $f0,0x200($sp)
/* f07d5d8: c7a80214 */ lwc1 $f8,0x214($sp)
/* f07d5dc: c4440008 */ lwc1 $f4,0x8($v0)
/* f07d5e0: c7aa021c */ lwc1 $f10,0x21c($sp)
/* f07d5e4: c4460010 */ lwc1 $f6,0x10($v0)
/* f07d5e8: 46044081 */ sub.s $f2,$f8,$f4
/* f07d5ec: 46065381 */ sub.s $f14,$f10,$f6
/* f07d5f0: 46021202 */ mul.s $f8,$f2,$f2
/* f07d5f4: 00000000 */ nop
/* f07d5f8: 460e7102 */ mul.s $f4,$f14,$f14
/* f07d5fc: 0c012974 */ jal sqrtf
/* f07d600: 46044300 */ add.s $f12,$f8,$f4
/* f07d604: 8fab0278 */ lw $t3,0x278($sp)
/* f07d608: c7aa0218 */ lwc1 $f10,0x218($sp)
/* f07d60c: 46000386 */ mov.s $f14,$f0
/* f07d610: c566000c */ lwc1 $f6,0xc($t3)
/* f07d614: 0fc259d4 */ jal atan2f
/* f07d618: 46065301 */ sub.s $f12,$f10,$f6
/* f07d61c: e7a001fc */ swc1 $f0,0x1fc($sp)
/* f07d620: 8e0c0008 */ lw $t4,0x8($s0)
/* f07d624: 3c01dfff */ lui $at,0xdfff
/* f07d628: c7a80200 */ lwc1 $f8,0x200($sp)
/* f07d62c: 000c6880 */ sll $t5,$t4,0x2
/* f07d630: 05a1000c */ bgez $t5,.L0f07d664
/* f07d634: 3421ffff */ ori $at,$at,0xffff
/* f07d638: 8e0e0008 */ lw $t6,0x8($s0)
/* f07d63c: e608007c */ swc1 $f8,0x7c($s0)
/* f07d640: e6000080 */ swc1 $f0,0x80($s0)
/* f07d644: 01c17824 */ and $t7,$t6,$at
/* f07d648: ae0f0008 */ sw $t7,0x8($s0)
/* f07d64c: 8fb801f8 */ lw $t8,0x1f8($sp)
/* f07d650: 8fa30278 */ lw $v1,0x278($sp)
/* f07d654: c7a40218 */ lwc1 $f4,0x218($sp)
/* f07d658: 53000003 */ beqzl $t8,.L0f07d668
/* f07d65c: 8fb901f8 */ lw $t9,0x1f8($sp)
/* f07d660: e464000c */ swc1 $f4,0xc($v1)
.L0f07d664:
/* f07d664: 8fb901f8 */ lw $t9,0x1f8($sp)
.L0f07d668:
/* f07d668: 8fa30278 */ lw $v1,0x278($sp)
/* f07d66c: 27a60214 */ addiu $a2,$sp,0x214
/* f07d670: 13200034 */ beqz $t9,.L0f07d744
/* f07d674: 24640008 */ addiu $a0,$v1,0x8
/* f07d678: 44800000 */ mtc1 $zero,$f0
/* f07d67c: 24650028 */ addiu $a1,$v1,0x28
/* f07d680: 24075000 */ addiu $a3,$zero,0x5000
/* f07d684: afa00010 */ sw $zero,0x10($sp)
/* f07d688: e7a00014 */ swc1 $f0,0x14($sp)
/* f07d68c: 0c00b5f0 */ jal cd0002d7c0
/* f07d690: e7a00018 */ swc1 $f0,0x18($sp)
/* f07d694: 54400005 */ bnezl $v0,.L0f07d6ac
/* f07d698: 8fa301f0 */ lw $v1,0x1f0($sp)
/* f07d69c: 0c0093ac */ jal cdGetObstacle
/* f07d6a0: 00000000 */ nop
/* f07d6a4: afa201f0 */ sw $v0,0x1f0($sp)
/* f07d6a8: 8fa301f0 */ lw $v1,0x1f0($sp)
.L0f07d6ac:
/* f07d6ac: 10600025 */ beqz $v1,.L0f07d744
/* f07d6b0: 00000000 */ nop
/* f07d6b4: 8c6a0004 */ lw $t2,0x4($v1)
/* f07d6b8: 8fa60278 */ lw $a2,0x278($sp)
/* f07d6bc: 3c017f1b */ lui $at,%hi(var7f1aa6ac)
/* f07d6c0: afaa01a0 */ sw $t2,0x1a0($sp)
/* f07d6c4: c46a0008 */ lwc1 $f10,0x8($v1)
/* f07d6c8: c4c60008 */ lwc1 $f6,0x8($a2)
/* f07d6cc: c4680010 */ lwc1 $f8,0x10($v1)
/* f07d6d0: c4c40010 */ lwc1 $f4,0x10($a2)
/* f07d6d4: 46065001 */ sub.s $f0,$f10,$f6
/* f07d6d8: 01402825 */ or $a1,$t2,$zero
/* f07d6dc: 00c02025 */ or $a0,$a2,$zero
/* f07d6e0: 46044081 */ sub.s $f2,$f8,$f4
/* f07d6e4: 46000282 */ mul.s $f10,$f0,$f0
/* f07d6e8: c428a6ac */ lwc1 $f8,%lo(var7f1aa6ac)($at)
/* f07d6ec: 46021182 */ mul.s $f6,$f2,$f2
/* f07d6f0: 46065300 */ add.s $f12,$f10,$f6
/* f07d6f4: 4608603c */ c.lt.s $f12,$f8
/* f07d6f8: 00000000 */ nop
/* f07d6fc: 45000007 */ bc1f .L0f07d71c
/* f07d700: 00000000 */ nop
/* f07d704: 0fc24030 */ jal doorsChooseSwingDirection
/* f07d708: e7ac0058 */ swc1 $f12,0x58($sp)
/* f07d70c: 8fa401a0 */ lw $a0,0x1a0($sp)
/* f07d710: 0fc23922 */ jal doorsRequestMode
/* f07d714: 24050001 */ addiu $a1,$zero,0x1
/* f07d718: c7ac0058 */ lwc1 $f12,0x58($sp)
.L0f07d71c:
/* f07d71c: 3c017f1b */ lui $at,%hi(var7f1aa6b0)
/* f07d720: c424a6b0 */ lwc1 $f4,%lo(var7f1aa6b0)($at)
/* f07d724: 4604603c */ c.lt.s $f12,$f4
/* f07d728: 00000000 */ nop
/* f07d72c: 45000005 */ bc1f .L0f07d744
/* f07d730: 00000000 */ nop
/* f07d734: 0fc23959 */ jal doorIsOpen
/* f07d738: 8fa401a0 */ lw $a0,0x1a0($sp)
/* f07d73c: 2c480001 */ sltiu $t0,$v0,0x1
/* f07d740: afa80274 */ sw $t0,0x274($sp)
.L0f07d744:
/* f07d744: 1000001a */ b .L0f07d7b0
/* f07d748: 44807000 */ mtc1 $zero,$f14
/* f07d74c: 8e090008 */ lw $t1,0x8($s0)
.L0f07d750:
/* f07d750: 00095880 */ sll $t3,$t1,0x2
/* f07d754: 05630016 */ bgezl $t3,.L0f07d7b0
/* f07d758: 44807000 */ mtc1 $zero,$f14
/* f07d75c: c60c0034 */ lwc1 $f12,0x34($s0)
/* f07d760: 0fc259d4 */ jal atan2f
/* f07d764: c60e003c */ lwc1 $f14,0x3c($s0)
/* f07d768: c6020034 */ lwc1 $f2,0x34($s0)
/* f07d76c: c60e003c */ lwc1 $f14,0x3c($s0)
/* f07d770: e600007c */ swc1 $f0,0x7c($s0)
/* f07d774: 46021282 */ mul.s $f10,$f2,$f2
/* f07d778: 00000000 */ nop
/* f07d77c: 460e7182 */ mul.s $f6,$f14,$f14
/* f07d780: 0c012974 */ jal sqrtf
/* f07d784: 46065300 */ add.s $f12,$f10,$f6
/* f07d788: c60c0038 */ lwc1 $f12,0x38($s0)
/* f07d78c: 0fc259d4 */ jal atan2f
/* f07d790: 46000386 */ mov.s $f14,$f0
/* f07d794: 8e0c0008 */ lw $t4,0x8($s0)
/* f07d798: 3c01dfff */ lui $at,0xdfff
/* f07d79c: 3421ffff */ ori $at,$at,0xffff
/* f07d7a0: 01816824 */ and $t5,$t4,$at
/* f07d7a4: e6000080 */ swc1 $f0,0x80($s0)
/* f07d7a8: ae0d0008 */ sw $t5,0x8($s0)
/* f07d7ac: 44807000 */ mtc1 $zero,$f14
.L0f07d7b0:
/* f07d7b0: c60c006c */ lwc1 $f12,0x6c($s0)
/* f07d7b4: 3c02800a */ lui $v0,%hi(g_Vars)
/* f07d7b8: 8fa30278 */ lw $v1,0x278($sp)
/* f07d7bc: 460c703e */ c.le.s $f14,$f12
/* f07d7c0: 24429fc0 */ addiu $v0,$v0,%lo(g_Vars)
/* f07d7c4: 45020015 */ bc1fl .L0f07d81c
/* f07d7c8: 8fae01f8 */ lw $t6,0x1f8($sp)
/* f07d7cc: c442004c */ lwc1 $f2,0x4c($v0)
/* f07d7d0: 4602603e */ c.le.s $f12,$f2
/* f07d7d4: 00000000 */ nop
/* f07d7d8: 45020006 */ bc1fl .L0f07d7f4
/* f07d7dc: c6000064 */ lwc1 $f0,0x64($s0)
/* f07d7e0: c6080068 */ lwc1 $f8,0x68($s0)
/* f07d7e4: c60c006c */ lwc1 $f12,0x6c($s0)
/* f07d7e8: 10000008 */ b .L0f07d80c
/* f07d7ec: e6080064 */ swc1 $f8,0x64($s0)
/* f07d7f0: c6000064 */ lwc1 $f0,0x64($s0)
.L0f07d7f4:
/* f07d7f4: c6040068 */ lwc1 $f4,0x68($s0)
/* f07d7f8: 46002281 */ sub.s $f10,$f4,$f0
/* f07d7fc: 46025182 */ mul.s $f6,$f10,$f2
/* f07d800: 460c3203 */ div.s $f8,$f6,$f12
/* f07d804: 46080100 */ add.s $f4,$f0,$f8
/* f07d808: e6040064 */ swc1 $f4,0x64($s0)
.L0f07d80c:
/* f07d80c: c44a004c */ lwc1 $f10,0x4c($v0)
/* f07d810: 460a6181 */ sub.s $f6,$f12,$f10
/* f07d814: e606006c */ swc1 $f6,0x6c($s0)
/* f07d818: 8fae01f8 */ lw $t6,0x1f8($sp)
.L0f07d81c:
/* f07d81c: 3c02800a */ lui $v0,%hi(g_Vars)
/* f07d820: 24429fc0 */ addiu $v0,$v0,%lo(g_Vars)
/* f07d824: 51c00037 */ beqzl $t6,.L0f07d904
/* f07d828: c6040064 */ lwc1 $f4,0x64($s0)
/* f07d82c: c6080070 */ lwc1 $f8,0x70($s0)
/* f07d830: 3c017f1b */ lui $at,%hi(var7f1aa6b4)
/* f07d834: 4608703c */ c.lt.s $f14,$f8
/* f07d838: 00000000 */ nop
/* f07d83c: 45020013 */ bc1fl .L0f07d88c
/* f07d840: c6000064 */ lwc1 $f0,0x64($s0)
/* f07d844: c6040068 */ lwc1 $f4,0x68($s0)
/* f07d848: c42aa6b4 */ lwc1 $f10,%lo(var7f1aa6b4)($at)
/* f07d84c: c4480044 */ lwc1 $f8,0x44($v0)
/* f07d850: 3c017f1b */ lui $at,%hi(var7f1aa6b8)
/* f07d854: 460a2182 */ mul.s $f6,$f4,$f10
/* f07d858: c60a0064 */ lwc1 $f10,0x64($s0)
/* f07d85c: 46083102 */ mul.s $f4,$f6,$f8
/* f07d860: 46045181 */ sub.s $f6,$f10,$f4
/* f07d864: e6060064 */ swc1 $f6,0x64($s0)
/* f07d868: c6080064 */ lwc1 $f8,0x64($s0)
/* f07d86c: 460e403c */ c.lt.s $f8,$f14
/* f07d870: 00000000 */ nop
/* f07d874: 45020013 */ bc1fl .L0f07d8c4
/* f07d878: 8faf0274 */ lw $t7,0x274($sp)
/* f07d87c: c42aa6b8 */ lwc1 $f10,%lo(var7f1aa6b8)($at)
/* f07d880: 1000000f */ b .L0f07d8c0
/* f07d884: e60a0064 */ swc1 $f10,0x64($s0)
/* f07d888: c6000064 */ lwc1 $f0,0x64($s0)
.L0f07d88c:
/* f07d88c: c6020068 */ lwc1 $f2,0x68($s0)
/* f07d890: 3c017f1b */ lui $at,%hi(var7f1aa6bc)
/* f07d894: 4602003c */ c.lt.s $f0,$f2
/* f07d898: 00000000 */ nop
/* f07d89c: 45020009 */ bc1fl .L0f07d8c4
/* f07d8a0: 8faf0274 */ lw $t7,0x274($sp)
/* f07d8a4: c424a6bc */ lwc1 $f4,%lo(var7f1aa6bc)($at)
/* f07d8a8: c4480044 */ lwc1 $f8,0x44($v0)
/* f07d8ac: 46041182 */ mul.s $f6,$f2,$f4
/* f07d8b0: 00000000 */ nop
/* f07d8b4: 46083282 */ mul.s $f10,$f6,$f8
/* f07d8b8: 460a0100 */ add.s $f4,$f0,$f10
/* f07d8bc: e6040064 */ swc1 $f4,0x64($s0)
.L0f07d8c0:
/* f07d8c0: 8faf0274 */ lw $t7,0x274($sp)
.L0f07d8c4:
/* f07d8c4: 3c017f1b */ lui $at,%hi(var7f1aa6c0)
/* f07d8c8: 51e0000e */ beqzl $t7,.L0f07d904
/* f07d8cc: c6040064 */ lwc1 $f4,0x64($s0)
/* f07d8d0: c426a6c0 */ lwc1 $f6,%lo(var7f1aa6c0)($at)
/* f07d8d4: c4480044 */ lwc1 $f8,0x44($v0)
/* f07d8d8: c6040064 */ lwc1 $f4,0x64($s0)
/* f07d8dc: 46083282 */ mul.s $f10,$f6,$f8
/* f07d8e0: 460a2181 */ sub.s $f6,$f4,$f10
/* f07d8e4: e6060064 */ swc1 $f6,0x64($s0)
/* f07d8e8: c6080064 */ lwc1 $f8,0x64($s0)
/* f07d8ec: 460e403c */ c.lt.s $f8,$f14
/* f07d8f0: 00000000 */ nop
/* f07d8f4: 45020003 */ bc1fl .L0f07d904
/* f07d8f8: c6040064 */ lwc1 $f4,0x64($s0)
/* f07d8fc: e60e0064 */ swc1 $f14,0x64($s0)
/* f07d900: c6040064 */ lwc1 $f4,0x64($s0)
.L0f07d904:
/* f07d904: 4604703c */ c.lt.s $f14,$f4
/* f07d908: 00000000 */ nop
/* f07d90c: 45020195 */ bc1fl .L0f07df64
/* f07d910: 8fbf004c */ lw $ra,0x4c($sp)
/* f07d914: c60a007c */ lwc1 $f10,0x7c($s0)
/* f07d918: 24780008 */ addiu $t8,$v1,0x8
/* f07d91c: 24790028 */ addiu $t9,$v1,0x28
/* f07d920: e7aa0190 */ swc1 $f10,0x190($sp)
/* f07d924: c6060080 */ lwc1 $f6,0x80($s0)
/* f07d928: e7a6018c */ swc1 $f6,0x18c($sp)
/* f07d92c: c6080084 */ lwc1 $f8,0x84($s0)
/* f07d930: e7a80188 */ swc1 $f8,0x188($sp)
/* f07d934: c6040070 */ lwc1 $f4,0x70($s0)
/* f07d938: e7a40184 */ swc1 $f4,0x184($sp)
/* f07d93c: c60a0074 */ lwc1 $f10,0x74($s0)
/* f07d940: e7aa0180 */ swc1 $f10,0x180($sp)
/* f07d944: c60c007c */ lwc1 $f12,0x7c($s0)
/* f07d948: afb90054 */ sw $t9,0x54($sp)
/* f07d94c: 0c0068f7 */ jal sinf
/* f07d950: afb80058 */ sw $t8,0x58($sp)
/* f07d954: c60c0080 */ lwc1 $f12,0x80($s0)
/* f07d958: 0c0068f4 */ jal cosf
/* f07d95c: e7a00068 */ swc1 $f0,0x68($sp)
/* f07d960: c7a20068 */ lwc1 $f2,0x68($sp)
/* f07d964: 46020182 */ mul.s $f6,$f0,$f2
/* f07d968: e7a60194 */ swc1 $f6,0x194($sp)
/* f07d96c: 0c0068f7 */ jal sinf
/* f07d970: c60c0080 */ lwc1 $f12,0x80($s0)
/* f07d974: e7a00198 */ swc1 $f0,0x198($sp)
/* f07d978: 0c0068f4 */ jal cosf
/* f07d97c: c60c007c */ lwc1 $f12,0x7c($s0)
/* f07d980: c60c0080 */ lwc1 $f12,0x80($s0)
/* f07d984: 0c0068f4 */ jal cosf
/* f07d988: e7a00068 */ swc1 $f0,0x68($sp)
/* f07d98c: c7a20068 */ lwc1 $f2,0x68($sp)
/* f07d990: 8fa40058 */ lw $a0,0x58($sp)
/* f07d994: 27a50194 */ addiu $a1,$sp,0x194
/* f07d998: 46020202 */ mul.s $f8,$f0,$f2
/* f07d99c: 27a60214 */ addiu $a2,$sp,0x214
/* f07d9a0: 8fa701f4 */ lw $a3,0x1f4($sp)
/* f07d9a4: 0fc11171 */ jal posIsMovingTowardsPosOrStoppedInRange
/* f07d9a8: e7a8019c */ swc1 $f8,0x19c($sp)
/* f07d9ac: 50400006 */ beqzl $v0,.L0f07d9c8
/* f07d9b0: 8fa201f8 */ lw $v0,0x1f8($sp)
/* f07d9b4: c604007c */ lwc1 $f4,0x7c($s0)
/* f07d9b8: e7a40200 */ swc1 $f4,0x200($sp)
/* f07d9bc: c60a0080 */ lwc1 $f10,0x80($s0)
/* f07d9c0: e7aa01fc */ swc1 $f10,0x1fc($sp)
/* f07d9c4: 8fa201f8 */ lw $v0,0x1f8($sp)
.L0f07d9c8:
/* f07d9c8: 10400004 */ beqz $v0,.L0f07d9dc
/* f07d9cc: 3c014170 */ lui $at,0x4170
/* f07d9d0: 44818000 */ mtc1 $at,$f16
/* f07d9d4: 10000006 */ b .L0f07d9f0
/* f07d9d8: 46008386 */ mov.s $f14,$f16
.L0f07d9dc:
/* f07d9dc: 3c0140a0 */ lui $at,0x40a0
/* f07d9e0: 44817000 */ mtc1 $at,$f14
/* f07d9e4: 3c014170 */ lui $at,0x4170
/* f07d9e8: 44818000 */ mtc1 $at,$f16
/* f07d9ec: 00000000 */ nop
.L0f07d9f0:
/* f07d9f0: 50400004 */ beqzl $v0,.L0f07da04
/* f07d9f4: 3c0140a0 */ lui $at,0x40a0
/* f07d9f8: 10000004 */ b .L0f07da0c
/* f07d9fc: 46008306 */ mov.s $f12,$f16
/* f07da00: 3c0140a0 */ lui $at,0x40a0
.L0f07da04:
/* f07da04: 44816000 */ mtc1 $at,$f12
/* f07da08: 00000000 */ nop
.L0f07da0c:
/* f07da0c: 50400004 */ beqzl $v0,.L0f07da20
/* f07da10: 3c0140a0 */ lui $at,0x40a0
/* f07da14: 10000004 */ b .L0f07da28
/* f07da18: 46008086 */ mov.s $f2,$f16
/* f07da1c: 3c0140a0 */ lui $at,0x40a0
.L0f07da20:
/* f07da20: 44811000 */ mtc1 $at,$f2
/* f07da24: 00000000 */ nop
.L0f07da28:
/* f07da28: 3c017f1b */ lui $at,%hi(var7f1aa6c4)
/* f07da2c: c432a6c4 */ lwc1 $f18,%lo(var7f1aa6c4)($at)
/* f07da30: 3c017f1b */ lui $at,%hi(var7f1aa6c8)
/* f07da34: c424a6c8 */ lwc1 $f4,%lo(var7f1aa6c8)($at)
/* f07da38: 46127182 */ mul.s $f6,$f14,$f18
/* f07da3c: 27a40190 */ addiu $a0,$sp,0x190
/* f07da40: 8fa50200 */ lw $a1,0x200($sp)
/* f07da44: 46126002 */ mul.s $f0,$f12,$f18
/* f07da48: 27a60184 */ addiu $a2,$sp,0x184
/* f07da4c: 46041282 */ mul.s $f10,$f2,$f4
/* f07da50: 44073000 */ mfc1 $a3,$f6
/* f07da54: 46000200 */ add.s $f8,$f0,$f0
/* f07da58: e7aa0014 */ swc1 $f10,0x14($sp)
/* f07da5c: 0fc1b6c0 */ jal applyRotation
/* f07da60: e7a80010 */ swc1 $f8,0x10($sp)
/* f07da64: c7a60190 */ lwc1 $f6,0x190($sp)
/* f07da68: c7a80200 */ lwc1 $f8,0x200($sp)
/* f07da6c: 3c014170 */ lui $at,0x4170
/* f07da70: 44818000 */ mtc1 $at,$f16
/* f07da74: 46083032 */ c.eq.s $f6,$f8
/* f07da78: 3c017f1b */ lui $at,%hi(var7f1aa6cc)
/* f07da7c: c432a6cc */ lwc1 $f18,%lo(var7f1aa6cc)($at)
/* f07da80: 45020021 */ bc1fl .L0f07db08
/* f07da84: 8fa201f8 */ lw $v0,0x1f8($sp)
/* f07da88: 8fa201f8 */ lw $v0,0x1f8($sp)
/* f07da8c: 3c0140a0 */ lui $at,0x40a0
/* f07da90: 50400004 */ beqzl $v0,.L0f07daa4
/* f07da94: 44811000 */ mtc1 $at,$f2
/* f07da98: 10000003 */ b .L0f07daa8
/* f07da9c: 46008086 */ mov.s $f2,$f16
/* f07daa0: 44811000 */ mtc1 $at,$f2
.L0f07daa4:
/* f07daa4: 00000000 */ nop
.L0f07daa8:
/* f07daa8: 46121002 */ mul.s $f0,$f2,$f18
/* f07daac: c7ae0184 */ lwc1 $f14,0x184($sp)
/* f07dab0: 46000100 */ add.s $f4,$f0,$f0
/* f07dab4: 4604703e */ c.le.s $f14,$f4
/* f07dab8: 00000000 */ nop
/* f07dabc: 45020012 */ bc1fl .L0f07db08
/* f07dac0: 8fa201f8 */ lw $v0,0x1f8($sp)
/* f07dac4: 10400003 */ beqz $v0,.L0f07dad4
/* f07dac8: 3c0140a0 */ lui $at,0x40a0
/* f07dacc: 10000003 */ b .L0f07dadc
/* f07dad0: 46008306 */ mov.s $f12,$f16
.L0f07dad4:
/* f07dad4: 44816000 */ mtc1 $at,$f12
/* f07dad8: 00000000 */ nop
.L0f07dadc:
/* f07dadc: 46126002 */ mul.s $f0,$f12,$f18
/* f07dae0: 46000007 */ neg.s $f0,$f0
/* f07dae4: 46000280 */ add.s $f10,$f0,$f0
/* f07dae8: 460e503e */ c.le.s $f10,$f14
/* f07daec: 00000000 */ nop
/* f07daf0: 45020005 */ bc1fl .L0f07db08
/* f07daf4: 8fa201f8 */ lw $v0,0x1f8($sp)
/* f07daf8: 44807000 */ mtc1 $zero,$f14
/* f07dafc: 00000000 */ nop
/* f07db00: e7ae0184 */ swc1 $f14,0x184($sp)
/* f07db04: 8fa201f8 */ lw $v0,0x1f8($sp)
.L0f07db08:
/* f07db08: 50400004 */ beqzl $v0,.L0f07db1c
/* f07db0c: 3c0140a0 */ lui $at,0x40a0
/* f07db10: 10000004 */ b .L0f07db24
/* f07db14: 46008386 */ mov.s $f14,$f16
/* f07db18: 3c0140a0 */ lui $at,0x40a0
.L0f07db1c:
/* f07db1c: 44817000 */ mtc1 $at,$f14
/* f07db20: 00000000 */ nop
.L0f07db24:
/* f07db24: 46127182 */ mul.s $f6,$f14,$f18
/* f07db28: 50400004 */ beqzl $v0,.L0f07db3c
/* f07db2c: 3c0140a0 */ lui $at,0x40a0
/* f07db30: 10000004 */ b .L0f07db44
/* f07db34: 46008306 */ mov.s $f12,$f16
/* f07db38: 3c0140a0 */ lui $at,0x40a0
.L0f07db3c:
/* f07db3c: 44816000 */ mtc1 $at,$f12
/* f07db40: 00000000 */ nop
.L0f07db44:
/* f07db44: 46126002 */ mul.s $f0,$f12,$f18
/* f07db48: 50400004 */ beqzl $v0,.L0f07db5c
/* f07db4c: 3c0140a0 */ lui $at,0x40a0
/* f07db50: 10000004 */ b .L0f07db64
/* f07db54: 46008086 */ mov.s $f2,$f16
/* f07db58: 3c0140a0 */ lui $at,0x40a0
.L0f07db5c:
/* f07db5c: 44811000 */ mtc1 $at,$f2
/* f07db60: 00000000 */ nop
.L0f07db64:
/* f07db64: 3c017f1b */ lui $at,%hi(var7f1aa6d0)
/* f07db68: c424a6d0 */ lwc1 $f4,%lo(var7f1aa6d0)($at)
/* f07db6c: 46000200 */ add.s $f8,$f0,$f0
/* f07db70: 44073000 */ mfc1 $a3,$f6
/* f07db74: 46041282 */ mul.s $f10,$f2,$f4
/* f07db78: 27a4018c */ addiu $a0,$sp,0x18c
/* f07db7c: e7a80010 */ swc1 $f8,0x10($sp)
/* f07db80: 8fa501fc */ lw $a1,0x1fc($sp)
/* f07db84: 27a60180 */ addiu $a2,$sp,0x180
/* f07db88: 0fc1b6c0 */ jal applyRotation
/* f07db8c: e7aa0014 */ swc1 $f10,0x14($sp)
/* f07db90: c7a6018c */ lwc1 $f6,0x18c($sp)
/* f07db94: c7a801fc */ lwc1 $f8,0x1fc($sp)
/* f07db98: 3c014170 */ lui $at,0x4170
/* f07db9c: 44818000 */ mtc1 $at,$f16
/* f07dba0: 46083032 */ c.eq.s $f6,$f8
/* f07dba4: 3c017f1b */ lui $at,%hi(var7f1aa6d4)
/* f07dba8: c432a6d4 */ lwc1 $f18,%lo(var7f1aa6d4)($at)
/* f07dbac: 45020022 */ bc1fl .L0f07dc38
/* f07dbb0: 8e090008 */ lw $t1,0x8($s0)
/* f07dbb4: 8faa01f8 */ lw $t2,0x1f8($sp)
/* f07dbb8: 3c0140a0 */ lui $at,0x40a0
/* f07dbbc: 8fa801f8 */ lw $t0,0x1f8($sp)
/* f07dbc0: 51400004 */ beqzl $t2,.L0f07dbd4
/* f07dbc4: 44811000 */ mtc1 $at,$f2
/* f07dbc8: 10000003 */ b .L0f07dbd8
/* f07dbcc: 46008086 */ mov.s $f2,$f16
/* f07dbd0: 44811000 */ mtc1 $at,$f2
.L0f07dbd4:
/* f07dbd4: 00000000 */ nop
.L0f07dbd8:
/* f07dbd8: 46121002 */ mul.s $f0,$f2,$f18
/* f07dbdc: c7ae0180 */ lwc1 $f14,0x180($sp)
/* f07dbe0: 46000100 */ add.s $f4,$f0,$f0
/* f07dbe4: 4604703e */ c.le.s $f14,$f4
/* f07dbe8: 00000000 */ nop
/* f07dbec: 45020012 */ bc1fl .L0f07dc38
/* f07dbf0: 8e090008 */ lw $t1,0x8($s0)
/* f07dbf4: 11000003 */ beqz $t0,.L0f07dc04
/* f07dbf8: 3c0140a0 */ lui $at,0x40a0
/* f07dbfc: 10000003 */ b .L0f07dc0c
/* f07dc00: 46008306 */ mov.s $f12,$f16
.L0f07dc04:
/* f07dc04: 44816000 */ mtc1 $at,$f12
/* f07dc08: 00000000 */ nop
.L0f07dc0c:
/* f07dc0c: 46126002 */ mul.s $f0,$f12,$f18
/* f07dc10: 46000007 */ neg.s $f0,$f0
/* f07dc14: 46000280 */ add.s $f10,$f0,$f0
/* f07dc18: 460e503e */ c.le.s $f10,$f14
/* f07dc1c: 00000000 */ nop
/* f07dc20: 45020005 */ bc1fl .L0f07dc38
/* f07dc24: 8e090008 */ lw $t1,0x8($s0)
/* f07dc28: 44807000 */ mtc1 $zero,$f14
/* f07dc2c: 00000000 */ nop
/* f07dc30: e7ae0180 */ swc1 $f14,0x180($sp)
/* f07dc34: 8e090008 */ lw $t1,0x8($s0)
.L0f07dc38:
/* f07dc38: 44800000 */ mtc1 $zero,$f0
/* f07dc3c: 00095800 */ sll $t3,$t1,0x0
/* f07dc40: 05630004 */ bgezl $t3,.L0f07dc54
/* f07dc44: c7ae0184 */ lwc1 $f14,0x184($sp)
/* f07dc48: 1000000d */ b .L0f07dc80
/* f07dc4c: e7a00188 */ swc1 $f0,0x188($sp)
/* f07dc50: c7ae0184 */ lwc1 $f14,0x184($sp)
.L0f07dc54:
/* f07dc54: 3c0142f0 */ lui $at,0x42f0
/* f07dc58: 44814000 */ mtc1 $at,$f8
/* f07dc5c: 46007187 */ neg.s $f6,$f14
/* f07dc60: c7aa0188 */ lwc1 $f10,0x188($sp)
/* f07dc64: 46083102 */ mul.s $f4,$f6,$f8
/* f07dc68: 3c017f1b */ lui $at,%hi(var7f1aa6d8)
/* f07dc6c: c428a6d8 */ lwc1 $f8,%lo(var7f1aa6d8)($at)
/* f07dc70: 460a2181 */ sub.s $f6,$f4,$f10
/* f07dc74: 46083102 */ mul.s $f4,$f6,$f8
/* f07dc78: 46045180 */ add.s $f6,$f10,$f4
/* f07dc7c: e7a60188 */ swc1 $f6,0x188($sp)
.L0f07dc80:
/* f07dc80: 8fac01f8 */ lw $t4,0x1f8($sp)
/* f07dc84: 11800006 */ beqz $t4,.L0f07dca0
/* f07dc88: 3c017f1b */ lui $at,%hi(var7f1aa6dc)
/* f07dc8c: c428a6dc */ lwc1 $f8,%lo(var7f1aa6dc)($at)
/* f07dc90: c7aa018c */ lwc1 $f10,0x18c($sp)
/* f07dc94: 460a4101 */ sub.s $f4,$f8,$f10
/* f07dc98: 10000002 */ b .L0f07dca4
/* f07dc9c: e7a4012c */ swc1 $f4,0x12c($sp)
.L0f07dca0:
/* f07dca0: e7a0012c */ swc1 $f0,0x12c($sp)
.L0f07dca4:
/* f07dca4: c7a80188 */ lwc1 $f8,0x188($sp)
/* f07dca8: c7a60190 */ lwc1 $f6,0x190($sp)
/* f07dcac: e7a00134 */ swc1 $f0,0x134($sp)
/* f07dcb0: 4608003e */ c.le.s $f0,$f8
/* f07dcb4: e7a60130 */ swc1 $f6,0x130($sp)
/* f07dcb8: 45000006 */ bc1f .L0f07dcd4
/* f07dcbc: 00000000 */ nop
/* f07dcc0: 46004306 */ mov.s $f12,$f8
/* f07dcc4: 0c005900 */ jal mtx4LoadZRotation
/* f07dcc8: 27a5006c */ addiu $a1,$sp,0x6c
/* f07dccc: 10000008 */ b .L0f07dcf0
/* f07dcd0: 27a4012c */ addiu $a0,$sp,0x12c
.L0f07dcd4:
/* f07dcd4: 3c017f1b */ lui $at,%hi(var7f1aa6e0)
/* f07dcd8: c424a6e0 */ lwc1 $f4,%lo(var7f1aa6e0)($at)
/* f07dcdc: c7aa0188 */ lwc1 $f10,0x188($sp)
/* f07dce0: 27a5006c */ addiu $a1,$sp,0x6c
/* f07dce4: 0c005900 */ jal mtx4LoadZRotation
/* f07dce8: 46045300 */ add.s $f12,$f10,$f4
/* f07dcec: 27a4012c */ addiu $a0,$sp,0x12c
.L0f07dcf0:
/* f07dcf0: 0c005923 */ jal mtx4LoadRotation
/* f07dcf4: 27a500ac */ addiu $a1,$sp,0xac
/* f07dcf8: 8e0d0018 */ lw $t5,0x18($s0)
/* f07dcfc: 27a500ac */ addiu $a1,$sp,0xac
/* f07dd00: 0c0057c1 */ jal mtx00015f04
/* f07dd04: c5ac0014 */ lwc1 $f12,0x14($t5)
/* f07dd08: 27a400ac */ addiu $a0,$sp,0xac
/* f07dd0c: 27a5006c */ addiu $a1,$sp,0x6c
/* f07dd10: 0c005680 */ jal mtx4MultMtx4
/* f07dd14: 27a600ec */ addiu $a2,$sp,0xec
/* f07dd18: 27a400ec */ addiu $a0,$sp,0xec
/* f07dd1c: 0c005768 */ jal mtx4ToMtx3
/* f07dd20: 27a5015c */ addiu $a1,$sp,0x15c
/* f07dd24: 27a4015c */ addiu $a0,$sp,0x15c
/* f07dd28: 0c005736 */ jal mtx3Copy
/* f07dd2c: 2605001c */ addiu $a1,$s0,0x1c
/* f07dd30: 0c0068f4 */ jal cosf
/* f07dd34: c7ac018c */ lwc1 $f12,0x18c($sp)
/* f07dd38: e7a00138 */ swc1 $f0,0x138($sp)
/* f07dd3c: 0c0068f7 */ jal sinf
/* f07dd40: c7ac0190 */ lwc1 $f12,0x190($sp)
/* f07dd44: c7a60138 */ lwc1 $f6,0x138($sp)
/* f07dd48: 8fae01f8 */ lw $t6,0x1f8($sp)
/* f07dd4c: 46060202 */ mul.s $f8,$f0,$f6
/* f07dd50: 11c00005 */ beqz $t6,.L0f07dd68
/* f07dd54: e7a80194 */ swc1 $f8,0x194($sp)
/* f07dd58: 0c0068f7 */ jal sinf
/* f07dd5c: c7ac01fc */ lwc1 $f12,0x1fc($sp)
/* f07dd60: 10000004 */ b .L0f07dd74
/* f07dd64: e7a00198 */ swc1 $f0,0x198($sp)
.L0f07dd68:
/* f07dd68: 0c0068f7 */ jal sinf
/* f07dd6c: c7ac018c */ lwc1 $f12,0x18c($sp)
/* f07dd70: e7a00198 */ swc1 $f0,0x198($sp)
.L0f07dd74:
/* f07dd74: 0c0068f4 */ jal cosf
/* f07dd78: c7ac0190 */ lwc1 $f12,0x190($sp)
/* f07dd7c: c7aa0138 */ lwc1 $f10,0x138($sp)
/* f07dd80: 3c01800a */ lui $at,%hi(g_Vars+0x4c)
/* f07dd84: c422a00c */ lwc1 $f2,%lo(g_Vars+0x4c)($at)
/* f07dd88: 460a0102 */ mul.s $f4,$f0,$f10
/* f07dd8c: c7a60194 */ lwc1 $f6,0x194($sp)
/* f07dd90: 8faf0278 */ lw $t7,0x278($sp)
/* f07dd94: 8fa40058 */ lw $a0,0x58($sp)
/* f07dd98: 8fa50054 */ lw $a1,0x54($sp)
/* f07dd9c: 27a60150 */ addiu $a2,$sp,0x150
/* f07dda0: 27a70140 */ addiu $a3,$sp,0x140
/* f07dda4: e7a4019c */ swc1 $f4,0x19c($sp)
/* f07dda8: c6080064 */ lwc1 $f8,0x64($s0)
/* f07ddac: 46024282 */ mul.s $f10,$f8,$f2
/* f07ddb0: c5e80008 */ lwc1 $f8,0x8($t7)
/* f07ddb4: 460a3102 */ mul.s $f4,$f6,$f10
/* f07ddb8: c7aa0198 */ lwc1 $f10,0x198($sp)
/* f07ddbc: 46082180 */ add.s $f6,$f4,$f8
/* f07ddc0: e7a60150 */ swc1 $f6,0x150($sp)
/* f07ddc4: c6040064 */ lwc1 $f4,0x64($s0)
/* f07ddc8: 46022202 */ mul.s $f8,$f4,$f2
/* f07ddcc: c5e4000c */ lwc1 $f4,0xc($t7)
/* f07ddd0: 46085182 */ mul.s $f6,$f10,$f8
/* f07ddd4: c7a8019c */ lwc1 $f8,0x19c($sp)
/* f07ddd8: 46043280 */ add.s $f10,$f6,$f4
/* f07dddc: e7aa0154 */ swc1 $f10,0x154($sp)
/* f07dde0: c6060064 */ lwc1 $f6,0x64($s0)
/* f07dde4: 46023102 */ mul.s $f4,$f6,$f2
/* f07dde8: c5e60010 */ lwc1 $f6,0x10($t7)
/* f07ddec: 46044282 */ mul.s $f10,$f8,$f4
/* f07ddf0: 46065200 */ add.s $f8,$f10,$f6
/* f07ddf4: 0fc1979d */ jal func0f065e74
/* f07ddf8: e7a80158 */ swc1 $f8,0x158($sp)
/* f07ddfc: 8fb801f8 */ lw $t8,0x1f8($sp)
/* f07de00: 27a40150 */ addiu $a0,$sp,0x150
/* f07de04: 3c0540a0 */ lui $a1,0x40a0
/* f07de08: 13000017 */ beqz $t8,.L0f07de68
/* f07de0c: 27a60140 */ addiu $a2,$sp,0x140
/* f07de10: 00003825 */ or $a3,$zero,$zero
/* f07de14: 0c00a8cc */ jal cdFindGroundYSimple
/* f07de18: afa00010 */ sw $zero,0x10($sp)
/* f07de1c: 3c01420c */ lui $at,0x420c
/* f07de20: 44812000 */ mtc1 $at,$f4
/* f07de24: 3c017f1b */ lui $at,%hi(var7f1aa6e4)
/* f07de28: c42aa6e4 */ lwc1 $f10,%lo(var7f1aa6e4)($at)
/* f07de2c: 46040080 */ add.s $f2,$f0,$f4
/* f07de30: 3c01800a */ lui $at,%hi(g_Vars+0x4c)
/* f07de34: 460a103c */ c.lt.s $f2,$f10
/* f07de38: e7a20154 */ swc1 $f2,0x154($sp)
/* f07de3c: 4502000b */ bc1fl .L0f07de6c
/* f07de40: c7a40150 */ lwc1 $f4,0x150($sp)
/* f07de44: c6060064 */ lwc1 $f6,0x64($s0)
/* f07de48: c428a00c */ lwc1 $f8,%lo(g_Vars+0x4c)($at)
/* f07de4c: c7aa0198 */ lwc1 $f10,0x198($sp)
/* f07de50: 8fb90278 */ lw $t9,0x278($sp)
/* f07de54: 46083102 */ mul.s $f4,$f6,$f8
/* f07de58: c728000c */ lwc1 $f8,0xc($t9)
/* f07de5c: 46045182 */ mul.s $f6,$f10,$f4
/* f07de60: 46083280 */ add.s $f10,$f6,$f8
/* f07de64: e7aa0154 */ swc1 $f10,0x154($sp)
.L0f07de68:
/* f07de68: c7a40150 */ lwc1 $f4,0x150($sp)
.L0f07de6c:
/* f07de6c: 8fa40278 */ lw $a0,0x278($sp)
/* f07de70: e4840008 */ swc1 $f4,0x8($a0)
/* f07de74: c7a60154 */ lwc1 $f6,0x154($sp)
/* f07de78: e486000c */ swc1 $f6,0xc($a0)
/* f07de7c: c7a80158 */ lwc1 $f8,0x158($sp)
/* f07de80: 0fc19711 */ jal propDeregisterRooms
/* f07de84: e4880010 */ swc1 $f8,0x10($a0)
/* f07de88: 27a40140 */ addiu $a0,$sp,0x140
/* f07de8c: 0fc195e9 */ jal roomsCopy
/* f07de90: 8fa50054 */ lw $a1,0x54($sp)
/* f07de94: c7aa0190 */ lwc1 $f10,0x190($sp)
/* f07de98: 8e020088 */ lw $v0,0x88($s0)
/* f07de9c: e60a007c */ swc1 $f10,0x7c($s0)
/* f07dea0: c7a4018c */ lwc1 $f4,0x18c($sp)
/* f07dea4: e6040080 */ swc1 $f4,0x80($s0)
/* f07dea8: c7a60188 */ lwc1 $f6,0x188($sp)
/* f07deac: e6060084 */ swc1 $f6,0x84($s0)
/* f07deb0: c7a80184 */ lwc1 $f8,0x184($sp)
/* f07deb4: e6080070 */ swc1 $f8,0x70($s0)
/* f07deb8: c7aa0180 */ lwc1 $f10,0x180($sp)
/* f07debc: 10400024 */ beqz $v0,.L0f07df50
/* f07dec0: e60a0074 */ swc1 $f10,0x74($s0)
/* f07dec4: 8e09008c */ lw $t1,0x8c($s0)
/* f07dec8: 8c480000 */ lw $t0,0x0($v0)
/* f07decc: c7a601f4 */ lwc1 $f6,0x1f4($sp)
/* f07ded0: 00095880 */ sll $t3,$t1,0x2
/* f07ded4: 010b6021 */ addu $t4,$t0,$t3
/* f07ded8: 8d8d0004 */ lw $t5,0x4($t4)
/* f07dedc: c7a401f4 */ lwc1 $f4,0x1f4($sp)
/* f07dee0: 05a20010 */ bltzl $t5,.L0f07df24
/* f07dee4: c60a0064 */ lwc1 $f10,0x64($s0)
/* f07dee8: c6040064 */ lwc1 $f4,0x64($s0)
/* f07deec: 8fa40058 */ lw $a0,0x58($sp)
/* f07def0: 27a50150 */ addiu $a1,$sp,0x150
/* f07def4: 46062202 */ mul.s $f8,$f4,$f6
/* f07def8: 27a60214 */ addiu $a2,$sp,0x214
/* f07defc: 44074000 */ mfc1 $a3,$f8
/* f07df00: 0fc111b8 */ jal posIsArrivingLaterallyAtPos
/* f07df04: 00000000 */ nop
/* f07df08: 50400012 */ beqzl $v0,.L0f07df54
/* f07df0c: 02002025 */ or $a0,$s0,$zero
/* f07df10: 0fc1c9dd */ jal hovercarIncrementStep
/* f07df14: 02002025 */ or $a0,$s0,$zero
/* f07df18: 1000000e */ b .L0f07df54
/* f07df1c: 02002025 */ or $a0,$s0,$zero
/* f07df20: c60a0064 */ lwc1 $f10,0x64($s0)
.L0f07df24:
/* f07df24: 8fa40058 */ lw $a0,0x58($sp)
/* f07df28: 27a50150 */ addiu $a1,$sp,0x150
/* f07df2c: 46045182 */ mul.s $f6,$f10,$f4
/* f07df30: 27a60214 */ addiu $a2,$sp,0x214
/* f07df34: 44073000 */ mfc1 $a3,$f6
/* f07df38: 0fc111b8 */ jal posIsArrivingLaterallyAtPos
/* f07df3c: 00000000 */ nop
/* f07df40: 50400004 */ beqzl $v0,.L0f07df54
/* f07df44: 02002025 */ or $a0,$s0,$zero
/* f07df48: 0fc1c9dd */ jal hovercarIncrementStep
/* f07df4c: 02002025 */ or $a0,$s0,$zero
.L0f07df50:
/* f07df50: 02002025 */ or $a0,$s0,$zero
.L0f07df54:
/* f07df54: 00002825 */ or $a1,$zero,$zero
/* f07df58: 0fc1a71c */ jal func0f069c70
/* f07df5c: 24060001 */ addiu $a2,$zero,0x1
.L0f07df60:
/* f07df60: 8fbf004c */ lw $ra,0x4c($sp)
.L0f07df64:
/* f07df64: 8fb00048 */ lw $s0,0x48($sp)
/* f07df68: 27bd0278 */ addiu $sp,$sp,0x278
/* f07df6c: 03e00008 */ jr $ra
/* f07df70: 00000000 */ nop
);
#else
GLOBAL_ASM(
glabel hovercarTick
.late_rodata
glabel var7f1aa6ac
.word 0x471c4000
glabel var7f1aa6b0
.word 0x47148900
glabel var7f1aa6b4
.word 0x3d2aaaab
glabel var7f1aa6b8
.word 0x3dcccccd
glabel var7f1aa6bc
.word 0x3d2aaaab
glabel var7f1aa6c0
.word 0x3e555555
glabel var7f1aa6c4
.word 0x3964ba35
glabel var7f1aa6c8
.word 0x3c566e92
glabel var7f1aa6cc
.word 0x3964ba35
glabel var7f1aa6d0
.word 0x3c566e92
glabel var7f1aa6d4
.word 0x3964ba35
glabel var7f1aa6d8
.word 0x3dcccccd
glabel var7f1aa6dc
.word 0x40c907a9
glabel var7f1aa6e0
.word 0x40c907a9
.text
/* f07bc90: 27bdfd88 */ addiu $sp,$sp,-632
/* f07bc94: afbf004c */ sw $ra,0x4c($sp)
/* f07bc98: afb00048 */ sw $s0,0x48($sp)
/* f07bc9c: afa40278 */ sw $a0,0x278($sp)
/* f07bca0: 8c900004 */ lw $s0,0x4($a0)
/* f07bca4: 3c018000 */ lui $at,0x8000
/* f07bca8: c604007c */ lwc1 $f4,0x7c($s0)
/* f07bcac: e7a40200 */ swc1 $f4,0x200($sp)
/* f07bcb0: c6060080 */ lwc1 $f6,0x80($s0)
/* f07bcb4: e7a601fc */ swc1 $f6,0x1fc($sp)
/* f07bcb8: 8e020008 */ lw $v0,0x8($s0)
/* f07bcbc: 00417824 */ and $t7,$v0,$at
/* f07bcc0: 11e00005 */ beqz $t7,.NB0f07bcd8
/* f07bcc4: 01e01025 */ or $v0,$t7,$zero
/* f07bcc8: 3c0140a0 */ lui $at,0x40a0
/* f07bccc: 44814000 */ mtc1 $at,$f8
/* f07bcd0: 10000005 */ beqz $zero,.NB0f07bce8
/* f07bcd4: e7a801f4 */ swc1 $f8,0x1f4($sp)
.NB0f07bcd8:
/* f07bcd8: 3c014120 */ lui $at,0x4120
/* f07bcdc: 44815000 */ mtc1 $at,$f10
/* f07bce0: 00000000 */ sll $zero,$zero,0x0
/* f07bce4: e7aa01f4 */ swc1 $f10,0x1f4($sp)
.NB0f07bce8:
/* f07bce8: 10400038 */ beqz $v0,.NB0f07bdcc
/* f07bcec: afa001f0 */ sw $zero,0x1f0($sp)
/* f07bcf0: 86180094 */ lh $t8,0x94($s0)
/* f07bcf4: 07030036 */ bgezl $t8,.NB0f07bdd0
/* f07bcf8: 860f0092 */ lh $t7,0x92($s0)
/* f07bcfc: 0fc19f4a */ jal modelFindBboxRodata
/* f07bd00: 8e040018 */ lw $a0,0x18($s0)
/* f07bd04: 0fc1968f */ jal modelBboxGetYMin
/* f07bd08: 00402025 */ or $a0,$v0,$zero
/* f07bd0c: 8fa40278 */ lw $a0,0x278($sp)
/* f07bd10: 24050001 */ addiu $a1,$zero,0x1
/* f07bd14: 3406ffff */ dli $a2,0xffff
/* f07bd18: 84990028 */ lh $t9,0x28($a0)
/* f07bd1c: a7b901d6 */ sh $t9,0x1d6($sp)
/* f07bd20: c6040028 */ lwc1 $f4,0x28($s0)
/* f07bd24: e7a401d8 */ swc1 $f4,0x1d8($sp)
/* f07bd28: c606002c */ lwc1 $f6,0x2c($s0)
/* f07bd2c: e7a601dc */ swc1 $f6,0x1dc($sp)
/* f07bd30: c6080030 */ lwc1 $f8,0x30($s0)
/* f07bd34: e7a801e0 */ swc1 $f8,0x1e0($sp)
/* f07bd38: c60a0028 */ lwc1 $f10,0x28($s0)
/* f07bd3c: c4860008 */ lwc1 $f6,0x8($a0)
/* f07bd40: 46005102 */ mul.s $f4,$f10,$f0
/* f07bd44: 46062200 */ add.s $f8,$f4,$f6
/* f07bd48: e7a801e4 */ swc1 $f8,0x1e4($sp)
/* f07bd4c: c60a002c */ lwc1 $f10,0x2c($s0)
/* f07bd50: c486000c */ lwc1 $f6,0xc($a0)
/* f07bd54: 46005102 */ mul.s $f4,$f10,$f0
/* f07bd58: 46062200 */ add.s $f8,$f4,$f6
/* f07bd5c: e7a801e8 */ swc1 $f8,0x1e8($sp)
/* f07bd60: c60a0030 */ lwc1 $f10,0x30($s0)
/* f07bd64: c4860010 */ lwc1 $f6,0x10($a0)
/* f07bd68: 46005102 */ mul.s $f4,$f10,$f0
/* f07bd6c: 46062200 */ add.s $f8,$f4,$f6
/* f07bd70: 0fc2433d */ jal func0f0926bc
/* f07bd74: e7a801ec */ swc1 $f8,0x1ec($sp)
/* f07bd78: 8fa20278 */ lw $v0,0x278($sp)
/* f07bd7c: 3c08800a */ lui $t0,0x800a
/* f07bd80: 8d08e94c */ lw $t0,-0x16b4($t0)
/* f07bd84: 87ab01d6 */ lh $t3,0x1d6($sp)
/* f07bd88: 24090001 */ addiu $t1,$zero,0x1
/* f07bd8c: 27aa01e4 */ addiu $t2,$sp,0x1e4
/* f07bd90: 27ac01d8 */ addiu $t4,$sp,0x1d8
/* f07bd94: afac0020 */ sw $t4,0x20($sp)
/* f07bd98: afaa0018 */ sw $t2,0x18($sp)
/* f07bd9c: afa90014 */ sw $t1,0x14($sp)
/* f07bda0: 00002025 */ or $a0,$zero,$zero
/* f07bda4: 24070007 */ addiu $a3,$zero,0x7
/* f07bda8: 24450008 */ addiu $a1,$v0,0x8
/* f07bdac: 24460028 */ addiu $a2,$v0,0x28
/* f07bdb0: afa80010 */ sw $t0,0x10($sp)
/* f07bdb4: 0fc492bc */ jal explosionCreate
/* f07bdb8: afab001c */ sw $t3,0x1c($sp)
/* f07bdbc: 8e0d0040 */ lw $t5,0x40($s0)
/* f07bdc0: 35ae0004 */ ori $t6,$t5,0x4
/* f07bdc4: 10000304 */ beqz $zero,.NB0f07c9d8
/* f07bdc8: ae0e0040 */ sw $t6,0x40($s0)
.NB0f07bdcc:
/* f07bdcc: 860f0092 */ lh $t7,0x92($s0)
.NB0f07bdd0:
/* f07bdd0: 02002025 */ or $a0,$s0,$zero
/* f07bdd4: 24050001 */ addiu $a1,$zero,0x1
/* f07bdd8: 11e00063 */ beqz $t7,.NB0f07bf68
/* f07bddc: 00000000 */ sll $zero,$zero,0x0
/* f07bde0: 1040002c */ beqz $v0,.NB0f07be94
/* f07bde4: 3c02800a */ lui $v0,0x800a
/* f07bde8: 2442e6c0 */ addiu $v0,$v0,-6464
/* f07bdec: 8c590038 */ lw $t9,0x38($v0)
/* f07bdf0: 86180094 */ lh $t8,0x94($s0)
/* f07bdf4: 86090096 */ lh $t1,0x96($s0)
/* f07bdf8: 3c01bf80 */ lui $at,0xbf80
/* f07bdfc: 03194023 */ subu $t0,$t8,$t9
/* f07be00: a6080094 */ sh $t0,0x94($s0)
/* f07be04: 8c4a0038 */ lw $t2,0x38($v0)
/* f07be08: 240d0032 */ addiu $t5,$zero,0x32
/* f07be0c: 00002025 */ or $a0,$zero,$zero
/* f07be10: 012a5823 */ subu $t3,$t1,$t2
/* f07be14: a60b0096 */ sh $t3,0x96($s0)
/* f07be18: 860c0096 */ lh $t4,0x96($s0)
/* f07be1c: 24060064 */ addiu $a2,$zero,0x64
/* f07be20: 2407ffff */ addiu $a3,$zero,-1
/* f07be24: 058102ec */ bgez $t4,.NB0f07c9d8
/* f07be28: 240effff */ addiu $t6,$zero,-1
/* f07be2c: a60d0096 */ sh $t5,0x96($s0)
/* f07be30: 44810000 */ mtc1 $at,$f0
/* f07be34: 240f0400 */ addiu $t7,$zero,0x400
/* f07be38: 2418ffff */ addiu $t8,$zero,-1
/* f07be3c: afb8002c */ sw $t8,0x2c($sp)
/* f07be40: afaf0014 */ sw $t7,0x14($sp)
/* f07be44: afa00028 */ sw $zero,0x28($sp)
/* f07be48: afa00020 */ sw $zero,0x20($sp)
/* f07be4c: afa0001c */ sw $zero,0x1c($sp)
/* f07be50: afa00018 */ sw $zero,0x18($sp)
/* f07be54: afae0010 */ sw $t6,0x10($sp)
/* f07be58: 8fa50278 */ lw $a1,0x278($sp)
/* f07be5c: e7a00024 */ swc1 $f0,0x24($sp)
/* f07be60: e7a00030 */ swc1 $f0,0x30($sp)
/* f07be64: e7a00034 */ swc1 $f0,0x34($sp)
/* f07be68: 0fc24762 */ jal propsnd0f0939f8
/* f07be6c: e7a00038 */ swc1 $f0,0x38($sp)
/* f07be70: 8fa50278 */ lw $a1,0x278($sp)
/* f07be74: 00003825 */ or $a3,$zero,$zero
/* f07be78: 84a40028 */ lh $a0,0x28($a1)
/* f07be7c: afa00014 */ sw $zero,0x14($sp)
/* f07be80: afa00010 */ sw $zero,0x10($sp)
/* f07be84: 0fc4a960 */ jal sparksCreate
/* f07be88: 24a60008 */ addiu $a2,$a1,0x8
/* f07be8c: 100002d3 */ beqz $zero,.NB0f07c9dc
/* f07be90: 8fbf004c */ lw $ra,0x4c($sp)
.NB0f07be94:
/* f07be94: 44805000 */ mtc1 $zero,$f10
/* f07be98: c604006c */ lwc1 $f4,0x6c($s0)
/* f07be9c: 3c0140c0 */ lui $at,0x40c0
/* f07bea0: 46045032 */ c.eq.s $f10,$f4
/* f07bea4: 00000000 */ sll $zero,$zero,0x0
/* f07bea8: 450202cc */ bc1fl .NB0f07c9dc
/* f07beac: 8fbf004c */ lw $ra,0x4c($sp)
/* f07beb0: c6060064 */ lwc1 $f6,0x64($s0)
/* f07beb4: 44814000 */ mtc1 $at,$f8
/* f07beb8: 3c013f80 */ lui $at,0x3f80
/* f07bebc: 46083280 */ add.s $f10,$f6,$f8
/* f07bec0: e60a0064 */ swc1 $f10,0x64($s0)
/* f07bec4: 8fb90278 */ lw $t9,0x278($sp)
/* f07bec8: c7240008 */ lwc1 $f4,0x8($t9)
/* f07becc: e7a401c0 */ swc1 $f4,0x1c0($sp)
/* f07bed0: c6080064 */ lwc1 $f8,0x64($s0)
/* f07bed4: c726000c */ lwc1 $f6,0xc($t9)
/* f07bed8: 46083281 */ sub.s $f10,$f6,$f8
/* f07bedc: e7aa01c4 */ swc1 $f10,0x1c4($sp)
/* f07bee0: c7240010 */ lwc1 $f4,0x10($t9)
/* f07bee4: e7a401c8 */ swc1 $f4,0x1c8($sp)
/* f07bee8: c6020068 */ lwc1 $f2,0x68($s0)
/* f07beec: 4602503c */ c.lt.s $f10,$f2
/* f07bef0: 00000000 */ sll $zero,$zero,0x0
/* f07bef4: 45020005 */ bc1fl .NB0f07bf0c
/* f07bef8: 8fa80278 */ lw $t0,0x278($sp)
/* f07befc: 44813000 */ mtc1 $at,$f6
/* f07bf00: e7a201c4 */ swc1 $f2,0x1c4($sp)
/* f07bf04: e606006c */ swc1 $f6,0x6c($s0)
/* f07bf08: 8fa80278 */ lw $t0,0x278($sp)
.NB0f07bf0c:
/* f07bf0c: 27a601c0 */ addiu $a2,$sp,0x1c0
/* f07bf10: 27a701b0 */ addiu $a3,$sp,0x1b0
/* f07bf14: 25050028 */ addiu $a1,$t0,0x28
/* f07bf18: afa50054 */ sw $a1,0x54($sp)
/* f07bf1c: 0fc19437 */ jal func0f065e74
/* f07bf20: 25040008 */ addiu $a0,$t0,0x8
/* f07bf24: 8fa40278 */ lw $a0,0x278($sp)
/* f07bf28: c7a801c0 */ lwc1 $f8,0x1c0($sp)
/* f07bf2c: e4880008 */ swc1 $f8,0x8($a0)
/* f07bf30: c7a401c4 */ lwc1 $f4,0x1c4($sp)
/* f07bf34: e484000c */ swc1 $f4,0xc($a0)
/* f07bf38: c7aa01c8 */ lwc1 $f10,0x1c8($sp)
/* f07bf3c: 0fc193ab */ jal propDeregisterRooms
/* f07bf40: e48a0010 */ swc1 $f10,0x10($a0)
/* f07bf44: 27a401b0 */ addiu $a0,$sp,0x1b0
/* f07bf48: 0fc19283 */ jal roomsCopy
/* f07bf4c: 8fa50054 */ lw $a1,0x54($sp)
/* f07bf50: 02002025 */ or $a0,$s0,$zero
/* f07bf54: 00002825 */ or $a1,$zero,$zero
/* f07bf58: 0fc1a3b7 */ jal func0f069c70
/* f07bf5c: 24060001 */ addiu $a2,$zero,0x1
/* f07bf60: 1000029e */ beqz $zero,.NB0f07c9dc
/* f07bf64: 8fbf004c */ lw $ra,0x4c($sp)
.NB0f07bf68:
/* f07bf68: 0fc13321 */ jal chraiExecute
/* f07bf6c: afa201f8 */ sw $v0,0x1f8($sp)
/* f07bf70: afa00274 */ sw $zero,0x274($sp)
/* f07bf74: 8e020088 */ lw $v0,0x88($s0)
/* f07bf78: 24050042 */ addiu $a1,$zero,0x42
/* f07bf7c: 5040009f */ beqzl $v0,.NB0f07c1fc
/* f07bf80: 8e090008 */ lw $t1,0x8($s0)
/* f07bf84: 8e0a008c */ lw $t2,0x8c($s0)
/* f07bf88: 8c490000 */ lw $t1,0x0($v0)
/* f07bf8c: 27a60220 */ addiu $a2,$sp,0x220
/* f07bf90: 000a5880 */ sll $t3,$t2,0x2
/* f07bf94: 012b1821 */ addu $v1,$t1,$t3
/* f07bf98: 0fc43fc4 */ jal padUnpack
/* f07bf9c: 8c640000 */ lw $a0,0x0($v1)
/* f07bfa0: 8fac01f8 */ lw $t4,0x1f8($sp)
/* f07bfa4: c7a60220 */ lwc1 $f6,0x220($sp)
/* f07bfa8: c7aa0224 */ lwc1 $f10,0x224($sp)
/* f07bfac: 11800011 */ beqz $t4,.NB0f07bff4
/* f07bfb0: e7a60214 */ swc1 $f6,0x214($sp)
/* f07bfb4: 8fad0268 */ lw $t5,0x268($sp)
/* f07bfb8: 240effff */ addiu $t6,$zero,-1
/* f07bfbc: a7ae0212 */ sh $t6,0x212($sp)
/* f07bfc0: 27a40220 */ addiu $a0,$sp,0x220
/* f07bfc4: 3c0540a0 */ lui $a1,0x40a0
/* f07bfc8: 27a60210 */ addiu $a2,$sp,0x210
/* f07bfcc: 00003825 */ or $a3,$zero,$zero
/* f07bfd0: afa00010 */ sw $zero,0x10($sp)
/* f07bfd4: 0c00adde */ jal cdFindGroundYSimple
/* f07bfd8: a7ad0210 */ sh $t5,0x210($sp)
/* f07bfdc: 3c01420c */ lui $at,0x420c
/* f07bfe0: 44814000 */ mtc1 $at,$f8
/* f07bfe4: 00000000 */ sll $zero,$zero,0x0
/* f07bfe8: 46080100 */ add.s $f4,$f0,$f8
/* f07bfec: 10000002 */ beqz $zero,.NB0f07bff8
/* f07bff0: e7a40218 */ swc1 $f4,0x218($sp)
.NB0f07bff4:
/* f07bff4: e7aa0218 */ swc1 $f10,0x218($sp)
.NB0f07bff8:
/* f07bff8: c7a60228 */ lwc1 $f6,0x228($sp)
/* f07bffc: 8fa40278 */ lw $a0,0x278($sp)
/* f07c000: 27a60214 */ addiu $a2,$sp,0x214
/* f07c004: e7a6021c */ swc1 $f6,0x21c($sp)
/* f07c008: 8e0f0008 */ lw $t7,0x8($s0)
/* f07c00c: 24840008 */ addiu $a0,$a0,0x8
/* f07c010: 00802825 */ or $a1,$a0,$zero
/* f07c014: 000fc080 */ sll $t8,$t7,0x2
/* f07c018: 07030011 */ bgezl $t8,.NB0f07c060
/* f07c01c: 8fa20278 */ lw $v0,0x278($sp)
/* f07c020: 0fc10fab */ jal posIsArrivingLaterallyAtPos
/* f07c024: 8fa701f4 */ lw $a3,0x1f4($sp)
/* f07c028: 5040000d */ beqzl $v0,.NB0f07c060
/* f07c02c: 8fa20278 */ lw $v0,0x278($sp)
/* f07c030: 0fc1c542 */ jal hovercarIncrementStep
/* f07c034: 02002025 */ or $a0,$s0,$zero
/* f07c038: 8e190088 */ lw $t9,0x88($s0)
/* f07c03c: 8e0a008c */ lw $t2,0x8c($s0)
/* f07c040: 24050002 */ addiu $a1,$zero,0x2
/* f07c044: 8f280000 */ lw $t0,0x0($t9)
/* f07c048: 000a4880 */ sll $t1,$t2,0x2
/* f07c04c: 27a60220 */ addiu $a2,$sp,0x220
/* f07c050: 01091821 */ addu $v1,$t0,$t1
/* f07c054: 0fc43fc4 */ jal padUnpack
/* f07c058: 8c640000 */ lw $a0,0x0($v1)
/* f07c05c: 8fa20278 */ lw $v0,0x278($sp)
.NB0f07c060:
/* f07c060: c7a80214 */ lwc1 $f8,0x214($sp)
/* f07c064: c7aa021c */ lwc1 $f10,0x21c($sp)
/* f07c068: c4440008 */ lwc1 $f4,0x8($v0)
/* f07c06c: c4460010 */ lwc1 $f6,0x10($v0)
/* f07c070: 46044301 */ sub.s $f12,$f8,$f4
/* f07c074: 0fc251b8 */ jal atan2f
/* f07c078: 46065381 */ sub.s $f14,$f10,$f6
/* f07c07c: 8fa20278 */ lw $v0,0x278($sp)
/* f07c080: e7a00200 */ swc1 $f0,0x200($sp)
/* f07c084: c7a80214 */ lwc1 $f8,0x214($sp)
/* f07c088: c4440008 */ lwc1 $f4,0x8($v0)
/* f07c08c: c7aa021c */ lwc1 $f10,0x21c($sp)
/* f07c090: c4460010 */ lwc1 $f6,0x10($v0)
/* f07c094: 46044081 */ sub.s $f2,$f8,$f4
/* f07c098: 46065381 */ sub.s $f14,$f10,$f6
/* f07c09c: 46021202 */ mul.s $f8,$f2,$f2
/* f07c0a0: 00000000 */ sll $zero,$zero,0x0
/* f07c0a4: 460e7102 */ mul.s $f4,$f14,$f14
/* f07c0a8: 0c012e84 */ jal sqrtf
/* f07c0ac: 46044300 */ add.s $f12,$f8,$f4
/* f07c0b0: 8fab0278 */ lw $t3,0x278($sp)
/* f07c0b4: c7aa0218 */ lwc1 $f10,0x218($sp)
/* f07c0b8: 46000386 */ mov.s $f14,$f0
/* f07c0bc: c566000c */ lwc1 $f6,0xc($t3)
/* f07c0c0: 0fc251b8 */ jal atan2f
/* f07c0c4: 46065301 */ sub.s $f12,$f10,$f6
/* f07c0c8: e7a001fc */ swc1 $f0,0x1fc($sp)
/* f07c0cc: 8e0c0008 */ lw $t4,0x8($s0)
/* f07c0d0: 3c01dfff */ lui $at,0xdfff
/* f07c0d4: c7a80200 */ lwc1 $f8,0x200($sp)
/* f07c0d8: 000c6880 */ sll $t5,$t4,0x2
/* f07c0dc: 05a1000c */ bgez $t5,.NB0f07c110
/* f07c0e0: 3421ffff */ ori $at,$at,0xffff
/* f07c0e4: 8e0e0008 */ lw $t6,0x8($s0)
/* f07c0e8: e608007c */ swc1 $f8,0x7c($s0)
/* f07c0ec: e6000080 */ swc1 $f0,0x80($s0)
/* f07c0f0: 01c17824 */ and $t7,$t6,$at
/* f07c0f4: ae0f0008 */ sw $t7,0x8($s0)
/* f07c0f8: 8fb801f8 */ lw $t8,0x1f8($sp)
/* f07c0fc: 8fa30278 */ lw $v1,0x278($sp)
/* f07c100: c7a40218 */ lwc1 $f4,0x218($sp)
/* f07c104: 53000003 */ beqzl $t8,.NB0f07c114
/* f07c108: 8fb901f8 */ lw $t9,0x1f8($sp)
/* f07c10c: e464000c */ swc1 $f4,0xc($v1)
.NB0f07c110:
/* f07c110: 8fb901f8 */ lw $t9,0x1f8($sp)
.NB0f07c114:
/* f07c114: 8fa30278 */ lw $v1,0x278($sp)
/* f07c118: 27a60214 */ addiu $a2,$sp,0x214
/* f07c11c: 13200034 */ beqz $t9,.NB0f07c1f0
/* f07c120: 24640008 */ addiu $a0,$v1,0x8
/* f07c124: 44800000 */ mtc1 $zero,$f0
/* f07c128: 24650028 */ addiu $a1,$v1,0x28
/* f07c12c: 24075000 */ addiu $a3,$zero,0x5000
/* f07c130: afa00010 */ sw $zero,0x10($sp)
/* f07c134: e7a00014 */ swc1 $f0,0x14($sp)
/* f07c138: 0c00baf2 */ jal cd0002d7c0
/* f07c13c: e7a00018 */ swc1 $f0,0x18($sp)
/* f07c140: 54400005 */ bnezl $v0,.NB0f07c158
/* f07c144: 8fa301f0 */ lw $v1,0x1f0($sp)
/* f07c148: 0c0098a4 */ jal cdGetObstacle
/* f07c14c: 00000000 */ sll $zero,$zero,0x0
/* f07c150: afa201f0 */ sw $v0,0x1f0($sp)
/* f07c154: 8fa301f0 */ lw $v1,0x1f0($sp)
.NB0f07c158:
/* f07c158: 10600025 */ beqz $v1,.NB0f07c1f0
/* f07c15c: 00000000 */ sll $zero,$zero,0x0
/* f07c160: 8c6a0004 */ lw $t2,0x4($v1)
/* f07c164: 8fa60278 */ lw $a2,0x278($sp)
/* f07c168: 3c017f1a */ lui $at,0x7f1a
/* f07c16c: afaa01a0 */ sw $t2,0x1a0($sp)
/* f07c170: c46a0008 */ lwc1 $f10,0x8($v1)
/* f07c174: c4c60008 */ lwc1 $f6,0x8($a2)
/* f07c178: c4680010 */ lwc1 $f8,0x10($v1)
/* f07c17c: c4c40010 */ lwc1 $f4,0x10($a2)
/* f07c180: 46065001 */ sub.s $f0,$f10,$f6
/* f07c184: 01402825 */ or $a1,$t2,$zero
/* f07c188: 00c02025 */ or $a0,$a2,$zero
/* f07c18c: 46044081 */ sub.s $f2,$f8,$f4
/* f07c190: 46000282 */ mul.s $f10,$f0,$f0
/* f07c194: c42849cc */ lwc1 $f8,0x49cc($at)
/* f07c198: 46021182 */ mul.s $f6,$f2,$f2
/* f07c19c: 46065300 */ add.s $f12,$f10,$f6
/* f07c1a0: 4608603c */ c.lt.s $f12,$f8
/* f07c1a4: 00000000 */ sll $zero,$zero,0x0
/* f07c1a8: 45000007 */ bc1f .NB0f07c1c8
/* f07c1ac: 00000000 */ sll $zero,$zero,0x0
/* f07c1b0: 0fc239d6 */ jal doorsChooseSwingDirection
/* f07c1b4: e7ac0058 */ swc1 $f12,0x58($sp)
/* f07c1b8: 8fa401a0 */ lw $a0,0x1a0($sp)
/* f07c1bc: 0fc23312 */ jal doorsRequestMode
/* f07c1c0: 24050001 */ addiu $a1,$zero,0x1
/* f07c1c4: c7ac0058 */ lwc1 $f12,0x58($sp)
.NB0f07c1c8:
/* f07c1c8: 3c017f1a */ lui $at,0x7f1a
/* f07c1cc: c42449d0 */ lwc1 $f4,0x49d0($at)
/* f07c1d0: 4604603c */ c.lt.s $f12,$f4
/* f07c1d4: 00000000 */ sll $zero,$zero,0x0
/* f07c1d8: 45000005 */ bc1f .NB0f07c1f0
/* f07c1dc: 00000000 */ sll $zero,$zero,0x0
/* f07c1e0: 0fc23349 */ jal doorIsOpen
/* f07c1e4: 8fa401a0 */ lw $a0,0x1a0($sp)
/* f07c1e8: 2c480001 */ sltiu $t0,$v0,0x1
/* f07c1ec: afa80274 */ sw $t0,0x274($sp)
.NB0f07c1f0:
/* f07c1f0: 1000001a */ beqz $zero,.NB0f07c25c
/* f07c1f4: 44807000 */ mtc1 $zero,$f14
/* f07c1f8: 8e090008 */ lw $t1,0x8($s0)
.NB0f07c1fc:
/* f07c1fc: 00095880 */ sll $t3,$t1,0x2
/* f07c200: 05630016 */ bgezl $t3,.NB0f07c25c
/* f07c204: 44807000 */ mtc1 $zero,$f14
/* f07c208: c60c0034 */ lwc1 $f12,0x34($s0)
/* f07c20c: 0fc251b8 */ jal atan2f
/* f07c210: c60e003c */ lwc1 $f14,0x3c($s0)
/* f07c214: c6020034 */ lwc1 $f2,0x34($s0)
/* f07c218: c60e003c */ lwc1 $f14,0x3c($s0)
/* f07c21c: e600007c */ swc1 $f0,0x7c($s0)
/* f07c220: 46021282 */ mul.s $f10,$f2,$f2
/* f07c224: 00000000 */ sll $zero,$zero,0x0
/* f07c228: 460e7182 */ mul.s $f6,$f14,$f14
/* f07c22c: 0c012e84 */ jal sqrtf
/* f07c230: 46065300 */ add.s $f12,$f10,$f6
/* f07c234: c60c0038 */ lwc1 $f12,0x38($s0)
/* f07c238: 0fc251b8 */ jal atan2f
/* f07c23c: 46000386 */ mov.s $f14,$f0
/* f07c240: 8e0c0008 */ lw $t4,0x8($s0)
/* f07c244: 3c01dfff */ lui $at,0xdfff
/* f07c248: 3421ffff */ ori $at,$at,0xffff
/* f07c24c: 01816824 */ and $t5,$t4,$at
/* f07c250: e6000080 */ swc1 $f0,0x80($s0)
/* f07c254: ae0d0008 */ sw $t5,0x8($s0)
/* f07c258: 44807000 */ mtc1 $zero,$f14
.NB0f07c25c:
/* f07c25c: c60c006c */ lwc1 $f12,0x6c($s0)
/* f07c260: 3c02800a */ lui $v0,0x800a
/* f07c264: 8fa30278 */ lw $v1,0x278($sp)
/* f07c268: 460c703e */ c.le.s $f14,$f12
/* f07c26c: 2442e6c0 */ addiu $v0,$v0,-6464
/* f07c270: 45020015 */ bc1fl .NB0f07c2c8
/* f07c274: 8fae01f8 */ lw $t6,0x1f8($sp)
/* f07c278: c442004c */ lwc1 $f2,0x4c($v0)
/* f07c27c: 4602603e */ c.le.s $f12,$f2
/* f07c280: 00000000 */ sll $zero,$zero,0x0
/* f07c284: 45020006 */ bc1fl .NB0f07c2a0
/* f07c288: c6000064 */ lwc1 $f0,0x64($s0)
/* f07c28c: c6080068 */ lwc1 $f8,0x68($s0)
/* f07c290: c60c006c */ lwc1 $f12,0x6c($s0)
/* f07c294: 10000008 */ beqz $zero,.NB0f07c2b8
/* f07c298: e6080064 */ swc1 $f8,0x64($s0)
/* f07c29c: c6000064 */ lwc1 $f0,0x64($s0)
.NB0f07c2a0:
/* f07c2a0: c6040068 */ lwc1 $f4,0x68($s0)
/* f07c2a4: 46002281 */ sub.s $f10,$f4,$f0
/* f07c2a8: 46025182 */ mul.s $f6,$f10,$f2
/* f07c2ac: 460c3203 */ div.s $f8,$f6,$f12
/* f07c2b0: 46080100 */ add.s $f4,$f0,$f8
/* f07c2b4: e6040064 */ swc1 $f4,0x64($s0)
.NB0f07c2b8:
/* f07c2b8: c44a004c */ lwc1 $f10,0x4c($v0)
/* f07c2bc: 460a6181 */ sub.s $f6,$f12,$f10
/* f07c2c0: e606006c */ swc1 $f6,0x6c($s0)
/* f07c2c4: 8fae01f8 */ lw $t6,0x1f8($sp)
.NB0f07c2c8:
/* f07c2c8: 3c02800a */ lui $v0,0x800a
/* f07c2cc: 2442e6c0 */ addiu $v0,$v0,-6464
/* f07c2d0: 51c00037 */ beqzl $t6,.NB0f07c3b0
/* f07c2d4: 44802000 */ mtc1 $zero,$f4
/* f07c2d8: c6080070 */ lwc1 $f8,0x70($s0)
/* f07c2dc: 3c017f1a */ lui $at,0x7f1a
/* f07c2e0: 4608703c */ c.lt.s $f14,$f8
/* f07c2e4: 00000000 */ sll $zero,$zero,0x0
/* f07c2e8: 45020013 */ bc1fl .NB0f07c338
/* f07c2ec: c6000064 */ lwc1 $f0,0x64($s0)
/* f07c2f0: c6040068 */ lwc1 $f4,0x68($s0)
/* f07c2f4: c42a49d4 */ lwc1 $f10,0x49d4($at)
/* f07c2f8: c4480044 */ lwc1 $f8,0x44($v0)
/* f07c2fc: 3c017f1a */ lui $at,0x7f1a
/* f07c300: 460a2182 */ mul.s $f6,$f4,$f10
/* f07c304: c60a0064 */ lwc1 $f10,0x64($s0)
/* f07c308: 46083102 */ mul.s $f4,$f6,$f8
/* f07c30c: 46045181 */ sub.s $f6,$f10,$f4
/* f07c310: e6060064 */ swc1 $f6,0x64($s0)
/* f07c314: c6080064 */ lwc1 $f8,0x64($s0)
/* f07c318: 460e403c */ c.lt.s $f8,$f14
/* f07c31c: 00000000 */ sll $zero,$zero,0x0
/* f07c320: 45020013 */ bc1fl .NB0f07c370
/* f07c324: 8faf0274 */ lw $t7,0x274($sp)
/* f07c328: c42a49d8 */ lwc1 $f10,0x49d8($at)
/* f07c32c: 1000000f */ beqz $zero,.NB0f07c36c
/* f07c330: e60a0064 */ swc1 $f10,0x64($s0)
/* f07c334: c6000064 */ lwc1 $f0,0x64($s0)
.NB0f07c338:
/* f07c338: c6020068 */ lwc1 $f2,0x68($s0)
/* f07c33c: 3c017f1a */ lui $at,0x7f1a
/* f07c340: 4602003c */ c.lt.s $f0,$f2
/* f07c344: 00000000 */ sll $zero,$zero,0x0
/* f07c348: 45020009 */ bc1fl .NB0f07c370
/* f07c34c: 8faf0274 */ lw $t7,0x274($sp)
/* f07c350: c42449dc */ lwc1 $f4,0x49dc($at)
/* f07c354: c4480044 */ lwc1 $f8,0x44($v0)
/* f07c358: 46041182 */ mul.s $f6,$f2,$f4
/* f07c35c: 00000000 */ sll $zero,$zero,0x0
/* f07c360: 46083282 */ mul.s $f10,$f6,$f8
/* f07c364: 460a0100 */ add.s $f4,$f0,$f10
/* f07c368: e6040064 */ swc1 $f4,0x64($s0)
.NB0f07c36c:
/* f07c36c: 8faf0274 */ lw $t7,0x274($sp)
.NB0f07c370:
/* f07c370: 3c017f1a */ lui $at,0x7f1a
/* f07c374: 51e0000e */ beqzl $t7,.NB0f07c3b0
/* f07c378: 44802000 */ mtc1 $zero,$f4
/* f07c37c: c42649e0 */ lwc1 $f6,0x49e0($at)
/* f07c380: c4480044 */ lwc1 $f8,0x44($v0)
/* f07c384: c6040064 */ lwc1 $f4,0x64($s0)
/* f07c388: 46083282 */ mul.s $f10,$f6,$f8
/* f07c38c: 460a2181 */ sub.s $f6,$f4,$f10
/* f07c390: e6060064 */ swc1 $f6,0x64($s0)
/* f07c394: c6080064 */ lwc1 $f8,0x64($s0)
/* f07c398: 460e403c */ c.lt.s $f8,$f14
/* f07c39c: 00000000 */ sll $zero,$zero,0x0
/* f07c3a0: 45020003 */ bc1fl .NB0f07c3b0
/* f07c3a4: 44802000 */ mtc1 $zero,$f4
/* f07c3a8: e60e0064 */ swc1 $f14,0x64($s0)
/* f07c3ac: 44802000 */ mtc1 $zero,$f4
.NB0f07c3b0:
/* f07c3b0: c60a0064 */ lwc1 $f10,0x64($s0)
/* f07c3b4: 460a2032 */ c.eq.s $f4,$f10
/* f07c3b8: 00000000 */ sll $zero,$zero,0x0
/* f07c3bc: 45030187 */ bc1tl .NB0f07c9dc
/* f07c3c0: 8fbf004c */ lw $ra,0x4c($sp)
/* f07c3c4: c606007c */ lwc1 $f6,0x7c($s0)
/* f07c3c8: 24780008 */ addiu $t8,$v1,0x8
/* f07c3cc: 24790028 */ addiu $t9,$v1,0x28
/* f07c3d0: e7a60190 */ swc1 $f6,0x190($sp)
/* f07c3d4: c6080080 */ lwc1 $f8,0x80($s0)
/* f07c3d8: e7a8018c */ swc1 $f8,0x18c($sp)
/* f07c3dc: c6040084 */ lwc1 $f4,0x84($s0)
/* f07c3e0: e7a40188 */ swc1 $f4,0x188($sp)
/* f07c3e4: c60a0070 */ lwc1 $f10,0x70($s0)
/* f07c3e8: e7aa0184 */ swc1 $f10,0x184($sp)
/* f07c3ec: c6060074 */ lwc1 $f6,0x74($s0)
/* f07c3f0: e7a60180 */ swc1 $f6,0x180($sp)
/* f07c3f4: c60c007c */ lwc1 $f12,0x7c($s0)
/* f07c3f8: afb90054 */ sw $t9,0x54($sp)
/* f07c3fc: 0c006d55 */ jal sinf
/* f07c400: afb80058 */ sw $t8,0x58($sp)
/* f07c404: c60c0080 */ lwc1 $f12,0x80($s0)
/* f07c408: 0c006d52 */ jal cosf
/* f07c40c: e7a00068 */ swc1 $f0,0x68($sp)
/* f07c410: c7a20068 */ lwc1 $f2,0x68($sp)
/* f07c414: 46020202 */ mul.s $f8,$f0,$f2
/* f07c418: e7a80194 */ swc1 $f8,0x194($sp)
/* f07c41c: 0c006d55 */ jal sinf
/* f07c420: c60c0080 */ lwc1 $f12,0x80($s0)
/* f07c424: e7a00198 */ swc1 $f0,0x198($sp)
/* f07c428: 0c006d52 */ jal cosf
/* f07c42c: c60c007c */ lwc1 $f12,0x7c($s0)
/* f07c430: c60c0080 */ lwc1 $f12,0x80($s0)
/* f07c434: 0c006d52 */ jal cosf
/* f07c438: e7a00068 */ swc1 $f0,0x68($sp)
/* f07c43c: c7a20068 */ lwc1 $f2,0x68($sp)
/* f07c440: 8fa40058 */ lw $a0,0x58($sp)
/* f07c444: 27a50194 */ addiu $a1,$sp,0x194
/* f07c448: 46020102 */ mul.s $f4,$f0,$f2
/* f07c44c: 27a60214 */ addiu $a2,$sp,0x214
/* f07c450: 8fa701f4 */ lw $a3,0x1f4($sp)
/* f07c454: 0fc10f64 */ jal posIsMovingTowardsPosOrStoppedInRange
/* f07c458: e7a4019c */ swc1 $f4,0x19c($sp)
/* f07c45c: 50400006 */ beqzl $v0,.NB0f07c478
/* f07c460: 8fa201f8 */ lw $v0,0x1f8($sp)
/* f07c464: c60a007c */ lwc1 $f10,0x7c($s0)
/* f07c468: e7aa0200 */ swc1 $f10,0x200($sp)
/* f07c46c: c6060080 */ lwc1 $f6,0x80($s0)
/* f07c470: e7a601fc */ swc1 $f6,0x1fc($sp)
/* f07c474: 8fa201f8 */ lw $v0,0x1f8($sp)
.NB0f07c478:
/* f07c478: 10400004 */ beqz $v0,.NB0f07c48c
/* f07c47c: 3c014170 */ lui $at,0x4170
/* f07c480: 44818000 */ mtc1 $at,$f16
/* f07c484: 10000006 */ beqz $zero,.NB0f07c4a0
/* f07c488: 46008386 */ mov.s $f14,$f16
.NB0f07c48c:
/* f07c48c: 3c0140a0 */ lui $at,0x40a0
/* f07c490: 44817000 */ mtc1 $at,$f14
/* f07c494: 3c014170 */ lui $at,0x4170
/* f07c498: 44818000 */ mtc1 $at,$f16
/* f07c49c: 00000000 */ sll $zero,$zero,0x0
.NB0f07c4a0:
/* f07c4a0: 50400004 */ beqzl $v0,.NB0f07c4b4
/* f07c4a4: 3c0140a0 */ lui $at,0x40a0
/* f07c4a8: 10000004 */ beqz $zero,.NB0f07c4bc
/* f07c4ac: 46008306 */ mov.s $f12,$f16
/* f07c4b0: 3c0140a0 */ lui $at,0x40a0
.NB0f07c4b4:
/* f07c4b4: 44816000 */ mtc1 $at,$f12
/* f07c4b8: 00000000 */ sll $zero,$zero,0x0
.NB0f07c4bc:
/* f07c4bc: 50400004 */ beqzl $v0,.NB0f07c4d0
/* f07c4c0: 3c0140a0 */ lui $at,0x40a0
/* f07c4c4: 10000004 */ beqz $zero,.NB0f07c4d8
/* f07c4c8: 46008086 */ mov.s $f2,$f16
/* f07c4cc: 3c0140a0 */ lui $at,0x40a0
.NB0f07c4d0:
/* f07c4d0: 44811000 */ mtc1 $at,$f2
/* f07c4d4: 00000000 */ sll $zero,$zero,0x0
.NB0f07c4d8:
/* f07c4d8: 3c017f1a */ lui $at,0x7f1a
/* f07c4dc: c43249e4 */ lwc1 $f18,0x49e4($at)
/* f07c4e0: 3c017f1a */ lui $at,0x7f1a
/* f07c4e4: c42a49e8 */ lwc1 $f10,0x49e8($at)
/* f07c4e8: 46127202 */ mul.s $f8,$f14,$f18
/* f07c4ec: 27a40190 */ addiu $a0,$sp,0x190
/* f07c4f0: 8fa50200 */ lw $a1,0x200($sp)
/* f07c4f4: 46126002 */ mul.s $f0,$f12,$f18
/* f07c4f8: 27a60184 */ addiu $a2,$sp,0x184
/* f07c4fc: 460a1182 */ mul.s $f6,$f2,$f10
/* f07c500: 44074000 */ mfc1 $a3,$f8
/* f07c504: 46000100 */ add.s $f4,$f0,$f0
/* f07c508: e7a60014 */ swc1 $f6,0x14($sp)
/* f07c50c: 0fc1b359 */ jal applyRotation
/* f07c510: e7a40010 */ swc1 $f4,0x10($sp)
/* f07c514: c7a80190 */ lwc1 $f8,0x190($sp)
/* f07c518: c7a40200 */ lwc1 $f4,0x200($sp)
/* f07c51c: 3c014170 */ lui $at,0x4170
/* f07c520: 44818000 */ mtc1 $at,$f16
/* f07c524: 46044032 */ c.eq.s $f8,$f4
/* f07c528: 3c017f1a */ lui $at,0x7f1a
/* f07c52c: c43249ec */ lwc1 $f18,0x49ec($at)
/* f07c530: 45020021 */ bc1fl .NB0f07c5b8
/* f07c534: 8fa201f8 */ lw $v0,0x1f8($sp)
/* f07c538: 8fa201f8 */ lw $v0,0x1f8($sp)
/* f07c53c: 3c0140a0 */ lui $at,0x40a0
/* f07c540: 50400004 */ beqzl $v0,.NB0f07c554
/* f07c544: 44811000 */ mtc1 $at,$f2
/* f07c548: 10000003 */ beqz $zero,.NB0f07c558
/* f07c54c: 46008086 */ mov.s $f2,$f16
/* f07c550: 44811000 */ mtc1 $at,$f2
.NB0f07c554:
/* f07c554: 00000000 */ sll $zero,$zero,0x0
.NB0f07c558:
/* f07c558: 46121002 */ mul.s $f0,$f2,$f18
/* f07c55c: c7ae0184 */ lwc1 $f14,0x184($sp)
/* f07c560: 46000280 */ add.s $f10,$f0,$f0
/* f07c564: 460a703e */ c.le.s $f14,$f10
/* f07c568: 00000000 */ sll $zero,$zero,0x0
/* f07c56c: 45020012 */ bc1fl .NB0f07c5b8
/* f07c570: 8fa201f8 */ lw $v0,0x1f8($sp)
/* f07c574: 10400003 */ beqz $v0,.NB0f07c584
/* f07c578: 3c0140a0 */ lui $at,0x40a0
/* f07c57c: 10000003 */ beqz $zero,.NB0f07c58c
/* f07c580: 46008306 */ mov.s $f12,$f16
.NB0f07c584:
/* f07c584: 44816000 */ mtc1 $at,$f12
/* f07c588: 00000000 */ sll $zero,$zero,0x0
.NB0f07c58c:
/* f07c58c: 46126002 */ mul.s $f0,$f12,$f18
/* f07c590: 46000007 */ neg.s $f0,$f0
/* f07c594: 46000180 */ add.s $f6,$f0,$f0
/* f07c598: 460e303e */ c.le.s $f6,$f14
/* f07c59c: 00000000 */ sll $zero,$zero,0x0
/* f07c5a0: 45020005 */ bc1fl .NB0f07c5b8
/* f07c5a4: 8fa201f8 */ lw $v0,0x1f8($sp)
/* f07c5a8: 44807000 */ mtc1 $zero,$f14
/* f07c5ac: 00000000 */ sll $zero,$zero,0x0
/* f07c5b0: e7ae0184 */ swc1 $f14,0x184($sp)
/* f07c5b4: 8fa201f8 */ lw $v0,0x1f8($sp)
.NB0f07c5b8:
/* f07c5b8: 50400004 */ beqzl $v0,.NB0f07c5cc
/* f07c5bc: 3c0140a0 */ lui $at,0x40a0
/* f07c5c0: 10000004 */ beqz $zero,.NB0f07c5d4
/* f07c5c4: 46008386 */ mov.s $f14,$f16
/* f07c5c8: 3c0140a0 */ lui $at,0x40a0
.NB0f07c5cc:
/* f07c5cc: 44817000 */ mtc1 $at,$f14
/* f07c5d0: 00000000 */ sll $zero,$zero,0x0
.NB0f07c5d4:
/* f07c5d4: 46127202 */ mul.s $f8,$f14,$f18
/* f07c5d8: 50400004 */ beqzl $v0,.NB0f07c5ec
/* f07c5dc: 3c0140a0 */ lui $at,0x40a0
/* f07c5e0: 10000004 */ beqz $zero,.NB0f07c5f4
/* f07c5e4: 46008306 */ mov.s $f12,$f16
/* f07c5e8: 3c0140a0 */ lui $at,0x40a0
.NB0f07c5ec:
/* f07c5ec: 44816000 */ mtc1 $at,$f12
/* f07c5f0: 00000000 */ sll $zero,$zero,0x0
.NB0f07c5f4:
/* f07c5f4: 46126002 */ mul.s $f0,$f12,$f18
/* f07c5f8: 50400004 */ beqzl $v0,.NB0f07c60c
/* f07c5fc: 3c0140a0 */ lui $at,0x40a0
/* f07c600: 10000004 */ beqz $zero,.NB0f07c614
/* f07c604: 46008086 */ mov.s $f2,$f16
/* f07c608: 3c0140a0 */ lui $at,0x40a0
.NB0f07c60c:
/* f07c60c: 44811000 */ mtc1 $at,$f2
/* f07c610: 00000000 */ sll $zero,$zero,0x0
.NB0f07c614:
/* f07c614: 3c017f1a */ lui $at,0x7f1a
/* f07c618: c42a49f0 */ lwc1 $f10,0x49f0($at)
/* f07c61c: 46000100 */ add.s $f4,$f0,$f0
/* f07c620: 44074000 */ mfc1 $a3,$f8
/* f07c624: 460a1182 */ mul.s $f6,$f2,$f10
/* f07c628: 27a4018c */ addiu $a0,$sp,0x18c
/* f07c62c: e7a40010 */ swc1 $f4,0x10($sp)
/* f07c630: 8fa501fc */ lw $a1,0x1fc($sp)
/* f07c634: 27a60180 */ addiu $a2,$sp,0x180
/* f07c638: 0fc1b359 */ jal applyRotation
/* f07c63c: e7a60014 */ swc1 $f6,0x14($sp)
/* f07c640: c7a8018c */ lwc1 $f8,0x18c($sp)
/* f07c644: c7a401fc */ lwc1 $f4,0x1fc($sp)
/* f07c648: 3c014170 */ lui $at,0x4170
/* f07c64c: 44818000 */ mtc1 $at,$f16
/* f07c650: 46044032 */ c.eq.s $f8,$f4
/* f07c654: 3c017f1a */ lui $at,0x7f1a
/* f07c658: c43249f4 */ lwc1 $f18,0x49f4($at)
/* f07c65c: 45020022 */ bc1fl .NB0f07c6e8
/* f07c660: 8e090008 */ lw $t1,0x8($s0)
/* f07c664: 8faa01f8 */ lw $t2,0x1f8($sp)
/* f07c668: 3c0140a0 */ lui $at,0x40a0
/* f07c66c: 8fa801f8 */ lw $t0,0x1f8($sp)
/* f07c670: 51400004 */ beqzl $t2,.NB0f07c684
/* f07c674: 44811000 */ mtc1 $at,$f2
/* f07c678: 10000003 */ beqz $zero,.NB0f07c688
/* f07c67c: 46008086 */ mov.s $f2,$f16
/* f07c680: 44811000 */ mtc1 $at,$f2
.NB0f07c684:
/* f07c684: 00000000 */ sll $zero,$zero,0x0
.NB0f07c688:
/* f07c688: 46121002 */ mul.s $f0,$f2,$f18
/* f07c68c: c7ae0180 */ lwc1 $f14,0x180($sp)
/* f07c690: 46000280 */ add.s $f10,$f0,$f0
/* f07c694: 460a703e */ c.le.s $f14,$f10
/* f07c698: 00000000 */ sll $zero,$zero,0x0
/* f07c69c: 45020012 */ bc1fl .NB0f07c6e8
/* f07c6a0: 8e090008 */ lw $t1,0x8($s0)
/* f07c6a4: 11000003 */ beqz $t0,.NB0f07c6b4
/* f07c6a8: 3c0140a0 */ lui $at,0x40a0
/* f07c6ac: 10000003 */ beqz $zero,.NB0f07c6bc
/* f07c6b0: 46008306 */ mov.s $f12,$f16
.NB0f07c6b4:
/* f07c6b4: 44816000 */ mtc1 $at,$f12
/* f07c6b8: 00000000 */ sll $zero,$zero,0x0
.NB0f07c6bc:
/* f07c6bc: 46126002 */ mul.s $f0,$f12,$f18
/* f07c6c0: 46000007 */ neg.s $f0,$f0
/* f07c6c4: 46000180 */ add.s $f6,$f0,$f0
/* f07c6c8: 460e303e */ c.le.s $f6,$f14
/* f07c6cc: 00000000 */ sll $zero,$zero,0x0
/* f07c6d0: 45020005 */ bc1fl .NB0f07c6e8
/* f07c6d4: 8e090008 */ lw $t1,0x8($s0)
/* f07c6d8: 44807000 */ mtc1 $zero,$f14
/* f07c6dc: 00000000 */ sll $zero,$zero,0x0
/* f07c6e0: e7ae0180 */ swc1 $f14,0x180($sp)
/* f07c6e4: 8e090008 */ lw $t1,0x8($s0)
.NB0f07c6e8:
/* f07c6e8: 44800000 */ mtc1 $zero,$f0
/* f07c6ec: 00095800 */ sll $t3,$t1,0x0
/* f07c6f0: 05630004 */ bgezl $t3,.NB0f07c704
/* f07c6f4: c7ae0184 */ lwc1 $f14,0x184($sp)
/* f07c6f8: 1000000d */ beqz $zero,.NB0f07c730
/* f07c6fc: e7a00188 */ swc1 $f0,0x188($sp)
/* f07c700: c7ae0184 */ lwc1 $f14,0x184($sp)
.NB0f07c704:
/* f07c704: 3c0142f0 */ lui $at,0x42f0
/* f07c708: 44812000 */ mtc1 $at,$f4
/* f07c70c: 46007207 */ neg.s $f8,$f14
/* f07c710: c7a60188 */ lwc1 $f6,0x188($sp)
/* f07c714: 46044282 */ mul.s $f10,$f8,$f4
/* f07c718: 3c017f1a */ lui $at,0x7f1a
/* f07c71c: c42449f8 */ lwc1 $f4,0x49f8($at)
/* f07c720: 46065201 */ sub.s $f8,$f10,$f6
/* f07c724: 46044282 */ mul.s $f10,$f8,$f4
/* f07c728: 460a3200 */ add.s $f8,$f6,$f10
/* f07c72c: e7a80188 */ swc1 $f8,0x188($sp)
.NB0f07c730:
/* f07c730: 8fac01f8 */ lw $t4,0x1f8($sp)
/* f07c734: 11800006 */ beqz $t4,.NB0f07c750
/* f07c738: 3c017f1a */ lui $at,0x7f1a
/* f07c73c: c42449fc */ lwc1 $f4,0x49fc($at)
/* f07c740: c7a6018c */ lwc1 $f6,0x18c($sp)
/* f07c744: 46062281 */ sub.s $f10,$f4,$f6
/* f07c748: 10000002 */ beqz $zero,.NB0f07c754
/* f07c74c: e7aa012c */ swc1 $f10,0x12c($sp)
.NB0f07c750:
/* f07c750: e7a0012c */ swc1 $f0,0x12c($sp)
.NB0f07c754:
/* f07c754: c7a40188 */ lwc1 $f4,0x188($sp)
/* f07c758: c7a80190 */ lwc1 $f8,0x190($sp)
/* f07c75c: e7a00134 */ swc1 $f0,0x134($sp)
/* f07c760: 4604003e */ c.le.s $f0,$f4
/* f07c764: e7a80130 */ swc1 $f8,0x130($sp)
/* f07c768: 45000006 */ bc1f .NB0f07c784
/* f07c76c: 00000000 */ sll $zero,$zero,0x0
/* f07c770: 46002306 */ mov.s $f12,$f4
/* f07c774: 0c005ce4 */ jal mtx4LoadZRotation
/* f07c778: 27a5006c */ addiu $a1,$sp,0x6c
/* f07c77c: 10000008 */ beqz $zero,.NB0f07c7a0
/* f07c780: 27a4012c */ addiu $a0,$sp,0x12c
.NB0f07c784:
/* f07c784: 3c017f1a */ lui $at,0x7f1a
/* f07c788: c42a4a00 */ lwc1 $f10,0x4a00($at)
/* f07c78c: c7a60188 */ lwc1 $f6,0x188($sp)
/* f07c790: 27a5006c */ addiu $a1,$sp,0x6c
/* f07c794: 0c005ce4 */ jal mtx4LoadZRotation
/* f07c798: 460a3300 */ add.s $f12,$f6,$f10
/* f07c79c: 27a4012c */ addiu $a0,$sp,0x12c
.NB0f07c7a0:
/* f07c7a0: 0c005d07 */ jal mtx4LoadRotation
/* f07c7a4: 27a500ac */ addiu $a1,$sp,0xac
/* f07c7a8: 8e0d0018 */ lw $t5,0x18($s0)
/* f07c7ac: 27a500ac */ addiu $a1,$sp,0xac
/* f07c7b0: 0c005b7d */ jal mtx00015f04
/* f07c7b4: c5ac0014 */ lwc1 $f12,0x14($t5)
/* f07c7b8: 27a400ac */ addiu $a0,$sp,0xac
/* f07c7bc: 27a5006c */ addiu $a1,$sp,0x6c
/* f07c7c0: 0c005a3c */ jal mtx4MultMtx4
/* f07c7c4: 27a600ec */ addiu $a2,$sp,0xec
/* f07c7c8: 27a400ec */ addiu $a0,$sp,0xec
/* f07c7cc: 0c005b24 */ jal mtx4ToMtx3
/* f07c7d0: 27a5015c */ addiu $a1,$sp,0x15c
/* f07c7d4: 27a4015c */ addiu $a0,$sp,0x15c
/* f07c7d8: 0c005af2 */ jal mtx3Copy
/* f07c7dc: 2605001c */ addiu $a1,$s0,0x1c
/* f07c7e0: 0c006d52 */ jal cosf
/* f07c7e4: c7ac018c */ lwc1 $f12,0x18c($sp)
/* f07c7e8: e7a00138 */ swc1 $f0,0x138($sp)
/* f07c7ec: 0c006d55 */ jal sinf
/* f07c7f0: c7ac0190 */ lwc1 $f12,0x190($sp)
/* f07c7f4: c7a80138 */ lwc1 $f8,0x138($sp)
/* f07c7f8: 8fae01f8 */ lw $t6,0x1f8($sp)
/* f07c7fc: 46080102 */ mul.s $f4,$f0,$f8
/* f07c800: 11c00005 */ beqz $t6,.NB0f07c818
/* f07c804: e7a40194 */ swc1 $f4,0x194($sp)
/* f07c808: 0c006d55 */ jal sinf
/* f07c80c: c7ac01fc */ lwc1 $f12,0x1fc($sp)
/* f07c810: 10000004 */ beqz $zero,.NB0f07c824
/* f07c814: e7a00198 */ swc1 $f0,0x198($sp)
.NB0f07c818:
/* f07c818: 0c006d55 */ jal sinf
/* f07c81c: c7ac018c */ lwc1 $f12,0x18c($sp)
/* f07c820: e7a00198 */ swc1 $f0,0x198($sp)
.NB0f07c824:
/* f07c824: 0c006d52 */ jal cosf
/* f07c828: c7ac0190 */ lwc1 $f12,0x190($sp)
/* f07c82c: c7a60138 */ lwc1 $f6,0x138($sp)
/* f07c830: 3c01800a */ lui $at,0x800a
/* f07c834: c422e70c */ lwc1 $f2,-0x18f4($at)
/* f07c838: 46060282 */ mul.s $f10,$f0,$f6
/* f07c83c: c7a80194 */ lwc1 $f8,0x194($sp)
/* f07c840: 8faf0278 */ lw $t7,0x278($sp)
/* f07c844: 8fa40058 */ lw $a0,0x58($sp)
/* f07c848: 8fa50054 */ lw $a1,0x54($sp)
/* f07c84c: 27a60150 */ addiu $a2,$sp,0x150
/* f07c850: 27a70140 */ addiu $a3,$sp,0x140
/* f07c854: e7aa019c */ swc1 $f10,0x19c($sp)
/* f07c858: c6040064 */ lwc1 $f4,0x64($s0)
/* f07c85c: 46022182 */ mul.s $f6,$f4,$f2
/* f07c860: c5e40008 */ lwc1 $f4,0x8($t7)
/* f07c864: 46064282 */ mul.s $f10,$f8,$f6
/* f07c868: c7a60198 */ lwc1 $f6,0x198($sp)
/* f07c86c: 46045200 */ add.s $f8,$f10,$f4
/* f07c870: e7a80150 */ swc1 $f8,0x150($sp)
/* f07c874: c60a0064 */ lwc1 $f10,0x64($s0)
/* f07c878: 46025102 */ mul.s $f4,$f10,$f2
/* f07c87c: c5ea000c */ lwc1 $f10,0xc($t7)
/* f07c880: 46043202 */ mul.s $f8,$f6,$f4
/* f07c884: c7a4019c */ lwc1 $f4,0x19c($sp)
/* f07c888: 460a4180 */ add.s $f6,$f8,$f10
/* f07c88c: e7a60154 */ swc1 $f6,0x154($sp)
/* f07c890: c6080064 */ lwc1 $f8,0x64($s0)
/* f07c894: 46024282 */ mul.s $f10,$f8,$f2
/* f07c898: c5e80010 */ lwc1 $f8,0x10($t7)
/* f07c89c: 460a2182 */ mul.s $f6,$f4,$f10
/* f07c8a0: 46083100 */ add.s $f4,$f6,$f8
/* f07c8a4: 0fc19437 */ jal func0f065e74
/* f07c8a8: e7a40158 */ swc1 $f4,0x158($sp)
/* f07c8ac: 8fb801f8 */ lw $t8,0x1f8($sp)
/* f07c8b0: 27a40150 */ addiu $a0,$sp,0x150
/* f07c8b4: 3c0540a0 */ lui $a1,0x40a0
/* f07c8b8: 13000009 */ beqz $t8,.NB0f07c8e0
/* f07c8bc: 27a60140 */ addiu $a2,$sp,0x140
/* f07c8c0: 00003825 */ or $a3,$zero,$zero
/* f07c8c4: 0c00adde */ jal cdFindGroundYSimple
/* f07c8c8: afa00010 */ sw $zero,0x10($sp)
/* f07c8cc: 3c01420c */ lui $at,0x420c
/* f07c8d0: 44815000 */ mtc1 $at,$f10
/* f07c8d4: 00000000 */ sll $zero,$zero,0x0
/* f07c8d8: 460a0180 */ add.s $f6,$f0,$f10
/* f07c8dc: e7a60154 */ swc1 $f6,0x154($sp)
.NB0f07c8e0:
/* f07c8e0: c7a80150 */ lwc1 $f8,0x150($sp)
/* f07c8e4: 8fa40278 */ lw $a0,0x278($sp)
/* f07c8e8: e4880008 */ swc1 $f8,0x8($a0)
/* f07c8ec: c7a40154 */ lwc1 $f4,0x154($sp)
/* f07c8f0: e484000c */ swc1 $f4,0xc($a0)
/* f07c8f4: c7aa0158 */ lwc1 $f10,0x158($sp)
/* f07c8f8: 0fc193ab */ jal propDeregisterRooms
/* f07c8fc: e48a0010 */ swc1 $f10,0x10($a0)
/* f07c900: 27a40140 */ addiu $a0,$sp,0x140
/* f07c904: 0fc19283 */ jal roomsCopy
/* f07c908: 8fa50054 */ lw $a1,0x54($sp)
/* f07c90c: c7a60190 */ lwc1 $f6,0x190($sp)
/* f07c910: 8e020088 */ lw $v0,0x88($s0)
/* f07c914: e606007c */ swc1 $f6,0x7c($s0)
/* f07c918: c7a8018c */ lwc1 $f8,0x18c($sp)
/* f07c91c: e6080080 */ swc1 $f8,0x80($s0)
/* f07c920: c7a40188 */ lwc1 $f4,0x188($sp)
/* f07c924: e6040084 */ swc1 $f4,0x84($s0)
/* f07c928: c7aa0184 */ lwc1 $f10,0x184($sp)
/* f07c92c: e60a0070 */ swc1 $f10,0x70($s0)
/* f07c930: c7a60180 */ lwc1 $f6,0x180($sp)
/* f07c934: 10400024 */ beqz $v0,.NB0f07c9c8
/* f07c938: e6060074 */ swc1 $f6,0x74($s0)
/* f07c93c: 8e08008c */ lw $t0,0x8c($s0)
/* f07c940: 8c4a0000 */ lw $t2,0x0($v0)
/* f07c944: c7a401f4 */ lwc1 $f4,0x1f4($sp)
/* f07c948: 00084880 */ sll $t1,$t0,0x2
/* f07c94c: 01495821 */ addu $t3,$t2,$t1
/* f07c950: 8d6c0004 */ lw $t4,0x4($t3)
/* f07c954: c7a801f4 */ lwc1 $f8,0x1f4($sp)
/* f07c958: 05820010 */ bltzl $t4,.NB0f07c99c
/* f07c95c: c6060064 */ lwc1 $f6,0x64($s0)
/* f07c960: c6080064 */ lwc1 $f8,0x64($s0)
/* f07c964: 8fa40058 */ lw $a0,0x58($sp)
/* f07c968: 27a50150 */ addiu $a1,$sp,0x150
/* f07c96c: 46044282 */ mul.s $f10,$f8,$f4
/* f07c970: 27a60214 */ addiu $a2,$sp,0x214
/* f07c974: 44075000 */ mfc1 $a3,$f10
/* f07c978: 0fc10fab */ jal posIsArrivingLaterallyAtPos
/* f07c97c: 00000000 */ sll $zero,$zero,0x0
/* f07c980: 50400012 */ beqzl $v0,.NB0f07c9cc
/* f07c984: 02002025 */ or $a0,$s0,$zero
/* f07c988: 0fc1c542 */ jal hovercarIncrementStep
/* f07c98c: 02002025 */ or $a0,$s0,$zero
/* f07c990: 1000000e */ beqz $zero,.NB0f07c9cc
/* f07c994: 02002025 */ or $a0,$s0,$zero
/* f07c998: c6060064 */ lwc1 $f6,0x64($s0)
.NB0f07c99c:
/* f07c99c: 8fa40058 */ lw $a0,0x58($sp)
/* f07c9a0: 27a50150 */ addiu $a1,$sp,0x150
/* f07c9a4: 46083102 */ mul.s $f4,$f6,$f8
/* f07c9a8: 27a60214 */ addiu $a2,$sp,0x214
/* f07c9ac: 44072000 */ mfc1 $a3,$f4
/* f07c9b0: 0fc10fab */ jal posIsArrivingLaterallyAtPos
/* f07c9b4: 00000000 */ sll $zero,$zero,0x0
/* f07c9b8: 50400004 */ beqzl $v0,.NB0f07c9cc
/* f07c9bc: 02002025 */ or $a0,$s0,$zero
/* f07c9c0: 0fc1c542 */ jal hovercarIncrementStep
/* f07c9c4: 02002025 */ or $a0,$s0,$zero
.NB0f07c9c8:
/* f07c9c8: 02002025 */ or $a0,$s0,$zero
.NB0f07c9cc:
/* f07c9cc: 00002825 */ or $a1,$zero,$zero
/* f07c9d0: 0fc1a3b7 */ jal func0f069c70
/* f07c9d4: 24060001 */ addiu $a2,$zero,0x1
.NB0f07c9d8:
/* f07c9d8: 8fbf004c */ lw $ra,0x4c($sp)
.NB0f07c9dc:
/* f07c9dc: 8fb00048 */ lw $s0,0x48($sp)
/* f07c9e0: 27bd0278 */ addiu $sp,$sp,0x278
/* f07c9e4: 03e00008 */ jr $ra
/* f07c9e8: 00000000 */ sll $zero,$zero,0x0
);
#endif
//#define HOVVALUE() (active ? 15.0f : 5.0f)
// Mismatch: float regalloc
//void hovercarTick(struct prop *prop)
//{
// s32 stopping; // 274
// struct pad pad; // 220
// struct coord sp214;
// s16 sp210[2];
// struct hovercarobj *hovercar = (struct hovercarobj *)prop->obj;
// struct defaultobj *obj = &hovercar->base;
// u32 stack;
// f32 sp200 = hovercar->roty;
// f32 sp1fc = hovercar->rotx;
// u32 active = obj->flags & OBJFLAG_80000000; // 1f8
// f32 sp1f4 = active ? 5 : 10;
// struct prop *doorprop; // 1f0
// struct coord sp1e4;
// struct coord sp1d8;
// s16 sp1d6;
// u32 stack2;
// u32 stack3;
// struct coord sp1c0; // 1c0
// s16 sp1b0[8]; // 1b0
// f32 tmp2;
// f32 tmp3;
// f32 tmp4;
// struct doorobj *door; // 1a0
// struct coord sp194;
// f32 sp190;
// f32 sp18c;
// f32 sp188;
// f32 sp184;
// f32 sp180;
// f32 sp15c[9];
// struct coord sp150;
// s16 sp140[8];
// f32 tmp;
// f32 sp138;
// struct coord sp12c;
// Mtxf spec;
// Mtxf spac;
// Mtxf sp6c;
// f32 dist;
// s32 *padnum;
//
// doorprop = NULL;
//
// // 23c
// if (active && hovercar->deadtimer60 < 0) {
// // Exploding
// tmp = modelBboxGetYMin(modelFindBboxRodata(hovercar->base.model));
// sp1d6 = prop->rooms[0];
//
// sp1d8.x = hovercar->base.realrot[3];
// sp1d8.y = hovercar->base.realrot[4];
// sp1d8.z = hovercar->base.realrot[5];
//
// sp1e4.x = hovercar->base.realrot[3] * tmp + prop->pos.x;
// sp1e4.y = hovercar->base.realrot[4] * tmp + prop->pos.y;
// sp1e4.z = hovercar->base.realrot[5] * tmp + prop->pos.z;
//
// func0f0926bc(prop, 1, 0xffff);
// explosionCreate(NULL, &prop->pos, prop->rooms, EXPLOSIONTYPE_7, g_Vars.currentplayernum, true, &sp1e4, sp1d6, &sp1d8);
// hovercar->base.hidden |= OBJHFLAG_REAPABLE;
// return;
// }
//
// // 320
// if (hovercar->dead) {
// // 334
// if (active) {
// hovercar->deadtimer60 -= g_Vars.lvupdate240_60;
// hovercar->sparkstimer60 -= g_Vars.lvupdate240_60;
//
// if (hovercar->sparkstimer60 < 0) {
// hovercar->sparkstimer60 = 50;
//
// // Play damage sound
// propsnd0f0939f8(NULL, prop, SFX_SHIELD_DAMAGE, -1,
// -1, 1024, 0, 0, 0, -1, 0, -1, -1, -1, -1);
//
// // Create sparks
// sparksCreate(prop->rooms[0], prop, &prop->pos, NULL, 0, SPARKTYPE_00);
// }
// } else {
// // 3e8
// if (hovercar->speedtime60 == 0) {
// // 404
// hovercar->speed += 6;
//
// sp1c0.x = prop->pos.x;
// sp1c0.y = prop->pos.y - hovercar->speed;
// sp1c0.z = prop->pos.z;
//
// if (sp1c0.y < hovercar->speedaim) {
// sp1c0.y = hovercar->speedaim;
// hovercar->speedtime60 = 1;
// }
//
// func0f065e74(&prop->pos, prop->rooms, &sp1c0, sp1b0);
//
// prop->pos.x = sp1c0.x;
// prop->pos.y = sp1c0.y;
// prop->pos.z = sp1c0.z;
//
// propDeregisterRooms(prop);
// roomsCopy(sp1b0, prop->rooms);
// func0f069c70(&hovercar->base, false, true);
// }
// }
//
// return;
// }
//
// // 4bc
// chraiExecute(obj, PROPTYPE_OBJ);
// stopping = false;
//
// if (hovercar->path) {
// padnum = &hovercar->path->pads[hovercar->nextstep];
// padUnpack(*padnum, PADFIELD_POS | PADFIELD_ROOM, &pad);
//
// sp214.x = pad.pos.x;
//
// if (active) {
// sp210[0] = pad.room;
// sp210[1] = -1;
//
// sp214.y = cdFindGroundYSimple(&pad.pos, 5, sp210, NULL, NULL) + 35;
// } else {
// sp214.y = pad.pos.y;
// }
//
// sp214.z = pad.pos.z;
//
// if ((hovercar->base.flags & OBJFLAG_20000000)
// && posIsArrivingLaterallyAtPos(&prop->pos, &prop->pos, &sp214, sp1f4)) {
// hovercarIncrementStep(hovercar);
// padnum = &hovercar->path->pads[hovercar->nextstep];
// padUnpack(*padnum, PADFIELD_POS, &pad);
// }
//
// sp200 = atan2f(sp214.x - prop->pos.x, sp214.z - prop->pos.z);
// sp1fc = atan2f(sp214.y - prop->pos.y,
// sqrtf((sp214.x - prop->pos.x) * (sp214.x - prop->pos.x) + (sp214.z - prop->pos.z) * (sp214.z - prop->pos.z)));
//
// // 630
// if (hovercar->base.flags & OBJFLAG_20000000) {
// hovercar->roty = sp200;
// hovercar->rotx = sp1fc;
// obj->flags &= ~OBJFLAG_20000000;
//
// if (active) {
// prop->pos.y = sp214.y;
// }
// }
//
// if (active) {
// if (cd0002d7c0(&prop->pos, prop->rooms, &sp214, 0x5000, 0, 0, 0) == 0) {
// doorprop = cdGetObstacle();
// }
//
// if (doorprop) {
// door = (struct doorobj *)doorprop->obj;
// dist = (doorprop->pos.x - prop->pos.x) * (doorprop->pos.x - prop->pos.x)
// + (doorprop->pos.z - prop->pos.z) * (doorprop->pos.z - prop->pos.z);
//
// if (dist < 200 * 200) {
// doorsChooseSwingDirection(prop, door);
// doorsRequestMode(door, DOORMODE_OPENING);
// }
//
// if (dist < 195 * 195) {
// stopping = !doorIsOpen(door);
// }
// }
// }
// } else {
// // 750
// if (hovercar->base.flags & OBJFLAG_20000000) {
// hovercar->roty = atan2f(hovercar->base.realrot[6], hovercar->base.realrot[8]);
// hovercar->rotx = atan2f(hovercar->base.realrot[7], sqrtf(hovercar->base.realrot[8] * hovercar->base.realrot[8] + hovercar->base.realrot[6] * hovercar->base.realrot[6]));
// hovercar->base.flags &= ~OBJFLAG_20000000;
// }
// }
//
// // 7ac
// // @bug: To calculate the speed correctly, the code needs to iterate the
// // lvupdate multiplier, then adjust the speed and test for reaching the
// // speedaim within each iteration. Or at least test for exceeding the
// // speedaim after updating it. With the below implementation, a lag frame
// // during acceleration can cause the hovercar to exceed its max speed.
// if (hovercar->speedtime60 >= 0) {
// if (hovercar->speedtime60 <= g_Vars.lvupdate240freal) {
// hovercar->speed = hovercar->speedaim;
// } else {
// hovercar->speed += (hovercar->speedaim - hovercar->speed) * g_Vars.lvupdate240freal / hovercar->speedtime60;
// }
//
// hovercar->speedtime60 -= g_Vars.lvupdate240freal;
// }
//
// // 818
// if (active) {
// if (hovercar->turnyspeed60 > 0) {
// hovercar->speed -= hovercar->speedaim * (1.0f / 24.0f) * g_Vars.lvupdate240f;
//
// if (hovercar->speed < 0) {
// hovercar->speed = 0.1f;
// }
// } else {
// if (hovercar->speed < hovercar->speedaim) {
// hovercar->speed += hovercar->speedaim * (1.0f / 24.0f) * g_Vars.lvupdate240f;
// }
// }
//
// if (stopping) {
// hovercar->speed -= 50.0f / 240.f * g_Vars.lvupdate240f;
//
// if (hovercar->speed < 0) {
// hovercar->speed = 0;
// }
// }
// }
//
// // 900
// if (hovercar->speed > 0) {
// sp190 = hovercar->roty;
// sp18c = hovercar->rotx;
// sp188 = hovercar->rotz;
//
// sp184 = hovercar->turnyspeed60;
// sp180 = hovercar->turnxspeed60;
//
// // 94c
// sp194.x = sinf(hovercar->roty) * cosf(hovercar->rotx);
// sp194.y = sinf(hovercar->rotx);
// sp194.z = cosf(hovercar->rotx) * cosf(hovercar->roty);
//
// if (posIsMovingTowardsPosOrStoppedInRange(&prop->pos, &sp194, &sp214, sp1f4)) {
// sp200 = hovercar->roty;
// sp1fc = hovercar->rotx;
// }
//
// // 9c8
// // The multipliers below:
// // val * 0.013087885454297f = val * M_BADPI / 240
// // val * 0.00021813141938765f = val * M_BADPI / 240 / 60
// tmp2 = HOVVALUE();
// tmp3 = HOVVALUE();
// tmp4 = HOVVALUE();
// applyRotation(&sp190, sp200, &sp184,
// tmp2 * 0.00021813141938765f,
// tmp3 * 0.00021813141938765f + tmp3 * 0.00021813141938765f,
// tmp4 * 0.013087885454297f);
//
// // a64
// if (sp190 == sp200) {
// tmp2 = HOVVALUE() * 0.00021813141938765f;
// if (tmp2 + tmp2 >= sp184) {
// tmp2 = -(HOVVALUE() * 0.00021813141938765f);
// if (tmp2 + tmp2 <= sp184) {
// sp184 = 0;
// }
// }
// }
//
// // b04
// tmp2 = HOVVALUE();
// tmp3 = HOVVALUE();
// tmp4 = HOVVALUE();
// applyRotation(&sp18c, sp1fc, &sp180,
// tmp2 * 0.00021813141938765f,
// tmp3 * 0.00021813141938765f + tmp3 * 0.00021813141938765f,
// tmp4 * 0.013087885454297f);
//
// // b90
// if (sp18c == sp1fc) {
// tmp2 = HOVVALUE() * 0.00021813141938765f;
// if (tmp2 + tmp2 >= sp180) {
// tmp2 = -(HOVVALUE() * 0.00021813141938765f);
// if (tmp2 + tmp2 <= sp180) {
// sp180 = 0;
// }
// }
// }
//
// // c34
// if (hovercar->base.flags & OBJFLAG_80000000) {
// sp188 = 0;
// } else {
// sp188 += (-sp184 * 120 - sp188) * 0.1f;
// }
//
// // c84
// sp12c.x = active ? M_BADTAU - sp18c : 0;
// sp12c.y = sp190;
// sp12c.z = 0;
//
// // cb4
// if (sp188 >= 0) {
// mtx4LoadZRotation(sp188, &sp6c);
// } else {
// mtx4LoadZRotation(sp188 + M_BADTAU, &sp6c);
// }
//
// // cf0
// mtx4LoadRotation(&sp12c, &spac);
// mtx00015f04(hovercar->base.model->scale, &spac);
// mtx4MultMtx4(&spac, &sp6c, &spec);
// mtx4ToMtx3(&spec, sp15c);
// mtx3Copy(sp15c, hovercar->base.realrot);
//
// sp138 = cosf(sp18c);
//
// // d50
// sp194.x = sinf(sp190) * sp138;
// sp194.y = active ? sinf(sp1fc) : sinf(sp18c);
// sp194.z = cosf(sp190) * sp138;
//
// sp150.x = prop->pos.f[0] + sp194.f[0] * (hovercar->speed * g_Vars.lvupdate240freal);
// sp150.y = prop->pos.f[1] + sp194.f[1] * (hovercar->speed * g_Vars.lvupdate240freal);
// sp150.z = prop->pos.f[2] + sp194.f[2] * (hovercar->speed * g_Vars.lvupdate240freal);
//
// func0f065e74(&prop->pos, prop->rooms, &sp150, sp140);
//
// // e08
// if (active) {
// sp150.y = cdFindGroundYSimple(&sp150, 5, sp140, NULL, NULL) + 35;
//
// if (sp150.y < -100000) {
// sp150.y = prop->pos.f[1] + sp194.f[1] * (hovercar->speed * g_Vars.lvupdate240freal);
// }
// }
//
// // e68
// prop->pos.x = sp150.x;
// prop->pos.y = sp150.y;
// prop->pos.z = sp150.z;
//
// propDeregisterRooms(prop);
// roomsCopy(sp140, prop->rooms);
//
// hovercar->roty = sp190;
// hovercar->rotx = sp18c;
// hovercar->rotz = sp188;
// hovercar->turnyspeed60 = sp184;
// hovercar->turnxspeed60 = sp180;
//
// if (hovercar->path) {
// if (hovercar->path->pads[hovercar->nextstep + 1] >= 0) {
// if (posIsArrivingLaterallyAtPos(&prop->pos, &sp150, &sp214, hovercar->speed * sp1f4)) {
// hovercarIncrementStep(hovercar);
// }
// } else {
// if (posIsArrivingLaterallyAtPos(&prop->pos, &sp150, &sp214, hovercar->speed * sp1f4)) {
// hovercarIncrementStep(hovercar);
// }
// }
// }
//
// func0f069c70(&hovercar->base, false, true);
// }
//}
void hoverpropTick(struct prop *prop, bool arg1)
{
struct hoverpropobj *obj = (struct hoverpropobj *)prop->obj;
if ((obj->base.hidden & OBJHFLAG_GRABBED) == 0
&& (arg1 || (prop->flags & PROPFLAG_ONANYSCREENPREVTICK) || (obj->base.flags & OBJFLAG_CHOPPER_INACTIVE))) {
func0f0714b8(&obj->base, &obj->hov);
}
}
void hoverbikeTick(struct prop *prop, bool arg1)
{
struct hoverbikeobj *obj = (struct hoverbikeobj *)prop->obj;
if ((obj->base.hidden & OBJHFLAG_MOUNTED) == 0) {
if ((obj->base.hidden & OBJHFLAG_GRABBED) == 0
&& (arg1 || (prop->flags & PROPFLAG_ONANYSCREENPREVTICK))) {
func0f0714b8(&obj->base, &obj->hov);
}
if (obj->base.flags & OBJFLAG_HOVERBIKE_MOVINGWHILEEMPTY) {
hoverbikeUpdateMovement(obj, 0, 0, 0);
}
}
}
/**
* Show or hide the CI dropship's interior features depending on whether the
* dropship object's deactivated flag is set.
*/
void dropshipUpdateInterior(struct prop *prop)
{
struct defaultobj *obj = prop->obj;
struct model *model = obj->model;
struct modelnode *node = modelGetPart(model->filedata, MODELPART_DROPSHIP_INTERIOR);
if (node) {
union modelrwdata *data = modelGetNodeRwData(model, node);
u32 flags = obj->flags;
data->toggle.visible = (flags & OBJFLAG_DEACTIVATED) == 0;
}
}
void glassUpdatePortal(struct prop *prop, s32 playercount, bool *arg2)
{
struct tintedglassobj *glass = (struct tintedglassobj *) prop->obj;
if (g_TintedGlassEnabled) {
glass->opacity = 255;
} else {
glass->opacity = glassCalculateOpacity(&prop->pos, glass->xludist, glass->opadist, glass->unk64);
}
if (glass->portalnum >= 0 && playercount == 1) {
if (glass->opacity == 255) {
portalSetOpen(glass->portalnum, false);
} else {
portalSetOpen(glass->portalnum, true);
}
}
*arg2 = false;
}
void weaponInitMatrices(struct prop *prop)
{
struct weaponobj *weapon = prop->weapon;
struct model *model = weapon->base.model;
s32 i = 1;
Mtxf *mtxes = model->matrices;
Mtxf *ptr = &mtxes[i];
for (; i < model->filedata->nummatrices; i++) {
mtx4LoadIdentity(ptr);
ptr++;
}
}
/**
* This function relates to hanging monitor objects, but PD has none of these.
* There is no hanging monitor model in the ROM either, so it's impossible to
* know which model node types the below part numbers refer to. The only clue is
* that the rodata starts with a coordinate. There's at least 3 node types that
* fit this criteria.
*
* An assumption has been made these are position node types.
*/
void hangingmonitorInitMatrices(struct prop *prop)
{
struct defaultobj *obj = prop->obj;
struct model *model = obj->model;
Mtxf *matrices = model->matrices;
union modelrodata *rodata;
rodata = modelGetPartRodata(model->filedata, MODELPART_0000);
mtx4LoadTranslation(&rodata->position.pos, &matrices[1]);
mtx00015be0(matrices, &matrices[1]);
rodata = modelGetPartRodata(model->filedata, MODELPART_0001);
mtx4LoadTranslation(&rodata->position.pos, &matrices[2]);
mtx00015be0(matrices, &matrices[2]);
rodata = modelGetPartRodata(model->filedata, MODELPART_0002);
mtx4LoadTranslation(&rodata->position.pos, &matrices[3]);
mtx00015be0(matrices, &matrices[3]);
rodata = modelGetPartRodata(model->filedata, MODELPART_0003);
mtx4LoadTranslation(&rodata->position.pos, &matrices[4]);
mtx00015be0(matrices, &matrices[4]);
}
void objInitMatrices(struct prop *prop)
{
struct defaultobj *obj = prop->obj;
Mtxf mtx;
if (obj->type == OBJTYPE_DOOR) {
doorInitMatrices(prop);
} else {
mtx3ToMtx4(obj->realrot, &mtx);
mtx4SetTranslation(&prop->pos, &mtx);
mtx00015be4(camGetWorldToScreenMtxf(), &mtx, obj->model->matrices);
if (obj->type == OBJTYPE_CCTV) {
cctvInitMatrices(prop, &mtx);
} else if (obj->type == OBJTYPE_AUTOGUN) {
autogunInitMatrices(prop, &mtx);
} else if (obj->type == OBJTYPE_CHOPPER) {
chopperInitMatrices(prop);
} else if (obj->type == OBJTYPE_WEAPON) {
weaponInitMatrices(prop);
} else if (obj->type == OBJTYPE_HANGINGMONITORS) {
hangingmonitorInitMatrices(prop);
} else {
if (obj->model->filedata->nummatrices >= 2) {
struct modelrenderdata thing = {NULL, 1, 3};
u32 stack;
Mtxf sp28;
mtx4Copy(obj->model->matrices, &sp28);
thing.unk10 = obj->model->matrices;
thing.unk00 = &sp28;
model0001ce64(&thing, obj->model);
}
}
}
}
bool propCanRegen(struct prop *prop)
{
return true;
}
u32 objTick(struct prop *prop)
{
struct defaultobj *obj = prop->obj;
bool silent = false;
bool regenning;
u32 cmdindex;
u32 padnum;
struct defaultobj *newparent;
if (prop->timetoregen > 0) {
// Prop is taken/unavailable
regenning = true;
if (prop->timetoregen >= TICKS(60)) {
regenning = false;
}
prop->timetoregen -= g_Vars.lvupdate240_60;
// If ready to start fading in but propCanRegen returns false, wait
// another second and try again. In practice propCanRegen will always
// return true so this condition will never pass.
if (prop->timetoregen < TICKS(60) && !regenning && !propCanRegen(prop)) {
prop->timetoregen += TICKS(60);
}
if (prop->timetoregen <= 0) {
// Prop has finished fading in
prop->timetoregen = 0;
if (obj->hidden2 & OBJH2FLAG_10) {
obj->hidden |= OBJHFLAG_00001000;
} else {
obj->hidden &= ~OBJHFLAG_00001000;
}
} else if (prop->timetoregen < TICKS(60) && !regenning) {
// 1 second left - time to start fading in
if (obj->damage == 0 && (obj->hidden2 & OBJH2FLAG_DESTROYED) == 0) {
if (obj->flags & OBJFLAG_INSIDEANOTHEROBJ) {
propDeregisterRooms(prop);
propDelist(prop);
obj->hidden &= ~OBJHFLAG_00000800;
cmdindex = setupGetCmdIndexByProp(prop);
// Find the parent obj (pad is repurposed here)
padnum = obj->pad;
newparent = setupGetObjByCmdIndex(cmdindex + padnum);
if (newparent && newparent->prop) {
modelSetScale(obj->model, obj->model->scale);
propReparent(obj->prop, newparent->prop);
silent = true;
}
} else {
propEnable(prop);
setup0f0923d4(obj);
obj->hidden &= ~OBJHFLAG_00000800;
}
} else {
// Object was previously damaged. Maybe glass?
if (obj->hidden2 & OBJH2FLAG_08) {
obj->flags |= OBJFLAG_00000100;
} else {
obj->flags &= ~OBJFLAG_00000100;
}
obj->damage = 0;
obj->hidden2 &= ~OBJH2FLAG_DESTROYED;
modelFreeVertices(1, obj->model);
}
if (obj->type == OBJTYPE_SHIELD) {
struct shieldobj *shield = (struct shieldobj *)obj;
shield->amount = shield->initialamount;
}
if (!silent) {
// Play respawn sound
propsnd0f0939f8(NULL, prop, SFX_REGEN, -1,
-1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1);
}
}
}
if (obj->type == OBJTYPE_AUTOGUN) {
struct autogunobj *autogun = (struct autogunobj *)prop->obj;
if (autogun->beam) {
beamTick(autogun->beam);
}
} else if (obj->type == OBJTYPE_CHOPPER) {
struct chopperobj *chopper = (struct chopperobj *)prop->obj;
beamTick(chopper->fireslotthing->beam);
} else if (obj->type == OBJTYPE_LIFT) {
liftTick(prop);
} else if (obj->type == OBJTYPE_ESCASTEP) {
escastepTick(prop);
}
return TICKOP_NONE;
}
/**
* Tick the given object.
*
* This function is called once per player per frame. The first time it is
* called per frame a "fulltick" is done. On consecutive calls for this tick
* much of the logic is skipped, and only the logic specific to the current
* player is executed.
*/
s32 objTickPlayer(struct prop *prop)
{
bool pass;
struct defaultobj *obj = prop->obj;
struct model *model = obj->model;
bool sp592 = false;
bool pass2;
struct prop *child;
struct prop *next;
s32 result = TICKOP_NONE;
bool fulltick = false;
u32 playercount = PLAYERCOUNT();
bool sp564 = true;
bool sp560 = false;
bool sp556 = false;
bool sp552 = false;
if (obj->hidden & OBJHFLAG_ISRETICK) {
obj->hidden &= ~OBJHFLAG_ISRETICK;
} else if ((obj->hidden & OBJHFLAG_AIRBORNE) && (obj->projectile->flags & PROJECTILEFLAG_00000800) == 0) {
prop->flags &= ~PROPFLAG_ONTHISSCREENTHISTICK;
obj->hidden |= OBJHFLAG_ISRETICK;
return TICKOP_RETICK;
}
if (obj->hidden & OBJHFLAG_REAPABLE) {
pass = false;
if (obj->type == OBJTYPE_TINTEDGLASS) {
struct tintedglassobj *glass = (struct tintedglassobj *)obj;
if (glass->portalnum >= 0) {
pass = PORTAL_IS_CLOSED(glass->portalnum);
g_BgPortals[glass->portalnum].flags |= PORTALFLAG_FORCEOPEN;
}
} else if (obj->type == OBJTYPE_DOOR) {
struct doorobj *door = (struct doorobj *)obj;
if (door->portalnum >= 0) {
pass = PORTAL_IS_CLOSED(door->portalnum);
g_BgPortals[door->portalnum].flags |= PORTALFLAG_FORCEOPEN;
}
}
if (!pass) {
objDropRecursively(prop, true);
objFree(obj, false, obj->hidden2 & OBJH2FLAG_CANREGEN);
return TICKOP_FREE;
}
}
if (prop->flags & PROPFLAG_NOTYETTICKED) {
fulltick = true;
prop->flags &= ~PROPFLAG_NOTYETTICKED;
}
if (obj->hidden & OBJHFLAG_AIRBORNE) {
struct projectile *projectile = obj->projectile;
if (projectile->ownerprop && playermgrGetPlayerNumByProp(projectile->ownerprop) >= 0) {
fulltick = (projectile->ownerprop == g_Vars.currentplayer->prop);
}
}
if (model->anim) {
if (g_Anims[model->anim->animnum].flags & 0x02) {
if (g_Vars.tickmode != TICKMODE_CUTSCENE
&& modelGetCurAnimFrame(model) >= modelGetNumAnimFrames(model) - 1) {
animTurnOff(model->anim);
model->anim = NULL;
} else {
// In cutscene
struct modelrenderdata sp476 = {0, 1, 3};
Mtxf sp412;
struct coord sp400;
s16 sp384[8];
struct hov *hov = NULL;
if (fulltick) {
s32 iVar10 = g_Vars.lvupdate240;
if (g_Vars.tickmode == TICKMODE_CUTSCENE && iVar10 > 0 && g_Vars.cutsceneskip60ths > 0) {
iVar10 += g_Vars.cutsceneskip60ths * 4;
}
model0001ee18(model, iVar10, true);
}
anim00023d38(model->anim->animnum);
if ((g_Anims[model->anim->animnum].flags & 0x04)
&& anim0002384c(model->anim->animnum, model->anim->framea) < 0) {
sp552 = true;
} else {
if (fulltick) {
model0001b3bc(model);
}
sp556 = true;
sp476.unk10 = gfxAllocate(model->filedata->nummatrices * sizeof(Mtxf));
sp476.unk00 = camGetWorldToScreenMtxf();
model0001cebc(&sp476, model);
if (fulltick) {
mtx00015be4(camGetProjectionMtxF(), model->matrices, &sp412);
mtx4ToMtx3(&sp412, obj->realrot);
sp400.x = sp412.m[3][0];
sp400.y = sp412.m[3][1];
sp400.z = sp412.m[3][2];
if (obj->flags3 & OBJFLAG3_00000010) {
func0f065e98(&prop->pos, prop->rooms, &sp400, sp384);
} else {
func0f065e74(&prop->pos, prop->rooms, &sp400, sp384);
}
prop->pos.x = sp400.x;
prop->pos.y = sp400.y;
prop->pos.z = sp400.z;
propDeregisterRooms(prop);
roomsCopy(sp384, prop->rooms);
if (obj->type == OBJTYPE_HOVERPROP) {
hov = &((struct hoverpropobj *)obj)->hov;
} else if (obj->type == OBJTYPE_HOVERBIKE) {
hov = &((struct hoverbikeobj *)obj)->hov;
}
if (hov) {
hovUpdateGround(obj, hov, &prop->pos, prop->rooms, obj->realrot);
hoverpropSetTurnAngle(obj, atan2f(sp412.m[2][0], sp412.m[2][2]));
hov->unk14 = 0;
hov->unk1c = 0;
hov->unk20 = 0;
hov->unk28 = 0;
hov->unk30 = hov->ground;
hov->unk04 = prop->pos.y - hov->ground;
hov->unk0c = 0;
}
if ((obj->flags & OBJFLAG_ILLUMINATED) == 0) {
cd0002a36c(&prop->pos, prop->rooms, &obj->floorcol, 0);
}
func0f069c70(obj, true, true);
if (obj->type == OBJTYPE_LIFT) {
liftUpdateTiles((struct liftobj *)obj, false);
}
sp592 = true;
}
}
}
} else {
struct modelrenderdata sp312 = {0, 1, 3};
Mtxf sp248;
struct coord sp236;
s16 sp220[8];
s32 numchrs;
Mtxf sp152;
s32 sp148;
s32 sp144;
s32 i;
struct coord sp128;
struct coord sp116 = {0, 0, 0};
f32 sp112;
s32 tagnum;
struct geo *geos[2];
u8 *end;
f32 damage;
if (fulltick) {
sp148 = floorf(model->anim->frame);
sp148++;
model0001ee18(model, g_Vars.lvupdate240, 1);
sp144 = floorf(model->anim->frame);
for (i = sp148; i <= sp144; i++) {
anim00024b64(0, 0, model->filedata->skel, model->anim->animnum, i, &sp128, 0);
sp116.x += sp128.x * 0.1f;
sp112 = sp128.y * 0.1f;
sp116.z += sp128.z * 0.1f;
}
mtx00016208(obj->realrot, &sp116);
}
mtx3ToMtx4(obj->realrot, &sp248);
mtx4SetTranslation(&prop->pos, &sp248);
mtx4MultMtx4(camGetWorldToScreenMtxf(), &sp248, &sp152);
sp556 = true;
sp312.unk10 = gfxAllocate(model->filedata->nummatrices * sizeof(Mtxf));
sp312.unk00 = &sp152;
model0001cebc(&sp312, model);
if (fulltick) {
sp236.x = (f32)sp116.x + prop->pos.x;
sp236.y = prop->pos.y;
sp236.z = (f32)sp116.z + prop->pos.z;
if (obj->flags3 & OBJFLAG3_00000010) {
func0f065e98(&prop->pos, prop->rooms, &sp236, sp220);
} else {
func0f065e74(&prop->pos, prop->rooms, &sp236, sp220);
}
if (modelGetCurAnimFrame(model) >= modelGetNumAnimFrames(model) - 1) {
animTurnOff(model->anim);
model->anim = NULL;
mtx00015be4(camGetProjectionMtxF(), model->matrices, &sp248);
mtx4ToMtx3(&sp248, obj->realrot);
tagnum = objGetTagNum(obj);
if (tagnum >= 0) {
numchrs = chrsGetNumSlots();
for (i = 0; i < numchrs; i++) {
if (g_ChrSlots[i].myspecial == tagnum) {
g_ChrSlots[i].myspecial = -1;
}
}
}
}
prop->pos.x = sp236.x;
prop->pos.z = sp236.z;
propDeregisterRooms(prop);
roomsCopy(sp220, prop->rooms);
if (sp148 <= sp144) {
prop->pos.y = cdFindGroundYSimple(&prop->pos, 5, prop->rooms, &obj->floorcol, NULL)
+ func0f06a620(obj) + sp112;
}
func0f069c70(obj, true, true);
sp592 = true;
if (objUpdateGeometry(prop, (u8 **)geos, &end)
&& geos[0]->type == GEOTYPE_BLOCK
&& cd0002e4c4((struct geoblock *) geos[0], prop->rooms, 4) == 0) {
damage = ((obj->maxdamage - obj->damage) + 1) / 250.0f;
obj->flags &= ~OBJFLAG_INVINCIBLE;
objDamage(obj, damage, &prop->pos, WEAPON_REMOTEMINE, -1);
}
}
}
}
if (fulltick) {
if (model->anim == NULL && (obj->hidden & OBJHFLAG_AIRBORNE)) {
sp592 = func0f073c6c(obj, &sp560);
if (sp560) {
result = TICKOP_5;
}
}
if (obj->type == OBJTYPE_DOOR) {
doorTick(prop);
} else if (obj->type == OBJTYPE_CCTV && (obj->flags & OBJFLAG_DEACTIVATED) == 0) {
cctvTick(prop);
} else if (obj->type == OBJTYPE_FAN) {
fanTick(prop);
} else if (obj->type == OBJTYPE_AUTOGUN && (obj->flags & OBJFLAG_DEACTIVATED) == 0) {
autogunTick(prop);
} else if (obj->type == OBJTYPE_HOVERCAR) {
hovercarTick(prop);
} else if (obj->type == OBJTYPE_CHOPPER) {
struct chopperobj *chopper = (struct chopperobj *)obj;
if (!chopper->dead) {
if (!lvIsPaused()) {
if (chopper->attackmode == CHOPPERMODE_DEAD) {
// empty
} else if (chopper->attackmode == CHOPPERMODE_FALL) {
if (obj->flags & OBJFLAG_CHOPPER_INACTIVE) {
chopper->dead = true;
} else {
chopperTickFall(prop);
}
} else if (obj->flags & OBJFLAG_CHOPPER_INACTIVE) {
chopperTickIdle(prop);
} else if (chopper->attackmode == CHOPPERMODE_PATROL) {
chopperTickPatrol(prop);
} else if (chopper->attackmode == CHOPPERMODE_COMBAT) {
chopperTickCombat(prop);
}
}
} else {
func0f0926bc(prop, 1, 0xffff);
}
} else if (obj->type == OBJTYPE_HOVERPROP) {
hoverpropTick(prop, sp592);
} else if (obj->type == OBJTYPE_HOVERBIKE) {
hoverbikeTick(prop, sp592);
}
}
if (obj->type == OBJTYPE_TINTEDGLASS) {
glassUpdatePortal(prop, playercount, &sp564);
} else if (obj->type == OBJTYPE_DOOR) {
doorUpdatePortalIfWindowed(prop, playercount);
}
if (sp552) {
pass2 = false;
} else if (prop == bmoveGetHoverbike() || prop == bmoveGetGrabbedProp()) {
pass2 = posIsInDrawDistance(&prop->pos);
} else if (obj->flags2 & OBJFLAG2_04000000) {
pass2 = posIsInDrawDistance(&prop->pos);
} else if ((obj->hidden & OBJHFLAG_00000800) == 0 && (obj->flags2 & OBJFLAG2_INVISIBLE) == 0) {
pass2 = func0f08e8ac(prop, &prop->pos, model0001af80(model), sp564);
} else {
pass2 = false;
}
if (pass2) {
if (sp592 == false) {
func0f069630(prop, obj->nextcol, obj->floorcol);
}
if (fulltick) {
if (prop->flags & PROPFLAG_ONANYSCREENPREVTICK) {
colourTween(obj->shadecol, obj->nextcol);
} else {
obj->shadecol[0] = obj->nextcol[0];
obj->shadecol[1] = obj->nextcol[1];
obj->shadecol[2] = obj->nextcol[2];
obj->shadecol[3] = obj->nextcol[3];
}
}
prop->flags |= PROPFLAG_ONANYSCREENTHISTICK | PROPFLAG_ONTHISSCREENTHISTICK;
if (obj->type == OBJTYPE_FAN) {
fanUpdateModel(prop);
} else if (obj->model->filedata->skel == &g_SkelDropship) {
dropshipUpdateInterior(prop);
}
if (sp556 == false) {
model->matrices = gfxAllocate(model->filedata->nummatrices * sizeof(Mtxf));
objInitMatrices(prop);
model0001cb0c(model, model->filedata->rootnode);
}
prop->z = -model->matrices[0].m[3][2];
func0f07063c(prop, fulltick);
child = prop->child;
while (child) {
next = child->next;
func0f07079c(child, fulltick);
child = next;
}
} else {
prop->flags &= ~PROPFLAG_ONTHISSCREENTHISTICK;
func0f07063c(prop, fulltick);
child = prop->child;
while (child) {
next = child->next;
func0f0706f8(child, fulltick);
child = next;
}
}
if (obj->hidden & OBJHFLAG_00000100) {
obj->hidden &= ~OBJHFLAG_00000100;
objDamage(obj, RANDOMFRAC() * 4.0f + 2.0f, &prop->pos, WEAPON_NONE, (obj->hidden & 0xf0000000) >> 28);
}
if (fulltick) {
if (obj->type == OBJTYPE_AUTOGUN) {
func0f079f1c(prop);
}
objDropRecursively(prop, false);
}
return result;
}
Gfx *propsRenderBeams(Gfx *gdl)
{
struct prop *prop = g_Vars.activeprops;
while (prop) {
if (prop->type == PROPTYPE_CHR) {
struct chrdata *chr = prop->chr;
if (CHRRACE(chr) == RACE_ROBOT) {
gdl = beamRender(gdl, chr->unk348[0]->beam, true, true);
gdl = beamRender(gdl, chr->unk348[1]->beam, true, true);
} else {
if (chr->fireslots[0] >= 0) {
gdl = beamRender(gdl, &g_Fireslots[chr->fireslots[0]].beam, true, false);
}
if (chr->fireslots[1] >= 0) {
gdl = beamRender(gdl, &g_Fireslots[chr->fireslots[1]].beam, true, false);
}
}
} else if (prop->type == PROPTYPE_OBJ) {
struct defaultobj *obj = prop->obj;
if (obj->type == OBJTYPE_AUTOGUN) {
struct autogunobj *autogun = (struct autogunobj *)prop->obj;
gdl = beamRender(gdl, autogun->beam, true, false);
} else if (obj->type == OBJTYPE_CHOPPER) {
struct chopperobj *chopper = (struct chopperobj *)prop->obj;
gdl = beamRender(gdl, chopper->fireslotthing->beam, true, true);
}
} else if (prop->type == PROPTYPE_PLAYER) {
if (prop->chr && playermgrGetPlayerNumByProp(prop) != g_Vars.currentplayernum) {
struct chrdata *chr = prop->chr;
if (chr->fireslots[0] >= 0) {
gdl = beamRender(gdl, &g_Fireslots[chr->fireslots[0]].beam, true, false);
}
if (chr->fireslots[1] >= 0) {
gdl = beamRender(gdl, &g_Fireslots[chr->fireslots[1]].beam, true, false);
}
}
}
prop = prop->next;
}
return gdl;
}
void tvscreenSetCmdlist(struct tvscreen *screen, u32 *cmdlist)
{
screen->cmdlist = cmdlist;
screen->offset = 0;
}
u32 g_TvCmdlist00[] = {
tvcmd_settexture(29),
tvcmd_setcolour(0x008000ff, 1),
tvcmd_scrollrely(-512, 80),
tvcmd_pause(120),
tvcmd_scrollrely(-256, 20),
tvcmd_pause(120),
tvcmd_scrollrely(-128, 10),
tvcmd_pause(40),
tvcmd_scrollrely(-512, 40),
tvcmd_pause(60),
tvcmd_scrollrely(-64, 30),
tvcmd_pause(120),
tvcmd_restart(),
};
u32 g_TvCmdlist01[] = {
tvcmd_setcolour(0x202020ff, 1),
tvcmd_settexture(28),
tvcmd_scrollrelx(2048, 120),
tvcmd_pause(120),
tvcmd_scaleabsx(256, 1),
tvcmd_scaleabsy(512, 60),
tvcmd_scrollrelx(-8192, 120),
tvcmd_pause(120),
tvcmd_scaleabsx(1024, 1),
tvcmd_scaleabsy(1024, 60),
tvcmd_scaleabsy(1024, 60),
tvcmd_scrollrelx(2048, 120),
tvcmd_pause(120),
tvcmd_scaleabsx(128, 1),
tvcmd_scaleabsy(2048, 60),
tvcmd_scaleabsy(1024, 120),
tvcmd_scrollrely(1024, 60),
tvcmd_scrollrelx(512, 120),
tvcmd_pause(120),
tvcmd_restart(),
};
u32 g_TvCmdlist02[] = {
tvcmd_setcolour(0x202020ff, 1),
tvcmd_settexture(28),
tvcmd_scaleabsx(128, 1),
tvcmd_scaleabsy(2048, 60),
tvcmd_scaleabsy(1024, 120),
tvcmd_scrollrely(1024, 10),
tvcmd_scrollrelx(512, 40),
tvcmd_pause(120),
tvcmd_restart(),
};
u32 g_TvCmdlist03[] = {
tvcmd_settexture(29),
tvcmd_setcolour(0x008000ff, 1),
tvcmd_scrollrely(-512, 80),
tvcmd_pause(120),
tvcmd_scrollrely(-256, 20),
tvcmd_pause(120),
tvcmd_scrollrely(-128, 10),
tvcmd_pause(40),
tvcmd_scrollrely(-512, 40),
tvcmd_pause(60),
tvcmd_scrollrely(-64, 30),
tvcmd_pause(120),
tvcmd_restart(),
};
u32 g_TvCmdlist15[] = {
tvcmd_settexture(50),
tvcmd_setcolour(0x008000fe, 1),
tvcmd_scrollrely(-512, 80),
tvcmd_pause(120),
tvcmd_scrollrely(-256, 20),
tvcmd_pause(120),
tvcmd_scrollrely(-128, 10),
tvcmd_pause(40),
tvcmd_scrollrely(-512, 40),
tvcmd_pause(60),
tvcmd_scrollrely(-64, 30),
tvcmd_pause(120),
tvcmd_restart(),
};
u32 g_TvCmdlist04[] = {
tvcmd_settexture(29),
tvcmd_setcolour(0x280000ff, 1),
tvcmd_scrollrely(512, 80),
tvcmd_pause(120),
tvcmd_scrollrely(256, 20),
tvcmd_pause(120),
tvcmd_scrollrely(128, 10),
tvcmd_pause(40),
tvcmd_scrollrely(512, 40),
tvcmd_pause(60),
tvcmd_scrollrely(64, 30),
tvcmd_pause(120),
tvcmd_scrollrely(256, 20),
tvcmd_pause(120),
tvcmd_scrollrely(128, 10),
tvcmd_restart(),
};
u32 g_TvCmdlist05[] = {
tvcmd_settexture(29),
tvcmd_setcolour(0x003c00ff, 1),
tvcmd_scrollrely(512, 80),
tvcmd_pause(120),
tvcmd_scrollrely(128, 10),
tvcmd_pause(40),
tvcmd_scrollrely(256, 20),
tvcmd_pause(120),
tvcmd_scrollrely(128, 10),
tvcmd_pause(40),
tvcmd_scrollrely(512, 40),
tvcmd_pause(60),
tvcmd_scrollrely(64, 30),
tvcmd_pause(120),
tvcmd_restart(),
};
u32 g_TvCmdlist06[] = {
tvcmd_settexture(30),
tvcmd_setcolour(0x404000ff, 1),
tvcmd_scrollrelx(640, 1),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 g_TvCmdlist07[] = {
tvcmd_settexture(30),
tvcmd_setcolour(0x004040ff, 1),
tvcmd_scrollrelx(640, 1),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 g_TvCmdlist08[] = {
tvcmd_settexture(30),
tvcmd_setcolour(0x008000ff, 1),
tvcmd_scrollrelx(-640, 1),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 g_TvCmdlist0F[] = {
tvcmd_settexture(49),
tvcmd_scaleabsx(512, 0),
tvcmd_scaleabsy(512, 0),
tvcmd_setcolour(0xdc2828ff, 60),
tvcmd_pause(60),
tvcmd_setcolour(0x323232ff, 10),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 g_TvCmdlist10[] = {
tvcmd_settexture(49),
tvcmd_scaleabsx(512, 0),
tvcmd_scaleabsy(512, 0),
tvcmd_setcolour(0x32c832ff, 60),
tvcmd_pause(60),
tvcmd_setcolour(0x323232ff, 10),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 g_TvCmdlist11[] = {
tvcmd_settexture(49),
tvcmd_scaleabsx(512, 0),
tvcmd_scaleabsy(512, 0),
tvcmd_setcolour(0x323232ff, 10),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 g_TvCmdlist12[] = {
tvcmd_settexture(49),
tvcmd_scaleabsx(512, 0),
tvcmd_scaleabsy(512, 0),
tvcmd_setcolour(0xdc2828ff, 10),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 g_TvCmdlist13[] = {
tvcmd_settexture(49),
tvcmd_scaleabsx(512, 0),
tvcmd_scaleabsy(512, 0),
tvcmd_setcolour(0x32c832ff, 10),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 g_TvCmdlist16[] = {
tvcmd_settexture(51),
tvcmd_setcolour(0xffffffff, 1),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 g_TvCmdlist17[] = {
tvcmd_settexture(72),
tvcmd_setcolour(0xffffffff, 1),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 g_TvCmdlist18[] = {
tvcmd_settexture(73),
tvcmd_setcolour(0xffffffff, 1),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 g_TvCmdlist19[] = {
tvcmd_settexture(74),
tvcmd_setcolour(0xffffffff, 1),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 g_TvCmdlist1A[] = {
tvcmd_settexture(75),
tvcmd_setcolour(0xffffffff, 1),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 g_TvCmdlist1B[] = {
tvcmd_settexture(76),
tvcmd_setcolour(0xffffffff, 1),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 g_TvCmdlist1C[] = {
tvcmd_settexture(77),
tvcmd_setcolour(0xffffffff, 1),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 g_TvCmdlist24[] = {
tvcmd_setcolour(0x000000ff, 1),
tvcmd_settexture(75),
tvcmd_pause(1),
tvcmd_setcolour(0xffffffff, 180),
tvcmd_pause(360),
tvcmd_setcolour(0x000000ff, 30),
tvcmd_pause(30),
tvcmd_settexture(76),
tvcmd_pause(1),
tvcmd_setcolour(0xffffffff, 180),
tvcmd_pause(360),
tvcmd_setcolour(0x000000ff, 30),
tvcmd_pause(30),
tvcmd_settexture(77),
tvcmd_pause(1),
tvcmd_setcolour(0xffffffff, 180),
tvcmd_pause(360),
tvcmd_setcolour(0x000000ff, 29),
tvcmd_pause(29),
tvcmd_restart(),
};
u32 g_TvCmdlist1D[] = {
tvcmd_settexture(78),
tvcmd_setcolour(0xffffffff, 1),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 var8006a4dc[] = {
tvcmd_settexture(52),
tvcmd_setcolour(0xffffffff, 1),
tvcmd_pause(5),
tvcmd_settexture(53),
tvcmd_pause(5),
tvcmd_settexture(54),
tvcmd_pause(5),
tvcmd_settexture(55),
tvcmd_pause(5),
tvcmd_restart(),
};
u32 var8006a52c[] = {
tvcmd_settexture(79),
tvcmd_setcolour(0xffffffff, 1),
tvcmd_pause(5),
tvcmd_settexture(80),
tvcmd_pause(5),
tvcmd_settexture(81),
tvcmd_pause(5),
tvcmd_settexture(82),
tvcmd_pause(5),
tvcmd_restart(),
};
u32 var8006a57c[] = {
tvcmd_settexture(56),
tvcmd_setcolour(0xffffffff, 1),
tvcmd_pause(10),
tvcmd_settexture(57),
tvcmd_pause(10),
tvcmd_settexture(58),
tvcmd_pause(10),
tvcmd_settexture(59),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 var8006a5cc[] = {
tvcmd_settexture(60),
tvcmd_setcolour(0xffffffff, 1),
tvcmd_pause(15),
tvcmd_settexture(61),
tvcmd_pause(15),
tvcmd_restart(),
};
u32 var8006a5fc[] = {
tvcmd_settexture(62),
tvcmd_setcolour(0xffffffff, 1),
tvcmd_pause(10),
tvcmd_settexture(63),
tvcmd_pause(10),
tvcmd_settexture(64),
tvcmd_pause(10),
tvcmd_settexture(65),
tvcmd_pause(10),
tvcmd_settexture(66),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 var8006a65c[] = {
tvcmd_settexture(67),
tvcmd_setcolour(0xffffffff, 1),
tvcmd_pause(10),
tvcmd_settexture(68),
tvcmd_pause(10),
tvcmd_settexture(69),
tvcmd_pause(10),
tvcmd_settexture(70),
tvcmd_pause(10),
tvcmd_settexture(71),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 g_TvCmdlist25[] = {
tvcmd_settexture(83),
tvcmd_setcolour(0xffffffff, 1),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 g_TvCmdlist26[] = {
tvcmd_settexture(84),
tvcmd_setcolour(0xffffffff, 1),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 g_TvCmdlist27[] = {
tvcmd_settexture(85),
tvcmd_setcolour(0x008000ff, 1),
tvcmd_scrollrely(-512, 80),
tvcmd_pause(80),
tvcmd_restart(),
};
u32 g_TvCmdlist28[] = {
tvcmd_settexture(85),
tvcmd_setcolour(0x0032c8ff, 1),
tvcmd_scrollrely(512, 80),
tvcmd_pause(80),
tvcmd_restart(),
};
u32 g_TvCmdlist29[] = {
tvcmd_settexture(86),
tvcmd_setcolour(0xffffffff, 1),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 g_TvCmdlist2A[] = {
tvcmd_settexture(86),
tvcmd_setcolour(0xffffffff, 1),
tvcmd_scrollrely(-512, 80),
tvcmd_pause(80),
tvcmd_restart(),
};
u32 g_TvCmdlist2B[] = {
tvcmd_settexture(87),
tvcmd_setcolour(0x008000ff, 1),
tvcmd_scrollrely(-512, 80),
tvcmd_pause(80),
tvcmd_restart(),
};
u32 g_TvCmdlist2C[] = {
tvcmd_settexture(87),
tvcmd_setcolour(0x0032c8ff, 1),
tvcmd_scrollrely(512, 80),
tvcmd_pause(80),
tvcmd_restart(),
};
u32 g_TvCmdlist2D[] = {
tvcmd_settexture(88),
tvcmd_setcolour(0xffffffff, 1),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 g_TvCmdlist2E[] = {
tvcmd_settexture(89),
tvcmd_setcolour(0x007f00ff, 1),
tvcmd_scrollrely(-512, 80),
tvcmd_pause(120),
tvcmd_scrollrely(-256, 20),
tvcmd_pause(120),
tvcmd_scrollrely(-128, 10),
tvcmd_pause(40),
tvcmd_scrollrely(-512, 40),
tvcmd_pause(60),
tvcmd_scrollrely(-64, 30),
tvcmd_pause(120),
tvcmd_restart(),
};
u32 g_TvCmdlist2F[] = {
tvcmd_settexture(89),
tvcmd_setcolour(0xff7f00ff, 1),
tvcmd_scrollrely(512, 80),
tvcmd_pause(120),
tvcmd_scrollrely(256, 20),
tvcmd_pause(120),
tvcmd_scrollrely(128, 10),
tvcmd_pause(40),
tvcmd_scrollrely(512, 40),
tvcmd_pause(60),
tvcmd_scrollrely(64, 30),
tvcmd_pause(120),
tvcmd_restart(),
};
u32 g_TvCmdlist30[] = {
tvcmd_settexture(90),
tvcmd_setcolour(0xffffffff, 1),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 g_TvCmdlist31[] = {
tvcmd_settexture(91),
tvcmd_setcolour(0xffffffff, 1),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 g_TvCmdlist32[] = {
tvcmd_settexture(92),
tvcmd_setcolour(0xffffffff, 1),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 g_TvCmdlist33[] = {
tvcmd_setcolour(0x000000ff, 1),
tvcmd_settexture(90),
tvcmd_pause(1),
tvcmd_setcolour(0xffffffff, 180),
tvcmd_pause(360),
tvcmd_setcolour(0x000000ff, 30),
tvcmd_pause(30),
tvcmd_settexture(91),
tvcmd_pause(1),
tvcmd_setcolour(0xffffffff, 180),
tvcmd_pause(360),
tvcmd_setcolour(0x000000ff, 30),
tvcmd_pause(30),
tvcmd_settexture(92),
tvcmd_pause(1),
tvcmd_setcolour(0xffffffff, 180),
tvcmd_pause(360),
tvcmd_setcolour(0x000000ff, 29),
tvcmd_pause(29),
tvcmd_restart(),
};
u32 g_TvCmdlist34[] = {
tvcmd_settexture(93),
tvcmd_setcolour(0xffffffff, 1),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 g_TvCmdlist35[] = {
tvcmd_settexture(94),
tvcmd_setcolour(0xffffffff, 1),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 g_TvCmdlist36[] = {
tvcmd_settexture(95),
tvcmd_setcolour(0xffffffff, 1),
tvcmd_pause(10),
tvcmd_restart(),
};
u32 g_TvCmdlist14[] = {
tvcmd_settexture(0),
tvcmd_setcolour(0x000000ff, 0),
tvcmd_yield(),
// flow on to next cmdlist
};
u32 var8006aaa0[] = {
tvcmd_scaleabsx(1024, 0),
tvcmd_scaleabsy(1024, 0),
tvcmd_pause(1),
tvcmd_scaleabsx(4096, 20),
tvcmd_scaleabsy(4096, 20),
tvcmd_pause(20),
tvcmd_restart(),
};
u32 var8006aae4[] = {
tvcmd_settexture(0),
tvcmd_scrollrelx(1024, 20),
tvcmd_pause(20),
tvcmd_scrollrely(1024, 20),
tvcmd_setcolour(0x000000ff, 20),
tvcmd_pause(20),
tvcmd_scaleabsx(512, 20),
tvcmd_scaleabsy(512, 20),
tvcmd_setcolour(0xffffffff, 20),
tvcmd_pause(20),
tvcmd_scaleabsx(1024, 20),
tvcmd_scaleabsy(1024, 20),
tvcmd_pause(20),
tvcmd_restart(),
};
void tvscreenSetImageByNum(struct tvscreen *screen, s32 imagenum)
{
u32 *image = g_TvCmdlist00;
switch (imagenum) {
case TVCMDLIST_01: image = g_TvCmdlist01; break;
case TVCMDLIST_02: image = g_TvCmdlist02; break;
case TVCMDLIST_03: image = g_TvCmdlist03; break;
case TVCMDLIST_04: image = g_TvCmdlist04; break;
case TVCMDLIST_05: image = g_TvCmdlist05; break;
case TVCMDLIST_06: image = g_TvCmdlist06; break;
case TVCMDLIST_07: image = g_TvCmdlist07; break;
case TVCMDLIST_08: image = g_TvCmdlist08; break;
case TVCMDLIST_09: image = g_TvCmdlist03; break;
case TVCMDLIST_0A: image = g_TvCmdlist03; break;
case TVCMDLIST_0B: image = g_TvCmdlist03; break;
case TVCMDLIST_0C: image = g_TvCmdlist03; break;
case TVCMDLIST_0D: image = g_TvCmdlist03; break;
case TVCMDLIST_0E: image = g_TvCmdlist03; break;
case TVCMDLIST_0F: image = g_TvCmdlist0F; break;
case TVCMDLIST_10: image = g_TvCmdlist10; break;
case TVCMDLIST_11: image = g_TvCmdlist11; break;
case TVCMDLIST_12: image = g_TvCmdlist12; break;
case TVCMDLIST_13: image = g_TvCmdlist13; break;
case TVCMDLIST_14: image = g_TvCmdlist14; break;
case TVCMDLIST_15: image = g_TvCmdlist15; break;
case TVCMDLIST_16: image = g_TvCmdlist16; break;
case TVCMDLIST_17: image = g_TvCmdlist17; break;
case TVCMDLIST_18: image = g_TvCmdlist18; break;
case TVCMDLIST_19: image = g_TvCmdlist19; break;
case TVCMDLIST_1A: image = g_TvCmdlist1A; break;
case TVCMDLIST_1B: image = g_TvCmdlist1B; break;
case TVCMDLIST_1C: image = g_TvCmdlist1C; break;
case TVCMDLIST_1D: image = g_TvCmdlist1D; break;
case TVCMDLIST_24: image = g_TvCmdlist24; break;
case TVCMDLIST_1E: image = g_TvCmdlist08; break;
case TVCMDLIST_1F: image = g_TvCmdlist08; break;
case TVCMDLIST_20: image = g_TvCmdlist08; break;
case TVCMDLIST_21: image = g_TvCmdlist08; break;
case TVCMDLIST_22: image = g_TvCmdlist08; break;
case TVCMDLIST_23: image = g_TvCmdlist08; break;
case TVCMDLIST_25: image = g_TvCmdlist25; break;
case TVCMDLIST_26: image = g_TvCmdlist26; break;
case TVCMDLIST_27: image = g_TvCmdlist27; break;
case TVCMDLIST_28: image = g_TvCmdlist28; break;
case TVCMDLIST_29: image = g_TvCmdlist29; break;
case TVCMDLIST_2A: image = g_TvCmdlist2A; break;
case TVCMDLIST_2B: image = g_TvCmdlist2B; break;
case TVCMDLIST_2C: image = g_TvCmdlist2C; break;
case TVCMDLIST_2D: image = g_TvCmdlist2D; break;
case TVCMDLIST_2E: image = g_TvCmdlist2E; break;
case TVCMDLIST_2F: image = g_TvCmdlist2F; break;
case TVCMDLIST_30: image = g_TvCmdlist30; break;
case TVCMDLIST_31: image = g_TvCmdlist31; break;
case TVCMDLIST_32: image = g_TvCmdlist32; break;
case TVCMDLIST_33: image = g_TvCmdlist33; break;
case TVCMDLIST_34: image = g_TvCmdlist34; break;
case TVCMDLIST_35: image = g_TvCmdlist35; break;
case TVCMDLIST_36: image = g_TvCmdlist36; break;
case TVCMDLIST_00:
break;
}
tvscreenSetCmdlist(screen, image);
}
void tvscreenSetTexture(struct tvscreen *screen, s32 texturenum)
{
screen->tconfig = (struct textureconfig *)texturenum;
}
GLOBAL_ASM(
glabel tvscreenRender
.late_rodata
glabel var7f1aa7cc
.word 0x40c907a9
glabel var7f1aa7d0
.word 0x38c907a9
glabel var7f1aa7d4
.word tvscreenRender+0xec # f07fce4
glabel var7f1aa7d8
.word tvscreenRender+0x100 # f07fcf8
glabel var7f1aa7dc
.word tvscreenRender+0x170 # f07fd68
glabel var7f1aa7e0
.word tvscreenRender+0x1e0 # f07fdd8
glabel var7f1aa7e4
.word tvscreenRender+0x24c # f07fe44
glabel var7f1aa7e8
.word tvscreenRender+0x2b8 # f07feb0
glabel var7f1aa7ec
.word tvscreenRender+0x324 # f07ff1c
glabel var7f1aa7f0
.word tvscreenRender+0x390 # f07ff88
glabel var7f1aa7f4
.word tvscreenRender+0x3bc # f07ffb4
glabel var7f1aa7f8
.word tvscreenRender+0x408 # f080000
glabel var7f1aa7fc
.word tvscreenRender+0x428 # f080020
glabel var7f1aa800
.word tvscreenRender+0x47c # f080074
glabel var7f1aa804
.word tvscreenRender+0x484 # f08007c
glabel var7f1aa808
.word tvscreenRender+0x48c # f080084
glabel var7f1aa80c
.word tvscreenRender+0x524 # f08011c
glabel var7f1aa810
.word tvscreenRender+0x548 # f080140
glabel var7f1aa814
.word 0x38c907a9
glabel var7f1aa818
.word 0x38c907a9
glabel var7f1aa81c
.word 0x38c907a9
glabel var7f1aa820
.word 0x3fc907a9
glabel var7f1aa824
.word 0x3fb50481
.text
/* f07fbf8: 27bdff48 */ addiu $sp,$sp,-184
/* f07fbfc: afb10048 */ sw $s1,0x48($sp)
/* f07fc00: afb00044 */ sw $s0,0x44($sp)
/* f07fc04: 00c08025 */ or $s0,$a2,$zero
/* f07fc08: 00a08825 */ or $s1,$a1,$zero
/* f07fc0c: afbf004c */ sw $ra,0x4c($sp)
/* f07fc10: f7ba0038 */ sdc1 $f26,0x38($sp)
/* f07fc14: f7b80030 */ sdc1 $f24,0x30($sp)
/* f07fc18: f7b60028 */ sdc1 $f22,0x28($sp)
/* f07fc1c: f7b40020 */ sdc1 $f20,0x20($sp)
/* f07fc20: afa400b8 */ sw $a0,0xb8($sp)
/* f07fc24: 10a0035d */ beqz $a1,.L0f08099c
/* f07fc28: afa700c4 */ sw $a3,0xc4($sp)
/* f07fc2c: 94ae0000 */ lhu $t6,0x0($a1)
/* f07fc30: 24010018 */ addiu $at,$zero,0x18
/* f07fc34: 31cf00ff */ andi $t7,$t6,0xff
/* f07fc38: 55e10359 */ bnel $t7,$at,.L0f0809a0
/* f07fc3c: 8fbf004c */ lw $ra,0x4c($sp)
/* f07fc40: 0fc59e59 */ jal gfxAllocateVertices
/* f07fc44: 24040004 */ addiu $a0,$zero,0x4
/* f07fc48: afa200b4 */ sw $v0,0xb4($sp)
/* f07fc4c: 0fc59e73 */ jal gfxAllocateColours
/* f07fc50: 24040001 */ addiu $a0,$zero,0x1
/* f07fc54: 8fb800c4 */ lw $t8,0xc4($sp)
/* f07fc58: afa200b0 */ sw $v0,0xb0($sp)
/* f07fc5c: 8fa400b8 */ lw $a0,0xb8($sp)
/* f07fc60: 27190008 */ addiu $t9,$t8,0x8
/* f07fc64: afb900c4 */ sw $t9,0xc4($sp)
/* f07fc68: afb800ac */ sw $t8,0xac($sp)
/* f07fc6c: 8e290004 */ lw $t1,0x4($s1)
/* f07fc70: 02202825 */ or $a1,$s1,$zero
/* f07fc74: 0c006a87 */ jal modelGetNodeRwData
/* f07fc78: afa900a8 */ sw $t1,0xa8($sp)
/* f07fc7c: 3c017f1b */ lui $at,%hi(var7f1aa7cc)
/* f07fc80: c43aa7cc */ lwc1 $f26,%lo(var7f1aa7cc)($at)
/* f07fc84: 3c013a80 */ lui $at,0x3a80
/* f07fc88: 4481c000 */ mtc1 $at,$f24
/* f07fc8c: 3c013f80 */ lui $at,0x3f80
/* f07fc90: 4481a000 */ mtc1 $at,$f20
/* f07fc94: 3c017f1b */ lui $at,%hi(var7f1aa7d0)
/* f07fc98: 3c06800a */ lui $a2,%hi(g_Vars)
/* f07fc9c: 4480b000 */ mtc1 $zero,$f22
/* f07fca0: afa200a4 */ sw $v0,0xa4($sp)
/* f07fca4: 00008825 */ or $s1,$zero,$zero
/* f07fca8: 24c69fc0 */ addiu $a2,$a2,%lo(g_Vars)
/* f07fcac: c422a7d0 */ lwc1 $f2,%lo(var7f1aa7d0)($at)
/* f07fcb0: 96020004 */ lhu $v0,0x4($s0)
.L0f07fcb4:
/* f07fcb4: 8e0a0000 */ lw $t2,0x0($s0)
/* f07fcb8: 00025880 */ sll $t3,$v0,0x2
/* f07fcbc: 014b1821 */ addu $v1,$t2,$t3
/* f07fcc0: 8c6c0000 */ lw $t4,0x0($v1)
/* f07fcc4: 2d810010 */ sltiu $at,$t4,0x10
/* f07fcc8: 10200139 */ beqz $at,.L0f0801b0
/* f07fccc: 000c6080 */ sll $t4,$t4,0x2
/* f07fcd0: 3c017f1b */ lui $at,%hi(var7f1aa7d4)
/* f07fcd4: 002c0821 */ addu $at,$at,$t4
/* f07fcd8: 8c2ca7d4 */ lw $t4,%lo(var7f1aa7d4)($at)
/* f07fcdc: 01800008 */ jr $t4
/* f07fce0: 00000000 */ nop
/* f07fce4: 244d0001 */ addiu $t5,$v0,0x1
/* f07fce8: e6160040 */ swc1 $f22,0x40($s0)
/* f07fcec: e6160054 */ swc1 $f22,0x54($s0)
/* f07fcf0: 1000012f */ b .L0f0801b0
/* f07fcf4: a60d0004 */ sh $t5,0x4($s0)
/* f07fcf8: e616003c */ swc1 $f22,0x3c($s0)
/* f07fcfc: 8c620008 */ lw $v0,0x8($v1)
/* f07fd00: 54400004 */ bnezl $v0,.L0f07fd14
/* f07fd04: 44822000 */ mtc1 $v0,$f4
/* f07fd08: 1000000a */ b .L0f07fd34
/* f07fd0c: e6140040 */ swc1 $f20,0x40($s0)
/* f07fd10: 44822000 */ mtc1 $v0,$f4
.L0f07fd14:
/* f07fd14: 3c014f80 */ lui $at,0x4f80
/* f07fd18: 04410004 */ bgez $v0,.L0f07fd2c
/* f07fd1c: 468021a0 */ cvt.s.w $f6,$f4
/* f07fd20: 44814000 */ mtc1 $at,$f8
/* f07fd24: 00000000 */ nop
/* f07fd28: 46083180 */ add.s $f6,$f6,$f8
.L0f07fd2c:
/* f07fd2c: 4606a283 */ div.s $f10,$f20,$f6
/* f07fd30: e60a0040 */ swc1 $f10,0x40($s0)
.L0f07fd34:
/* f07fd34: c6000038 */ lwc1 $f0,0x38($s0)
/* f07fd38: 960f0004 */ lhu $t7,0x4($s0)
/* f07fd3c: e6000044 */ swc1 $f0,0x44($s0)
/* f07fd40: 8c6e0004 */ lw $t6,0x4($v1)
/* f07fd44: 25f80003 */ addiu $t8,$t7,0x3
/* f07fd48: a6180004 */ sh $t8,0x4($s0)
/* f07fd4c: 448e9000 */ mtc1 $t6,$f18
/* f07fd50: 00000000 */ nop
/* f07fd54: 46809120 */ cvt.s.w $f4,$f18
/* f07fd58: 46182202 */ mul.s $f8,$f4,$f24
/* f07fd5c: 46080180 */ add.s $f6,$f0,$f8
/* f07fd60: 10000113 */ b .L0f0801b0
/* f07fd64: e6060048 */ swc1 $f6,0x48($s0)
/* f07fd68: e6160050 */ swc1 $f22,0x50($s0)
/* f07fd6c: 8c620008 */ lw $v0,0x8($v1)
/* f07fd70: 54400004 */ bnezl $v0,.L0f07fd84
/* f07fd74: 44825000 */ mtc1 $v0,$f10
/* f07fd78: 1000000a */ b .L0f07fda4
/* f07fd7c: e6140054 */ swc1 $f20,0x54($s0)
/* f07fd80: 44825000 */ mtc1 $v0,$f10
.L0f07fd84:
/* f07fd84: 3c014f80 */ lui $at,0x4f80
/* f07fd88: 04410004 */ bgez $v0,.L0f07fd9c
/* f07fd8c: 468054a0 */ cvt.s.w $f18,$f10
/* f07fd90: 44812000 */ mtc1 $at,$f4
/* f07fd94: 00000000 */ nop
/* f07fd98: 46049480 */ add.s $f18,$f18,$f4
.L0f07fd9c:
/* f07fd9c: 4612a203 */ div.s $f8,$f20,$f18
/* f07fda0: e6080054 */ swc1 $f8,0x54($s0)
.L0f07fda4:
/* f07fda4: c600004c */ lwc1 $f0,0x4c($s0)
/* f07fda8: 96090004 */ lhu $t1,0x4($s0)
/* f07fdac: e6000058 */ swc1 $f0,0x58($s0)
/* f07fdb0: 8c790004 */ lw $t9,0x4($v1)
/* f07fdb4: 252a0003 */ addiu $t2,$t1,0x3
/* f07fdb8: a60a0004 */ sh $t2,0x4($s0)
/* f07fdbc: 44993000 */ mtc1 $t9,$f6
/* f07fdc0: 00000000 */ nop
/* f07fdc4: 468032a0 */ cvt.s.w $f10,$f6
/* f07fdc8: 46185102 */ mul.s $f4,$f10,$f24
/* f07fdcc: 46040480 */ add.s $f18,$f0,$f4
/* f07fdd0: 100000f7 */ b .L0f0801b0
/* f07fdd4: e612005c */ swc1 $f18,0x5c($s0)
/* f07fdd8: e616003c */ swc1 $f22,0x3c($s0)
/* f07fddc: 8c620008 */ lw $v0,0x8($v1)
/* f07fde0: 54400004 */ bnezl $v0,.L0f07fdf4
/* f07fde4: 44824000 */ mtc1 $v0,$f8
/* f07fde8: 1000000a */ b .L0f07fe14
/* f07fdec: e6140040 */ swc1 $f20,0x40($s0)
/* f07fdf0: 44824000 */ mtc1 $v0,$f8
.L0f07fdf4:
/* f07fdf4: 3c014f80 */ lui $at,0x4f80
/* f07fdf8: 04410004 */ bgez $v0,.L0f07fe0c
/* f07fdfc: 468041a0 */ cvt.s.w $f6,$f8
/* f07fe00: 44815000 */ mtc1 $at,$f10
/* f07fe04: 00000000 */ nop
/* f07fe08: 460a3180 */ add.s $f6,$f6,$f10
.L0f07fe0c:
/* f07fe0c: 4606a103 */ div.s $f4,$f20,$f6
/* f07fe10: e6040040 */ swc1 $f4,0x40($s0)
.L0f07fe14:
/* f07fe14: c6120038 */ lwc1 $f18,0x38($s0)
/* f07fe18: 960c0004 */ lhu $t4,0x4($s0)
/* f07fe1c: e6120044 */ swc1 $f18,0x44($s0)
/* f07fe20: 8c6b0004 */ lw $t3,0x4($v1)
/* f07fe24: 258d0003 */ addiu $t5,$t4,0x3
/* f07fe28: a60d0004 */ sh $t5,0x4($s0)
/* f07fe2c: 448b4000 */ mtc1 $t3,$f8
/* f07fe30: 00000000 */ nop
/* f07fe34: 468042a0 */ cvt.s.w $f10,$f8
/* f07fe38: 46185182 */ mul.s $f6,$f10,$f24
/* f07fe3c: 100000dc */ b .L0f0801b0
/* f07fe40: e6060048 */ swc1 $f6,0x48($s0)
/* f07fe44: e6160050 */ swc1 $f22,0x50($s0)
/* f07fe48: 8c620008 */ lw $v0,0x8($v1)
/* f07fe4c: 54400004 */ bnezl $v0,.L0f07fe60
/* f07fe50: 44822000 */ mtc1 $v0,$f4
/* f07fe54: 1000000a */ b .L0f07fe80
/* f07fe58: e6140054 */ swc1 $f20,0x54($s0)
/* f07fe5c: 44822000 */ mtc1 $v0,$f4
.L0f07fe60:
/* f07fe60: 3c014f80 */ lui $at,0x4f80
/* f07fe64: 04410004 */ bgez $v0,.L0f07fe78
/* f07fe68: 468024a0 */ cvt.s.w $f18,$f4
/* f07fe6c: 44814000 */ mtc1 $at,$f8
/* f07fe70: 00000000 */ nop
/* f07fe74: 46089480 */ add.s $f18,$f18,$f8
.L0f07fe78:
/* f07fe78: 4612a283 */ div.s $f10,$f20,$f18
/* f07fe7c: e60a0054 */ swc1 $f10,0x54($s0)
.L0f07fe80:
/* f07fe80: c606004c */ lwc1 $f6,0x4c($s0)
/* f07fe84: 960f0004 */ lhu $t7,0x4($s0)
/* f07fe88: e6060058 */ swc1 $f6,0x58($s0)
/* f07fe8c: 8c6e0004 */ lw $t6,0x4($v1)
/* f07fe90: 25f80003 */ addiu $t8,$t7,0x3
/* f07fe94: a6180004 */ sh $t8,0x4($s0)
/* f07fe98: 448e2000 */ mtc1 $t6,$f4
/* f07fe9c: 00000000 */ nop
/* f07fea0: 46802220 */ cvt.s.w $f8,$f4
/* f07fea4: 46184482 */ mul.s $f18,$f8,$f24
/* f07fea8: 100000c1 */ b .L0f0801b0
/* f07feac: e612005c */ swc1 $f18,0x5c($s0)
/* f07feb0: e6160014 */ swc1 $f22,0x14($s0)
/* f07feb4: 8c620008 */ lw $v0,0x8($v1)
/* f07feb8: 54400004 */ bnezl $v0,.L0f07fecc
/* f07febc: 44825000 */ mtc1 $v0,$f10
/* f07fec0: 1000000a */ b .L0f07feec
/* f07fec4: e6140018 */ swc1 $f20,0x18($s0)
/* f07fec8: 44825000 */ mtc1 $v0,$f10
.L0f07fecc:
/* f07fecc: 3c014f80 */ lui $at,0x4f80
/* f07fed0: 04410004 */ bgez $v0,.L0f07fee4
/* f07fed4: 468051a0 */ cvt.s.w $f6,$f10
/* f07fed8: 44812000 */ mtc1 $at,$f4
/* f07fedc: 00000000 */ nop
/* f07fee0: 46043180 */ add.s $f6,$f6,$f4
.L0f07fee4:
/* f07fee4: 4606a203 */ div.s $f8,$f20,$f6
/* f07fee8: e6080018 */ swc1 $f8,0x18($s0)
.L0f07feec:
/* f07feec: c6120010 */ lwc1 $f18,0x10($s0)
/* f07fef0: 96090004 */ lhu $t1,0x4($s0)
/* f07fef4: e612001c */ swc1 $f18,0x1c($s0)
/* f07fef8: 8c790004 */ lw $t9,0x4($v1)
/* f07fefc: 252a0003 */ addiu $t2,$t1,0x3
/* f07ff00: a60a0004 */ sh $t2,0x4($s0)
/* f07ff04: 44995000 */ mtc1 $t9,$f10
/* f07ff08: 00000000 */ nop
/* f07ff0c: 46805120 */ cvt.s.w $f4,$f10
/* f07ff10: 46182182 */ mul.s $f6,$f4,$f24
/* f07ff14: 100000a6 */ b .L0f0801b0
/* f07ff18: e6060020 */ swc1 $f6,0x20($s0)
/* f07ff1c: e6160028 */ swc1 $f22,0x28($s0)
/* f07ff20: 8c620008 */ lw $v0,0x8($v1)
/* f07ff24: 54400004 */ bnezl $v0,.L0f07ff38
/* f07ff28: 44824000 */ mtc1 $v0,$f8
/* f07ff2c: 1000000a */ b .L0f07ff58
/* f07ff30: e614002c */ swc1 $f20,0x2c($s0)
/* f07ff34: 44824000 */ mtc1 $v0,$f8
.L0f07ff38:
/* f07ff38: 3c014f80 */ lui $at,0x4f80
/* f07ff3c: 04410004 */ bgez $v0,.L0f07ff50
/* f07ff40: 468044a0 */ cvt.s.w $f18,$f8
/* f07ff44: 44815000 */ mtc1 $at,$f10
/* f07ff48: 00000000 */ nop
/* f07ff4c: 460a9480 */ add.s $f18,$f18,$f10
.L0f07ff50:
/* f07ff50: 4612a103 */ div.s $f4,$f20,$f18
/* f07ff54: e604002c */ swc1 $f4,0x2c($s0)
.L0f07ff58:
/* f07ff58: c6060024 */ lwc1 $f6,0x24($s0)
/* f07ff5c: 960c0004 */ lhu $t4,0x4($s0)
/* f07ff60: e6060030 */ swc1 $f6,0x30($s0)
/* f07ff64: 8c6b0004 */ lw $t3,0x4($v1)
/* f07ff68: 258d0003 */ addiu $t5,$t4,0x3
/* f07ff6c: a60d0004 */ sh $t5,0x4($s0)
/* f07ff70: 448b4000 */ mtc1 $t3,$f8
/* f07ff74: 00000000 */ nop
/* f07ff78: 468042a0 */ cvt.s.w $f10,$f8
/* f07ff7c: 46185482 */ mul.s $f18,$f10,$f24
/* f07ff80: 1000008b */ b .L0f0801b0
/* f07ff84: e6120034 */ swc1 $f18,0x34($s0)
/* f07ff88: 02002025 */ or $a0,$s0,$zero
/* f07ff8c: 0fc1fefc */ jal tvscreenSetTexture
/* f07ff90: 8c650004 */ lw $a1,0x4($v1)
/* f07ff94: 960e0004 */ lhu $t6,0x4($s0)
/* f07ff98: 3c017f1b */ lui $at,%hi(var7f1aa814)
/* f07ff9c: 3c06800a */ lui $a2,%hi(g_Vars)
/* f07ffa0: 25cf0002 */ addiu $t7,$t6,0x2
/* f07ffa4: a60f0004 */ sh $t7,0x4($s0)
/* f07ffa8: c422a814 */ lwc1 $f2,%lo(var7f1aa814)($at)
/* f07ffac: 10000080 */ b .L0f0801b0
/* f07ffb0: 24c69fc0 */ addiu $a2,$a2,%lo(g_Vars)
/* f07ffb4: 86020006 */ lh $v0,0x6($s0)
/* f07ffb8: 0442000e */ bltzl $v0,.L0f07fff4
/* f07ffbc: 8c6c0004 */ lw $t4,0x4($v1)
/* f07ffc0: 8cd80038 */ lw $t8,0x38($a2)
/* f07ffc4: 0058c823 */ subu $t9,$v0,$t8
/* f07ffc8: a6190006 */ sh $t9,0x6($s0)
/* f07ffcc: 86090006 */ lh $t1,0x6($s0)
/* f07ffd0: 05220004 */ bltzl $t1,.L0f07ffe4
/* f07ffd4: 960a0004 */ lhu $t2,0x4($s0)
/* f07ffd8: 10000075 */ b .L0f0801b0
/* f07ffdc: 24110001 */ addiu $s1,$zero,0x1
/* f07ffe0: 960a0004 */ lhu $t2,0x4($s0)
.L0f07ffe4:
/* f07ffe4: 254b0002 */ addiu $t3,$t2,0x2
/* f07ffe8: 10000071 */ b .L0f0801b0
/* f07ffec: a60b0004 */ sh $t3,0x4($s0)
/* f07fff0: 8c6c0004 */ lw $t4,0x4($v1)
.L0f07fff4:
/* f07fff4: 24110001 */ addiu $s1,$zero,0x1
/* f07fff8: 1000006d */ b .L0f0801b0
/* f07fffc: a60c0006 */ sh $t4,0x6($s0)
/* f080000: 02002025 */ or $a0,$s0,$zero
/* f080004: 0fc1fe46 */ jal tvscreenSetCmdlist
/* f080008: 8c650004 */ lw $a1,0x4($v1)
/* f08000c: 3c017f1b */ lui $at,%hi(var7f1aa818)
/* f080010: 3c06800a */ lui $a2,%hi(g_Vars)
/* f080014: 24c69fc0 */ addiu $a2,$a2,%lo(g_Vars)
/* f080018: 10000065 */ b .L0f0801b0
/* f08001c: c422a818 */ lwc1 $f2,%lo(var7f1aa818)($at)
/* f080020: 0c004b70 */ jal random
/* f080024: afa30098 */ sw $v1,0x98($sp)
/* f080028: 8fa30098 */ lw $v1,0x98($sp)
/* f08002c: 00026c02 */ srl $t5,$v0,0x10
/* f080030: 02002025 */ or $a0,$s0,$zero
/* f080034: 8c6e0008 */ lw $t6,0x8($v1)
/* f080038: 01ae082b */ sltu $at,$t5,$t6
/* f08003c: 50200006 */ beqzl $at,.L0f080058
/* f080040: 960f0004 */ lhu $t7,0x4($s0)
/* f080044: 0fc1fe46 */ jal tvscreenSetCmdlist
/* f080048: 8c650004 */ lw $a1,0x4($v1)
/* f08004c: 10000004 */ b .L0f080060
/* f080050: 00000000 */ nop
/* f080054: 960f0004 */ lhu $t7,0x4($s0)
.L0f080058:
/* f080058: 25f80003 */ addiu $t8,$t7,0x3
/* f08005c: a6180004 */ sh $t8,0x4($s0)
.L0f080060:
/* f080060: 3c017f1b */ lui $at,%hi(var7f1aa81c)
/* f080064: 3c06800a */ lui $a2,%hi(g_Vars)
/* f080068: 24c69fc0 */ addiu $a2,$a2,%lo(g_Vars)
/* f08006c: 10000050 */ b .L0f0801b0
/* f080070: c422a81c */ lwc1 $f2,%lo(var7f1aa81c)($at)
/* f080074: 1000004e */ b .L0f0801b0
/* f080078: a6000004 */ sh $zero,0x4($s0)
/* f08007c: 1000004c */ b .L0f0801b0
/* f080080: 24110001 */ addiu $s1,$zero,0x1
/* f080084: e616006c */ swc1 $f22,0x6c($s0)
/* f080088: 8c620008 */ lw $v0,0x8($v1)
/* f08008c: 54400004 */ bnezl $v0,.L0f0800a0
/* f080090: 44822000 */ mtc1 $v0,$f4
/* f080094: 1000000a */ b .L0f0800c0
/* f080098: e6140070 */ swc1 $f20,0x70($s0)
/* f08009c: 44822000 */ mtc1 $v0,$f4
.L0f0800a0:
/* f0800a0: 3c014f80 */ lui $at,0x4f80
/* f0800a4: 04410004 */ bgez $v0,.L0f0800b8
/* f0800a8: 468021a0 */ cvt.s.w $f6,$f4
/* f0800ac: 44814000 */ mtc1 $at,$f8
/* f0800b0: 00000000 */ nop
/* f0800b4: 46083180 */ add.s $f6,$f6,$f8
.L0f0800b8:
/* f0800b8: 4606a283 */ div.s $f10,$f20,$f6
/* f0800bc: e60a0070 */ swc1 $f10,0x70($s0)
.L0f0800c0:
/* f0800c0: 92190060 */ lbu $t9,0x60($s0)
/* f0800c4: 920c0063 */ lbu $t4,0x63($s0)
/* f0800c8: 92180066 */ lbu $t8,0x66($s0)
/* f0800cc: a2190061 */ sb $t9,0x61($s0)
/* f0800d0: 8c690004 */ lw $t1,0x4($v1)
/* f0800d4: a20c0064 */ sb $t4,0x64($s0)
/* f0800d8: 960e0004 */ lhu $t6,0x4($s0)
/* f0800dc: 00095e02 */ srl $t3,$t1,0x18
/* f0800e0: a20b0062 */ sb $t3,0x62($s0)
/* f0800e4: 8c6d0004 */ lw $t5,0x4($v1)
/* f0800e8: a2180067 */ sb $t8,0x67($s0)
/* f0800ec: 920b0069 */ lbu $t3,0x69($s0)
/* f0800f0: 000d7c02 */ srl $t7,$t5,0x10
/* f0800f4: a20f0065 */ sb $t7,0x65($s0)
/* f0800f8: 8c790004 */ lw $t9,0x4($v1)
/* f0800fc: a20b006a */ sb $t3,0x6a($s0)
/* f080100: 25cf0003 */ addiu $t7,$t6,0x3
/* f080104: 00195202 */ srl $t2,$t9,0x8
/* f080108: a20a0068 */ sb $t2,0x68($s0)
/* f08010c: 8c6d0004 */ lw $t5,0x4($v1)
/* f080110: a60f0004 */ sh $t7,0x4($s0)
/* f080114: 10000026 */ b .L0f0801b0
/* f080118: a20d006b */ sb $t5,0x6b($s0)
/* f08011c: 8c780004 */ lw $t8,0x4($v1)
/* f080120: 24590002 */ addiu $t9,$v0,0x2
/* f080124: a6190004 */ sh $t9,0x4($s0)
/* f080128: 44989000 */ mtc1 $t8,$f18
/* f08012c: 00000000 */ nop
/* f080130: 46809120 */ cvt.s.w $f4,$f18
/* f080134: 46022202 */ mul.s $f8,$f4,$f2
/* f080138: 1000001d */ b .L0f0801b0
/* f08013c: e608000c */ swc1 $f8,0xc($s0)
/* f080140: 8c690004 */ lw $t1,0x4($v1)
/* f080144: c4c60044 */ lwc1 $f6,0x44($a2)
/* f080148: 44895000 */ mtc1 $t1,$f10
/* f08014c: 00000000 */ nop
/* f080150: 468054a0 */ cvt.s.w $f18,$f10
/* f080154: c60a000c */ lwc1 $f10,0xc($s0)
/* f080158: 46123102 */ mul.s $f4,$f6,$f18
/* f08015c: 00000000 */ nop
/* f080160: 46022202 */ mul.s $f8,$f4,$f2
/* f080164: 46085180 */ add.s $f6,$f10,$f8
/* f080168: e606000c */ swc1 $f6,0xc($s0)
/* f08016c: c60c000c */ lwc1 $f12,0xc($s0)
/* f080170: 460cd03e */ c.le.s $f26,$f12
/* f080174: 00000000 */ nop
/* f080178: 45000004 */ bc1f .L0f08018c
/* f08017c: 00000000 */ nop
/* f080180: 461a6481 */ sub.s $f18,$f12,$f26
/* f080184: e612000c */ swc1 $f18,0xc($s0)
/* f080188: c60c000c */ lwc1 $f12,0xc($s0)
.L0f08018c:
/* f08018c: 4616603c */ c.lt.s $f12,$f22
/* f080190: 00000000 */ nop
/* f080194: 45020004 */ bc1fl .L0f0801a8
/* f080198: 960a0004 */ lhu $t2,0x4($s0)
/* f08019c: 461a6100 */ add.s $f4,$f12,$f26
/* f0801a0: e604000c */ swc1 $f4,0xc($s0)
/* f0801a4: 960a0004 */ lhu $t2,0x4($s0)
.L0f0801a8:
/* f0801a8: 254b0002 */ addiu $t3,$t2,0x2
/* f0801ac: a60b0004 */ sh $t3,0x4($s0)
.L0f0801b0:
/* f0801b0: 5220fec0 */ beqzl $s1,.L0f07fcb4
/* f0801b4: 96020004 */ lhu $v0,0x4($s0)
/* f0801b8: c6000018 */ lwc1 $f0,0x18($s0)
/* f0801bc: 4600b03c */ c.lt.s $f22,$f0
/* f0801c0: 00000000 */ nop
/* f0801c4: 45000017 */ bc1f .L0f080224
/* f0801c8: 3c02800a */ lui $v0,%hi(g_Vars)
/* f0801cc: 24429fc0 */ addiu $v0,$v0,%lo(g_Vars)
/* f0801d0: c4480044 */ lwc1 $f8,0x44($v0)
/* f0801d4: c60a0014 */ lwc1 $f10,0x14($s0)
/* f0801d8: 46080182 */ mul.s $f6,$f0,$f8
/* f0801dc: 46065480 */ add.s $f18,$f10,$f6
/* f0801e0: e6120014 */ swc1 $f18,0x14($s0)
/* f0801e4: c6020014 */ lwc1 $f2,0x14($s0)
/* f0801e8: 4614103c */ c.lt.s $f2,$f20
/* f0801ec: 00000000 */ nop
/* f0801f0: 45020009 */ bc1fl .L0f080218
/* f0801f4: c6120020 */ lwc1 $f18,0x20($s0)
/* f0801f8: c600001c */ lwc1 $f0,0x1c($s0)
/* f0801fc: c6040020 */ lwc1 $f4,0x20($s0)
/* f080200: 46002201 */ sub.s $f8,$f4,$f0
/* f080204: 46024282 */ mul.s $f10,$f8,$f2
/* f080208: 460a0180 */ add.s $f6,$f0,$f10
/* f08020c: 10000005 */ b .L0f080224
/* f080210: e6060010 */ swc1 $f6,0x10($s0)
/* f080214: c6120020 */ lwc1 $f18,0x20($s0)
.L0f080218:
/* f080218: e6140014 */ swc1 $f20,0x14($s0)
/* f08021c: e6160018 */ swc1 $f22,0x18($s0)
/* f080220: e6120010 */ swc1 $f18,0x10($s0)
.L0f080224:
/* f080224: c600002c */ lwc1 $f0,0x2c($s0)
/* f080228: 3c02800a */ lui $v0,%hi(g_Vars)
/* f08022c: 24429fc0 */ addiu $v0,$v0,%lo(g_Vars)
/* f080230: 4600b03c */ c.lt.s $f22,$f0
/* f080234: 00000000 */ nop
/* f080238: 45020017 */ bc1fl .L0f080298
/* f08023c: c6000040 */ lwc1 $f0,0x40($s0)
/* f080240: c4480044 */ lwc1 $f8,0x44($v0)
/* f080244: c6040028 */ lwc1 $f4,0x28($s0)
/* f080248: 46080282 */ mul.s $f10,$f0,$f8
/* f08024c: 460a2180 */ add.s $f6,$f4,$f10
/* f080250: e6060028 */ swc1 $f6,0x28($s0)
/* f080254: c6020028 */ lwc1 $f2,0x28($s0)
/* f080258: 4614103c */ c.lt.s $f2,$f20
/* f08025c: 00000000 */ nop
/* f080260: 45020009 */ bc1fl .L0f080288
/* f080264: c6060034 */ lwc1 $f6,0x34($s0)
/* f080268: c6000030 */ lwc1 $f0,0x30($s0)
/* f08026c: c6120034 */ lwc1 $f18,0x34($s0)
/* f080270: 46009201 */ sub.s $f8,$f18,$f0
/* f080274: 46024102 */ mul.s $f4,$f8,$f2
/* f080278: 46040280 */ add.s $f10,$f0,$f4
/* f08027c: 10000005 */ b .L0f080294
/* f080280: e60a0024 */ swc1 $f10,0x24($s0)
/* f080284: c6060034 */ lwc1 $f6,0x34($s0)
.L0f080288:
/* f080288: e6140028 */ swc1 $f20,0x28($s0)
/* f08028c: e616002c */ swc1 $f22,0x2c($s0)
/* f080290: e6060024 */ swc1 $f6,0x24($s0)
.L0f080294:
/* f080294: c6000040 */ lwc1 $f0,0x40($s0)
.L0f080298:
/* f080298: 4600b03c */ c.lt.s $f22,$f0
/* f08029c: 00000000 */ nop
/* f0802a0: 45020017 */ bc1fl .L0f080300
/* f0802a4: c6000054 */ lwc1 $f0,0x54($s0)
/* f0802a8: c4480044 */ lwc1 $f8,0x44($v0)
/* f0802ac: c612003c */ lwc1 $f18,0x3c($s0)
/* f0802b0: 46080102 */ mul.s $f4,$f0,$f8
/* f0802b4: 46049280 */ add.s $f10,$f18,$f4
/* f0802b8: e60a003c */ swc1 $f10,0x3c($s0)
/* f0802bc: c602003c */ lwc1 $f2,0x3c($s0)
/* f0802c0: 4614103c */ c.lt.s $f2,$f20
/* f0802c4: 00000000 */ nop
/* f0802c8: 45020009 */ bc1fl .L0f0802f0
/* f0802cc: c60a0048 */ lwc1 $f10,0x48($s0)
/* f0802d0: c6000044 */ lwc1 $f0,0x44($s0)
/* f0802d4: c6060048 */ lwc1 $f6,0x48($s0)
/* f0802d8: 46003201 */ sub.s $f8,$f6,$f0
/* f0802dc: 46024482 */ mul.s $f18,$f8,$f2
/* f0802e0: 46120100 */ add.s $f4,$f0,$f18
/* f0802e4: 10000005 */ b .L0f0802fc
/* f0802e8: e6040038 */ swc1 $f4,0x38($s0)
/* f0802ec: c60a0048 */ lwc1 $f10,0x48($s0)
.L0f0802f0:
/* f0802f0: e614003c */ swc1 $f20,0x3c($s0)
/* f0802f4: e6160040 */ swc1 $f22,0x40($s0)
/* f0802f8: e60a0038 */ swc1 $f10,0x38($s0)
.L0f0802fc:
/* f0802fc: c6000054 */ lwc1 $f0,0x54($s0)
.L0f080300:
/* f080300: 4600b03c */ c.lt.s $f22,$f0
/* f080304: 00000000 */ nop
/* f080308: 45020017 */ bc1fl .L0f080368
/* f08030c: c6020070 */ lwc1 $f2,0x70($s0)
/* f080310: c4480044 */ lwc1 $f8,0x44($v0)
/* f080314: c6060050 */ lwc1 $f6,0x50($s0)
/* f080318: 46080482 */ mul.s $f18,$f0,$f8
/* f08031c: 46123100 */ add.s $f4,$f6,$f18
/* f080320: e6040050 */ swc1 $f4,0x50($s0)
/* f080324: c6020050 */ lwc1 $f2,0x50($s0)
/* f080328: 4614103c */ c.lt.s $f2,$f20
/* f08032c: 00000000 */ nop
/* f080330: 45020009 */ bc1fl .L0f080358
/* f080334: c604005c */ lwc1 $f4,0x5c($s0)
/* f080338: c6000058 */ lwc1 $f0,0x58($s0)
/* f08033c: c60a005c */ lwc1 $f10,0x5c($s0)
/* f080340: 46005201 */ sub.s $f8,$f10,$f0
/* f080344: 46024182 */ mul.s $f6,$f8,$f2
/* f080348: 46060480 */ add.s $f18,$f0,$f6
/* f08034c: 10000005 */ b .L0f080364
/* f080350: e612004c */ swc1 $f18,0x4c($s0)
/* f080354: c604005c */ lwc1 $f4,0x5c($s0)
.L0f080358:
/* f080358: e6140050 */ swc1 $f20,0x50($s0)
/* f08035c: e6160054 */ swc1 $f22,0x54($s0)
/* f080360: e604004c */ swc1 $f4,0x4c($s0)
.L0f080364:
/* f080364: c6020070 */ lwc1 $f2,0x70($s0)
.L0f080368:
/* f080368: 4602b03c */ c.lt.s $f22,$f2
/* f08036c: 00000000 */ nop
/* f080370: 4502003f */ bc1fl .L0f080470
/* f080374: 8faa00a4 */ lw $t2,0xa4($sp)
/* f080378: c4480044 */ lwc1 $f8,0x44($v0)
/* f08037c: c60a006c */ lwc1 $f10,0x6c($s0)
/* f080380: 46081182 */ mul.s $f6,$f2,$f8
/* f080384: 46065480 */ add.s $f18,$f10,$f6
/* f080388: e612006c */ swc1 $f18,0x6c($s0)
/* f08038c: c600006c */ lwc1 $f0,0x6c($s0)
/* f080390: 4614003c */ c.lt.s $f0,$f20
/* f080394: 00000000 */ nop
/* f080398: 4502002b */ bc1fl .L0f080448
/* f08039c: 920e0062 */ lbu $t6,0x62($s0)
/* f0803a0: 92020061 */ lbu $v0,0x61($s0)
/* f0803a4: 920c0062 */ lbu $t4,0x62($s0)
/* f0803a8: 92030064 */ lbu $v1,0x64($s0)
/* f0803ac: 92190065 */ lbu $t9,0x65($s0)
/* f0803b0: 01826823 */ subu $t5,$t4,$v0
/* f0803b4: 448d2000 */ mtc1 $t5,$f4
/* f0803b8: 03234823 */ subu $t1,$t9,$v1
/* f0803bc: 44899000 */ mtc1 $t1,$f18
/* f0803c0: 46802220 */ cvt.s.w $f8,$f4
/* f0803c4: 920d0068 */ lbu $t5,0x68($s0)
/* f0803c8: 92040067 */ lbu $a0,0x67($s0)
/* f0803cc: 9209006b */ lbu $t1,0x6b($s0)
/* f0803d0: 9205006a */ lbu $a1,0x6a($s0)
/* f0803d4: 46809120 */ cvt.s.w $f4,$f18
/* f0803d8: 46004282 */ mul.s $f10,$f8,$f0
/* f0803dc: 01a47023 */ subu $t6,$t5,$a0
/* f0803e0: 01255023 */ subu $t2,$t1,$a1
/* f0803e4: 46002202 */ mul.s $f8,$f4,$f0
/* f0803e8: 4600518d */ trunc.w.s $f6,$f10
/* f0803ec: 4600428d */ trunc.w.s $f10,$f8
/* f0803f0: 440f3000 */ mfc1 $t7,$f6
/* f0803f4: 448e3000 */ mtc1 $t6,$f6
/* f0803f8: 440b5000 */ mfc1 $t3,$f10
/* f0803fc: 468034a0 */ cvt.s.w $f18,$f6
/* f080400: 448a5000 */ mtc1 $t2,$f10
/* f080404: 004fc021 */ addu $t8,$v0,$t7
/* f080408: 006b6021 */ addu $t4,$v1,$t3
/* f08040c: a2180060 */ sb $t8,0x60($s0)
/* f080410: 468051a0 */ cvt.s.w $f6,$f10
/* f080414: 46009102 */ mul.s $f4,$f18,$f0
/* f080418: a20c0063 */ sb $t4,0x63($s0)
/* f08041c: 46003482 */ mul.s $f18,$f6,$f0
/* f080420: 4600220d */ trunc.w.s $f8,$f4
/* f080424: 4600910d */ trunc.w.s $f4,$f18
/* f080428: 44184000 */ mfc1 $t8,$f8
/* f08042c: 440c2000 */ mfc1 $t4,$f4
/* f080430: 0098c821 */ addu $t9,$a0,$t8
/* f080434: a2190066 */ sb $t9,0x66($s0)
/* f080438: 00ac6821 */ addu $t5,$a1,$t4
/* f08043c: 1000000b */ b .L0f08046c
/* f080440: a20d0069 */ sb $t5,0x69($s0)
/* f080444: 920e0062 */ lbu $t6,0x62($s0)
.L0f080448:
/* f080448: 920f0065 */ lbu $t7,0x65($s0)
/* f08044c: 92180068 */ lbu $t8,0x68($s0)
/* f080450: 9219006b */ lbu $t9,0x6b($s0)
/* f080454: e614006c */ swc1 $f20,0x6c($s0)
/* f080458: e6160070 */ swc1 $f22,0x70($s0)
/* f08045c: a20e0060 */ sb $t6,0x60($s0)
/* f080460: a20f0063 */ sb $t7,0x63($s0)
/* f080464: a2180066 */ sb $t8,0x66($s0)
/* f080468: a2190069 */ sb $t9,0x69($s0)
.L0f08046c:
/* f08046c: 8faa00a4 */ lw $t2,0xa4($sp)
.L0f080470:
/* f080470: 8fa400a8 */ lw $a0,0xa8($sp)
/* f080474: 8fa300b4 */ lw $v1,0xb4($sp)
/* f080478: 8fa800b0 */ lw $t0,0xb0($sp)
/* f08047c: 8fa900c4 */ lw $t1,0xc4($sp)
/* f080480: ad430000 */ sw $v1,0x0($t2)
/* f080484: ad480008 */ sw $t0,0x8($t2)
/* f080488: ad490004 */ sw $t1,0x4($t2)
/* f08048c: 8c8b000c */ lw $t3,0xc($a0)
/* f080490: 89610000 */ lwl $at,0x0($t3)
/* f080494: 99610003 */ lwr $at,0x3($t3)
/* f080498: a8610000 */ swl $at,0x0($v1)
/* f08049c: b8610003 */ swr $at,0x3($v1)
/* f0804a0: 896d0004 */ lwl $t5,0x4($t3)
/* f0804a4: 996d0007 */ lwr $t5,0x7($t3)
/* f0804a8: a86d0004 */ swl $t5,0x4($v1)
/* f0804ac: b86d0007 */ swr $t5,0x7($v1)
/* f0804b0: 89610008 */ lwl $at,0x8($t3)
/* f0804b4: 9961000b */ lwr $at,0xb($t3)
/* f0804b8: a8610008 */ swl $at,0x8($v1)
/* f0804bc: b861000b */ swr $at,0xb($v1)
/* f0804c0: 8c8e000c */ lw $t6,0xc($a0)
/* f0804c4: 89c1000c */ lwl $at,0xc($t6)
/* f0804c8: 99c1000f */ lwr $at,0xf($t6)
/* f0804cc: a861000c */ swl $at,0xc($v1)
/* f0804d0: b861000f */ swr $at,0xf($v1)
/* f0804d4: 89d80010 */ lwl $t8,0x10($t6)
/* f0804d8: 99d80013 */ lwr $t8,0x13($t6)
/* f0804dc: a8780010 */ swl $t8,0x10($v1)
/* f0804e0: b8780013 */ swr $t8,0x13($v1)
/* f0804e4: 89c10014 */ lwl $at,0x14($t6)
/* f0804e8: 99c10017 */ lwr $at,0x17($t6)
/* f0804ec: 3c0e800b */ lui $t6,%hi(g_TexScreenConfigs)
/* f0804f0: a8610014 */ swl $at,0x14($v1)
/* f0804f4: b8610017 */ swr $at,0x17($v1)
/* f0804f8: 8c99000c */ lw $t9,0xc($a0)
/* f0804fc: 8b210018 */ lwl $at,0x18($t9)
/* f080500: 9b21001b */ lwr $at,0x1b($t9)
/* f080504: a8610018 */ swl $at,0x18($v1)
/* f080508: b861001b */ swr $at,0x1b($v1)
/* f08050c: 8b2a001c */ lwl $t2,0x1c($t9)
/* f080510: 9b2a001f */ lwr $t2,0x1f($t9)
/* f080514: a86a001c */ swl $t2,0x1c($v1)
/* f080518: b86a001f */ swr $t2,0x1f($v1)
/* f08051c: 8b210020 */ lwl $at,0x20($t9)
/* f080520: 9b210023 */ lwr $at,0x23($t9)
/* f080524: a8610020 */ swl $at,0x20($v1)
/* f080528: b8610023 */ swr $at,0x23($v1)
/* f08052c: 8c8c000c */ lw $t4,0xc($a0)
/* f080530: 89810024 */ lwl $at,0x24($t4)
/* f080534: 99810027 */ lwr $at,0x27($t4)
/* f080538: a8610024 */ swl $at,0x24($v1)
/* f08053c: b8610027 */ swr $at,0x27($v1)
/* f080540: 898d0028 */ lwl $t5,0x28($t4)
/* f080544: 998d002b */ lwr $t5,0x2b($t4)
/* f080548: a86d0028 */ swl $t5,0x28($v1)
/* f08054c: b86d002b */ swr $t5,0x2b($v1)
/* f080550: 8981002c */ lwl $at,0x2c($t4)
/* f080554: 9981002f */ lwr $at,0x2f($t4)
/* f080558: a861002c */ swl $at,0x2c($v1)
/* f08055c: b861002f */ swr $at,0x2f($v1)
/* f080560: 8e020008 */ lw $v0,0x8($s0)
/* f080564: 2c410064 */ sltiu $at,$v0,0x64
/* f080568: 10200007 */ beqz $at,.L0f080588
/* f08056c: 00408825 */ or $s1,$v0,$zero
/* f080570: 00027880 */ sll $t7,$v0,0x2
/* f080574: 8dceb594 */ lw $t6,%lo(g_TexScreenConfigs)($t6)
/* f080578: 01e27823 */ subu $t7,$t7,$v0
/* f08057c: 000f7880 */ sll $t7,$t7,0x2
/* f080580: 10000001 */ b .L0f080588
/* f080584: 01ee8821 */ addu $s1,$t7,$t6
.L0f080588:
/* f080588: 122000aa */ beqz $s1,.L0f080834
/* f08058c: 3c013f00 */ lui $at,0x3f00
/* f080590: 44810000 */ mtc1 $at,$f0
/* f080594: c6080010 */ lwc1 $f8,0x10($s0)
/* f080598: c60a0024 */ lwc1 $f10,0x24($s0)
/* f08059c: c60c000c */ lwc1 $f12,0xc($s0)
/* f0805a0: 46004502 */ mul.s $f20,$f8,$f0
/* f0805a4: 460cb032 */ c.eq.s $f22,$f12
/* f0805a8: 46005602 */ mul.s $f24,$f10,$f0
/* f0805ac: 4600a386 */ mov.s $f14,$f20
/* f0805b0: 45010016 */ bc1t .L0f08060c
/* f0805b4: 4600c406 */ mov.s $f16,$f24
/* f0805b8: e7ae0058 */ swc1 $f14,0x58($sp)
/* f0805bc: 0c0068f4 */ jal cosf
/* f0805c0: e7b00054 */ swc1 $f16,0x54($sp)
/* f0805c4: 3c017f1b */ lui $at,%hi(var7f1aa824)
/* f0805c8: c43aa824 */ lwc1 $f26,%lo(var7f1aa824)($at)
/* f0805cc: c60c000c */ lwc1 $f12,0xc($s0)
/* f0805d0: 461a0582 */ mul.s $f22,$f0,$f26
/* f0805d4: 0c0068f7 */ jal sinf
/* f0805d8: 00000000 */ nop
/* f0805dc: 4616a502 */ mul.s $f20,$f20,$f22
/* f0805e0: c7ae0058 */ lwc1 $f14,0x58($sp)
/* f0805e4: c7b00054 */ lwc1 $f16,0x54($sp)
/* f0805e8: 461a0082 */ mul.s $f2,$f0,$f26
/* f0805ec: 8fa800b0 */ lw $t0,0xb0($sp)
/* f0805f0: 8fa300b4 */ lw $v1,0xb4($sp)
/* f0805f4: 4602c602 */ mul.s $f24,$f24,$f2
/* f0805f8: 00000000 */ nop
/* f0805fc: 46027382 */ mul.s $f14,$f14,$f2
/* f080600: 00000000 */ nop
/* f080604: 46168402 */ mul.s $f16,$f16,$f22
/* f080608: 00000000 */ nop
.L0f08060c:
/* f08060c: 92380004 */ lbu $t8,0x4($s1)
/* f080610: 3c014200 */ lui $at,0x4200
/* f080614: 44810000 */ mtc1 $at,$f0
/* f080618: 44989000 */ mtc1 $t8,$f18
/* f08061c: 3c014f80 */ lui $at,0x4f80
/* f080620: 07010004 */ bgez $t8,.L0f080634
/* f080624: 46809120 */ cvt.s.w $f4,$f18
/* f080628: 44814000 */ mtc1 $at,$f8
/* f08062c: 00000000 */ nop
/* f080630: 46082100 */ add.s $f4,$f4,$f8
.L0f080634:
/* f080634: c60a0038 */ lwc1 $f10,0x38($s0)
/* f080638: 3c014f80 */ lui $at,0x4f80
/* f08063c: 46145180 */ add.s $f6,$f10,$f20
/* f080640: 46062482 */ mul.s $f18,$f4,$f6
/* f080644: 00000000 */ nop
/* f080648: 46009202 */ mul.s $f8,$f18,$f0
/* f08064c: 4600428d */ trunc.w.s $f10,$f8
/* f080650: 44195000 */ mfc1 $t9,$f10
/* f080654: 00000000 */ nop
/* f080658: a4790008 */ sh $t9,0x8($v1)
/* f08065c: 922a0005 */ lbu $t2,0x5($s1)
/* f080660: 448a2000 */ mtc1 $t2,$f4
/* f080664: 05410004 */ bgez $t2,.L0f080678
/* f080668: 468021a0 */ cvt.s.w $f6,$f4
/* f08066c: 44819000 */ mtc1 $at,$f18
/* f080670: 00000000 */ nop
/* f080674: 46123180 */ add.s $f6,$f6,$f18
.L0f080678:
/* f080678: c608004c */ lwc1 $f8,0x4c($s0)
/* f08067c: 3c014f80 */ lui $at,0x4f80
/* f080680: 46184280 */ add.s $f10,$f8,$f24
/* f080684: 460a3102 */ mul.s $f4,$f6,$f10
/* f080688: 00000000 */ nop
/* f08068c: 46002482 */ mul.s $f18,$f4,$f0
/* f080690: 4600920d */ trunc.w.s $f8,$f18
/* f080694: 440c4000 */ mfc1 $t4,$f8
/* f080698: 00000000 */ nop
/* f08069c: a46c000a */ sh $t4,0xa($v1)
/* f0806a0: 922d0004 */ lbu $t5,0x4($s1)
/* f0806a4: 448d3000 */ mtc1 $t5,$f6
/* f0806a8: 05a10004 */ bgez $t5,.L0f0806bc
/* f0806ac: 468032a0 */ cvt.s.w $f10,$f6
/* f0806b0: 44812000 */ mtc1 $at,$f4
/* f0806b4: 00000000 */ nop
/* f0806b8: 46045280 */ add.s $f10,$f10,$f4
.L0f0806bc:
/* f0806bc: c6120038 */ lwc1 $f18,0x38($s0)
/* f0806c0: 3c014f80 */ lui $at,0x4f80
/* f0806c4: 460e9201 */ sub.s $f8,$f18,$f14
/* f0806c8: 46085182 */ mul.s $f6,$f10,$f8
/* f0806cc: 00000000 */ nop
/* f0806d0: 46003102 */ mul.s $f4,$f6,$f0
/* f0806d4: 4600248d */ trunc.w.s $f18,$f4
/* f0806d8: 440e9000 */ mfc1 $t6,$f18
/* f0806dc: 00000000 */ nop
/* f0806e0: a46e0014 */ sh $t6,0x14($v1)
/* f0806e4: 92380005 */ lbu $t8,0x5($s1)
/* f0806e8: 44985000 */ mtc1 $t8,$f10
/* f0806ec: 07010004 */ bgez $t8,.L0f080700
/* f0806f0: 46805220 */ cvt.s.w $f8,$f10
/* f0806f4: 44813000 */ mtc1 $at,$f6
/* f0806f8: 00000000 */ nop
/* f0806fc: 46064200 */ add.s $f8,$f8,$f6
.L0f080700:
/* f080700: c604004c */ lwc1 $f4,0x4c($s0)
/* f080704: 3c014f80 */ lui $at,0x4f80
/* f080708: 46102480 */ add.s $f18,$f4,$f16
/* f08070c: 46124282 */ mul.s $f10,$f8,$f18
/* f080710: 00000000 */ nop
/* f080714: 46005182 */ mul.s $f6,$f10,$f0
/* f080718: 4600310d */ trunc.w.s $f4,$f6
/* f08071c: 44192000 */ mfc1 $t9,$f4
/* f080720: 00000000 */ nop
/* f080724: a4790016 */ sh $t9,0x16($v1)
/* f080728: 922a0004 */ lbu $t2,0x4($s1)
/* f08072c: 448a4000 */ mtc1 $t2,$f8
/* f080730: 05410004 */ bgez $t2,.L0f080744
/* f080734: 468044a0 */ cvt.s.w $f18,$f8
/* f080738: 44815000 */ mtc1 $at,$f10
/* f08073c: 00000000 */ nop
/* f080740: 460a9480 */ add.s $f18,$f18,$f10
.L0f080744:
/* f080744: c6060038 */ lwc1 $f6,0x38($s0)
/* f080748: 3c014f80 */ lui $at,0x4f80
/* f08074c: 46143101 */ sub.s $f4,$f6,$f20
/* f080750: 46049202 */ mul.s $f8,$f18,$f4
/* f080754: 00000000 */ nop
/* f080758: 46004282 */ mul.s $f10,$f8,$f0
/* f08075c: 4600518d */ trunc.w.s $f6,$f10
/* f080760: 440c3000 */ mfc1 $t4,$f6
/* f080764: 00000000 */ nop
/* f080768: a46c0020 */ sh $t4,0x20($v1)
/* f08076c: 922d0005 */ lbu $t5,0x5($s1)
/* f080770: 448d9000 */ mtc1 $t5,$f18
/* f080774: 05a10004 */ bgez $t5,.L0f080788
/* f080778: 46809120 */ cvt.s.w $f4,$f18
/* f08077c: 44814000 */ mtc1 $at,$f8
/* f080780: 00000000 */ nop
/* f080784: 46082100 */ add.s $f4,$f4,$f8
.L0f080788:
/* f080788: c60a004c */ lwc1 $f10,0x4c($s0)
/* f08078c: 3c014f80 */ lui $at,0x4f80
/* f080790: 46185181 */ sub.s $f6,$f10,$f24
/* f080794: 46062482 */ mul.s $f18,$f4,$f6
/* f080798: 00000000 */ nop
/* f08079c: 46009202 */ mul.s $f8,$f18,$f0
/* f0807a0: 4600428d */ trunc.w.s $f10,$f8
/* f0807a4: 440e5000 */ mfc1 $t6,$f10
/* f0807a8: 00000000 */ nop
/* f0807ac: a46e0022 */ sh $t6,0x22($v1)
/* f0807b0: 92380004 */ lbu $t8,0x4($s1)
/* f0807b4: 44982000 */ mtc1 $t8,$f4
/* f0807b8: 07010004 */ bgez $t8,.L0f0807cc
/* f0807bc: 468021a0 */ cvt.s.w $f6,$f4
/* f0807c0: 44819000 */ mtc1 $at,$f18
/* f0807c4: 00000000 */ nop
/* f0807c8: 46123180 */ add.s $f6,$f6,$f18
.L0f0807cc:
/* f0807cc: c6080038 */ lwc1 $f8,0x38($s0)
/* f0807d0: 3c014f80 */ lui $at,0x4f80
/* f0807d4: 460e4280 */ add.s $f10,$f8,$f14
/* f0807d8: 460a3102 */ mul.s $f4,$f6,$f10
/* f0807dc: 00000000 */ nop
/* f0807e0: 46002482 */ mul.s $f18,$f4,$f0
/* f0807e4: 4600920d */ trunc.w.s $f8,$f18
/* f0807e8: 44194000 */ mfc1 $t9,$f8
/* f0807ec: 00000000 */ nop
/* f0807f0: a479002c */ sh $t9,0x2c($v1)
/* f0807f4: 922a0005 */ lbu $t2,0x5($s1)
/* f0807f8: 448a3000 */ mtc1 $t2,$f6
/* f0807fc: 05410004 */ bgez $t2,.L0f080810
/* f080800: 468032a0 */ cvt.s.w $f10,$f6
/* f080804: 44812000 */ mtc1 $at,$f4
/* f080808: 00000000 */ nop
/* f08080c: 46045280 */ add.s $f10,$f10,$f4
.L0f080810:
/* f080810: c612004c */ lwc1 $f18,0x4c($s0)
/* f080814: 46109201 */ sub.s $f8,$f18,$f16
/* f080818: 46085182 */ mul.s $f6,$f10,$f8
/* f08081c: 00000000 */ nop
/* f080820: 46003102 */ mul.s $f4,$f6,$f0
/* f080824: 4600248d */ trunc.w.s $f18,$f4
/* f080828: 440c9000 */ mfc1 $t4,$f18
/* f08082c: 00000000 */ nop
/* f080830: a46c002e */ sh $t4,0x2e($v1)
.L0f080834:
/* f080834: 920d0060 */ lbu $t5,0x60($s0)
/* f080838: 24190002 */ addiu $t9,$zero,0x2
/* f08083c: 3c0cb700 */ lui $t4,0xb700
/* f080840: a10d0000 */ sb $t5,0x0($t0)
/* f080844: 920f0063 */ lbu $t7,0x63($s0)
/* f080848: 240d2000 */ addiu $t5,$zero,0x2000
/* f08084c: 27a400c4 */ addiu $a0,$sp,0xc4
/* f080850: a10f0001 */ sb $t7,0x1($t0)
/* f080854: 920e0066 */ lbu $t6,0x66($s0)
/* f080858: 02202825 */ or $a1,$s1,$zero
/* f08085c: a10e0002 */ sb $t6,0x2($t0)
/* f080860: 92180069 */ lbu $t8,0x69($s0)
/* f080864: a1180003 */ sb $t8,0x3($t0)
/* f080868: a0600007 */ sb $zero,0x7($v1)
/* f08086c: a0600013 */ sb $zero,0x13($v1)
/* f080870: a060001f */ sb $zero,0x1f($v1)
/* f080874: a060002b */ sb $zero,0x2b($v1)
/* f080878: 92090069 */ lbu $t1,0x69($s0)
/* f08087c: 292100ff */ slti $at,$t1,0xff
/* f080880: 50200003 */ beqzl $at,.L0f080890
/* f080884: 8faa00c4 */ lw $t2,0xc4($sp)
/* f080888: afb900cc */ sw $t9,0xcc($sp)
/* f08088c: 8faa00c4 */ lw $t2,0xc4($sp)
.L0f080890:
/* f080890: 240f0002 */ addiu $t7,$zero,0x2
/* f080894: 240e0001 */ addiu $t6,$zero,0x1
/* f080898: 254b0008 */ addiu $t3,$t2,0x8
/* f08089c: afab00c4 */ sw $t3,0xc4($sp)
/* f0808a0: ad4d0004 */ sw $t5,0x4($t2)
/* f0808a4: ad4c0000 */ sw $t4,0x0($t2)
/* f0808a8: afa00018 */ sw $zero,0x18($sp)
/* f0808ac: afae0014 */ sw $t6,0x14($sp)
/* f0808b0: afaf0010 */ sw $t7,0x10($sp)
/* f0808b4: 8fa700c8 */ lw $a3,0xc8($sp)
/* f0808b8: 0fc2ce70 */ jal texSelect
/* f0808bc: 8fa600cc */ lw $a2,0xcc($sp)
/* f0808c0: 8fb000c4 */ lw $s0,0xc4($sp)
/* f0808c4: 3c190102 */ lui $t9,0x102
/* f0808c8: 37390040 */ ori $t9,$t9,0x40
/* f0808cc: 26090008 */ addiu $t1,$s0,0x8
/* f0808d0: afa900c4 */ sw $t1,0xc4($sp)
/* f0808d4: ae190000 */ sw $t9,0x0($s0)
/* f0808d8: 8faa00b8 */ lw $t2,0xb8($sp)
/* f0808dc: 0c012d20 */ jal osVirtualToPhysical
/* f0808e0: 8d44000c */ lw $a0,0xc($t2)
/* f0808e4: ae020004 */ sw $v0,0x4($s0)
/* f0808e8: 8fb100c4 */ lw $s1,0xc4($sp)
/* f0808ec: 3c0dbc00 */ lui $t5,0xbc00
/* f0808f0: 35ad1006 */ ori $t5,$t5,0x1006
/* f0808f4: 262c0008 */ addiu $t4,$s1,0x8
/* f0808f8: afac00c4 */ sw $t4,0xc4($sp)
/* f0808fc: ae2d0000 */ sw $t5,0x0($s1)
/* f080900: 0c012d20 */ jal osVirtualToPhysical
/* f080904: 8fa400b4 */ lw $a0,0xb4($sp)
/* f080908: ae220004 */ sw $v0,0x4($s1)
/* f08090c: 8fb000c4 */ lw $s0,0xc4($sp)
/* f080910: 3c180700 */ lui $t8,0x700
/* f080914: 37180004 */ ori $t8,$t8,0x4
/* f080918: 260e0008 */ addiu $t6,$s0,0x8
/* f08091c: afae00c4 */ sw $t6,0xc4($sp)
/* f080920: ae180000 */ sw $t8,0x0($s0)
/* f080924: 0c012d20 */ jal osVirtualToPhysical
/* f080928: 8fa400b0 */ lw $a0,0xb0($sp)
/* f08092c: ae020004 */ sw $v0,0x4($s0)
/* f080930: 8fa900c4 */ lw $t1,0xc4($sp)
/* f080934: 3c0a0430 */ lui $t2,0x430
/* f080938: 354a0030 */ ori $t2,$t2,0x30
/* f08093c: 25390008 */ addiu $t9,$t1,0x8
/* f080940: afb900c4 */ sw $t9,0xc4($sp)
/* f080944: 3c0b0400 */ lui $t3,0x400
/* f080948: ad2b0004 */ sw $t3,0x4($t1)
/* f08094c: ad2a0000 */ sw $t2,0x0($t1)
/* f080950: 8fac00c4 */ lw $t4,0xc4($sp)
/* f080954: 3c0fb100 */ lui $t7,0xb100
/* f080958: 35ef0032 */ ori $t7,$t7,0x32
/* f08095c: 258d0008 */ addiu $t5,$t4,0x8
/* f080960: afad00c4 */ sw $t5,0xc4($sp)
/* f080964: 240e2010 */ addiu $t6,$zero,0x2010
/* f080968: ad8e0004 */ sw $t6,0x4($t4)
/* f08096c: ad8f0000 */ sw $t7,0x0($t4)
/* f080970: 8fb800c4 */ lw $t8,0xc4($sp)
/* f080974: 3c19b800 */ lui $t9,0xb800
/* f080978: 3c0a0601 */ lui $t2,0x601
/* f08097c: 27090008 */ addiu $t1,$t8,0x8
/* f080980: afa900c4 */ sw $t1,0xc4($sp)
/* f080984: af000004 */ sw $zero,0x4($t8)
/* f080988: af190000 */ sw $t9,0x0($t8)
/* f08098c: 8fa600ac */ lw $a2,0xac($sp)
/* f080990: acca0000 */ sw $t2,0x0($a2)
/* f080994: 8fab00c4 */ lw $t3,0xc4($sp)
/* f080998: accb0004 */ sw $t3,0x4($a2)
.L0f08099c:
/* f08099c: 8fbf004c */ lw $ra,0x4c($sp)
.L0f0809a0:
/* f0809a0: 8fa200c4 */ lw $v0,0xc4($sp)
/* f0809a4: d7b40020 */ ldc1 $f20,0x20($sp)
/* f0809a8: d7b60028 */ ldc1 $f22,0x28($sp)
/* f0809ac: d7b80030 */ ldc1 $f24,0x30($sp)
/* f0809b0: d7ba0038 */ ldc1 $f26,0x38($sp)
/* f0809b4: 8fb00044 */ lw $s0,0x44($sp)
/* f0809b8: 8fb10048 */ lw $s1,0x48($sp)
/* f0809bc: 03e00008 */ jr $ra
/* f0809c0: 27bd00b8 */ addiu $sp,$sp,0xb8
);
// Mismatch: Several issues, but main one is the float variables near the cosf
// and sinf calls. Appears to be functionally identical.
//Gfx *tvscreenRender(struct model *model, struct modelnode *node, struct tvscreen *screen, Gfx *gdl, s32 arg4, s32 arg5)
//{
// struct textureconfig *tconfig;
//
// if (node && (node->type & 0xff) == MODELNODETYPE_DL) {
// struct gfxvtx *vertices = gfxAllocateVertices(4); // b4
// u8 *colours = gfxAllocateColours(1); // b0
// Gfx *savedgdl = gdl++; // ac
// union modelrodata *rodata = node->rodata; // a8
// union modelrwdata *rwdata = modelGetNodeRwData(model, node); // a4
// bool yielding = false;
//
// while (!yielding) {
// u32 *cmd = &screen->cmdlist[screen->offset];
//
// switch (cmd[0]) {
// case TVCMD_STOPSCROLL: // f07fce4
// screen->xmidinc = 0;
// screen->ymidinc = 0;
// screen->offset++;
// break;
// case TVCMD_SCROLLRELX: // f07fcf8
// screen->xmidfrac = 0;
// screen->xmidinc = cmd[2] == 0 ? 1.0f : 1.0f / cmd[2];
// screen->xmidold = screen->xmid;
// screen->xmidnew = screen->xmid + (s32)cmd[1] * (1.0f / 1024.0f);
// screen->offset += 3;
// break;
// case TVCMD_SCROLLRELY: // f07fd68
// screen->ymidfrac = 0;
// screen->ymidinc = cmd[2] == 0 ? 1.0f : 1.0f / cmd[2];
// screen->ymidold = screen->ymid;
// screen->ymidnew = screen->ymid + (s32)cmd[1] * (1.0f / 1024.0f);
// screen->offset += 3;
// break;
// case TVCMD_SCROLLABSX: // f07fdd8
// screen->xmidfrac = 0;
// screen->xmidinc = cmd[2] == 0 ? 1.0f : 1.0f / cmd[2];
// screen->xmidold = screen->xmid;
// screen->xmidnew = (s32)cmd[1] * (1.0f / 1024.0f);
// screen->offset += 3;
// break;
// case TVCMD_SCROLLABSY: // f07fe44
// screen->ymidfrac = 0;
// screen->ymidinc = cmd[2] == 0 ? 1.0f : 1.0f / cmd[2];
// screen->ymidold = screen->ymid;
// screen->ymidnew = (s32)cmd[1] * (1.0f / 1024.0f);
// screen->offset += 3;
// break;
// case TVCMD_SCALEABSX: // f07feb0
// screen->xscalefrac = 0;
// screen->xscaleinc = cmd[2] == 0 ? 1.0f : 1.0f / cmd[2];
// screen->xscaleold = screen->xscale;
// screen->xscalenew = (s32)cmd[1] * (1.0f / 1024.0f);
// screen->offset += 3;
// break;
// case TVCMD_SCALEABSY: // f07ff1c
// screen->yscalefrac = 0;
// screen->yscaleinc = cmd[2] == 0 ? 1.0f : 1.0f / cmd[2];
// screen->yscaleold = screen->yscale;
// screen->yscalenew = (s32)cmd[1] * (1.0f / 1024.0f);
// screen->offset += 3;
// break;
// case TVCMD_SETTEXTURE: // f07ff88
// tvscreenSetTexture(screen, cmd[1]);
// screen->offset += 2;
// break;
// case TVCMD_PAUSE: // f07ffb4
// if (screen->pause60 >= 0) {
// screen->pause60 -= g_Vars.lvupdate240_60;
//
// if (screen->pause60 >= 0) {
// yielding = true;
// } else {
// screen->offset += 2;
// }
// } else {
// yielding = true;
// screen->pause60 = cmd[1];
// }
// break;
// case TVCMD_SETCMDLIST: // f080000
// tvscreenSetCmdlist(screen, (u32 *) cmd[1]);
// break;
// case TVCMD_RANDSETCMDLIST: // f080020
// if ((random() >> 16) < cmd[2]) {
// tvscreenSetCmdlist(screen, (u32 *) cmd[1]);
// } else {
// screen->offset += 3;
// }
// break;
// case TVCMD_RESTART: // f080074
// screen->offset = 0;
// break;
// case TVCMD_YIELD: // f08007c
// yielding = true;
// break;
// case TVCMD_SETCOLOUR: // f080084
// screen->colfrac = 0;
// screen->colinc = cmd[2] == 0 ? 1.0f : 1.0f / cmd[2];
//
// screen->redold = screen->red;
// screen->rednew = (cmd[1] >> 24);
//
// screen->greenold = screen->green;
// screen->greennew = (cmd[1] >> 16);
//
// screen->blueold = screen->blue;
// screen->bluenew = (cmd[1] >> 8);
//
// screen->alphaold = screen->alpha;
// screen->alphanew = cmd[1];
//
// screen->offset += 3;
// break;
// case TVCMD_ROTATEABS: // f08011c
// screen->rot = (s32)cmd[1] * (M_BADTAU / 65536.0f);
// screen->offset += 2;
// break;
// case TVCMD_ROTATEREL: // f080140
// screen->rot += g_Vars.lvupdate240f * (s32)cmd[1] * (M_BADTAU / 65536.0f);
//
// if (screen->rot >= M_BADTAU) {
// screen->rot -= M_BADTAU;
// }
//
// if (screen->rot < 0) {
// screen->rot += M_BADTAU;
// }
//
// screen->offset += 2;
// break;
// }
// }
//
// // Increment X scale
// if (screen->xscaleinc > 0) {
// screen->xscalefrac += screen->xscaleinc * g_Vars.lvupdate240f;
//
// if (screen->xscalefrac < 1.0f) {
// screen->xscale = screen->xscaleold + (screen->xscalenew - screen->xscaleold) * screen->xscalefrac;
// } else {
// screen->xscalefrac = 1.0f;
// screen->xscaleinc = 0;
// screen->xscale = screen->xscalenew;
// }
// }
//
// // Increment Y scale
// if (screen->yscaleinc > 0) {
// screen->yscalefrac += screen->yscaleinc * g_Vars.lvupdate240f;
//
// if (screen->yscalefrac < 1.0f) {
// screen->yscale = screen->yscaleold + (screen->yscalenew - screen->yscaleold) * screen->yscalefrac;
// } else {
// screen->yscalefrac = 1.0f;
// screen->yscaleinc = 0;
// screen->yscale = screen->yscalenew;
// }
// }
//
// // Increment X scroll
// if (screen->xmidinc > 0) {
// screen->xmidfrac += screen->xmidinc * g_Vars.lvupdate240f;
//
// if (screen->xmidfrac < 1.0f) {
// screen->xmid = screen->xmidold + (screen->xmidnew - screen->xmidold) * screen->xmidfrac;
// } else {
// screen->xmidfrac = 1.0f;
// screen->xmidinc = 0;
// screen->xmid = screen->xmidnew;
// }
// }
//
// // Increment Y scroll
// if (screen->ymidinc > 0) {
// screen->ymidfrac += screen->ymidinc * g_Vars.lvupdate240f;
//
// if (screen->ymidfrac < 1.0f) {
// screen->ymid = screen->ymidold + (screen->ymidnew - screen->ymidold) * screen->ymidfrac;
// } else {
// screen->ymidfrac = 1.0f;
// screen->ymidinc = 0;
// screen->ymid = screen->ymidnew;
// }
// }
//
// // Increment colour change
// // 370
// if (screen->colinc > 0) {
// screen->colfrac += screen->colinc * g_Vars.lvupdate240f;
//
// // 398
// if (screen->colfrac < 1.0f) {
// s32 r;
// s32 g;
// s32 b;
// s32 a;
// r = screen->colfrac * (screen->rednew - screen->redold);
// g = screen->colfrac * (screen->greennew - screen->greenold);
// screen->red = r + screen->redold;
// screen->green = g + screen->greenold;
// b = screen->colfrac * (screen->bluenew - screen->blueold);
// a = screen->colfrac * (screen->alphanew - screen->alphaold);
// screen->blue = b + screen->blueold;
// screen->alpha = a + screen->alphaold;
// } else {
// screen->colfrac = 1.0f;
// screen->colinc = 0;
// screen->red = screen->rednew;
// screen->green = screen->greennew;
// screen->blue = screen->bluenew;
// screen->alpha = screen->alphanew;
// }
// }
//
// // Set up everything for rendering
// rwdata->dl.vertices = vertices;
// rwdata->dl.unk08 = (u32 *) colours;
// rwdata->dl.gdl = gdl;
//
// vertices[0] = rodata->dl.vertices[0];
// vertices[1] = rodata->dl.vertices[1];
// vertices[2] = rodata->dl.vertices[2];
// vertices[3] = rodata->dl.vertices[3];
//
// if ((u32)screen->tconfig < 100) {
// tconfig = &g_TexScreenConfigs[(u32)screen->tconfig];
// } else {
// tconfig = screen->tconfig;
// }
//
// if (tconfig != NULL) {
// f32 f20 = screen->xscale * 0.5f;
// f32 f24 = screen->yscale * 0.5f;
// f32 f14 = f20;
// f32 f16 = f24;
//
// if (screen->rot != 0) {
// f32 f22 = cosf(screen->rot) * 1.4141999483109f;
// f32 f2 = sinf(screen->rot) * 1.4141999483109f;
//
// f20 *= f22;
// f24 *= f2;
// f14 *= f2;
// f16 *= f22;
// }
//
// vertices[0].s = tconfig->width * (screen->xmid + f20) * 32;
// vertices[0].t = tconfig->height * (screen->ymid + f24) * 32;
// vertices[1].s = tconfig->width * (screen->xmid - f14) * 32;
// vertices[1].t = tconfig->height * (screen->ymid + f16) * 32;
// vertices[2].s = tconfig->width * (screen->xmid - f20) * 32;
// vertices[2].t = tconfig->height * (screen->ymid - f24) * 32;
// vertices[3].s = tconfig->width * (screen->xmid + f14) * 32;
// vertices[3].t = tconfig->height * (screen->ymid - f16) * 32;
// }
//
// if (tconfig);
//
// colours[0] = screen->red;
// colours[1] = screen->green;
// colours[2] = screen->blue;
// colours[3] = screen->alpha;
//
// vertices[0].colour = 0;
// vertices[1].colour = 0;
// vertices[2].colour = 0;
// vertices[3].colour = 0;
//
// if (screen->alpha < 255) {
// arg5 = 2;
// }
//
// // Render the image
// gSPSetGeometryMode(gdl++, G_CULL_BACK);
//
// texSelect(&gdl, tconfig, arg5, arg4, 2, 1, NULL);
//
// gSPMatrix(gdl++, osVirtualToPhysical(model->matrices), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
//
// gMoveWd(gdl++, 1, 6, osVirtualToPhysical(vertices));
// gDPSetColorArray(gdl++, osVirtualToPhysical(colours), 1);
// gDPSetVerticeArray(gdl++, 0x04000000, 4);
//
// gDPTri2(gdl++, 0, 1, 2, 0, 2, 3);
// gSPEndDisplayList(gdl++);
//
// gSPBranchList(savedgdl++, gdl);
// }
//
// return gdl;
//}
void objRenderProp(struct prop *prop, struct modelrenderdata *renderdata, bool xlupass)
{
if (prop->flags & PROPFLAG_ONTHISSCREENTHISTICK) {
struct defaultobj *obj = prop->obj;
struct model *model = obj->model;
bool sp6c;
struct prop *child;
Gfx *gdl;
s32 sp60;
sp6c = 0;
sp6c += (obj->flags & OBJFLAG_00000200) && camGetOrthogonalMtxL();
gdl = renderdata->gdl;
if (obj->type == OBJTYPE_SINGLEMONITOR) {
if (renderdata->flags & 1) {
struct singlemonitorobj *monitor = (struct singlemonitorobj *) prop->obj;
if (obj->flags2 & OBJFLAG2_DRAWONTOP) {
sp60 = 0;
} else if (obj->flags & OBJFLAG_DEACTIVATED) {
sp60 = wallhit0f140750(&prop->pos);
} else {
sp60 = 1;
}
gdl = tvscreenRender(model, modelGetPart(model->filedata, MODELPART_0000), &monitor->screen, gdl, sp60, 1);
}
} else if (obj->type == OBJTYPE_MULTIMONITOR) {
if (renderdata->flags & 1) {
struct multimonitorobj *monitor = (struct multimonitorobj *) prop->obj;
if (obj->flags2 & OBJFLAG2_DRAWONTOP) {
sp60 = 0;
} else if (obj->flags & OBJFLAG_DEACTIVATED) {
sp60 = wallhit0f140750(&prop->pos);
} else {
sp60 = 1;
}
gdl = tvscreenRender(model, modelGetPart(model->filedata, MODELPART_0000), &monitor->screens[0], gdl, sp60, 1);
if (obj->flags2 & OBJFLAG2_DRAWONTOP) {
sp60 = 0;
} else if (obj->flags & (OBJFLAG_DEACTIVATED | OBJFLAG_20000000)) {
sp60 = wallhit0f140750(&prop->pos);
} else {
sp60 = 1;
}
gdl = tvscreenRender(model, modelGetPart(model->filedata, MODELPART_0001), &monitor->screens[1], gdl, sp60, 1);
gdl = tvscreenRender(model, modelGetPart(model->filedata, MODELPART_0002), &monitor->screens[2], gdl, sp60, 1);
gdl = tvscreenRender(model, modelGetPart(model->filedata, MODELPART_0003), &monitor->screens[3], gdl, sp60, 1);
}
}
if (obj->type == OBJTYPE_DOOR) {
struct doorobj *door = prop->door;
gSPClearGeometryMode(gdl++, G_CULL_BOTH);
if (door->doorflags & DOORFLAG_FLIP) {
renderdata->cullmode = CULLMODE_FRONT;
} else {
renderdata->cullmode = CULLMODE_BACK;
}
if (renderdata->unk30 == 9) {
renderdata->envcolour &= 0xffffff00;
}
} else if ((obj->hidden2 & OBJH2FLAG_80) == 0) {
renderdata->cullmode = CULLMODE_BACK;
if (renderdata->unk30 == 9) {
renderdata->envcolour &= 0xffffff00;
}
} else {
s32 level = objGetDestroyedLevel(obj);
renderdata->cullmode = CULLMODE_NONE;
if (renderdata->unk30 == 9) {
s32 alpha = 100 + level * 50;
if (alpha > 255) {
alpha = 255;
}
renderdata->envcolour &= 0xffffff00;
renderdata->envcolour |= alpha;
} else if (level > 0) {
renderdata->envcolour |= 0x0000ff00;
}
}
if (sp6c) {
gSPMatrix(gdl++, camGetOrthogonalMtxL(), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
}
renderdata->gdl = gdl;
modelRender(renderdata, model);
gdl = renderdata->gdl;
if (obj->type == OBJTYPE_DOOR) {
gSPClearGeometryMode(gdl++, G_CULL_BOTH);
}
if (obj->hidden2 & (OBJH2FLAG_HASOPA << xlupass)) {
gdl = wallhitRenderPropHits(gdl, prop, xlupass);
}
if (sp6c) {
gSPMatrix(gdl++, camGetPerspectiveMtxL(), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
}
renderdata->gdl = gdl;
child = prop->child;
while (child) {
objRenderProp(child, renderdata, xlupass);
child = child->next;
}
if (xlupass) {
if (sp6c) {
player0f0c3320(model->matrices, model->filedata->nummatrices);
} else {
func0f0c33f0(model->matrices, model->filedata->nummatrices);
}
if ((obj->flags3 & (OBJFLAG3_SHOWSHIELD | OBJFLAG3_SHIELDHIT)) && objIsHealthy(obj)) {
gSPSetGeometryMode(renderdata->gdl++, G_CULL_BACK);
renderdata->gdl = shieldhitRender(renderdata->gdl, prop, prop, 0xff, 0, 0, 1, 2, 3);
}
}
}
}
Gfx *gfxRenderRadialShadow(Gfx *gdl, f32 x, f32 y, f32 z, f32 angle, f32 radius, u32 colour)
{
Mtxf spc0;
Mtxf sp80;
Mtxf *mtx;
struct gfxvtx *vertices;
u32 *colours;
struct coord pos;
struct textureconfig *tconfig;
s32 i;
f32 base1 = 0.0f;
f32 base2 = 0.0f;
f32 base3 = 0.0f;
f32 base4 = 0.0f;
if (radius);
vertices = gfxAllocateVertices(4);
colours = gfxAllocateColours(1);
tconfig = &g_TexShadowConfigs[0];
colours[0] = colour;
pos.x = x;
pos.y = y + 2.0f;
pos.z = z;
mtx = gfxAllocateMatrix();
mtx4LoadYRotationWithTranslation(&pos, angle, &spc0);
mtx4MultMtx4(camGetWorldToScreenMtxf(), &spc0, &sp80);
mtx00016054(&sp80, mtx);
for (i = 0; i < 4; i++) {
vertices[i].y = 0;
vertices[i].colour = 0;
}
vertices[0].x = base1 - radius;
vertices[0].z = base3 - radius;
vertices[1].x = base1 - radius;
vertices[1].z = base4 + radius;
vertices[2].x = base2 + radius;
vertices[2].z = base4 + radius;
vertices[3].x = base2 + radius;
vertices[3].z = base3 - radius;
if (tconfig) {
vertices[0].s = 0;
vertices[0].t = 0;
vertices[1].s = tconfig->width * 32 - 1;
vertices[1].t = 0;
vertices[2].s = tconfig->width * 32 - 1;
vertices[2].t = tconfig->height * 32 - 1;
vertices[3].s = 0;
vertices[3].t = tconfig->height * 32 - 1;
texSelect(&gdl, tconfig, 4, 1, 2, 1, NULL);
} else {
texSelect(&gdl, NULL, 1, 1, 2, 1, NULL);
}
gSPSetGeometryMode(gdl++, G_CULL_BACK);
gSPMatrix(gdl++, osVirtualToPhysical(mtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPSetColorArray(gdl++, osVirtualToPhysical(colours), 1);
gDPSetVerticeArray(gdl++, osVirtualToPhysical(vertices), 4);
gDPTri2(gdl++, 0, 1, 2, 2, 3, 0);
return gdl;
}
Gfx *objRenderShadow(struct defaultobj *obj, Gfx *gdl)
{
f32 angle;
f32 y;
#if VERSION >= VERSION_NTSC_1_0
s32 value = cd0002a440(&obj->prop->pos, obj->prop->rooms, &y, NULL, NULL);
#else
s32 value = cd0002a440(&obj->prop->pos, obj->prop->rooms, &y, NULL);
#endif
if (value > 0 && (obj->modelnum == MODEL_HOOVERBOT || obj->modelnum == MODEL_TESTERBOT)) {
angle = hoverpropGetTurnAngle(obj);
gdl = gfxRenderRadialShadow(gdl, obj->prop->pos.x, y, obj->prop->pos.z, angle, 20, 0xffffff78);
} else if (value > 0) {
angle = hoverpropGetTurnAngle(obj);
gdl = gfxRenderRadialShadow(gdl, obj->prop->pos.x, y, obj->prop->pos.z, angle, 30, 0xffffff78);
}
return gdl;
}
Gfx *objRender(struct prop *prop, Gfx *gdl, bool xlupass)
{
u32 stack;
u32 stack2;
struct defaultobj *obj = prop->obj;
f32 spe8;
s32 spe4;
s32 i;
struct modelrenderdata renderdata = {NULL, true, 3};
struct screenbox screenbox;
s32 colour[4];
s32 sp84;
s32 healththing;
s32 alpha = 0xff;
f32 xrayalphafrac;
s32 mult;
struct weaponobj *weapon;
struct doorobj *door;
f32 frac;
struct modelnode *node;
struct modelrodata_dl *dldata1;
struct modelrwdata_dl *dldata2;
f32 fadedist;
struct colour *oldcolours;
struct colour *newcolours;
f32 objdist;
spe4 = env0f1667f4(prop, &spe8);
if (spe4 == 0) {
return gdl;
}
if (obj->type != OBJTYPE_TINTEDGLASS) {
frac = func0f08e6bc(prop, model0001af80(obj->model));
if (prop->timetoregen > 0 && prop->timetoregen < TICKS(60)) {
frac *= (TICKS(60.0f) - prop->timetoregen) * (PAL ? 0.019999999552965f : 0.016666667535901f);
}
alpha = frac * 255.0f;
if (alpha <= 0) {
return gdl;
}
}
if (g_Vars.currentplayer->visionmode == VISIONMODE_NORMAL) {
// empty
} else if (g_Vars.currentplayer->visionmode == VISIONMODE_SLAYERROCKET) {
if (g_Vars.currentplayer->slayerrocket
&& g_Vars.currentplayer->slayerrocket->base.prop
&& g_Vars.currentplayer->slayerrocket->base.prop == prop) {
return gdl;
}
} else if (g_Vars.currentplayer->visionmode == VISIONMODE_XRAY) {
fadedist;
objdist = sqrtf(ERASERSQDIST(prop->pos.f));
if (objdist > g_Vars.currentplayer->eraserpropdist) {
return gdl;
}
alpha = 128;
fadedist = g_Vars.currentplayer->eraserpropdist - 150.0f;
if (objdist > fadedist) {
alpha = (1.0f - (objdist - fadedist) / 150.0f) * 128;
}
xrayalphafrac = objdist / g_Vars.currentplayer->eraserpropdist;
if (xrayalphafrac > 1.0f) {
xrayalphafrac = 1.0f;
}
}
if (g_Vars.lvmpbotlevel && obj->type == OBJTYPE_WEAPON) {
if (obj->flags3 & OBJFLAG3_HARDFREEING) {
weapon = (struct weaponobj *)obj;
alpha = ((f32)alpha * (f32)weapon->fadeouttimer60) * (PAL ? 0.019999999552965f : 0.016666667535901f);
if (alpha < 0) {
alpha = 0;
} else if (alpha > 0xff) {
alpha = 0xff;
}
}
}
if (alpha < 0xff || (obj->flags2 & OBJFLAG2_DRAWONTOP)) {
if (!xlupass) {
return gdl;
}
sp84 = 3;
} else {
if (!xlupass) {
sp84 = 1;
} else {
sp84 = 2;
}
}
if (obj->type == OBJTYPE_DOOR) {
door = (struct doorobj *)obj;
if (door->doortype == DOORTYPE_LASER) {
node = func0f0687e4(obj->model);
dldata1 = &node->rodata->dl;
dldata2 = (struct modelrwdata_dl *)modelGetNodeRwData(obj->model, node);
oldcolours = (struct colour *)(((u32)&dldata1->vertices[dldata1->numvertices] + 7 | 7) ^ 7);
newcolours = (struct colour *)gfxAllocateColours(dldata1->numcolours);
for (i = 0; i < dldata1->numcolours; i++) {
newcolours[i] = oldcolours[i];
newcolours[i].a = door->laserfade;
}
dldata2->colours = newcolours;
}
}
if ((obj->flags2 & OBJFLAG2_04000000) == 0 && func0f08e5a8(prop->rooms, &screenbox) > 0) {
gdl = currentPlayerScissorWithinViewport(gdl, screenbox.xmin, screenbox.ymin, screenbox.xmax, screenbox.ymax);
} else {
gdl = currentPlayerScissorToViewport(gdl);
}
renderdata.flags = sp84;
renderdata.zbufferenabled = (obj->flags2 & OBJFLAG2_DRAWONTOP) == 0;
renderdata.gdl = gdl;
if (alpha < 0xff) {
renderdata.unk30 = 5;
renderdata.envcolour = alpha;
} else {
renderdata.unk30 = 9;
if (obj->type == OBJTYPE_TINTEDGLASS) {
struct tintedglassobj *glass = (struct tintedglassobj *)obj;
renderdata.envcolour = glass->opacity << 8;
} else {
if (obj->type == OBJTYPE_DOOR && ((struct doorobj *)obj)->doorflags & DOORFLAG_WINDOWED) {
renderdata.envcolour = ((struct doorobj *)obj)->fadealpha << 8;
} else {
renderdata.envcolour = 0;
}
}
}
if (prop->type == PROPTYPE_DOOR
&& (g_Vars.coopplayernum >= 0 || g_Vars.antiplayernum >= 0)) {
struct doorobj *door = prop->door;
if (g_Vars.currentplayernum == 0) {
colour[0] = door->shadeinfo1[0];
colour[1] = door->shadeinfo1[1];
colour[2] = door->shadeinfo1[2];
colour[3] = door->shadeinfo1[3];
} else {
colour[0] = door->shadeinfo2[0];
colour[1] = door->shadeinfo2[1];
colour[2] = door->shadeinfo2[2];
colour[3] = door->shadeinfo2[3];
}
} else {
colour[0] = obj->shadecol[0];
colour[1] = obj->shadecol[1];
colour[2] = obj->shadecol[2];
colour[3] = obj->shadecol[3];
}
if (g_Vars.normmplayerisrunning) {
scenarioHighlightProp(prop, colour);
}
if (g_Vars.currentplayer->visionmode == VISIONMODE_XRAY) {
colour[g_Vars.currentplayer->epcol_0] = xrayalphafrac * 255.0f;
colour[g_Vars.currentplayer->epcol_1] = (1.0f - xrayalphafrac) * 255.0f;
colour[g_Vars.currentplayer->epcol_2] = 0;
colour[3] = 0xff;
} else {
colour[3] -= func0f068fc8(obj->prop, true);
if (colour[3]);
if (colour[3] > 0xff) {
colour[3] = 0xff;
}
if (colour[3] < 0) {
colour[3] = 0;
}
}
healththing = objGetShotsTaken(obj);
mult = 0xff - (healththing * 21);
if (mult < 0) {
mult = 0;
}
colour[0] = (colour[0] * mult) >> 8;
colour[1] = (colour[1] * mult) >> 8;
colour[2] = (colour[2] * mult) >> 8;
colour[3] += healththing * 15;
if (colour[3] > 0xff) {
colour[3] = 0xff;
}
func0f069750(colour, spe4, &spe8);
if (USINGDEVICE(DEVICE_NIGHTVISION)) {
if ((obj->flags & OBJFLAG_PATHBLOCKER) == 0) {
colour[0] = var8009caed;
colour[1] = var8009caed;
colour[2] = var8009caed;
colour[3] = var8009caee;
}
} else if (USINGDEVICE(DEVICE_IRSCANNER)) {
if ((obj->hidden & OBJHFLAG_CONDITIONALSCENERY) || (obj->flags3 & OBJFLAG3_INFRARED)) {
colour[0] = 0xff;
colour[1] = 0xff;
colour[2] = 0xff;
colour[3] = 0x46;
}
}
renderdata.fogcolour = colour[0] << 24 | colour[1] << 16 | colour[2] << 8 | colour[3];
objRenderProp(prop, &renderdata, xlupass);
gdl = renderdata.gdl;
if (xlupass) {
if (obj->type == OBJTYPE_HOVERPROP
|| obj->type == OBJTYPE_HOVERBIKE
|| obj->modelnum == MODEL_HOOVERBOT
|| obj->modelnum == MODEL_TESTERBOT) {
gdl = objRenderShadow(obj, gdl);
}
if (obj->modelnum == MODEL_A51INTERCEPTOR && (obj->flags & OBJFLAG_80000000)) {
gdl = objRenderShadow(obj, gdl);
}
}
return gdl;
}
bool modelIsNodeNotTvscreen(struct modelfiledata *filedata, struct modelnode *node)
{
if (filedata->skel == &g_SkelTerminal) {
if (modelGetPart(filedata, MODELPART_TERMINAL_0000) == node) {
return false;
}
}
if (filedata->skel == &g_SkelCiHub) {
if (modelGetPart(filedata, MODELPART_CIHUB_0000) == node
|| modelGetPart(filedata, MODELPART_CIHUB_0001) == node
|| modelGetPart(filedata, MODELPART_CIHUB_0002) == node
|| modelGetPart(filedata, MODELPART_CIHUB_0003) == node) {
return false;
}
}
return true;
}
/**
* Deform an object due to it being destroyed.
*/
void objDeform(struct defaultobj *obj, s32 level)
{
f32 min;
f32 max;
f32 average;
f32 f2;
f32 spbc = 0.0f;
f32 spb0[3];
s32 i;
struct modelrodata_bbox *parentbbox;
struct modelrodata_bbox *bbox;
struct modelnode *node;
struct modelnode *parent;
struct model *model = obj->model;
struct modelfiledata *modeldef = model->filedata;
volatile s32 salt;
bool ok = true;
f32 mult;
#if VERSION < VERSION_NTSC_1_0
s32 uninitialisedvariable;
#endif
bool swap;
s32 axis;
s32 chance;
func0f0926bc(obj->prop, 15, 0xffff);
salt = 0;
if (debugIsObjDeformDebugEnabled());
if (debugIsObjDeformDebugEnabled());
salt = random();
if (debugIsObjDeformDebugEnabled()) {
salt &= 0xffff;
}
wallhitsFreeByProp(obj->prop, 1);
swap = false;
axis = 1;
for (i = 0; i < 3; i++) {
bool swapthis = false;
spb0[i] = sqrtf(obj->realrot[i][0] * obj->realrot[i][0] + obj->realrot[i][1] * obj->realrot[i][1] + obj->realrot[i][2] * obj->realrot[i][2]);
f2 = obj->realrot[i][1] / spb0[i];
if (f2 < 0.0f) {
swapthis = true;
f2 = -f2;
}
if (spbc < f2) {
spbc = f2;
axis = i;
swap = swapthis;
}
}
min = 99999.0f;
max = -99999.0f;
bbox = modelFindBboxRodata(model);
if (axis == 0) {
min = modelBboxGetXMin(bbox);
max = modelBboxGetXMax(bbox);
} else if (axis == 1) {
min = modelBboxGetYMin(bbox);
max = modelBboxGetYMax(bbox);
} else if (axis == 2) {
min = modelBboxGetZMin(bbox);
max = modelBboxGetZMax(bbox);
}
if (swap) {
f32 tmp = max;
max = min;
min = tmp;
}
if (min < max) {
average = (min + max) * 0.5f;
} else {
average = 0.0f;
min = 0.0f;
max = 0.0f;
}
if (level == 3 && average - min > 4.0f) {
average = min + 6.0f - 2.0f;
}
if (max - min > 6.0f) {
if (level < 3) {
mult = 0.9f;
} else {
mult = (max - min - 6.0f) / (max - min);
}
} else {
mult = 1.0f;
}
obj->realrot[1][0] *= mult;
obj->realrot[1][1] *= mult;
obj->realrot[1][2] *= mult;
obj->prop->pos.f[axis] += (1.0f - mult) * min;
node = modeldef->rootnode;
while (node) {
u32 type = node->type & 0xff;
switch (type) {
case MODELNODETYPE_DL:
parentbbox = NULL;
parent = node;
while (parent) {
if ((parent->type & 0xff) == MODELNODETYPE_BBOX) {
parentbbox = &parent->rodata->bbox;
break;
}
parent = parent->parent;
}
if (modelIsNodeNotTvscreen(modeldef, node) && parentbbox == bbox) {
struct modelrodata_dl *rodata = &node->rodata->dl;
struct modelrwdata_dl *rwdata = (struct modelrwdata_dl *)&model->rwdatas[rodata->rwdataindex];
struct gfxvtx *vertices = vtxstoreAllocate(rodata->numvertices, VTXSTORETYPE_OBJVTX, node, objGetDestroyedLevel(obj));
if (vertices) {
if (rwdata->vertices != rodata->vertices) {
// Replacing modified vertices with a new set
for (i = 0; i < rodata->numvertices; i++) {
vertices[i] = rwdata->vertices[i];
}
vtxstoreFree(VTXSTORETYPE_OBJVTX, rwdata->vertices);
} else {
// Replacing original vertices with modified vertices
for (i = 0; i < rodata->numvertices; i++) {
vertices[i] = rodata->vertices[i];
}
}
rwdata->vertices = vertices;
} else {
ok = false;
}
if ((u32)rwdata->colours == ALIGN8((u32)&rodata->vertices[rodata->numvertices])) {
struct colour *colours = vtxstoreAllocate(rodata->numcolours, VTXSTORETYPE_OBJCOL, NULL, 0);
if (colours) {
for (i = 0; i < rodata->numcolours; i++) {
colours[i] = rwdata->colours[i];
}
rwdata->colours = colours;
} else {
ok = false;
}
}
if (ok) {
for (i = 0; i < rodata->numcolours; i++) {
if (i > 0) {
rwdata->colours[i].a = 0;
}
}
for (i = 0; i < rodata->numvertices; i++) {
s16 tmp = average;
rng2SetSeed(rodata->vertices[i].x + rodata->vertices[i].y + rodata->vertices[i].z + salt);
#if VERSION < VERSION_NTSC_1_0
if (uninitialisedvariable)
#endif
{
if (swap) {
if (rwdata->vertices[i].v[axis] >= tmp) {
chance = 20;
} else {
chance = 90;
}
} else {
if (rwdata->vertices[i].v[axis] <= tmp) {
chance = 20;
} else {
chance = 90;
}
}
if ((s32)(random2() % 100) < chance) {
rwdata->vertices[i].colour = 0;
}
}
rwdata->vertices[i].x += (s32)(((s32)(random2() % 20) - 10) * spb0[0]);
rwdata->vertices[i].y += (s32)(((s32)(random2() % 20) - 10) * spb0[1]);
rwdata->vertices[i].z += (s32)(((s32)(random2() % 20) - 10) * spb0[2]);
if (parentbbox != NULL) {
if (rwdata->vertices[i].x < (s16)parentbbox->xmin) {
rwdata->vertices[i].x = (s16)parentbbox->xmin;
}
if (rwdata->vertices[i].x > (s16)parentbbox->xmax) {
rwdata->vertices[i].x = (s16)parentbbox->xmax;
}
if (rwdata->vertices[i].y < (s16)parentbbox->ymin) {
rwdata->vertices[i].y = (s16)parentbbox->ymin;
}
if (rwdata->vertices[i].y > (s16)parentbbox->ymax) {
rwdata->vertices[i].y = (s16)parentbbox->ymax;
}
if (rwdata->vertices[i].z < (s16)parentbbox->zmin) {
rwdata->vertices[i].z = (s16)parentbbox->zmin;
}
if (rwdata->vertices[i].z > (s16)parentbbox->zmax) {
rwdata->vertices[i].z = (s16)parentbbox->zmax;
}
}
}
}
}
break;
case MODELNODETYPE_DISTANCE:
model0001c784(obj->model, node);
break;
case MODELNODETYPE_TOGGLE:
model0001c7d0(obj->model, node);
break;
case MODELNODETYPE_HEADSPOT:
modelAttachHead(obj->model, node);
break;
}
if (node->child) {
node = node->child;
} else {
while (node) {
if (node->next) {
node = node->next;
break;
}
node = node->parent;
}
}
}
if ((obj->hidden2 & OBJH2FLAG_80) == 0) {
if (!ok) {
modelFreeVertices(VTXSTORETYPE_OBJVTX, model);
} else {
obj->hidden2 |= OBJH2FLAG_80;
}
}
}
/**
* Bounce an object, such as a hoverbot when it's destroyed.
*/
void objBounce(struct defaultobj *obj, struct coord *arg1)
{
struct coord dir;
struct coord rot = {0, 0, 0};
struct projectile *projectile = NULL;
func0f0685e4(obj->prop);
if (obj->hidden & OBJHFLAG_EMBEDDED) {
projectile = obj->embedment->projectile;
} else if (obj->hidden & OBJHFLAG_AIRBORNE) {
projectile = obj->projectile;
}
if (projectile) {
projectile->speed.x = (RANDOMFRAC() * 6.6666665f) - 3.3333333f;
projectile->speed.y = (RANDOMFRAC() * 3.3333333f) + 3.3333333f;
projectile->speed.z = (RANDOMFRAC() * 6.6666665f) - 3.3333333f;
#if PAL
rot.x = RANDOMFRAC() * 0.029447744f - 0.014723872f;
rot.y = RANDOMFRAC() * 0.029447744f - 0.014723872f;
rot.z = RANDOMFRAC() * 0.029447744f - 0.014723872f;
#else
rot.x = RANDOMFRAC() * 0.024539785f - 0.012269893f;
rot.y = RANDOMFRAC() * 0.024539785f - 0.012269893f;
rot.z = RANDOMFRAC() * 0.024539785f - 0.012269893f;
#endif
mtx4LoadRotation(&rot, &projectile->unk020);
projectile->flags |= PROJECTILEFLAG_00000001;
dir.x = arg1->x;
dir.y = arg1->y;
dir.z = arg1->z;
mtx4RotateVecInPlace(camGetProjectionMtxF(), &dir);
projectile->speed.x += 3.3333333f * dir.x;
projectile->speed.z += 3.3333333f * dir.z;
projectile->ownerprop = g_Vars.currentplayer->prop;
projectile->unk090 = 1;
}
}
void objSetDropped(struct prop *prop, u32 droptype)
{
struct prop *parent = prop->parent;
if (parent) {
struct defaultobj *obj = prop->obj;
func0f0685e4(prop);
if ((obj->hidden & OBJHFLAG_EMBEDDED) && obj->embedment->projectile) {
obj->embedment->projectile->droptype = droptype;
} else if (obj->hidden & OBJHFLAG_AIRBORNE) {
obj->projectile->droptype = droptype;
}
if (g_Vars.lvmpbotlevel
&& obj->type == OBJTYPE_WEAPON
&& obj->modelnum != MODEL_CHRBRIEFCASE
&& obj->modelnum != MODEL_CHRDATATHIEF) {
obj->flags3 |= OBJFLAG3_CANHARDFREE;
}
}
}
void objApplyMomentum(struct defaultobj *obj, struct coord *speed, f32 rotation, bool addspeed, bool addrotation)
{
struct projectile *projectile = NULL;
struct modelrodata_bbox *bbox;
f32 sp24;
f32 sp20;
func0f0685e4(obj->prop);
if (obj->hidden & OBJHFLAG_EMBEDDED) {
projectile = obj->embedment->projectile;
} else if (obj->hidden & OBJHFLAG_AIRBORNE) {
projectile = obj->projectile;
}
if (projectile) {
projectile->flags |= PROJECTILEFLAG_00000800;
if (addspeed) {
projectile->speed.x += speed->x;
projectile->speed.y += speed->y;
projectile->speed.z += speed->z;
} else {
projectile->speed.x = speed->x;
projectile->speed.y = speed->y;
projectile->speed.z = speed->z;
}
if (addrotation) {
projectile->unk0dc += rotation;
} else {
projectile->unk0dc = rotation;
}
if (obj->type == OBJTYPE_HOVERPROP || obj->type == OBJTYPE_HOVERBIKE) {
if (obj->flags & OBJFLAG_20000000) {
projectile->unk08c = 0.8f;
projectile->unk098 = 0.0027777778f;
projectile->unk0e0 = 0.000041881234f;
projectile->unk0e4 = PAL ? 0.969f : 0.974f;
projectile->unk0ec = 0.07852732f;
projectile->unk0f0 = 6.6666665f;
} else {
projectile->unk08c = 0.5f;
projectile->unk098 = 0.013888889f;
projectile->unk0e0 = 0.00020940616f;
projectile->unk0e4 = PAL ? 0.953f : 0.961f;
projectile->unk0ec = 0.07852732f;
projectile->unk0f0 = 6.6666665f;
}
return;
}
bbox = objFindBboxRodata(obj);
sp24 = func0f06692c(bbox, obj->realrot) - func0f0668fc(bbox, obj->realrot);
sp20 = func0f0669ec(bbox, obj->realrot) - func0f0669bc(bbox, obj->realrot);
if (sp24 > 150.0f || sp20 > 150.0f) {
projectile->unk08c = 0.1f;
projectile->unk098 = 0.055555556f;
projectile->unk0e0 = 0.00083762466f;
projectile->unk0e4 = PAL ? 0.953f : 0.961f;
projectile->unk0ec = 0.009815915f;
projectile->unk0f0 = 0.8333333f;
} else if (sp24 > 75.0f || sp20 > 75.0f) {
projectile->unk08c = 0.1f;
projectile->unk098 = 0.055555556f;
projectile->unk0e0 = 0.00083762466f;
projectile->unk0e4 = PAL ? 0.953f : 0.961f;
projectile->unk0ec = 0.01963183f;
projectile->unk0f0 = 0.8333333f;
} else {
projectile->unk08c = 0.1f;
projectile->unk098 = 0.055555556f;
projectile->unk0e0 = 0.00041881233f;
projectile->unk0e4 = PAL ? 0.953f : 0.961f;
projectile->unk0ec = 0.07852732f;
projectile->unk0f0 = 1.6666666f;
}
}
}
#if PIRACYCHECKS
extern u8 _blankSegmentRomStart;
/**
* This function is called whenever a player exits a lift as well as on tick
* whenever a player is running at max speed. Each time it is called, it
* attempts to DMA a payload from the ROM into a location in RAM. However, in
* all versions of the game the payload list is empty so it effectively does
* nothing.
*
* It is likely that this function would have been used to restore piracy checks
* in the event that a player had disabled them using memory editing or a hacked
* ROM. The feature may have been abandoned because it would have revealed where
* all the piracy checks are, or perhaps they never got around to implementing
* the generation of the payload list into their build system.
*
* The segment being read is expected to start with a table of word-pairs for
* the destination RAM address and copy length. 0x40 bytes are reserved for the
* table but it can be terminated early with a zero RAM address.
*
* From 0x40 onwards are the payloads in order. To calculate the read offset for
* a particular payload, the function must sum the lengths of the payloads
* before it.
*/
void piracyRestore(void)
{
s32 i;
u32 writeaddr;
s32 copylen;
s32 readoffset;
u32 *ptr;
u32 *tmp;
u8 buffer[0x4c];
static s8 index = 0;
ptr = (u32 *)buffer;
// Align ptr to an 8 byte boundary
while ((u32)ptr % 8) {
ptr++;
}
// Copy the writeaddr/copylen pairs from ROM to the buffer
dmaExec(ptr, (u32) &_blankSegmentRomStart, 0x40);
// Calculate what needs to be copied and where
i = 0;
readoffset = 0x40;
copylen = 0;
while (i <= index) {
tmp = ptr;
tmp += i << 1;
readoffset += copylen;
writeaddr = tmp[0];
copylen = tmp[1];
i++;
}
// Copy it
if (copylen != 0) {
dmaExec((void *) writeaddr, (u32) &_blankSegmentRomStart + readoffset, copylen);
}
// Increment the index, so the next time the function is called
// it copies the next payload. To do this, calculate the number
// of payloads so it can wrap.
for (i = 0; i < 8 && ptr[i * 2]; i++);
index++;
if (index >= i) {
index = 0;
}
}
#endif
void func0f082e84(struct defaultobj *obj, struct coord *pos, struct coord *dir, struct coord *tween, bool addrotation)
{
struct coord speed = {0, 0, 0};
f32 a = tween->f[0] * dir->f[0] + tween->f[2] * dir->f[2];
f32 b = pos->f[0] - obj->prop->pos.f[0];
f32 c = pos->f[2] - obj->prop->pos.f[2];
f32 d = -b * dir->f[2] + c * dir->f[0];
speed.f[0] += a * dir->f[0] * 0.2f;
speed.f[2] += a * dir->f[2] * 0.2f;
objApplyMomentum(obj, &speed, a * d * 0.0001f, true, addrotation);
}
void objDetach(struct prop *prop)
{
struct prop *parent = prop->parent;
if (parent) {
struct defaultobj *obj = prop->obj;
struct model *model = obj->model;
propDetach(prop);
model->attachedtomodel = NULL;
model->attachedtonode = NULL;
obj->hidden &= ~OBJHFLAG_HASOWNER;
if (parent->type == PROPTYPE_CHR || parent->type == PROPTYPE_PLAYER) {
struct chrdata *chr = parent->chr;
if (chr) {
if (prop == chr->weapons_held[2]) {
chr->weapons_held[2] = NULL;
}
if (prop == chr->weapons_held[HAND_RIGHT]) {
chrSetFiring(chr, HAND_RIGHT, false);
chr->weapons_held[HAND_RIGHT] = NULL;
}
if (prop == chr->weapons_held[HAND_LEFT]) {
chrSetFiring(chr, HAND_LEFT, false);
chr->weapons_held[HAND_LEFT] = NULL;
}
}
}
}
}
bool objDrop(struct prop *prop, bool lazy)
{
struct prop *parent = prop->parent;
struct defaultobj *obj = prop->obj;
struct prop *root;
struct model *model;
Mtxf spf0;
struct coord spe4;
s16 rooms[8];
if ((obj->hidden & OBJHFLAG_EMBEDDED) && obj->embedment->projectile) {
struct projectile *projectile2 = obj->embedment->projectile;
embedmentFree(obj->embedment);
obj->projectile = projectile2;
obj->hidden &= ~OBJHFLAG_EMBEDDED;
obj->hidden |= OBJHFLAG_AIRBORNE;
}
if (parent && (obj->hidden & OBJHFLAG_AIRBORNE)) {
struct projectile *projectile;
model = obj->model;
projectile = obj->projectile;
root = parent;
while (root->parent) {
root = root->parent;
}
projectile->ownerprop = parent;
projectile->flags |= PROJECTILEFLAG_00000001;
if (projectile->droptype == DROPTYPE_5) {
struct defaultobj *rootobj = root->obj;
struct modelnode *node1;
struct coord spb8;
struct modelnode *node2;
struct coord spa8;
f32 spa4;
f32 spa0;
node1 = objFindBboxNode(obj);
modelNodeGetPosition(obj->model, model0001a740(node1), &spb8);
node2 = objFindBboxNode(rootobj);
modelNodeGetPosition(rootobj->model, model0001a740(node2), &spa8);
spe4.x = spb8.x - spa8.x;
spe4.y = spb8.y - spa8.y;
spe4.z = spb8.z - spa8.z;
mtx00016208(rootobj->realrot, &spe4);
spa4 = RANDOMFRAC() * 13.333333015442f;
spa0 = atan2f(spe4.x, spe4.z);
spa0 += RANDOMFRAC() * 0.7852731347084f - 0.3926365673542f;
if (spa0 >= M_BADTAU) {
spa0 -= M_BADTAU;
} else if (spa0 < 0.0f) {
spa0 += M_BADTAU;
}
projectile->speed.x += spa4 * sinf(spa0);
projectile->speed.z += spa4 * cosf(spa0);
mtx3ToMtx4(rootobj->realrot, &spf0);
spe4.x += root->pos.x;
spe4.y += root->pos.y;
spe4.z += root->pos.z;
mtx4SetTranslation(&spe4, &spf0);
func0f065e74(&root->pos, root->rooms, &spe4, rooms);
} else {
if (projectile->droptype == DROPTYPE_SURRENDER && parent->type == PROPTYPE_CHR) {
struct chrdata *chr = parent->chr;
struct coord rot = {0, 0, 0};
f32 angle = chrGetInverseTheta(chr);
projectile->speed.x = sinf(angle) * 1.6666666269302f;
projectile->speed.y = -RANDOMFRAC() * 0.83333331346512f;
projectile->speed.z = cosf(angle) * 1.6666666269302f;
rot.x = RANDOMFRAC() * PALUPF(0.012269892729819f) - PALUPF(0.0061349463649094f);
rot.y = RANDOMFRAC() * PALUPF(0.012269892729819f) - PALUPF(0.0061349463649094f);
rot.z = RANDOMFRAC() * PALUPF(0.012269892729819f) - PALUPF(0.0061349463649094f);
mtx4LoadRotation(&rot, (Mtxf *)&projectile->unk020);
} else if (projectile->droptype == DROPTYPE_THROWGRENADE && parent->type == PROPTYPE_CHR) {
struct chrdata *chr = parent->chr;
struct coord rot = {0, 0, 0};
f32 angle = chrGetInverseTheta(chr);
f32 dist;
if (chr->aibot) {
dist = chrGetDistanceToTarget(chr);
} else {
dist = chrGetAttackEntityDistance(chr, chr->act_throwgrenade.flags, chr->act_throwgrenade.entityid);
}
if (chr->aibot == NULL && dist < 300) {
dist = 300;
}
projectile->speed.x = sinf(angle) * 13.333333015442f * (dist / 1000);
projectile->speed.y = (((dist >= 1200) * ((dist - 1200) / 1200)) + 1) * 6.6666665077209f;
projectile->speed.z = cosf(angle) * 13.333333015442f * (dist / 1000);
rot.x = RANDOMFRAC() * PALUPF(0.012269892729819f) - PALUPF(0.0061349463649094f);
rot.y = RANDOMFRAC() * PALUPF(0.012269892729819f) - PALUPF(0.0061349463649094f);
rot.z = RANDOMFRAC() * PALUPF(0.012269892729819f) - PALUPF(0.0061349463649094f);
mtx4LoadRotation(&rot, (Mtxf *)&projectile->unk020);
objSetProjectileFlag4(prop);
} else if (projectile->droptype == DROPTYPE_HAT) {
struct coord rot = {0, 0, 0};
struct prop *playerprop = g_Vars.currentplayer->prop;
f32 x = parent->pos.x - playerprop->pos.x;
f32 z = parent->pos.z - playerprop->pos.z;
f32 angle = atan2f(x, z);
projectile->speed.x = (RANDOMFRAC() * 3.3333332538605f + 3.3333332538605f) * sinf(angle);
projectile->speed.y = RANDOMFRAC() * 3.3333332538605f;
projectile->speed.z = (RANDOMFRAC() * 3.3333332538605f + 3.3333332538605f) * cosf(angle);
rot.x = RANDOMFRAC() * PALUPF(0.049079570919275f) - PALUPF(0.024539785459638f);
rot.y = RANDOMFRAC() * PALUPF(0.049079570919275f) - PALUPF(0.024539785459638f);
rot.z = RANDOMFRAC() * PALUPF(0.049079570919275f) - PALUPF(0.024539785459638f);
mtx4LoadRotation(&rot, (Mtxf *)&projectile->unk020);
} else if (projectile->droptype == DROPTYPE_OWNERREAP) {
struct coord rot = {0, 0, 0};
projectile->speed.x = (0.5f - RANDOMFRAC()) * 1.6666666269302f;
projectile->speed.y = 0.0f;
projectile->speed.z = (0.5f - RANDOMFRAC()) * 1.6666666269302f;
rot.x = RANDOMFRAC() * PALUPF(0.049079570919275f) - PALUPF(0.024539785459638f);
rot.y = RANDOMFRAC() * PALUPF(0.049079570919275f) - PALUPF(0.024539785459638f);
rot.z = RANDOMFRAC() * PALUPF(0.049079570919275f) - PALUPF(0.024539785459638f);
mtx4LoadRotation(&rot, (Mtxf *)&projectile->unk020);
} else {
// DROPTYPE_OWNERREAP
func0f0964b4(&projectile->speed, (Mtxf *)&projectile->unk020);
}
if (!lazy && (prop->flags & PROPFLAG_ONTHISSCREENTHISTICK)) {
// Do collision checks
Mtxf *sp48 = model0001a60c(model);
mtx00015be4(camGetProjectionMtxF(), sp48, &spf0);
propSetPerimEnabled(root, false);
spe4.x = spf0.m[3][0];
spe4.y = spf0.m[3][1];
spe4.z = spf0.m[3][2];
if (cd0002de34(&root->pos, root->rooms, &spe4, rooms, CDTYPE_ALL, 7) == CDRESULT_COLLISION
|| (projectile->flags & PROJECTILEFLAG_00000004) == 0) {
if (cdTestVolume(&spe4, objGetWidth(obj), rooms, CDTYPE_ALL, 0, 0.0f, 0) == CDRESULT_COLLISION) {
spf0.m[3][0] = root->pos.x;
spf0.m[3][2] = root->pos.z;
}
}
propSetPerimEnabled(root, true);
prop->z = -sp48->m[3][2];
} else {
// No collision checks
mtx4LoadIdentity(&spf0);
mtx00015f04(model->scale, &spf0);
mtx4SetTranslation(&root->pos, &spf0);
roomsCopy(root->rooms, rooms);
}
}
objDetach(prop);
propActivate(prop);
propEnable(prop);
prop->pos.x = spf0.m[3][0];
prop->pos.y = spf0.m[3][1];
prop->pos.z = spf0.m[3][2];
propDeregisterRooms(prop);
roomsCopy(rooms, prop->rooms);
spf0.m[3][0] = 0;
spf0.m[3][1] = 0;
spf0.m[3][2] = 0;
mtx4ToMtx3(&spf0, obj->realrot);
func0f069c70(obj, true, true);
obj->shadecol[0] = obj->nextcol[0];
obj->shadecol[1] = obj->nextcol[1];
obj->shadecol[2] = obj->nextcol[2];
obj->shadecol[3] = obj->nextcol[3];
obj->hidden |= OBJHFLAG_SUSPICIOUS;
if (obj->type == OBJTYPE_WEAPON) {
struct weaponobj *weapon = (struct weaponobj *)obj;
if (weapon->weaponnum == WEAPON_GRENADE && weapon->timer240 >= 0) {
propSetDangerous(prop);
}
}
return true;
}
return false;
}
/**
* Make an object fall. Eg. due to it sitting on a table which is now destroyed,
* or because it was a chopper that is now destroyed.
*/
void objFall(struct defaultobj *obj, s32 playernum)
{
#if VERSION >= VERSION_NTSC_1_0
if (obj->type == OBJTYPE_AUTOGUN && g_Vars.normmplayerisrunning) {
// Don't set owner playernum
} else {
obj->hidden &= 0x0fffffff;
obj->hidden |= (playernum << 28) & 0xf0000000;
}
#else
obj->hidden &= 0x0fffffff;
obj->hidden |= (playernum << 28) & 0xf0000000;
#endif
if ((obj->flags2 & OBJFLAG2_00000100) == 0
&& (obj->flags3 & OBJFLAG3_10000000) == 0
&& (obj->flags & (OBJFLAG_00000001 | OBJFLAG_00000008))
&& (obj->hidden & (OBJHFLAG_EMBEDDED | OBJHFLAG_AIRBORNE)) == 0) {
struct coord rot = {0, 0, 0};
struct projectile *projectile = NULL;
func0f0685e4(obj->prop);
if (obj->hidden & OBJHFLAG_AIRBORNE) {
projectile = obj->projectile;
}
if (projectile) {
projectile->speed.x = RANDOMFRAC() * 1.6666666f - 0.8333333f;
projectile->speed.y = RANDOMFRAC() * 3.3333333f + 1.6666666f;
projectile->speed.z = RANDOMFRAC() * 1.6666666f - 0.8333333f;
if ((obj->flags2 & OBJFLAG2_00000200) == 0) {
#if PAL
rot.x = RANDOMFRAC() * 0.0058895489f - 0.0029447745f;
rot.y = RANDOMFRAC() * 0.0058895489f - 0.0029447745f;
rot.z = RANDOMFRAC() * 0.0058895489f - 0.0029447745f;
#else
rot.x = RANDOMFRAC() * 0.0049079573f - 0.0024539786f;
rot.y = RANDOMFRAC() * 0.0049079573f - 0.0024539786f;
rot.z = RANDOMFRAC() * 0.0049079573f - 0.0024539786f;
#endif
}
mtx4LoadRotation(&rot, &projectile->unk020);
projectile->flags |= PROJECTILEFLAG_00000001;
obj->flags &= ~OBJFLAG_00000100;
obj->hidden &= ~OBJHFLAG_00008000;
}
}
}
/**
* Destroy the objects that the given prop is supporting.
*
* For example, destroying a table will also destroy all the props that are
* sitting on that table.
*/
void objDestroySupportedObjects(struct prop *tableprop, s32 playernum)
{
struct prop *prop;
s16 *propnumptr;
s16 propnums[256];
u8 *start;
u8 *end;
if (propUpdateGeometry(tableprop, &start, &end)) {
roomGetProps(tableprop->rooms, propnums, 256);
propnumptr = propnums;
while (*propnumptr >= 0) {
prop = &g_Vars.props[*propnumptr];
if (prop->type == PROPTYPE_OBJ || prop->type == PROPTYPE_WEAPON) {
struct defaultobj *obj = prop->obj;
#if VERSION >= VERSION_NTSC_1_0
if (obj)
#endif
{
if (prop->pos.y > tableprop->pos.y
&& (obj->hidden & OBJHFLAG_00008000)
&& func000266a4(prop->pos.x, prop->pos.z, (struct geo *)start)) {
objFall(obj, playernum);
}
}
}
propnumptr++;
}
}
}
void objCheckDestroyed(struct defaultobj *obj, struct coord *pos, s32 playernum)
{
if (obj->damage > obj->maxdamage || objGetDestroyedLevel(obj)) {
struct prop *prop = obj->prop;
struct prop *rootprop = prop;
s16 exptype = g_PropExplosionTypes[8 + obj->modelnum];
s16 rooms[8];
// If in Deep Sea outro
if (g_Vars.tickmode == TICKMODE_CUTSCENE && g_CutsceneAnimNum == ANIM_02D7) {
exptype = EXPLOSIONTYPE_24;
}
while (rootprop->parent) {
rootprop = rootprop->parent;
}
if (objGetDestroyedLevel(obj) == 0) {
// Obj is now destroyed
obj->damage = 0;
obj->hidden2 |= OBJH2FLAG_DESTROYED;
func0f065e74(&rootprop->pos, rootprop->rooms, pos, rooms);
explosionCreateComplex(prop, pos, rooms, exptype, playernum);
if (obj->flags2 & OBJFLAG2_REMOVEWHENDESTROYED) {
obj->hidden |= OBJHFLAG_REAPABLE;
} else if (obj->type == OBJTYPE_CHOPPER) {
struct chopperobj *chopper = (struct chopperobj *)obj;
objFall(obj, playernum);
chopper->attackmode = CHOPPERMODE_FALL;
chopper->timer60 = (obj->flags & OBJFLAG_CHOPPER_INACTIVE) ? 0 : 2;
obj->flags &= ~OBJFLAG_CHOPPER_INACTIVE;
} else if (obj->type == OBJTYPE_HOVERCAR) {
struct hovercarobj *hovercar = (struct hovercarobj *)obj;
struct coord sp40;
struct coord sp34;
if (obj->flags & OBJFLAG_HOVERCAR_ISHOVERBOT) {
// Hoverbots bounce and spark when dead
hovercar->dead = true;
hovercar->deadtimer60 = TICKS(250);
hovercar->sparkstimer60 = TICKS(50);
bgunCalculatePlayerShotSpread(&sp40, &sp34, HAND_RIGHT, false);
objBounce(obj, &sp34);
} else if (obj->modelnum == MODEL_TAXICAB || obj->modelnum == MODEL_POLICECAR) {
// Taxi and police car (limo) fall to the ground and retain collision
objDeform(obj, 10);
hovercar->dead = true;
hovercar->speed = 0.0f;
hovercar->speedtime60 = 0.0f;
hovercar->speedaim += 10.0f;
} else {
// Cars in Defection "explode" but actually warp to their next path
explosionCreateSimple(prop, &prop->pos, prop->rooms, exptype, playernum);
hovercarStartNextPath(hovercar);
}
} else {
// Other objects
objDeform(obj, 1);
if (rootprop == prop) {
objDestroySupportedObjects(prop, playernum);
if ((obj->hidden & OBJHFLAG_00008000) == 0) {
obj->hidden |= OBJHFLAG_00010000;
objFall(obj, playernum);
}
}
}
} else {
s32 shotstaken = objGetShotsTaken(obj);
if ((shotstaken % 4) == 0) {
if (obj->type != OBJTYPE_CHOPPER && obj->type != OBJTYPE_HOVERCAR) {
objDeform(obj, (shotstaken >> 2) + 1);
}
func0f065e74(&rootprop->pos, rootprop->rooms, pos, rooms);
if (exptype != EXPLOSIONTYPE_NONE) {
explosionCreateSimple(prop, pos, rooms, EXPLOSIONTYPE_6, playernum);
}
}
if (objGetDestroyedLevel(obj) > 0) {
if (obj->hidden2 & OBJH2FLAG_CANREGEN) {
if (obj->hidden & OBJHFLAG_00001000) {
obj->hidden2 |= OBJH2FLAG_10;
} else {
obj->hidden2 &= ~OBJH2FLAG_10;
}
prop->timetoregen = TICKS(1200);
}
}
if (shotstaken >= 12) {
obj->hidden |= OBJHFLAG_00001000;
if ((obj->flags3 & OBJFLAG3_10000000) == 0) {
obj->flags &= ~OBJFLAG_00000100;
}
}
}
}
}
bool func0f084594(struct model *model, struct modelnode *node, struct coord *arg2, struct coord *arg3, struct hitthing *hitthing, s32 *mtxindexptr, struct modelnode **nodeptr)
{
s32 i;
s32 mtxindex;
bool ok;
bool reset;
s32 maxindex;
struct modelrodata_bbox *rodata;
s8 spc4[3];
struct coord spb8;
struct coord spac;
struct coord min;
struct coord max;
struct coord sp88;
struct coord sp7c;
Mtxf mtx;
rodata = &node->rodata->bbox;
mtxindex = model0001a524(node, 0);
mtx000172f0(model->matrices[mtxindex].m, mtx.m);
spb8.x = arg2->x;
spb8.y = arg2->y;
spb8.z = arg2->z;
mtx4TransformVecInPlace(&mtx, &spb8);
spac.x = arg3->x;
spac.y = arg3->y;
spac.z = arg3->z;
mtx4RotateVecInPlace(&mtx, &spac);
if (var8005efc0 != 0.0f) {
min.x = rodata->xmin - var8005efc0;
min.y = rodata->ymin - var8005efc0;
min.z = rodata->zmin - var8005efc0;
max.x = rodata->xmax + var8005efc0;
max.y = rodata->ymax + var8005efc0;
max.z = rodata->zmax + var8005efc0;
} else {
min.x = rodata->xmin;
min.y = rodata->ymin;
min.z = rodata->zmin;
max.x = rodata->xmax;
max.y = rodata->ymax;
max.z = rodata->zmax;
}
ok = true;
reset = true;
hitthing->unk28 = 0;
for (i = 0; i < 3; i++) {
if (spb8.f[i] < min.f[i]) {
spc4[i] = 1;
sp88.f[i] = min.f[i];
reset = false;
} else if (spb8.f[i] > max.f[i]) {
spc4[i] = 0;
sp88.f[i] = max.f[i];
reset = false;
} else {
spc4[i] = 2;
}
}
if (reset) {
for (i = 0; i < 3; i++) {
hitthing->unk00.f[i] = spb8.f[i];
}
hitthing->unk0c.x = 0.0f;
hitthing->unk0c.y = 1.0f;
hitthing->unk0c.z = 0.0f;
hitthing->unk28 = 2;
} else {
for (i = 0; i < 3; i++) {
if (spc4[i] != 2 && spac.f[i] != 0.0f) {
sp7c.f[i] = (sp88.f[i] - spb8.f[i]) / spac.f[i];
} else {
sp7c.f[i] = -1.0f;
}
}
maxindex = 0;
for (i = 1; i < 3; i++) {
if (sp7c.f[i] > sp7c.f[maxindex]) {
maxindex = i;
}
}
if (sp7c.f[maxindex] < 0.0f) {
ok = false;
} else {
for (i = 0; i < 3; i++) {
if (maxindex != i) {
hitthing->unk00.f[i] = spb8.f[i] + sp7c.f[maxindex] * spac.f[i];
if (hitthing->unk00.f[i] < min.f[i] || hitthing->unk00.f[i] > max.f[i]) {
ok = false;
}
} else {
hitthing->unk00.f[i] = sp88.f[i];
}
}
if (ok) {
hitthing->unk28 = maxindex * 2;
if (spc4[maxindex] == 0) {
hitthing->unk28 = (maxindex << 2) + 2;
for (i = 0; i < 3; i++) {
hitthing->unk0c.f[i] = (i != maxindex ? 0.0f : 1.0f);
}
} else {
hitthing->unk28 = maxindex << 2;
for (i = 0; i < 3; i++) {
hitthing->unk0c.f[i] = (i != maxindex ? 0.0f : -1.0f);
}
}
}
}
}
if (ok) {
*mtxindexptr = mtxindex;
*nodeptr = node;
}
return ok;
}
bool func0f0849dc(struct model *model, struct modelnode *nodearg, struct coord *arg2, struct coord *arg3, struct hitthing *hitthing, s32 *dstmtxindex, struct modelnode **dstnode)
{
struct coord spec;
struct coord spe0;
struct coord spd4;
Mtxf *spd0 = NULL;
bool done = false;
struct modelnode *node = nodearg;
struct gfxvtx *vertices = NULL;
while (node && !done) {
u32 type = node->type & 0xff;
Gfx *s3 = NULL;
void *s5 = NULL;
switch (type) {
case MODELNODETYPE_DL:
{
struct modelrodata_dl *rodata = &node->rodata->dl;
struct modelrwdata_dl *rwdata = modelGetNodeRwData(model, node);
if (rwdata->gdl != NULL) {
if (rwdata->gdl == rodata->primary) {
s3 = (Gfx *)((u32)rodata->colourtable + ((u32)rodata->primary & 0xffffff));
} else {
s3 = rwdata->gdl;
}
if (rodata->secondary != NULL) {
s5 = (void *)((u32)rodata->colourtable + ((u32)rodata->secondary & 0xffffff));
}
vertices = rwdata->vertices;
}
}
break;
case MODELNODETYPE_GUNDL:
{
struct modelrodata_gundl *rodata = &node->rodata->gundl;
if (rodata->primary != NULL) {
s3 = (Gfx *)((u32)rodata->baseaddr + ((u32)rodata->primary & 0xffffff));
if (rodata->secondary != NULL) {
s5 = (Gfx *)((u32)rodata->baseaddr + ((u32)rodata->secondary & 0xffffff));
}
vertices = (void *)(u32)rodata->baseaddr;
}
}
break;
case MODELNODETYPE_DISTANCE:
model0001c784(model, node);
break;
case MODELNODETYPE_TOGGLE:
model0001c7d0(model, node);
break;
case MODELNODETYPE_HEADSPOT:
modelAttachHead(model, node);
break;
}
if (s3 != NULL) {
s32 mtxindex = model0001a524(node, 0);
Mtxf *mtx = NULL;
Mtxf sp64;
if (mtxindex >= 0) {
mtx = &model->matrices[mtxindex];
}
if (mtx && mtx != spd0) {
spd0 = mtx;
mtx000172f0(mtx->m, sp64.m);
spec.x = arg2->x;
spec.y = arg2->y;
spec.z = arg2->z;
mtx4TransformVecInPlace(&sp64, &spec);
spd4.x = arg3->x;
spd4.y = arg3->y;
spd4.z = arg3->z;
mtx4RotateVecInPlace(&sp64, &spd4);
spe0.x = spd4.x * 32767.0f + spec.x;
spe0.y = spd4.y * 32767.0f + spec.y;
spe0.z = spd4.z * 32767.0f + spec.z;
}
if (func0f15f560(&spec, &spe0, &spd4, s3, s5, vertices, hitthing)) {
*dstmtxindex = mtxindex;
*dstnode = node;
done = true;
}
}
if (node->child) {
node = node->child;
} else {
while (node) {
if (node == nodearg) {
node = NULL;
break;
}
if (node->next) {
node = node->next;
break;
}
node = node->parent;
}
}
}
return done;
}
#if PIRACYCHECKS
u32 add43214321(u32 value)
{
return value + 0x43214321;
}
#endif
void glassDestroy(struct defaultobj *obj)
{
struct prop *prop = obj->prop;
struct modelrodata_bbox *bbox = objFindBboxRodata(obj);
wallhitsFreeByProp(prop, 0);
wallhitsFreeByProp(prop, 1);
if (obj->modelnum == MODEL_AIVILLABOT1
|| obj->modelnum == MODEL_AIVILLABOT2
|| obj->modelnum == MODEL_AIVILLABOT3) {
shardsCreate(&prop->pos, &obj->realrot[0][0], &obj->realrot[1][0], &obj->realrot[2][0],
bbox->xmin, bbox->xmax, bbox->ymin, bbox->ymax, SHARDTYPE_BOTTLE, prop);
} else {
shardsCreate(&prop->pos, &obj->realrot[0][0], &obj->realrot[1][0], &obj->realrot[2][0],
bbox->xmin, bbox->xmax, bbox->ymin, bbox->ymax, SHARDTYPE_GLASS, prop);
}
#if PIRACYCHECKS
{
/**
* Check two words at 0xdc0 in the ROM. If they're not right, set the
* audio frequency high so everyone sounds like chipmunks.
*/
u8 buffer[0x20];
u32 *ptr;
u32 romaddr = add43214321(0x00000dc0 - 0x43214321);
ptr = (u32 *) ALIGN16((u32)buffer);
dmaExec(ptr, romaddr, 0x10);
if (ptr[1] + ptr[0] != add43214321(0x10a78f00e - 0x43214321)) {
osAiSetFrequency(80000);
}
}
#endif
obj->damage = 0;
obj->hidden |= OBJHFLAG_REAPABLE;
obj->hidden2 |= OBJH2FLAG_DESTROYED;
}
void doorDestroyGlass(struct doorobj *door)
{
struct modelnode *node;
bool closed;
struct prop *prop = door->base.prop;
struct model *model = door->base.model;
union modelrodata *rodata;
union modelrwdata *rwdata;
Mtxf matrix;
rodata = modelGetPartRodata(model->filedata, 2);
if (door->portalnum >= 0) {
// @bug: Firing three shots at door glass is supposed to destroy it,
// and this function is called when the third shot happens, but if it's
// shot from a long distance (such that the glass is opaque) then this
// function returns early and the glass remains in place, despite
// setting the portal as unblocked. On the fourth shot
// PORTALFLAG_FORCEOPEN is already set, so closed is false and the
// glass is destroyed.
closed = PORTAL_IS_CLOSED(door->portalnum);
g_BgPortals[door->portalnum].flags |= PORTALFLAG_FORCEOPEN;
if (closed) {
return;
}
}
func0f08c424(door, &matrix);
shardsCreate((struct coord *) &matrix.m[3][0], &matrix.m[0][0], &matrix.m[1][0], &matrix.m[2][0],
rodata->bbox.xmin, rodata->bbox.xmax, rodata->bbox.ymin, rodata->bbox.ymax,
SHARDTYPE_GLASS, prop);
wallhitsFreeByProp(prop, 1);
node = modelGetPart(model->filedata, 1);
rwdata = modelGetNodeRwData(model, node);
rwdata->toggle.visible = false;
}
void cctvHandleLensShot(struct defaultobj *obj)
{
struct prop *prop = obj->prop;
struct model *model = obj->model;
union modelrodata *rodata;
union modelrwdata *rwdata;
Mtxf *sp7c;
Mtxf matrix;
if (prop->flags & PROPFLAG_ONTHISSCREENTHISTICK) {
rodata = modelGetPartRodata(model->filedata, MODELPART_CCTV_0002);
sp7c = model0001a5cc(model, modelGetPart(model->filedata, MODELPART_CCTV_LENS), 0);
mtx00015be4(camGetProjectionMtxF(), sp7c, &matrix);
shardsCreate((struct coord *) matrix.m[3], matrix.m[0], matrix.m[1], matrix.m[2],
rodata->bbox.xmin, rodata->bbox.xmax, rodata->bbox.ymin, rodata->bbox.ymax,
SHARDTYPE_GLASS, prop);
}
wallhitsFreeByProp(prop, 1);
rwdata = modelGetNodeRwData(model, modelGetPart(model->filedata, MODELPART_CCTV_0003));
rwdata->toggle.visible = false;
}
void func0f085050(struct prop *prop, f32 damage, struct coord *pos, s32 arg3, s32 playernum)
{
struct defaultobj *obj = prop->obj;
#if VERSION >= VERSION_NTSC_1_0
if (obj->type == OBJTYPE_AUTOGUN && g_Vars.normmplayerisrunning) {
// do nothing
} else {
obj->hidden &= 0x0fffffff;
obj->hidden |= (playernum << 28) & 0xf0000000;
}
#else
obj->hidden &= 0x0fffffff;
obj->hidden |= (playernum << 28) & 0xf0000000;
#endif
if ((obj->hidden & OBJHFLAG_HASOWNER) == 0) {
struct prop *child = prop->child;
while (child) {
struct prop *next = child->next;
func0f085050(child, damage, pos, arg3, playernum);
child = next;
}
objDamage(prop->obj, damage, pos, arg3, playernum);
}
}
bool func0f085158(struct defaultobj *obj)
{
switch (obj->type) {
case OBJTYPE_DOOR:
case OBJTYPE_BASIC:
case OBJTYPE_ALARM:
case OBJTYPE_CCTV:
case OBJTYPE_SINGLEMONITOR:
case OBJTYPE_MULTIMONITOR:
case OBJTYPE_HANGINGMONITORS:
case OBJTYPE_AUTOGUN:
case OBJTYPE_DEBRIS:
case OBJTYPE_GASBOTTLE:
case OBJTYPE_29:
case OBJTYPE_GLASS:
case OBJTYPE_SAFE:
case OBJTYPE_TINTEDGLASS:
case OBJTYPE_LIFT:
case OBJTYPE_HOVERBIKE:
case OBJTYPE_HOVERPROP:
case OBJTYPE_FAN:
case OBJTYPE_HOVERCAR:
case OBJTYPE_CHOPPER:
return true;
}
return false;
}
bool func0f085194(struct defaultobj *obj)
{
switch (obj->type) {
case OBJTYPE_KEY:
case OBJTYPE_AMMOCRATE:
case OBJTYPE_WEAPON:
case OBJTYPE_HAT:
case OBJTYPE_MULTIAMMOCRATE:
case OBJTYPE_SHIELD:
case OBJTYPE_ESCASTEP:
return true;
}
return false;
}
bool objIsMortal(struct defaultobj *obj)
{
if (obj->type == OBJTYPE_DOOR) {
return false;
}
if (func0f085194(obj) && obj->type != OBJTYPE_SHIELD) {
if ((obj->flags & OBJFLAG_00010000) == 0) {
return false;
}
} else if (obj->flags & OBJFLAG_INVINCIBLE) {
return false;
}
return true;
}
void objTakeGunfire(struct defaultobj *obj, f32 damage, struct coord *pos, s32 weaponnum, s32 playernum)
{
if ((obj->flags2 & OBJFLAG2_IMMUNETOGUNFIRE) == 0) {
objDamage(obj, damage, pos, weaponnum, playernum);
}
}
void objDamage(struct defaultobj *obj, f32 damage, struct coord *pos, s32 weaponnum, s32 playernum)
{
// Store the attacker playernum into the object's "hidden" field
#if VERSION >= VERSION_NTSC_1_0
// ...but not for deployed laptop guns in multiplayer, because those bits
// likely designate the owner of the gun
if (obj->type != OBJTYPE_AUTOGUN || !g_Vars.normmplayerisrunning) {
obj->hidden &= 0x0fffffff;
obj->hidden |= (playernum << 28) & 0xf0000000;
}
#else
obj->hidden &= 0x0fffffff;
obj->hidden |= (playernum << 28) & 0xf0000000;
#endif
if (obj->type == OBJTYPE_GASBOTTLE && objGetDestroyedLevel(obj) == 1) {
return;
}
if (weaponnum == WEAPON_NONE) {
if (func0f085194(obj)) {
return;
}
if (obj->flags & OBJFLAG_01000000) {
return;
}
} else {
if (obj->flags & OBJFLAG_INVINCIBLE) {
return;
}
if (obj->type == OBJTYPE_WEAPON) {
struct weaponobj *weapon;
if (obj->flags2 & OBJFLAG2_AICANNOTUSE) {
propExplode(obj->prop, EXPLOSIONTYPE_12);
obj->hidden |= OBJHFLAG_REAPABLE;
}
// If damaging an explosive item, make it explode immediately by
// zeroing its timer
weapon = (struct weaponobj *) obj;
if (weapon->weaponnum == WEAPON_GRENADE
|| weapon->weaponnum == WEAPON_TIMEDMINE
|| weapon->weaponnum == WEAPON_REMOTEMINE
|| weapon->weaponnum == WEAPON_PROXIMITYMINE
|| weapon->weaponnum == WEAPON_ROCKET
|| weapon->weaponnum == WEAPON_HOMINGROCKET
|| weapon->weaponnum == WEAPON_GRENADEROUND
|| (weapon->weaponnum == WEAPON_DRAGON && weapon->gunfunc == FUNC_SECONDARY)) {
// Homing rockets are immune to remote mines? Or maybe they just
// don't explode because the mine is exploding anyway
if (weapon->weaponnum != WEAPON_HOMINGROCKET || weaponnum != WEAPON_REMOTEMINE) {
weapon->timer240 = 0;
}
}
return;
}
if (obj->type == OBJTYPE_AMMOCRATE || obj->type == OBJTYPE_MULTIAMMOCRATE) {
// @bug: It's not safe to cast a multiammocrateobj to an ammocrateobj.
// For multiammocrateobjs, this is reading the first model/qty pair
// as a single word... this turns out to not have any bad effects.
struct ammocrateobj *crate = (struct ammocrateobj *) obj;
if (crate->ammotype == AMMOTYPE_GRENADE
|| crate->ammotype == AMMOTYPE_ROCKET
|| crate->ammotype == AMMOTYPE_HOMINGROCKET
|| crate->ammotype == AMMOTYPE_REMOTE_MINE
|| crate->ammotype == AMMOTYPE_PROXY_MINE
|| crate->ammotype == AMMOTYPE_TIMED_MINE
|| crate->ammotype == AMMOTYPE_DEVASTATOR) {
obj->flags |= OBJFLAG_AMMOCRATE_EXPLODENOW;
}
return;
}
if (!objIsMortal(obj)) {
return;
}
}
// Tweak damage and apply it
if (obj->type == OBJTYPE_CHOPPER) {
damage *= 0.25f;
}
if (objGetDestroyedLevel(obj) == 0) {
// Not destroyed
damage *= 250;
if (damage < 1) {
damage = 1;
}
} else {
// Figure out how much to go within this destroyed level and cap it there
f32 max = 4 - (objGetShotsTaken(obj) % 4);
if (damage > max) {
damage = max;
} else if (damage < 1) {
damage = 1;
}
}
damage = obj->damage + damage;
if (damage >= 32767) {
obj->damage = 32767;
} else {
obj->damage = damage;
}
// Handle objects that do things when damaged
if (obj->modelnum == MODEL_TARGET) {
// empty
} else {
if (obj->type == OBJTYPE_GLASS || obj->type == OBJTYPE_TINTEDGLASS) {
if (obj->damage >= obj->maxdamage) {
glassDestroy(obj);
}
} else {
objSetDropped(obj->prop, DROPTYPE_DEFAULT);
objCheckDestroyed(obj, pos, playernum);
}
// This code appears to be unused...
// It appears to handle spawning a weapon when the ammo crate is shot.
if (obj->type == OBJTYPE_MULTIAMMOCRATE) {
if (objGetDestroyedLevel(obj) == 1) {
u32 stack;
struct multiammocrateobj *crate = (struct multiammocrateobj *) obj;
s32 startindex = random() % ARRAYCOUNT(crate->slots);
s32 i = startindex;
do {
if (crate->slots[i].quantity > 0 && crate->slots[i].modelnum != 0xffff) {
struct ammocrateobj *newcrate = ammocrateAllocate();
if (newcrate) {
s32 modelnum = crate->slots[i].modelnum;
struct defaultobj tmp = {
256, // extrascale
0, // hidden2
OBJTYPE_AMMOCRATE, // type
0, // modelnum
-1, // pad
OBJFLAG_00000001, // flags
0, // flags2
0, // flags3
NULL, // prop
NULL, // model
1, 0, 0, // realrot
0, 1, 0,
0, 0, 1,
0, // hidden
NULL, // geo
NULL, // projectile
0, // damage
1000, // maxdamage
0xff, 0xff, 0xff, 0x00, // shadecol
0xff, 0xff, 0xff, 0x00, // nextcol
0x0fff, // floorcol
0, // tiles
};
newcrate->base = tmp;
newcrate->base.modelnum = modelnum;
newcrate->ammotype = i + 1;
if (objInitWithModelDef(&newcrate->base, g_ModelStates[modelnum].filedata)) {
propReparent(newcrate->base.prop, obj->prop);
}
break;
}
}
i = (i + 1) % ARRAYCOUNT(crate->slots);
} while (i != startindex);
}
} else if (obj->type == OBJTYPE_CHOPPER) {
struct chopperobj *chopper = (struct chopperobj *) obj;
if (chopper->attackmode != CHOPPERMODE_FALL) {
chopper->attackmode = CHOPPERMODE_COMBAT;
}
} else if (obj->type == OBJTYPE_AUTOGUN) {
obj->flags |= OBJFLAG_AUTOGUN_DAMAGED;
if (objGetDestroyedLevel(obj) == 1) {
obj->flags |= OBJFLAG_DEACTIVATED;
}
} else if (obj->type == OBJTYPE_CCTV) {
if (objGetDestroyedLevel(obj) == 1) {
obj->flags |= OBJFLAG_DEACTIVATED;
}
} else if (obj->type == OBJTYPE_SINGLEMONITOR) {
struct singlemonitorobj *monitor = (struct singlemonitorobj *) obj;
if (objGetDestroyedLevel(obj) == 1) {
tvscreenSetCmdlist(&monitor->screen, g_TvCmdlist14);
}
} else if (obj->type == OBJTYPE_MULTIMONITOR) {
struct multimonitorobj *monitor = (struct multimonitorobj *) obj;
if (objGetDestroyedLevel(obj) == 1) {
tvscreenSetCmdlist(&monitor->screens[0], g_TvCmdlist14);
tvscreenSetCmdlist(&monitor->screens[1], g_TvCmdlist14);
tvscreenSetCmdlist(&monitor->screens[2], g_TvCmdlist14);
tvscreenSetCmdlist(&monitor->screens[3], g_TvCmdlist14);
}
} else if (obj->type == OBJTYPE_GASBOTTLE) {
if (objGetDestroyedLevel(obj) == 1) {
gasReleaseFromPos(&obj->prop->pos);
}
} else if (obj->type == OBJTYPE_SHIELD) {
struct shieldobj *shield = (struct shieldobj *) obj;
if (objGetDestroyedLevel(obj) == 0) {
shield->amount = shield->initialamount * (f32)(obj->maxdamage - obj->damage) / (f32)obj->maxdamage;
} else {
shield->amount = 0;
}
}
if (objGetDestroyedLevel(obj) == 1) {
struct prop *child = obj->prop->child;
while (child) {
struct prop *next = child->next;
objSetDropped(child, DROPTYPE_DEFAULT);
child = next;
}
}
}
}
void func0f0859a0(struct prop *prop, struct shotdata *shotdata)
{
struct defaultobj *obj = prop->obj;
struct model *model = obj->model;
struct prop *child;
struct modelnode *node1 = NULL;
struct hitthing hitthing1;
s32 spe4;
struct coord spd8;
f32 spd4;
struct modelnode *node2;
s32 lVar3;
bool isnotglass;
struct modelnode *node3;
struct hitthing hitthing2;
s32 sp90;
struct modelnode *node4;
struct prop *next;
struct coord sp7c;
struct coord sp70;
if (obj->hidden & OBJHFLAG_00001000) {
return;
}
if ((prop->flags & PROPFLAG_ONTHISSCREENTHISTICK) == 0) {
return;
}
child = prop->child;
while (child) {
next = child->next;
func0f0859a0(child, shotdata);
child = next;
}
if (var8005efc0 > 0.0f) {
lVar3 = model000225d4(model, &shotdata->unk00, &shotdata->unk0c, &node1);
while (lVar3 > 0) {
if (func0f084594(model, node1, &shotdata->unk00, &shotdata->unk0c, &hitthing1, &spe4, &node2)) {
break;
}
lVar3 = model000225d4(model, &shotdata->unk00, &shotdata->unk0c, &node1);
}
} else {
do {
lVar3 = model000225d4(model, &shotdata->unk00, &shotdata->unk0c, &node1);
if (lVar3 > 0 && func0f0849dc(model, node1, &shotdata->unk00, &shotdata->unk0c, &hitthing1, &spe4, &node2)) {
break;
}
} while (lVar3 > 0);
}
if (obj->flags3 & OBJFLAG3_HOVERBEDSHIELD) {
node3 = modelGetPart(model->filedata, MODELPART_0067);
if (node3 && func0f084594(model, node3, &shotdata->unk00, &shotdata->unk0c, &hitthing2, &sp90, &node4)) {
if (lVar3 <= 0 ||
model->matrices[sp90].m[0][2] * hitthing2.unk00.f[0] + model->matrices[sp90].m[1][2] * hitthing2.unk00.f[1] + model->matrices[sp90].m[2][2] * hitthing2.unk00.f[2] >
model->matrices[spe4].m[0][2] * hitthing1.unk00.f[0] + model->matrices[spe4].m[1][2] * hitthing1.unk00.f[1] + model->matrices[spe4].m[2][2] * hitthing1.unk00.f[2]) {
lVar3 = 1;
hitthing1 = hitthing2;
node1 = node3;
spe4 = sp90;
node2 = node4;
hitthing1.texturenum = 10000;
}
}
}
if (lVar3 > 0) {
mtx4TransformVec(&model->matrices[spe4], &hitthing1.unk00, &spd8);
spd4 = -spd8.f[2];
if (spd4 <= shotdata->unk34) {
isnotglass = true;
if ((obj->flags & OBJFLAG_INVINCIBLE) == 0) {
if (obj->type == OBJTYPE_GLASS || obj->type == OBJTYPE_TINTEDGLASS) {
isnotglass = false;
} else if (obj->model->filedata->skel == &g_SkelWindowedDoor
&& modelGetPart(obj->model->filedata, MODELPART_WINDOWEDDOOR_0003) == node2) {
isnotglass = false;
}
}
mtx4TransformVec(camGetProjectionMtxF(), &spd8, &sp7c);
mtx4RotateVec(&model->matrices[spe4], &hitthing1.unk0c, &sp70);
mtx4RotateVecInPlace(camGetProjectionMtxF(), &sp70);
func0f061fa8(shotdata, prop, spd4, lVar3,
node1, &hitthing1, spe4, node2,
model, isnotglass && shotdata->gset.weaponnum != WEAPON_FARSIGHT,
(obj->flags2 & OBJFLAG2_BULLETPROOF)
&& shotdata->gset.weaponnum != WEAPON_DY357MAGNUM
&& shotdata->gset.weaponnum != WEAPON_FARSIGHT,
&sp7c, &sp70);
}
}
}
void func0f085e00(struct prop *prop, struct shotdata *shotdata)
{
f32 tmp;
struct defaultobj *obj = prop->obj;
struct model *model = obj->model;
struct modelrodata_bbox *bbox = objFindBboxRodata(obj);
if ((prop->flags & PROPFLAG_ONTHISSCREENTHISTICK)
&& (obj->hidden & OBJHFLAG_00001000) == 0
&& (obj->flags2 & OBJFLAG2_SHOOTTHROUGH) == 0) {
tmp = -(model->matrices[0].m[3][2] + func0f0668cc(bbox, model->matrices));
if (tmp <= shotdata->unk34) {
func0f0859a0(prop, shotdata);
}
}
}
void objHit(struct shotdata *shotdata, struct hit *hit)
{
struct defaultobj *obj;
struct coord sp110;
struct prop *prop;
u8 isclosefunc = false;
s32 i;
bool explosiveshells = false;
bool spfc = hit->unk4c;
struct weaponfunc *func = gsetGetWeaponFunction(&shotdata->gset);
struct coord spec;
f32 tmp;
struct prop *spe4;
s16 textureindex;
s16 spdc[3];
if (func != NULL) {
if ((func->type & 0xff) == INVENTORYFUNCTYPE_CLOSE) {
isclosefunc = true;
}
if (func->flags & FUNCFLAG_EXPLOSIVESHELLS) {
explosiveshells = true;
}
}
prop = hit->prop;
while (prop->parent) {
prop = prop->parent;
}
obj = hit->prop->obj;
sp110.x = shotdata->unk00.x - hit->distance * shotdata->unk0c.x / shotdata->unk0c.z;
sp110.y = shotdata->unk00.y - hit->distance * shotdata->unk0c.y / shotdata->unk0c.z;
sp110.z = shotdata->unk00.z - hit->distance;
mtx4TransformVecInPlace(camGetProjectionMtxF(), &sp110);
if (!spfc && chrIsUsingPaintball(g_Vars.currentplayer->prop->chr)) {
spfc = true;
}
if (hit->unk4c) {
bgunSetHitPos(&sp110);
}
if (obj->modelnum == MODEL_TARGET) {
if (hit->hitthing.texturenum == TEXTURE_0B9E) {
frCalculateHit(obj, &sp110, shotdata->gset.unk063a);
} else if ((shotdata->gset.weaponnum != WEAPON_CALLISTO || shotdata->gset.weaponfunc != FUNC_SECONDARY)
#if VERSION >= VERSION_NTSC_1_0
&& shotdata->gset.weaponnum != WEAPON_FARSIGHT
#endif
) {
// For some penetrating weapons, unset hits beyond the shot distance?
spe4 = hit->prop;
mtx4TransformVec(obj->model->matrices, &sp110, &spec);
tmp = -spec.z;
for (i = 0; i < 10; i++) {
if (shotdata->hits[i].prop && shotdata->hits[i].prop != spe4 && shotdata->hits[i].distance > tmp) {
shotdata->hits[i].prop = NULL;
}
}
shotdata->unk34 = tmp;
}
}
// Create sparks
if (!isclosefunc) {
if (chrIsUsingPaintball(g_Vars.currentplayer->prop->chr)) {
sparksCreate(prop->rooms[0], prop, &sp110, 0, 0, SPARKTYPE_PAINT);
} else {
sparksCreate(prop->rooms[0], prop, &sp110, 0, 0, SPARKTYPE_00);
}
}
// Create shield hit if object is shielded
if (hit->hitthing.texturenum == 10000) {
spdc[0] = hit->hitthing.unk00.x;
spdc[1] = hit->hitthing.unk00.y;
spdc[2] = hit->hitthing.unk00.z;
shieldhitCreate(prop, (obj->flags3 & OBJFLAG3_SHOWSHIELD) ? 4.0f : 8.0f, hit->prop, hit->node, hit->model, hit->hitthing.unk28 / 2, spdc);
}
// Increment object hit count
if (objIsHealthy(obj) && objIsMortal(obj) && hit->unk4c) {
mpstatsIncrementPlayerShotCount2(&shotdata->gset, SHOTREGION_OBJECT);
}
// Play hit sound
if (!spfc) {
bgunPlayGlassHitSound(&hit->prop->pos, hit->prop->rooms, hit->hitthing.texturenum);
} else if (!isclosefunc) {
bgunPlayPropHitSound(&shotdata->gset, hit->prop, hit->hitthing.texturenum);
}
// Create wall hit (bullet hole)
if (!isclosefunc
&& hit->hitthing.texturenum != 10000
&& shotdata->gset.weaponnum != WEAPON_UNARMED
&& shotdata->gset.weaponnum != WEAPON_LASER
&& shotdata->gset.weaponnum != WEAPON_TRANQUILIZER
&& shotdata->gset.weaponnum != WEAPON_FARSIGHT) {
if (hit->unk4c == 0) {
struct prop *hitprop = hit->prop;
s8 iswindoweddoor = obj->model->filedata->skel == &g_SkelWindowedDoor ? true : false;
textureindex = WALLHITTEX_GLASS1 + (random() % 3);
if ((obj->type == OBJTYPE_DOOR && !iswindoweddoor)
|| (obj->flags & OBJFLAG_INVINCIBLE)
|| (obj->flags2 & OBJFLAG2_IMMUNETOGUNFIRE)) {
// Use a bulletproof glass texture
textureindex += 10;
}
wallhitCreate(&hit->hitthing.unk00, &hit->hitthing.unk0c, &shotdata->gunpos, 0,
0, textureindex, 1, hitprop, hit->mtxindex, iswindoweddoor, g_Vars.currentplayer->prop->chr, true);
} else {
s16 textureindex;
struct surfacetype *surfacetype;
s32 spcc;
s8 spcb = false;
bool spc4;
if (hit->hitthing.texturenum < 0 || hit->hitthing.texturenum >= NUM_TEXTURES) {
surfacetype = g_SurfaceTypes[0];
} else if (g_Textures[hit->hitthing.texturenum].surfacetype < 15) {
surfacetype = g_SurfaceTypes[g_Textures[hit->hitthing.texturenum].surfacetype];
} else {
surfacetype = g_SurfaceTypes[0];
}
if (surfacetype->numwallhittexes > 0) {
spc4 = false;
spcc = random() % surfacetype->numwallhittexes;
if ((obj->model->filedata->skel == &g_SkelWindowedDoor && hit->unk44 == modelGetPart(obj->model->filedata, MODELPART_WINDOWEDDOOR_0003))
|| (obj->model->filedata->skel == &g_SkelCctv && hit->unk44 == modelGetPart(obj->model->filedata, MODELPART_CCTV_LENS))) {
spcb = true;
}
textureindex = surfacetype->wallhittexes[spcc];
if (textureindex >= WALLHITTEX_GLASS1 && textureindex <= WALLHITTEX_GLASS3) {
if (obj->type == OBJTYPE_DOOR
|| (obj->flags & OBJFLAG_INVINCIBLE)
|| (obj->flags2 & OBJFLAG2_IMMUNETOGUNFIRE)) {
// Use a bulletproof glass texture
textureindex += 10;
}
spc4 = true;
}
wallhitCreate(&hit->hitthing.unk00, &hit->hitthing.unk0c, &shotdata->gunpos, 0,
0, textureindex, 1, hit->prop, hit->mtxindex, spcb, g_Vars.currentplayer->prop->chr, spc4);
}
}
}
if (g_Vars.antiplayernum < 0 || g_Vars.currentplayer != g_Vars.anti || (obj->flags2 & OBJFLAG2_IMMUNETOANTI) == 0) {
if (hit->hitthing.texturenum != 10000) {
f32 damage = gsetGetDamage(&shotdata->gset);
if (obj->type == OBJTYPE_AUTOGUN) {
damage *= g_AutogunDamageMultiplier;
} else if (obj->type == OBJTYPE_CCTV) {
// Leftover from GE: shots to a CCTV's lens is a one hit kill
if (obj->model->filedata->skel == &g_SkelCctv) {
if (modelGetPart(obj->model->filedata, MODELPART_CCTV_LENS) == hit->unk44) {
damage *= 100.0f;
cctvHandleLensShot(obj);
}
}
damage *= g_CctvDamageMultiplier;
} else if (explosiveshells) {
if (obj->type == OBJTYPE_GLASS || obj->type == OBJTYPE_TINTEDGLASS) {
damage *= 100.0f;
} else {
damage *= 5.0f;
}
}
objTakeGunfire(obj, damage, &sp110, shotdata->gset.weaponnum, g_Vars.currentplayernum);
if (obj->model->filedata->skel == &g_SkelWindowedDoor && !hit->unk4c) {
struct doorobj *door = (struct doorobj *)obj;
door->glasshits++;
if (door->glasshits >= 3) {
doorDestroyGlass(door);
}
}
}
objDropRecursively(hit->prop, false);
// Handle pushing and bouncing
if ((obj->hidden & OBJHFLAG_MOUNTED) == 0 && (obj->hidden & OBJHFLAG_GRABBED) == 0) {
if (obj->flags3 & OBJFLAG3_PUSHABLE) {
struct coord spb0;
struct coord spa4;
struct coord pushdir;
Mtxf sp58;
spb0.x = shotdata->dir.x * 3.0f;
spb0.y = shotdata->dir.y * 3.0f;
spb0.z = shotdata->dir.z * 3.0f;
mtx4MultMtx4(camGetProjectionMtxF(), &obj->model->matrices[hit->mtxindex], &sp58);
mtx4TransformVec(&sp58, &hit->hitthing.unk00, &spa4);
pushdir.x = shotdata->dir.x;
pushdir.y = shotdata->dir.y;
pushdir.z = shotdata->dir.z;
func0f082e84(obj, &spa4, &pushdir, &spb0, true);
} else {
bool bounce = false;
if (func0f085194(obj)) {
if ((obj->flags & OBJFLAG_00400000) == 0) {
bounce = true;
}
} else if (obj->flags & OBJFLAG_BOUNCEIFSHOT) {
bounce = true;
}
if (obj->flags2 & OBJFLAG2_00000002) {
if (!objIsHealthy(obj)) {
bounce = true;
}
}
if (obj->flags2 & OBJFLAG2_LINKEDTOSAFE) {
bounce = false;
}
if (bounce) {
objBounce(obj, &shotdata->unk0c);
}
}
}
}
}
u32 propobjGetCiTagId(struct prop *prop)
{
if (prop && g_Vars.stagenum == STAGE_CITRAINING) {
u8 tags[8] = { 0x0e, 0x0f, 0x10, 0x47, 0x46, 0x45, 0x1b, 0x7f };
struct defaultobj *obj = prop->obj;
u32 i;
for (i = 0; i != 8; i++) {
struct defaultobj *taggedobj = objFindByTagId(tags[i]);
if (obj == taggedobj) {
return tags[i];
}
}
}
return 0;
}
bool objIsHealthy(struct defaultobj *obj)
{
return objGetDestroyedLevel(obj) == 0;
}
bool objTestForInteract(struct prop *prop)
{
u32 stack;
struct defaultobj *obj = prop->obj;
bool maybe = false;
if (propobjGetCiTagId(prop)) {
maybe = true;
} else if (obj->type == OBJTYPE_ALARM
|| (obj->flags & OBJFLAG_THROWNLAPTOP)
|| (obj->flags3 & (OBJFLAG3_HTMTERMINAL | OBJFLAG3_INTERACTABLE))
|| (obj->hidden & (OBJHFLAG_LIFTDOOR | OBJHFLAG_00000002))) {
maybe = true;
} else if (obj->type == OBJTYPE_HOVERBIKE) {
if (g_Vars.currentplayer->bondmovemode == MOVEMODE_GRAB) {
maybe = true;
} else if (g_Vars.currentplayer->bondmovemode == MOVEMODE_WALK
&& bmoveGetCrouchPos() == CROUCHPOS_STAND
&& g_Vars.currentplayer->crouchoffset == 0.0f) {
maybe = true;
}
} else if ((obj->flags3 & OBJFLAG3_GRABBABLE)
&& g_Vars.currentplayer->bondmovemode == MOVEMODE_WALK
&& bmoveGetCrouchPos() == CROUCHPOS_STAND
&& g_Vars.currentplayer->crouchoffset == 0.0f) {
maybe = true;
}
if (maybe && (obj->hidden & OBJHFLAG_MOUNTED) && prop == bmoveGetHoverbike()) {
maybe = false;
}
if (maybe
&& (prop->flags & PROPFLAG_ONTHISSCREENTHISTICK)
&& objIsHealthy(obj)
&& (obj->flags & OBJFLAG_CANNOT_ACTIVATE) == 0) {
struct prop *playerprop = g_Vars.currentplayer->prop;
f32 x = prop->pos.x - playerprop->pos.x;
f32 y = prop->pos.y - playerprop->pos.y;
f32 z = prop->pos.z - playerprop->pos.z;
f32 range;
if (obj->modelnum == MODEL_SK_SHUTTLE) {
range = 500;
} else if (obj->modelnum == MODEL_TAXICAB) {
range = 300;
} else if (obj->modelnum == MODEL_PRESCAPSULE) {
range = 280;
} else if (obj->flags3 & OBJFLAG3_INTERACTSHORTRANGE) {
range = 100;
} else {
range = 200;
}
if (x * x + z * z < range * range && y < range && y > -range) {
f32 angle = atan2f(x, z) - (360.0f - g_Vars.currentplayer->vv_theta) * M_BADTAU / 360.0f;
if (angle < 0.0f) {
angle += M_BADTAU;
}
if (angle > M_BADPI) {
angle = M_BADTAU - angle;
}
if (angle <= 0.3926365673542f) {
if ((obj->flags2 & OBJFLAG2_INTERACTCHECKLOS) == 0 || cd0002dcd0(&playerprop->pos, playerprop->rooms, &prop->pos, prop->rooms, 0x20)) {
g_InteractProp = prop;
}
}
}
}
return true;
}
bool currentPlayerTryMountHoverbike(struct prop *prop)
{
struct defaultobj *obj = prop->obj;
bool mount = false;
u32 stack[2];
if (obj->type == OBJTYPE_HOVERBIKE
&& g_Vars.lvframe60 - g_Vars.currentplayer->activatetimelast < TICKS(30)
&& (obj->hidden & OBJHFLAG_MOUNTED) == 0) {
if (obj->hidden & OBJHFLAG_GRABBED) {
if (bmoveGetGrabbedProp() == prop) {
mount = true;
} else {
mount = false;
}
} else {
mount = true;
}
}
if (mount && g_Vars.currentplayer->bondmovemode != MOVEMODE_GRAB) {
if (g_Vars.currentplayer->bondmovemode != MOVEMODE_WALK
|| bmoveGetCrouchPos() != CROUCHPOS_STAND
|| g_Vars.currentplayer->crouchoffset != 0) {
mount = false;
}
}
if (mount) {
f32 angle = atan2f(
prop->pos.x - g_Vars.currentplayer->prop->pos.x,
prop->pos.z - g_Vars.currentplayer->prop->pos.z);
angle -= hoverpropGetTurnAngle(obj);
if (angle < 0) {
angle += M_BADTAU;
}
if ((angle > 0.3926365673542f && angle < 2.3558194637299f)
|| (angle < 5.8895483016968f && angle > 3.9263656139374f)) {
g_Vars.currentplayer->hoverbike = prop;
bmoveSetMode(MOVEMODE_BIKE);
return true;
}
}
return false;
}
bool propobjInteract(struct prop *prop)
{
struct defaultobj *obj = prop->obj;
bool result = false;
u32 tag_id = propobjGetCiTagId(prop);
if (tag_id) {
// CI object - terminals etc
u8 handled = false;
if (ciIsTourDone()) {
if (tag_id == 0x10) {
struct trainingdata *data = dtGetData();
handled = true;
if (data->intraining) {
func0f0f85e0(&g_DtDetailsMenuDialog, MENUROOT_TRAINING);
} else {
func0f0f85e0(&g_DtListMenuDialog, MENUROOT_TRAINING);
}
} else if (tag_id == 0x45) {
struct trainingdata *data = getHoloTrainingData();
handled = true;
if (data->intraining) {
func0f0f85e0(&g_HtDetailsMenuDialog, MENUROOT_TRAINING);
} else {
func0f0f85e0(&g_HtListMenuDialog, MENUROOT_TRAINING);
}
} else if (tag_id == 0x7f) {
handled = true;
if (frIsInTraining()) {
func0f0f85e0(&g_FrTrainingInfoInGameMenuDialog, MENUROOT_TRAINING);
} else {
func0f0f85e0(&g_FrWeaponListMenuDialog, MENUROOT_TRAINING);
}
}
}
if (!handled) {
if (tag_id == 0x0e) {
handled = true;
func0f0f85e0(&g_BioListMenuDialog, MENUROOT_TRAINING);
} else if (tag_id == 0x0f) {
handled = true;
func0f0f85e0(&g_CheatsMenuDialog, MENUROOT_TRAINING);
} else if (tag_id == 0x1b) {
handled = true;
func0f0f85e0(&g_FrWeaponsAvailableMenuDialog, MENUROOT_TRAINING);
} else if (tag_id == 0x47) {
handled = true;
func0f0f85e0(&g_CiMenuViaPcMenuDialog, MENUROOT_MAINMENU);
} else if (tag_id == 0x46) {
handled = true;
func0f0f85e0(&g_HangarListMenuDialog, MENUROOT_TRAINING);
}
}
if (handled) {
// Typing sound
sndStart(var80095200, SFX_TYPING_8118, NULL, -1, -1, -1, -1, -1);
}
func0f0fd494(&prop->pos);
} else if (obj->type == OBJTYPE_ALARM) {
// Button press sound
sndStart(var80095200, SFX_PRESS_SWITCH, NULL, -1, -1, -1, -1, -1);
if (alarmIsActive()) {
alarmDeactivate();
} else {
alarmActivate();
}
} else if (obj->flags & OBJFLAG_THROWNLAPTOP) {
// Thrown laptop
if (obj->type == OBJTYPE_AUTOGUN) {
struct autogunobj *laptop = (struct autogunobj *)obj;
s32 playernum;
if (g_Vars.normmplayerisrunning) {
playernum = mpPlayerGetIndex(g_Vars.currentplayer->prop->chr);
} else {
playernum = g_Vars.currentplayernum;
}
if (playernum >= 0 && laptop == &g_ThrownLaptops[playernum]) {
obj->hidden |= OBJHFLAG_REAPABLE;
invGiveSingleWeapon(WEAPON_LAPTOPGUN);
currentPlayerQueuePickupWeaponHudmsg(WEAPON_LAPTOPGUN, false);
weaponPlayPickupSound(WEAPON_LAPTOPGUN);
if (laptop->ammoquantity > 0 && laptop->ammoquantity != 255) {
s32 newqty = bgunGetAmmoQtyForWeapon(WEAPON_LAPTOPGUN, FUNC_PRIMARY) + laptop->ammoquantity;
bgunSetAmmoQtyForWeapon(WEAPON_LAPTOPGUN, FUNC_PRIMARY, newqty);
}
}
} else {
result = propPickupByPlayer(prop, 1);
}
} else if (currentPlayerTryMountHoverbike(prop) == false
&& (obj->flags3 & OBJFLAG3_GRABBABLE)
&& g_Vars.currentplayer->bondmovemode == MOVEMODE_WALK
&& bmoveGetCrouchPos() == CROUCHPOS_STAND
&& g_Vars.currentplayer->crouchoffset == 0
&& g_Vars.currentplayer->onladder == false) {
bmoveGrabProp(prop);
}
if (g_Vars.normmplayerisrunning) {
scenarioHandleActivatedProp(g_Vars.currentplayer->prop->chr, prop);
} else {
if (g_Vars.currentplayernum == g_Vars.coopplayernum) {
obj->hidden |= OBJHFLAG_ACTIVATED_BY_COOP;
} else if (g_Vars.currentplayernum == g_Vars.bondplayernum) {
obj->hidden |= OBJHFLAG_ACTIVATED_BY_BOND;
}
}
doorCallLift(prop, false);
return result;
}
void objSetPerimEnabled(struct prop *prop, bool enable)
{
struct defaultobj *obj = prop->obj;
if (enable) {
obj->hidden &= ~OBJHFLAG_PERIMDISABLED;
} else {
obj->hidden |= OBJHFLAG_PERIMDISABLED;
}
}
bool objUpdateGeometry(struct prop *prop, u8 **start, u8 **end)
{
struct defaultobj *obj = prop->obj;
if (obj->unkgeo && (obj->flags3 & OBJFLAG3_WALKTHROUGH) == 0) {
if ((obj->hidden2 & OBJH2FLAG_08)) {
s32 len = (obj->flags3 & OBJFLAG3_GEOCYL) ? sizeof(struct geocyl) : sizeof(struct geoblock);
if (obj->flags & OBJFLAG_00000100) {
if ((obj->hidden & (OBJHFLAG_PERIMDISABLED | OBJHFLAG_DOORPERIMDISABLED)) == 0) {
*start = (void *) obj->unkgeo;
*end = (void *)((u32)obj->unkgeo + len);
if (obj->geocount >= 2) {
*end += obj->geocount * 0x40 - 0x40;
}
return true;
}
}
if (obj->geocount >= 2) {
*start = (void *)((u32)obj->unkgeo + len);
*end = (void *)(*start + obj->geocount * 0x40 - 0x40);
return true;
}
*end = NULL;
*start = NULL;
return false;
}
*start = (void *) obj->unkgeo;
*end = (void *) ((u32)obj->unkgeo + obj->geocount * 0x40);
return true;
}
*end = NULL;
*start = NULL;
return false;
}
void propObjGetBbox(struct prop *prop, f32 *radius, f32 *ymax, f32 *ymin)
{
struct defaultobj *obj = prop->obj;
if (obj->unkgeo && obj->hidden2 & OBJH2FLAG_08) {
if (obj->flags3 & OBJFLAG3_GEOCYL) {
*radius = obj->geocyl->radius;
*ymin = obj->geocyl->ymin;
*ymax = obj->geocyl->ymax;
} else {
*radius = model0001af80(obj->model);
*ymin = obj->geoblock->ymin;
*ymax = obj->geoblock->ymax;
}
} else {
*radius = 1;
*ymin = 0;
*ymax = 0;
}
}
#if VERSION < VERSION_PAL_BETA
void ammotypeGetPickedUpText(char *dst)
{
strcat(dst, langGet(L_PROPOBJ_000)); // "Picked up"
}
#endif
#if VERSION >= VERSION_PAL_BETA
struct nameinfo {
s32 id;
u16 singulartext;
u16 pluraltext;
u8 unk08[5];
};
struct nameinfo *func0f087888pf(s32 id, struct nameinfo *info)
{
if (info) {
while (info->id) {
if (info->id == id) {
return info;
}
info++;
}
}
return NULL;
}
#endif
#if VERSION >= VERSION_PAL_BETA
#define DETERMINER_A 1
#define DETERMINER_AN 2
#define DETERMINER_THE 3
#define DETERMINER_4 4
#define DETERMINER_SOME5 5
#define DETERMINER_SOME6 6
#define DETERMINER_SOME7 7
#define DETERMINER_8 8
#define DETERMINER_YOUR 9
struct nameinfo var8006a944pf[] = {
#if VERSION >= VERSION_PAL_FINAL
{ 999, L_PROPOBJ_009, L_PROPOBJ_070, { DETERMINER_A, DETERMINER_A, DETERMINER_SOME6, 0, DETERMINER_SOME7 } },
#else
{ 999, L_PROPOBJ_009, L_PROPOBJ_070, { DETERMINER_A, DETERMINER_A, DETERMINER_SOME6, 0, DETERMINER_SOME6 } },
#endif
{ AMMOTYPE_KNIFE, L_PROPOBJ_020, L_PROPOBJ_021, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A } },
{ AMMOTYPE_CROSSBOW, L_PROPOBJ_042, L_PROPOBJ_065, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_A } },
{ AMMOTYPE_SHOTGUN, L_PROPOBJ_010, L_PROPOBJ_071, { DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_A, DETERMINER_AN } },
{ AMMOTYPE_FARSIGHT, L_PROPOBJ_043, L_PROPOBJ_066, { DETERMINER_AN, DETERMINER_A, DETERMINER_AN, DETERMINER_A, DETERMINER_A } },
{ AMMOTYPE_GRENADE, L_PROPOBJ_013, L_PROPOBJ_074, { DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN, DETERMINER_AN } },
{ AMMOTYPE_ROCKET, L_PROPOBJ_015, L_PROPOBJ_076, { DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_A, DETERMINER_A } },
{ AMMOTYPE_MAGNUM, L_PROPOBJ_011, L_PROPOBJ_072, { DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN, DETERMINER_AN } },
{ AMMOTYPE_DEVASTATOR, L_PROPOBJ_014, L_PROPOBJ_075, { DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_A, DETERMINER_AN } },
{ AMMOTYPE_REMOTE_MINE, L_PROPOBJ_017, L_PROPOBJ_078, { DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN, DETERMINER_AN } },
{ AMMOTYPE_PROXY_MINE, L_PROPOBJ_018, L_PROPOBJ_079, { DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN, DETERMINER_AN } },
{ AMMOTYPE_TIMED_MINE, L_PROPOBJ_019, L_PROPOBJ_080, { DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN, DETERMINER_AN } },
#if VERSION >= VERSION_PAL_FINAL
{ AMMOTYPE_REAPER, L_PROPOBJ_044, L_PROPOBJ_067, { DETERMINER_A, DETERMINER_A, DETERMINER_SOME6, 0, DETERMINER_SOME7 } },
#else
{ AMMOTYPE_REAPER, L_PROPOBJ_044, L_PROPOBJ_067, { DETERMINER_A, DETERMINER_A, DETERMINER_SOME6, 0, 0 } },
#endif
{ AMMOTYPE_HOMINGROCKET, L_PROPOBJ_016, L_PROPOBJ_077, { DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_A, DETERMINER_A } },
{ AMMOTYPE_DART, L_PROPOBJ_022, L_PROPOBJ_081, { DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_A, DETERMINER_AN } },
{ AMMOTYPE_NBOMB, L_PROPOBJ_023, L_PROPOBJ_082, { DETERMINER_AN, DETERMINER_A, DETERMINER_AN, DETERMINER_AN, DETERMINER_AN } },
{ AMMOTYPE_SEDATIVE, L_PROPOBJ_024, L_PROPOBJ_083, { DETERMINER_SOME5, DETERMINER_SOME5, DETERMINER_A, DETERMINER_SOME5, DETERMINER_SOME5 } },
{ AMMOTYPE_PSYCHOSIS, L_PROPOBJ_024, L_PROPOBJ_083, { DETERMINER_SOME5, DETERMINER_SOME5, DETERMINER_A, DETERMINER_SOME5, DETERMINER_SOME5 } },
{ AMMOTYPE_CLOAK, L_PROPOBJ_045, L_PROPOBJ_068, { DETERMINER_A | 0x80, DETERMINER_A, DETERMINER_A | 0x80, DETERMINER_A | 0x80, DETERMINER_A | 0x80 } },
{ AMMOTYPE_BOOST, L_PROPOBJ_046, L_PROPOBJ_069, { DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_A, DETERMINER_AN } },
{ 0 },
};
struct nameinfo var8006aa94pf[] = {
{ WEAPON_FALCON2, L_GUN_007, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_FALCON2_SILENCER, L_GUN_008, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_FALCON2_SCOPE, L_GUN_009, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_MAGSEC4, L_GUN_010, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_MAULER, L_GUN_011, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_PHOENIX, L_GUN_014, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_DY357MAGNUM, L_GUN_012, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_DY357LX, L_GUN_013, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_CMP150, L_GUN_015, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_AN } },
{ WEAPON_CYCLONE, L_GUN_020, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_CALLISTO, L_GUN_023, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_RCP120, L_GUN_022, 0, { DETERMINER_AN, DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_LAPTOPGUN, L_GUN_024, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_AN } },
{ WEAPON_DRAGON, L_GUN_017, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_K7AVENGER, L_GUN_019, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_AN } },
{ WEAPON_AR34, L_GUN_016, 0, { DETERMINER_AN, DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_THE } },
{ WEAPON_SUPERDRAGON, L_GUN_018, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_SHOTGUN, L_GUN_025, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_REAPER, L_GUN_026, 0, { DETERMINER_THE, DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_A } },
{ WEAPON_SNIPERRIFLE, L_GUN_032, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A } },
{ WEAPON_FARSIGHT, L_GUN_031, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_AN } },
{ WEAPON_DEVASTATOR, L_GUN_028, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A } },
{ WEAPON_ROCKETLAUNCHER, L_GUN_027, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A } },
{ WEAPON_SLAYER, L_GUN_029, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A } },
{ WEAPON_COMBATKNIFE, L_GUN_035, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A } },
{ WEAPON_CROSSBOW, L_GUN_033, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_TRANQUILIZER, L_GUN_034, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A } },
{ WEAPON_LASER, L_GUN_047, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A } },
{ WEAPON_GRENADE, L_GUN_036, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_NBOMB, L_GUN_037, 0, { DETERMINER_AN, DETERMINER_A, DETERMINER_AN, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_TIMEDMINE, L_GUN_038, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_PROXIMITYMINE, L_GUN_039, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_REMOTEMINE, L_GUN_040, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_COMBATBOOST, L_GUN_074, L_GUN_242, { DETERMINER_SOME5, DETERMINER_SOME5, DETERMINER_SOME5, DETERMINER_SOME5, DETERMINER_SOME5 } },
{ WEAPON_PP9I, L_GUN_050, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_CC13, L_GUN_051, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_KL01313, L_GUN_052, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_KF7SPECIAL, L_GUN_053, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_ZZT, L_GUN_054, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_DMC, L_GUN_055, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_AN } },
{ WEAPON_AR53, L_GUN_056, 0, { DETERMINER_AN, DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_THE } },
{ WEAPON_RCP45, L_GUN_057, 0, { DETERMINER_AN, DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_PSYCHOSISGUN, L_GUN_049, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_NIGHTVISION, L_GUN_059, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_AN, 0, 0 } },
{ WEAPON_EYESPY, L_GUN_060, 0, { DETERMINER_YOUR, DETERMINER_A, DETERMINER_YOUR, DETERMINER_YOUR, DETERMINER_YOUR } },
{ 998, L_GUN_061, 0, { DETERMINER_YOUR, DETERMINER_A, DETERMINER_YOUR, DETERMINER_YOUR, DETERMINER_YOUR } },
{ 997, L_GUN_062, 0, { DETERMINER_YOUR, DETERMINER_A, DETERMINER_YOUR, DETERMINER_YOUR, DETERMINER_YOUR } },
{ WEAPON_XRAYSCANNER, L_GUN_065, 0, { DETERMINER_AN, DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_4 } },
{ WEAPON_IRSCANNER, L_GUN_069, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_4 } },
{ WEAPON_CLOAKINGDEVICE, L_GUN_073, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A } },
{ WEAPON_HORIZONSCANNER, L_GUN_076, 0, { DETERMINER_AN, DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A } },
{ WEAPON_ECMMINE, L_GUN_041, 0, { DETERMINER_AN, DETERMINER_A, DETERMINER_AN, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_DATAUPLINK, L_GUN_075, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A } },
{ WEAPON_RTRACKER, L_GUN_070, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A } },
{ WEAPON_PRESIDENTSCANNER, L_GUN_219, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, 0, 0 } },
{ WEAPON_DOORDECODER, L_GUN_063, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A } },
{ WEAPON_AUTOSURGEON, L_GUN_220, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, 0, DETERMINER_A } },
{ WEAPON_EXPLOSIVES, L_GUN_064, 0, { DETERMINER_SOME5, DETERMINER_SOME5, DETERMINER_SOME5, DETERMINER_THE, 0 } },
{ WEAPON_SKEDARBOMB, L_GUN_221, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, 0, 0 } },
{ WEAPON_COMMSRIDER, L_GUN_222, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, 0, 0 } },
{ WEAPON_TRACERBUG, L_GUN_223, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, 0, 0 } },
{ WEAPON_TARGETAMPLIFIER, L_GUN_224, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, 0, 0 } },
{ WEAPON_DISGUISE40, L_GUN_043, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A } },
{ WEAPON_DISGUISE41, L_GUN_043, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_A } },
{ WEAPON_FLIGHTPLANS, L_GUN_225, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, 0, 0 } },
{ WEAPON_RESEARCHTAPE, L_GUN_226, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, 0, 0 } },
{ WEAPON_BACKUPDISK, L_GUN_227, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, 0, 0 } },
{ WEAPON_KEYCARD45, L_GUN_228, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, 0, 0 } },
{ WEAPON_KEYCARD46, L_GUN_228, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, 0, 0 } },
{ WEAPON_KEYCARD47, L_GUN_228, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, 0, 0 } },
{ WEAPON_KEYCARD48, L_GUN_228, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, 0, 0 } },
{ WEAPON_KEYCARD49, L_GUN_228, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, 0, 0 } },
{ WEAPON_KEYCARD4A, L_GUN_228, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, 0, 0 } },
{ WEAPON_KEYCARD4B, L_GUN_228, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, 0, 0 } },
{ WEAPON_KEYCARD4C, L_GUN_228, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, 0, 0 } },
{ WEAPON_SUITCASE, L_GUN_067, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_BRIEFCASE, L_GUN_229, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_A, DETERMINER_AN } },
{ WEAPON_SHIELDTECHITEM, L_GUN_240, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_SOME5, 0, 0 } },
{ WEAPON_NECKLACE, L_GUN_230, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, 0, 0 } },
{ WEAPON_SUICIDEPILL, L_GUN_072, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_AN, DETERMINER_AN } },
{ WEAPON_ROCKET, L_GUN_044, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_A, DETERMINER_A } },
{ WEAPON_HOMINGROCKET, L_GUN_045, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_A, DETERMINER_A } },
{ WEAPON_GRENADEROUND, L_GUN_046, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_A, DETERMINER_AN } },
{ WEAPON_BOLT, L_GUN_048, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_A } },
{ WEAPON_BRIEFCASE2, L_GUN_071, 0, { DETERMINER_THE, DETERMINER_A, DETERMINER_AN, DETERMINER_A, DETERMINER_AN } },
{ WEAPON_SKROCKET, L_GUN_044, 0, { DETERMINER_A, DETERMINER_A, DETERMINER_AN, DETERMINER_A, DETERMINER_AN } },
{ 0 },
};
#if VERSION >= VERSION_JPN_FINAL
GLOBAL_ASM(
glabel func0f0878c8pf
.late_rodata
glabel var7f1ab890jf
.word 0x7f08881c
.word 0x7f08881c
.word 0x7f08881c
.word 0x7f08881c
.word 0x7f088824
.word 0x7f0888c4
.word 0x7f0888dc
.word 0x7f0888f8
.word 0x7f088914
.word 0x7f088930
.word 0x7f08894c
.word 0x7f088968
.word 0x7f088984
.word 0x7f0889a0
.text
/* f088730: 3c0b8008 */ lui $t3,0x8008
/* f088734: 8d6b4780 */ lw $t3,0x4780($t3)
/* f088738: 27bdff58 */ addiu $sp,$sp,-168
/* f08873c: afbf0014 */ sw $ra,0x14($sp)
/* f088740: 29610005 */ slti $at,$t3,0x5
/* f088744: afa400a8 */ sw $a0,0xa8($sp)
/* f088748: afa500ac */ sw $a1,0xac($sp)
/* f08874c: afa700b4 */ sw $a3,0xb4($sp)
/* f088750: 00004025 */ move $t0,$zero
/* f088754: 14200002 */ bnez $at,.JF0f088760
/* f088758: 00004825 */ move $t1,$zero
/* f08875c: 00005825 */ move $t3,$zero
.JF0f088760:
/* f088760: 3c0e8008 */ lui $t6,0x8008
/* f088764: 8dce4770 */ lw $t6,0x4770($t6)
/* f088768: 8faf00a8 */ lw $t7,0xa8($sp)
/* f08876c: 51c00003 */ beqzl $t6,.JF0f08877c
/* f088770: a1e00000 */ sb $zero,0x0($t7)
/* f088774: 00005825 */ move $t3,$zero
/* f088778: a1e00000 */ sb $zero,0x0($t7)
.JF0f08877c:
/* f08877c: afab009c */ sw $t3,0x9c($sp)
/* f088780: afa90094 */ sw $t1,0x94($sp)
/* f088784: a7a80098 */ sh $t0,0x98($sp)
/* f088788: afa600b0 */ sw $a2,0xb0($sp)
/* f08878c: 8fa500bc */ lw $a1,0xbc($sp)
/* f088790: 0fc221bc */ jal func0f087888pf
/* f088794: 8fa400ac */ lw $a0,0xac($sp)
/* f088798: 8fa600b0 */ lw $a2,0xb0($sp)
/* f08879c: 97a80098 */ lhu $t0,0x98($sp)
/* f0887a0: 8fa90094 */ lw $t1,0x94($sp)
/* f0887a4: 8faa00b4 */ lw $t2,0xb4($sp)
/* f0887a8: 104000cf */ beqz $v0,.JF0f088ae8
/* f0887ac: 8fab009c */ lw $t3,0x9c($sp)
/* f0887b0: 004bc021 */ addu $t8,$v0,$t3
/* f0887b4: 93040008 */ lbu $a0,0x8($t8)
/* f0887b8: 24010005 */ li $at,0x5
/* f0887bc: 00803825 */ move $a3,$a0
/* f0887c0: 30f9007f */ andi $t9,$a3,0x7f
/* f0887c4: 03203825 */ move $a3,$t9
/* f0887c8: 13210008 */ beq $t9,$at,.JF0f0887ec
/* f0887cc: 03201825 */ move $v1,$t9
/* f0887d0: 24010006 */ li $at,0x6
/* f0887d4: 13210005 */ beq $t9,$at,.JF0f0887ec
/* f0887d8: 24010007 */ li $at,0x7
/* f0887dc: 13210003 */ beq $t9,$at,.JF0f0887ec
/* f0887e0: 24010008 */ li $at,0x8
/* f0887e4: 57210003 */ bnel $t9,$at,.JF0f0887f4
/* f0887e8: 308c0080 */ andi $t4,$a0,0x80
.JF0f0887ec:
/* f0887ec: 24060001 */ li $a2,0x1
/* f0887f0: 308c0080 */ andi $t4,$a0,0x80
.JF0f0887f4:
/* f0887f4: 1180000c */ beqz $t4,.JF0f088828
/* f0887f8: 246dffff */ addiu $t5,$v1,-1
/* f0887fc: 2da10005 */ sltiu $at,$t5,0x5
/* f088800: 10200009 */ beqz $at,.JF0f088828
/* f088804: 000d6880 */ sll $t5,$t5,0x2
/* f088808: 3c017f1b */ lui $at,0x7f1b
/* f08880c: 002d0821 */ addu $at,$at,$t5
/* f088810: 8c2db890 */ lw $t5,-0x4770($at)
/* f088814: 01a00008 */ jr $t5
/* f088818: 00000000 */ nop
/* f08881c: 10000002 */ b .JF0f088828
/* f088820: 00003025 */ move $a2,$zero
/* f088824: 24060001 */ li $a2,0x1
.JF0f088828:
/* f088828: 50c0001b */ beqzl $a2,.JF0f088898
/* f08882c: 94450004 */ lhu $a1,0x4($v0)
/* f088830: 94440006 */ lhu $a0,0x6($v0)
/* f088834: 24010001 */ li $at,0x1
/* f088838: 10800014 */ beqz $a0,.JF0f08888c
/* f08883c: 00000000 */ nop
/* f088840: 1061000a */ beq $v1,$at,.JF0f08886c
/* f088844: 3085ffff */ andi $a1,$a0,0xffff
/* f088848: 24010002 */ li $at,0x2
/* f08884c: 10610009 */ beq $v1,$at,.JF0f088874
/* f088850: 24010003 */ li $at,0x3
/* f088854: 10610009 */ beq $v1,$at,.JF0f08887c
/* f088858: 24010004 */ li $at,0x4
/* f08885c: 10610009 */ beq $v1,$at,.JF0f088884
/* f088860: 00000000 */ nop
/* f088864: 1000000c */ b .JF0f088898
/* f088868: 00000000 */ nop
.JF0f08886c:
/* f08886c: 1000000a */ b .JF0f088898
/* f088870: 24070005 */ li $a3,0x5
.JF0f088874:
/* f088874: 10000008 */ b .JF0f088898
/* f088878: 24070006 */ li $a3,0x6
.JF0f08887c:
/* f08887c: 10000006 */ b .JF0f088898
/* f088880: 24070007 */ li $a3,0x7
.JF0f088884:
/* f088884: 10000004 */ b .JF0f088898
/* f088888: 24070008 */ li $a3,0x8
.JF0f08888c:
/* f08888c: 10000002 */ b .JF0f088898
/* f088890: 94450004 */ lhu $a1,0x4($v0)
/* f088894: 94450004 */ lhu $a1,0x4($v0)
.JF0f088898:
/* f088898: 10a00093 */ beqz $a1,.JF0f088ae8
/* f08889c: 00a03025 */ move $a2,$a1
/* f0888a0: 24eeffff */ addiu $t6,$a3,-1
/* f0888a4: 2dc10009 */ sltiu $at,$t6,0x9
/* f0888a8: 10200042 */ beqz $at,.JF0f0889b4
/* f0888ac: 000e7080 */ sll $t6,$t6,0x2
/* f0888b0: 3c017f1b */ lui $at,0x7f1b
/* f0888b4: 002e0821 */ addu $at,$at,$t6
/* f0888b8: 8c2eb8a4 */ lw $t6,-0x475c($at)
/* f0888bc: 01c00008 */ jr $t6
/* f0888c0: 00000000 */ nop
/* f0888c4: 11400003 */ beqz $t2,.JF0f0888d4
/* f0888c8: 00000000 */ nop
/* f0888cc: 10000039 */ b .JF0f0889b4
/* f0888d0: 2408523a */ li $t0,0x523a
.JF0f0888d4:
/* f0888d4: 10000037 */ b .JF0f0889b4
/* f0888d8: 24085239 */ li $t0,0x5239
/* f0888dc: 11400004 */ beqz $t2,.JF0f0888f0
/* f0888e0: 2408523b */ li $t0,0x523b
/* f0888e4: 2408523c */ li $t0,0x523c
/* f0888e8: 10000032 */ b .JF0f0889b4
/* f0888ec: 24090001 */ li $t1,0x1
.JF0f0888f0:
/* f0888f0: 10000030 */ b .JF0f0889b4
/* f0888f4: 24090001 */ li $t1,0x1
/* f0888f8: 11400004 */ beqz $t2,.JF0f08890c
/* f0888fc: 2408523d */ li $t0,0x523d
/* f088900: 2408523e */ li $t0,0x523e
/* f088904: 1000002b */ b .JF0f0889b4
/* f088908: 24090002 */ li $t1,0x2
.JF0f08890c:
/* f08890c: 10000029 */ b .JF0f0889b4
/* f088910: 24090002 */ li $t1,0x2
/* f088914: 11400004 */ beqz $t2,.JF0f088928
/* f088918: 2408523f */ li $t0,0x523f
/* f08891c: 24085240 */ li $t0,0x5240
/* f088920: 10000024 */ b .JF0f0889b4
/* f088924: 24090003 */ li $t1,0x3
.JF0f088928:
/* f088928: 10000022 */ b .JF0f0889b4
/* f08892c: 24090003 */ li $t1,0x3
/* f088930: 11400004 */ beqz $t2,.JF0f088944
/* f088934: 24085231 */ li $t0,0x5231
/* f088938: 24085232 */ li $t0,0x5232
/* f08893c: 1000001d */ b .JF0f0889b4
/* f088940: 24090004 */ li $t1,0x4
.JF0f088944:
/* f088944: 1000001b */ b .JF0f0889b4
/* f088948: 24090004 */ li $t1,0x4
/* f08894c: 11400004 */ beqz $t2,.JF0f088960
/* f088950: 24085233 */ li $t0,0x5233
/* f088954: 24085234 */ li $t0,0x5234
/* f088958: 10000016 */ b .JF0f0889b4
/* f08895c: 24090005 */ li $t1,0x5
.JF0f088960:
/* f088960: 10000014 */ b .JF0f0889b4
/* f088964: 24090005 */ li $t1,0x5
/* f088968: 11400004 */ beqz $t2,.JF0f08897c
/* f08896c: 24085235 */ li $t0,0x5235
/* f088970: 24085236 */ li $t0,0x5236
/* f088974: 1000000f */ b .JF0f0889b4
/* f088978: 24090006 */ li $t1,0x6
.JF0f08897c:
/* f08897c: 1000000d */ b .JF0f0889b4
/* f088980: 24090006 */ li $t1,0x6
/* f088984: 11400004 */ beqz $t2,.JF0f088998
/* f088988: 24085237 */ li $t0,0x5237
/* f08898c: 24085238 */ li $t0,0x5238
/* f088990: 10000008 */ b .JF0f0889b4
/* f088994: 24090007 */ li $t1,0x7
.JF0f088998:
/* f088998: 10000006 */ b .JF0f0889b4
/* f08899c: 24090007 */ li $t1,0x7
/* f0889a0: 11400003 */ beqz $t2,.JF0f0889b0
/* f0889a4: 24090001 */ li $t1,0x1
/* f0889a8: 10000002 */ b .JF0f0889b4
/* f0889ac: 24085230 */ li $t0,0x5230
.JF0f0889b0:
/* f0889b0: 2408522f */ li $t0,0x522f
.JF0f0889b4:
/* f0889b4: 15400005 */ bnez $t2,.JF0f0889cc
/* f0889b8: 8faf00b8 */ lw $t7,0xb8($sp)
/* f0889bc: 24010002 */ li $at,0x2
/* f0889c0: 15610002 */ bne $t3,$at,.JF0f0889cc
/* f0889c4: 00000000 */ nop
/* f0889c8: 00004025 */ move $t0,$zero
.JF0f0889cc:
/* f0889cc: 11e00002 */ beqz $t7,.JF0f0889d8
/* f0889d0: 00c02025 */ move $a0,$a2
/* f0889d4: 00004025 */ move $t0,$zero
.JF0f0889d8:
/* f0889d8: 11000011 */ beqz $t0,.JF0f088a20
/* f0889dc: 00000000 */ nop
/* f0889e0: 01002025 */ move $a0,$t0
/* f0889e4: afa60020 */ sw $a2,0x20($sp)
/* f0889e8: 0fc5baa5 */ jal langGet
/* f0889ec: afa90094 */ sw $t1,0x94($sp)
/* f0889f0: 8fa40020 */ lw $a0,0x20($sp)
/* f0889f4: 0fc5baa5 */ jal langGet
/* f0889f8: afa20024 */ sw $v0,0x24($sp)
/* f0889fc: 3c057f1b */ lui $a1,0x7f1b
/* f088a00: 24a5ad98 */ addiu $a1,$a1,-21096
/* f088a04: 27a4002c */ addiu $a0,$sp,0x2c
/* f088a08: 8fa60024 */ lw $a2,0x24($sp)
/* f088a0c: 0c004d95 */ jal sprintf
/* f088a10: 00403825 */ move $a3,$v0
/* f088a14: 8fa90094 */ lw $t1,0x94($sp)
/* f088a18: 1000000a */ b .JF0f088a44
/* f088a1c: 8faa00b4 */ lw $t2,0xb4($sp)
.JF0f088a20:
/* f088a20: 0fc5baa5 */ jal langGet
/* f088a24: afa90094 */ sw $t1,0x94($sp)
/* f088a28: 3c057f1b */ lui $a1,0x7f1b
/* f088a2c: 24a5ada0 */ addiu $a1,$a1,-21088
/* f088a30: 27a4002c */ addiu $a0,$sp,0x2c
/* f088a34: 0c004d95 */ jal sprintf
/* f088a38: 00403025 */ move $a2,$v0
/* f088a3c: 8fa90094 */ lw $t1,0x94($sp)
/* f088a40: 8faa00b4 */ lw $t2,0xb4($sp)
.JF0f088a44:
/* f088a44: 93b8002c */ lbu $t8,0x2c($sp)
/* f088a48: 27a6002c */ addiu $a2,$sp,0x2c
/* f088a4c: 00c01825 */ move $v1,$a2
/* f088a50: 1300000b */ beqz $t8,.JF0f088a80
/* f088a54: 27b9002c */ addiu $t9,$sp,0x2c
/* f088a58: 93220000 */ lbu $v0,0x0($t9)
/* f088a5c: 2404000a */ li $a0,0xa
.JF0f088a60:
/* f088a60: 54820004 */ bnel $a0,$v0,.JF0f088a74
/* f088a64: 24630001 */ addiu $v1,$v1,0x1
/* f088a68: 10000002 */ b .JF0f088a74
/* f088a6c: a0600000 */ sb $zero,0x0($v1)
/* f088a70: 24630001 */ addiu $v1,$v1,0x1
.JF0f088a74:
/* f088a74: 90620000 */ lbu $v0,0x0($v1)
/* f088a78: 1440fff9 */ bnez $v0,.JF0f088a60
/* f088a7c: 00000000 */ nop
.JF0f088a80:
/* f088a80: 8fac00b8 */ lw $t4,0xb8($sp)
/* f088a84: 1180000b */ beqz $t4,.JF0f088ab4
/* f088a88: 00000000 */ nop
/* f088a8c: 0fc5baa5 */ jal langGet
/* f088a90: 24045208 */ li $a0,0x5208
/* f088a94: 3c057f1b */ lui $a1,0x7f1b
/* f088a98: 24a5ada4 */ addiu $a1,$a1,-21084
/* f088a9c: 8fa400a8 */ lw $a0,0xa8($sp)
/* f088aa0: 00403025 */ move $a2,$v0
/* f088aa4: 0c004d95 */ jal sprintf
/* f088aa8: 27a7002c */ addiu $a3,$sp,0x2c
/* f088aac: 1000000f */ b .JF0f088aec
/* f088ab0: 8fbf0014 */ lw $ra,0x14($sp)
.JF0f088ab4:
/* f088ab4: 15400009 */ bnez $t2,.JF0f088adc
/* f088ab8: 8fa400a8 */ lw $a0,0xa8($sp)
/* f088abc: 0fc5baa5 */ jal langGet
/* f088ac0: 25245200 */ addiu $a0,$t1,0x5200
/* f088ac4: 8fa400a8 */ lw $a0,0xa8($sp)
/* f088ac8: 00402825 */ move $a1,$v0
/* f088acc: 0c004d95 */ jal sprintf
/* f088ad0: 27a6002c */ addiu $a2,$sp,0x2c
/* f088ad4: 10000005 */ b .JF0f088aec
/* f088ad8: 8fbf0014 */ lw $ra,0x14($sp)
.JF0f088adc:
/* f088adc: 3c057f1b */ lui $a1,0x7f1b
/* f088ae0: 0c004d95 */ jal sprintf
/* f088ae4: 24a5adac */ addiu $a1,$a1,-21076
.JF0f088ae8:
/* f088ae8: 8fbf0014 */ lw $ra,0x14($sp)
.JF0f088aec:
/* f088aec: 27bd00a8 */ addiu $sp,$sp,0xa8
/* f088af0: 03e00008 */ jr $ra
/* f088af4: 00000000 */ nop
);
#elif VERSION >= VERSION_PAL_FINAL
GLOBAL_ASM(
glabel func0f0878c8pf
.late_rodata
glabel var7f1abdf8pf
.word 0x7f0879a0
glabel var7f1abdfcpf
.word 0x7f0879a0
glabel var7f1abe00pf
.word 0x7f0879a0
glabel var7f1abe04pf
.word 0x7f0879a0
glabel var7f1abe08pf
.word 0x7f0879a8
glabel var7f1abe0cpf
.word 0x7f087a48
glabel var7f1abe10pf
.word 0x7f087a60
glabel var7f1abe14pf
.word 0x7f087a7c
glabel var7f1abe18pf
.word 0x7f087a98
glabel var7f1abe1cpf
.word 0x7f087ab4
glabel var7f1abe20pf
.word 0x7f087ad0
glabel var7f1abe24pf
.word 0x7f087aec
glabel var7f1abe28pf
.word 0x7f087b08
glabel var7f1abe2cpf
.word 0x7f087b24
.text
/* f0878c8: 3c0b8008 */ lui $t3,0x8008
/* f0878cc: 8d6b4670 */ lw $t3,0x4670($t3)
/* f0878d0: 27bdff58 */ addiu $sp,$sp,-168
/* f0878d4: afbf0014 */ sw $ra,0x14($sp)
/* f0878d8: 29610005 */ slti $at,$t3,0x5
/* f0878dc: afa400a8 */ sw $a0,0xa8($sp)
/* f0878e0: afa500ac */ sw $a1,0xac($sp)
/* f0878e4: afa700b4 */ sw $a3,0xb4($sp)
/* f0878e8: 00004025 */ move $t0,$zero
/* f0878ec: 14200002 */ bnez $at,.PF0f0878f8
/* f0878f0: 00004825 */ move $t1,$zero
/* f0878f4: 00005825 */ move $t3,$zero
.PF0f0878f8:
/* f0878f8: 8fae00a8 */ lw $t6,0xa8($sp)
/* f0878fc: a1c00000 */ sb $zero,0x0($t6)
/* f087900: afab009c */ sw $t3,0x9c($sp)
/* f087904: afa90094 */ sw $t1,0x94($sp)
/* f087908: a7a80098 */ sh $t0,0x98($sp)
/* f08790c: afa600b0 */ sw $a2,0xb0($sp)
/* f087910: 8fa500bc */ lw $a1,0xbc($sp)
/* f087914: 0fc21e22 */ jal func0f087888pf
/* f087918: 8fa400ac */ lw $a0,0xac($sp)
/* f08791c: 8fa600b0 */ lw $a2,0xb0($sp)
/* f087920: 97a80098 */ lhu $t0,0x98($sp)
/* f087924: 8fa90094 */ lw $t1,0x94($sp)
/* f087928: 8faa00b4 */ lw $t2,0xb4($sp)
/* f08792c: 104000cf */ beqz $v0,.PF0f087c6c
/* f087930: 8fab009c */ lw $t3,0x9c($sp)
/* f087934: 004b7821 */ addu $t7,$v0,$t3
/* f087938: 91e40008 */ lbu $a0,0x8($t7)
/* f08793c: 24010005 */ li $at,0x5
/* f087940: 00803825 */ move $a3,$a0
/* f087944: 30f8007f */ andi $t8,$a3,0x7f
/* f087948: 03003825 */ move $a3,$t8
/* f08794c: 13010008 */ beq $t8,$at,.PF0f087970
/* f087950: 03001825 */ move $v1,$t8
/* f087954: 24010006 */ li $at,0x6
/* f087958: 13010005 */ beq $t8,$at,.PF0f087970
/* f08795c: 24010007 */ li $at,0x7
/* f087960: 13010003 */ beq $t8,$at,.PF0f087970
/* f087964: 24010008 */ li $at,0x8
/* f087968: 57010003 */ bnel $t8,$at,.PF0f087978
/* f08796c: 30990080 */ andi $t9,$a0,0x80
.PF0f087970:
/* f087970: 24060001 */ li $a2,0x1
/* f087974: 30990080 */ andi $t9,$a0,0x80
.PF0f087978:
/* f087978: 1320000c */ beqz $t9,.PF0f0879ac
/* f08797c: 246cffff */ addiu $t4,$v1,-1
/* f087980: 2d810005 */ sltiu $at,$t4,0x5
/* f087984: 10200009 */ beqz $at,.PF0f0879ac
/* f087988: 000c6080 */ sll $t4,$t4,0x2
/* f08798c: 3c017f1b */ lui $at,0x7f1b
/* f087990: 002c0821 */ addu $at,$at,$t4
/* f087994: 8c2cbdf8 */ lw $t4,-0x4208($at)
/* f087998: 01800008 */ jr $t4
/* f08799c: 00000000 */ nop
/* f0879a0: 10000002 */ b .PF0f0879ac
/* f0879a4: 00003025 */ move $a2,$zero
/* f0879a8: 24060001 */ li $a2,0x1
.PF0f0879ac:
/* f0879ac: 50c0001b */ beqzl $a2,.PF0f087a1c
/* f0879b0: 94450004 */ lhu $a1,0x4($v0)
/* f0879b4: 94440006 */ lhu $a0,0x6($v0)
/* f0879b8: 24010001 */ li $at,0x1
/* f0879bc: 10800014 */ beqz $a0,.PF0f087a10
/* f0879c0: 00000000 */ nop
/* f0879c4: 1061000a */ beq $v1,$at,.PF0f0879f0
/* f0879c8: 3085ffff */ andi $a1,$a0,0xffff
/* f0879cc: 24010002 */ li $at,0x2
/* f0879d0: 10610009 */ beq $v1,$at,.PF0f0879f8
/* f0879d4: 24010003 */ li $at,0x3
/* f0879d8: 10610009 */ beq $v1,$at,.PF0f087a00
/* f0879dc: 24010004 */ li $at,0x4
/* f0879e0: 10610009 */ beq $v1,$at,.PF0f087a08
/* f0879e4: 00000000 */ nop
/* f0879e8: 1000000c */ b .PF0f087a1c
/* f0879ec: 00000000 */ nop
.PF0f0879f0:
/* f0879f0: 1000000a */ b .PF0f087a1c
/* f0879f4: 24070005 */ li $a3,0x5
.PF0f0879f8:
/* f0879f8: 10000008 */ b .PF0f087a1c
/* f0879fc: 24070006 */ li $a3,0x6
.PF0f087a00:
/* f087a00: 10000006 */ b .PF0f087a1c
/* f087a04: 24070007 */ li $a3,0x7
.PF0f087a08:
/* f087a08: 10000004 */ b .PF0f087a1c
/* f087a0c: 24070008 */ li $a3,0x8
.PF0f087a10:
/* f087a10: 10000002 */ b .PF0f087a1c
/* f087a14: 94450004 */ lhu $a1,0x4($v0)
/* f087a18: 94450004 */ lhu $a1,0x4($v0)
.PF0f087a1c:
/* f087a1c: 10a00093 */ beqz $a1,.PF0f087c6c
/* f087a20: 00a03025 */ move $a2,$a1
/* f087a24: 24edffff */ addiu $t5,$a3,-1
/* f087a28: 2da10009 */ sltiu $at,$t5,0x9
/* f087a2c: 10200042 */ beqz $at,.PF0f087b38
/* f087a30: 000d6880 */ sll $t5,$t5,0x2
/* f087a34: 3c017f1b */ lui $at,0x7f1b
/* f087a38: 002d0821 */ addu $at,$at,$t5
/* f087a3c: 8c2dbe0c */ lw $t5,-0x41f4($at)
/* f087a40: 01a00008 */ jr $t5
/* f087a44: 00000000 */ nop
/* f087a48: 11400003 */ beqz $t2,.PF0f087a58
/* f087a4c: 00000000 */ nop
/* f087a50: 10000039 */ b .PF0f087b38
/* f087a54: 2408523a */ li $t0,0x523a
.PF0f087a58:
/* f087a58: 10000037 */ b .PF0f087b38
/* f087a5c: 24085239 */ li $t0,0x5239
/* f087a60: 11400004 */ beqz $t2,.PF0f087a74
/* f087a64: 2408523b */ li $t0,0x523b
/* f087a68: 2408523c */ li $t0,0x523c
/* f087a6c: 10000032 */ b .PF0f087b38
/* f087a70: 24090001 */ li $t1,0x1
.PF0f087a74:
/* f087a74: 10000030 */ b .PF0f087b38
/* f087a78: 24090001 */ li $t1,0x1
/* f087a7c: 11400004 */ beqz $t2,.PF0f087a90
/* f087a80: 2408523d */ li $t0,0x523d
/* f087a84: 2408523e */ li $t0,0x523e
/* f087a88: 1000002b */ b .PF0f087b38
/* f087a8c: 24090002 */ li $t1,0x2
.PF0f087a90:
/* f087a90: 10000029 */ b .PF0f087b38
/* f087a94: 24090002 */ li $t1,0x2
/* f087a98: 11400004 */ beqz $t2,.PF0f087aac
/* f087a9c: 2408523f */ li $t0,0x523f
/* f087aa0: 24085240 */ li $t0,0x5240
/* f087aa4: 10000024 */ b .PF0f087b38
/* f087aa8: 24090003 */ li $t1,0x3
.PF0f087aac:
/* f087aac: 10000022 */ b .PF0f087b38
/* f087ab0: 24090003 */ li $t1,0x3
/* f087ab4: 11400004 */ beqz $t2,.PF0f087ac8
/* f087ab8: 24085231 */ li $t0,0x5231
/* f087abc: 24085232 */ li $t0,0x5232
/* f087ac0: 1000001d */ b .PF0f087b38
/* f087ac4: 24090004 */ li $t1,0x4
.PF0f087ac8:
/* f087ac8: 1000001b */ b .PF0f087b38
/* f087acc: 24090004 */ li $t1,0x4
/* f087ad0: 11400004 */ beqz $t2,.PF0f087ae4
/* f087ad4: 24085233 */ li $t0,0x5233
/* f087ad8: 24085234 */ li $t0,0x5234
/* f087adc: 10000016 */ b .PF0f087b38
/* f087ae0: 24090005 */ li $t1,0x5
.PF0f087ae4:
/* f087ae4: 10000014 */ b .PF0f087b38
/* f087ae8: 24090005 */ li $t1,0x5
/* f087aec: 11400004 */ beqz $t2,.PF0f087b00
/* f087af0: 24085235 */ li $t0,0x5235
/* f087af4: 24085236 */ li $t0,0x5236
/* f087af8: 1000000f */ b .PF0f087b38
/* f087afc: 24090006 */ li $t1,0x6
.PF0f087b00:
/* f087b00: 1000000d */ b .PF0f087b38
/* f087b04: 24090006 */ li $t1,0x6
/* f087b08: 11400004 */ beqz $t2,.PF0f087b1c
/* f087b0c: 24085237 */ li $t0,0x5237
/* f087b10: 24085238 */ li $t0,0x5238
/* f087b14: 10000008 */ b .PF0f087b38
/* f087b18: 24090007 */ li $t1,0x7
.PF0f087b1c:
/* f087b1c: 10000006 */ b .PF0f087b38
/* f087b20: 24090007 */ li $t1,0x7
/* f087b24: 11400003 */ beqz $t2,.PF0f087b34
/* f087b28: 24090001 */ li $t1,0x1
/* f087b2c: 10000002 */ b .PF0f087b38
/* f087b30: 24085230 */ li $t0,0x5230
.PF0f087b34:
/* f087b34: 2408522f */ li $t0,0x522f
.PF0f087b38:
/* f087b38: 15400005 */ bnez $t2,.PF0f087b50
/* f087b3c: 8fae00b8 */ lw $t6,0xb8($sp)
/* f087b40: 24010002 */ li $at,0x2
/* f087b44: 15610002 */ bne $t3,$at,.PF0f087b50
/* f087b48: 00000000 */ nop
/* f087b4c: 00004025 */ move $t0,$zero
.PF0f087b50:
/* f087b50: 11c00002 */ beqz $t6,.PF0f087b5c
/* f087b54: 00c02025 */ move $a0,$a2
/* f087b58: 00004025 */ move $t0,$zero
.PF0f087b5c:
/* f087b5c: 11000011 */ beqz $t0,.PF0f087ba4
/* f087b60: 00000000 */ nop
/* f087b64: 01002025 */ move $a0,$t0
/* f087b68: afa60020 */ sw $a2,0x20($sp)
/* f087b6c: 0fc5bdaa */ jal langGet
/* f087b70: afa90094 */ sw $t1,0x94($sp)
/* f087b74: 8fa40020 */ lw $a0,0x20($sp)
/* f087b78: 0fc5bdaa */ jal langGet
/* f087b7c: afa20024 */ sw $v0,0x24($sp)
/* f087b80: 3c057f1b */ lui $a1,0x7f1b
/* f087b84: 24a5b2f8 */ addiu $a1,$a1,-19720
/* f087b88: 27a4002c */ addiu $a0,$sp,0x2c
/* f087b8c: 8fa60024 */ lw $a2,0x24($sp)
/* f087b90: 0c004d11 */ jal sprintf
/* f087b94: 00403825 */ move $a3,$v0
/* f087b98: 8fa90094 */ lw $t1,0x94($sp)
/* f087b9c: 1000000a */ b .PF0f087bc8
/* f087ba0: 8faa00b4 */ lw $t2,0xb4($sp)
.PF0f087ba4:
/* f087ba4: 0fc5bdaa */ jal langGet
/* f087ba8: afa90094 */ sw $t1,0x94($sp)
/* f087bac: 3c057f1b */ lui $a1,0x7f1b
/* f087bb0: 24a5b300 */ addiu $a1,$a1,-19712
/* f087bb4: 27a4002c */ addiu $a0,$sp,0x2c
/* f087bb8: 0c004d11 */ jal sprintf
/* f087bbc: 00403025 */ move $a2,$v0
/* f087bc0: 8fa90094 */ lw $t1,0x94($sp)
/* f087bc4: 8faa00b4 */ lw $t2,0xb4($sp)
.PF0f087bc8:
/* f087bc8: 93af002c */ lbu $t7,0x2c($sp)
/* f087bcc: 27a6002c */ addiu $a2,$sp,0x2c
/* f087bd0: 00c01825 */ move $v1,$a2
/* f087bd4: 11e0000b */ beqz $t7,.PF0f087c04
/* f087bd8: 27b8002c */ addiu $t8,$sp,0x2c
/* f087bdc: 93020000 */ lbu $v0,0x0($t8)
/* f087be0: 2404000a */ li $a0,0xa
.PF0f087be4:
/* f087be4: 54820004 */ bnel $a0,$v0,.PF0f087bf8
/* f087be8: 24630001 */ addiu $v1,$v1,0x1
/* f087bec: 10000002 */ b .PF0f087bf8
/* f087bf0: a0600000 */ sb $zero,0x0($v1)
/* f087bf4: 24630001 */ addiu $v1,$v1,0x1
.PF0f087bf8:
/* f087bf8: 90620000 */ lbu $v0,0x0($v1)
/* f087bfc: 1440fff9 */ bnez $v0,.PF0f087be4
/* f087c00: 00000000 */ nop
.PF0f087c04:
/* f087c04: 8fb900b8 */ lw $t9,0xb8($sp)
/* f087c08: 1320000b */ beqz $t9,.PF0f087c38
/* f087c0c: 00000000 */ nop
/* f087c10: 0fc5bdaa */ jal langGet
/* f087c14: 24045208 */ li $a0,0x5208
/* f087c18: 3c057f1b */ lui $a1,0x7f1b
/* f087c1c: 24a5b304 */ addiu $a1,$a1,-19708
/* f087c20: 8fa400a8 */ lw $a0,0xa8($sp)
/* f087c24: 00403025 */ move $a2,$v0
/* f087c28: 0c004d11 */ jal sprintf
/* f087c2c: 27a7002c */ addiu $a3,$sp,0x2c
/* f087c30: 1000000f */ b .PF0f087c70
/* f087c34: 8fbf0014 */ lw $ra,0x14($sp)
.PF0f087c38:
/* f087c38: 15400009 */ bnez $t2,.PF0f087c60
/* f087c3c: 8fa400a8 */ lw $a0,0xa8($sp)
/* f087c40: 0fc5bdaa */ jal langGet
/* f087c44: 25245200 */ addiu $a0,$t1,0x5200
/* f087c48: 8fa400a8 */ lw $a0,0xa8($sp)
/* f087c4c: 00402825 */ move $a1,$v0
/* f087c50: 0c004d11 */ jal sprintf
/* f087c54: 27a6002c */ addiu $a2,$sp,0x2c
/* f087c58: 10000005 */ b .PF0f087c70
/* f087c5c: 8fbf0014 */ lw $ra,0x14($sp)
.PF0f087c60:
/* f087c60: 3c057f1b */ lui $a1,0x7f1b
/* f087c64: 0c004d11 */ jal sprintf
/* f087c68: 24a5b30c */ addiu $a1,$a1,-19700
.PF0f087c6c:
/* f087c6c: 8fbf0014 */ lw $ra,0x14($sp)
.PF0f087c70:
/* f087c70: 27bd00a8 */ addiu $sp,$sp,0xa8
/* f087c74: 03e00008 */ jr $ra
/* f087c78: 00000000 */ nop
);
#else
GLOBAL_ASM(
glabel func0f0878c8pf
.late_rodata
glabel var7f1abdf8pf
.word 0x7f0878f0
.word 0x7f0878f0
.word 0x7f0878f0
.word 0x7f0878f0
.word 0x7f0878f8
.word 0x7f087998
.word 0x7f0879b0
.word 0x7f0879cc
.word 0x7f0879e8
.word 0x7f087a04
.word 0x7f087a20
.word 0x7f087a3c
.word 0x7f087a58
.word 0x7f087a74
.text
/* f087818: 3c0b8008 */ lui $t3,0x8008
/* f08781c: 8d6b6600 */ lw $t3,0x6600($t3)
/* f087820: 27bdff58 */ addiu $sp,$sp,-168
/* f087824: afbf0014 */ sw $ra,0x14($sp)
/* f087828: 29610005 */ slti $at,$t3,0x5
/* f08782c: afa400a8 */ sw $a0,0xa8($sp)
/* f087830: afa500ac */ sw $a1,0xac($sp)
/* f087834: afa700b4 */ sw $a3,0xb4($sp)
/* f087838: 00004025 */ move $t0,$zero
/* f08783c: 14200002 */ bnez $at,.PB0f087848
/* f087840: 00004825 */ move $t1,$zero
/* f087844: 00005825 */ move $t3,$zero
.PB0f087848:
/* f087848: 8fae00a8 */ lw $t6,0xa8($sp)
/* f08784c: a1c00000 */ sb $zero,0x0($t6)
/* f087850: afab009c */ sw $t3,0x9c($sp)
/* f087854: afa90094 */ sw $t1,0x94($sp)
/* f087858: a7a80098 */ sh $t0,0x98($sp)
/* f08785c: afa600b0 */ sw $a2,0xb0($sp)
/* f087860: 8fa500bc */ lw $a1,0xbc($sp)
/* f087864: 0fc21df6 */ jal func0f087888pf
/* f087868: 8fa400ac */ lw $a0,0xac($sp)
/* f08786c: 8fa600b0 */ lw $a2,0xb0($sp)
/* f087870: 97a80098 */ lhu $t0,0x98($sp)
/* f087874: 8fa90094 */ lw $t1,0x94($sp)
/* f087878: 8faa00b4 */ lw $t2,0xb4($sp)
/* f08787c: 104000cf */ beqz $v0,.PB0f087bbc
/* f087880: 8fab009c */ lw $t3,0x9c($sp)
/* f087884: 004b7821 */ addu $t7,$v0,$t3
/* f087888: 91e40008 */ lbu $a0,0x8($t7)
/* f08788c: 24010005 */ li $at,0x5
/* f087890: 00803825 */ move $a3,$a0
/* f087894: 30f8007f */ andi $t8,$a3,0x7f
/* f087898: 03003825 */ move $a3,$t8
/* f08789c: 13010008 */ beq $t8,$at,.PB0f0878c0
/* f0878a0: 03001825 */ move $v1,$t8
/* f0878a4: 24010006 */ li $at,0x6
/* f0878a8: 13010005 */ beq $t8,$at,.PB0f0878c0
/* f0878ac: 24010007 */ li $at,0x7
/* f0878b0: 13010003 */ beq $t8,$at,.PB0f0878c0
/* f0878b4: 24010008 */ li $at,0x8
/* f0878b8: 57010003 */ bnel $t8,$at,.PB0f0878c8
/* f0878bc: 30990080 */ andi $t9,$a0,0x80
.PB0f0878c0:
/* f0878c0: 24060001 */ li $a2,0x1
/* f0878c4: 30990080 */ andi $t9,$a0,0x80
.PB0f0878c8:
/* f0878c8: 1320000c */ beqz $t9,.PB0f0878fc
/* f0878cc: 246cffff */ addiu $t4,$v1,-1
/* f0878d0: 2d810005 */ sltiu $at,$t4,0x5
/* f0878d4: 10200009 */ beqz $at,.PB0f0878fc
/* f0878d8: 000c6080 */ sll $t4,$t4,0x2
/* f0878dc: 3c017f1b */ lui $at,0x7f1b
/* f0878e0: 002c0821 */ addu $at,$at,$t4
/* f0878e4: 8c2cc848 */ lw $t4,-0x37b8($at)
/* f0878e8: 01800008 */ jr $t4
/* f0878ec: 00000000 */ nop
/* f0878f0: 10000002 */ b .PB0f0878fc
/* f0878f4: 00003025 */ move $a2,$zero
/* f0878f8: 24060001 */ li $a2,0x1
.PB0f0878fc:
/* f0878fc: 50c0001b */ beqzl $a2,.PB0f08796c
/* f087900: 94450004 */ lhu $a1,0x4($v0)
/* f087904: 94440006 */ lhu $a0,0x6($v0)
/* f087908: 24010001 */ li $at,0x1
/* f08790c: 10800014 */ beqz $a0,.PB0f087960
/* f087910: 00000000 */ nop
/* f087914: 1061000a */ beq $v1,$at,.PB0f087940
/* f087918: 3085ffff */ andi $a1,$a0,0xffff
/* f08791c: 24010002 */ li $at,0x2
/* f087920: 10610009 */ beq $v1,$at,.PB0f087948
/* f087924: 24010003 */ li $at,0x3
/* f087928: 10610009 */ beq $v1,$at,.PB0f087950
/* f08792c: 24010004 */ li $at,0x4
/* f087930: 10610009 */ beq $v1,$at,.PB0f087958
/* f087934: 00000000 */ nop
/* f087938: 1000000c */ b .PB0f08796c
/* f08793c: 00000000 */ nop
.PB0f087940:
/* f087940: 1000000a */ b .PB0f08796c
/* f087944: 24070005 */ li $a3,0x5
.PB0f087948:
/* f087948: 10000008 */ b .PB0f08796c
/* f08794c: 24070006 */ li $a3,0x6
.PB0f087950:
/* f087950: 10000006 */ b .PB0f08796c
/* f087954: 24070007 */ li $a3,0x7
.PB0f087958:
/* f087958: 10000004 */ b .PB0f08796c
/* f08795c: 24070008 */ li $a3,0x8
.PB0f087960:
/* f087960: 10000002 */ b .PB0f08796c
/* f087964: 94450004 */ lhu $a1,0x4($v0)
/* f087968: 94450004 */ lhu $a1,0x4($v0)
.PB0f08796c:
/* f08796c: 10a00093 */ beqz $a1,.PB0f087bbc
/* f087970: 00a03025 */ move $a2,$a1
/* f087974: 24edffff */ addiu $t5,$a3,-1
/* f087978: 2da10009 */ sltiu $at,$t5,0x9
/* f08797c: 10200042 */ beqz $at,.PB0f087a88
/* f087980: 000d6880 */ sll $t5,$t5,0x2
/* f087984: 3c017f1b */ lui $at,0x7f1b
/* f087988: 002d0821 */ addu $at,$at,$t5
/* f08798c: 8c2dc85c */ lw $t5,-0x37a4($at)
/* f087990: 01a00008 */ jr $t5
/* f087994: 00000000 */ nop
/* f087998: 11400003 */ beqz $t2,.PB0f0879a8
/* f08799c: 00000000 */ nop
/* f0879a0: 10000039 */ b .PB0f087a88
/* f0879a4: 2408523a */ li $t0,0x523a
.PB0f0879a8:
/* f0879a8: 10000037 */ b .PB0f087a88
/* f0879ac: 24085239 */ li $t0,0x5239
/* f0879b0: 11400004 */ beqz $t2,.PB0f0879c4
/* f0879b4: 2408523b */ li $t0,0x523b
/* f0879b8: 2408523c */ li $t0,0x523c
/* f0879bc: 10000032 */ b .PB0f087a88
/* f0879c0: 24090001 */ li $t1,0x1
.PB0f0879c4:
/* f0879c4: 10000030 */ b .PB0f087a88
/* f0879c8: 24090001 */ li $t1,0x1
/* f0879cc: 11400004 */ beqz $t2,.PB0f0879e0
/* f0879d0: 2408523d */ li $t0,0x523d
/* f0879d4: 2408523e */ li $t0,0x523e
/* f0879d8: 1000002b */ b .PB0f087a88
/* f0879dc: 24090002 */ li $t1,0x2
.PB0f0879e0:
/* f0879e0: 10000029 */ b .PB0f087a88
/* f0879e4: 24090002 */ li $t1,0x2
/* f0879e8: 11400004 */ beqz $t2,.PB0f0879fc
/* f0879ec: 2408523f */ li $t0,0x523f
/* f0879f0: 24085240 */ li $t0,0x5240
/* f0879f4: 10000024 */ b .PB0f087a88
/* f0879f8: 24090003 */ li $t1,0x3
.PB0f0879fc:
/* f0879fc: 10000022 */ b .PB0f087a88
/* f087a00: 24090003 */ li $t1,0x3
/* f087a04: 11400004 */ beqz $t2,.PB0f087a18
/* f087a08: 24085231 */ li $t0,0x5231
/* f087a0c: 24085232 */ li $t0,0x5232
/* f087a10: 1000001d */ b .PB0f087a88
/* f087a14: 24090004 */ li $t1,0x4
.PB0f087a18:
/* f087a18: 1000001b */ b .PB0f087a88
/* f087a1c: 24090004 */ li $t1,0x4
/* f087a20: 11400004 */ beqz $t2,.PB0f087a34
/* f087a24: 24085233 */ li $t0,0x5233
/* f087a28: 24085234 */ li $t0,0x5234
/* f087a2c: 10000016 */ b .PB0f087a88
/* f087a30: 24090005 */ li $t1,0x5
.PB0f087a34:
/* f087a34: 10000014 */ b .PB0f087a88
/* f087a38: 24090005 */ li $t1,0x5
/* f087a3c: 11400004 */ beqz $t2,.PB0f087a50
/* f087a40: 24085235 */ li $t0,0x5235
/* f087a44: 24085236 */ li $t0,0x5236
/* f087a48: 1000000f */ b .PB0f087a88
/* f087a4c: 24090006 */ li $t1,0x6
.PB0f087a50:
/* f087a50: 1000000d */ b .PB0f087a88
/* f087a54: 24090006 */ li $t1,0x6
/* f087a58: 11400004 */ beqz $t2,.PB0f087a6c
/* f087a5c: 24085237 */ li $t0,0x5237
/* f087a60: 24085238 */ li $t0,0x5238
/* f087a64: 10000008 */ b .PB0f087a88
/* f087a68: 24090007 */ li $t1,0x7
.PB0f087a6c:
/* f087a6c: 10000006 */ b .PB0f087a88
/* f087a70: 24090007 */ li $t1,0x7
/* f087a74: 11400003 */ beqz $t2,.PB0f087a84
/* f087a78: 24090001 */ li $t1,0x1
/* f087a7c: 10000002 */ b .PB0f087a88
/* f087a80: 24085230 */ li $t0,0x5230
.PB0f087a84:
/* f087a84: 2408522f */ li $t0,0x522f
.PB0f087a88:
/* f087a88: 15400005 */ bnez $t2,.PB0f087aa0
/* f087a8c: 8fae00b8 */ lw $t6,0xb8($sp)
/* f087a90: 24010002 */ li $at,0x2
/* f087a94: 15610002 */ bne $t3,$at,.PB0f087aa0
/* f087a98: 00000000 */ nop
/* f087a9c: 00004025 */ move $t0,$zero
.PB0f087aa0:
/* f087aa0: 11c00002 */ beqz $t6,.PB0f087aac
/* f087aa4: 00c02025 */ move $a0,$a2
/* f087aa8: 00004025 */ move $t0,$zero
.PB0f087aac:
/* f087aac: 11000011 */ beqz $t0,.PB0f087af4
/* f087ab0: 00000000 */ nop
/* f087ab4: 01002025 */ move $a0,$t0
/* f087ab8: afa60020 */ sw $a2,0x20($sp)
/* f087abc: 0fc5c06a */ jal langGet
/* f087ac0: afa90094 */ sw $t1,0x94($sp)
/* f087ac4: 8fa40020 */ lw $a0,0x20($sp)
/* f087ac8: 0fc5c06a */ jal langGet
/* f087acc: afa20024 */ sw $v0,0x24($sp)
/* f087ad0: 3c057f1b */ lui $a1,0x7f1b
/* f087ad4: 24a5bd4c */ addiu $a1,$a1,-17076
/* f087ad8: 27a4002c */ addiu $a0,$sp,0x2c
/* f087adc: 8fa60024 */ lw $a2,0x24($sp)
/* f087ae0: 0c004e1d */ jal sprintf
/* f087ae4: 00403825 */ move $a3,$v0
/* f087ae8: 8fa90094 */ lw $t1,0x94($sp)
/* f087aec: 1000000a */ b .PB0f087b18
/* f087af0: 8faa00b4 */ lw $t2,0xb4($sp)
.PB0f087af4:
/* f087af4: 0fc5c06a */ jal langGet
/* f087af8: afa90094 */ sw $t1,0x94($sp)
/* f087afc: 3c057f1b */ lui $a1,0x7f1b
/* f087b00: 24a5bd54 */ addiu $a1,$a1,-17068
/* f087b04: 27a4002c */ addiu $a0,$sp,0x2c
/* f087b08: 0c004e1d */ jal sprintf
/* f087b0c: 00403025 */ move $a2,$v0
/* f087b10: 8fa90094 */ lw $t1,0x94($sp)
/* f087b14: 8faa00b4 */ lw $t2,0xb4($sp)
.PB0f087b18:
/* f087b18: 93af002c */ lbu $t7,0x2c($sp)
/* f087b1c: 27a6002c */ addiu $a2,$sp,0x2c
/* f087b20: 00c01825 */ move $v1,$a2
/* f087b24: 11e0000b */ beqz $t7,.PB0f087b54
/* f087b28: 27b8002c */ addiu $t8,$sp,0x2c
/* f087b2c: 93020000 */ lbu $v0,0x0($t8)
/* f087b30: 2404000a */ li $a0,0xa
.PB0f087b34:
/* f087b34: 54820004 */ bnel $a0,$v0,.PB0f087b48
/* f087b38: 24630001 */ addiu $v1,$v1,0x1
/* f087b3c: 10000002 */ b .PB0f087b48
/* f087b40: a0600000 */ sb $zero,0x0($v1)
/* f087b44: 24630001 */ addiu $v1,$v1,0x1
.PB0f087b48:
/* f087b48: 90620000 */ lbu $v0,0x0($v1)
/* f087b4c: 1440fff9 */ bnez $v0,.PB0f087b34
/* f087b50: 00000000 */ nop
.PB0f087b54:
/* f087b54: 8fb900b8 */ lw $t9,0xb8($sp)
/* f087b58: 1320000b */ beqz $t9,.PB0f087b88
/* f087b5c: 00000000 */ nop
/* f087b60: 0fc5c06a */ jal langGet
/* f087b64: 24045208 */ li $a0,0x5208
/* f087b68: 3c057f1b */ lui $a1,0x7f1b
/* f087b6c: 24a5bd58 */ addiu $a1,$a1,-17064
/* f087b70: 8fa400a8 */ lw $a0,0xa8($sp)
/* f087b74: 00403025 */ move $a2,$v0
/* f087b78: 0c004e1d */ jal sprintf
/* f087b7c: 27a7002c */ addiu $a3,$sp,0x2c
/* f087b80: 1000000f */ b .PB0f087bc0
/* f087b84: 8fbf0014 */ lw $ra,0x14($sp)
.PB0f087b88:
/* f087b88: 15400009 */ bnez $t2,.PB0f087bb0
/* f087b8c: 8fa400a8 */ lw $a0,0xa8($sp)
/* f087b90: 0fc5c06a */ jal langGet
/* f087b94: 25245200 */ addiu $a0,$t1,0x5200
/* f087b98: 8fa400a8 */ lw $a0,0xa8($sp)
/* f087b9c: 00402825 */ move $a1,$v0
/* f087ba0: 0c004e1d */ jal sprintf
/* f087ba4: 27a6002c */ addiu $a2,$sp,0x2c
/* f087ba8: 10000005 */ b .PB0f087bc0
/* f087bac: 8fbf0014 */ lw $ra,0x14($sp)
.PB0f087bb0:
/* f087bb0: 3c057f1b */ lui $a1,0x7f1b
/* f087bb4: 0c004e1d */ jal sprintf
/* f087bb8: 24a5bd60 */ addiu $a1,$a1,-17056
.PB0f087bbc:
/* f087bbc: 8fbf0014 */ lw $ra,0x14($sp)
.PB0f087bc0:
/* f087bc0: 27bd00a8 */ addiu $sp,$sp,0xa8
/* f087bc4: 03e00008 */ jr $ra
/* f087bc8: 00000000 */ nop
);
#endif
const char varf71ab2f8pf[] = "%s%s";
const char varf71ab300pf[] = "%s";
#if VERSION >= VERSION_JPN_FINAL
const char varf71ab304pf[] = "%s%s\n";
const char varf71ab30cpf[] = "%s\n";
#else
const char varf71ab304pf[] = "%s%s.\n";
const char varf71ab30cpf[] = "%s.\n";
#endif
// Mismatch: determiner needs to be copied into t8 for the first switch
//void func0f0878c8pf(char *dst, s32 id, bool plural, bool full, bool dual, struct nameinfo *table)
//{
// struct nameinfo *info;
// u8 *ptr;
// s32 languageid = g_LanguageId;
// u16 nametextid = 0;
// u16 determinertextid = 0;
// s32 index = 0;
// u8 buffer[100];
//
// if (languageid > LANGUAGE_PAL_ES) {
// languageid = LANGUAGE_PAL_EN;
// }
//
// *dst = '\0';
//
// info = func0f087888pf(id, table);
//
// if (info != NULL) {
// s32 determiner = info->unk08[languageid] & 0x7f;
//
// switch (info->unk08[languageid] & 0x7f) {
// case DETERMINER_SOME5:
// case DETERMINER_SOME6:
// case DETERMINER_SOME7:
// case DETERMINER_8:
// plural = true;
// break;
// }
//
// if (info->unk08[languageid] & 0x80) {
// switch (info->unk08[languageid] & 0x7f) {
// case DETERMINER_A:
// case DETERMINER_AN:
// case DETERMINER_THE:
// case DETERMINER_4:
// plural = false;
// break;
// case DETERMINER_SOME5:
// plural = true;
// break;
// }
// }
//
// if (plural) {
// if (info->pluraltext) {
// nametextid = info->pluraltext;
//
// switch (info->unk08[languageid] & 0x7f) {
// case DETERMINER_A:
// determiner = DETERMINER_SOME5;
// break;
// case DETERMINER_AN:
// determiner = DETERMINER_SOME6;
// break;
// case DETERMINER_THE:
// determiner = DETERMINER_SOME7;
// break;
// case DETERMINER_4:
// determiner = DETERMINER_8;
// break;
// }
// } else {
// nametextid = info->singulartext;
// }
// } else {
// nametextid = info->singulartext;
// }
//
// if (nametextid != 0) {
// switch (determiner) {
// case DETERMINER_A:
// determinertextid = full ? L_PROPOBJ_058 : L_PROPOBJ_057; // "A", "a"
// break;
// case DETERMINER_AN:
// determinertextid = full ? L_PROPOBJ_060 : L_PROPOBJ_059; // "An", "an"
// index = 1;
// break;
// case DETERMINER_THE:
// determinertextid = full ? L_PROPOBJ_062 : L_PROPOBJ_061; // "The", "the"
// index = 2;
// break;
// case DETERMINER_4:
// determinertextid = full ? L_PROPOBJ_064 : L_PROPOBJ_063; // "", ""
// index = 3;
// break;
// case DETERMINER_SOME5:
// determinertextid = full ? L_PROPOBJ_050 : L_PROPOBJ_049; // "Some", "some"
// index = 4;
// break;
// case DETERMINER_SOME6:
// determinertextid = full ? L_PROPOBJ_052 : L_PROPOBJ_051; // "Some", "some"
// index = 5;
// break;
// case DETERMINER_SOME7:
// determinertextid = full ? L_PROPOBJ_054 : L_PROPOBJ_053; // "Some", "some"
// index = 6;
// break;
// case DETERMINER_8:
// determinertextid = full ? L_PROPOBJ_056 : L_PROPOBJ_055; // "", ""
// index = 7;
// break;
// case DETERMINER_YOUR:
// determinertextid = full ? L_PROPOBJ_048 : L_PROPOBJ_047; // "Your", "your"
// index = 1;
// break;
// }
//
// if (!full && languageid == LANGUAGE_PAL_DE) {
// determinertextid = 0;
// }
//
// if (dual) {
// determinertextid = 0;
// }
//
// if (determinertextid) {
// sprintf(buffer, "%s%s", langGet(determinertextid), langGet(nametextid));
// } else {
// sprintf(buffer, "%s", langGet(nametextid));
// }
//
// ptr = buffer;
//
// while (*ptr != '\0') {
// if (*ptr == '\n') {
// *ptr = '\0';
// } else {
// ptr++;
// }
// }
//
// if (dual) {
// sprintf(dst, "%s%s.\n", langGet(L_PROPOBJ_008), buffer); // "Double"
// } else if (!full) {
// sprintf(dst, langGet(L_PROPOBJ_000 + index), buffer); // "Picked up %s.\n"
// } else {
// sprintf(dst, "%s.\n", buffer);
// }
// }
// }
//}
#endif
#if VERSION < VERSION_PAL_BETA
void ammotypeGetDeterminer(char *dst, s32 ammotype, s32 qty)
{
bool determiner_a = false;
bool determiner_an = false;
bool determiner_some = false;
bool determiner_the = false;
s32 playercount = PLAYERCOUNT();
s32 full = playercount <= 2
&& !(playercount == 2 && (optionsGetScreenSplit() == SCREENSPLIT_VERTICAL || IS4MB()));
switch (ammotype) {
case AMMOTYPE_CLOAK:
determiner_a = true;
break;
case AMMOTYPE_PISTOL:
case AMMOTYPE_SMG:
case AMMOTYPE_RIFLE:
case AMMOTYPE_SEDATIVE:
case AMMOTYPE_PSYCHOSIS:
case AMMOTYPE_PLASTIQUE:
determiner_some = true;
break;
case AMMOTYPE_CROSSBOW:
case AMMOTYPE_SHOTGUN:
case AMMOTYPE_GRENADE:
case AMMOTYPE_ROCKET:
case AMMOTYPE_KNIFE:
case AMMOTYPE_MAGNUM:
case AMMOTYPE_DEVASTATOR:
case AMMOTYPE_REMOTE_MINE:
case AMMOTYPE_PROXY_MINE:
case AMMOTYPE_TIMED_MINE:
case AMMOTYPE_REAPER:
case AMMOTYPE_HOMINGROCKET:
case AMMOTYPE_DART:
case AMMOTYPE_BOOST:
case AMMOTYPE_BUG:
case AMMOTYPE_MICROCAMERA:
if (qty == 1) {
determiner_a = true;
} else {
determiner_some = true;
}
break;
case AMMOTYPE_FARSIGHT:
case AMMOTYPE_NBOMB:
case AMMOTYPE_ECM_MINE:
if (qty == 1) {
determiner_an = true;
} else {
determiner_some = true;
}
break;
case AMMOTYPE_TOKEN:
if (qty == 1) {
determiner_the = true;
} else {
determiner_some = true;
}
break;
}
if (determiner_a) {
if (full) {
strcat(dst, langGet(L_PROPOBJ_004)); // "a"
} else {
strcat(dst, langGet(L_PROPOBJ_005)); // "A"
}
}
if (determiner_an) {
if (full) {
strcat(dst, langGet(L_PROPOBJ_006)); // "an"
} else {
strcat(dst, langGet(L_PROPOBJ_007)); // "An"
}
}
if (determiner_some) {
if (full) {
strcat(dst, langGet(L_PROPOBJ_002)); // "some"
} else {
strcat(dst, langGet(L_PROPOBJ_003)); // "Some"
}
}
if (determiner_the) {
if (full) {
strcat(dst, langGet(L_PROPOBJ_008)); // "the"
} else {
strcat(dst, langGet(L_PROPOBJ_009)); // "The"
}
}
}
#endif
#if VERSION < VERSION_PAL_BETA
GLOBAL_ASM(
glabel ammotypeGetPickupName
.late_rodata
glabel var7f1aabd4
.word ammotypeGetPickupName+0xd8 # f0879f4
glabel var7f1aabd8
.word ammotypeGetPickupName+0x184 # f087aa0
glabel var7f1aabdc
.word ammotypeGetPickupName+0xe0 # f0879fc
glabel var7f1aabe0
.word ammotypeGetPickupName+0xe8 # f087a04
glabel var7f1aabe4
.word ammotypeGetPickupName+0xf0 # f087a0c
glabel var7f1aabe8
.word ammotypeGetPickupName+0xf8 # f087a14
glabel var7f1aabec
.word ammotypeGetPickupName+0x184 # f087aa0
glabel var7f1aabf0
.word ammotypeGetPickupName+0x100 # f087a1c
glabel var7f1aabf4
.word ammotypeGetPickupName+0x108 # f087a24
glabel var7f1aabf8
.word ammotypeGetPickupName+0x110 # f087a2c
glabel var7f1aabfc
.word ammotypeGetPickupName+0x118 # f087a34
glabel var7f1aac00
.word ammotypeGetPickupName+0x120 # f087a3c
glabel var7f1aac04
.word ammotypeGetPickupName+0x128 # f087a44
glabel var7f1aac08
.word ammotypeGetPickupName+0x130 # f087a4c
glabel var7f1aac0c
.word ammotypeGetPickupName+0x138 # f087a54
glabel var7f1aac10
.word ammotypeGetPickupName+0x140 # f087a5c
glabel var7f1aac14
.word ammotypeGetPickupName+0x148 # f087a64
glabel var7f1aac18
.word ammotypeGetPickupName+0x178 # f087a94
glabel var7f1aac1c
.word ammotypeGetPickupName+0x180 # f087a9c
glabel var7f1aac20
.word ammotypeGetPickupName+0x150 # f087a6c
glabel var7f1aac24
.word ammotypeGetPickupName+0x184 # f087aa0
glabel var7f1aac28
.word ammotypeGetPickupName+0x158 # f087a74
glabel var7f1aac2c
.word ammotypeGetPickupName+0x160 # f087a7c
glabel var7f1aac30
.word ammotypeGetPickupName+0x170 # f087a8c
glabel var7f1aac34
.word ammotypeGetPickupName+0x184 # f087aa0
glabel var7f1aac38
.word ammotypeGetPickupName+0x184 # f087aa0
glabel var7f1aac3c
.word ammotypeGetPickupName+0x184 # f087aa0
glabel var7f1aac40
.word ammotypeGetPickupName+0x168 # f087a84
.text
/* f08791c: 27bdffe8 */ addiu $sp,$sp,-24
/* f087920: 24010001 */ addiu $at,$zero,0x1
/* f087924: afbf0014 */ sw $ra,0x14($sp)
/* f087928: afa40018 */ sw $a0,0x18($sp)
/* f08792c: afa60020 */ sw $a2,0x20($sp)
/* f087930: 10a10006 */ beq $a1,$at,.L0f08794c
/* f087934: 00a03825 */ or $a3,$a1,$zero
/* f087938: 24010002 */ addiu $at,$zero,0x2
/* f08793c: 10a10003 */ beq $a1,$at,.L0f08794c
/* f087940: 24010004 */ addiu $at,$zero,0x4
/* f087944: 54a10009 */ bnel $a1,$at,.L0f08796c
/* f087948: 24010009 */ addiu $at,$zero,0x9
.L0f08794c:
/* f08794c: 0fc5b9f1 */ jal langGet
/* f087950: 2404520a */ addiu $a0,$zero,0x520a
/* f087954: 8fa40018 */ lw $a0,0x18($sp)
/* f087958: 0c004c89 */ jal strcat
/* f08795c: 00402825 */ or $a1,$v0,$zero
/* f087960: 10000067 */ b .L0f087b00
/* f087964: 8fbf0014 */ lw $ra,0x14($sp)
/* f087968: 24010009 */ addiu $at,$zero,0x9
.L0f08796c:
/* f08796c: 14e10018 */ bne $a3,$at,.L0f0879d0
/* f087970: 24effffd */ addiu $t7,$a3,-3
/* f087974: 0fc5b9f1 */ jal langGet
/* f087978: 24045215 */ addiu $a0,$zero,0x5215
/* f08797c: 8fa40018 */ lw $a0,0x18($sp)
/* f087980: 0c004c89 */ jal strcat
/* f087984: 00402825 */ or $a1,$v0,$zero
/* f087988: 8fae0020 */ lw $t6,0x20($sp)
/* f08798c: 24010001 */ addiu $at,$zero,0x1
/* f087990: 15c10008 */ bne $t6,$at,.L0f0879b4
/* f087994: 00000000 */ nop
/* f087998: 0fc5b9f1 */ jal langGet
/* f08799c: 24045216 */ addiu $a0,$zero,0x5216
/* f0879a0: 8fa40018 */ lw $a0,0x18($sp)
/* f0879a4: 0c004c89 */ jal strcat
/* f0879a8: 00402825 */ or $a1,$v0,$zero
/* f0879ac: 10000054 */ b .L0f087b00
/* f0879b0: 8fbf0014 */ lw $ra,0x14($sp)
.L0f0879b4:
/* f0879b4: 0fc5b9f1 */ jal langGet
/* f0879b8: 24045217 */ addiu $a0,$zero,0x5217
/* f0879bc: 8fa40018 */ lw $a0,0x18($sp)
/* f0879c0: 0c004c89 */ jal strcat
/* f0879c4: 00402825 */ or $a1,$v0,$zero
/* f0879c8: 1000004d */ b .L0f087b00
/* f0879cc: 8fbf0014 */ lw $ra,0x14($sp)
.L0f0879d0:
/* f0879d0: 2de1001c */ sltiu $at,$t7,0x1c
/* f0879d4: 10200032 */ beqz $at,.L0f087aa0
/* f0879d8: 2404ffff */ addiu $a0,$zero,-1
/* f0879dc: 000f7880 */ sll $t7,$t7,0x2
/* f0879e0: 3c017f1b */ lui $at,%hi(var7f1aabd4)
/* f0879e4: 002f0821 */ addu $at,$at,$t7
/* f0879e8: 8c2fabd4 */ lw $t7,%lo(var7f1aabd4)($at)
/* f0879ec: 01e00008 */ jr $t7
/* f0879f0: 00000000 */ nop
/* f0879f4: 1000002a */ b .L0f087aa0
/* f0879f8: 2404522d */ addiu $a0,$zero,0x522d
/* f0879fc: 10000028 */ b .L0f087aa0
/* f087a00: 2404520b */ addiu $a0,$zero,0x520b
/* f087a04: 10000026 */ b .L0f087aa0
/* f087a08: 2404522e */ addiu $a0,$zero,0x522e
/* f087a0c: 10000024 */ b .L0f087aa0
/* f087a10: 2404520e */ addiu $a0,$zero,0x520e
/* f087a14: 10000022 */ b .L0f087aa0
/* f087a18: 24045210 */ addiu $a0,$zero,0x5210
/* f087a1c: 10000020 */ b .L0f087aa0
/* f087a20: 2404520c */ addiu $a0,$zero,0x520c
/* f087a24: 1000001e */ b .L0f087aa0
/* f087a28: 2404520f */ addiu $a0,$zero,0x520f
/* f087a2c: 1000001c */ b .L0f087aa0
/* f087a30: 24045212 */ addiu $a0,$zero,0x5212
/* f087a34: 1000001a */ b .L0f087aa0
/* f087a38: 24045213 */ addiu $a0,$zero,0x5213
/* f087a3c: 10000018 */ b .L0f087aa0
/* f087a40: 24045214 */ addiu $a0,$zero,0x5214
/* f087a44: 10000016 */ b .L0f087aa0
/* f087a48: 2404522f */ addiu $a0,$zero,0x522f
/* f087a4c: 10000014 */ b .L0f087aa0
/* f087a50: 24045211 */ addiu $a0,$zero,0x5211
/* f087a54: 10000012 */ b .L0f087aa0
/* f087a58: 24045219 */ addiu $a0,$zero,0x5219
/* f087a5c: 10000010 */ b .L0f087aa0
/* f087a60: 2404521a */ addiu $a0,$zero,0x521a
/* f087a64: 1000000e */ b .L0f087aa0
/* f087a68: 2404521b */ addiu $a0,$zero,0x521b
/* f087a6c: 1000000c */ b .L0f087aa0
/* f087a70: 2404521b */ addiu $a0,$zero,0x521b
/* f087a74: 1000000a */ b .L0f087aa0
/* f087a78: 24045223 */ addiu $a0,$zero,0x5223
/* f087a7c: 10000008 */ b .L0f087aa0
/* f087a80: 24045224 */ addiu $a0,$zero,0x5224
/* f087a84: 10000006 */ b .L0f087aa0
/* f087a88: 24045226 */ addiu $a0,$zero,0x5226
/* f087a8c: 10000004 */ b .L0f087aa0
/* f087a90: 24045227 */ addiu $a0,$zero,0x5227
/* f087a94: 10000002 */ b .L0f087aa0
/* f087a98: 24045230 */ addiu $a0,$zero,0x5230
/* f087a9c: 24045231 */ addiu $a0,$zero,0x5231
.L0f087aa0:
/* f087aa0: 04820008 */ bltzl $a0,.L0f087ac4
/* f087aa4: 8fb80020 */ lw $t8,0x20($sp)
/* f087aa8: 0fc5b9f1 */ jal langGet
/* f087aac: afa7001c */ sw $a3,0x1c($sp)
/* f087ab0: 8fa40018 */ lw $a0,0x18($sp)
/* f087ab4: 0c004c89 */ jal strcat
/* f087ab8: 00402825 */ or $a1,$v0,$zero
/* f087abc: 8fa7001c */ lw $a3,0x1c($sp)
/* f087ac0: 8fb80020 */ lw $t8,0x20($sp)
.L0f087ac4:
/* f087ac4: 2b010002 */ slti $at,$t8,0x2
/* f087ac8: 1420000c */ bnez $at,.L0f087afc
/* f087acc: 2401000f */ addiu $at,$zero,0xf
/* f087ad0: 10e1000a */ beq $a3,$at,.L0f087afc
/* f087ad4: 24010013 */ addiu $at,$zero,0x13
/* f087ad8: 10e10008 */ beq $a3,$at,.L0f087afc
/* f087adc: 24010014 */ addiu $at,$zero,0x14
/* f087ae0: 50e10007 */ beql $a3,$at,.L0f087b00
/* f087ae4: 8fbf0014 */ lw $ra,0x14($sp)
/* f087ae8: 0fc5b9f1 */ jal langGet
/* f087aec: 24045218 */ addiu $a0,$zero,0x5218
/* f087af0: 8fa40018 */ lw $a0,0x18($sp)
/* f087af4: 0c004c89 */ jal strcat
/* f087af8: 00402825 */ or $a1,$v0,$zero
.L0f087afc:
/* f087afc: 8fbf0014 */ lw $ra,0x14($sp)
.L0f087b00:
/* f087b00: 27bd0018 */ addiu $sp,$sp,0x18
/* f087b04: 03e00008 */ jr $ra
/* f087b08: 00000000 */ nop
);
// Mismatch because goal stores text_id in a0 while the below uses stack.
//void ammotypeGetPickupName(char *dst, s32 ammotype, s32 qty)
//{
// s32 text_id;
//
// switch (ammotype) {
// case AMMOTYPE_PISTOL:
// case AMMOTYPE_SMG:
// case AMMOTYPE_RIFLE:
// strcat(dst, langGet(L_PROPOBJ_010)); // "ammo"
// return;
// }
//
// if (ammotype == AMMOTYPE_KNIFE) {
// strcat(dst, langGet(L_PROPOBJ_021)); // "combat"
//
// if (qty == 1) {
// strcat(dst, langGet(L_PROPOBJ_022)); // "knife"
// } else {
// strcat(dst, langGet(L_PROPOBJ_023)); // "knives"
// }
//
// return;
// }
//
// text_id = -1;
//
// switch (ammotype) {
// case AMMOTYPE_CROSSBOW: text_id = L_PROPOBJ_045; break; // "bolt"
// case AMMOTYPE_SHOTGUN: text_id = L_PROPOBJ_011; break; // "cartridge"
// case AMMOTYPE_FARSIGHT: text_id = L_PROPOBJ_046; break; // "orb"
// case AMMOTYPE_GRENADE: text_id = L_PROPOBJ_014; break; // "grenade"
// case AMMOTYPE_ROCKET: text_id = L_PROPOBJ_016; break; // "rocket"
// case AMMOTYPE_MAGNUM: text_id = L_PROPOBJ_012; break; // "magnum bullet"
// case AMMOTYPE_DEVASTATOR: text_id = L_PROPOBJ_015; break; // "grenade round"
// case AMMOTYPE_REMOTE_MINE: text_id = L_PROPOBJ_018; break; // "remote mine"
// case AMMOTYPE_PROXY_MINE: text_id = L_PROPOBJ_019; break; // "proximity mine"
// case AMMOTYPE_TIMED_MINE: text_id = L_PROPOBJ_020; break; // "timed mine"
// case AMMOTYPE_REAPER: text_id = L_PROPOBJ_047; break; // "Reaper ammo"
// case AMMOTYPE_HOMINGROCKET: text_id = L_PROPOBJ_017; break; // "homing rocket"
// case AMMOTYPE_DART: text_id = L_PROPOBJ_025; break; // "dart"
// case AMMOTYPE_NBOMB: text_id = L_PROPOBJ_026; break; // "N-Bomb"
// case AMMOTYPE_SEDATIVE: text_id = L_PROPOBJ_027; break; // "sedatives"
// case AMMOTYPE_PSYCHOSIS: text_id = L_PROPOBJ_027; break; // "sedatives"
// case AMMOTYPE_BUG: text_id = L_PROPOBJ_035; break; // "bug"
// case AMMOTYPE_MICROCAMERA: text_id = L_PROPOBJ_036; break; // "micro camera"
// case AMMOTYPE_TOKEN: text_id = L_PROPOBJ_038; break; // "token"
// case AMMOTYPE_PLASTIQUE: text_id = L_PROPOBJ_039; break; // "plastique"
// case AMMOTYPE_CLOAK: text_id = L_PROPOBJ_048; break; // "cloaking device"
// case AMMOTYPE_BOOST: text_id = L_PROPOBJ_049; break; // "boost pill"
// }
//
// if (text_id >= 0) {
// strcat(dst, langGet(text_id));
// }
//
// if (qty >= 2
// && ammotype != AMMOTYPE_REAPER
// && ammotype != AMMOTYPE_SEDATIVE
// && ammotype != AMMOTYPE_CLOAK) {
// strcat(dst, langGet(L_PROPOBJ_024)); // "s"
// }
//}
#endif
void ammotypePlayPickupSound(u32 ammotype)
{
switch (ammotype) {
case AMMOTYPE_PISTOL:
case AMMOTYPE_SMG:
case AMMOTYPE_RIFLE:
case AMMOTYPE_SHOTGUN:
case AMMOTYPE_GRENADE:
case AMMOTYPE_ROCKET:
case AMMOTYPE_MAGNUM:
case AMMOTYPE_DEVASTATOR:
case AMMOTYPE_REAPER:
case AMMOTYPE_HOMINGROCKET:
case AMMOTYPE_DART:
case AMMOTYPE_NBOMB:
case AMMOTYPE_SEDATIVE:
case AMMOTYPE_CLOAK:
case AMMOTYPE_BOOST:
case AMMOTYPE_TOKEN:
sndStart(var80095200, SFX_PICKUP_AMMO, NULL, -1, -1, -1, -1, -1);
break;
case AMMOTYPE_REMOTE_MINE:
case AMMOTYPE_PROXY_MINE:
case AMMOTYPE_TIMED_MINE:
case AMMOTYPE_BUG:
case AMMOTYPE_MICROCAMERA:
case AMMOTYPE_PLASTIQUE:
case AMMOTYPE_ECM_MINE:
sndStart(var80095200, SFX_PICKUP_MINE, NULL, -1, -1, -1, -1, -1);
break;
case AMMOTYPE_KNIFE:
sndStart(var80095200, SFX_PICKUP_KNIFE, NULL, -1, -1, -1, -1, -1);
break;
}
}
s32 propPlayPickupSound(struct prop *prop, s32 weapon)
{
s16 sound;
if (weapon == WEAPON_COMBATKNIFE || weapon == WEAPON_COMBATKNIFE) {
sound = SFX_PICKUP_KNIFE;
} else if (weapon == WEAPON_REMOTEMINE
|| weapon == WEAPON_PROXIMITYMINE
|| weapon == WEAPON_TIMEDMINE
|| weapon == WEAPON_COMMSRIDER
|| weapon == WEAPON_TRACERBUG
|| weapon == WEAPON_TARGETAMPLIFIER
|| weapon == WEAPON_ECMMINE) {
sound = SFX_PICKUP_MINE;
} else if (weapon == WEAPON_GRENADE
|| weapon == WEAPON_GRENADEROUND
|| weapon == WEAPON_ROCKET
|| weapon == WEAPON_HOMINGROCKET) {
sound = SFX_PICKUP_AMMO;
} else if (weapon == WEAPON_LASER) {
sound = SFX_PICKUP_LASER;
} else {
sound = SFX_PICKUP_GUN;
}
return propsnd0f0939f8(NULL, prop, sound, -1,
-1, 1024, 0, 0, 0, -1, 0, -1, -1, -1, -1);
}
void weaponPlayPickupSound(s32 weaponnum)
{
s32 sound;
if (weaponnum == WEAPON_COMBATKNIFE || weaponnum == WEAPON_COMBATKNIFE) {
sound = SFX_PICKUP_KNIFE;
} else if (weaponnum == WEAPON_REMOTEMINE
|| weaponnum == WEAPON_PROXIMITYMINE
|| weaponnum == WEAPON_TIMEDMINE
|| weaponnum == WEAPON_TRACERBUG
|| weaponnum == WEAPON_TARGETAMPLIFIER
|| weaponnum == WEAPON_COMMSRIDER
|| weaponnum == WEAPON_ECMMINE) {
sound = SFX_PICKUP_MINE;
} else if (weaponnum == WEAPON_GRENADE
|| weaponnum == WEAPON_GRENADEROUND
|| weaponnum == WEAPON_ROCKET
|| weaponnum == WEAPON_HOMINGROCKET) {
sound = SFX_PICKUP_AMMO;
} else if (weaponnum == WEAPON_LASER) {
sound = SFX_PICKUP_LASER;
} else if (weaponnum == WEAPON_BOLT) {
sound = SFX_PICKUP_GUN;
} else if (weaponnum == WEAPON_EYESPY) {
sound = SFX_PICKUP_KEYCARD;
} else if (weaponnum > WEAPON_PSYCHOSISGUN) {
sound = SFX_PICKUP_KEYCARD;
} else {
sound = SFX_PICKUP_GUN;
}
sndStart(var80095200, sound, NULL, -1, -1, -1, -1, -1);
}
void ammotypeGetPickupMessage(char *dst, s32 ammotype, s32 qty)
{
s32 playercount = PLAYERCOUNT();
s32 full = playercount <= 2
&& !(playercount == 2 && (optionsGetScreenSplit() == SCREENSPLIT_VERTICAL || IS4MB()));
*dst = '\0';
#if VERSION >= VERSION_JPN_FINAL
if (ammotype == AMMOTYPE_PISTOL || ammotype == AMMOTYPE_SMG || ammotype == AMMOTYPE_RIFLE) {
ammotype = 999;
}
func0f0878c8pf(dst, ammotype, qty > 1, !full, 0, var8006a944pf);
#elif VERSION >= VERSION_PAL_BETA
if (g_Jpn) {
strcat(dst, "\n");
} else {
if (ammotype == AMMOTYPE_PISTOL || ammotype == AMMOTYPE_SMG || ammotype == AMMOTYPE_RIFLE) {
ammotype = 999;
}
func0f0878c8pf(dst, ammotype, qty > 1, !full, 0, var8006a944pf);
}
#else
if (g_Jpn) {
ammotypeGetPickupName(dst, ammotype, qty);
if (full) {
ammotypeGetPickedUpText(dst);
}
strcat(dst, "\n");
} else {
if (full) {
ammotypeGetPickedUpText(dst); // "Picked up"
}
ammotypeGetDeterminer(dst, ammotype, qty); // "a", "an", "some" or "the"
ammotypeGetPickupName(dst, ammotype, qty); // name of ammo type
strcat(dst, ".\n");
}
#endif
}
void currentPlayerQueuePickupAmmoHudmsg(s32 ammotype, s32 pickupqty)
{
char buffer[100] = "";
ammotypeGetPickupMessage(buffer, ammotype, pickupqty);
hudmsgCreateWithFlags(buffer, HUDMSGTYPE_DEFAULT, HUDMSGFLAG_ONLYIFALIVE);
}
void ammoHandlePickup(s32 ammotype, s32 quantity, bool withsound, bool withhudmsg)
{
s32 weapon;
if (quantity > 0) {
if (bgunGetReservedAmmoCount(ammotype) < bgunGetCapacityByAmmotype(ammotype)) {
bgunSetAmmoQuantity(ammotype, bgunGetReservedAmmoCount(ammotype) + quantity);
if (withhudmsg) {
currentPlayerQueuePickupAmmoHudmsg(ammotype, quantity);
}
}
if (withsound) {
ammotypePlayPickupSound(ammotype);
}
if (ammotype == AMMOTYPE_GRENADE) {
weapon = WEAPON_GRENADE;
} else if (ammotype == AMMOTYPE_REMOTE_MINE) {
weapon = WEAPON_REMOTEMINE;
} else if (ammotype == AMMOTYPE_PROXY_MINE) {
weapon = WEAPON_PROXIMITYMINE;
} else if (ammotype == AMMOTYPE_TIMED_MINE) {
weapon = WEAPON_TIMEDMINE;
} else if (ammotype == AMMOTYPE_NBOMB) {
weapon = WEAPON_NBOMB;
} else if (ammotype == AMMOTYPE_KNIFE) {
weapon = WEAPON_COMBATKNIFE;
} else if (ammotype == AMMOTYPE_ECM_MINE) {
weapon = WEAPON_ECMMINE;
} else if (ammotype == AMMOTYPE_TOKEN) {
weapon = WEAPON_BRIEFCASE2;
} else if (ammotype == AMMOTYPE_CLOAK) {
weapon = WEAPON_CLOAKINGDEVICE;
} else if (ammotype == AMMOTYPE_BOOST) {
weapon = WEAPON_COMBATBOOST;
} else {
weapon = -1;
}
if (weapon >= 0) {
invGiveSingleWeapon(weapon);
}
}
}
s32 ammocrateGetPickupAmmoQty(struct ammocrateobj *crate)
{
s32 qty = 1;
switch (crate->ammotype) {
case AMMOTYPE_PISTOL : qty = 10; break;
case AMMOTYPE_SMG : qty = 10; break;
case AMMOTYPE_CROSSBOW : qty = 10; break;
case AMMOTYPE_RIFLE : qty = 10; break;
case AMMOTYPE_SHOTGUN : qty = 5; break;
case AMMOTYPE_MAGNUM : qty = 5; break;
case AMMOTYPE_REAPER : qty = 200; break;
case AMMOTYPE_DART : qty = 4; break;
case AMMOTYPE_CLOAK : qty = TICKS(1200); break;
case AMMOTYPE_SEDATIVE : qty = 16; break;
case AMMOTYPE_BOOST : qty = 1; break;
}
if (qty > 1 && !g_Vars.normmplayerisrunning) {
qty *= g_AmmoMultiplier;
}
return qty;
}
s32 weaponGetPickupAmmoQty(struct weaponobj *weapon)
{
s32 ammotype;
s32 qty = 1;
if (!weapon) {
return 20;
}
ammotype = bgunGetAmmoTypeForWeapon(weapon->weaponnum, 0);
if (weapon->weaponnum == WEAPON_COMBATKNIFE || weapon->weaponnum == WEAPON_BOLT) {
return 1;
}
if (weapon->base.flags & OBJFLAG_WEAPON_40000000) {
return 0;
}
if (g_Vars.normmplayerisrunning) {
switch (ammotype) {
case AMMOTYPE_PISTOL: qty = 10; break;
case AMMOTYPE_SMG: qty = 20; break;
case AMMOTYPE_CROSSBOW: qty = 5; break;
case AMMOTYPE_RIFLE: qty = 20; break;
case AMMOTYPE_SHOTGUN: qty = 10; break;
case AMMOTYPE_FARSIGHT: qty = 4; break;
case AMMOTYPE_MAGNUM: qty = 10; break;
case AMMOTYPE_DEVASTATOR: qty = 3; break;
case AMMOTYPE_REAPER: qty = 200; break;
case AMMOTYPE_DART: qty = 10; break;
case AMMOTYPE_CLOAK: qty = TICKS(1200); break;
case AMMOTYPE_SEDATIVE: qty = 16; break;
case AMMOTYPE_BOOST: qty = 1; break;
}
} else {
switch (ammotype) {
case AMMOTYPE_PISTOL: qty = 10; break;
case AMMOTYPE_SMG: qty = 10; break;
case AMMOTYPE_CROSSBOW: qty = 5; break;
case AMMOTYPE_RIFLE: qty = 10; break;
case AMMOTYPE_SHOTGUN: qty = 5; break;
case AMMOTYPE_FARSIGHT: qty = 4; break;
case AMMOTYPE_MAGNUM: qty = 5; break;
case AMMOTYPE_DEVASTATOR: qty = 3; break;
case AMMOTYPE_REAPER: qty = 100; break;
case AMMOTYPE_DART: qty = 4; break;
case AMMOTYPE_CLOAK: qty = TICKS(1200); break;
case AMMOTYPE_BOOST: qty = 2; break;
case AMMOTYPE_SEDATIVE: qty = 16; break;
}
if (qty > 1) {
qty *= g_AmmoMultiplier;
}
}
return qty;
}
void weaponGetPickupText(char *buffer, s32 weaponnum, bool dual)
{
#if VERSION >= VERSION_PAL_BETA
// PAL changes the implementation of this function to use a lookup table,
// with some fake weaponnums for the different eyespy types.
s32 playercount = PLAYERCOUNT();
s32 full = playercount <= 2
&& !(playercount == 2 && (optionsGetScreenSplit() == SCREENSPLIT_VERTICAL || IS4MB()));
if (weaponnum == WEAPON_EYESPY) {
if (stageGetIndex(g_Vars.stagenum) == STAGEINDEX_AIRBASE) {
weaponnum = 998;
} else if (stageGetIndex(g_Vars.stagenum) == STAGEINDEX_MBR
|| stageGetIndex(g_Vars.stagenum) == STAGEINDEX_CHICAGO) {
weaponnum = 997;
}
}
func0f0878c8pf(buffer, weaponnum, 0, !full, dual, var8006aa94pf);
#else
s32 playercount = PLAYERCOUNT();
s32 full = playercount <= 2
&& !(playercount == 2 && (optionsGetScreenSplit() == SCREENSPLIT_VERTICAL || IS4MB()));
s32 textid;
bool plural = false;
if (dual) {
strcat(buffer, langGet(L_PROPOBJ_001)); // "Double"
} else {
if (!g_Jpn) {
if (full) {
strcat(buffer, langGet(L_PROPOBJ_000)); // "Picked up"
if (weaponnum == WEAPON_EYESPY && g_Vars.currentplayer->eyespy) {
textid = L_PROPOBJ_050; // "your"
} else if (weaponHasFlag(weaponnum, WEAPONFLAG_DETERMINER_F_SOME)) {
textid = L_PROPOBJ_002; // "some"
} else if (weaponHasFlag(weaponnum, WEAPONFLAG_DETERMINER_F_AN)) {
textid = L_PROPOBJ_006; // "an"
} else if (weaponHasFlag(weaponnum, WEAPONFLAG_DETERMINER_F_THE)) {
textid = L_PROPOBJ_008; // "the"
} else {
textid = L_PROPOBJ_004; // "a"
}
strcat(buffer, langGet(textid));
} else {
if (weaponnum == WEAPON_EYESPY && g_Vars.currentplayer->eyespy) {
textid = L_PROPOBJ_051; // "Your"
} else if (weaponHasFlag(weaponnum, WEAPONFLAG_DETERMINER_S_SOME)) {
textid = L_PROPOBJ_003; // "Some"
} else if (weaponHasFlag(weaponnum, WEAPONFLAG_DETERMINER_S_AN)) {
textid = L_PROPOBJ_007; // "An"
} else if (weaponHasFlag(weaponnum, WEAPONFLAG_DETERMINER_S_THE)) {
textid = L_PROPOBJ_009; // "The"
} else {
textid = L_PROPOBJ_005; // "A"
}
strcat(buffer, langGet(textid));
}
}
}
if (full) {
strcat(buffer, bgunGetName(weaponnum));
plural = weaponHasFlag(weaponnum, WEAPONFLAG_DETERMINER_F_SOME);
} else {
strcat(buffer, bgunGetShortName(weaponnum));
plural = weaponHasFlag(weaponnum, WEAPONFLAG_DETERMINER_S_SOME);
}
// Note that weapon names have a line break on the end which is undesirable
// here. The code below removes them conditionally, then ends up removing
// them unconditionally anyway which is a bit wasteful.
if (plural) {
if (buffer[strlen(buffer) - 1] == '\n') {
buffer[strlen(buffer) - 1] = '\0';
}
strcat(buffer, "s");
}
// For JPN, their translation of "picked up" comes after the weapon name
if (g_Jpn && full) {
if (buffer[strlen(buffer) - 1] == '\n') {
buffer[strlen(buffer) - 1] = '\0';
}
strcat(buffer, langGet(L_PROPOBJ_000)); // "Picked up"
strcat(buffer, "\n"); // This just gets removed immediately below
}
if (buffer[strlen(buffer) - 1] == '\n') {
buffer[strlen(buffer) - 1] = '\0';
}
strcat(buffer, ".\n");
#endif
}
void currentPlayerQueuePickupWeaponHudmsg(u32 weaponnum, bool dual)
{
char buffer[100] = "";
weaponGetPickupText(buffer, weaponnum, dual);
hudmsgCreateWithFlags(buffer, HUDMSGTYPE_DEFAULT, HUDMSGFLAG_ONLYIFALIVE | HUDMSGFLAG_ALLOWDUPES);
}
const char var7f1aa140[] = "autodoorcanclose: blocking door\n\n";
#if VERSION >= VERSION_PAL_BETA
GLOBAL_ASM(
glabel propPickupByPlayer
.late_rodata
glabel var7f1aadc0
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aadc4
.word propPickupByPlayer+0x74 # f0888b4
glabel var7f1aadc8
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aadcc
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aadd0
.word propPickupByPlayer+0xf4 # f088934
glabel var7f1aadd4
.word propPickupByPlayer+0x1f4 # f088a34
glabel var7f1aadd8
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aaddc
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aade0
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aade4
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aade8
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aadec
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aadf0
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aadf4
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aadf8
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aadfc
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae00
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae04
.word propPickupByPlayer+0x134 # f088974
glabel var7f1aae08
.word propPickupByPlayer+0x590 # f088dd0
glabel var7f1aae0c
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae10
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae14
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae18
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae1c
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae20
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae24
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae28
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae2c
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae30
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae34
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae38
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae3c
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae40
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae44
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae48
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae4c
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae50
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae54
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae58
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae5c
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae60
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae64
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae68
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae6c
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae70
.word propPickupByPlayer+0x6e0 # f088f20
.text
/* f088840: 27bdff60 */ addiu $sp,$sp,-160
/* f088844: afbf0024 */ sw $ra,0x24($sp)
/* f088848: afa400a0 */ sw $a0,0xa0($sp)
/* f08884c: afa500a4 */ sw $a1,0xa4($sp)
/* f088850: 3c08800a */ lui $t0,%hi(g_Vars)
/* f088854: 8c860004 */ lw $a2,0x4($a0)
/* f088858: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
/* f08885c: 8d020284 */ lw $v0,0x284($t0)
/* f088860: afa00094 */ sw $zero,0x94($sp)
/* f088864: afa6009c */ sw $a2,0x9c($sp)
/* f088868: 8c4f00d8 */ lw $t7,0xd8($v0)
/* f08886c: 15e00005 */ bnez $t7,.L0f088884
/* f088870: 00000000 */ nop
/* f088874: 8d180034 */ lw $t8,0x34($t0)
/* f088878: 8fb9009c */ lw $t9,0x9c($sp)
/* f08887c: 57000004 */ bnezl $t8,.L0f088890
/* f088880: 93290003 */ lbu $t1,0x3($t9)
.L0f088884:
/* f088884: 100001df */ b .L0f089004
/* f088888: 00001025 */ or $v0,$zero,$zero
/* f08888c: 93290003 */ lbu $t1,0x3($t9)
.L0f088890:
/* f088890: 252afffd */ addiu $t2,$t1,-3
/* f088894: 2d41002d */ sltiu $at,$t2,0x2d
/* f088898: 102001a1 */ beqz $at,.L0f088f20
/* f08889c: 000a5080 */ sll $t2,$t2,0x2
/* f0888a0: 3c017f1b */ lui $at,%hi(var7f1aadc0)
/* f0888a4: 002a0821 */ addu $at,$at,$t2
/* f0888a8: 8c2aadc0 */ lw $t2,%lo(var7f1aadc0)($at)
/* f0888ac: 01400008 */ jr $t2
/* f0888b0: 00000000 */ nop
/* f0888b4: 8d0b04cc */ lw $t3,0x4cc($t0)
/* f0888b8: 3c048009 */ lui $a0,%hi(var80095200)
/* f0888bc: 240500e5 */ addiu $a1,$zero,0xe5
/* f0888c0: 1560000d */ bnez $t3,.L0f0888f8
/* f0888c4: 00003025 */ or $a2,$zero,$zero
/* f0888c8: 3c01bf80 */ lui $at,0xbf80
/* f0888cc: 44812000 */ mtc1 $at,$f4
/* f0888d0: 240cffff */ addiu $t4,$zero,-1
/* f0888d4: 240dffff */ addiu $t5,$zero,-1
/* f0888d8: 240effff */ addiu $t6,$zero,-1
/* f0888dc: afae001c */ sw $t6,0x1c($sp)
/* f0888e0: afad0018 */ sw $t5,0x18($sp)
/* f0888e4: afac0010 */ sw $t4,0x10($sp)
/* f0888e8: 8c845200 */ lw $a0,%lo(var80095200)($a0)
/* f0888ec: 2407ffff */ addiu $a3,$zero,-1
/* f0888f0: 0c004241 */ jal sndStart
/* f0888f4: e7a40014 */ swc1 $f4,0x14($sp)
.L0f0888f8:
/* f0888f8: 8faf00a4 */ lw $t7,0xa4($sp)
/* f0888fc: 11e0000b */ beqz $t7,.L0f08892c
/* f088900: 00000000 */ nop
/* f088904: 0fc44bfb */ jal invGetActivatedTextByObj
/* f088908: 8fa4009c */ lw $a0,0x9c($sp)
/* f08890c: 14400004 */ bnez $v0,.L0f088920
/* f088910: 00402025 */ or $a0,$v0,$zero
/* f088914: 0fc5b9f1 */ jal langGet
/* f088918: 24045228 */ addiu $a0,$zero,0x5225
/* f08891c: 00402025 */ or $a0,$v0,$zero
.L0f088920:
/* f088920: 00002825 */ or $a1,$zero,$zero
/* f088924: 0fc377e9 */ jal hudmsgCreateWithFlags
/* f088928: 24060009 */ addiu $a2,$zero,0x9
.L0f08892c:
/* f08892c: 1000019d */ b .L0f088fa4
/* f088930: 24020004 */ addiu $v0,$zero,0x4
/* f088934: 00c02025 */ or $a0,$a2,$zero
/* f088938: 0fc22067 */ jal ammocrateGetPickupAmmoQty
/* f08893c: afa6008c */ sw $a2,0x8c($sp)
/* f088940: 3c06800a */ lui $a2,%hi(g_Vars+0x4cc)
/* f088944: 8cc6a48c */ lw $a2,%lo(g_Vars+0x4cc)($a2)
/* f088948: 8fb9008c */ lw $t9,0x8c($sp)
/* f08894c: 00402825 */ or $a1,$v0,$zero
/* f088950: 2cd80001 */ sltiu $t8,$a2,0x1
/* f088954: 03003025 */ or $a2,$t8,$zero
/* f088958: 8fa700a4 */ lw $a3,0xa4($sp)
/* f08895c: 0fc2200a */ jal ammoHandlePickup
/* f088960: 8f24005c */ lw $a0,0x5c($t9)
/* f088964: 24090001 */ addiu $t1,$zero,0x1
/* f088968: afa90098 */ sw $t1,0x98($sp)
/* f08896c: 1000018d */ b .L0f088fa4
/* f088970: 24020001 */ addiu $v0,$zero,0x1
/* f088974: 00001025 */ or $v0,$zero,$zero
/* f088978: 00c01825 */ or $v1,$a2,$zero
.L0f08897c:
/* f08897c: 3c08800a */ lui $t0,%hi(g_Vars)
/* f088980: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
/* f088984: 8d0a0318 */ lw $t2,0x318($t0)
/* f088988: 9465005e */ lhu $a1,0x5e($v1)
/* f08898c: 24440001 */ addiu $a0,$v0,0x1
/* f088990: 15400009 */ bnez $t2,.L0f0889b8
/* f088994: 00003025 */ or $a2,$zero,$zero
/* f088998: 44853000 */ mtc1 $a1,$f6
/* f08899c: 3c018007 */ lui $at,%hi(g_AmmoMultiplier)
/* f0889a0: c42a995c */ lwc1 $f10,%lo(g_AmmoMultiplier)($at)
/* f0889a4: 46803220 */ cvt.s.w $f8,$f6
/* f0889a8: 460a4402 */ mul.s $f16,$f8,$f10
/* f0889ac: 4600848d */ trunc.w.s $f18,$f16
/* f0889b0: 44059000 */ mfc1 $a1,$f18
/* f0889b4: 00000000 */ nop
.L0f0889b8:
/* f0889b8: 8fa700a4 */ lw $a3,0xa4($sp)
/* f0889bc: afa30028 */ sw $v1,0x28($sp)
/* f0889c0: 0fc2200a */ jal ammoHandlePickup
/* f0889c4: afa4002c */ sw $a0,0x2c($sp)
/* f0889c8: 8fa2002c */ lw $v0,0x2c($sp)
/* f0889cc: 8fa30028 */ lw $v1,0x28($sp)
/* f0889d0: 24010013 */ addiu $at,$zero,0x13
/* f0889d4: 1441ffe9 */ bne $v0,$at,.L0f08897c
/* f0889d8: 24630004 */ addiu $v1,$v1,0x4
/* f0889dc: 3c0c800a */ lui $t4,%hi(g_Vars+0x4cc)
/* f0889e0: 8d8ca48c */ lw $t4,%lo(g_Vars+0x4cc)($t4)
/* f0889e4: 3c048009 */ lui $a0,%hi(var80095200)
/* f0889e8: 240500ea */ addiu $a1,$zero,0xea
/* f0889ec: 1580000d */ bnez $t4,.L0f088a24
/* f0889f0: 00003025 */ or $a2,$zero,$zero
/* f0889f4: 3c01bf80 */ lui $at,0xbf80
/* f0889f8: 44812000 */ mtc1 $at,$f4
/* f0889fc: 240dffff */ addiu $t5,$zero,-1
/* f088a00: 240effff */ addiu $t6,$zero,-1
/* f088a04: 240fffff */ addiu $t7,$zero,-1
/* f088a08: afaf001c */ sw $t7,0x1c($sp)
/* f088a0c: afae0018 */ sw $t6,0x18($sp)
/* f088a10: afad0010 */ sw $t5,0x10($sp)
/* f088a14: 8c845200 */ lw $a0,%lo(var80095200)($a0)
/* f088a18: 2407ffff */ addiu $a3,$zero,-1
/* f088a1c: 0c004241 */ jal sndStart
/* f088a20: e7a40014 */ swc1 $f4,0x14($sp)
.L0f088a24:
/* f088a24: 24180001 */ addiu $t8,$zero,0x1
/* f088a28: afb80098 */ sw $t8,0x98($sp)
/* f088a2c: 1000015d */ b .L0f088fa4
/* f088a30: 24020001 */ addiu $v0,$zero,0x1
/* f088a34: 8d190318 */ lw $t9,0x318($t0)
/* f088a38: afa60074 */ sw $a2,0x74($sp)
/* f088a3c: afa00070 */ sw $zero,0x70($sp)
/* f088a40: 13200022 */ beqz $t9,.L0f088acc
/* f088a44: afa00068 */ sw $zero,0x68($sp)
/* f088a48: 90c5005c */ lbu $a1,0x5c($a2)
/* f088a4c: 24010057 */ addiu $at,$zero,0x57
/* f088a50: 54a1000f */ bnel $a1,$at,.L0f088a90
/* f088a54: 24010036 */ addiu $at,$zero,0x36
/* f088a58: 8c4a00bc */ lw $t2,0xbc($v0)
/* f088a5c: 8fa500a0 */ lw $a1,0xa0($sp)
/* f088a60: 0fc61a26 */ jal scenarioPickUpBriefcase
/* f088a64: 8d440004 */ lw $a0,0x4($t2)
/* f088a68: 10400006 */ beqz $v0,.L0f088a84
/* f088a6c: 00401825 */ or $v1,$v0,$zero
/* f088a70: 8fab0074 */ lw $t3,0x74($sp)
/* f088a74: 9164005c */ lbu $a0,0x5c($t3)
/* f088a78: 0fc21f44 */ jal weaponPlayPickupSound
/* f088a7c: afa20064 */ sw $v0,0x64($sp)
/* f088a80: 8fa30064 */ lw $v1,0x64($sp)
.L0f088a84:
/* f088a84: 1000015f */ b .L0f089004
/* f088a88: 00601025 */ or $v0,$v1,$zero
/* f088a8c: 24010036 */ addiu $at,$zero,0x36
.L0f088a90:
/* f088a90: 54a1000f */ bnel $a1,$at,.L0f088ad0
/* f088a94: 8d0f04cc */ lw $t7,0x4cc($t0)
/* f088a98: 8c4c00bc */ lw $t4,0xbc($v0)
/* f088a9c: 8fa500a0 */ lw $a1,0xa0($sp)
/* f088aa0: 0fc61d04 */ jal scenarioPickUpUplink
/* f088aa4: 8d840004 */ lw $a0,0x4($t4)
/* f088aa8: 10400006 */ beqz $v0,.L0f088ac4
/* f088aac: 00401825 */ or $v1,$v0,$zero
/* f088ab0: 8fad0074 */ lw $t5,0x74($sp)
/* f088ab4: 91a4005c */ lbu $a0,0x5c($t5)
/* f088ab8: 0fc21f44 */ jal weaponPlayPickupSound
/* f088abc: afa20064 */ sw $v0,0x64($sp)
/* f088ac0: 8fa30064 */ lw $v1,0x64($sp)
.L0f088ac4:
/* f088ac4: 1000014f */ b .L0f089004
/* f088ac8: 00601025 */ or $v0,$v1,$zero
.L0f088acc:
/* f088acc: 8d0f04cc */ lw $t7,0x4cc($t0)
.L0f088ad0:
/* f088ad0: 8fae0074 */ lw $t6,0x74($sp)
/* f088ad4: 15e00007 */ bnez $t7,.L0f088af4
/* f088ad8: 91c5005c */ lbu $a1,0x5c($t6)
/* f088adc: 0fc21f44 */ jal weaponPlayPickupSound
/* f088ae0: 00a02025 */ or $a0,$a1,$zero
/* f088ae4: 8fb80074 */ lw $t8,0x74($sp)
/* f088ae8: 3c08800a */ lui $t0,%hi(g_Vars)
/* f088aec: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
/* f088af0: 9305005c */ lbu $a1,0x5c($t8)
.L0f088af4:
/* f088af4: 8fb9009c */ lw $t9,0x9c($sp)
/* f088af8: 24010056 */ addiu $at,$zero,0x56
/* f088afc: 8f290040 */ lw $t1,0x40($t9)
/* f088b00: 312a0400 */ andi $t2,$t1,0x400
/* f088b04: 11400020 */ beqz $t2,.L0f088b88
/* f088b08: 00000000 */ nop
/* f088b0c: 28a1002d */ slti $at,$a1,0x2d
/* f088b10: 50200007 */ beqzl $at,.L0f088b30
/* f088b14: 8fac00a4 */ lw $t4,0xa4($sp)
/* f088b18: 0fc4483c */ jal invGiveWeaponsByProp
/* f088b1c: 8fa400a0 */ lw $a0,0xa0($sp)
/* f088b20: 240b0001 */ addiu $t3,$zero,0x1
/* f088b24: afa20068 */ sw $v0,0x68($sp)
/* f088b28: afab0094 */ sw $t3,0x94($sp)
/* f088b2c: 8fac00a4 */ lw $t4,0xa4($sp)
.L0f088b30:
/* f088b30: 51800013 */ beqzl $t4,.L0f088b80
/* f088b34: 24180004 */ addiu $t8,$zero,0x4
/* f088b38: 0fc44bfb */ jal invGetActivatedTextByObj
/* f088b3c: 8fa4009c */ lw $a0,0x9c($sp)
/* f088b40: 10400006 */ beqz $v0,.L0f088b5c
/* f088b44: 00402025 */ or $a0,$v0,$zero
/* f088b48: 00002825 */ or $a1,$zero,$zero
/* f088b4c: 0fc377e9 */ jal hudmsgCreateWithFlags
/* f088b50: 24060009 */ addiu $a2,$zero,0x9
/* f088b54: 10000008 */ b .L0f088b78
/* f088b58: 240f0001 */ addiu $t7,$zero,0x1
.L0f088b5c:
/* f088b5c: 8fa50068 */ lw $a1,0x68($sp)
/* f088b60: 8fad0074 */ lw $t5,0x74($sp)
/* f088b64: 38ae0002 */ xori $t6,$a1,0x2
/* f088b68: 2dc50001 */ sltiu $a1,$t6,0x1
/* f088b6c: 0fc221f2 */ jal currentPlayerQueuePickupWeaponHudmsg
/* f088b70: 91a4005c */ lbu $a0,0x5c($t5)
/* f088b74: 240f0001 */ addiu $t7,$zero,0x1
.L0f088b78:
/* f088b78: afaf0070 */ sw $t7,0x70($sp)
/* f088b7c: 24180004 */ addiu $t8,$zero,0x4
.L0f088b80:
/* f088b80: 10000033 */ b .L0f088c50
/* f088b84: afb80098 */ sw $t8,0x98($sp)
.L0f088b88:
/* f088b88: 14a10011 */ bne $a1,$at,.L0f088bd0
/* f088b8c: 24190001 */ addiu $t9,$zero,0x1
/* f088b90: 8d0604cc */ lw $a2,0x4cc($t0)
/* f088b94: 24090001 */ addiu $t1,$zero,0x1
/* f088b98: afb90068 */ sw $t9,0x68($sp)
/* f088b9c: 2cca0001 */ sltiu $t2,$a2,0x1
/* f088ba0: afa90094 */ sw $t1,0x94($sp)
/* f088ba4: 01403025 */ or $a2,$t2,$zero
/* f088ba8: 24040003 */ addiu $a0,$zero,0x3
/* f088bac: 24050001 */ addiu $a1,$zero,0x1
/* f088bb0: 0fc2200a */ jal ammoHandlePickup
/* f088bb4: 24070001 */ addiu $a3,$zero,0x1
/* f088bb8: 240b0001 */ addiu $t3,$zero,0x1
/* f088bbc: 240c0001 */ addiu $t4,$zero,0x1
/* f088bc0: afab0098 */ sw $t3,0x98($sp)
/* f088bc4: afa000a4 */ sw $zero,0xa4($sp)
/* f088bc8: 10000021 */ b .L0f088c50
/* f088bcc: afac0070 */ sw $t4,0x70($sp)
.L0f088bd0:
/* f088bd0: 0fc4483c */ jal invGiveWeaponsByProp
/* f088bd4: 8fa400a0 */ lw $a0,0xa0($sp)
/* f088bd8: 10400003 */ beqz $v0,.L0f088be8
/* f088bdc: afa20068 */ sw $v0,0x68($sp)
/* f088be0: 240d0001 */ addiu $t5,$zero,0x1
/* f088be4: afad0070 */ sw $t5,0x70($sp)
.L0f088be8:
/* f088be8: 8faf00a4 */ lw $t7,0xa4($sp)
/* f088bec: 240e0001 */ addiu $t6,$zero,0x1
/* f088bf0: afae0094 */ sw $t6,0x94($sp)
/* f088bf4: 11e00014 */ beqz $t7,.L0f088c48
/* f088bf8: 8fb80074 */ lw $t8,0x74($sp)
/* f088bfc: 0fc44c0d */ jal invGetActivatedTextByWeaponNum
/* f088c00: 9304005c */ lbu $a0,0x5c($t8)
/* f088c04: 10400008 */ beqz $v0,.L0f088c28
/* f088c08: 00402025 */ or $a0,$v0,$zero
/* f088c0c: 24190001 */ addiu $t9,$zero,0x1
/* f088c10: afb90070 */ sw $t9,0x70($sp)
/* f088c14: 00002825 */ or $a1,$zero,$zero
/* f088c18: 0fc377e9 */ jal hudmsgCreateWithFlags
/* f088c1c: 24060009 */ addiu $a2,$zero,0x9
/* f088c20: 1000000a */ b .L0f088c4c
/* f088c24: 240c0001 */ addiu $t4,$zero,0x1
.L0f088c28:
/* f088c28: 8fa90070 */ lw $t1,0x70($sp)
/* f088c2c: 8fa50068 */ lw $a1,0x68($sp)
/* f088c30: 8faa0074 */ lw $t2,0x74($sp)
/* f088c34: 11200004 */ beqz $t1,.L0f088c48
/* f088c38: 38ab0002 */ xori $t3,$a1,0x2
/* f088c3c: 9144005c */ lbu $a0,0x5c($t2)
/* f088c40: 0fc221f2 */ jal currentPlayerQueuePickupWeaponHudmsg
/* f088c44: 2d650001 */ sltiu $a1,$t3,0x1
.L0f088c48:
/* f088c48: 240c0001 */ addiu $t4,$zero,0x1
.L0f088c4c:
/* f088c4c: afac0098 */ sw $t4,0x98($sp)
.L0f088c50:
/* f088c50: 8fad0068 */ lw $t5,0x68($sp)
/* f088c54: 24010002 */ addiu $at,$zero,0x2
/* f088c58: 55a10010 */ bnel $t5,$at,.L0f088c9c
/* f088c5c: 8fb90074 */ lw $t9,0x74($sp)
/* f088c60: 0fc2866a */ jal bgunGetWeaponNum
/* f088c64: 00002025 */ or $a0,$zero,$zero
/* f088c68: 8fae0074 */ lw $t6,0x74($sp)
/* f088c6c: 91cf005c */ lbu $t7,0x5c($t6)
/* f088c70: 544f000a */ bnel $v0,$t7,.L0f088c9c
/* f088c74: 8fb90074 */ lw $t9,0x74($sp)
/* f088c78: 0fc2866a */ jal bgunGetWeaponNum
/* f088c7c: 24040001 */ addiu $a0,$zero,0x1
/* f088c80: 8fb80074 */ lw $t8,0x74($sp)
/* f088c84: 9305005c */ lbu $a1,0x5c($t8)
/* f088c88: 50450004 */ beql $v0,$a1,.L0f088c9c
/* f088c8c: 8fb90074 */ lw $t9,0x74($sp)
/* f088c90: 0fc28824 */ jal bgunEquipWeapon2
/* f088c94: 24040001 */ addiu $a0,$zero,0x1
/* f088c98: 8fb90074 */ lw $t9,0x74($sp)
.L0f088c9c:
/* f088c9c: 00002825 */ or $a1,$zero,$zero
/* f088ca0: 0fc2a685 */ jal bgunGetAmmoTypeForWeapon
/* f088ca4: 9324005c */ lbu $a0,0x5c($t9)
/* f088ca8: 1040001d */ beqz $v0,.L0f088d20
/* f088cac: afa2006c */ sw $v0,0x6c($sp)
/* f088cb0: 0fc22095 */ jal weaponGetPickupAmmoQty
/* f088cb4: 8fa40074 */ lw $a0,0x74($sp)
/* f088cb8: 18400019 */ blez $v0,.L0f088d20
/* f088cbc: afa20058 */ sw $v0,0x58($sp)
/* f088cc0: 0fc2a5dc */ jal bgunGetReservedAmmoCount
/* f088cc4: 8fa4006c */ lw $a0,0x6c($sp)
/* f088cc8: 8fa4006c */ lw $a0,0x6c($sp)
/* f088ccc: 0fc2a5dc */ jal bgunGetReservedAmmoCount
/* f088cd0: afa20054 */ sw $v0,0x54($sp)
/* f088cd4: 8fa4006c */ lw $a0,0x6c($sp)
/* f088cd8: 0fc2a63d */ jal bgunGetCapacityByAmmotype
/* f088cdc: afa2003c */ sw $v0,0x3c($sp)
/* f088ce0: 8fa6003c */ lw $a2,0x3c($sp)
/* f088ce4: 8fa50054 */ lw $a1,0x54($sp)
/* f088ce8: 8fa90058 */ lw $t1,0x58($sp)
/* f088cec: 00c2082a */ slt $at,$a2,$v0
/* f088cf0: 1020000b */ beqz $at,.L0f088d20
/* f088cf4: 00a92821 */ addu $a1,$a1,$t1
/* f088cf8: 0fc2a58a */ jal bgunSetAmmoQuantity
/* f088cfc: 8fa4006c */ lw $a0,0x6c($sp)
/* f088d00: 8faa0070 */ lw $t2,0x70($sp)
/* f088d04: 8fab00a4 */ lw $t3,0xa4($sp)
/* f088d08: 55400006 */ bnezl $t2,.L0f088d24
/* f088d0c: 8fac0074 */ lw $t4,0x74($sp)
/* f088d10: 11600003 */ beqz $t3,.L0f088d20
/* f088d14: 8fa4006c */ lw $a0,0x6c($sp)
/* f088d18: 0fc21fec */ jal currentPlayerQueuePickupAmmoHudmsg
/* f088d1c: 8fa50058 */ lw $a1,0x58($sp)
.L0f088d20:
/* f088d20: 8fac0074 */ lw $t4,0x74($sp)
.L0f088d24:
/* f088d24: 24010012 */ addiu $at,$zero,0x12
/* f088d28: 918d005c */ lbu $t5,0x5c($t4)
/* f088d2c: 55a1001b */ bnel $t5,$at,.L0f088d9c
/* f088d30: 8fb80074 */ lw $t8,0x74($sp)
/* f088d34: 0fc22095 */ jal weaponGetPickupAmmoQty
/* f088d38: 01802025 */ or $a0,$t4,$zero
/* f088d3c: afa20050 */ sw $v0,0x50($sp)
/* f088d40: 0fc2a5dc */ jal bgunGetReservedAmmoCount
/* f088d44: 2404000b */ addiu $a0,$zero,0xb
/* f088d48: 2404000b */ addiu $a0,$zero,0xb
/* f088d4c: 0fc2a63d */ jal bgunGetCapacityByAmmotype
/* f088d50: afa2003c */ sw $v0,0x3c($sp)
/* f088d54: 8fa6003c */ lw $a2,0x3c($sp)
/* f088d58: 00c2082a */ slt $at,$a2,$v0
/* f088d5c: 5020000f */ beqzl $at,.L0f088d9c
/* f088d60: 8fb80074 */ lw $t8,0x74($sp)
/* f088d64: 0fc2a5dc */ jal bgunGetReservedAmmoCount
/* f088d68: 2404000b */ addiu $a0,$zero,0xb
/* f088d6c: 2404000b */ addiu $a0,$zero,0xb
/* f088d70: 0fc2a58a */ jal bgunSetAmmoQuantity
/* f088d74: 24450005 */ addiu $a1,$v0,0x5
/* f088d78: 8fae0070 */ lw $t6,0x70($sp)
/* f088d7c: 8faf00a4 */ lw $t7,0xa4($sp)
/* f088d80: 55c00006 */ bnezl $t6,.L0f088d9c
/* f088d84: 8fb80074 */ lw $t8,0x74($sp)
/* f088d88: 11e00003 */ beqz $t7,.L0f088d98
/* f088d8c: 2404000b */ addiu $a0,$zero,0xb
/* f088d90: 0fc21fec */ jal currentPlayerQueuePickupAmmoHudmsg
/* f088d94: 8fa50050 */ lw $a1,0x50($sp)
.L0f088d98:
/* f088d98: 8fb80074 */ lw $t8,0x74($sp)
.L0f088d9c:
/* f088d9c: 2401002e */ addiu $at,$zero,0x2e
/* f088da0: 3c09800a */ lui $t1,%hi(g_Vars+0x284)
/* f088da4: 9319005c */ lbu $t9,0x5c($t8)
/* f088da8: 17210007 */ bne $t9,$at,.L0f088dc8
/* f088dac: 00000000 */ nop
/* f088db0: 8d29a244 */ lw $t1,%lo(g_Vars+0x284)($t1)
/* f088db4: 8d2a0480 */ lw $t2,0x480($t1)
/* f088db8: 15400003 */ bnez $t2,.L0f088dc8
/* f088dbc: 00000000 */ nop
/* f088dc0: 0fc0458c */ jal playerInitEyespy
/* f088dc4: 00000000 */ nop
.L0f088dc8:
/* f088dc8: 10000076 */ b .L0f088fa4
/* f088dcc: 8fa20098 */ lw $v0,0x98($sp)
/* f088dd0: 0fc30884 */ jal playerSetShieldFrac
/* f088dd4: c4cc0060 */ lwc1 $f12,0x60($a2)
/* f088dd8: 3c0b800a */ lui $t3,%hi(g_Vars+0x4cc)
/* f088ddc: 8d6ba48c */ lw $t3,%lo(g_Vars+0x4cc)($t3)
/* f088de0: 3c048009 */ lui $a0,%hi(var80095200)
/* f088de4: 240501cd */ addiu $a1,$zero,0x1cd
/* f088de8: 1560000d */ bnez $t3,.L0f088e20
/* f088dec: 00003025 */ or $a2,$zero,$zero
/* f088df0: 3c01bf80 */ lui $at,0xbf80
/* f088df4: 44813000 */ mtc1 $at,$f6
/* f088df8: 240dffff */ addiu $t5,$zero,-1
/* f088dfc: 240cffff */ addiu $t4,$zero,-1
/* f088e00: 240effff */ addiu $t6,$zero,-1
/* f088e04: afae001c */ sw $t6,0x1c($sp)
/* f088e08: afac0018 */ sw $t4,0x18($sp)
/* f088e0c: afad0010 */ sw $t5,0x10($sp)
/* f088e10: 8c845200 */ lw $a0,%lo(var80095200)($a0)
/* f088e14: 2407ffff */ addiu $a3,$zero,-1
/* f088e18: 0c004241 */ jal sndStart
/* f088e1c: e7a60014 */ swc1 $f6,0x14($sp)
.L0f088e20:
/* f088e20: 8faf00a4 */ lw $t7,0xa4($sp)
/* f088e24: 51e0003b */ beqzl $t7,.L0f088f14
/* f088e28: 240e0001 */ addiu $t6,$zero,0x1
/* f088e2c: 0fc44bfb */ jal invGetActivatedTextByObj
/* f088e30: 8fa4009c */ lw $a0,0x9c($sp)
/* f088e34: 14400033 */ bnez $v0,.L0f088f04
/* f088e38: 00402025 */ or $a0,$v0,$zero
/* f088e3c: 3c18800a */ lui $t8,%hi(g_Vars+0x6c)
/* f088e40: 8f18a02c */ lw $t8,%lo(g_Vars+0x6c)($t8)
/* f088e44: 3c19800a */ lui $t9,%hi(g_Vars+0x68)
/* f088e48: 3c09800a */ lui $t1,%hi(g_Vars+0x64)
/* f088e4c: 13000003 */ beqz $t8,.L0f088e5c
/* f088e50: 3c0a800a */ lui $t2,%hi(g_Vars+0x70)
/* f088e54: 10000002 */ b .L0f088e60
/* f088e58: 24050001 */ addiu $a1,$zero,0x1
.L0f088e5c:
/* f088e5c: 00002825 */ or $a1,$zero,$zero
.L0f088e60:
/* f088e60: 8f39a028 */ lw $t9,%lo(g_Vars+0x68)($t9)
/* f088e64: 00001825 */ or $v1,$zero,$zero
/* f088e68: 00002025 */ or $a0,$zero,$zero
/* f088e6c: 13200003 */ beqz $t9,.L0f088e7c
/* f088e70: 00003025 */ or $a2,$zero,$zero
/* f088e74: 10000001 */ b .L0f088e7c
/* f088e78: 24030001 */ addiu $v1,$zero,0x1
.L0f088e7c:
/* f088e7c: 8d29a024 */ lw $t1,%lo(g_Vars+0x64)($t1)
/* f088e80: 11200003 */ beqz $t1,.L0f088e90
/* f088e84: 00000000 */ nop
/* f088e88: 10000001 */ b .L0f088e90
/* f088e8c: 24040001 */ addiu $a0,$zero,0x1
.L0f088e90:
/* f088e90: 8d4aa030 */ lw $t2,%lo(g_Vars+0x70)($t2)
/* f088e94: 11400003 */ beqz $t2,.L0f088ea4
/* f088e98: 00000000 */ nop
/* f088e9c: 10000001 */ b .L0f088ea4
/* f088ea0: 24060001 */ addiu $a2,$zero,0x1
.L0f088ea4:
/* f088ea4: 00c45821 */ addu $t3,$a2,$a0
/* f088ea8: 01636821 */ addu $t5,$t3,$v1
/* f088eac: 01a51021 */ addu $v0,$t5,$a1
/* f088eb0: 28410003 */ slti $at,$v0,0x3
/* f088eb4: 10200010 */ beqz $at,.L0f088ef8
/* f088eb8: 24010002 */ addiu $at,$zero,0x2
/* f088ebc: 1441000a */ bne $v0,$at,.L0f088ee8
/* f088ec0: 00000000 */ nop
/* f088ec4: 0fc54bcd */ jal optionsGetScreenSplit
/* f088ec8: 00000000 */ nop
/* f088ecc: 24010001 */ addiu $at,$zero,0x1
/* f088ed0: 10410009 */ beq $v0,$at,.L0f088ef8
/* f088ed4: 3c0c8009 */ lui $t4,%hi(g_Is4Mb)
/* f088ed8: 918c0af0 */ lbu $t4,%lo(g_Is4Mb)($t4)
/* f088edc: 24010001 */ addiu $at,$zero,0x1
/* f088ee0: 11810005 */ beq $t4,$at,.L0f088ef8
/* f088ee4: 00000000 */ nop
.L0f088ee8:
/* f088ee8: 0fc5b9f1 */ jal langGet
/* f088eec: 24045229 */ addiu $a0,$zero,0x5226
/* f088ef0: 10000004 */ b .L0f088f04
/* f088ef4: 00402025 */ or $a0,$v0,$zero
.L0f088ef8:
/* f088ef8: 0fc5b9f1 */ jal langGet
/* f088efc: 2404522a */ addiu $a0,$zero,0x5227
/* f088f00: 00402025 */ or $a0,$v0,$zero
.L0f088f04:
/* f088f04: 00002825 */ or $a1,$zero,$zero
/* f088f08: 0fc377e9 */ jal hudmsgCreateWithFlags
/* f088f0c: 24060001 */ addiu $a2,$zero,0x1
/* f088f10: 240e0001 */ addiu $t6,$zero,0x1
.L0f088f14:
/* f088f14: afae0098 */ sw $t6,0x98($sp)
/* f088f18: 10000022 */ b .L0f088fa4
/* f088f1c: 24020001 */ addiu $v0,$zero,0x1
.L0f088f20:
/* f088f20: 8d0f04cc */ lw $t7,0x4cc($t0)
/* f088f24: 3c048009 */ lui $a0,%hi(var80095200)
/* f088f28: 240500e5 */ addiu $a1,$zero,0xe5
/* f088f2c: 15e0000d */ bnez $t7,.L0f088f64
/* f088f30: 00003025 */ or $a2,$zero,$zero
/* f088f34: 3c01bf80 */ lui $at,0xbf80
/* f088f38: 44814000 */ mtc1 $at,$f8
/* f088f3c: 2418ffff */ addiu $t8,$zero,-1
/* f088f40: 2419ffff */ addiu $t9,$zero,-1
/* f088f44: 2409ffff */ addiu $t1,$zero,-1
/* f088f48: afa9001c */ sw $t1,0x1c($sp)
/* f088f4c: afb90018 */ sw $t9,0x18($sp)
/* f088f50: afb80010 */ sw $t8,0x10($sp)
/* f088f54: 8c845200 */ lw $a0,%lo(var80095200)($a0)
/* f088f58: 2407ffff */ addiu $a3,$zero,-1
/* f088f5c: 0c004241 */ jal sndStart
/* f088f60: e7a80014 */ swc1 $f8,0x14($sp)
.L0f088f64:
/* f088f64: 8faa00a4 */ lw $t2,0xa4($sp)
/* f088f68: 5140000c */ beqzl $t2,.L0f088f9c
/* f088f6c: 240b0004 */ addiu $t3,$zero,0x4
/* f088f70: 0fc44bfb */ jal invGetActivatedTextByObj
/* f088f74: 8fa4009c */ lw $a0,0x9c($sp)
/* f088f78: 14400004 */ bnez $v0,.L0f088f8c
/* f088f7c: 00402025 */ or $a0,$v0,$zero
/* f088f80: 0fc5b9f1 */ jal langGet
/* f088f84: 2404522b */ addiu $a0,$zero,0x5228
/* f088f88: 00402025 */ or $a0,$v0,$zero
.L0f088f8c:
/* f088f8c: 00002825 */ or $a1,$zero,$zero
/* f088f90: 0fc377e9 */ jal hudmsgCreateWithFlags
/* f088f94: 24060009 */ addiu $a2,$zero,0x9
/* f088f98: 240b0004 */ addiu $t3,$zero,0x4
.L0f088f9c:
/* f088f9c: afab0098 */ sw $t3,0x98($sp)
/* f088fa0: 24020004 */ addiu $v0,$zero,0x4
.L0f088fa4:
/* f088fa4: 24010001 */ addiu $at,$zero,0x1
/* f088fa8: 1441000d */ bne $v0,$at,.L0f088fe0
/* f088fac: 8fad009c */ lw $t5,0x9c($sp)
/* f088fb0: 8dac0040 */ lw $t4,0x40($t5)
/* f088fb4: 318e0010 */ andi $t6,$t4,0x10
/* f088fb8: 15c00009 */ bnez $t6,.L0f088fe0
/* f088fbc: 00000000 */ nop
/* f088fc0: 91a60002 */ lbu $a2,0x2($t5)
/* f088fc4: 01a02025 */ or $a0,$t5,$zero
/* f088fc8: 00002825 */ or $a1,$zero,$zero
/* f088fcc: 30cf0004 */ andi $t7,$a2,0x4
/* f088fd0: 0fc1ab4b */ jal objFree
/* f088fd4: 01e03025 */ or $a2,$t7,$zero
/* f088fd8: 1000000a */ b .L0f089004
/* f088fdc: 24020001 */ addiu $v0,$zero,0x1
.L0f088fe0:
/* f088fe0: 10400007 */ beqz $v0,.L0f089000
/* f088fe4: 8fb80094 */ lw $t8,0x94($sp)
/* f088fe8: 17000003 */ bnez $t8,.L0f088ff8
/* f088fec: 00000000 */ nop
/* f088ff0: 0fc447f3 */ jal invGiveProp
/* f088ff4: 8fa400a0 */ lw $a0,0xa0($sp)
.L0f088ff8:
/* f088ff8: 10000002 */ b .L0f089004
/* f088ffc: 24020004 */ addiu $v0,$zero,0x4
.L0f089000:
/* f089000: 00001025 */ or $v0,$zero,$zero
.L0f089004:
/* f089004: 8fbf0024 */ lw $ra,0x24($sp)
/* f089008: 27bd00a0 */ addiu $sp,$sp,0xa0
/* f08900c: 03e00008 */ jr $ra
/* f089010: 00000000 */ nop
);
#elif VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel propPickupByPlayer
.late_rodata
glabel var7f1aadc0
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aadc4
.word propPickupByPlayer+0x74 # f0888b4
glabel var7f1aadc8
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aadcc
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aadd0
.word propPickupByPlayer+0xf4 # f088934
glabel var7f1aadd4
.word propPickupByPlayer+0x1f4 # f088a34
glabel var7f1aadd8
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aaddc
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aade0
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aade4
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aade8
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aadec
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aadf0
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aadf4
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aadf8
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aadfc
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae00
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae04
.word propPickupByPlayer+0x134 # f088974
glabel var7f1aae08
.word propPickupByPlayer+0x590 # f088dd0
glabel var7f1aae0c
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae10
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae14
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae18
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae1c
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae20
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae24
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae28
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae2c
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae30
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae34
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae38
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae3c
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae40
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae44
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae48
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae4c
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae50
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae54
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae58
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae5c
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae60
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae64
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae68
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae6c
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae70
.word propPickupByPlayer+0x6e0 # f088f20
.text
/* f088840: 27bdff60 */ addiu $sp,$sp,-160
/* f088844: afbf0024 */ sw $ra,0x24($sp)
/* f088848: afa400a0 */ sw $a0,0xa0($sp)
/* f08884c: afa500a4 */ sw $a1,0xa4($sp)
/* f088850: 3c08800a */ lui $t0,%hi(g_Vars)
/* f088854: 8c860004 */ lw $a2,0x4($a0)
/* f088858: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
/* f08885c: 8d020284 */ lw $v0,0x284($t0)
/* f088860: afa00094 */ sw $zero,0x94($sp)
/* f088864: afa6009c */ sw $a2,0x9c($sp)
/* f088868: 8c4f00d8 */ lw $t7,0xd8($v0)
/* f08886c: 15e00005 */ bnez $t7,.L0f088884
/* f088870: 00000000 */ nop
/* f088874: 8d180034 */ lw $t8,0x34($t0)
/* f088878: 8fb9009c */ lw $t9,0x9c($sp)
/* f08887c: 57000004 */ bnezl $t8,.L0f088890
/* f088880: 93290003 */ lbu $t1,0x3($t9)
.L0f088884:
/* f088884: 100001df */ b .L0f089004
/* f088888: 00001025 */ or $v0,$zero,$zero
/* f08888c: 93290003 */ lbu $t1,0x3($t9)
.L0f088890:
/* f088890: 252afffd */ addiu $t2,$t1,-3
/* f088894: 2d41002d */ sltiu $at,$t2,0x2d
/* f088898: 102001a1 */ beqz $at,.L0f088f20
/* f08889c: 000a5080 */ sll $t2,$t2,0x2
/* f0888a0: 3c017f1b */ lui $at,%hi(var7f1aadc0)
/* f0888a4: 002a0821 */ addu $at,$at,$t2
/* f0888a8: 8c2aadc0 */ lw $t2,%lo(var7f1aadc0)($at)
/* f0888ac: 01400008 */ jr $t2
/* f0888b0: 00000000 */ nop
/* f0888b4: 8d0b04cc */ lw $t3,0x4cc($t0)
/* f0888b8: 3c048009 */ lui $a0,%hi(var80095200)
/* f0888bc: 240500e5 */ addiu $a1,$zero,0xe5
/* f0888c0: 1560000d */ bnez $t3,.L0f0888f8
/* f0888c4: 00003025 */ or $a2,$zero,$zero
/* f0888c8: 3c01bf80 */ lui $at,0xbf80
/* f0888cc: 44812000 */ mtc1 $at,$f4
/* f0888d0: 240cffff */ addiu $t4,$zero,-1
/* f0888d4: 240dffff */ addiu $t5,$zero,-1
/* f0888d8: 240effff */ addiu $t6,$zero,-1
/* f0888dc: afae001c */ sw $t6,0x1c($sp)
/* f0888e0: afad0018 */ sw $t5,0x18($sp)
/* f0888e4: afac0010 */ sw $t4,0x10($sp)
/* f0888e8: 8c845200 */ lw $a0,%lo(var80095200)($a0)
/* f0888ec: 2407ffff */ addiu $a3,$zero,-1
/* f0888f0: 0c004241 */ jal sndStart
/* f0888f4: e7a40014 */ swc1 $f4,0x14($sp)
.L0f0888f8:
/* f0888f8: 8faf00a4 */ lw $t7,0xa4($sp)
/* f0888fc: 11e0000b */ beqz $t7,.L0f08892c
/* f088900: 00000000 */ nop
/* f088904: 0fc44bfb */ jal invGetActivatedTextByObj
/* f088908: 8fa4009c */ lw $a0,0x9c($sp)
/* f08890c: 14400004 */ bnez $v0,.L0f088920
/* f088910: 00402025 */ or $a0,$v0,$zero
/* f088914: 0fc5b9f1 */ jal langGet
/* f088918: 24045228 */ addiu $a0,$zero,0x5228
/* f08891c: 00402025 */ or $a0,$v0,$zero
.L0f088920:
/* f088920: 00002825 */ or $a1,$zero,$zero
/* f088924: 0fc377e9 */ jal hudmsgCreateWithFlags
/* f088928: 24060009 */ addiu $a2,$zero,0x9
.L0f08892c:
/* f08892c: 1000019d */ b .L0f088fa4
/* f088930: 24020004 */ addiu $v0,$zero,0x4
/* f088934: 00c02025 */ or $a0,$a2,$zero
/* f088938: 0fc22067 */ jal ammocrateGetPickupAmmoQty
/* f08893c: afa6008c */ sw $a2,0x8c($sp)
/* f088940: 3c06800a */ lui $a2,%hi(g_Vars+0x4cc)
/* f088944: 8cc6a48c */ lw $a2,%lo(g_Vars+0x4cc)($a2)
/* f088948: 8fb9008c */ lw $t9,0x8c($sp)
/* f08894c: 00402825 */ or $a1,$v0,$zero
/* f088950: 2cd80001 */ sltiu $t8,$a2,0x1
/* f088954: 03003025 */ or $a2,$t8,$zero
/* f088958: 8fa700a4 */ lw $a3,0xa4($sp)
/* f08895c: 0fc2200a */ jal ammoHandlePickup
/* f088960: 8f24005c */ lw $a0,0x5c($t9)
/* f088964: 24090001 */ addiu $t1,$zero,0x1
/* f088968: afa90098 */ sw $t1,0x98($sp)
/* f08896c: 1000018d */ b .L0f088fa4
/* f088970: 24020001 */ addiu $v0,$zero,0x1
/* f088974: 00001025 */ or $v0,$zero,$zero
/* f088978: 00c01825 */ or $v1,$a2,$zero
.L0f08897c:
/* f08897c: 3c08800a */ lui $t0,%hi(g_Vars)
/* f088980: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
/* f088984: 8d0a0318 */ lw $t2,0x318($t0)
/* f088988: 9465005e */ lhu $a1,0x5e($v1)
/* f08898c: 24440001 */ addiu $a0,$v0,0x1
/* f088990: 15400009 */ bnez $t2,.L0f0889b8
/* f088994: 00003025 */ or $a2,$zero,$zero
/* f088998: 44853000 */ mtc1 $a1,$f6
/* f08899c: 3c018007 */ lui $at,%hi(g_AmmoMultiplier)
/* f0889a0: c42a995c */ lwc1 $f10,%lo(g_AmmoMultiplier)($at)
/* f0889a4: 46803220 */ cvt.s.w $f8,$f6
/* f0889a8: 460a4402 */ mul.s $f16,$f8,$f10
/* f0889ac: 4600848d */ trunc.w.s $f18,$f16
/* f0889b0: 44059000 */ mfc1 $a1,$f18
/* f0889b4: 00000000 */ nop
.L0f0889b8:
/* f0889b8: 8fa700a4 */ lw $a3,0xa4($sp)
/* f0889bc: afa30028 */ sw $v1,0x28($sp)
/* f0889c0: 0fc2200a */ jal ammoHandlePickup
/* f0889c4: afa4002c */ sw $a0,0x2c($sp)
/* f0889c8: 8fa2002c */ lw $v0,0x2c($sp)
/* f0889cc: 8fa30028 */ lw $v1,0x28($sp)
/* f0889d0: 24010013 */ addiu $at,$zero,0x13
/* f0889d4: 1441ffe9 */ bne $v0,$at,.L0f08897c
/* f0889d8: 24630004 */ addiu $v1,$v1,0x4
/* f0889dc: 3c0c800a */ lui $t4,%hi(g_Vars+0x4cc)
/* f0889e0: 8d8ca48c */ lw $t4,%lo(g_Vars+0x4cc)($t4)
/* f0889e4: 3c048009 */ lui $a0,%hi(var80095200)
/* f0889e8: 240500ea */ addiu $a1,$zero,0xea
/* f0889ec: 1580000d */ bnez $t4,.L0f088a24
/* f0889f0: 00003025 */ or $a2,$zero,$zero
/* f0889f4: 3c01bf80 */ lui $at,0xbf80
/* f0889f8: 44812000 */ mtc1 $at,$f4
/* f0889fc: 240dffff */ addiu $t5,$zero,-1
/* f088a00: 240effff */ addiu $t6,$zero,-1
/* f088a04: 240fffff */ addiu $t7,$zero,-1
/* f088a08: afaf001c */ sw $t7,0x1c($sp)
/* f088a0c: afae0018 */ sw $t6,0x18($sp)
/* f088a10: afad0010 */ sw $t5,0x10($sp)
/* f088a14: 8c845200 */ lw $a0,%lo(var80095200)($a0)
/* f088a18: 2407ffff */ addiu $a3,$zero,-1
/* f088a1c: 0c004241 */ jal sndStart
/* f088a20: e7a40014 */ swc1 $f4,0x14($sp)
.L0f088a24:
/* f088a24: 24180001 */ addiu $t8,$zero,0x1
/* f088a28: afb80098 */ sw $t8,0x98($sp)
/* f088a2c: 1000015d */ b .L0f088fa4
/* f088a30: 24020001 */ addiu $v0,$zero,0x1
/* f088a34: 8d190318 */ lw $t9,0x318($t0)
/* f088a38: afa60074 */ sw $a2,0x74($sp)
/* f088a3c: afa00070 */ sw $zero,0x70($sp)
/* f088a40: 13200022 */ beqz $t9,.L0f088acc
/* f088a44: afa00068 */ sw $zero,0x68($sp)
/* f088a48: 90c5005c */ lbu $a1,0x5c($a2)
/* f088a4c: 24010057 */ addiu $at,$zero,0x57
/* f088a50: 54a1000f */ bnel $a1,$at,.L0f088a90
/* f088a54: 24010036 */ addiu $at,$zero,0x36
/* f088a58: 8c4a00bc */ lw $t2,0xbc($v0)
/* f088a5c: 8fa500a0 */ lw $a1,0xa0($sp)
/* f088a60: 0fc61a26 */ jal scenarioPickUpBriefcase
/* f088a64: 8d440004 */ lw $a0,0x4($t2)
/* f088a68: 10400006 */ beqz $v0,.L0f088a84
/* f088a6c: 00401825 */ or $v1,$v0,$zero
/* f088a70: 8fab0074 */ lw $t3,0x74($sp)
/* f088a74: 9164005c */ lbu $a0,0x5c($t3)
/* f088a78: 0fc21f44 */ jal weaponPlayPickupSound
/* f088a7c: afa20064 */ sw $v0,0x64($sp)
/* f088a80: 8fa30064 */ lw $v1,0x64($sp)
.L0f088a84:
/* f088a84: 1000015f */ b .L0f089004
/* f088a88: 00601025 */ or $v0,$v1,$zero
/* f088a8c: 24010036 */ addiu $at,$zero,0x36
.L0f088a90:
/* f088a90: 54a1000f */ bnel $a1,$at,.L0f088ad0
/* f088a94: 8d0f04cc */ lw $t7,0x4cc($t0)
/* f088a98: 8c4c00bc */ lw $t4,0xbc($v0)
/* f088a9c: 8fa500a0 */ lw $a1,0xa0($sp)
/* f088aa0: 0fc61d04 */ jal scenarioPickUpUplink
/* f088aa4: 8d840004 */ lw $a0,0x4($t4)
/* f088aa8: 10400006 */ beqz $v0,.L0f088ac4
/* f088aac: 00401825 */ or $v1,$v0,$zero
/* f088ab0: 8fad0074 */ lw $t5,0x74($sp)
/* f088ab4: 91a4005c */ lbu $a0,0x5c($t5)
/* f088ab8: 0fc21f44 */ jal weaponPlayPickupSound
/* f088abc: afa20064 */ sw $v0,0x64($sp)
/* f088ac0: 8fa30064 */ lw $v1,0x64($sp)
.L0f088ac4:
/* f088ac4: 1000014f */ b .L0f089004
/* f088ac8: 00601025 */ or $v0,$v1,$zero
.L0f088acc:
/* f088acc: 8d0f04cc */ lw $t7,0x4cc($t0)
.L0f088ad0:
/* f088ad0: 8fae0074 */ lw $t6,0x74($sp)
/* f088ad4: 15e00007 */ bnez $t7,.L0f088af4
/* f088ad8: 91c5005c */ lbu $a1,0x5c($t6)
/* f088adc: 0fc21f44 */ jal weaponPlayPickupSound
/* f088ae0: 00a02025 */ or $a0,$a1,$zero
/* f088ae4: 8fb80074 */ lw $t8,0x74($sp)
/* f088ae8: 3c08800a */ lui $t0,%hi(g_Vars)
/* f088aec: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
/* f088af0: 9305005c */ lbu $a1,0x5c($t8)
.L0f088af4:
/* f088af4: 8fb9009c */ lw $t9,0x9c($sp)
/* f088af8: 24010056 */ addiu $at,$zero,0x56
/* f088afc: 8f290040 */ lw $t1,0x40($t9)
/* f088b00: 312a0400 */ andi $t2,$t1,0x400
/* f088b04: 11400020 */ beqz $t2,.L0f088b88
/* f088b08: 00000000 */ nop
/* f088b0c: 28a1002d */ slti $at,$a1,0x2d
/* f088b10: 50200007 */ beqzl $at,.L0f088b30
/* f088b14: 8fac00a4 */ lw $t4,0xa4($sp)
/* f088b18: 0fc4483c */ jal invGiveWeaponsByProp
/* f088b1c: 8fa400a0 */ lw $a0,0xa0($sp)
/* f088b20: 240b0001 */ addiu $t3,$zero,0x1
/* f088b24: afa20068 */ sw $v0,0x68($sp)
/* f088b28: afab0094 */ sw $t3,0x94($sp)
/* f088b2c: 8fac00a4 */ lw $t4,0xa4($sp)
.L0f088b30:
/* f088b30: 51800013 */ beqzl $t4,.L0f088b80
/* f088b34: 24180004 */ addiu $t8,$zero,0x4
/* f088b38: 0fc44bfb */ jal invGetActivatedTextByObj
/* f088b3c: 8fa4009c */ lw $a0,0x9c($sp)
/* f088b40: 10400006 */ beqz $v0,.L0f088b5c
/* f088b44: 00402025 */ or $a0,$v0,$zero
/* f088b48: 00002825 */ or $a1,$zero,$zero
/* f088b4c: 0fc377e9 */ jal hudmsgCreateWithFlags
/* f088b50: 24060009 */ addiu $a2,$zero,0x9
/* f088b54: 10000008 */ b .L0f088b78
/* f088b58: 240f0001 */ addiu $t7,$zero,0x1
.L0f088b5c:
/* f088b5c: 8fa50068 */ lw $a1,0x68($sp)
/* f088b60: 8fad0074 */ lw $t5,0x74($sp)
/* f088b64: 38ae0002 */ xori $t6,$a1,0x2
/* f088b68: 2dc50001 */ sltiu $a1,$t6,0x1
/* f088b6c: 0fc221f2 */ jal currentPlayerQueuePickupWeaponHudmsg
/* f088b70: 91a4005c */ lbu $a0,0x5c($t5)
/* f088b74: 240f0001 */ addiu $t7,$zero,0x1
.L0f088b78:
/* f088b78: afaf0070 */ sw $t7,0x70($sp)
/* f088b7c: 24180004 */ addiu $t8,$zero,0x4
.L0f088b80:
/* f088b80: 10000033 */ b .L0f088c50
/* f088b84: afb80098 */ sw $t8,0x98($sp)
.L0f088b88:
/* f088b88: 14a10011 */ bne $a1,$at,.L0f088bd0
/* f088b8c: 24190001 */ addiu $t9,$zero,0x1
/* f088b90: 8d0604cc */ lw $a2,0x4cc($t0)
/* f088b94: 24090001 */ addiu $t1,$zero,0x1
/* f088b98: afb90068 */ sw $t9,0x68($sp)
/* f088b9c: 2cca0001 */ sltiu $t2,$a2,0x1
/* f088ba0: afa90094 */ sw $t1,0x94($sp)
/* f088ba4: 01403025 */ or $a2,$t2,$zero
/* f088ba8: 24040003 */ addiu $a0,$zero,0x3
/* f088bac: 24050001 */ addiu $a1,$zero,0x1
/* f088bb0: 0fc2200a */ jal ammoHandlePickup
/* f088bb4: 24070001 */ addiu $a3,$zero,0x1
/* f088bb8: 240b0001 */ addiu $t3,$zero,0x1
/* f088bbc: 240c0001 */ addiu $t4,$zero,0x1
/* f088bc0: afab0098 */ sw $t3,0x98($sp)
/* f088bc4: afa000a4 */ sw $zero,0xa4($sp)
/* f088bc8: 10000021 */ b .L0f088c50
/* f088bcc: afac0070 */ sw $t4,0x70($sp)
.L0f088bd0:
/* f088bd0: 0fc4483c */ jal invGiveWeaponsByProp
/* f088bd4: 8fa400a0 */ lw $a0,0xa0($sp)
/* f088bd8: 10400003 */ beqz $v0,.L0f088be8
/* f088bdc: afa20068 */ sw $v0,0x68($sp)
/* f088be0: 240d0001 */ addiu $t5,$zero,0x1
/* f088be4: afad0070 */ sw $t5,0x70($sp)
.L0f088be8:
/* f088be8: 8faf00a4 */ lw $t7,0xa4($sp)
/* f088bec: 240e0001 */ addiu $t6,$zero,0x1
/* f088bf0: afae0094 */ sw $t6,0x94($sp)
/* f088bf4: 11e00014 */ beqz $t7,.L0f088c48
/* f088bf8: 8fb80074 */ lw $t8,0x74($sp)
/* f088bfc: 0fc44c0d */ jal invGetActivatedTextByWeaponNum
/* f088c00: 9304005c */ lbu $a0,0x5c($t8)
/* f088c04: 10400008 */ beqz $v0,.L0f088c28
/* f088c08: 00402025 */ or $a0,$v0,$zero
/* f088c0c: 24190001 */ addiu $t9,$zero,0x1
/* f088c10: afb90070 */ sw $t9,0x70($sp)
/* f088c14: 00002825 */ or $a1,$zero,$zero
/* f088c18: 0fc377e9 */ jal hudmsgCreateWithFlags
/* f088c1c: 24060009 */ addiu $a2,$zero,0x9
/* f088c20: 1000000a */ b .L0f088c4c
/* f088c24: 240c0001 */ addiu $t4,$zero,0x1
.L0f088c28:
/* f088c28: 8fa90070 */ lw $t1,0x70($sp)
/* f088c2c: 8fa50068 */ lw $a1,0x68($sp)
/* f088c30: 8faa0074 */ lw $t2,0x74($sp)
/* f088c34: 11200004 */ beqz $t1,.L0f088c48
/* f088c38: 38ab0002 */ xori $t3,$a1,0x2
/* f088c3c: 9144005c */ lbu $a0,0x5c($t2)
/* f088c40: 0fc221f2 */ jal currentPlayerQueuePickupWeaponHudmsg
/* f088c44: 2d650001 */ sltiu $a1,$t3,0x1
.L0f088c48:
/* f088c48: 240c0001 */ addiu $t4,$zero,0x1
.L0f088c4c:
/* f088c4c: afac0098 */ sw $t4,0x98($sp)
.L0f088c50:
/* f088c50: 8fad0068 */ lw $t5,0x68($sp)
/* f088c54: 24010002 */ addiu $at,$zero,0x2
/* f088c58: 55a10010 */ bnel $t5,$at,.L0f088c9c
/* f088c5c: 8fb90074 */ lw $t9,0x74($sp)
/* f088c60: 0fc2866a */ jal bgunGetWeaponNum
/* f088c64: 00002025 */ or $a0,$zero,$zero
/* f088c68: 8fae0074 */ lw $t6,0x74($sp)
/* f088c6c: 91cf005c */ lbu $t7,0x5c($t6)
/* f088c70: 544f000a */ bnel $v0,$t7,.L0f088c9c
/* f088c74: 8fb90074 */ lw $t9,0x74($sp)
/* f088c78: 0fc2866a */ jal bgunGetWeaponNum
/* f088c7c: 24040001 */ addiu $a0,$zero,0x1
/* f088c80: 8fb80074 */ lw $t8,0x74($sp)
/* f088c84: 9305005c */ lbu $a1,0x5c($t8)
/* f088c88: 50450004 */ beql $v0,$a1,.L0f088c9c
/* f088c8c: 8fb90074 */ lw $t9,0x74($sp)
/* f088c90: 0fc28824 */ jal bgunEquipWeapon2
/* f088c94: 24040001 */ addiu $a0,$zero,0x1
/* f088c98: 8fb90074 */ lw $t9,0x74($sp)
.L0f088c9c:
/* f088c9c: 00002825 */ or $a1,$zero,$zero
/* f088ca0: 0fc2a685 */ jal bgunGetAmmoTypeForWeapon
/* f088ca4: 9324005c */ lbu $a0,0x5c($t9)
/* f088ca8: 1040001d */ beqz $v0,.L0f088d20
/* f088cac: afa2006c */ sw $v0,0x6c($sp)
/* f088cb0: 0fc22095 */ jal weaponGetPickupAmmoQty
/* f088cb4: 8fa40074 */ lw $a0,0x74($sp)
/* f088cb8: 18400019 */ blez $v0,.L0f088d20
/* f088cbc: afa20058 */ sw $v0,0x58($sp)
/* f088cc0: 0fc2a5dc */ jal bgunGetReservedAmmoCount
/* f088cc4: 8fa4006c */ lw $a0,0x6c($sp)
/* f088cc8: 8fa4006c */ lw $a0,0x6c($sp)
/* f088ccc: 0fc2a5dc */ jal bgunGetReservedAmmoCount
/* f088cd0: afa20054 */ sw $v0,0x54($sp)
/* f088cd4: 8fa4006c */ lw $a0,0x6c($sp)
/* f088cd8: 0fc2a63d */ jal bgunGetCapacityByAmmotype
/* f088cdc: afa2003c */ sw $v0,0x3c($sp)
/* f088ce0: 8fa6003c */ lw $a2,0x3c($sp)
/* f088ce4: 8fa50054 */ lw $a1,0x54($sp)
/* f088ce8: 8fa90058 */ lw $t1,0x58($sp)
/* f088cec: 00c2082a */ slt $at,$a2,$v0
/* f088cf0: 1020000b */ beqz $at,.L0f088d20
/* f088cf4: 00a92821 */ addu $a1,$a1,$t1
/* f088cf8: 0fc2a58a */ jal bgunSetAmmoQuantity
/* f088cfc: 8fa4006c */ lw $a0,0x6c($sp)
/* f088d00: 8faa0070 */ lw $t2,0x70($sp)
/* f088d04: 8fab00a4 */ lw $t3,0xa4($sp)
/* f088d08: 55400006 */ bnezl $t2,.L0f088d24
/* f088d0c: 8fac0074 */ lw $t4,0x74($sp)
/* f088d10: 11600003 */ beqz $t3,.L0f088d20
/* f088d14: 8fa4006c */ lw $a0,0x6c($sp)
/* f088d18: 0fc21fec */ jal currentPlayerQueuePickupAmmoHudmsg
/* f088d1c: 8fa50058 */ lw $a1,0x58($sp)
.L0f088d20:
/* f088d20: 8fac0074 */ lw $t4,0x74($sp)
.L0f088d24:
/* f088d24: 24010012 */ addiu $at,$zero,0x12
/* f088d28: 918d005c */ lbu $t5,0x5c($t4)
/* f088d2c: 55a1001b */ bnel $t5,$at,.L0f088d9c
/* f088d30: 8fb80074 */ lw $t8,0x74($sp)
/* f088d34: 0fc22095 */ jal weaponGetPickupAmmoQty
/* f088d38: 01802025 */ or $a0,$t4,$zero
/* f088d3c: afa20050 */ sw $v0,0x50($sp)
/* f088d40: 0fc2a5dc */ jal bgunGetReservedAmmoCount
/* f088d44: 2404000b */ addiu $a0,$zero,0xb
/* f088d48: 2404000b */ addiu $a0,$zero,0xb
/* f088d4c: 0fc2a63d */ jal bgunGetCapacityByAmmotype
/* f088d50: afa2003c */ sw $v0,0x3c($sp)
/* f088d54: 8fa6003c */ lw $a2,0x3c($sp)
/* f088d58: 00c2082a */ slt $at,$a2,$v0
/* f088d5c: 5020000f */ beqzl $at,.L0f088d9c
/* f088d60: 8fb80074 */ lw $t8,0x74($sp)
/* f088d64: 0fc2a5dc */ jal bgunGetReservedAmmoCount
/* f088d68: 2404000b */ addiu $a0,$zero,0xb
/* f088d6c: 2404000b */ addiu $a0,$zero,0xb
/* f088d70: 0fc2a58a */ jal bgunSetAmmoQuantity
/* f088d74: 24450005 */ addiu $a1,$v0,0x5
/* f088d78: 8fae0070 */ lw $t6,0x70($sp)
/* f088d7c: 8faf00a4 */ lw $t7,0xa4($sp)
/* f088d80: 55c00006 */ bnezl $t6,.L0f088d9c
/* f088d84: 8fb80074 */ lw $t8,0x74($sp)
/* f088d88: 11e00003 */ beqz $t7,.L0f088d98
/* f088d8c: 2404000b */ addiu $a0,$zero,0xb
/* f088d90: 0fc21fec */ jal currentPlayerQueuePickupAmmoHudmsg
/* f088d94: 8fa50050 */ lw $a1,0x50($sp)
.L0f088d98:
/* f088d98: 8fb80074 */ lw $t8,0x74($sp)
.L0f088d9c:
/* f088d9c: 2401002e */ addiu $at,$zero,0x2e
/* f088da0: 3c09800a */ lui $t1,%hi(g_Vars+0x284)
/* f088da4: 9319005c */ lbu $t9,0x5c($t8)
/* f088da8: 17210007 */ bne $t9,$at,.L0f088dc8
/* f088dac: 00000000 */ nop
/* f088db0: 8d29a244 */ lw $t1,%lo(g_Vars+0x284)($t1)
/* f088db4: 8d2a0480 */ lw $t2,0x480($t1)
/* f088db8: 15400003 */ bnez $t2,.L0f088dc8
/* f088dbc: 00000000 */ nop
/* f088dc0: 0fc0458c */ jal playerInitEyespy
/* f088dc4: 00000000 */ nop
.L0f088dc8:
/* f088dc8: 10000076 */ b .L0f088fa4
/* f088dcc: 8fa20098 */ lw $v0,0x98($sp)
/* f088dd0: 0fc30884 */ jal playerSetShieldFrac
/* f088dd4: c4cc0060 */ lwc1 $f12,0x60($a2)
/* f088dd8: 3c0b800a */ lui $t3,%hi(g_Vars+0x4cc)
/* f088ddc: 8d6ba48c */ lw $t3,%lo(g_Vars+0x4cc)($t3)
/* f088de0: 3c048009 */ lui $a0,%hi(var80095200)
/* f088de4: 240501cd */ addiu $a1,$zero,0x1cd
/* f088de8: 1560000d */ bnez $t3,.L0f088e20
/* f088dec: 00003025 */ or $a2,$zero,$zero
/* f088df0: 3c01bf80 */ lui $at,0xbf80
/* f088df4: 44813000 */ mtc1 $at,$f6
/* f088df8: 240dffff */ addiu $t5,$zero,-1
/* f088dfc: 240cffff */ addiu $t4,$zero,-1
/* f088e00: 240effff */ addiu $t6,$zero,-1
/* f088e04: afae001c */ sw $t6,0x1c($sp)
/* f088e08: afac0018 */ sw $t4,0x18($sp)
/* f088e0c: afad0010 */ sw $t5,0x10($sp)
/* f088e10: 8c845200 */ lw $a0,%lo(var80095200)($a0)
/* f088e14: 2407ffff */ addiu $a3,$zero,-1
/* f088e18: 0c004241 */ jal sndStart
/* f088e1c: e7a60014 */ swc1 $f6,0x14($sp)
.L0f088e20:
/* f088e20: 8faf00a4 */ lw $t7,0xa4($sp)
/* f088e24: 51e0003b */ beqzl $t7,.L0f088f14
/* f088e28: 240e0001 */ addiu $t6,$zero,0x1
/* f088e2c: 0fc44bfb */ jal invGetActivatedTextByObj
/* f088e30: 8fa4009c */ lw $a0,0x9c($sp)
/* f088e34: 14400033 */ bnez $v0,.L0f088f04
/* f088e38: 00402025 */ or $a0,$v0,$zero
/* f088e3c: 3c18800a */ lui $t8,%hi(g_Vars+0x6c)
/* f088e40: 8f18a02c */ lw $t8,%lo(g_Vars+0x6c)($t8)
/* f088e44: 3c19800a */ lui $t9,%hi(g_Vars+0x68)
/* f088e48: 3c09800a */ lui $t1,%hi(g_Vars+0x64)
/* f088e4c: 13000003 */ beqz $t8,.L0f088e5c
/* f088e50: 3c0a800a */ lui $t2,%hi(g_Vars+0x70)
/* f088e54: 10000002 */ b .L0f088e60
/* f088e58: 24050001 */ addiu $a1,$zero,0x1
.L0f088e5c:
/* f088e5c: 00002825 */ or $a1,$zero,$zero
.L0f088e60:
/* f088e60: 8f39a028 */ lw $t9,%lo(g_Vars+0x68)($t9)
/* f088e64: 00001825 */ or $v1,$zero,$zero
/* f088e68: 00002025 */ or $a0,$zero,$zero
/* f088e6c: 13200003 */ beqz $t9,.L0f088e7c
/* f088e70: 00003025 */ or $a2,$zero,$zero
/* f088e74: 10000001 */ b .L0f088e7c
/* f088e78: 24030001 */ addiu $v1,$zero,0x1
.L0f088e7c:
/* f088e7c: 8d29a024 */ lw $t1,%lo(g_Vars+0x64)($t1)
/* f088e80: 11200003 */ beqz $t1,.L0f088e90
/* f088e84: 00000000 */ nop
/* f088e88: 10000001 */ b .L0f088e90
/* f088e8c: 24040001 */ addiu $a0,$zero,0x1
.L0f088e90:
/* f088e90: 8d4aa030 */ lw $t2,%lo(g_Vars+0x70)($t2)
/* f088e94: 11400003 */ beqz $t2,.L0f088ea4
/* f088e98: 00000000 */ nop
/* f088e9c: 10000001 */ b .L0f088ea4
/* f088ea0: 24060001 */ addiu $a2,$zero,0x1
.L0f088ea4:
/* f088ea4: 00c45821 */ addu $t3,$a2,$a0
/* f088ea8: 01636821 */ addu $t5,$t3,$v1
/* f088eac: 01a51021 */ addu $v0,$t5,$a1
/* f088eb0: 28410003 */ slti $at,$v0,0x3
/* f088eb4: 10200010 */ beqz $at,.L0f088ef8
/* f088eb8: 24010002 */ addiu $at,$zero,0x2
/* f088ebc: 1441000a */ bne $v0,$at,.L0f088ee8
/* f088ec0: 00000000 */ nop
/* f088ec4: 0fc54bcd */ jal optionsGetScreenSplit
/* f088ec8: 00000000 */ nop
/* f088ecc: 24010001 */ addiu $at,$zero,0x1
/* f088ed0: 10410009 */ beq $v0,$at,.L0f088ef8
/* f088ed4: 3c0c8009 */ lui $t4,%hi(g_Is4Mb)
/* f088ed8: 918c0af0 */ lbu $t4,%lo(g_Is4Mb)($t4)
/* f088edc: 24010001 */ addiu $at,$zero,0x1
/* f088ee0: 11810005 */ beq $t4,$at,.L0f088ef8
/* f088ee4: 00000000 */ nop
.L0f088ee8:
/* f088ee8: 0fc5b9f1 */ jal langGet
/* f088eec: 24045229 */ addiu $a0,$zero,0x5229
/* f088ef0: 10000004 */ b .L0f088f04
/* f088ef4: 00402025 */ or $a0,$v0,$zero
.L0f088ef8:
/* f088ef8: 0fc5b9f1 */ jal langGet
/* f088efc: 2404522a */ addiu $a0,$zero,0x522a
/* f088f00: 00402025 */ or $a0,$v0,$zero
.L0f088f04:
/* f088f04: 00002825 */ or $a1,$zero,$zero
/* f088f08: 0fc377e9 */ jal hudmsgCreateWithFlags
/* f088f0c: 24060001 */ addiu $a2,$zero,0x1
/* f088f10: 240e0001 */ addiu $t6,$zero,0x1
.L0f088f14:
/* f088f14: afae0098 */ sw $t6,0x98($sp)
/* f088f18: 10000022 */ b .L0f088fa4
/* f088f1c: 24020001 */ addiu $v0,$zero,0x1
.L0f088f20:
/* f088f20: 8d0f04cc */ lw $t7,0x4cc($t0)
/* f088f24: 3c048009 */ lui $a0,%hi(var80095200)
/* f088f28: 240500e5 */ addiu $a1,$zero,0xe5
/* f088f2c: 15e0000d */ bnez $t7,.L0f088f64
/* f088f30: 00003025 */ or $a2,$zero,$zero
/* f088f34: 3c01bf80 */ lui $at,0xbf80
/* f088f38: 44814000 */ mtc1 $at,$f8
/* f088f3c: 2418ffff */ addiu $t8,$zero,-1
/* f088f40: 2419ffff */ addiu $t9,$zero,-1
/* f088f44: 2409ffff */ addiu $t1,$zero,-1
/* f088f48: afa9001c */ sw $t1,0x1c($sp)
/* f088f4c: afb90018 */ sw $t9,0x18($sp)
/* f088f50: afb80010 */ sw $t8,0x10($sp)
/* f088f54: 8c845200 */ lw $a0,%lo(var80095200)($a0)
/* f088f58: 2407ffff */ addiu $a3,$zero,-1
/* f088f5c: 0c004241 */ jal sndStart
/* f088f60: e7a80014 */ swc1 $f8,0x14($sp)
.L0f088f64:
/* f088f64: 8faa00a4 */ lw $t2,0xa4($sp)
/* f088f68: 5140000c */ beqzl $t2,.L0f088f9c
/* f088f6c: 240b0004 */ addiu $t3,$zero,0x4
/* f088f70: 0fc44bfb */ jal invGetActivatedTextByObj
/* f088f74: 8fa4009c */ lw $a0,0x9c($sp)
/* f088f78: 14400004 */ bnez $v0,.L0f088f8c
/* f088f7c: 00402025 */ or $a0,$v0,$zero
/* f088f80: 0fc5b9f1 */ jal langGet
/* f088f84: 2404522b */ addiu $a0,$zero,0x522b
/* f088f88: 00402025 */ or $a0,$v0,$zero
.L0f088f8c:
/* f088f8c: 00002825 */ or $a1,$zero,$zero
/* f088f90: 0fc377e9 */ jal hudmsgCreateWithFlags
/* f088f94: 24060009 */ addiu $a2,$zero,0x9
/* f088f98: 240b0004 */ addiu $t3,$zero,0x4
.L0f088f9c:
/* f088f9c: afab0098 */ sw $t3,0x98($sp)
/* f088fa0: 24020004 */ addiu $v0,$zero,0x4
.L0f088fa4:
/* f088fa4: 24010001 */ addiu $at,$zero,0x1
/* f088fa8: 1441000d */ bne $v0,$at,.L0f088fe0
/* f088fac: 8fad009c */ lw $t5,0x9c($sp)
/* f088fb0: 8dac0040 */ lw $t4,0x40($t5)
/* f088fb4: 318e0010 */ andi $t6,$t4,0x10
/* f088fb8: 15c00009 */ bnez $t6,.L0f088fe0
/* f088fbc: 00000000 */ nop
/* f088fc0: 91a60002 */ lbu $a2,0x2($t5)
/* f088fc4: 01a02025 */ or $a0,$t5,$zero
/* f088fc8: 00002825 */ or $a1,$zero,$zero
/* f088fcc: 30cf0004 */ andi $t7,$a2,0x4
/* f088fd0: 0fc1ab4b */ jal objFree
/* f088fd4: 01e03025 */ or $a2,$t7,$zero
/* f088fd8: 1000000a */ b .L0f089004
/* f088fdc: 24020001 */ addiu $v0,$zero,0x1
.L0f088fe0:
/* f088fe0: 10400007 */ beqz $v0,.L0f089000
/* f088fe4: 8fb80094 */ lw $t8,0x94($sp)
/* f088fe8: 17000003 */ bnez $t8,.L0f088ff8
/* f088fec: 00000000 */ nop
/* f088ff0: 0fc447f3 */ jal invGiveProp
/* f088ff4: 8fa400a0 */ lw $a0,0xa0($sp)
.L0f088ff8:
/* f088ff8: 10000002 */ b .L0f089004
/* f088ffc: 24020004 */ addiu $v0,$zero,0x4
.L0f089000:
/* f089000: 00001025 */ or $v0,$zero,$zero
.L0f089004:
/* f089004: 8fbf0024 */ lw $ra,0x24($sp)
/* f089008: 27bd00a0 */ addiu $sp,$sp,0xa0
/* f08900c: 03e00008 */ jr $ra
/* f089010: 00000000 */ nop
);
#else
GLOBAL_ASM(
glabel propPickupByPlayer
.late_rodata
glabel var7f1aadc0
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aadc4
.word propPickupByPlayer+0x74 # f0888b4
glabel var7f1aadc8
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aadcc
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aadd0
.word propPickupByPlayer+0xf4 # f088934
glabel var7f1aadd4
.word propPickupByPlayer+0x1f4 # f088a34
glabel var7f1aadd8
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aaddc
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aade0
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aade4
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aade8
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aadec
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aadf0
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aadf4
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aadf8
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aadfc
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae00
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae04
.word propPickupByPlayer+0x134 # f088974
glabel var7f1aae08
.word propPickupByPlayer+0x590 # f088dd0
glabel var7f1aae0c
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae10
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae14
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae18
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae1c
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae20
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae24
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae28
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae2c
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae30
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae34
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae38
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae3c
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae40
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae44
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae48
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae4c
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae50
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae54
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae58
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae5c
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae60
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae64
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae68
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae6c
.word propPickupByPlayer+0x6e0 # f088f20
glabel var7f1aae70
.word propPickupByPlayer+0x6e0 # f088f20
.text
/* f088840: 27bdff60 */ addiu $sp,$sp,-160
/* f088844: afbf0024 */ sw $ra,0x24($sp)
/* f088848: afa400a0 */ sw $a0,0xa0($sp)
/* f08884c: afa500a4 */ sw $a1,0xa4($sp)
/* f088850: 3c08800a */ lui $t0,%hi(g_Vars)
/* f088854: 8c860004 */ lw $a2,0x4($a0)
/* f088858: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
/* f08885c: 8d020284 */ lw $v0,0x284($t0)
/* f088860: afa00094 */ sw $zero,0x94($sp)
/* f088864: afa6009c */ sw $a2,0x9c($sp)
/* f088868: 8c4f00d8 */ lw $t7,0xd8($v0)
/* f08886c: 15e00005 */ bnez $t7,.L0f088884
/* f088870: 00000000 */ nop
/* f088874: 8d180034 */ lw $t8,0x34($t0)
/* f088878: 8fb9009c */ lw $t9,0x9c($sp)
/* f08887c: 57000004 */ bnezl $t8,.L0f088890
/* f088880: 93290003 */ lbu $t1,0x3($t9)
.L0f088884:
/* f088884: 100001df */ b .L0f089004
/* f088888: 00001025 */ or $v0,$zero,$zero
/* f08888c: 93290003 */ lbu $t1,0x3($t9)
.L0f088890:
/* f088890: 252afffd */ addiu $t2,$t1,-3
/* f088894: 2d41002d */ sltiu $at,$t2,0x2d
/* f088898: 102001a1 */ beqz $at,.L0f088f20
/* f08889c: 000a5080 */ sll $t2,$t2,0x2
/* f0888a0: 3c017f1b */ lui $at,%hi(var7f1aadc0)
/* f0888a4: 002a0821 */ addu $at,$at,$t2
/* f0888a8: 8c2aadc0 */ lw $t2,%lo(var7f1aadc0)($at)
/* f0888ac: 01400008 */ jr $t2
/* f0888b0: 00000000 */ nop
/* f0888b4: 8d0b04cc */ lw $t3,0x4cc($t0)
/* f0888b8: 3c048009 */ lui $a0,%hi(var80095200)
/* f0888bc: 240500e5 */ addiu $a1,$zero,0xe5
/* f0888c0: 1560000d */ bnez $t3,.L0f0888f8
/* f0888c4: 00003025 */ or $a2,$zero,$zero
/* f0888c8: 3c01bf80 */ lui $at,0xbf80
/* f0888cc: 44812000 */ mtc1 $at,$f4
/* f0888d0: 240cffff */ addiu $t4,$zero,-1
/* f0888d4: 240dffff */ addiu $t5,$zero,-1
/* f0888d8: 240effff */ addiu $t6,$zero,-1
/* f0888dc: afae001c */ sw $t6,0x1c($sp)
/* f0888e0: afad0018 */ sw $t5,0x18($sp)
/* f0888e4: afac0010 */ sw $t4,0x10($sp)
/* f0888e8: 8c845200 */ lw $a0,%lo(var80095200)($a0)
/* f0888ec: 2407ffff */ addiu $a3,$zero,-1
/* f0888f0: 0c004241 */ jal sndStart
/* f0888f4: e7a40014 */ swc1 $f4,0x14($sp)
.L0f0888f8:
/* f0888f8: 8faf00a4 */ lw $t7,0xa4($sp)
/* f0888fc: 11e0000b */ beqz $t7,.L0f08892c
/* f088900: 00000000 */ nop
/* f088904: 0fc44bfb */ jal invGetActivatedTextByObj
/* f088908: 8fa4009c */ lw $a0,0x9c($sp)
/* f08890c: 14400004 */ bnez $v0,.L0f088920
/* f088910: 00402025 */ or $a0,$v0,$zero
/* f088914: 0fc5b9f1 */ jal langGet
/* f088918: 24045228 */ addiu $a0,$zero,0x5228
/* f08891c: 00402025 */ or $a0,$v0,$zero
.L0f088920:
/* f088920: 00002825 */ or $a1,$zero,$zero
/* f088924: 0fc377e9 */ jal hudmsgCreateWithFlags
/* f088928: 24060009 */ addiu $a2,$zero,0x9
.L0f08892c:
/* f08892c: 1000019d */ b .L0f088fa4
/* f088930: 24020004 */ addiu $v0,$zero,0x4
/* f088934: 00c02025 */ or $a0,$a2,$zero
/* f088938: 0fc22067 */ jal ammocrateGetPickupAmmoQty
/* f08893c: afa6008c */ sw $a2,0x8c($sp)
/* f088940: 3c06800a */ lui $a2,%hi(g_Vars+0x4cc)
/* f088944: 8cc6a48c */ lw $a2,%lo(g_Vars+0x4cc)($a2)
/* f088948: 8fb9008c */ lw $t9,0x8c($sp)
/* f08894c: 00402825 */ or $a1,$v0,$zero
/* f088950: 2cd80001 */ sltiu $t8,$a2,0x1
/* f088954: 03003025 */ or $a2,$t8,$zero
/* f088958: 8fa700a4 */ lw $a3,0xa4($sp)
/* f08895c: 0fc2200a */ jal ammoHandlePickup
/* f088960: 8f24005c */ lw $a0,0x5c($t9)
/* f088964: 24090001 */ addiu $t1,$zero,0x1
/* f088968: afa90098 */ sw $t1,0x98($sp)
/* f08896c: 1000018d */ b .L0f088fa4
/* f088970: 24020001 */ addiu $v0,$zero,0x1
/* f088974: 00001025 */ or $v0,$zero,$zero
/* f088978: 00c01825 */ or $v1,$a2,$zero
.L0f08897c:
/* f08897c: 3c08800a */ lui $t0,%hi(g_Vars)
/* f088980: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
/* f088984: 8d0a0318 */ lw $t2,0x318($t0)
/* f088988: 9465005e */ lhu $a1,0x5e($v1)
/* f08898c: 24440001 */ addiu $a0,$v0,0x1
/* f088990: 15400009 */ bnez $t2,.L0f0889b8
/* f088994: 00003025 */ or $a2,$zero,$zero
/* f088998: 44853000 */ mtc1 $a1,$f6
/* f08899c: 3c018007 */ lui $at,%hi(g_AmmoMultiplier)
/* f0889a0: c42a995c */ lwc1 $f10,%lo(g_AmmoMultiplier)($at)
/* f0889a4: 46803220 */ cvt.s.w $f8,$f6
/* f0889a8: 460a4402 */ mul.s $f16,$f8,$f10
/* f0889ac: 4600848d */ trunc.w.s $f18,$f16
/* f0889b0: 44059000 */ mfc1 $a1,$f18
/* f0889b4: 00000000 */ nop
.L0f0889b8:
/* f0889b8: 8fa700a4 */ lw $a3,0xa4($sp)
/* f0889bc: afa30028 */ sw $v1,0x28($sp)
/* f0889c0: 0fc2200a */ jal ammoHandlePickup
/* f0889c4: afa4002c */ sw $a0,0x2c($sp)
/* f0889c8: 8fa2002c */ lw $v0,0x2c($sp)
/* f0889cc: 8fa30028 */ lw $v1,0x28($sp)
/* f0889d0: 24010013 */ addiu $at,$zero,0x13
/* f0889d4: 1441ffe9 */ bne $v0,$at,.L0f08897c
/* f0889d8: 24630004 */ addiu $v1,$v1,0x4
/* f0889dc: 3c0c800a */ lui $t4,%hi(g_Vars+0x4cc)
/* f0889e0: 8d8ca48c */ lw $t4,%lo(g_Vars+0x4cc)($t4)
/* f0889e4: 3c048009 */ lui $a0,%hi(var80095200)
/* f0889e8: 240500ea */ addiu $a1,$zero,0xea
/* f0889ec: 1580000d */ bnez $t4,.L0f088a24
/* f0889f0: 00003025 */ or $a2,$zero,$zero
/* f0889f4: 3c01bf80 */ lui $at,0xbf80
/* f0889f8: 44812000 */ mtc1 $at,$f4
/* f0889fc: 240dffff */ addiu $t5,$zero,-1
/* f088a00: 240effff */ addiu $t6,$zero,-1
/* f088a04: 240fffff */ addiu $t7,$zero,-1
/* f088a08: afaf001c */ sw $t7,0x1c($sp)
/* f088a0c: afae0018 */ sw $t6,0x18($sp)
/* f088a10: afad0010 */ sw $t5,0x10($sp)
/* f088a14: 8c845200 */ lw $a0,%lo(var80095200)($a0)
/* f088a18: 2407ffff */ addiu $a3,$zero,-1
/* f088a1c: 0c004241 */ jal sndStart
/* f088a20: e7a40014 */ swc1 $f4,0x14($sp)
.L0f088a24:
/* f088a24: 24180001 */ addiu $t8,$zero,0x1
/* f088a28: afb80098 */ sw $t8,0x98($sp)
/* f088a2c: 1000015d */ b .L0f088fa4
/* f088a30: 24020001 */ addiu $v0,$zero,0x1
/* f088a34: 8d190318 */ lw $t9,0x318($t0)
/* f088a38: afa60074 */ sw $a2,0x74($sp)
/* f088a3c: afa00070 */ sw $zero,0x70($sp)
/* f088a40: 13200022 */ beqz $t9,.L0f088acc
/* f088a44: afa00068 */ sw $zero,0x68($sp)
/* f088a48: 90c5005c */ lbu $a1,0x5c($a2)
/* f088a4c: 24010057 */ addiu $at,$zero,0x56
/* f088a50: 54a1000f */ bnel $a1,$at,.L0f088a90
/* f088a54: 24010036 */ addiu $at,$zero,0x36
/* f088a58: 8c4a00bc */ lw $t2,0xbc($v0)
/* f088a5c: 8fa500a0 */ lw $a1,0xa0($sp)
/* f088a60: 0fc61a26 */ jal scenarioPickUpBriefcase
/* f088a64: 8d440004 */ lw $a0,0x4($t2)
/* f088a68: 10400006 */ beqz $v0,.L0f088a84
/* f088a6c: 00401825 */ or $v1,$v0,$zero
/* f088a70: 8fab0074 */ lw $t3,0x74($sp)
/* f088a74: 9164005c */ lbu $a0,0x5c($t3)
/* f088a78: 0fc21f44 */ jal weaponPlayPickupSound
/* f088a7c: afa20064 */ sw $v0,0x64($sp)
/* f088a80: 8fa30064 */ lw $v1,0x64($sp)
.L0f088a84:
/* f088a84: 1000015f */ b .L0f089004
/* f088a88: 00601025 */ or $v0,$v1,$zero
/* f088a8c: 24010036 */ addiu $at,$zero,0x36
.L0f088a90:
/* f088a90: 54a1000f */ bnel $a1,$at,.L0f088ad0
/* f088a94: 8d0f04cc */ lw $t7,0x4cc($t0)
/* f088a98: 8c4c00bc */ lw $t4,0xbc($v0)
/* f088a9c: 8fa500a0 */ lw $a1,0xa0($sp)
/* f088aa0: 0fc61d04 */ jal scenarioPickUpUplink
/* f088aa4: 8d840004 */ lw $a0,0x4($t4)
/* f088aa8: 10400006 */ beqz $v0,.L0f088ac4
/* f088aac: 00401825 */ or $v1,$v0,$zero
/* f088ab0: 8fad0074 */ lw $t5,0x74($sp)
/* f088ab4: 91a4005c */ lbu $a0,0x5c($t5)
/* f088ab8: 0fc21f44 */ jal weaponPlayPickupSound
/* f088abc: afa20064 */ sw $v0,0x64($sp)
/* f088ac0: 8fa30064 */ lw $v1,0x64($sp)
.L0f088ac4:
/* f088ac4: 1000014f */ b .L0f089004
/* f088ac8: 00601025 */ or $v0,$v1,$zero
.L0f088acc:
/* f088acc: 8d0f04cc */ lw $t7,0x4cc($t0)
.L0f088ad0:
/* f088ad0: 8fae0074 */ lw $t6,0x74($sp)
/* f088ad4: 15e00007 */ bnez $t7,.L0f088af4
/* f088ad8: 91c5005c */ lbu $a1,0x5c($t6)
/* f088adc: 0fc21f44 */ jal weaponPlayPickupSound
/* f088ae0: 00a02025 */ or $a0,$a1,$zero
/* f088ae4: 8fb80074 */ lw $t8,0x74($sp)
/* f088ae8: 3c08800a */ lui $t0,%hi(g_Vars)
/* f088aec: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
/* f088af0: 9305005c */ lbu $a1,0x5c($t8)
.L0f088af4:
/* f088af4: 8fb9009c */ lw $t9,0x9c($sp)
/* f088af8: 24010056 */ addiu $at,$zero,0x55
/* f088afc: 8f290040 */ lw $t1,0x40($t9)
/* f088b00: 312a0400 */ andi $t2,$t1,0x400
/* f088b04: 11400020 */ beqz $t2,.L0f088b88
/* f088b08: 00000000 */ nop
/* f088b0c: 28a1002d */ slti $at,$a1,0x2d
/* f088b10: 50200007 */ beqzl $at,.L0f088b30
/* f088b14: 8fac00a4 */ lw $t4,0xa4($sp)
/* f088b18: 0fc4483c */ jal invGiveWeaponsByProp
/* f088b1c: 8fa400a0 */ lw $a0,0xa0($sp)
/* f088b20: 240b0001 */ addiu $t3,$zero,0x1
/* f088b24: afa20068 */ sw $v0,0x68($sp)
/* f088b28: afab0094 */ sw $t3,0x94($sp)
/* f088b2c: 8fac00a4 */ lw $t4,0xa4($sp)
.L0f088b30:
/* f088b30: 51800013 */ beqzl $t4,.L0f088b80
/* f088b34: 24180004 */ addiu $t8,$zero,0x4
/* f088b38: 0fc44bfb */ jal invGetActivatedTextByObj
/* f088b3c: 8fa4009c */ lw $a0,0x9c($sp)
/* f088b40: 10400006 */ beqz $v0,.L0f088b5c
/* f088b44: 00402025 */ or $a0,$v0,$zero
/* f088b48: 00002825 */ or $a1,$zero,$zero
/* f088b4c: 0fc377e9 */ jal hudmsgCreateWithFlags
/* f088b50: 24060009 */ addiu $a2,$zero,0x9
/* f088b54: 10000008 */ b .L0f088b78
/* f088b58: 240f0001 */ addiu $t7,$zero,0x1
.L0f088b5c:
/* f088b5c: 8fa50068 */ lw $a1,0x68($sp)
/* f088b60: 8fad0074 */ lw $t5,0x74($sp)
/* f088b64: 38ae0002 */ xori $t6,$a1,0x2
/* f088b68: 2dc50001 */ sltiu $a1,$t6,0x1
/* f088b6c: 0fc221f2 */ jal currentPlayerQueuePickupWeaponHudmsg
/* f088b70: 91a4005c */ lbu $a0,0x5c($t5)
/* f088b74: 240f0001 */ addiu $t7,$zero,0x1
.L0f088b78:
/* f088b78: afaf0070 */ sw $t7,0x70($sp)
/* f088b7c: 24180004 */ addiu $t8,$zero,0x4
.L0f088b80:
/* f088b80: 10000033 */ b .L0f088c50
/* f088b84: afb80098 */ sw $t8,0x98($sp)
.L0f088b88:
/* f088b88: 14a10011 */ bne $a1,$at,.L0f088bd0
/* f088b8c: 24190001 */ addiu $t9,$zero,0x1
/* f088b90: 8d0604cc */ lw $a2,0x4cc($t0)
/* f088b94: 24090001 */ addiu $t1,$zero,0x1
/* f088b98: afb90068 */ sw $t9,0x68($sp)
/* f088b9c: 2cca0001 */ sltiu $t2,$a2,0x1
/* f088ba0: afa90094 */ sw $t1,0x94($sp)
/* f088ba4: 01403025 */ or $a2,$t2,$zero
/* f088ba8: 24040003 */ addiu $a0,$zero,0x3
/* f088bac: 24050001 */ addiu $a1,$zero,0x1
/* f088bb0: 0fc2200a */ jal ammoHandlePickup
/* f088bb4: 24070001 */ addiu $a3,$zero,0x1
/* f088bb8: 240b0001 */ addiu $t3,$zero,0x1
/* f088bbc: 240c0001 */ addiu $t4,$zero,0x1
/* f088bc0: afab0098 */ sw $t3,0x98($sp)
/* f088bc4: afa000a4 */ sw $zero,0xa4($sp)
/* f088bc8: 10000021 */ b .L0f088c50
/* f088bcc: afac0070 */ sw $t4,0x70($sp)
.L0f088bd0:
/* f088bd0: 0fc4483c */ jal invGiveWeaponsByProp
/* f088bd4: 8fa400a0 */ lw $a0,0xa0($sp)
/* f088bd8: 10400003 */ beqz $v0,.L0f088be8
/* f088bdc: afa20068 */ sw $v0,0x68($sp)
/* f088be0: 240d0001 */ addiu $t5,$zero,0x1
/* f088be4: afad0070 */ sw $t5,0x70($sp)
.L0f088be8:
/* f088be8: 8faf00a4 */ lw $t7,0xa4($sp)
/* f088bec: 240e0001 */ addiu $t6,$zero,0x1
/* f088bf0: afae0094 */ sw $t6,0x94($sp)
/* f088bf4: 11e00014 */ beqz $t7,.L0f088c48
/* f088bf8: 8fb80074 */ lw $t8,0x74($sp)
/* f088bfc: 0fc44c0d */ jal invGetActivatedTextByWeaponNum
/* f088c00: 9304005c */ lbu $a0,0x5c($t8)
/* f088c04: 10400008 */ beqz $v0,.L0f088c28
/* f088c08: 00402025 */ or $a0,$v0,$zero
/* f088c0c: 24190001 */ addiu $t9,$zero,0x1
/* f088c10: afb90070 */ sw $t9,0x70($sp)
/* f088c14: 00002825 */ or $a1,$zero,$zero
/* f088c18: 0fc377e9 */ jal hudmsgCreateWithFlags
/* f088c1c: 24060009 */ addiu $a2,$zero,0x9
/* f088c20: 1000000a */ b .L0f088c4c
/* f088c24: 240c0001 */ addiu $t4,$zero,0x1
.L0f088c28:
/* f088c28: 8fa90070 */ lw $t1,0x70($sp)
/* f088c2c: 8fa50068 */ lw $a1,0x68($sp)
/* f088c30: 8faa0074 */ lw $t2,0x74($sp)
/* f088c34: 11200004 */ beqz $t1,.L0f088c48
/* f088c38: 38ab0002 */ xori $t3,$a1,0x2
/* f088c3c: 9144005c */ lbu $a0,0x5c($t2)
/* f088c40: 0fc221f2 */ jal currentPlayerQueuePickupWeaponHudmsg
/* f088c44: 2d650001 */ sltiu $a1,$t3,0x1
.L0f088c48:
/* f088c48: 240c0001 */ addiu $t4,$zero,0x1
.L0f088c4c:
/* f088c4c: afac0098 */ sw $t4,0x98($sp)
.L0f088c50:
/* f088c50: 8fad0068 */ lw $t5,0x68($sp)
/* f088c54: 24010002 */ addiu $at,$zero,0x2
/* f088c58: 55a10010 */ bnel $t5,$at,.L0f088c9c
/* f088c5c: 8fb90074 */ lw $t9,0x74($sp)
/* f088c60: 0fc2866a */ jal bgunGetWeaponNum
/* f088c64: 00002025 */ or $a0,$zero,$zero
/* f088c68: 8fae0074 */ lw $t6,0x74($sp)
/* f088c6c: 91cf005c */ lbu $t7,0x5c($t6)
/* f088c70: 544f000a */ bnel $v0,$t7,.L0f088c9c
/* f088c74: 8fb90074 */ lw $t9,0x74($sp)
/* f088c78: 0fc2866a */ jal bgunGetWeaponNum
/* f088c7c: 24040001 */ addiu $a0,$zero,0x1
/* f088c80: 8fb80074 */ lw $t8,0x74($sp)
/* f088c84: 9305005c */ lbu $a1,0x5c($t8)
/* f088c88: 50450004 */ beql $v0,$a1,.L0f088c9c
/* f088c8c: 8fb90074 */ lw $t9,0x74($sp)
/* f088c90: 0fc28824 */ jal bgunEquipWeapon2
/* f088c94: 24040001 */ addiu $a0,$zero,0x1
/* f088c98: 8fb90074 */ lw $t9,0x74($sp)
.L0f088c9c:
/* f088c9c: 00002825 */ or $a1,$zero,$zero
/* f088ca0: 0fc2a685 */ jal bgunGetAmmoTypeForWeapon
/* f088ca4: 9324005c */ lbu $a0,0x5c($t9)
/* f088ca8: 1040001d */ beqz $v0,.L0f088d20
/* f088cac: afa2006c */ sw $v0,0x6c($sp)
/* f088cb0: 0fc22095 */ jal weaponGetPickupAmmoQty
/* f088cb4: 8fa40074 */ lw $a0,0x74($sp)
/* f088cb8: 18400019 */ blez $v0,.L0f088d20
/* f088cbc: afa20058 */ sw $v0,0x58($sp)
/* f088cc0: 0fc2a5dc */ jal bgunGetReservedAmmoCount
/* f088cc4: 8fa4006c */ lw $a0,0x6c($sp)
/* f088cc8: 8fa4006c */ lw $a0,0x6c($sp)
/* f088ccc: 0fc2a5dc */ jal bgunGetReservedAmmoCount
/* f088cd0: afa20054 */ sw $v0,0x54($sp)
/* f088cd4: 8fa4006c */ lw $a0,0x6c($sp)
/* f088cd8: 0fc2a63d */ jal bgunGetCapacityByAmmotype
/* f088cdc: afa2003c */ sw $v0,0x3c($sp)
/* f088ce0: 8fa6003c */ lw $a2,0x3c($sp)
/* f088ce4: 8fa50054 */ lw $a1,0x54($sp)
/* f088ce8: 8fa90058 */ lw $t1,0x58($sp)
/* f088cec: 00c2082a */ slt $at,$a2,$v0
/* f088cf0: 1020000b */ beqz $at,.L0f088d20
/* f088cf4: 00a92821 */ addu $a1,$a1,$t1
/* f088cf8: 0fc2a58a */ jal bgunSetAmmoQuantity
/* f088cfc: 8fa4006c */ lw $a0,0x6c($sp)
/* f088d00: 8faa0070 */ lw $t2,0x70($sp)
/* f088d04: 8fab00a4 */ lw $t3,0xa4($sp)
/* f088d08: 55400006 */ bnezl $t2,.L0f088d24
/* f088d0c: 8fac0074 */ lw $t4,0x74($sp)
/* f088d10: 11600003 */ beqz $t3,.L0f088d20
/* f088d14: 8fa4006c */ lw $a0,0x6c($sp)
/* f088d18: 0fc21fec */ jal currentPlayerQueuePickupAmmoHudmsg
/* f088d1c: 8fa50058 */ lw $a1,0x58($sp)
.L0f088d20:
/* f088d20: 8fac0074 */ lw $t4,0x74($sp)
.L0f088d24:
/* f088d24: 24010012 */ addiu $at,$zero,0x12
/* f088d28: 918d005c */ lbu $t5,0x5c($t4)
/* f088d2c: 55a1001b */ bnel $t5,$at,.L0f088d9c
/* f088d30: 8fb80074 */ lw $t8,0x74($sp)
/* f088d34: 0fc22095 */ jal weaponGetPickupAmmoQty
/* f088d38: 01802025 */ or $a0,$t4,$zero
/* f088d3c: afa20050 */ sw $v0,0x50($sp)
/* f088d40: 0fc2a5dc */ jal bgunGetReservedAmmoCount
/* f088d44: 2404000b */ addiu $a0,$zero,0xb
/* f088d48: 2404000b */ addiu $a0,$zero,0xb
/* f088d4c: 0fc2a63d */ jal bgunGetCapacityByAmmotype
/* f088d50: afa2003c */ sw $v0,0x3c($sp)
/* f088d54: 8fa6003c */ lw $a2,0x3c($sp)
/* f088d58: 00c2082a */ slt $at,$a2,$v0
/* f088d5c: 5020000f */ beqzl $at,.L0f088d9c
/* f088d60: 8fb80074 */ lw $t8,0x74($sp)
/* f088d64: 0fc2a5dc */ jal bgunGetReservedAmmoCount
/* f088d68: 2404000b */ addiu $a0,$zero,0xb
/* f088d6c: 2404000b */ addiu $a0,$zero,0xb
/* f088d70: 0fc2a58a */ jal bgunSetAmmoQuantity
/* f088d74: 24450005 */ addiu $a1,$v0,0x5
/* f088d78: 8fae0070 */ lw $t6,0x70($sp)
/* f088d7c: 8faf00a4 */ lw $t7,0xa4($sp)
/* f088d80: 55c00006 */ bnezl $t6,.L0f088d9c
/* f088d84: 8fb80074 */ lw $t8,0x74($sp)
/* f088d88: 11e00003 */ beqz $t7,.L0f088d98
/* f088d8c: 2404000b */ addiu $a0,$zero,0xb
/* f088d90: 0fc21fec */ jal currentPlayerQueuePickupAmmoHudmsg
/* f088d94: 8fa50050 */ lw $a1,0x50($sp)
.L0f088d98:
/* f088d98: 8fb80074 */ lw $t8,0x74($sp)
.L0f088d9c:
/* f088d9c: 2401002e */ addiu $at,$zero,0x2e
/* f088da0: 3c09800a */ lui $t1,%hi(g_Vars+0x284)
/* f088da4: 9319005c */ lbu $t9,0x5c($t8)
/* f088da8: 17210007 */ bne $t9,$at,.L0f088dc8
/* f088dac: 00000000 */ nop
/* f088db0: 8d29a244 */ lw $t1,%lo(g_Vars+0x284)($t1)
/* f088db4: 8d2a0480 */ lw $t2,0x480($t1)
/* f088db8: 15400003 */ bnez $t2,.L0f088dc8
/* f088dbc: 00000000 */ nop
/* f088dc0: 0fc0458c */ jal playerInitEyespy
/* f088dc4: 00000000 */ nop
.L0f088dc8:
/* f088dc8: 10000076 */ b .L0f088fa4
/* f088dcc: 8fa20098 */ lw $v0,0x98($sp)
/* f088dd0: 0fc30884 */ jal playerSetShieldFrac
/* f088dd4: c4cc0060 */ lwc1 $f12,0x60($a2)
/* f088dd8: 3c0b800a */ lui $t3,%hi(g_Vars+0x4cc)
/* f088ddc: 8d6ba48c */ lw $t3,%lo(g_Vars+0x4cc)($t3)
/* f088de0: 3c048009 */ lui $a0,%hi(var80095200)
/* f088de4: 240501cd */ addiu $a1,$zero,0x1cd
/* f088de8: 1560000d */ bnez $t3,.L0f088e20
/* f088dec: 00003025 */ or $a2,$zero,$zero
/* f088df0: 3c01bf80 */ lui $at,0xbf80
/* f088df4: 44813000 */ mtc1 $at,$f6
/* f088df8: 240dffff */ addiu $t5,$zero,-1
/* f088dfc: 240cffff */ addiu $t4,$zero,-1
/* f088e00: 240effff */ addiu $t6,$zero,-1
/* f088e04: afae001c */ sw $t6,0x1c($sp)
/* f088e08: afac0018 */ sw $t4,0x18($sp)
/* f088e0c: afad0010 */ sw $t5,0x10($sp)
/* f088e10: 8c845200 */ lw $a0,%lo(var80095200)($a0)
/* f088e14: 2407ffff */ addiu $a3,$zero,-1
/* f088e18: 0c004241 */ jal sndStart
/* f088e1c: e7a60014 */ swc1 $f6,0x14($sp)
.L0f088e20:
/* f088e20: 8faf00a4 */ lw $t7,0xa4($sp)
/* f088e24: 51e0003b */ beqzl $t7,.L0f088f14
/* f088e28: 240e0001 */ addiu $t6,$zero,0x1
/* f088e2c: 0fc44bfb */ jal invGetActivatedTextByObj
/* f088e30: 8fa4009c */ lw $a0,0x9c($sp)
/* f088e34: 14400033 */ bnez $v0,.L0f088f04
/* f088e38: 00402025 */ or $a0,$v0,$zero
/* f088e3c: 3c18800a */ lui $t8,%hi(g_Vars+0x6c)
/* f088e40: 8f18a02c */ lw $t8,%lo(g_Vars+0x6c)($t8)
/* f088e44: 3c19800a */ lui $t9,%hi(g_Vars+0x68)
/* f088e48: 3c09800a */ lui $t1,%hi(g_Vars+0x64)
/* f088e4c: 13000003 */ beqz $t8,.L0f088e5c
/* f088e50: 3c0a800a */ lui $t2,%hi(g_Vars+0x70)
/* f088e54: 10000002 */ b .L0f088e60
/* f088e58: 24050001 */ addiu $a1,$zero,0x1
.L0f088e5c:
/* f088e5c: 00002825 */ or $a1,$zero,$zero
.L0f088e60:
/* f088e60: 8f39a028 */ lw $t9,%lo(g_Vars+0x68)($t9)
/* f088e64: 00001825 */ or $v1,$zero,$zero
/* f088e68: 00002025 */ or $a0,$zero,$zero
/* f088e6c: 13200003 */ beqz $t9,.L0f088e7c
/* f088e70: 00003025 */ or $a2,$zero,$zero
/* f088e74: 10000001 */ b .L0f088e7c
/* f088e78: 24030001 */ addiu $v1,$zero,0x1
.L0f088e7c:
/* f088e7c: 8d29a024 */ lw $t1,%lo(g_Vars+0x64)($t1)
/* f088e80: 11200003 */ beqz $t1,.L0f088e90
/* f088e84: 00000000 */ nop
/* f088e88: 10000001 */ b .L0f088e90
/* f088e8c: 24040001 */ addiu $a0,$zero,0x1
.L0f088e90:
/* f088e90: 8d4aa030 */ lw $t2,%lo(g_Vars+0x70)($t2)
/* f088e94: 11400003 */ beqz $t2,.L0f088ea4
/* f088e98: 00000000 */ nop
/* f088e9c: 10000001 */ b .L0f088ea4
/* f088ea0: 24060001 */ addiu $a2,$zero,0x1
.L0f088ea4:
/* f088ea4: 00c45821 */ addu $t3,$a2,$a0
/* f088ea8: 01636821 */ addu $t5,$t3,$v1
/* f088eac: 01a51021 */ addu $v0,$t5,$a1
/* f088eb0: 28410003 */ slti $at,$v0,0x3
/* f088eb4: 10200010 */ beqz $at,.L0f088ef8
/* f088eb8: 24010002 */ addiu $at,$zero,0x2
/* f088ebc: 1441000a */ bne $v0,$at,.L0f088ee8
/* f088ec0: 00000000 */ nop
/* f088ec4: 0fc54bcd */ jal optionsGetScreenSplit
/* f088ec8: 00000000 */ nop
/* f088ecc: 24010001 */ addiu $at,$zero,0x1
/* f088ed0: 10410009 */ beq $v0,$at,.L0f088ef8
/* f088ed4: 3c0c8009 */ lui $t4,%hi(g_Is4Mb)
/* f088ed8: 918c0af0 */ lbu $t4,%lo(g_Is4Mb)($t4)
/* f088edc: 24010001 */ addiu $at,$zero,0x1
/* f088ee0: 11810005 */ beq $t4,$at,.L0f088ef8
/* f088ee4: 00000000 */ nop
.L0f088ee8:
/* f088ee8: 0fc5b9f1 */ jal langGet
/* f088eec: 24045229 */ addiu $a0,$zero,0x5229
/* f088ef0: 10000004 */ b .L0f088f04
/* f088ef4: 00402025 */ or $a0,$v0,$zero
.L0f088ef8:
/* f088ef8: 0fc5b9f1 */ jal langGet
/* f088efc: 2404522a */ addiu $a0,$zero,0x522a
/* f088f00: 00402025 */ or $a0,$v0,$zero
.L0f088f04:
/* f088f04: 00002825 */ or $a1,$zero,$zero
/* f088f08: 0fc377e9 */ jal hudmsgCreateWithFlags
/* f088f0c: 24060001 */ addiu $a2,$zero,0x1
/* f088f10: 240e0001 */ addiu $t6,$zero,0x1
.L0f088f14:
/* f088f14: afae0098 */ sw $t6,0x98($sp)
/* f088f18: 10000022 */ b .L0f088fa4
/* f088f1c: 24020001 */ addiu $v0,$zero,0x1
.L0f088f20:
/* f088f20: 8d0f04cc */ lw $t7,0x4cc($t0)
/* f088f24: 3c048009 */ lui $a0,%hi(var80095200)
/* f088f28: 240500e5 */ addiu $a1,$zero,0xe5
/* f088f2c: 15e0000d */ bnez $t7,.L0f088f64
/* f088f30: 00003025 */ or $a2,$zero,$zero
/* f088f34: 3c01bf80 */ lui $at,0xbf80
/* f088f38: 44814000 */ mtc1 $at,$f8
/* f088f3c: 2418ffff */ addiu $t8,$zero,-1
/* f088f40: 2419ffff */ addiu $t9,$zero,-1
/* f088f44: 2409ffff */ addiu $t1,$zero,-1
/* f088f48: afa9001c */ sw $t1,0x1c($sp)
/* f088f4c: afb90018 */ sw $t9,0x18($sp)
/* f088f50: afb80010 */ sw $t8,0x10($sp)
/* f088f54: 8c845200 */ lw $a0,%lo(var80095200)($a0)
/* f088f58: 2407ffff */ addiu $a3,$zero,-1
/* f088f5c: 0c004241 */ jal sndStart
/* f088f60: e7a80014 */ swc1 $f8,0x14($sp)
.L0f088f64:
/* f088f64: 8faa00a4 */ lw $t2,0xa4($sp)
/* f088f68: 5140000c */ beqzl $t2,.L0f088f9c
/* f088f6c: 240b0004 */ addiu $t3,$zero,0x4
/* f088f70: 0fc44bfb */ jal invGetActivatedTextByObj
/* f088f74: 8fa4009c */ lw $a0,0x9c($sp)
/* f088f78: 14400004 */ bnez $v0,.L0f088f8c
/* f088f7c: 00402025 */ or $a0,$v0,$zero
/* f088f80: 0fc5b9f1 */ jal langGet
/* f088f84: 2404522b */ addiu $a0,$zero,0x522b
/* f088f88: 00402025 */ or $a0,$v0,$zero
.L0f088f8c:
/* f088f8c: 00002825 */ or $a1,$zero,$zero
/* f088f90: 0fc377e9 */ jal hudmsgCreateWithFlags
/* f088f94: 24060009 */ addiu $a2,$zero,0x9
/* f088f98: 240b0004 */ addiu $t3,$zero,0x4
.L0f088f9c:
/* f088f9c: afab0098 */ sw $t3,0x98($sp)
/* f088fa0: 24020004 */ addiu $v0,$zero,0x4
.L0f088fa4:
/* f088fa4: 24010001 */ addiu $at,$zero,0x1
/* f088fa8: 1441000d */ bne $v0,$at,.L0f088fe0
/* f088fac: 8fad009c */ lw $t5,0x9c($sp)
/* f088fb0: 8dac0040 */ lw $t4,0x40($t5)
/* f088fb4: 318e0010 */ andi $t6,$t4,0x10
/* f088fb8: 15c00009 */ bnez $t6,.L0f088fe0
/* f088fbc: 00000000 */ nop
/* f088fc0: 91a60002 */ lbu $a2,0x2($t5)
/* f088fc4: 01a02025 */ or $a0,$t5,$zero
/* f088fc8: 00002825 */ or $a1,$zero,$zero
/* f088fcc: 30cf0004 */ andi $t7,$a2,0x4
/* f088fd0: 0fc1ab4b */ jal objFree
/* f088fd4: 01e03025 */ or $a2,$t7,$zero
/* f088fd8: 1000000a */ b .L0f089004
/* f088fdc: 24020001 */ addiu $v0,$zero,0x1
.L0f088fe0:
/* f088fe0: 10400007 */ beqz $v0,.L0f089000
/* f088fe4: 8fb80094 */ lw $t8,0x94($sp)
/* f088fe8: 17000003 */ bnez $t8,.L0f088ff8
/* f088fec: 00000000 */ nop
/* f088ff0: 0fc447f3 */ jal invGiveProp
/* f088ff4: 8fa400a0 */ lw $a0,0xa0($sp)
.L0f088ff8:
/* f088ff8: 10000002 */ b .L0f089004
/* f088ffc: 24020004 */ addiu $v0,$zero,0x4
.L0f089000:
/* f089000: 00001025 */ or $v0,$zero,$zero
.L0f089004:
/* f089004: 8fbf0024 */ lw $ra,0x24($sp)
/* f089008: 27bd00a0 */ addiu $sp,$sp,0xa0
/* f08900c: 03e00008 */ jr $ra
/* f089010: 00000000 */ nop
);
#endif
// Mismatch: Goal stores obj in a2 and sp9c, and copies it from a2 for the more
// specific obj types. The below uses sp9c everywhere.
//s32 propPickupByPlayer(struct prop *prop, bool showhudmsg)
//{
// struct defaultobj *obj = prop->obj; // 9c
// s32 sp94[2];
// s32 result;
//
// sp94[0] = TICKOP_NONE;
//
// if (g_Vars.currentplayer->isdead || g_Vars.lvupdate240 == 0) {
// return TICKOP_NONE;
// }
//
// // 88c
// switch (obj->type) {
// case OBJTYPE_KEY: // f0888b4 - key
// if (g_Vars.in_cutscene == false) {
// sndStart(var80095200, SFX_PICKUP_KEYCARD, NULL, -1, -1, -1, -1, -1);
// }
//
// if (showhudmsg) {
// char *text = invGetActivatedTextByObj(obj);
//
// if (text == NULL) {
// text = langGet(L_PROPOBJ_040); // "Picked up a key."
// }
//
// hudmsgCreateWithFlags(text, HUDMSGTYPE_DEFAULT, HUDMSGFLAG_ONLYIFALIVE | HUDMSGFLAG_ALLOWDUPES);
// }
//
// result = TICKOP_GIVETOPLAYER;
// break;
// case OBJTYPE_AMMOCRATE: // f088934 - ammocrate
// {
// struct ammocrateobj *crate = (struct ammocrateobj *)obj; // 8c
// ammoHandlePickup(crate->ammotype, ammocrateGetPickupAmmoQty(crate), g_Vars.in_cutscene == false, showhudmsg);
// sp94[1] = TICKOP_FREE;
// result = TICKOP_FREE;
// }
// break;
// case OBJTYPE_MULTIAMMOCRATE: // f088974 - multiammocrate
// {
// struct multiammocrateobj *crate = (struct multiammocrateobj *)obj;
// s32 i;
//
// for (i = 0; i != 19; i++) {
// s32 qty = crate->slots[i].quantity;
//
// if (g_Vars.normmplayerisrunning == false) {
// qty *= g_AmmoMultiplier;
// }
//
// ammoHandlePickup(i + 1, qty, false, showhudmsg);
// }
//
// if (g_Vars.in_cutscene == false) {
// sndStart(var80095200, SFX_PICKUP_AMMO, NULL, -1, -1, -1, -1, -1);
// }
//
// sp94[1] = TICKOP_FREE;
// result = TICKOP_FREE;
// }
// break;
// case OBJTYPE_WEAPON: // f088a34 - weapon
// {
// struct weaponobj *weapon = (struct weaponobj *)obj;
// s32 count = 0;
// bool sp112 = false;
// s32 ammotype;
//
// if (g_Vars.normmplayerisrunning) {
// if (weapon->weaponnum == WEAPON_BRIEFCASE2) {
// result = scenarioPickUpBriefcase(g_Vars.currentplayer->prop->chr, prop);
//
// if (result) {
// weaponPlayPickupSound(weapon->weaponnum);
// }
//
// return result;
// }
//
// if (weapon->weaponnum == WEAPON_DATAUPLINK) {
// result = scenarioPickUpUplink(g_Vars.currentplayer->prop->chr, prop);
//
// if (result) {
// weaponPlayPickupSound(weapon->weaponnum);
// }
//
// return result;
// }
// }
//
// // acc
// if (g_Vars.in_cutscene == false) {
// weaponPlayPickupSound(weapon->weaponnum);
// }
//
// // af4
// if (obj->hidden & OBJHFLAG_HASTEXTOVERRIDE) {
// if (weapon->weaponnum <= WEAPON_PSYCHOSISGUN) {
// count = invGiveWeaponsByProp(prop);
// sp94[0] = TICKOP_FREE;
// }
//
// if (showhudmsg) {
// char *text = invGetActivatedTextByObj(obj);
//
// if (text) {
// hudmsgCreateWithFlags(text, HUDMSGTYPE_DEFAULT, HUDMSGFLAG_ONLYIFALIVE | HUDMSGFLAG_ALLOWDUPES);
// } else {
// currentPlayerQueuePickupWeaponHudmsg(weapon->weaponnum, count == 2);
// }
//
// sp112 = true;
// }
//
// sp94[1] = TICKOP_GIVETOPLAYER;
// } else {
// // b88
// if (weapon->weaponnum == WEAPON_BOLT) {
// count = 1; // sp104
// sp94[0] = TICKOP_FREE;
// ammoHandlePickup(AMMOTYPE_CROSSBOW, 1, g_Vars.in_cutscene == false, true);
// sp94[1] = TICKOP_FREE;
// showhudmsg = false;
// sp112 = true;
// } else {
// // bd0
// count = invGiveWeaponsByProp(prop);
//
// if (count) {
// sp112 = true;
// }
//
// sp94[0] = TICKOP_FREE;
//
// if (showhudmsg) {
// char *text = invGetActivatedTextByWeaponNum(weapon->weaponnum);
//
// if (text) {
// sp112 = true;
// hudmsgCreateWithFlags(text, HUDMSGTYPE_DEFAULT, HUDMSGFLAG_ONLYIFALIVE | HUDMSGFLAG_ALLOWDUPES);
// } else {
// if (sp112) {
// currentPlayerQueuePickupWeaponHudmsg(weapon->weaponnum, count == 2);
// }
// }
// }
//
// sp94[1] = TICKOP_FREE;
// }
// }
//
// // c50
// if (count == 2
// && bgunGetWeaponNum(HAND_RIGHT) == weapon->weaponnum
// && bgunGetWeaponNum(HAND_LEFT) != weapon->weaponnum) {
// bgunEquipWeapon2(HAND_LEFT, weapon->weaponnum);
// }
//
// // c9c
// ammotype = bgunGetAmmoTypeForWeapon(weapon->weaponnum, 0);
//
// if (ammotype) {
// s32 pickupqty = weaponGetPickupAmmoQty(weapon);
//
// if (pickupqty > 0) {
// s32 heldqty = bgunGetReservedAmmoCount(ammotype);
//
// if (bgunGetReservedAmmoCount(ammotype) < bgunGetCapacityByAmmotype(ammotype)) {
// bgunSetAmmoQuantity(ammotype, heldqty + pickupqty);
//
// if (sp112 == false && showhudmsg) {
// currentPlayerQueuePickupAmmoHudmsg(ammotype, pickupqty);
// }
// }
// }
// }
//
// // d20
// if (weapon->weaponnum == WEAPON_SUPERDRAGON) {
// s32 pickupqty = weaponGetPickupAmmoQty(weapon);
//
// if (bgunGetReservedAmmoCount(AMMOTYPE_DEVASTATOR) < bgunGetCapacityByAmmotype(AMMOTYPE_DEVASTATOR)) {
// s32 heldqty = bgunGetReservedAmmoCount(AMMOTYPE_DEVASTATOR);
//
// bgunSetAmmoQuantity(AMMOTYPE_DEVASTATOR, heldqty + 5);
//
// if (sp112 == false && showhudmsg) {
// currentPlayerQueuePickupAmmoHudmsg(AMMOTYPE_DEVASTATOR, pickupqty);
// }
// }
// }
//
// if (weapon->weaponnum == WEAPON_EYESPY && g_Vars.currentplayer->eyespy == NULL) {
// playerInitEyespy();
// }
//
// result = sp94[1];
// }
// break;
// case OBJTYPE_SHIELD: // f088dd0 - shield
// {
// struct shieldobj *shield = (struct shieldobj *)obj;
// playerSetShieldFrac(shield->amount);
//
// if (g_Vars.in_cutscene == false) {
// sndStart(var80095200, SFX_PICKUP_SHIELD, NULL, -1, -1, -1, -1, -1);
// }
//
// if (showhudmsg) {
// char *text = invGetActivatedTextByObj(obj);
//
// if (text == NULL) {
// s32 playercount = PLAYERCOUNT();
//
// if (playercount < 3 &&
// (playercount != 2 || (optionsGetScreenSplit() != SCREENSPLIT_VERTICAL && g_Is4Mb != true))) {
// text = langGet(L_PROPOBJ_041); // "Picked up a shield."
// } else {
// text = langGet(L_PROPOBJ_042); // "A shield."
// }
// }
//
// hudmsgCreateWithFlags(text, HUDMSGTYPE_DEFAULT, HUDMSGFLAG_ONLYIFALIVE);
// }
//
// sp94[1] = TICKOP_FREE;
// result = TICKOP_FREE;
// }
// break;
// case 0x03: // f088f20
// case 0x05: // f088f20
// case 0x06: // f088f20
// case 0x09: // f088f20
// case 0x0a: // f088f20
// case 0x0b: // f088f20
// case 0x0c: // f088f20
// case 0x0d: // f088f20
// case 0x0e: // f088f20
// case 0x0f: // f088f20
// case 0x10: // f088f20
// case 0x11: // f088f20
// case 0x12: // f088f20
// case 0x13: // f088f20
// case 0x16: // f088f20
// case 0x17: // f088f20
// case 0x18: // f088f20
// case 0x19: // f088f20
// case 0x1a: // f088f20
// case 0x1b: // f088f20
// case 0x1c: // f088f20
// case 0x1d: // f088f20
// case 0x1e: // f088f20
// case 0x1f: // f088f20
// case 0x20: // f088f20
// case 0x21: // f088f20
// case 0x22: // f088f20
// case 0x23: // f088f20
// case 0x24: // f088f20
// case 0x25: // f088f20
// case 0x26: // f088f20
// case 0x27: // f088f20
// case 0x28: // f088f20
// case 0x29: // f088f20
// case 0x2a: // f088f20
// case 0x2b: // f088f20
// case 0x2c: // f088f20
// case 0x2d: // f088f20
// case 0x2e: // f088f20
// case 0x2f: // f088f20
// default:
// if (g_Vars.in_cutscene == false) {
// sndStart(var80095200, SFX_PICKUP_KEYCARD, NULL, -1, -1, -1, -1, -1);
// }
//
// if (showhudmsg) {
// char *text = invGetActivatedTextByObj(obj);
//
// if (text == NULL) {
// text = langGet(L_PROPOBJ_043); // "Picked up something."
// }
//
// hudmsgCreateWithFlags(text, HUDMSGTYPE_DEFAULT, HUDMSGFLAG_ONLYIFALIVE | HUDMSGFLAG_ALLOWDUPES);
// }
//
// sp94[1] = TICKOP_GIVETOPLAYER;
// result = TICKOP_GIVETOPLAYER;
// break;
// }
//
// // fa4
// if (result == TICKOP_FREE && (obj->hidden & OBJHFLAG_TAGGED) == 0) {
// objFree(obj, false, obj->hidden2 & OBJH2FLAG_CANREGEN);
// return TICKOP_FREE;
// }
//
// // fe0
// if (result) {
// if (sp94[0] == TICKOP_NONE) {
// invGiveProp(prop);
// }
//
// return TICKOP_GIVETOPLAYER;
// }
//
// return TICKOP_NONE;
//}
s32 objTestForPickup(struct prop *prop)
{
struct defaultobj *obj = prop->obj;
if (obj->hidden & OBJHFLAG_REAPABLE) {
return TICKOP_NONE;
}
if (func0f085194(obj) && obj->type != OBJTYPE_HAT) {
if (obj->flags & OBJFLAG_UNCOLLECTABLE) {
return TICKOP_NONE;
}
} else {
if ((obj->flags & OBJFLAG_COLLECTABLE) == 0) {
return TICKOP_NONE;
}
}
if (obj->flags & OBJFLAG_THROWNLAPTOP) {
return TICKOP_NONE;
}
if ((obj->hidden & OBJHFLAG_AIRBORNE) && obj->projectile->unk0b4 > 0) {
if (obj->projectile->unk108 == NULL) {
if (obj->projectile->unk090 == 0) {
return TICKOP_NONE;
}
} else {
if (obj->projectile->unk108 != g_Vars.currentplayer->prop) {
return TICKOP_NONE;
}
}
}
if (!objCanPickupFromSafe(obj)) {
return TICKOP_NONE;
}
if (obj->type == OBJTYPE_WEAPON) {
struct weaponobj *weapon = prop->weapon;
bool maybe = true;
s32 leftweaponnum;
s32 rightweaponnum;
if (weapon->weaponnum == WEAPON_GRENADE
|| weapon->weaponnum == WEAPON_GRENADEROUND
|| weapon->weaponnum == WEAPON_NBOMB
|| weapon->weaponnum == WEAPON_SKROCKET) {
if (weapon->timer240 >= 0 || (obj->hidden & OBJHFLAG_REAPABLE)) {
return TICKOP_NONE;
}
}
if (weapon->weaponnum == WEAPON_REMOTEMINE
|| weapon->weaponnum == WEAPON_PROXIMITYMINE
|| weapon->weaponnum == WEAPON_TIMEDMINE
|| (weapon->weaponnum == WEAPON_DRAGON && weapon->gunfunc == FUNC_SECONDARY)
|| weapon->weaponnum == WEAPON_TRACERBUG
|| weapon->weaponnum == WEAPON_TARGETAMPLIFIER
|| weapon->weaponnum == WEAPON_COMMSRIDER
|| weapon->weaponnum == WEAPON_ECMMINE) {
if (weapon->timer240 >= 0 || (obj->hidden & OBJHFLAG_REAPABLE)) {
return TICKOP_NONE;
}
}
if (weapon->weaponnum == WEAPON_ROCKET
|| weapon->weaponnum == WEAPON_HOMINGROCKET
|| weapon->weaponnum == WEAPON_BOLT
|| weapon->weaponnum == WEAPON_COMBATKNIFE) {
if (obj->hidden & OBJHFLAG_AIRBORNE) {
return TICKOP_NONE;
}
}
if (invHasSingleWeaponExcAllGuns(weapon->weaponnum) && bgunGetAmmoTypeForWeapon(weapon->weaponnum, FUNC_PRIMARY)) {
if (cheatIsActive(CHEAT_UNLIMITEDAMMO) || cheatIsActive(CHEAT_UNLIMITEDAMMONORELOADS)) {
maybe = false;
} else {
maybe = bgunGetAmmoQtyForWeapon(weapon->weaponnum, FUNC_PRIMARY) >= bgunGetAmmoCapacityForWeapon(weapon->weaponnum, FUNC_PRIMARY);
}
if (weapon->weaponnum == WEAPON_SUPERDRAGON) {
if (bgunGetAmmoQtyForWeapon(weapon->weaponnum, FUNC_SECONDARY) < bgunGetAmmoCapacityForWeapon(weapon->weaponnum, FUNC_SECONDARY)) {
maybe = false;
}
}
if (maybe) {
if (weapon->dualweapon || weapon->dualweaponnum >= 0) {
if (weapon->dualweapon) {
leftweaponnum = rightweaponnum = weapon->dualweapon->weaponnum;
} else {
leftweaponnum = rightweaponnum = weapon->dualweaponnum;
}
if ((weapon->base.flags & OBJFLAG_DEACTIVATED)) {
rightweaponnum = weapon->weaponnum;
} else {
leftweaponnum = weapon->weaponnum;
}
if (invHasDoubleWeaponExcAllGuns(leftweaponnum, rightweaponnum)) {
return TICKOP_NONE;
}
} else {
if (g_Vars.normmplayerisrunning
&& weaponHasFlag(weapon->weaponnum, WEAPONFLAG_DUALWIELD)
&& !invHasDoubleWeaponExcAllGuns(weapon->weaponnum, weapon->weaponnum)) {
struct invitem *item = invFindSingleWeapon(weapon->weaponnum);
if ((item && item->type_weap.pickuppad == weapon->base.pad) || weapon->base.pad < 0) {
return TICKOP_NONE;
}
} else {
return TICKOP_NONE;
}
}
}
}
} else if (obj->type == OBJTYPE_AMMOCRATE) {
struct ammocrateobj *crate = (struct ammocrateobj *) prop->obj;
if (bgunGetReservedAmmoCount(crate->ammotype) >= bgunGetCapacityByAmmotype(crate->ammotype)) {
if ((crate->ammotype != AMMOTYPE_GRENADE || invHasSingleWeaponExcAllGuns(WEAPON_GRENADE))
&& (crate->ammotype != AMMOTYPE_CLOAK || invHasSingleWeaponExcAllGuns(WEAPON_CLOAKINGDEVICE))
&& (crate->ammotype != AMMOTYPE_BOOST || invHasSingleWeaponExcAllGuns(WEAPON_COMBATBOOST))
&& (crate->ammotype != AMMOTYPE_NBOMB || invHasSingleWeaponExcAllGuns(WEAPON_NBOMB))
&& (crate->ammotype != AMMOTYPE_REMOTE_MINE || invHasSingleWeaponExcAllGuns(WEAPON_REMOTEMINE))
&& (crate->ammotype != AMMOTYPE_PROXY_MINE || invHasSingleWeaponExcAllGuns(WEAPON_PROXIMITYMINE))
&& (crate->ammotype != AMMOTYPE_TIMED_MINE || invHasSingleWeaponExcAllGuns(WEAPON_TIMEDMINE))
&& (crate->ammotype != AMMOTYPE_KNIFE || invHasSingleWeaponExcAllGuns(WEAPON_COMBATKNIFE))) {
return TICKOP_NONE;
}
}
} else if (obj->type == OBJTYPE_MULTIAMMOCRATE) {
struct multiammocrateobj *crate = (struct multiammocrateobj *) prop->obj;
bool ignore = true;
s32 i;
if (objGetDestroyedLevel(obj)) {
return TICKOP_NONE;
}
for (i = 0; i <= AMMOTYPE_NBOMB; i++) {
s32 ammotype = i + 1;
if (crate->slots[i].quantity > 0) {
if (bgunGetReservedAmmoCount(ammotype) < bgunGetCapacityByAmmotype(ammotype)) {
ignore = false;
break;
}
if ((ammotype == AMMOTYPE_GRENADE && !invHasSingleWeaponExcAllGuns(WEAPON_GRENADE))
|| (ammotype == AMMOTYPE_CLOAK && !invHasSingleWeaponExcAllGuns(WEAPON_CLOAKINGDEVICE))
|| (ammotype == AMMOTYPE_BOOST && !invHasSingleWeaponExcAllGuns(WEAPON_COMBATBOOST))
|| (ammotype == AMMOTYPE_NBOMB && !invHasSingleWeaponExcAllGuns(WEAPON_NBOMB))
|| (ammotype == AMMOTYPE_REMOTE_MINE && !invHasSingleWeaponExcAllGuns(WEAPON_REMOTEMINE))
|| (ammotype == AMMOTYPE_PROXY_MINE && !invHasSingleWeaponExcAllGuns(WEAPON_PROXIMITYMINE))
|| (ammotype == AMMOTYPE_TIMED_MINE && !invHasSingleWeaponExcAllGuns(WEAPON_TIMEDMINE))
|| (ammotype == AMMOTYPE_KNIFE && !invHasSingleWeaponExcAllGuns(WEAPON_COMBATKNIFE))) {
ignore = false;
break;
}
}
}
if (ignore) {
return TICKOP_NONE;
}
} else if (obj->type == OBJTYPE_SHIELD) {
struct shieldobj *shield = (struct shieldobj *) prop->obj;
bool ignore = false;
if (shield->amount <= playerGetShieldFrac()) {
ignore = true;
} else if (g_Vars.normmplayerisrunning
&& g_MpSetup.scenario == MPSCENARIO_HOLDTHEBRIEFCASE
&& invHasBriefcase()) {
ignore = true;
}
if (ignore) {
return TICKOP_NONE;
}
}
if (g_Vars.currentplayer->vv_verta * M_BADTAU / 360.0f < -0.7852731347084f) {
if (g_Vars.currentplayer->magnetattracttime < 0) {
return TICKOP_NONE;
}
}
{
struct prop *playerprop = g_Vars.currentplayer->prop;
f32 xdiff = prop->pos.x - playerprop->pos.x;
f32 ydiff = prop->pos.y - playerprop->pos.y;
f32 zdiff = prop->pos.z - playerprop->pos.z;
f32 range;
bool usebigrange;
bool pickup;
u32 stack;
usebigrange = (obj->flags3 & OBJFLAG3_ONSHELF)
&& (cheatIsActive(CHEAT_SMALLJO) || cheatIsActive(CHEAT_PLAYASELVIS));
if (g_Vars.currentplayer->magnetattracttime >= 60) {
pickup = xdiff * xdiff + zdiff * zdiff <= 350 * 350 && ydiff >= -500 && ydiff <= 500;
} else {
if (usebigrange) {
range = 200 * 200;
} else {
range = 100 * 100;
}
pickup = xdiff * xdiff + zdiff * zdiff <= range && ydiff >= -200 && ydiff <= 200;
}
if (pickup
&& (obj->flags2 & OBJFLAG2_PICKUPWITHOUTLOS) == 0
&& !usebigrange
&& cdHasLineOfSight(&playerprop->pos, playerprop->rooms, &prop->pos, prop->rooms, 0x22, 0x1c) == 0) {
pickup = false;
}
if (pickup) {
return propPickupByPlayer(prop, 1);
}
}
return TICKOP_NONE;
}
bool func0f0899dc(struct prop *prop, struct coord *arg1, f32 *arg2, f32 *arg3)
{
if (prop->flags & PROPFLAG_ONTHISSCREENTHISTICK) {
struct defaultobj *obj = prop->obj;
Mtxf *matrix = model0001a60c(obj->model);
arg1->z = matrix->m[3][2];
if (arg1->z < 0) {
arg1->x = matrix->m[3][0];
arg1->y = matrix->m[3][1];
arg3[0] = 0;
arg3[1] = 0;
arg2[0] = 0;
arg2[1] = 0;
func0f067d88(obj->model, &arg2[1], &arg2[0], &arg3[1], &arg3[0]);
return true;
}
}
return false;
}
void modelFreeVertices(s32 vtxstoretype, struct model *model)
{
struct modelfiledata *modeldef = model->filedata;
struct modelnode *node = modeldef->rootnode;
while (node) {
u32 type = node->type & 0xff;
union modelrodata *rodata;
union modelrwdata *rwdata;
s32 newtype;
switch (type) {
case MODELNODETYPE_DL:
rodata = node->rodata;
rwdata = modelGetNodeRwData(model, node);
if (modelIsNodeNotTvscreen(modeldef, node)) {
if (rwdata->dl.vertices != rodata->dl.vertices) {
vtxstoreFree(vtxstoretype, rwdata->dl.vertices);
rwdata->dl.vertices = rodata->dl.vertices;
}
if ((u32)rwdata->dl.colours != ALIGN8((u32)rodata->dl.vertices + rodata->dl.numvertices * sizeof(struct gfxvtx))) {
if (vtxstoretype == VTXSTORETYPE_OBJVTX) {
newtype = VTXSTORETYPE_OBJCOL;
} else {
newtype = VTXSTORETYPE_CHRCOL;
}
vtxstoreFree(newtype, rwdata->dl.colours);
rwdata->dl.colours = (struct colour *)ALIGN8((u32)rodata->dl.vertices + rodata->dl.numvertices * sizeof(struct gfxvtx));
}
}
break;
case MODELNODETYPE_DISTANCE:
model0001c784(model, node);
break;
case MODELNODETYPE_TOGGLE:
model0001c7d0(model, node);
break;
case MODELNODETYPE_HEADSPOT:
modelAttachHead(model, node);
break;
}
if (node->child) {
node = node->child;
} else {
while (node) {
if (node->next) {
node = node->next;
break;
}
node = node->parent;
}
}
}
}
struct prop *hatApplyToChr(struct hatobj *hat, struct chrdata *chr, struct modelfiledata *filedata, struct prop *prop, struct model *model)
{
if (chr->model->filedata->skel == &g_SkelChr) {
prop = objInit(&hat->base, filedata, prop, model);
if (prop && hat->base.model) {
f32 scale = hat->base.extrascale * (1.0f / 256.0f);
modelSetScale(hat->base.model, scale * hat->base.model->scale);
hat->base.model->attachedtomodel = chr->model;
hat->base.model->attachedtonode = modelGetPart(chr->model->filedata, MODELPART_CHR_0006);
propReparent(prop, chr->prop);
chr->weapons_held[2] = prop;
}
}
if (hat);
return prop;
}
void hatLoadAndApplyToChr(struct hatobj *hat, struct chrdata *chr)
{
u32 stack;
s32 modelnum = hat->base.modelnum;
setupLoadModeldef(modelnum);
hatApplyToChr(hat, chr, g_ModelStates[modelnum].filedata, NULL, NULL);
}
void hatAssignToChr(struct hatobj *hat, struct chrdata *chr)
{
hatLoadAndApplyToChr(hat, chr);
}
struct prop *hatCreateForChr(struct chrdata *chr, s32 modelnum, u32 flags)
{
struct modelfiledata *filedata;
struct prop *prop;
struct model *model;
struct hatobj *obj;
setupLoadModeldef(modelnum);
filedata = g_ModelStates[modelnum].filedata;
prop = propAllocate();
model = modelInstantiateWithoutAnim(filedata);
obj = hatCreate(prop == NULL, model == NULL, filedata);
if (prop == NULL) {
prop = propAllocate();
}
if (model == NULL) {
model = modelInstantiateWithoutAnim(filedata);
}
if (obj && prop && model) {
struct hatobj tmp = {
256, // extrascale
0, // hidden2
OBJTYPE_HAT, // type
0, // modelnum
0, // pad
OBJFLAG_ASSIGNEDTOCHR, // flags
0, // flags2
0, // flags3
NULL, // prop
NULL, // model
1, 0, 0, // realrot
0, 1, 0,
0, 0, 1,
0, // hidden
NULL, // geo
NULL, // projectile
0, // damage
1000, // maxdamage
0xff, 0xff, 0xff, 0x00, // shadecol
0xff, 0xff, 0xff, 0x00, // nextcol
0x0fff, // floorcol
0, // tiles
};
*obj = tmp;
obj->base.modelnum = modelnum;
obj->base.flags = flags | OBJFLAG_ASSIGNEDTOCHR;
obj->base.pad = chr->chrnum;
prop = hatApplyToChr(obj, chr, filedata, prop, model);
} else {
if (model) {
modelFree(model);
}
if (prop) {
propFree(prop);
prop = NULL;
}
if (obj) {
obj->base.prop = NULL;
obj->base.model = NULL;
}
}
return prop;
}
struct weaponobj *weaponCreate(bool musthaveprop, bool musthavemodel, struct modelfiledata *filedata)
{
s32 i;
struct weaponobj *tmp;
struct weaponobj *sp4c = NULL;
struct weaponobj *sp48 = NULL;
s32 sp44 = -1;
s32 sp40 = -1;
s32 sp3c = -1;
for (i = g_NextWeaponSlot; true; ) {
bool usable = false;
if (g_WeaponSlots[i].base.prop == NULL) {
if (!musthaveprop && !musthavemodel) {
sp44 = i;
break;
}
} else {
#if VERSION >= VERSION_NTSC_1_0
if ((g_WeaponSlots[i].base.hidden & OBJHFLAG_AIRBORNE) == 0
&& (g_WeaponSlots[i].base.hidden2 & OBJH2FLAG_CANREGEN) == 0
&& (g_WeaponSlots[i].base.flags & OBJFLAG_00800000) == 0)
#else
if ((g_WeaponSlots[i].base.hidden & OBJHFLAG_AIRBORNE) == 0
&& (g_WeaponSlots[i].base.hidden2 & OBJH2FLAG_CANREGEN) == 0)
#endif
{
if (g_WeaponSlots[i].base.prop->parent) {
if (g_WeaponSlots[i].base.hidden & OBJHFLAG_EMBEDDED) {
usable = true;
}
} else {
usable = true;
}
}
}
if (usable) {
if (!musthavemodel || func0f0b28d0(g_WeaponSlots[i].base.model, filedata)) {
if ((g_WeaponSlots[i].base.prop->flags & (PROPFLAG_ONTHISSCREENTHISTICK | PROPFLAG_ONANYSCREENTHISTICK | PROPFLAG_ONANYSCREENPREVTICK)) == 0 && sp40 < 0) {
sp40 = i;
}
if (sp3c < 0) {
sp3c = i;
}
}
}
i = (i + 1) % g_MaxWeaponSlots;
if (i == g_NextWeaponSlot) {
break;
}
}
if (sp44 >= 0) {
g_NextWeaponSlot = (sp44 + 1) % g_MaxWeaponSlots;
return &g_WeaponSlots[sp44];
}
tmp = (struct weaponobj *)setupFindObjForReuse(OBJTYPE_WEAPON, (struct defaultobj **)&sp4c, (struct defaultobj **)&sp48, musthaveprop, musthavemodel, filedata);
if (tmp) {
return tmp;
}
if (sp40 >= 0) {
if (g_WeaponSlots[sp40].base.prop) {
objFreePermanently(&g_WeaponSlots[sp40].base, true);
}
g_NextWeaponSlot = (sp40 + 1) % g_MaxWeaponSlots;
return &g_WeaponSlots[sp40];
}
if (sp4c) {
if (sp4c->base.prop) {
objFreePermanently(&sp4c->base, true);
}
return sp4c;
}
if (sp3c >= 0) {
if (g_WeaponSlots[sp3c].base.prop) {
objFreePermanently(&g_WeaponSlots[sp3c].base, true);
}
g_NextWeaponSlot = (sp3c + 1) % g_MaxWeaponSlots;
return &g_WeaponSlots[sp3c];
}
if (sp48) {
if (sp48->base.prop) {
objFreePermanently(&sp48->base, true);
}
return sp48;
}
return NULL;
}
struct weaponobj *func0f08a364(void)
{
return weaponCreate(false, false, NULL);
}
struct hatobj *hatCreate(bool musthaveprop, bool musthavemodel, struct modelfiledata *filedata)
{
s32 i;
struct hatobj *tmp;
struct hatobj *sp4c = NULL;
struct hatobj *sp48 = NULL;
s32 sp44 = -1;
s32 sp40 = -1;
s32 sp3c = -1;
for (i = g_NextHatSlot; true; ) {
if (g_HatSlots[i].base.prop == NULL) {
if (!musthaveprop && !musthavemodel) {
sp44 = i;
break;
}
} else if ((g_HatSlots[i].base.hidden & OBJHFLAG_AIRBORNE) == 0
&& g_HatSlots[i].base.prop->parent == NULL
&& (!musthavemodel || func0f0b28d0(g_HatSlots[i].base.model, filedata))) {
if ((g_HatSlots[i].base.prop->flags & (PROPFLAG_ONTHISSCREENTHISTICK | PROPFLAG_ONANYSCREENTHISTICK | PROPFLAG_ONANYSCREENPREVTICK)) == 0 && sp40 < 0) {
sp40 = i;
}
if (sp3c < 0) {
sp3c = i;
}
}
i = (i + 1) % g_MaxHatSlots;
if (i == g_NextHatSlot) {
break;
}
}
if (sp44 >= 0) {
g_NextHatSlot = (sp44 + 1) % g_MaxHatSlots;
return &g_HatSlots[sp44];
}
tmp = (struct hatobj *)setupFindObjForReuse(OBJTYPE_HAT, (struct defaultobj **)&sp4c, (struct defaultobj **)&sp48, musthaveprop, musthavemodel, filedata);
if (tmp) {
return tmp;
}
if (sp40 >= 0) {
if (g_HatSlots[sp40].base.prop) {
objFreePermanently(&g_HatSlots[sp40].base, true);
}
g_NextHatSlot = (sp40 + 1) % g_MaxHatSlots;
return &g_HatSlots[sp40];
}
if (sp4c) {
if (sp4c->base.prop) {
objFreePermanently(&sp4c->base, true);
}
return sp4c;
}
if (sp3c >= 0) {
if (g_HatSlots[sp3c].base.prop) {
objFreePermanently(&g_HatSlots[sp3c].base, true);
}
g_NextHatSlot = (sp3c + 1) % g_MaxHatSlots;
return &g_HatSlots[sp3c];
}
if (sp48) {
if (sp48->base.prop) {
objFreePermanently(&sp48->base, true);
}
return sp48;
}
return NULL;
}
struct hatobj *func0f08a6fc(void)
{
return hatCreate(false, false, NULL);
}
struct ammocrateobj *ammocrateAllocate(void)
{
s32 i;
// Try to find a free one
for (i = 0; i < g_MaxAmmoCrates; i++) {
if (g_AmmoCrates[i].base.prop == NULL) {
return &g_AmmoCrates[i];
}
}
// Find one that can be freed off-screen
for (i = 0; i < g_MaxAmmoCrates; i++) {
if ((g_AmmoCrates[i].base.hidden & OBJHFLAG_AIRBORNE) == 0
&& (g_AmmoCrates[i].base.hidden2 & OBJH2FLAG_CANREGEN) == 0
&& g_AmmoCrates[i].base.prop->parent == NULL
&& (g_AmmoCrates[i].base.prop->flags & (PROPFLAG_ONTHISSCREENTHISTICK | PROPFLAG_ONANYSCREENTHISTICK | PROPFLAG_ONANYSCREENPREVTICK)) == 0) {
objFreePermanently(&g_AmmoCrates[i].base, true);
return &g_AmmoCrates[i];
}
}
// Find one that can be freed on-screen
for (i = 0; i < g_MaxAmmoCrates; i++) {
if ((g_AmmoCrates[i].base.hidden & OBJHFLAG_AIRBORNE) == 0
&& (g_AmmoCrates[i].base.hidden2 & OBJH2FLAG_CANREGEN) == 0
&& g_AmmoCrates[i].base.prop->parent == NULL) {
objFreePermanently(&g_AmmoCrates[i].base, true);
return &g_AmmoCrates[i];
}
}
return NULL;
}
struct defaultobj *debrisAllocate(void)
{
s32 i;
// Try to find an unused slot
for (i = 0; i < g_MaxDebrisSlots; i++) {
if (g_DebrisSlots[i].prop == NULL) {
return &g_DebrisSlots[i];
}
}
// Try to find one that's landed and offscreen
for (i = 0; i < g_MaxDebrisSlots; i++) {
if ((g_DebrisSlots[i].hidden & OBJHFLAG_AIRBORNE) == 0
&& (g_DebrisSlots[i].hidden2 & OBJH2FLAG_CANREGEN) == 0
&& g_DebrisSlots[i].prop->parent == NULL
&& (g_DebrisSlots[i].prop->flags & (PROPFLAG_ONTHISSCREENTHISTICK | PROPFLAG_ONANYSCREENTHISTICK | PROPFLAG_ONANYSCREENPREVTICK)) == 0) {
objFreePermanently(&g_DebrisSlots[i], true);
return &g_DebrisSlots[i];
}
}
// Same as above but onscreen
for (i = 0; i < g_MaxDebrisSlots; i++) {
if ((g_DebrisSlots[i].hidden & OBJHFLAG_AIRBORNE) == 0
&& (g_DebrisSlots[i].hidden2 & OBJH2FLAG_CANREGEN) == 0
&& g_DebrisSlots[i].prop->parent == NULL) {
objFreePermanently(&g_DebrisSlots[i], true);
return &g_DebrisSlots[i];
}
}
return NULL;
}
void playerActivateRemoteMineDetonator(s32 playernum)
{
g_PlayersDetonatingMines |= 1 << playernum;
sndStart(var80095200, SFX_DETONATE, 0, -1, -1, -1, -1, -1);
bgunStartDetonateAnimation(playernum);
}
struct weaponobj *weaponFindChildByWeaponNum(s32 weaponnum, struct prop *prop)
{
struct weaponobj *weapon;
struct prop *child;
if (prop->type == PROPTYPE_WEAPON && weaponnum == prop->weapon->weaponnum) {
return prop->weapon;
}
child = prop->child;
while (child) {
weapon = weaponFindChildByWeaponNum(weaponnum, child);
if (weapon) {
return weapon;
}
child = child->next;
}
return NULL;
}
struct weaponobj *weaponFindLanded(s32 weaponnum)
{
struct prop *prop = g_Vars.activeprops;
while (prop) {
struct weaponobj *weapon = weaponFindChildByWeaponNum(weaponnum, prop);
if (weapon && (weapon->base.hidden & OBJHFLAG_AIRBORNE) == 0) {
return weapon;
}
prop = prop->next;
}
return NULL;
}
void weaponRegisterProxy(struct weaponobj *weapon)
{
s32 i;
for (i = 0; i < ARRAYCOUNT(g_Proxies); i++) {
if (g_Proxies[i] == NULL) {
g_Proxies[i] = weapon;
return;
}
}
}
void weaponUnregisterProxy(struct weaponobj *weapon)
{
s32 i;
for (i = 0; i < ARRAYCOUNT(g_Proxies); i++) {
if (g_Proxies[i] == weapon) {
g_Proxies[i] = NULL;
return;
}
}
}
void coordTriggerProxies(struct coord *pos, bool arg1)
{
s32 i;
for (i = 0; i < ARRAYCOUNT(g_Proxies); i++) {
struct weaponobj *weapon = g_Proxies[i];
if (weapon && weapon->timer240 == 1) {
f32 xdiff;
f32 ydiff;
f32 zdiff;
f32 range = 250 * 250;
if (weapon->weaponnum == WEAPON_DRAGON) {
range += range;
}
xdiff = pos->x - weapon->base.prop->pos.x;
ydiff = pos->y - weapon->base.prop->pos.y;
zdiff = pos->z - weapon->base.prop->pos.z;
if (xdiff * xdiff + ydiff * ydiff + zdiff * zdiff < range) {
if (weapon->weaponnum != WEAPON_GRENADE || arg1 == true) {
weapon->timer240 = 0;
}
}
}
}
}
void chrsTriggerProxies(void)
{
s32 numchrs = chrsGetNumSlots();
s32 i;
for (i = 0; i < numchrs; i++) {
struct chrdata *chr = &g_ChrSlots[i];
struct coord pos;
if (chr->model
#if VERSION >= VERSION_NTSC_1_0
&& (chr->hidden2 & CHRH2FLAG_0040)
&& (chr->chrflags & CHRCFLAG_HIDDEN) == 0
#else
&& (chr->hidden & CHRHFLAG_00000200)
#endif
&& chr->prop
&& (chr->prop->flags & PROPFLAG_ENABLED)
&& !chrIsDead(chr)) {
chrCalculatePosition(chr, &pos);
coordTriggerProxies(&pos, true);
}
if (chr);
}
}
void propweaponSetDual(struct weaponobj *weapon1, struct weaponobj *weapon2)
{
weapon1->dualweaponnum = weapon2->weaponnum;
weapon1->dualweapon = weapon2;
weapon2->dualweaponnum = weapon1->weaponnum;
weapon2->dualweapon = weapon1;
}
struct prop *func0f08adc8(struct weaponobj *weapon, struct modelfiledata *filedata, struct prop *prop, struct model *model)
{
prop = objInit(&weapon->base, filedata, prop, model);
if (prop) {
prop->type = PROPTYPE_WEAPON;
weaponSetGunfireVisible(prop, false, -1);
}
return prop;
}
struct prop *func0f08ae0c(struct weaponobj *weapon, struct modelfiledata *filedata)
{
struct prop *prop = objInitWithModelDef(&weapon->base, filedata);
if (prop) {
prop->type = PROPTYPE_WEAPON;
weaponSetGunfireVisible(prop, false, -1);
}
return prop;
}
bool chrEquipWeapon(struct weaponobj *weapon, struct chrdata *chr)
{
u32 stack1;
s32 handnum = (weapon->base.flags & OBJFLAG_WEAPON_LEFTHANDED) ? HAND_LEFT : HAND_RIGHT;
u32 stack2[2];
if (weapon->base.prop && weapon->base.model) {
if (g_Vars.mplayerisrunning) {
s32 playernum = mpPlayerGetIndex(chr);
weapon->base.hidden &= 0x0fffffff;
weapon->base.hidden |= (playernum << 28) & 0xf0000000;
}
if ((weapon->base.flags & OBJFLAG_WEAPON_AICANNOTUSE) == 0) {
if (chr->weapons_held[handnum]) {
if (chr->aibot) {
chr->weapons_held[handnum]->weapon->base.hidden |= OBJHFLAG_REAPABLE;
chr->weapons_held[handnum] = NULL;
} else {
return false;
}
}
if (!chr->weapons_held[handnum]) {
if (chr->model->filedata->skel == &g_SkelChr) {
weapon->base.model->attachedtomodel = chr->model;
if (handnum == HAND_RIGHT) {
weapon->base.model->attachedtonode = modelGetPart(chr->model->filedata, MODELPART_CHR_RIGHTHAND);
} else {
weapon->base.model->attachedtonode = modelGetPart(chr->model->filedata, MODELPART_CHR_LEFTHAND);
}
chr->weapons_held[handnum] = weapon->base.prop;
if ((weapon->base.flags & OBJFLAG_80000000) && chr->weapons_held[1 - handnum]) {
propweaponSetDual(weapon, chr->weapons_held[1 - handnum]->weapon);
}
} else if (chr->model->filedata->skel == &g_SkelSkedar) {
weapon->base.model->attachedtomodel = chr->model;
if (handnum == HAND_RIGHT) {
weapon->base.model->attachedtonode = modelGetPart(chr->model->filedata, MODELPART_SKEDAR_RIGHTHAND);
} else {
weapon->base.model->attachedtonode = modelGetPart(chr->model->filedata, MODELPART_SKEDAR_LEFTHAND);
}
chr->weapons_held[handnum] = weapon->base.prop;
if ((weapon->base.flags & OBJFLAG_80000000) && chr->weapons_held[1 - handnum]) {
propweaponSetDual(weapon, chr->weapons_held[1 - handnum]->weapon);
}
} else {
return false;
}
}
}
propReparent(weapon->base.prop, chr->prop);
} else {
return false;
}
return true;
}
struct prop *func0f08b108(struct weaponobj *weapon, struct chrdata *chr, struct modelfiledata *filedata, struct prop *prop, struct model *model)
{
prop = func0f08adc8(weapon, filedata, prop, model);
if (prop && weapon->base.model) {
f32 scale = weapon->base.extrascale * (1.0f / 256.0f);
modelSetScale(weapon->base.model, weapon->base.model->scale * scale);
if (!chrEquipWeapon(weapon, chr)) {
propFree(prop);
prop = NULL;
weapon->base.prop = NULL;
modelFree(weapon->base.model);
weapon->base.model = NULL;
}
} else {
if (prop) {
propFree(prop);
prop = NULL;
weapon->base.prop = NULL;
}
if (weapon->base.model) {
modelFree(weapon->base.model);
weapon->base.model = NULL;
}
}
return prop;
}
void func0f08b208(struct weaponobj *weapon, struct chrdata *chr)
{
u32 stack;
s32 modelnum = weapon->base.modelnum;
setupLoadModeldef(modelnum);
func0f08b108(weapon, chr, g_ModelStates[modelnum].filedata, 0, 0);
}
void func0f08b25c(struct weaponobj *weapon, struct chrdata *chr)
{
func0f08b208(weapon, chr);
}
struct autogunobj *laptopDeploy(s32 modelnum, struct gset *gset, struct chrdata *chr)
{
struct modelfiledata *filedata;
struct prop *prop;
struct model *model;
struct autogunobj *laptop = NULL;
s32 index;
if (g_Vars.normmplayerisrunning) {
index = mpPlayerGetIndex(chr);
} else {
index = playermgrGetPlayerNumByProp(chr->prop);
}
if (index >= 0 && index < g_MaxThrownLaptops) {
setupLoadModeldef(modelnum);
filedata = g_ModelStates[modelnum].filedata;
laptop = &g_ThrownLaptops[index];
if (laptop->base.prop) {
#if VERSION >= VERSION_NTSC_1_0
explosionCreateSimple(NULL, &laptop->base.prop->pos, laptop->base.prop->rooms, EXPLOSIONTYPE_LAPTOP, index);
#else
explosionCreateSimple(NULL, &laptop->base.prop->pos, laptop->base.prop->rooms, EXPLOSIONTYPE_LAPTOP, 0);
#endif
objFreePermanently(&laptop->base, true);
}
prop = propAllocate();
model = modelInstantiateWithoutAnim(filedata);
if (prop == NULL) {
prop = propAllocate();
}
if (model == NULL) {
model = modelInstantiateWithoutAnim(filedata);
}
if (laptop && prop && model) {
struct defaultobj tmp = {
256, // extrascale
0, // hidden2
OBJTYPE_AUTOGUN, // type
0, // modelnum
1, // pad
0, // flags
0, // flags2
0, // flags3
NULL, // prop
NULL, // model
1, 0, 0, // realrot
0, 1, 0,
0, 0, 1,
0, // hidden
NULL, // geo
NULL, // projectile
0, // damage
1000, // maxdamage
0xff, 0xff, 0xff, 0x00, // shadecol
0xff, 0xff, 0xff, 0x00, // nextcol
0x0fff, // floorcol
0, // tiles
};
laptop->base = tmp;
laptop->base.modelnum = modelnum;
prop = objInit(&laptop->base, filedata, prop, model);
laptop->targetpad = -1;
laptop->aimdist = 5000;
laptop->target = NULL;
laptop->targetteam = ~chr->team & 0xff;
laptop->nextchrtest = 0;
laptop->firecount = 0;
laptop->lastseebond60 = -1;
laptop->lastaimbond60 = -1;
laptop->allowsoundframe = -1;
laptop->firing = false;
laptop->yspeed = 0;
laptop->xspeed = 0;
laptop->barrelspeed = 0;
laptop->barrelrot = 0;
laptop->shotbondsum = 0;
if (chr->aibot) {
laptop->ammoquantity = botactTryRemoveAmmoFromReserve(chr->aibot, WEAPON_LAPTOPGUN, FUNC_PRIMARY, 200);
} else if (chr->prop->type == PROPTYPE_PLAYER) {
s32 qty;
s32 prevplayernum = g_Vars.currentplayernum;
setCurrentPlayerNum(playermgrGetPlayerNumByProp(chr->prop));
qty = bgunGetAmmoQtyForWeapon(WEAPON_LAPTOPGUN, FUNC_PRIMARY);
if (qty >= 200) {
laptop->ammoquantity = 200;
} else {
laptop->ammoquantity = qty;
}
if (cheatIsActive(CHEAT_UNLIMITEDAMMOLAPTOP)) {
laptop->ammoquantity = 255;
} else {
qty -= laptop->ammoquantity;
}
bgunSetAmmoQtyForWeapon(WEAPON_LAPTOPGUN, FUNC_PRIMARY, qty);
setCurrentPlayerNum(prevplayernum);
} else {
laptop->ammoquantity = 255;
}
laptop->beam = &g_ThrownLaptopBeams[index];
laptop->beam->age = -1;
laptop->yzero = 0;
laptop->xzero = 0;
laptop->yrot = 0;
laptop->xrot = 0;
laptop->ymaxleft = 12.56f;
laptop->ymaxright = -12.56f;
laptop->maxspeed = PALUPF(0.0697f);
prop->forcetick = true;
laptop->base.hidden |= OBJHFLAG_TAGGED;
laptop->base.flags |= OBJFLAG_THROWNLAPTOP | OBJFLAG_01000000 | OBJFLAG_20000000;
laptop->base.flags3 |= OBJFLAG3_INTERACTABLE | OBJFLAG3_08000000;
} else {
if (model) {
modelFree(model);
}
if (prop) {
propFree(prop);
}
laptop = NULL;
}
}
return laptop;
}
struct weaponobj *weaponCreateProjectileFromGset(s32 modelnum, struct gset *gset, struct chrdata *chr)
{
struct modelfiledata *modeldef;
struct prop *prop;
struct model *model;
struct weaponobj *weapon;
setupLoadModeldef(modelnum);
modeldef = g_ModelStates[modelnum].filedata;
prop = propAllocate();
model = modelInstantiateWithoutAnim(modeldef);
weapon = weaponCreate(prop == NULL, model == NULL, modeldef);
if (prop == NULL) {
prop = propAllocate();
}
if (model == NULL) {
model = modelInstantiateWithoutAnim(modeldef);
}
if (weapon && prop && model) {
struct weaponobj tmp = {
256, // extrascale
0, // hidden2
OBJTYPE_WEAPON, // type
0, // modelnum
-1, // pad
OBJFLAG_00000001, // flags
0, // flags2
0, // flags3
NULL, // prop
NULL, // model
1, 0, 0, // realrot
0, 1, 0,
0, 0, 1,
0, // hidden
NULL, // geo
NULL, // projectile
0, // damage
1000, // maxdamage
0xff, 0xff, 0xff, 0x00, // shadecol
0xff, 0xff, 0xff, 0x00, // nextcol
0x0fff, // floorcol
0, // tiles
0, // weaponnum
0, // unk5d
0, // unk5e
0, // gunfunc
0, // fadeouttimer60
-1, // dualweaponnum
-1, // timer240
NULL, // dualweapon
};
*weapon = tmp;
weapon->weaponnum = gset->weaponnum;
weapon->unk5d = gset->unk0639;
weapon->unk5e = gset->unk063a;
weapon->gunfunc = gset->weaponfunc;
// This switch is useless because everything uses the same case
switch (gset->weaponnum) {
case WEAPON_SUPERDRAGON:
case WEAPON_DEVASTATOR:
case WEAPON_ROCKETLAUNCHER:
case WEAPON_SLAYER:
case WEAPON_COMBATKNIFE:
case WEAPON_CROSSBOW:
case WEAPON_GRENADE:
case WEAPON_NBOMB:
case WEAPON_TIMEDMINE:
case WEAPON_PROXIMITYMINE:
case WEAPON_REMOTEMINE:
case WEAPON_ROCKETLAUNCHER_34:
default:
weapon->base.modelnum = modelnum;
prop = func0f08adc8(weapon, modeldef, prop, model);
if (g_Vars.mplayerisrunning) {
s32 index = mpPlayerGetIndex(chr);
weapon->base.hidden &= 0x0fffffff;
weapon->base.hidden |= ((index << 28) & 0xf0000000);
}
prop->forcetick = true;
break;
}
} else {
#if VERSION >= VERSION_NTSC_1_0
if (weapon) {
weapon->base.prop = NULL;
weapon->base.model = NULL;
}
#endif
weapon = NULL;
if (model) {
modelFree(model);
}
if (prop) {
propFree(prop);
}
}
return weapon;
}
struct weaponobj *weaponCreateProjectileFromWeaponNum(s32 modelnum, s32 weaponnum, struct chrdata *chr)
{
struct gset gset = {0};
gset.weaponnum = weaponnum;
return weaponCreateProjectileFromGset(modelnum, &gset, chr);
}
void weaponDeleteFromChr(struct chrdata *chr, s32 hand)
{
if (chr && chr->weapons_held[hand]) {
struct defaultobj *obj = chr->weapons_held[hand]->obj;
obj->hidden |= OBJHFLAG_REAPABLE;
}
}
struct prop *weaponCreateForChr(struct chrdata *chr, s32 modelnum, s32 weaponnum, u32 flags, struct weaponobj *obj, struct modelfiledata *filedata)
{
struct prop *prop;
struct model *model;
if (filedata == NULL) {
setupLoadModeldef(modelnum);
filedata = g_ModelStates[modelnum].filedata;
}
prop = propAllocate();
model = modelInstantiateWithoutAnim(filedata);
if (obj == NULL) {
obj = weaponCreate(prop == NULL, model == NULL, filedata);
}
if (prop == NULL) {
prop = propAllocate();
}
if (model == NULL) {
model = modelInstantiateWithoutAnim(filedata);
}
if (obj && prop && model) {
struct weaponobj tmp = {
256, // extrascale
0, // hidden2
OBJTYPE_WEAPON, // type
0, // modelnum
0, // pad
OBJFLAG_00000001 | OBJFLAG_ASSIGNEDTOCHR, // flags
0, // flags2
0, // flags3
NULL, // prop
NULL, // model
1, 0, 0, // realrot
0, 1, 0,
0, 0, 1,
0, // hidden
NULL, // geo
NULL, // projectile
0, // damage
1000, // maxdamage
0xff, 0xff, 0xff, 0x00, // shadecol
0xff, 0xff, 0xff, 0x00, // nextcol
0x0fff, // floorcol
0, // tiles
0, // weaponnum
0, // unk5d
0, // unk5e
0, // gunfunc
0, // fadeouttimer60
-1, // dualweaponnum
-1, // timer240
NULL, // dualweapon
};
*obj = tmp;
obj->weaponnum = weaponnum;
obj->gunfunc = FUNC_PRIMARY;
obj->unk5e = 0;
obj->unk5d = 0;
obj->base.modelnum = modelnum;
obj->base.flags = flags | OBJFLAG_ASSIGNEDTOCHR;
obj->base.pad = chr->chrnum;
prop = func0f08b108(obj, chr, filedata, prop, model);
} else {
if (model) {
modelFree(model);
}
if (prop) {
propFree(prop);
prop = NULL;
}
if (obj) {
obj->base.prop = NULL;
obj->base.model = NULL;
}
}
return prop;
}
struct prop *chrGiveWeapon(struct chrdata *chr, s32 model, s32 weaponnum, u32 flags)
{
return weaponCreateForChr(chr, model, weaponnum, flags, NULL, NULL);
}
struct prop *chrGiveWeaponWithAutoModel(struct chrdata *chr, s32 weaponnum, u32 flags)
{
return weaponCreateForChr(chr, playermgrGetModelOfWeapon(weaponnum), weaponnum, flags, NULL, NULL);
}
s32 weaponTestForPickup(struct prop *prop)
{
return objTestForPickup(prop);
}
void weaponSetGunfireVisible(struct prop *prop, bool visible, s16 room)
{
u32 stack[4];
bool flash = false;
struct defaultobj *obj = prop->obj;
struct modelnode *node1;
struct modelnode *node2;
union modelrwdata *rwdata1;
union modelrwdata *rwdata2;
if (obj && obj->type == OBJTYPE_WEAPON) {
struct model *model = obj->model;
if (model && model->filedata->skel == &g_SkelChrGun) {
node1 = modelGetPart(model->filedata, MODELPART_CHRGUN_GUNFIRE);
if (node1) {
rwdata1 = modelGetNodeRwData(model, node1);
rwdata1->gunfire.visible = visible;
if (visible) {
flash = true;
}
}
node2 = modelGetPart(model->filedata, MODELPART_CHRGUN_0002);
if (node2) {
rwdata2 = modelGetNodeRwData(model, node2);
rwdata2->toggle.visible = visible;
if (visible) {
flash = true;
}
}
}
}
if (flash && room != -1) {
roomAdjustLighting(room, 48, 128);
}
}
bool weaponIsGunfireVisible(struct prop *prop)
{
struct defaultobj *obj = prop->obj;
struct model *model = obj->model;
struct modelnode *node;
if (model && model->filedata->skel == &g_SkelChrGun) {
node = modelGetPart(model->filedata, MODELPART_CHRGUN_GUNFIRE);
if (node) {
struct modelrwdata_gunfire *rwdata = modelGetNodeRwData(model, node);
return rwdata->visible;
}
node = modelGetPart(model->filedata, MODELPART_CHRGUN_0002);
if (node) {
struct modelrwdata_toggle *rwdata = modelGetNodeRwData(model, node);
return rwdata->visible;
}
}
return false;
}
s32 hatGetType(struct prop *prop)
{
return -1;
}
bool doorIsUnlocked(struct prop *playerprop, struct prop *doorprop)
{
struct doorobj *door = doorprop->door;
bool canopen = false;
if (door->keyflags == 0) {
canopen = true;
} else if (invHasKeyFlags(door->keyflags)) {
canopen = true;
} else {
if (posIsInFrontOfDoor(&playerprop->pos, door)) {
if ((door->base.flags2 & OBJFLAG2_LOCKEDBACK)
&& (door->base.flags2 & OBJFLAG2_LOCKEDFRONT) == 0) {
canopen = true;
}
} else {
if ((door->base.flags2 & OBJFLAG2_LOCKEDBACK) == 0
&& (door->base.flags2 & OBJFLAG2_LOCKEDFRONT)) {
canopen = true;
}
}
}
if (!doorIsPadlockFree(door)) {
canopen = false;
}
return canopen;
}
bool doorIsPosInRange(struct doorobj *door, struct coord *pos, f32 distance, bool isbike)
{
struct coord range;
if ((door->doorflags & DOORFLAG_LONGRANGE) || isbike) {
distance += 400;
} else {
distance += 200;
}
range.x = distance;
range.y = 0;
range.z = 0;
if (door->doortype == DOORTYPE_VERTICAL
|| door->doortype == DOORTYPE_SLIDING
|| door->doortype == DOORTYPE_SWINGING) {
if (func0f0678f8(pos, &range, door->base.pad)) {
return true;
}
}
return false;
}
bool doorIsObjInRange(struct doorobj *door, struct defaultobj *obj, bool isbike)
{
struct modelrodata_bbox *bbox = objFindBboxRodata(obj);
f32 scale = 0;
if (scale < bbox->xmin) {
scale = bbox->xmin;
}
if (scale < -bbox->xmax) {
scale = -bbox->xmax;
}
if (scale < bbox->ymin) {
scale = bbox->ymin;
}
if (scale < -bbox->ymax) {
scale = -bbox->ymax;
}
if (scale < bbox->zmin) {
scale = bbox->zmin;
}
if (scale < -bbox->zmax) {
scale = -bbox->zmax;
}
scale *= obj->model->scale;
return doorIsPosInRange(door, &obj->prop->pos, scale, isbike);
}
/**
* @bug: result should be an integer. Its value can only be 0.0f or 1.0f.
* Nothing bad comes from this, but it uses unnecessary float conversions.
*/
bool vectorIsInFrontOfDoor(struct doorobj *door, struct coord *vector)
{
f32 result;
struct pad pad;
padUnpack(door->base.pad, PADFIELD_NORMAL, &pad);
result = vector->f[0] * pad.normal.f[0] + vector->f[1] * pad.normal.f[1] + vector->f[2] * pad.normal.f[2] >= 0.0f;
if (door->doorflags & DOORFLAG_FLIP) {
result = !result;
}
return result;
}
/**
* Return true if there are no chrs or grabbed/mounted objects within opening
* range of the door (for automatic doors).
*/
bool doorIsRangeEmpty(struct doorobj *door)
{
u32 stack;
s16 *propnumptr;
s16 propnums[256];
roomGetProps(door->base.prop->rooms, propnums, 256);
propnumptr = propnums;
while (*propnumptr >= 0) {
struct prop *prop = &g_Vars.props[*propnumptr];
if (prop->type == PROPTYPE_CHR || prop->type == PROPTYPE_PLAYER) {
if (doorIsPosInRange(door, &prop->pos, 0, false)) {
return false;
}
} else if (prop->type == PROPTYPE_OBJ) {
if (prop->obj->hidden & (OBJHFLAG_MOUNTED | OBJHFLAG_GRABBED)
&& doorIsObjInRange(door, prop->obj, (prop->obj->hidden & OBJHFLAG_MOUNTED) != 0)) {
return false;
}
}
propnumptr++;
}
return true;
}
/**
* Find automatic doors and open them if the player is close to them.
*/
void doorsCheckAutomatic(void)
{
struct prop *doorprop;
s16 *propnumptr;
s16 propnums[256];
roomGetProps(g_Vars.currentplayer->prop->rooms, propnums, 256);
propnumptr = propnums;
while (*propnumptr >= 0) {
doorprop = &g_Vars.props[*propnumptr];
if (doorprop->type == PROPTYPE_DOOR) {
struct doorobj *door = doorprop->door;
if ((door->doorflags & DOORFLAG_AUTOMATIC)
&& doorIsUnlocked(g_Vars.currentplayer->prop, doorprop)
&& (door->mode == DOORMODE_CLOSING || (door->mode == DOORMODE_IDLE && door->frac <= 0))) {
bool canopen = false;
struct defaultobj *obj = NULL;
bool isbike = false;
struct doorobj *sibling;
if (g_Vars.currentplayer->bondmovemode == MOVEMODE_GRAB) {
obj = bmoveGetGrabbedProp()->obj;
} else if (g_Vars.currentplayer->bondmovemode == MOVEMODE_BIKE) {
obj = bmoveGetHoverbike()->obj;
isbike = true;
}
if ((posIsInFrontOfDoor(&g_Vars.currentplayer->prop->pos, door) != vectorIsInFrontOfDoor(door, &g_Vars.currentplayer->bond2.unk00)) != 0) {
canopen = doorIsPosInRange(door, &g_Vars.currentplayer->prop->pos, 0, isbike);
if (!canopen && obj) {
canopen = doorIsObjInRange(door, obj, isbike);
}
}
sibling = door->sibling;
while (sibling && sibling != door && !canopen) {
if ((posIsInFrontOfDoor(&g_Vars.currentplayer->prop->pos, sibling) != vectorIsInFrontOfDoor(sibling, &g_Vars.currentplayer->bond2.unk00)) != 0) {
canopen = doorIsPosInRange(sibling, &g_Vars.currentplayer->prop->pos, 0, isbike);
if (!canopen && obj) {
canopen = doorIsObjInRange(door, obj, isbike);
}
}
sibling = sibling->sibling;
}
if (canopen) {
doorsRequestMode(door, DOORMODE_OPENING);
}
}
}
propnumptr++;
}
}
void func0f08c424(struct doorobj *door, Mtxf *matrix)
{
mtx3ToMtx4(door->base.realrot, matrix);
mtx4SetTranslation(&door->base.prop->pos, matrix);
if (door->doorflags & DOORFLAG_FLIP) {
mtx00015edc(-1, matrix);
}
}
void doorGetBbox(struct doorobj *door, struct modelrodata_bbox *dst)
{
struct modelrodata_bbox *bbox = modelFindBboxRodata(door->base.model);
*dst = *bbox;
if (door->doorflags & DOORFLAG_0004) {
if (door->doortype == DOORTYPE_VERTICAL) {
dst->ymax = bbox->ymax + (bbox->ymin - bbox->ymax) * door->frac;
} else {
dst->xmin = bbox->xmin + (bbox->xmax - bbox->xmin) * door->frac;
}
}
}
void doorUpdateTiles(struct doorobj *door)
{
struct modelrodata_bbox bbox;
Mtxf spdc;
struct geoblock *geo;
Mtxf sp98;
struct coord sp8c;
struct coord sp80;
struct pad pad;
if (door->doorflags & DOORFLAG_0080) {
door->base.prop->pos.x = door->unk98.x * door->frac + door->startpos.x;
door->base.prop->pos.y = door->unk98.y * door->frac + door->startpos.y;
door->base.prop->pos.z = door->unk98.z * door->frac + door->startpos.z;
} else if (door->doortype == DOORTYPE_SWINGING
|| door->doortype == DOORTYPE_AZTECCHAIR
|| door->doortype == DOORTYPE_HULL) {
// @bug: LOOK is not loaded but is used below
// It doesn't appear to make any difference though
padUnpack(door->base.pad, PADFIELD_POS | PADFIELD_UP | PADFIELD_NORMAL | PADFIELD_BBOX, &pad);
sp8c.x = pad.pos.x + pad.up.x * pad.bbox.ymin;
sp8c.y = pad.pos.y + pad.up.y * pad.bbox.ymin;
sp8c.z = pad.pos.z + pad.up.z * pad.bbox.ymin;
if (door->doortype == DOORTYPE_AZTECCHAIR) {
sp8c.x += pad.normal.x * pad.bbox.xmax;
sp8c.y += pad.normal.y * pad.bbox.xmax;
sp8c.z += pad.normal.z * pad.bbox.xmax;
} else if (door->doortype == DOORTYPE_HULL) {
sp8c.x += pad.look.x * pad.bbox.zmin;
sp8c.y += pad.look.y * pad.bbox.zmin;
sp8c.z += pad.look.z * pad.bbox.zmin;
} else {
if (door->base.flags & OBJFLAG_DOOR_OPENTOFRONT) {
sp8c.x += pad.normal.x * pad.bbox.xmax;
sp8c.y += pad.normal.y * pad.bbox.xmax;
sp8c.z += pad.normal.z * pad.bbox.xmax;
} else {
sp8c.x += pad.normal.x * pad.bbox.xmin;
sp8c.y += pad.normal.y * pad.bbox.xmin;
sp8c.z += pad.normal.z * pad.bbox.xmin;
}
}
sp80.x = door->startpos.x - sp8c.x;
sp80.y = door->startpos.y - sp8c.y;
sp80.z = door->startpos.z - sp8c.z;
mtx3ToMtx4(door->mtx98, &spdc);
mtx4LoadTranslation(&sp80, &sp98);
mtx4MultMtx4InPlace(&sp98, &spdc);
if (door->doortype == DOORTYPE_AZTECCHAIR) {
if (door->base.flags & OBJFLAG_DOOR_OPENTOFRONT) {
mtx4LoadZRotation(M_BADTAU - door->frac * 0.017450513318181f, &sp98);
} else {
mtx4LoadZRotation(door->frac * 0.017450513318181f, &sp98);
}
} else if (door->doortype == DOORTYPE_HULL) {
if (door->base.flags & OBJFLAG_DOOR_OPENTOFRONT) {
guRotateF(sp98.m, 360 - door->frac, pad.normal.x, pad.normal.y, pad.normal.z);
} else {
guRotateF(sp98.m, door->frac, pad.normal.x, pad.normal.y, pad.normal.z);
}
} else {
if (door->base.flags & OBJFLAG_DOOR_OPENTOFRONT) {
mtx4LoadYRotation(M_BADTAU - door->frac * 0.017450513318181f, &sp98);
} else {
mtx4LoadYRotation(door->frac * 0.017450513318181f, &sp98);
}
}
mtx4MultMtx4InPlace(&sp98, &spdc);
mtx4LoadTranslation(&sp8c, &sp98);
mtx4MultMtx4InPlace(&sp98, &spdc);
mtx4ToMtx3(&spdc, door->base.realrot);
door->base.prop->pos.x = spdc.m[3][0];
door->base.prop->pos.y = spdc.m[3][1];
door->base.prop->pos.z = spdc.m[3][2];
}
doorGetBbox(door, &bbox);
if (door->frac >= door->perimfrac) {
door->base.hidden |= OBJHFLAG_DOORPERIMDISABLED;
return;
}
geo = door->base.geoblock;
door->base.hidden &= ~OBJHFLAG_DOORPERIMDISABLED;
if ((door->doorflags & DOORFLAG_0020) == 0) {
func0f08c424(door, &spdc);
func0f067424(&bbox, &spdc, geo);
if (door->doortype == DOORTYPE_VERTICAL) {
door->doorflags |= DOORFLAG_0020;
}
}
if (door->doortype == DOORTYPE_VERTICAL) {
geo->ymin = door->startpos.y + func0f06695c(&bbox, door->base.realrot);
} else if (door->doortype == DOORTYPE_FALLAWAY) {
geo->ymin = door->base.prop->pos.y - 10000;
} else if (door->doorflags & DOORFLAG_0001) {
geo->ymin -= 1000;
}
if ((door->doortype == DOORTYPE_EYE && door->frac > 0.4f * door->maxfrac)
|| (door->doortype == DOORTYPE_IRIS && door->frac > 0.4f * door->maxfrac)) {
geo->ymax = geo->ymin + 50;
} else if (door->doortype == DOORTYPE_FALLAWAY) {
geo->ymax = door->base.prop->pos.y + 1000;
} else if (door->doorflags & DOORFLAG_0001) {
geo->ymax += 1000;
}
}
GLOBAL_ASM(
glabel func0f08cb20
/* f08cb20: 27bdff50 */ addiu $sp,$sp,-176
/* f08cb24: afbf0034 */ sw $ra,0x34($sp)
/* f08cb28: afb40028 */ sw $s4,0x28($sp)
/* f08cb2c: afb20020 */ sw $s2,0x20($sp)
/* f08cb30: afb00018 */ sw $s0,0x18($sp)
/* f08cb34: afa500b4 */ sw $a1,0xb4($sp)
/* f08cb38: 00e08025 */ or $s0,$a3,$zero
/* f08cb3c: 00c09025 */ or $s2,$a2,$zero
/* f08cb40: 0080a025 */ or $s4,$a0,$zero
/* f08cb44: afb60030 */ sw $s6,0x30($sp)
/* f08cb48: afb5002c */ sw $s5,0x2c($sp)
/* f08cb4c: afb30024 */ sw $s3,0x24($sp)
/* f08cb50: afb1001c */ sw $s1,0x1c($sp)
/* f08cb54: 0fc23121 */ jal doorGetBbox
/* f08cb58: 27a50088 */ addiu $a1,$sp,0x88
/* f08cb5c: 968e0072 */ lhu $t6,0x72($s4)
/* f08cb60: 24130004 */ addiu $s3,$zero,0x4
/* f08cb64: 166e0005 */ bne $s3,$t6,.L0f08cb7c
/* f08cb68: 00000000 */ nop
/* f08cb6c: 0fc25e5c */ jal ceilf
/* f08cb70: c7ac0098 */ lwc1 $f12,0x98($sp)
/* f08cb74: 10000004 */ b .L0f08cb88
/* f08cb78: 0000a825 */ or $s5,$zero,$zero
.L0f08cb7c:
/* f08cb7c: 0fc25e24 */ jal floorf
/* f08cb80: c7ac008c */ lwc1 $f12,0x8c($sp)
/* f08cb84: 0000a825 */ or $s5,$zero,$zero
.L0f08cb88:
/* f08cb88: 06010003 */ bgez $s0,.L0f08cb98
/* f08cb8c: 0010b083 */ sra $s6,$s0,0x2
/* f08cb90: 26010003 */ addiu $at,$s0,0x3
/* f08cb94: 0001b083 */ sra $s6,$at,0x2
.L0f08cb98:
/* f08cb98: 5ac00207 */ blezl $s6,.L0f08d3b8
/* f08cb9c: 8fbf0034 */ lw $ra,0x34($sp)
/* f08cba0: 4600010d */ trunc.w.s $f4,$f0
/* f08cba4: 00008825 */ or $s1,$zero,$zero
/* f08cba8: 8fad00b4 */ lw $t5,0xb4($sp)
/* f08cbac: 240c000c */ addiu $t4,$zero,0xc
/* f08cbb0: 440b2000 */ mfc1 $t3,$f4
/* f08cbb4: 00000000 */ nop
/* f08cbb8: 000bc400 */ sll $t8,$t3,0x10
/* f08cbbc: 00185c03 */ sra $t3,$t8,0x10
.L0f08cbc0:
/* f08cbc0: 00004825 */ or $t1,$zero,$zero
/* f08cbc4: 0000f825 */ or $ra,$zero,$zero
/* f08cbc8: 01a03825 */ or $a3,$t5,$zero
.L0f08cbcc:
/* f08cbcc: 15200050 */ bnez $t1,.L0f08cd10
/* f08cbd0: 02321021 */ addu $v0,$s1,$s2
/* f08cbd4: 88e10000 */ lwl $at,0x0($a3)
/* f08cbd8: 98e10003 */ lwr $at,0x3($a3)
/* f08cbdc: 005f7021 */ addu $t6,$v0,$ra
/* f08cbe0: 25390001 */ addiu $t9,$t1,0x1
/* f08cbe4: a9c10000 */ swl $at,0x0($t6)
/* f08cbe8: b9c10003 */ swr $at,0x3($t6)
/* f08cbec: 88f80004 */ lwl $t8,0x4($a3)
/* f08cbf0: 98f80007 */ lwr $t8,0x7($a3)
/* f08cbf4: a9d80004 */ swl $t8,0x4($t6)
/* f08cbf8: b9d80007 */ swr $t8,0x7($t6)
/* f08cbfc: 88e10008 */ lwl $at,0x8($a3)
/* f08cc00: 98e1000b */ lwr $at,0xb($a3)
/* f08cc04: a9c10008 */ swl $at,0x8($t6)
/* f08cc08: b9c1000b */ swr $at,0xb($t6)
/* f08cc0c: 07210004 */ bgez $t9,.L0f08cc20
/* f08cc10: 332f0003 */ andi $t7,$t9,0x3
/* f08cc14: 11e00002 */ beqz $t7,.L0f08cc20
/* f08cc18: 00000000 */ nop
/* f08cc1c: 25effffc */ addiu $t7,$t7,-4
.L0f08cc20:
/* f08cc20: 01ec0019 */ multu $t7,$t4
/* f08cc24: 25390002 */ addiu $t9,$t1,0x2
/* f08cc28: 00001812 */ mflo $v1
/* f08cc2c: 01a3c021 */ addu $t8,$t5,$v1
/* f08cc30: 8b010000 */ lwl $at,0x0($t8)
/* f08cc34: 9b010003 */ lwr $at,0x3($t8)
/* f08cc38: 00437021 */ addu $t6,$v0,$v1
/* f08cc3c: a9c10000 */ swl $at,0x0($t6)
/* f08cc40: b9c10003 */ swr $at,0x3($t6)
/* f08cc44: 8b0f0004 */ lwl $t7,0x4($t8)
/* f08cc48: 9b0f0007 */ lwr $t7,0x7($t8)
/* f08cc4c: a9cf0004 */ swl $t7,0x4($t6)
/* f08cc50: b9cf0007 */ swr $t7,0x7($t6)
/* f08cc54: 8b010008 */ lwl $at,0x8($t8)
/* f08cc58: 9b01000b */ lwr $at,0xb($t8)
/* f08cc5c: a9c10008 */ swl $at,0x8($t6)
/* f08cc60: b9c1000b */ swr $at,0xb($t6)
/* f08cc64: 07210004 */ bgez $t9,.L0f08cc78
/* f08cc68: 332e0003 */ andi $t6,$t9,0x3
/* f08cc6c: 11c00002 */ beqz $t6,.L0f08cc78
/* f08cc70: 00000000 */ nop
/* f08cc74: 25cefffc */ addiu $t6,$t6,-4
.L0f08cc78:
/* f08cc78: 01cc0019 */ multu $t6,$t4
/* f08cc7c: 25390003 */ addiu $t9,$t1,0x3
/* f08cc80: 00002012 */ mflo $a0
/* f08cc84: 01a47821 */ addu $t7,$t5,$a0
/* f08cc88: 89e10000 */ lwl $at,0x0($t7)
/* f08cc8c: 99e10003 */ lwr $at,0x3($t7)
/* f08cc90: 0044c021 */ addu $t8,$v0,$a0
/* f08cc94: ab010000 */ swl $at,0x0($t8)
/* f08cc98: bb010003 */ swr $at,0x3($t8)
/* f08cc9c: 89ee0004 */ lwl $t6,0x4($t7)
/* f08cca0: 99ee0007 */ lwr $t6,0x7($t7)
/* f08cca4: ab0e0004 */ swl $t6,0x4($t8)
/* f08cca8: bb0e0007 */ swr $t6,0x7($t8)
/* f08ccac: 89e10008 */ lwl $at,0x8($t7)
/* f08ccb0: 99e1000b */ lwr $at,0xb($t7)
/* f08ccb4: ab010008 */ swl $at,0x8($t8)
/* f08ccb8: bb01000b */ swr $at,0xb($t8)
/* f08ccbc: 07210004 */ bgez $t9,.L0f08ccd0
/* f08ccc0: 33380003 */ andi $t8,$t9,0x3
/* f08ccc4: 13000002 */ beqz $t8,.L0f08ccd0
/* f08ccc8: 00000000 */ nop
/* f08cccc: 2718fffc */ addiu $t8,$t8,-4
.L0f08ccd0:
/* f08ccd0: 030c0019 */ multu $t8,$t4
/* f08ccd4: 00002812 */ mflo $a1
/* f08ccd8: 01a57021 */ addu $t6,$t5,$a1
/* f08ccdc: 89c10000 */ lwl $at,0x0($t6)
/* f08cce0: 99c10003 */ lwr $at,0x3($t6)
/* f08cce4: 00457821 */ addu $t7,$v0,$a1
/* f08cce8: a9e10000 */ swl $at,0x0($t7)
/* f08ccec: b9e10003 */ swr $at,0x3($t7)
/* f08ccf0: 89d80004 */ lwl $t8,0x4($t6)
/* f08ccf4: 99d80007 */ lwr $t8,0x7($t6)
/* f08ccf8: a9f80004 */ swl $t8,0x4($t7)
/* f08ccfc: b9f80007 */ swr $t8,0x7($t7)
/* f08cd00: 89c10008 */ lwl $at,0x8($t6)
/* f08cd04: 99c1000b */ lwr $at,0xb($t6)
/* f08cd08: a9e10008 */ swl $at,0x8($t7)
/* f08cd0c: b9e1000b */ swr $at,0xb($t7)
.L0f08cd10:
/* f08cd10: 96990072 */ lhu $t9,0x72($s4)
/* f08cd14: 25300001 */ addiu $s0,$t1,0x1
/* f08cd18: 567900d1 */ bnel $s3,$t9,.L0f08d060
/* f08cd1c: 84e50000 */ lh $a1,0x0($a3)
/* f08cd20: 84e60002 */ lh $a2,0x2($a3)
/* f08cd24: 00cb082a */ slt $at,$a2,$t3
/* f08cd28: 5420019b */ bnezl $at,.L0f08d398
/* f08cd2c: 02004825 */ or $t1,$s0,$zero
/* f08cd30: 06010004 */ bgez $s0,.L0f08cd44
/* f08cd34: 320f0003 */ andi $t7,$s0,0x3
/* f08cd38: 11e00002 */ beqz $t7,.L0f08cd44
/* f08cd3c: 00000000 */ nop
/* f08cd40: 25effffc */ addiu $t7,$t7,-4
.L0f08cd44:
/* f08cd44: 01ec0019 */ multu $t7,$t4
/* f08cd48: 84e50000 */ lh $a1,0x0($a3)
/* f08cd4c: 0232c021 */ addu $t8,$s1,$s2
/* f08cd50: 031f4021 */ addu $t0,$t8,$ra
/* f08cd54: 00007012 */ mflo $t6
/* f08cd58: 01ae2021 */ addu $a0,$t5,$t6
/* f08cd5c: 84990000 */ lh $t9,0x0($a0)
/* f08cd60: 57250039 */ bnel $t9,$a1,.L0f08ce48
/* f08cd64: 252f0002 */ addiu $t7,$t1,0x2
/* f08cd68: 848f0004 */ lh $t7,0x4($a0)
/* f08cd6c: 84ee0004 */ lh $t6,0x4($a3)
/* f08cd70: 55ee0035 */ bnel $t7,$t6,.L0f08ce48
/* f08cd74: 252f0002 */ addiu $t7,$t1,0x2
/* f08cd78: 848a0002 */ lh $t2,0x2($a0)
/* f08cd7c: 51460032 */ beql $t2,$a2,.L0f08ce48
/* f08cd80: 252f0002 */ addiu $t7,$t1,0x2
/* f08cd84: 84e20008 */ lh $v0,0x8($a3)
/* f08cd88: 84990008 */ lh $t9,0x8($a0)
/* f08cd8c: 00cbc023 */ subu $t8,$a2,$t3
/* f08cd90: 03227823 */ subu $t7,$t9,$v0
/* f08cd94: 030f0019 */ multu $t8,$t7
/* f08cd98: 00cac823 */ subu $t9,$a2,$t2
/* f08cd9c: 00007012 */ mflo $t6
/* f08cda0: 00000000 */ nop
/* f08cda4: 00000000 */ nop
/* f08cda8: 01d9001a */ div $zero,$t6,$t9
/* f08cdac: 0000c012 */ mflo $t8
/* f08cdb0: 03027821 */ addu $t7,$t8,$v0
/* f08cdb4: a50f0008 */ sh $t7,0x8($t0)
/* f08cdb8: 17200002 */ bnez $t9,.L0f08cdc4
/* f08cdbc: 00000000 */ nop
/* f08cdc0: 0007000d */ break 0x7
.L0f08cdc4:
/* f08cdc4: 2401ffff */ addiu $at,$zero,-1
/* f08cdc8: 17210004 */ bne $t9,$at,.L0f08cddc
/* f08cdcc: 3c018000 */ lui $at,0x8000
/* f08cdd0: 15c10002 */ bne $t6,$at,.L0f08cddc
/* f08cdd4: 00000000 */ nop
/* f08cdd8: 0006000d */ break 0x6
.L0f08cddc:
/* f08cddc: 8499000a */ lh $t9,0xa($a0)
/* f08cde0: 84e3000a */ lh $v1,0xa($a3)
/* f08cde4: 84e60002 */ lh $a2,0x2($a3)
/* f08cde8: 0323c023 */ subu $t8,$t9,$v1
/* f08cdec: 00cb7023 */ subu $t6,$a2,$t3
/* f08cdf0: 01d80019 */ multu $t6,$t8
/* f08cdf4: 84990002 */ lh $t9,0x2($a0)
/* f08cdf8: 00d97023 */ subu $t6,$a2,$t9
/* f08cdfc: 00007812 */ mflo $t7
/* f08ce00: 00000000 */ nop
/* f08ce04: 00000000 */ nop
/* f08ce08: 01ee001a */ div $zero,$t7,$t6
/* f08ce0c: 0000c012 */ mflo $t8
/* f08ce10: 0303c821 */ addu $t9,$t8,$v1
/* f08ce14: 15c00002 */ bnez $t6,.L0f08ce20
/* f08ce18: 00000000 */ nop
/* f08ce1c: 0007000d */ break 0x7
.L0f08ce20:
/* f08ce20: 2401ffff */ addiu $at,$zero,-1
/* f08ce24: 15c10004 */ bne $t6,$at,.L0f08ce38
/* f08ce28: 3c018000 */ lui $at,0x8000
/* f08ce2c: 15e10002 */ bne $t7,$at,.L0f08ce38
/* f08ce30: 00000000 */ nop
/* f08ce34: 0006000d */ break 0x6
.L0f08ce38:
/* f08ce38: a519000a */ sh $t9,0xa($t0)
/* f08ce3c: 10000085 */ b .L0f08d054
/* f08ce40: 00000000 */ nop
/* f08ce44: 252f0002 */ addiu $t7,$t1,0x2
.L0f08ce48:
/* f08ce48: 05e10004 */ bgez $t7,.L0f08ce5c
/* f08ce4c: 31ee0003 */ andi $t6,$t7,0x3
/* f08ce50: 11c00002 */ beqz $t6,.L0f08ce5c
/* f08ce54: 00000000 */ nop
/* f08ce58: 25cefffc */ addiu $t6,$t6,-4
.L0f08ce5c:
/* f08ce5c: 01cc0019 */ multu $t6,$t4
/* f08ce60: 0000c012 */ mflo $t8
/* f08ce64: 01b82021 */ addu $a0,$t5,$t8
/* f08ce68: 84990000 */ lh $t9,0x0($a0)
/* f08ce6c: 57250039 */ bnel $t9,$a1,.L0f08cf54
/* f08ce70: 252f0003 */ addiu $t7,$t1,0x3
/* f08ce74: 848f0004 */ lh $t7,0x4($a0)
/* f08ce78: 84ee0004 */ lh $t6,0x4($a3)
/* f08ce7c: 55ee0035 */ bnel $t7,$t6,.L0f08cf54
/* f08ce80: 252f0003 */ addiu $t7,$t1,0x3
/* f08ce84: 848a0002 */ lh $t2,0x2($a0)
/* f08ce88: 51460032 */ beql $t2,$a2,.L0f08cf54
/* f08ce8c: 252f0003 */ addiu $t7,$t1,0x3
/* f08ce90: 84e20008 */ lh $v0,0x8($a3)
/* f08ce94: 84990008 */ lh $t9,0x8($a0)
/* f08ce98: 00cbc023 */ subu $t8,$a2,$t3
/* f08ce9c: 03227823 */ subu $t7,$t9,$v0
/* f08cea0: 030f0019 */ multu $t8,$t7
/* f08cea4: 00cac823 */ subu $t9,$a2,$t2
/* f08cea8: 00007012 */ mflo $t6
/* f08ceac: 00000000 */ nop
/* f08ceb0: 00000000 */ nop
/* f08ceb4: 01d9001a */ div $zero,$t6,$t9
/* f08ceb8: 0000c012 */ mflo $t8
/* f08cebc: 03027821 */ addu $t7,$t8,$v0
/* f08cec0: a50f0008 */ sh $t7,0x8($t0)
/* f08cec4: 17200002 */ bnez $t9,.L0f08ced0
/* f08cec8: 00000000 */ nop
/* f08cecc: 0007000d */ break 0x7
.L0f08ced0:
/* f08ced0: 2401ffff */ addiu $at,$zero,-1
/* f08ced4: 17210004 */ bne $t9,$at,.L0f08cee8
/* f08ced8: 3c018000 */ lui $at,0x8000
/* f08cedc: 15c10002 */ bne $t6,$at,.L0f08cee8
/* f08cee0: 00000000 */ nop
/* f08cee4: 0006000d */ break 0x6
.L0f08cee8:
/* f08cee8: 8499000a */ lh $t9,0xa($a0)
/* f08ceec: 84e3000a */ lh $v1,0xa($a3)
/* f08cef0: 84e60002 */ lh $a2,0x2($a3)
/* f08cef4: 0323c023 */ subu $t8,$t9,$v1
/* f08cef8: 00cb7023 */ subu $t6,$a2,$t3
/* f08cefc: 01d80019 */ multu $t6,$t8
/* f08cf00: 84990002 */ lh $t9,0x2($a0)
/* f08cf04: 00d97023 */ subu $t6,$a2,$t9
/* f08cf08: 00007812 */ mflo $t7
/* f08cf0c: 00000000 */ nop
/* f08cf10: 00000000 */ nop
/* f08cf14: 01ee001a */ div $zero,$t7,$t6
/* f08cf18: 0000c012 */ mflo $t8
/* f08cf1c: 0303c821 */ addu $t9,$t8,$v1
/* f08cf20: 15c00002 */ bnez $t6,.L0f08cf2c
/* f08cf24: 00000000 */ nop
/* f08cf28: 0007000d */ break 0x7
.L0f08cf2c:
/* f08cf2c: 2401ffff */ addiu $at,$zero,-1
/* f08cf30: 15c10004 */ bne $t6,$at,.L0f08cf44
/* f08cf34: 3c018000 */ lui $at,0x8000
/* f08cf38: 15e10002 */ bne $t7,$at,.L0f08cf44
/* f08cf3c: 00000000 */ nop
/* f08cf40: 0006000d */ break 0x6
.L0f08cf44:
/* f08cf44: a519000a */ sh $t9,0xa($t0)
/* f08cf48: 10000042 */ b .L0f08d054
/* f08cf4c: 00000000 */ nop
/* f08cf50: 252f0003 */ addiu $t7,$t1,0x3
.L0f08cf54:
/* f08cf54: 05e10004 */ bgez $t7,.L0f08cf68
/* f08cf58: 31ee0003 */ andi $t6,$t7,0x3
/* f08cf5c: 11c00002 */ beqz $t6,.L0f08cf68
/* f08cf60: 00000000 */ nop
/* f08cf64: 25cefffc */ addiu $t6,$t6,-4
.L0f08cf68:
/* f08cf68: 01cc0019 */ multu $t6,$t4
/* f08cf6c: 0000c012 */ mflo $t8
/* f08cf70: 01b82021 */ addu $a0,$t5,$t8
/* f08cf74: 84990000 */ lh $t9,0x0($a0)
/* f08cf78: 17250036 */ bne $t9,$a1,.L0f08d054
/* f08cf7c: 00000000 */ nop
/* f08cf80: 848f0004 */ lh $t7,0x4($a0)
/* f08cf84: 84ee0004 */ lh $t6,0x4($a3)
/* f08cf88: 15ee0032 */ bne $t7,$t6,.L0f08d054
/* f08cf8c: 00000000 */ nop
/* f08cf90: 84850002 */ lh $a1,0x2($a0)
/* f08cf94: 10a6002f */ beq $a1,$a2,.L0f08d054
/* f08cf98: 00000000 */ nop
/* f08cf9c: 84e20008 */ lh $v0,0x8($a3)
/* f08cfa0: 84990008 */ lh $t9,0x8($a0)
/* f08cfa4: 00cbc023 */ subu $t8,$a2,$t3
/* f08cfa8: 03227823 */ subu $t7,$t9,$v0
/* f08cfac: 030f0019 */ multu $t8,$t7
/* f08cfb0: 00c5c823 */ subu $t9,$a2,$a1
/* f08cfb4: 00007012 */ mflo $t6
/* f08cfb8: 00000000 */ nop
/* f08cfbc: 00000000 */ nop
/* f08cfc0: 01d9001a */ div $zero,$t6,$t9
/* f08cfc4: 0000c012 */ mflo $t8
/* f08cfc8: 03027821 */ addu $t7,$t8,$v0
/* f08cfcc: a50f0008 */ sh $t7,0x8($t0)
/* f08cfd0: 17200002 */ bnez $t9,.L0f08cfdc
/* f08cfd4: 00000000 */ nop
/* f08cfd8: 0007000d */ break 0x7
.L0f08cfdc:
/* f08cfdc: 2401ffff */ addiu $at,$zero,-1
/* f08cfe0: 17210004 */ bne $t9,$at,.L0f08cff4
/* f08cfe4: 3c018000 */ lui $at,0x8000
/* f08cfe8: 15c10002 */ bne $t6,$at,.L0f08cff4
/* f08cfec: 00000000 */ nop
/* f08cff0: 0006000d */ break 0x6
.L0f08cff4:
/* f08cff4: 8499000a */ lh $t9,0xa($a0)
/* f08cff8: 84e3000a */ lh $v1,0xa($a3)
/* f08cffc: 84e60002 */ lh $a2,0x2($a3)
/* f08d000: 0323c023 */ subu $t8,$t9,$v1
/* f08d004: 00cb7023 */ subu $t6,$a2,$t3
/* f08d008: 01d80019 */ multu $t6,$t8
/* f08d00c: 84990002 */ lh $t9,0x2($a0)
/* f08d010: 00d97023 */ subu $t6,$a2,$t9
/* f08d014: 00007812 */ mflo $t7
/* f08d018: 00000000 */ nop
/* f08d01c: 00000000 */ nop
/* f08d020: 01ee001a */ div $zero,$t7,$t6
/* f08d024: 0000c012 */ mflo $t8
/* f08d028: 0303c821 */ addu $t9,$t8,$v1
/* f08d02c: a519000a */ sh $t9,0xa($t0)
/* f08d030: 15c00002 */ bnez $t6,.L0f08d03c
/* f08d034: 00000000 */ nop
/* f08d038: 0007000d */ break 0x7
.L0f08d03c:
/* f08d03c: 2401ffff */ addiu $at,$zero,-1
/* f08d040: 15c10004 */ bne $t6,$at,.L0f08d054
/* f08d044: 3c018000 */ lui $at,0x8000
/* f08d048: 15e10002 */ bne $t7,$at,.L0f08d054
/* f08d04c: 00000000 */ nop
/* f08d050: 0006000d */ break 0x6
.L0f08d054:
/* f08d054: 100000cf */ b .L0f08d394
/* f08d058: a50b0002 */ sh $t3,0x2($t0)
/* f08d05c: 84e50000 */ lh $a1,0x0($a3)
.L0f08d060:
/* f08d060: 0165082a */ slt $at,$t3,$a1
/* f08d064: 542000cc */ bnezl $at,.L0f08d398
/* f08d068: 02004825 */ or $t1,$s0,$zero
/* f08d06c: 06010004 */ bgez $s0,.L0f08d080
/* f08d070: 320f0003 */ andi $t7,$s0,0x3
/* f08d074: 11e00002 */ beqz $t7,.L0f08d080
/* f08d078: 00000000 */ nop
/* f08d07c: 25effffc */ addiu $t7,$t7,-4
.L0f08d080:
/* f08d080: 01ec0019 */ multu $t7,$t4
/* f08d084: 84e60002 */ lh $a2,0x2($a3)
/* f08d088: 0232c021 */ addu $t8,$s1,$s2
/* f08d08c: 031f4021 */ addu $t0,$t8,$ra
/* f08d090: 00007012 */ mflo $t6
/* f08d094: 01ae2021 */ addu $a0,$t5,$t6
/* f08d098: 84990002 */ lh $t9,0x2($a0)
/* f08d09c: 57260039 */ bnel $t9,$a2,.L0f08d184
/* f08d0a0: 252f0002 */ addiu $t7,$t1,0x2
/* f08d0a4: 848f0004 */ lh $t7,0x4($a0)
/* f08d0a8: 84ee0004 */ lh $t6,0x4($a3)
/* f08d0ac: 55ee0035 */ bnel $t7,$t6,.L0f08d184
/* f08d0b0: 252f0002 */ addiu $t7,$t1,0x2
/* f08d0b4: 848a0000 */ lh $t2,0x0($a0)
/* f08d0b8: 51450032 */ beql $t2,$a1,.L0f08d184
/* f08d0bc: 252f0002 */ addiu $t7,$t1,0x2
/* f08d0c0: 84e20008 */ lh $v0,0x8($a3)
/* f08d0c4: 84990008 */ lh $t9,0x8($a0)
/* f08d0c8: 0165c023 */ subu $t8,$t3,$a1
/* f08d0cc: 03227823 */ subu $t7,$t9,$v0
/* f08d0d0: 030f0019 */ multu $t8,$t7
/* f08d0d4: 0145c823 */ subu $t9,$t2,$a1
/* f08d0d8: 00007012 */ mflo $t6
/* f08d0dc: 00000000 */ nop
/* f08d0e0: 00000000 */ nop
/* f08d0e4: 01d9001a */ div $zero,$t6,$t9
/* f08d0e8: 0000c012 */ mflo $t8
/* f08d0ec: 03027821 */ addu $t7,$t8,$v0
/* f08d0f0: a50f0008 */ sh $t7,0x8($t0)
/* f08d0f4: 17200002 */ bnez $t9,.L0f08d100
/* f08d0f8: 00000000 */ nop
/* f08d0fc: 0007000d */ break 0x7
.L0f08d100:
/* f08d100: 2401ffff */ addiu $at,$zero,-1
/* f08d104: 17210004 */ bne $t9,$at,.L0f08d118
/* f08d108: 3c018000 */ lui $at,0x8000
/* f08d10c: 15c10002 */ bne $t6,$at,.L0f08d118
/* f08d110: 00000000 */ nop
/* f08d114: 0006000d */ break 0x6
.L0f08d118:
/* f08d118: 8499000a */ lh $t9,0xa($a0)
/* f08d11c: 84e3000a */ lh $v1,0xa($a3)
/* f08d120: 84e50000 */ lh $a1,0x0($a3)
/* f08d124: 0323c023 */ subu $t8,$t9,$v1
/* f08d128: 01657023 */ subu $t6,$t3,$a1
/* f08d12c: 01d80019 */ multu $t6,$t8
/* f08d130: 84990000 */ lh $t9,0x0($a0)
/* f08d134: 03257023 */ subu $t6,$t9,$a1
/* f08d138: 00007812 */ mflo $t7
/* f08d13c: 00000000 */ nop
/* f08d140: 00000000 */ nop
/* f08d144: 01ee001a */ div $zero,$t7,$t6
/* f08d148: 0000c012 */ mflo $t8
/* f08d14c: 0303c821 */ addu $t9,$t8,$v1
/* f08d150: 15c00002 */ bnez $t6,.L0f08d15c
/* f08d154: 00000000 */ nop
/* f08d158: 0007000d */ break 0x7
.L0f08d15c:
/* f08d15c: 2401ffff */ addiu $at,$zero,-1
/* f08d160: 15c10004 */ bne $t6,$at,.L0f08d174
/* f08d164: 3c018000 */ lui $at,0x8000
/* f08d168: 15e10002 */ bne $t7,$at,.L0f08d174
/* f08d16c: 00000000 */ nop
/* f08d170: 0006000d */ break 0x6
.L0f08d174:
/* f08d174: a519000a */ sh $t9,0xa($t0)
/* f08d178: 10000086 */ b .L0f08d394
/* f08d17c: a50b0000 */ sh $t3,0x0($t0)
/* f08d180: 252f0002 */ addiu $t7,$t1,0x2
.L0f08d184:
/* f08d184: 05e10004 */ bgez $t7,.L0f08d198
/* f08d188: 31ee0003 */ andi $t6,$t7,0x3
/* f08d18c: 11c00002 */ beqz $t6,.L0f08d198
/* f08d190: 00000000 */ nop
/* f08d194: 25cefffc */ addiu $t6,$t6,-4
.L0f08d198:
/* f08d198: 01cc0019 */ multu $t6,$t4
/* f08d19c: 0000c012 */ mflo $t8
/* f08d1a0: 01b82021 */ addu $a0,$t5,$t8
/* f08d1a4: 84990002 */ lh $t9,0x2($a0)
/* f08d1a8: 57260039 */ bnel $t9,$a2,.L0f08d290
/* f08d1ac: 252f0003 */ addiu $t7,$t1,0x3
/* f08d1b0: 848f0004 */ lh $t7,0x4($a0)
/* f08d1b4: 84ee0004 */ lh $t6,0x4($a3)
/* f08d1b8: 55ee0035 */ bnel $t7,$t6,.L0f08d290
/* f08d1bc: 252f0003 */ addiu $t7,$t1,0x3
/* f08d1c0: 848a0000 */ lh $t2,0x0($a0)
/* f08d1c4: 51450032 */ beql $t2,$a1,.L0f08d290
/* f08d1c8: 252f0003 */ addiu $t7,$t1,0x3
/* f08d1cc: 84e20008 */ lh $v0,0x8($a3)
/* f08d1d0: 84990008 */ lh $t9,0x8($a0)
/* f08d1d4: 0165c023 */ subu $t8,$t3,$a1
/* f08d1d8: 03227823 */ subu $t7,$t9,$v0
/* f08d1dc: 030f0019 */ multu $t8,$t7
/* f08d1e0: 0145c823 */ subu $t9,$t2,$a1
/* f08d1e4: 00007012 */ mflo $t6
/* f08d1e8: 00000000 */ nop
/* f08d1ec: 00000000 */ nop
/* f08d1f0: 01d9001a */ div $zero,$t6,$t9
/* f08d1f4: 0000c012 */ mflo $t8
/* f08d1f8: 03027821 */ addu $t7,$t8,$v0
/* f08d1fc: a50f0008 */ sh $t7,0x8($t0)
/* f08d200: 17200002 */ bnez $t9,.L0f08d20c
/* f08d204: 00000000 */ nop
/* f08d208: 0007000d */ break 0x7
.L0f08d20c:
/* f08d20c: 2401ffff */ addiu $at,$zero,-1
/* f08d210: 17210004 */ bne $t9,$at,.L0f08d224
/* f08d214: 3c018000 */ lui $at,0x8000
/* f08d218: 15c10002 */ bne $t6,$at,.L0f08d224
/* f08d21c: 00000000 */ nop
/* f08d220: 0006000d */ break 0x6
.L0f08d224:
/* f08d224: 8499000a */ lh $t9,0xa($a0)
/* f08d228: 84e3000a */ lh $v1,0xa($a3)
/* f08d22c: 84e50000 */ lh $a1,0x0($a3)
/* f08d230: 0323c023 */ subu $t8,$t9,$v1
/* f08d234: 01657023 */ subu $t6,$t3,$a1
/* f08d238: 01d80019 */ multu $t6,$t8
/* f08d23c: 84990000 */ lh $t9,0x0($a0)
/* f08d240: 03257023 */ subu $t6,$t9,$a1
/* f08d244: 00007812 */ mflo $t7
/* f08d248: 00000000 */ nop
/* f08d24c: 00000000 */ nop
/* f08d250: 01ee001a */ div $zero,$t7,$t6
/* f08d254: 0000c012 */ mflo $t8
/* f08d258: 0303c821 */ addu $t9,$t8,$v1
/* f08d25c: 15c00002 */ bnez $t6,.L0f08d268
/* f08d260: 00000000 */ nop
/* f08d264: 0007000d */ break 0x7
.L0f08d268:
/* f08d268: 2401ffff */ addiu $at,$zero,-1
/* f08d26c: 15c10004 */ bne $t6,$at,.L0f08d280
/* f08d270: 3c018000 */ lui $at,0x8000
/* f08d274: 15e10002 */ bne $t7,$at,.L0f08d280
/* f08d278: 00000000 */ nop
/* f08d27c: 0006000d */ break 0x6
.L0f08d280:
/* f08d280: a519000a */ sh $t9,0xa($t0)
/* f08d284: 10000043 */ b .L0f08d394
/* f08d288: a50b0000 */ sh $t3,0x0($t0)
/* f08d28c: 252f0003 */ addiu $t7,$t1,0x3
.L0f08d290:
/* f08d290: 05e10004 */ bgez $t7,.L0f08d2a4
/* f08d294: 31ee0003 */ andi $t6,$t7,0x3
/* f08d298: 11c00002 */ beqz $t6,.L0f08d2a4
/* f08d29c: 00000000 */ nop
/* f08d2a0: 25cefffc */ addiu $t6,$t6,-4
.L0f08d2a4:
/* f08d2a4: 01cc0019 */ multu $t6,$t4
/* f08d2a8: 0000c012 */ mflo $t8
/* f08d2ac: 01b82021 */ addu $a0,$t5,$t8
/* f08d2b0: 84990002 */ lh $t9,0x2($a0)
/* f08d2b4: 57260037 */ bnel $t9,$a2,.L0f08d394
/* f08d2b8: a50b0000 */ sh $t3,0x0($t0)
/* f08d2bc: 848f0004 */ lh $t7,0x4($a0)
/* f08d2c0: 84ee0004 */ lh $t6,0x4($a3)
/* f08d2c4: 55ee0033 */ bnel $t7,$t6,.L0f08d394
/* f08d2c8: a50b0000 */ sh $t3,0x0($t0)
/* f08d2cc: 84860000 */ lh $a2,0x0($a0)
/* f08d2d0: 50c50030 */ beql $a2,$a1,.L0f08d394
/* f08d2d4: a50b0000 */ sh $t3,0x0($t0)
/* f08d2d8: 84e20008 */ lh $v0,0x8($a3)
/* f08d2dc: 84990008 */ lh $t9,0x8($a0)
/* f08d2e0: 0165c023 */ subu $t8,$t3,$a1
/* f08d2e4: 03227823 */ subu $t7,$t9,$v0
/* f08d2e8: 030f0019 */ multu $t8,$t7
/* f08d2ec: 00c5c823 */ subu $t9,$a2,$a1
/* f08d2f0: 00007012 */ mflo $t6
/* f08d2f4: 00000000 */ nop
/* f08d2f8: 00000000 */ nop
/* f08d2fc: 01d9001a */ div $zero,$t6,$t9
/* f08d300: 0000c012 */ mflo $t8
/* f08d304: 03027821 */ addu $t7,$t8,$v0
/* f08d308: a50f0008 */ sh $t7,0x8($t0)
/* f08d30c: 17200002 */ bnez $t9,.L0f08d318
/* f08d310: 00000000 */ nop
/* f08d314: 0007000d */ break 0x7
.L0f08d318:
/* f08d318: 2401ffff */ addiu $at,$zero,-1
/* f08d31c: 17210004 */ bne $t9,$at,.L0f08d330
/* f08d320: 3c018000 */ lui $at,0x8000
/* f08d324: 15c10002 */ bne $t6,$at,.L0f08d330
/* f08d328: 00000000 */ nop
/* f08d32c: 0006000d */ break 0x6
.L0f08d330:
/* f08d330: 8499000a */ lh $t9,0xa($a0)
/* f08d334: 84e3000a */ lh $v1,0xa($a3)
/* f08d338: 84e50000 */ lh $a1,0x0($a3)
/* f08d33c: 0323c023 */ subu $t8,$t9,$v1
/* f08d340: 01657023 */ subu $t6,$t3,$a1
/* f08d344: 01d80019 */ multu $t6,$t8
/* f08d348: 84990000 */ lh $t9,0x0($a0)
/* f08d34c: 03257023 */ subu $t6,$t9,$a1
/* f08d350: 00007812 */ mflo $t7
/* f08d354: 00000000 */ nop
/* f08d358: 00000000 */ nop
/* f08d35c: 01ee001a */ div $zero,$t7,$t6
/* f08d360: 0000c012 */ mflo $t8
/* f08d364: 0303c821 */ addu $t9,$t8,$v1
/* f08d368: a519000a */ sh $t9,0xa($t0)
/* f08d36c: 15c00002 */ bnez $t6,.L0f08d378
/* f08d370: 00000000 */ nop
/* f08d374: 0007000d */ break 0x7
.L0f08d378:
/* f08d378: 2401ffff */ addiu $at,$zero,-1
/* f08d37c: 15c10004 */ bne $t6,$at,.L0f08d390
/* f08d380: 3c018000 */ lui $at,0x8000
/* f08d384: 15e10002 */ bne $t7,$at,.L0f08d390
/* f08d388: 00000000 */ nop
/* f08d38c: 0006000d */ break 0x6
.L0f08d390:
/* f08d390: a50b0000 */ sh $t3,0x0($t0)
.L0f08d394:
/* f08d394: 02004825 */ or $t1,$s0,$zero
.L0f08d398:
/* f08d398: 27ff000c */ addiu $ra,$ra,0xc
/* f08d39c: 1613fe0b */ bne $s0,$s3,.L0f08cbcc
/* f08d3a0: 24e7000c */ addiu $a3,$a3,0xc
/* f08d3a4: 26b50001 */ addiu $s5,$s5,0x1
/* f08d3a8: 26310030 */ addiu $s1,$s1,0x30
/* f08d3ac: 16b6fe04 */ bne $s5,$s6,.L0f08cbc0
/* f08d3b0: 25ad0030 */ addiu $t5,$t5,0x30
/* f08d3b4: 8fbf0034 */ lw $ra,0x34($sp)
.L0f08d3b8:
/* f08d3b8: 8fb00018 */ lw $s0,0x18($sp)
/* f08d3bc: 8fb1001c */ lw $s1,0x1c($sp)
/* f08d3c0: 8fb20020 */ lw $s2,0x20($sp)
/* f08d3c4: 8fb30024 */ lw $s3,0x24($sp)
/* f08d3c8: 8fb40028 */ lw $s4,0x28($sp)
/* f08d3cc: 8fb5002c */ lw $s5,0x2c($sp)
/* f08d3d0: 8fb60030 */ lw $s6,0x30($sp)
/* f08d3d4: 03e00008 */ jr $ra
/* f08d3d8: 27bd00b0 */ addiu $sp,$sp,0xb0
);
void func0f08d3dc(struct doorobj *door)
{
func0f069b4c(&door->base);
if (door->doorflags & DOORFLAG_0004) {
struct modelnode *node = func0f0687e4(door->base.model);
union modelrodata *rodata = node->rodata;
union modelrwdata *rwdata = modelGetNodeRwData(door->base.model, node);
rwdata->dl.vertices = gfxAllocateVertices(rodata->dl.numvertices);
func0f08cb20(door, rodata->dl.vertices, rwdata->dl.vertices, rodata->dl.numvertices);
}
}
void func0f08d460(struct doorobj *door)
{
if ((door->doorflags & (DOORFLAG_0004 | DOORFLAG_0080)) == (DOORFLAG_0004 | DOORFLAG_0080)) {
struct modelnode *node = func0f0687e4(door->base.model);
union modelrodata *rodata = node->rodata;
union modelrwdata *rwdata = modelGetNodeRwData(door->base.model, node);
if (rwdata->dl.vertices != door->unka4) {
func0f08cb20(door, rodata->dl.vertices, door->unka4, rodata->dl.numvertices);
}
rwdata->dl.vertices = door->unka4;
}
}
void doorActivatePortal(struct doorobj *door)
{
if (door->portalnum >= 0) {
portalSetOpen(door->portalnum, true);
}
}
void doorDeactivatePortal(struct doorobj *door)
{
if (door->portalnum >= 0) {
portalSetOpen(door->portalnum, false);
}
}
struct prop *doorInit(struct doorobj *door, struct coord *pos, Mtxf *mtx, s16 *rooms, struct coord *coord, struct coord *centre)
{
struct prop *prop;
union modelrodata *rodata;
Mtxf sp38;
s16 sp28[8];
door->base.flags |= OBJFLAG_00000100;
prop = objInitWithAutoModel(&door->base);
if (prop != NULL) {
switch (door->doortype) {
case DOORTYPE_SLIDING:
case DOORTYPE_FLEXI1:
case DOORTYPE_FLEXI2:
case DOORTYPE_FLEXI3:
case DOORTYPE_VERTICAL:
case DOORTYPE_FALLAWAY:
case DOORTYPE_LASER:
door->doorflags |= DOORFLAG_0080;
break;
}
mtx4Copy(mtx, &sp38);
mtx00015f04(g_ModelStates[door->base.modelnum].scale * (1.0f / 4096.0f), &sp38);
mtx4ToMtx3(&sp38, door->base.realrot);
door->frac = (door->base.flags & OBJFLAG_DOOR_KEEPOPEN) ? door->maxfrac : 0;
door->fracspeed = 0;
door->mode = DOORMODE_IDLE;
door->glasshits = 0;
door->portalnum = -1;
door->startpos.x = centre->x;
door->startpos.y = centre->y;
door->startpos.z = centre->z;
if (door->doorflags & DOORFLAG_0080) {
door->unk98.x = coord->x;
door->unk98.y = coord->y;
door->unk98.z = coord->z;
if (door->doorflags & DOORFLAG_0004) {
struct modelnode *node = func0f0687e4(door->base.model);
rodata = node->rodata;
door->unka4 = mempAlloc(ALIGN16(rodata->dl.numvertices * sizeof(struct gfxvtx)), MEMPOOL_STAGE);
} else {
door->unka4 = NULL;
}
} else {
mtx4ToMtx3(&sp38, door->mtx98);
}
func0f065e74(pos, rooms, centre, sp28);
prop->type = PROPTYPE_DOOR;
prop->door = door;
prop->pos.x = centre->x;
prop->pos.y = centre->y;
prop->pos.z = centre->z;
propDeregisterRooms(prop);
roomsCopy(sp28, prop->rooms);
doorUpdateTiles(door);
func0f069c70(&door->base, false, true);
func0f08d3dc(door);
door->base.shadecol[0] = door->base.nextcol[0];
door->base.shadecol[1] = door->base.nextcol[1];
door->base.shadecol[2] = door->base.nextcol[2];
door->base.shadecol[3] = door->base.nextcol[3];
}
if (door);
if (door);
return prop;
}
void doorPlayOpeningSound(s32 soundtype, struct prop *prop)
{
s32 sound1 = 0;
s32 sound2 = 0;
s32 sound3 = 0;
func0f0926bc(prop, 12, 0xffff);
if (g_Vars.in_cutscene
&& (prop->type == PROPTYPE_OBJ || prop->type == PROPTYPE_DOOR)
&& (prop->obj->flags3 & OBJFLAG3_AUTOCUTSCENESOUNDS) == 0) {
return;
}
switch (soundtype) {
case 28: sound1 = SFX_DOOR_8007; break;
case 1: sound1 = SFX_DOOR_801A; sound2 = SFX_DOOR_801B; break;
case 29: sound1 = SFX_DOOR_8015; sound2 = SFX_DOOR_801D; break;
case 2: sound1 = SFX_DOOR_801A; sound2 = SFX_DOOR_801C; break;
case 3: sound1 = SFX_DOOR_8014; sound2 = SFX_DOOR_8016; break;
case 4: sound1 = SFX_DOOR_801E; sound2 = SFX_DOOR_8020; break;
case 5: sound1 = SFX_DOOR_8001; break;
case 6: sound1 = SFX_DOOR_8004; break;
case 7: sound1 = SFX_DOOR_8005; break;
case 8: sound1 = SFX_DOOR_800A; sound2 = SFX_DOOR_8008; break;
case 9: sound1 = SFX_DOOR_8004; sound2 = SFX_DOOR_800B; break;
case 10: sound1 = SFX_DOOR_800C; break;
case 11: sound1 = SFX_DOOR_800E; break;
case 12: sound1 = SFX_DOOR_8010; break;
case 13: sound1 = SFX_DOOR_8012; break;
case 30: sound1 = SFX_DOOR_816B; sound2 = SFX_DOOR_81AA; break;
case 14: sound1 = SFX_DOOR_8017; sound2 = SFX_DOOR_8019; break;
case 15: sound1 = SFX_DOOR_8022; break;
case 25: sound1 = SFX_DOOR_81B8; break;
case 16: sound1 = SFX_DOOR_8026; break;
case 17: sound1 = SFX_DOOR_801E; break;
case 18:
sound1 = SFX_DOOR_81B0;
sound2 = SFX_DOOR_8014;
sound3 = SFX_DOOR_8016;
break;
case 19: sound1 = SFX_DOOR_81AE; sound2 = SFX_DOOR_81B3; break;
case 26: sound1 = SFX_DOOR_042C; sound2 = SFX_DOOR_042B; break;
case 20: sound1 = SFX_DOOR_81B1; sound2 = SFX_DOOR_81B6; break;
case 21: sound1 = SFX_DOOR_81A8; sound2 = SFX_DOOR_81AA; break;
case 32: sound1 = SFX_DOOR_81AB; sound2 = SFX_DOOR_81AD; break;
case 31: sound1 = SFX_DOOR_81AB; sound2 = SFX_DOOR_81B4; break;
case 22: sound1 = SFX_DOOR_81AE; sound2 = SFX_DOOR_81B5; break;
case 23: sound1 = SFX_DOOR_80AC; sound2 = SFX_DOOR_80AE; break;
case 24: sound1 = SFX_DOOR_816B; sound2 = SFX_DOOR_816C; break;
case 27: sound1 = SFX_DOOR_8014; sound2 = SFX_DOOR_042B; break;
}
if (sound1) {
#if VERSION >= VERSION_NTSC_1_0
propsnd0f0939f8(NULL, prop, sound1, -1,
-1, 1024, 0, 12, 0, -1, 0, -1, -1, -1, -1);
#else
propsnd0f0939f8(NULL, prop, sound1, -1,
-1, 0, 0, 12, 0, -1, 0, -1, -1, -1, -1);
#endif
}
if (sound2) {
propsnd0f0939f8(NULL, prop, sound2, -1,
-1, 0, 0, 12, 0, -1, 0, -1, -1, -1, -1);
}
if (sound3) {
propsnd0f0939f8(NULL, prop, sound3, -1,
-1, 0, 0, 12, 0, -1, 0, -1, -1, -1, -1);
}
}
/**
* This is identical to the function above but with less cases.
*/
void doorPlayClosingSound(s32 soundtype, struct prop *prop)
{
s32 sound1 = 0;
s32 sound2 = 0;
s32 sound3 = 0;
func0f0926bc(prop, 12, 0xffff);
if (g_Vars.in_cutscene
&& (prop->type == PROPTYPE_OBJ || prop->type == PROPTYPE_DOOR)
&& (prop->obj->flags3 & OBJFLAG3_AUTOCUTSCENESOUNDS) == 0) {
return;
}
switch (soundtype) {
case 28: sound1 = SFX_DOOR_8007; break;
case 1: sound1 = SFX_DOOR_801A; sound2 = SFX_DOOR_801B; break;
case 29: sound1 = SFX_DOOR_8015; sound2 = SFX_DOOR_801D; break;
case 2: sound1 = SFX_DOOR_801A; sound2 = SFX_DOOR_801C; break;
case 3: sound1 = SFX_DOOR_8014; sound2 = SFX_DOOR_8016; break;
case 4: sound1 = SFX_DOOR_801E; sound2 = SFX_DOOR_8020; break;
case 5: sound1 = SFX_DOOR_8001; break;
case 8: sound1 = SFX_DOOR_800A; sound2 = SFX_DOOR_8008; break;
case 9: sound1 = SFX_DOOR_8004; sound2 = SFX_DOOR_800B; break;
case 10: sound1 = SFX_DOOR_800C; break;
case 30: sound1 = SFX_DOOR_816B; sound2 = SFX_DOOR_81AA; break;
case 14: sound1 = SFX_DOOR_8017; sound2 = SFX_DOOR_8019; break;
case 15: sound1 = SFX_DOOR_8022; break;
case 25: sound1 = SFX_DOOR_81B8; break;
case 16: sound1 = SFX_DOOR_8026; break;
case 17: sound1 = SFX_DOOR_801E; break;
case 18:
sound1 = SFX_DOOR_81B0;
sound2 = SFX_DOOR_8014;
sound3 = SFX_DOOR_8016;
break;
case 23: sound1 = SFX_DOOR_80AC; sound2 = SFX_DOOR_80AE; break;
case 24: sound1 = SFX_DOOR_816B; sound2 = SFX_DOOR_816C; break;
}
if (sound1) {
#if VERSION >= VERSION_NTSC_1_0
propsnd0f0939f8(NULL, prop, sound1, -1,
-1, 1024, 0, 12, 0, -1, 0, -1, -1, -1, -1);
#else
propsnd0f0939f8(NULL, prop, sound1, -1,
-1, 0, 0, 12, 0, -1, 0, -1, -1, -1, -1);
#endif
}
if (sound2) {
propsnd0f0939f8(NULL, prop, sound2, -1,
-1, 0, 0, 12, 0, -1, 0, -1, -1, -1, -1);
}
if (sound3) {
propsnd0f0939f8(NULL, prop, sound3, -1,
-1, 0, 0, 12, 0, -1, 0, -1, -1, -1, -1);
}
}
void doorPlayOpenedSound(s32 soundtype, struct prop *prop)
{
s32 sound = 0;
func0f0926bc(prop, 12, 0xffff);
if (g_Vars.in_cutscene
&& (prop->type == PROPTYPE_OBJ || prop->type == PROPTYPE_DOOR)
&& (prop->obj->flags3 & OBJFLAG3_AUTOCUTSCENESOUNDS) == 0) {
return;
}
switch (soundtype) {
case 28: sound = SFX_DOOR_801A; break;
case 1: sound = SFX_DOOR_801A; break;
case 29: sound = SFX_DOOR_8015; break;
case 2: sound = SFX_DOOR_801A; break;
case 3: sound = SFX_DOOR_8015; break;
case 4: sound = SFX_DOOR_801F; break;
case 5: sound = SFX_DOOR_8002; break;
case 8: sound = SFX_DOOR_801A; break;
case 9: sound = SFX_DOOR_8003; break;
case 10: sound = SFX_DOOR_800D; break;
case 30: sound = SFX_DOOR_816D; break;
case 14: sound = SFX_DOOR_816D; break;
case 15: sound = SFX_DOOR_8021; break;
case 25: sound = SFX_DOOR_81B7; break;
case 16: sound = SFX_DOOR_8027; break;
case 17: sound = SFX_DOOR_801F; break;
case 18: sound = SFX_DOOR_8015; break;
case 26: sound = SFX_DOOR_042C; break;
case 19: sound = SFX_DOOR_81AF; break;
case 20: sound = SFX_DOOR_81B2; break;
case 21: sound = SFX_DOOR_81A8; break;
case 32: sound = SFX_DOOR_81AB; break;
case 31: sound = SFX_DOOR_81AB; break;
case 22: sound = SFX_DOOR_81AF; break;
case 23: sound = SFX_DOOR_80AD; break;
case 24: sound = SFX_DOOR_816D; break;
case 27: sound = SFX_DOOR_8015; break;
}
if (sound) {
#if VERSION >= VERSION_NTSC_1_0
propsnd0f0939f8(NULL, prop, sound, -1,
-1, 1024, 0, 12, 0, -1, 0, -1, -1, -1, -1);
#else
propsnd0f0939f8(NULL, prop, sound, -1,
-1, 0, 0, 12, 0, -1, 0, -1, -1, -1, -1);
#endif
}
}
void doorPlayClosedSound(s32 soundtype, struct prop *prop)
{
s32 sound = 0;
func0f0926bc(prop, 12, 0xffff);
if (g_Vars.in_cutscene
&& (prop->type == PROPTYPE_OBJ || prop->type == PROPTYPE_DOOR)
&& (prop->obj->flags3 & OBJFLAG3_AUTOCUTSCENESOUNDS) == 0) {
return;
}
switch (soundtype) {
case 28: sound = SFX_DOOR_801A; break;
case 1: sound = SFX_DOOR_801A; break;
case 29: sound = SFX_DOOR_8015; break;
case 2: sound = SFX_DOOR_801A; break;
case 3: sound = SFX_DOOR_8015; break;
case 4: sound = SFX_DOOR_801F; break;
case 5: sound = SFX_DOOR_8002; break;
case 6: sound = SFX_DOOR_8003; break;
case 7: sound = SFX_DOOR_8006; break;
case 8: sound = SFX_DOOR_801A; break;
case 9: sound = SFX_DOOR_8003; break;
case 10: sound = SFX_DOOR_800D; break;
case 11: sound = SFX_DOOR_800F; break;
case 12: sound = SFX_DOOR_8011; break;
case 13: sound = SFX_DOOR_8013; break;
case 30: sound = SFX_DOOR_816D; break;
case 14: sound = SFX_DOOR_8018; break;
case 15: sound = SFX_DOOR_8021; break;
case 25: sound = SFX_DOOR_81B7; break;
case 16: sound = SFX_DOOR_8027; break;
case 17: sound = SFX_DOOR_801F; break;
case 18: sound = SFX_DOOR_8015; break;
case 23: sound = SFX_DOOR_80AD; break;
case 24: sound = SFX_DOOR_816D; break;
}
if (sound) {
#if VERSION >= VERSION_NTSC_1_0
propsnd0f0939f8(NULL, prop, sound, -1,
-1, 1024, 0, 12, 0, -1, 0, -1, -1, -1, -1);
#else
propsnd0f0939f8(NULL, prop, sound, -1,
-1, 0, 0, 12, 0, -1, 0, -1, -1, -1, -1);
#endif
}
}
/**
* Play the door open sound, activate the door's portal,
* and configure the laser fade properties if it's a laser.
*/
void doorStartOpen(struct doorobj *door)
{
door->base.flags &= ~OBJFLAG_DOOR_KEEPOPEN;
door->base.hidden |= OBJHFLAG_00000200;
doorPlayOpeningSound(door->soundtype, door->base.prop);
doorActivatePortal(door);
if (door->doortype == DOORTYPE_FALLAWAY) {
struct geocyl *cyl = door->base.geocyl;
door->base.flags |= OBJFLAG_CANNOT_ACTIVATE;
door->perimfrac = 0;
if (cyl && (door->base.flags & OBJFLAG_00000100)) {
cyl->header.numvertices = 0;
door->base.flags &= ~OBJFLAG_00000100;
}
}
door->fadetime60 = door->doortype == DOORTYPE_LASER ? TICKS(60) : 0;
if (door->doortype == DOORTYPE_LASER) {
door->laserfade = 255;
}
}
/**
* Play the door close sound and configure the
* laser fade properties if it's a laser.
*/
void doorStartClose(struct doorobj *door)
{
door->base.flags &= ~OBJFLAG_DOOR_KEEPOPEN;
doorPlayClosingSound(door->soundtype, door->base.prop);
door->fadetime60 = door->doortype == DOORTYPE_LASER ? TICKS(60) : 0;
if (door->doortype == DOORTYPE_LASER) {
door->laserfade = 0;
}
}
#if PIRACYCHECKS
u32 decodeXorAaaaaaaa(u32 value)
{
return value ^ (PAL ? 0x18743082 : 0xaaaaaaaa);
}
#endif
void doorFinishOpen(struct doorobj *door)
{
doorPlayOpenedSound(door->soundtype, door->base.prop);
if (door->doortype == DOORTYPE_FALLAWAY) {
func0f0685e4(door->base.prop);
if (door->base.hidden & OBJHFLAG_AIRBORNE) {
door->base.projectile->flags |= PROJECTILEFLAG_00000001;
mtx4LoadIdentity((Mtxf *)&door->base.projectile->unk020);
}
}
if (door->doortype == DOORTYPE_LASER) {
door->laserfade = 0;
}
}
extern s32 osCicId;
void doorFinishClose(struct doorobj *door)
{
bool pass = true;
struct doorobj *loopdoor;
doorPlayClosedSound(door->soundtype, door->base.prop);
loopdoor = door;
while (loopdoor) {
if (loopdoor->frac > 0 && loopdoor->portalnum == door->portalnum) {
pass = false;
}
loopdoor = loopdoor->sibling;
if (loopdoor == door) {
break;
}
}
if (pass) {
doorDeactivatePortal(door);
}
#if VERSION >= VERSION_NTSC_1_0
if (door->doortype == DOORTYPE_LASER && door->fadetime60 == 0) {
door->laserfade = 255;
}
#else
if (door->doortype == DOORTYPE_LASER) {
door->laserfade = 0;
}
#endif
#if PIRACYCHECKS
if (osCicId != decodeXorAaaaaaaa(PAL ? (6105 ^ 0x18743082) : (6105 ^ 0xaaaaaaaa))) {
u32 *ptr = (u32 *)func0f08f968;
ptr[0] = 0x00001025; // li v0, 0
ptr[1] = 0x03e00008; // jr ra
ptr[2] = 0x00000000; // nop
}
#endif
}
/**
* Apply the given mode to an individual door (not its siblings).
*
* Handles playing door open/close sounds and activating the portal if opening.
*/
void doorSetMode(struct doorobj *door, s32 newmode)
{
if (newmode == DOORMODE_OPENING) {
if (door->mode == DOORMODE_IDLE || door->mode == DOORMODE_WAITING) {
doorStartOpen(door);
}
door->mode = newmode;
} else if (newmode == DOORMODE_CLOSING) {
if (door->mode == DOORMODE_IDLE && door->frac > 0) {
doorStartClose(door);
}
if ((door->mode != DOORMODE_IDLE && door->mode != DOORMODE_WAITING) || door->frac > 0) {
door->mode = newmode;
} else if (door->mode == DOORMODE_WAITING) {
door->mode = DOORMODE_IDLE;
}
} else {
door->mode = newmode;
}
}
/**
* Request that the door and its siblings be applied the given mode
* (opening or closing).
*
* When opening an airlock-style door (eg. GE Dam gate), the requested mode is
* modified so that the sibling begins closing instead, and the main door waits
* for the sibling before it opens.
*/
void doorsRequestMode(struct doorobj *door, s32 newmode)
{
struct doorobj *sibling;
s32 siblingmode = newmode;
if ((door->base.flags2 & OBJFLAG2_AIRLOCKDOOR) && newmode == DOORMODE_OPENING) {
siblingmode = DOORMODE_CLOSING;
if (door->mode == DOORMODE_IDLE) {
newmode = DOORMODE_WAITING;
}
}
doorSetMode(door, newmode);
sibling = door->sibling;
while (sibling && sibling != door) {
doorSetMode(sibling, siblingmode);
sibling = sibling->sibling;
}
}
s32 doorIsClosed(struct doorobj *door)
{
return (door->mode == DOORMODE_IDLE || door->mode == DOORMODE_WAITING) && door->frac <= 0;
}
s32 doorIsOpen(struct doorobj *door)
{
return (door->mode == DOORMODE_IDLE || door->mode == DOORMODE_WAITING) && door->frac >= door->maxfrac;
}
s32 func0f08e5a8(s16 *rooms2, struct screenbox *box)
{
bool result = false;
s16 *rooms = rooms2;
s32 roomnum = *rooms;
while (roomnum != -1) {
struct var800a4640_00 *thing = func0f158140(roomnum);
if (thing != var8007fc24) {
if (result) {
if (box->xmin > thing->box.xmin) {
box->xmin = thing->box.xmin;
}
if (box->ymin > thing->box.ymin) {
box->ymin = thing->box.ymin;
}
if (box->xmax < thing->box.xmax) {
box->xmax = thing->box.xmax;
}
if (box->ymax < thing->box.ymax) {
box->ymax = thing->box.ymax;
}
} else {
box->xmin = thing->box.xmin;
box->ymin = thing->box.ymin;
box->xmax = thing->box.xmax;
box->ymax = thing->box.ymax;
}
result = true;
}
rooms++;
roomnum = *rooms;
}
return result;
}
f32 func0f08e6bc(struct prop *prop, f32 arg1)
{
f32 result = 1;
struct coord *coord = env0f1667e8();
if (coord != NULL && coord->z < prop->z) {
f32 scalez = camGetLodScaleZ();
f32 value = ((prop->z - coord->z) * 100.0f / arg1 + coord->z) * scalez;
if (value >= coord->y) {
result = 0;
} else if (value > coord->x) {
result = (coord->y - value) / (coord->y - coord->x);
}
}
return result;
}
bool func0f08e794(struct coord *coord, f32 arg1)
{
bool result = true;
struct coord *ptr = env0f1667e8();
struct coord tmp;
f32 sp20;
if (ptr != NULL) {
struct coord *campos = &g_Vars.currentplayer->cam_pos;
Mtxf *mtx = camGetWorldToScreenMtxf();
tmp.x = coord->x - campos->x;
tmp.y = coord->y - campos->y;
tmp.z = coord->z - campos->z;
sp20 = tmp.f[0] * mtx->m[0][0] + tmp.f[1] * mtx->m[0][1] + tmp.f[2] * mtx->m[0][2];
if (sp20 > ptr->z) {
f32 scalez = camGetLodScaleZ();
sp20 = ((sp20 - ptr->z) * 100 / arg1 + ptr->z) * scalez;
if (sp20 >= ptr->y) {
result = false;
}
}
}
return result;
}
bool func0f08e8ac(struct prop *prop, struct coord *pos, f32 arg2, bool arg3)
{
s16 *rooms;
s32 roomnum;
bool result = false;
u32 stack;
rooms = prop->rooms;
roomnum = *rooms;
while (roomnum != -1) {
if (g_Rooms[roomnum].flags & ROOMFLAG_ONSCREEN) {
if (env0f1666f8(pos, arg2) && (!arg3 || func0f08e794(pos, arg2))) {
result = camIsPosInFovAndVisibleRoom(prop->rooms, pos, arg2);
if (result) {
struct coord *campos = &g_Vars.currentplayer->cam_pos;
f32 xdiff = pos->x - campos->x;
f32 ydiff = pos->y - campos->y;
f32 zdiff = pos->z - campos->z;
if (xdiff * xdiff + ydiff * ydiff + zdiff * zdiff > 32000 * 32000) {
result = false;
}
}
}
break;
}
rooms++;
roomnum = *rooms;
result = false;
}
return result;
}
bool posIsInDrawDistance(struct coord *pos)
{
struct coord *campos = &g_Vars.currentplayer->cam_pos;
f32 x = pos->x - campos->x;
f32 y = pos->y - campos->y;
f32 z = pos->z - campos->z;
f32 aggregate = x * x + y * y + z * z;
bool result = true;
if (aggregate > 1024000000) {
result = false;
}
return result;
}
void doorCreateSparks(struct doorobj *door)
{
struct pad pad;
struct coord sp88;
struct coord sp7c;
struct coord sp70;
s32 i;
padUnpack(door->base.pad, PADFIELD_POS | PADFIELD_UP | PADFIELD_NORMAL | PADFIELD_BBOX, &pad);
sp88.x = sp7c.f[0] = pad.pos.f[0] + pad.up.f[0] * (pad.bbox.ymin + (1 - door->frac) * (pad.bbox.ymax - pad.bbox.ymin));
sp88.y = sp7c.f[1] = pad.pos.f[1] + pad.up.f[1] * (pad.bbox.ymin + (1 - door->frac) * (pad.bbox.ymax - pad.bbox.ymin));
sp88.z = sp7c.f[2] = pad.pos.f[2] + pad.up.f[2] * (pad.bbox.ymin + (1 - door->frac) * (pad.bbox.ymax - pad.bbox.ymin));
sp88.x += pad.look.f[0] * pad.bbox.zmax;
sp88.y += pad.look.f[1] * pad.bbox.zmax;
sp88.z += pad.look.f[2] * pad.bbox.zmax;
sp7c.x += pad.look.f[0] * pad.bbox.zmin;
sp7c.y += pad.look.f[1] * pad.bbox.zmin;
sp7c.z += pad.look.f[2] * pad.bbox.zmin;
sp70.x = -pad.up.x;
sp70.y = -pad.up.y;
sp70.z = -pad.up.z;
sparksCreate(door->base.prop->rooms[0], door->base.prop, &sp88, &sp70, &pad.up, SPARKTYPE_09);
sparksCreate(door->base.prop->rooms[0], door->base.prop, &sp7c, &sp70, &pad.up, SPARKTYPE_09);
if (random() % 2) {
sparksCreate(door->base.prop->rooms[0], door->base.prop, &sp88, &sp70, &pad.up, SPARKTYPE_0C);
} else {
sparksCreate(door->base.prop->rooms[0], door->base.prop, &sp88, &sp70, &pad.up, SPARKTYPE_0D);
}
propsnd0f0939f8(NULL, door->base.prop, propsndGetRandomSparkSound(), -1,
-1, 0, 0, 0, &sp88, -1, door->base.prop->rooms, -1, -1, -1, -1);
propsnd0f0939f8(NULL, door->base.prop, propsndGetRandomSparkSound(), -1,
-1, 0, 0, 0, &sp7c, -1, door->base.prop->rooms, -1, -1, -1, -1);
for (i = 0; door->base.prop->rooms[i] != -1; i++) {
roomAdjustLighting(door->base.prop->rooms[i], 128, 200);
}
}
/**
* Calculate/tick a door's frac (the amount it's open) without any consideration
* for props which might be blocking the door. The new frac is written to the
* door's frac property.
*
* Return true if collision checks should be considered.
*
* Also handles sticky doors such as the ones in Skedar Ruins.
*/
bool doorCalcIntendedFrac(struct doorobj *door)
{
bool checkcollision = false;
if (door->doortype == DOORTYPE_LASER && door->fadetime60 != 0) {
door->fadetime60 -= g_Vars.lvupdate240_60;
if (door->fadetime60 < 0) {
door->fadetime60 = 0;
}
if (door->mode == DOORMODE_OPENING) {
door->laserfade = (u32)((door->fadetime60 * 255.0f) / TICKS(60.0f));
return false;
}
door->laserfade = (u32)(((TICKS(60.0f) - door->fadetime60) * 255.0f) / TICKS(60.0f));
}
if (door->mode == DOORMODE_OPENING || door->mode == DOORMODE_CLOSING) {
f32 end = door->mode == DOORMODE_OPENING ? door->maxfrac : 0;
// Skedar Ruins random door stuckage
if (door->base.flags3 & OBJFLAG3_DOOR_STICKY) {
s32 value = (random() % 64) + 30;
if ((g_Vars.lvframenum % value) == 0) {
bool dothething = false;
struct doorobj *loopdoor;
door->fracspeed = 0.0f;
doorCreateSparks(door);
if (random() % 2) {
dothething = true;
func0f0926bc(door->base.prop, 12, 0xffff);
door->mode = DOORMODE_IDLE;
door->lastopen60 = g_Vars.lvframe60;
}
loopdoor = door;
while (loopdoor) {
if (random() % 2 && loopdoor->mode != DOORMODE_IDLE) {
loopdoor->fracspeed = 0.0f;
doorCreateSparks(loopdoor);
if (dothething) {
func0f0926bc(loopdoor->base.prop, 12, 0xffff);
loopdoor->mode = DOORMODE_IDLE;
loopdoor->lastopen60 = g_Vars.lvframe60;
}
}
loopdoor = loopdoor->sibling;
if (loopdoor == door) {
break;
}
}
doorPlayClosedSound(door->soundtype, door->base.prop);
}
}
applySpeed(&door->frac, end, &door->fracspeed, door->accel, door->decel, door->maxspeed);
if (door->frac >= door->maxfrac) {
door->frac = door->maxfrac;
} else if (door->frac <= 0.0f) {
door->frac = 0.0f;
}
checkcollision = true;
}
return checkcollision;
}
/**
* Calculate the frac of a door and its siblings, taking into consideration
* objects which may be blocking the door.
*
* For each sibling, the original frac is backed up into the sibling's
* lastcalc60 field. The desired frac is then calculated and set in the
* sibling's frac property. Then collision checks are done, and the original
* frac is restored if any sibling is blocked.
*
* Chrs who are blocking a lift door may be warped out of the way.
*/
void doorsCalcFrac(struct doorobj *door)
{
bool checkcollision = false;
s32 cdresult = CDRESULT_NOCOLLISION;
struct doorobj *loopdoor;
struct doorobj *loopdoor2;
f32 frac;
s32 numsameportal;
// For each sibling door, save their previous frac
// then calculate the new desired frac
loopdoor = door;
while (loopdoor) {
*(f32 *)&loopdoor->lastcalc60 = loopdoor->frac;
if (doorCalcIntendedFrac(loopdoor)) {
checkcollision = true;
}
loopdoor = loopdoor->sibling;
if (loopdoor == door) {
break;
}
}
// Do collision checks
if (checkcollision) {
loopdoor = door;
while (loopdoor) {
struct prop *loopprop;
doorUpdateTiles(loopdoor);
setup0f0923d4(&loopdoor->base);
loopprop = loopdoor->base.prop;
#if VERSION >= VERSION_NTSC_1_0
if ((door->doorflags & DOORFLAG_UNBLOCKABLEOPEN) == 0 || loopdoor->mode == DOORMODE_CLOSING)
#else
if ((door->doorflags & DOORFLAG_UNBLOCKABLEOPEN) == 0)
#endif
{
propSetPerimEnabled(loopprop, false);
cdresult = cd0002e4c4(loopdoor->base.geoblock, loopprop->rooms,
CDTYPE_OBJS | CDTYPE_PLAYERS | CDTYPE_CHRS | CDTYPE_PATHBLOCKER | CDTYPE_OBJSNOTSAFEORHELI);
propSetPerimEnabled(loopprop, true);
if (cdresult == CDRESULT_COLLISION) {
struct prop *blockerprop = cdGetObstacle();
if (blockerprop && blockerprop->type == PROPTYPE_CHR) {
struct chrdata *chr = blockerprop->chr;
chr->hidden |= CHRHFLAG_BLOCKINGDOOR;
#if VERSION >= VERSION_NTSC_1_0
// Consider warping the chr past the lift door
if (!g_Vars.normmplayerisrunning && (chr->hidden & CHRHFLAG_00400000)) {
bool isliftdoor = false;
loopdoor2 = loopdoor;
while (loopdoor2) {
if (loopdoor2->base.hidden & OBJHFLAG_LIFTDOOR) {
isliftdoor = true;
break;
}
loopdoor2 = loopdoor2->sibling;
if (loopdoor2 == loopdoor) {
break;
}
}
if (isliftdoor) {
if (chr->actiontype == ACT_STAND
|| (chr->actiontype == ACT_ATTACK && (chr->act_attack.flags & ATTACKFLAG_DONTTURN))
|| (chr->actiontype == ACT_GOPOS && func0f02e064(chr))) {
struct prop *target = chrGetTargetProp(chr);
if (chrGoToPos(chr, &target->pos, target->rooms, 0)) {
chr->goposforce = TICKS(600);
}
} else if (chr->actiontype == ACT_GOPOS) {
if (chr->goposforce >= 0 || chr->lastmoveok60 < g_Vars.lvframe60 - TICKS(60)) {
chr->goposforce = TICKS(600);
}
}
}
}
#endif
}
break;
}
}
loopdoor = loopdoor->sibling;
if (loopdoor == door) {
break;
}
}
}
// Finalise the frac
loopdoor = door;
while (loopdoor) {
if (checkcollision) {
if (cdresult != CDRESULT_COLLISION) {
// No collision - handle door becoming fully open or closed
if (loopdoor->mode == DOORMODE_OPENING) {
if (loopdoor->frac >= loopdoor->maxfrac) {
loopdoor->mode = DOORMODE_IDLE;
loopdoor->fracspeed = 0;
loopdoor->lastopen60 = g_Vars.lvframe60;
doorFinishOpen(loopdoor);
}
} else {
if (loopdoor->mode == DOORMODE_CLOSING && loopdoor->frac <= 0) {
loopdoor->mode = DOORMODE_IDLE;
loopdoor->fracspeed = 0;
loopdoor->lastopen60 = 0;
doorFinishClose(loopdoor);
}
}
func0f069c70(&loopdoor->base, false, false);
func0f08d3dc(loopdoor);
} else {
// Door is blocked - restore the original frac
loopdoor->fracspeed = 0;
loopdoor->frac = *(f32 *)&loopdoor->lastcalc60;
doorUpdateTiles(loopdoor);
setup0f0923d4(&loopdoor->base);
func0f08d460(loopdoor);
}
} else {
func0f08d460(loopdoor);
}
loopdoor->lastcalc60 = g_Vars.lvframe60;
loopdoor = loopdoor->sibling;
if (loopdoor == door) {
break;
}
}
// Update portal visibility
frac = 0;
numsameportal = 0;
if (checkcollision) {
loopdoor = door;
while (loopdoor) {
if (loopdoor->portalnum == door->portalnum) {
numsameportal++;
if (loopdoor->doortype == DOORTYPE_SWINGING || loopdoor->doortype == DOORTYPE_SWINGING) {
frac += loopdoor->frac / loopdoor->maxfrac;
} else {
frac += loopdoor->frac / loopdoor->maxfrac;
}
}
loopdoor = loopdoor->sibling;
if (loopdoor == door) {
break;
}
}
portalSetXluFrac(door->portalnum, frac / numsameportal);
portalSetXluFrac2(door->portalnum, frac / numsameportal);
}
}
f32 func0f08f538(f32 x, f32 y)
{
f32 angle = atan2f(x, y);
if (g_Vars.currentplayer->eyespy
&& g_Vars.currentplayer->eyespy->active
&& g_Vars.currentplayer->eyespy->prop
&& g_Vars.currentplayer->eyespy->prop->chr) {
angle -= chrGetInverseTheta(g_Vars.currentplayer->eyespy->prop->chr);
} else {
angle -= (360.0f - g_Vars.currentplayer->vv_theta) * M_BADTAU / 360.0f;
}
if (angle < 0) {
angle += M_BADTAU;
}
if (angle > M_BADPI) {
angle -= M_BADTAU;
}
return angle;
}
GLOBAL_ASM(
glabel func0f08f604
.late_rodata
glabel var7f1ab180
.word 0x3c8ef461
glabel var7f1ab184
.word 0x40c907a9
.text
/* f08f604: 27bdff18 */ addiu $sp,$sp,-232
/* f08f608: 3c08800a */ lui $t0,%hi(g_Vars+0x284)
/* f08f60c: 8d08a244 */ lw $t0,%lo(g_Vars+0x284)($t0)
/* f08f610: afbf0014 */ sw $ra,0x14($sp)
/* f08f614: afa400e8 */ sw $a0,0xe8($sp)
/* f08f618: afa500ec */ sw $a1,0xec($sp)
/* f08f61c: afa600f0 */ sw $a2,0xf0($sp)
/* f08f620: afa700f4 */ sw $a3,0xf4($sp)
/* f08f624: 8d030480 */ lw $v1,0x480($t0)
/* f08f628: 27a60044 */ addiu $a2,$sp,0x44
/* f08f62c: 2405002e */ addiu $a1,$zero,0x2e
/* f08f630: 10600006 */ beqz $v1,.L0f08f64c
/* f08f634: 8faf00e8 */ lw $t7,0xe8($sp)
/* f08f638: 806e0037 */ lb $t6,0x37($v1)
/* f08f63c: 51c00004 */ beqzl $t6,.L0f08f650
/* f08f640: 8d0200bc */ lw $v0,0xbc($t0)
/* f08f644: 10000002 */ b .L0f08f650
/* f08f648: 8c620000 */ lw $v0,0x0($v1)
.L0f08f64c:
/* f08f64c: 8d0200bc */ lw $v0,0xbc($t0)
.L0f08f650:
/* f08f650: 85e40006 */ lh $a0,0x6($t7)
/* f08f654: 0fc456ac */ jal padUnpack
/* f08f658: afa200b4 */ sw $v0,0xb4($sp)
/* f08f65c: 8fa200b4 */ lw $v0,0xb4($sp)
/* f08f660: 8fb800fc */ lw $t8,0xfc($sp)
/* f08f664: c7a00060 */ lwc1 $f0,0x60($sp)
/* f08f668: c4440008 */ lwc1 $f4,0x8($v0)
/* f08f66c: c7a20054 */ lwc1 $f2,0x54($sp)
/* f08f670: c7aa007c */ lwc1 $f10,0x7c($sp)
/* f08f674: e7a40098 */ swc1 $f4,0x98($sp)
/* f08f678: c446000c */ lwc1 $f6,0xc($v0)
/* f08f67c: e7a6009c */ swc1 $f6,0x9c($sp)
/* f08f680: c4480010 */ lwc1 $f8,0x10($v0)
/* f08f684: 13000012 */ beqz $t8,.L0f08f6d0
/* f08f688: e7a800a0 */ swc1 $f8,0xa0($sp)
/* f08f68c: c7a40058 */ lwc1 $f4,0x58($sp)
/* f08f690: c7aa0078 */ lwc1 $f10,0x78($sp)
/* f08f694: c7a80064 */ lwc1 $f8,0x64($sp)
/* f08f698: 46040182 */ mul.s $f6,$f0,$f4
/* f08f69c: e7aa00a4 */ swc1 $f10,0xa4($sp)
/* f08f6a0: c7b00074 */ lwc1 $f16,0x74($sp)
/* f08f6a4: 46081282 */ mul.s $f10,$f2,$f8
/* f08f6a8: c7a8005c */ lwc1 $f8,0x5c($sp)
/* f08f6ac: e7b000a8 */ swc1 $f16,0xa8($sp)
/* f08f6b0: 460a3101 */ sub.s $f4,$f6,$f10
/* f08f6b4: 46024182 */ mul.s $f6,$f8,$f2
/* f08f6b8: c7aa0050 */ lwc1 $f10,0x50($sp)
/* f08f6bc: e7a400b0 */ swc1 $f4,0xb0($sp)
/* f08f6c0: 46005102 */ mul.s $f4,$f10,$f0
/* f08f6c4: 46043201 */ sub.s $f8,$f6,$f4
/* f08f6c8: 10000008 */ b .L0f08f6ec
/* f08f6cc: e7a800ac */ swc1 $f8,0xac($sp)
.L0f08f6d0:
/* f08f6d0: c7a60080 */ lwc1 $f6,0x80($sp)
/* f08f6d4: c7a4005c */ lwc1 $f4,0x5c($sp)
/* f08f6d8: c7a80064 */ lwc1 $f8,0x64($sp)
/* f08f6dc: e7aa00a8 */ swc1 $f10,0xa8($sp)
/* f08f6e0: e7a600a4 */ swc1 $f6,0xa4($sp)
/* f08f6e4: e7a400b0 */ swc1 $f4,0xb0($sp)
/* f08f6e8: e7a800ac */ swc1 $f8,0xac($sp)
.L0f08f6ec:
/* f08f6ec: c7b000a8 */ lwc1 $f16,0xa8($sp)
/* f08f6f0: c7aa00b0 */ lwc1 $f10,0xb0($sp)
/* f08f6f4: c7a60044 */ lwc1 $f6,0x44($sp)
/* f08f6f8: c7a80098 */ lwc1 $f8,0x98($sp)
/* f08f6fc: 46105002 */ mul.s $f0,$f10,$f16
/* f08f700: c7aa00ac */ lwc1 $f10,0xac($sp)
/* f08f704: 46105082 */ mul.s $f2,$f10,$f16
/* f08f708: e7a0002c */ swc1 $f0,0x2c($sp)
/* f08f70c: 46003100 */ add.s $f4,$f6,$f0
/* f08f710: c7a6004c */ lwc1 $f6,0x4c($sp)
/* f08f714: e7a20028 */ swc1 $f2,0x28($sp)
/* f08f718: 46082301 */ sub.s $f12,$f4,$f8
/* f08f71c: c7a800a0 */ lwc1 $f8,0xa0($sp)
/* f08f720: 46023100 */ add.s $f4,$f6,$f2
/* f08f724: e7ac00d4 */ swc1 $f12,0xd4($sp)
/* f08f728: 46082381 */ sub.s $f14,$f4,$f8
/* f08f72c: 0fc23d4e */ jal func0f08f538
/* f08f730: e7ae00d0 */ swc1 $f14,0xd0($sp)
/* f08f734: c7a200a4 */ lwc1 $f2,0xa4($sp)
/* f08f738: c7a600b0 */ lwc1 $f6,0xb0($sp)
/* f08f73c: c7aa0044 */ lwc1 $f10,0x44($sp)
/* f08f740: e7a000e4 */ swc1 $f0,0xe4($sp)
/* f08f744: 46023102 */ mul.s $f4,$f6,$f2
/* f08f748: c7a60098 */ lwc1 $f6,0x98($sp)
/* f08f74c: 46045200 */ add.s $f8,$f10,$f4
/* f08f750: c7a400ac */ lwc1 $f4,0xac($sp)
/* f08f754: c7aa004c */ lwc1 $f10,0x4c($sp)
/* f08f758: 46064301 */ sub.s $f12,$f8,$f6
/* f08f75c: 46022202 */ mul.s $f8,$f4,$f2
/* f08f760: c7a400a0 */ lwc1 $f4,0xa0($sp)
/* f08f764: e7ac00cc */ swc1 $f12,0xcc($sp)
/* f08f768: 46085180 */ add.s $f6,$f10,$f8
/* f08f76c: 46043381 */ sub.s $f14,$f6,$f4
/* f08f770: 0fc23d4e */ jal func0f08f538
/* f08f774: e7ae00c8 */ swc1 $f14,0xc8($sp)
/* f08f778: c7b000e4 */ lwc1 $f16,0xe4($sp)
/* f08f77c: 8fa300e8 */ lw $v1,0xe8($sp)
/* f08f780: 8fb900ec */ lw $t9,0xec($sp)
/* f08f784: 4600803c */ c.lt.s $f16,$f0
/* f08f788: 8faa00ec */ lw $t2,0xec($sp)
/* f08f78c: 45020006 */ bc1fl .L0f08f7a8
/* f08f790: e5400000 */ swc1 $f0,0x0($t2)
/* f08f794: e7300000 */ swc1 $f16,0x0($t9)
/* f08f798: 8fa900f0 */ lw $t1,0xf0($sp)
/* f08f79c: 10000004 */ b .L0f08f7b0
/* f08f7a0: e5200000 */ swc1 $f0,0x0($t1)
/* f08f7a4: e5400000 */ swc1 $f0,0x0($t2)
.L0f08f7a8:
/* f08f7a8: 8fab00f0 */ lw $t3,0xf0($sp)
/* f08f7ac: e5700000 */ swc1 $f16,0x0($t3)
.L0f08f7b0:
/* f08f7b0: 8fa500f4 */ lw $a1,0xf4($sp)
/* f08f7b4: 8fa400f8 */ lw $a0,0xf8($sp)
/* f08f7b8: 50a00068 */ beqzl $a1,.L0f08f95c
/* f08f7bc: 8fbf0014 */ lw $ra,0x14($sp)
/* f08f7c0: 50800066 */ beqzl $a0,.L0f08f95c
/* f08f7c4: 8fbf0014 */ lw $ra,0x14($sp)
/* f08f7c8: 94620072 */ lhu $v0,0x72($v1)
/* f08f7cc: 24010005 */ addiu $at,$zero,0x5
/* f08f7d0: 14410035 */ bne $v0,$at,.L0f08f8a8
/* f08f7d4: 3c017f1b */ lui $at,%hi(var7f1ab180)
/* f08f7d8: c428b180 */ lwc1 $f8,%lo(var7f1ab180)($at)
/* f08f7dc: c46a007c */ lwc1 $f10,0x7c($v1)
/* f08f7e0: 8c6c0008 */ lw $t4,0x8($v1)
/* f08f7e4: 46008486 */ mov.s $f18,$f16
/* f08f7e8: 46085302 */ mul.s $f12,$f10,$f8
/* f08f7ec: 000c6880 */ sll $t5,$t4,0x2
/* f08f7f0: 05a10003 */ bgez $t5,.L0f08f800
/* f08f7f4: 3c017f1b */ lui $at,%hi(var7f1ab184)
/* f08f7f8: c426b184 */ lwc1 $f6,%lo(var7f1ab184)($at)
/* f08f7fc: 460c3301 */ sub.s $f12,$f6,$f12
.L0f08f800:
/* f08f800: e7ac0038 */ swc1 $f12,0x38($sp)
/* f08f804: 0c0068f4 */ jal cosf
/* f08f808: e7b200dc */ swc1 $f18,0xdc($sp)
/* f08f80c: c7ac0038 */ lwc1 $f12,0x38($sp)
/* f08f810: 0c0068f7 */ jal sinf
/* f08f814: e7a00034 */ swc1 $f0,0x34($sp)
/* f08f818: c7a400a4 */ lwc1 $f4,0xa4($sp)
/* f08f81c: c7aa00a8 */ lwc1 $f10,0xa8($sp)
/* f08f820: c7a80044 */ lwc1 $f8,0x44($sp)
/* f08f824: c7a6002c */ lwc1 $f6,0x2c($sp)
/* f08f828: 460a2081 */ sub.s $f2,$f4,$f10
/* f08f82c: c7aa0098 */ lwc1 $f10,0x98($sp)
/* f08f830: c7b00034 */ lwc1 $f16,0x34($sp)
/* f08f834: 46064100 */ add.s $f4,$f8,$f6
/* f08f838: c7a600b0 */ lwc1 $f6,0xb0($sp)
/* f08f83c: 460a2201 */ sub.s $f8,$f4,$f10
/* f08f840: 46103102 */ mul.s $f4,$f6,$f16
/* f08f844: c7aa00ac */ lwc1 $f10,0xac($sp)
/* f08f848: e7a80018 */ swc1 $f8,0x18($sp)
/* f08f84c: 46005202 */ mul.s $f8,$f10,$f0
/* f08f850: 46082100 */ add.s $f4,$f4,$f8
/* f08f854: 46041202 */ mul.s $f8,$f2,$f4
/* f08f858: c7a40018 */ lwc1 $f4,0x18($sp)
/* f08f85c: 46082300 */ add.s $f12,$f4,$f8
/* f08f860: c7a80028 */ lwc1 $f8,0x28($sp)
/* f08f864: c7a4004c */ lwc1 $f4,0x4c($sp)
/* f08f868: 46082100 */ add.s $f4,$f4,$f8
/* f08f86c: c7a800a0 */ lwc1 $f8,0xa0($sp)
/* f08f870: 46082101 */ sub.s $f4,$f4,$f8
/* f08f874: 46003207 */ neg.s $f8,$f6
/* f08f878: 46004182 */ mul.s $f6,$f8,$f0
/* f08f87c: 00000000 */ nop
/* f08f880: 46105202 */ mul.s $f8,$f10,$f16
/* f08f884: 46083280 */ add.s $f10,$f6,$f8
/* f08f888: 460a1182 */ mul.s $f6,$f2,$f10
/* f08f88c: 0fc23d4e */ jal func0f08f538
/* f08f890: 46062380 */ add.s $f14,$f4,$f6
/* f08f894: c7b200dc */ lwc1 $f18,0xdc($sp)
/* f08f898: 46000086 */ mov.s $f2,$f0
/* f08f89c: 8fa500f4 */ lw $a1,0xf4($sp)
/* f08f8a0: 10000024 */ b .L0f08f934
/* f08f8a4: 8fa400f8 */ lw $a0,0xf8($sp)
.L0f08f8a8:
/* f08f8a8: 10400007 */ beqz $v0,.L0f08f8c8
/* f08f8ac: 24010001 */ addiu $at,$zero,0x1
/* f08f8b0: 10410005 */ beq $v0,$at,.L0f08f8c8
/* f08f8b4: 24010002 */ addiu $at,$zero,0x2
/* f08f8b8: 10410003 */ beq $v0,$at,.L0f08f8c8
/* f08f8bc: 24010003 */ addiu $at,$zero,0x3
/* f08f8c0: 5441001b */ bnel $v0,$at,.L0f08f930
/* f08f8c4: 46008486 */ mov.s $f18,$f16
.L0f08f8c8:
/* f08f8c8: c460007c */ lwc1 $f0,0x7c($v1)
/* f08f8cc: c4680098 */ lwc1 $f8,0x98($v1)
/* f08f8d0: c46a00a0 */ lwc1 $f10,0xa0($v1)
/* f08f8d4: c7a400d4 */ lwc1 $f4,0xd4($sp)
/* f08f8d8: 46004082 */ mul.s $f2,$f8,$f0
/* f08f8dc: c7a600d0 */ lwc1 $f6,0xd0($sp)
/* f08f8e0: 46005402 */ mul.s $f16,$f10,$f0
/* f08f8e4: e7a20040 */ swc1 $f2,0x40($sp)
/* f08f8e8: 46022300 */ add.s $f12,$f4,$f2
/* f08f8ec: e7b0003c */ swc1 $f16,0x3c($sp)
/* f08f8f0: 0fc23d4e */ jal func0f08f538
/* f08f8f4: 46103380 */ add.s $f14,$f6,$f16
/* f08f8f8: c7a20040 */ lwc1 $f2,0x40($sp)
/* f08f8fc: c7b0003c */ lwc1 $f16,0x3c($sp)
/* f08f900: c7a800cc */ lwc1 $f8,0xcc($sp)
/* f08f904: c7aa00c8 */ lwc1 $f10,0xc8($sp)
/* f08f908: e7a000dc */ swc1 $f0,0xdc($sp)
/* f08f90c: 46024300 */ add.s $f12,$f8,$f2
/* f08f910: 0fc23d4e */ jal func0f08f538
/* f08f914: 46105380 */ add.s $f14,$f10,$f16
/* f08f918: c7b200dc */ lwc1 $f18,0xdc($sp)
/* f08f91c: 46000086 */ mov.s $f2,$f0
/* f08f920: 8fa500f4 */ lw $a1,0xf4($sp)
/* f08f924: 10000003 */ b .L0f08f934
/* f08f928: 8fa400f8 */ lw $a0,0xf8($sp)
/* f08f92c: 46008486 */ mov.s $f18,$f16
.L0f08f930:
/* f08f930: 46000086 */ mov.s $f2,$f0
.L0f08f934:
/* f08f934: 4602903c */ c.lt.s $f18,$f2
/* f08f938: 00000000 */ nop
/* f08f93c: 45020005 */ bc1fl .L0f08f954
/* f08f940: e4a20000 */ swc1 $f2,0x0($a1)
/* f08f944: e4b20000 */ swc1 $f18,0x0($a1)
/* f08f948: 10000003 */ b .L0f08f958
/* f08f94c: e4820000 */ swc1 $f2,0x0($a0)
/* f08f950: e4a20000 */ swc1 $f2,0x0($a1)
.L0f08f954:
/* f08f954: e4920000 */ swc1 $f18,0x0($a0)
.L0f08f958:
/* f08f958: 8fbf0014 */ lw $ra,0x14($sp)
.L0f08f95c:
/* f08f95c: 27bd00e8 */ addiu $sp,$sp,0xe8
/* f08f960: 03e00008 */ jr $ra
/* f08f964: 00000000 */ nop
);
/**
* Get some coordinates/distances related to activating doors.
*/
// Mismatch: Float instructions are in a different order
//void func0f08f604(struct doorobj *door, f32 *arg1, f32 *arg2, f32 *arg3, f32 *arg4, bool arg5)
//{
// f32 spe4;
// f32 spe0;
// f32 spdc;
// f32 tmp;
// f32 spd4;
// f32 spd0;
// f32 spcc;
// f32 spc8;
// u32 stack[4];
// struct prop *playerprop; // b4
// f32 spb0;
// f32 spac;
// f32 spa8;
// f32 spa4;
// volatile struct coord playerpos; // 98
// struct pad pad; // 44
// f32 sp40;
// f32 sp3c;
// f32 sp38;
// f32 sp34;
// f32 sp30;
// f32 sp2c;
// f32 sp28;
//
// if (g_Vars.currentplayer->eyespy && g_Vars.currentplayer->eyespy->active) {
// playerprop = g_Vars.currentplayer->eyespy->prop;
// } else {
// playerprop = g_Vars.currentplayer->prop;
// }
//
// padUnpack(door->base.pad, PADFIELD_POS | PADFIELD_LOOK | PADFIELD_UP | PADFIELD_BBOX, &pad);
//
// playerpos.x = playerprop->pos.x;
// playerpos.y = playerprop->pos.y;
// playerpos.z = playerprop->pos.z;
//
// if (arg5) {
// spa8 = pad.bbox.xmin;
// spa4 = pad.bbox.xmax;
// spb0 = pad.up.y * pad.look.z - pad.look.y * pad.up.z;
// spac = pad.up.x * pad.look.y - pad.look.x * pad.up.y;
// } else {
// spa8 = pad.bbox.ymin;
// spa4 = pad.bbox.ymax;
// spb0 = pad.up.x;
// spac = pad.up.z;
// }
//
// spd4 = pad.pos.x + spb0 * spa8 - playerpos.x;
// spd0 = pad.pos.z + spac * spa8 - playerpos.z;
// spe4 = func0f08f538(spd4, spd0);
// spcc = pad.pos.x + spb0 * spa4 - playerpos.x;
// spc8 = pad.pos.z + spac * spa4 - playerpos.z;
// spe0 = func0f08f538(spcc, spc8);
//
// if (spe4 < spe0) {
// *arg1 = spe4;
// *arg2 = spe0;
// } else {
// *arg1 = spe0;
// *arg2 = spe4;
// }
//
// if (arg3 != NULL && arg4 != NULL) {
// if (door->doortype == DOORTYPE_SWINGING) {
// sp38 = door->frac * 0.017450513318181f;
//
// if (door->base.flags & OBJFLAG_DOOR_OPENTOFRONT) {
// sp38 = M_BADTAU - sp38;
// }
//
// spdc = spe4;
// sp34 = cosf(sp38);
// sp30 = sinf(sp38);
// tmp = func0f08f538(
// (pad.pos.x + spb0 * spa8 - playerpos.x) + (spa4 - spa8) * (spb0 * sp34 + spac * sp30),
// (pad.pos.z + spac * spa8 - playerpos.z) + (spa4 - spa8) * (-spb0 * sp30 + spac * sp34));
// } else if (door->doortype == DOORTYPE_SLIDING
// || door->doortype == DOORTYPE_FLEXI1
// || door->doortype == DOORTYPE_FLEXI2
// || door->doortype == DOORTYPE_FLEXI3) {
// sp40 = door->unk98.x * door->frac;
// sp3c = door->unk98.z * door->frac;
// spdc = func0f08f538(spd4 + sp40, spd0 + sp3c);
// tmp = func0f08f538(spcc + sp40, spc8 + sp3c);
// } else {
// spdc = spe4;
// }
//
// if (spdc < tmp) {
// *arg3 = spdc;
// *arg4 = tmp;
// } else {
// *arg3 = tmp;
// *arg4 = spdc;
// }
// }
//}
bool func0f08f968(struct doorobj *door, bool arg1)
{
bool checkmore = true;
f32 sp58;
f32 sp54;
f32 sp50;
f32 sp4c;
bool maybe;
struct prop *playerprop;
f32 limit = 0.34901028871536f;
if (g_InteractProp == NULL) {
maybe = false;
if (g_Vars.currentplayer->eyespy && g_Vars.currentplayer->eyespy->active) {
playerprop = g_Vars.currentplayer->eyespy->prop;
} else {
playerprop = g_Vars.currentplayer->prop;
}
if ((door->doorflags & (DOORFLAG_0080 | DOORFLAG_0100)) != DOORFLAG_0080) {
maybe = true;
} else if (func0f06797c(&playerprop->pos, 30, door->base.pad)) {
maybe = true;
}
if (maybe) {
func0f08f604(door, &sp58, &sp54, &sp50, &sp4c, arg1);
} else {
func0f08f604(door, &sp58, &sp54, NULL, NULL, arg1);
}
if (maybe && ((sp50 >= -limit && sp50 <= limit && sp4c >= -limit && sp4c <= limit)
|| (sp4c - sp50 < M_BADPI && sp50 < 0.0f && sp4c > 0.0f))) {
g_InteractProp = door->base.prop;
checkmore = false;
} else if (sp58 >= -limit && sp58 <= limit && sp54 >= -limit && sp54 <= limit) {
g_InteractProp = door->base.prop;
checkmore = false;
} else {
struct doorobj *sibling = door->sibling;
f32 sp38;
f32 sp34;
while (sibling != NULL && sibling != door && (sp58 >= 0.0f || sp54 < 0.0f)) {
func0f08f604(sibling, &sp38, &sp34, NULL, NULL, arg1);
if (sp58 >= 0.0f && sp38 < sp58) {
sp58 = sp38;
}
if (sp54 <= 0.0f && sp54 < sp34) {
sp54 = sp34;
}
sibling = sibling->sibling;
}
if (sp54 - sp58 < M_BADPI && sp58 < 0.0f && sp54 > 0.0f) {
g_InteractProp = door->base.prop;
checkmore = false;
}
}
}
return checkmore;
}
/**
* This function is used to help find the door that should be opened when
* interacting. The argument given is a door to be tested.
*
* A pointer to the best candidate is stored at g_InteractProp. This function
* doesn't write to it directly so it must be done by one of the called
* functions.
*
* This function should return true if more doors and objects should be tested,
* or false if the prop at g_InteractProp is certain to be final.
*/
bool doorTestForInteract(struct prop *prop)
{
bool checkmore = true;
struct doorobj *door = prop->door;
if ((door->base.flags & OBJFLAG_CANNOT_ACTIVATE) == 0
&& door->maxfrac > 0
&& (prop->flags & PROPFLAG_ONTHISSCREENTHISTICK)) {
bool maybe = false;
bool usingeyespy = g_Vars.currentplayer->eyespy && g_Vars.currentplayer->eyespy->active;
struct prop *playerprop = usingeyespy ? g_Vars.currentplayer->eyespy->prop : g_Vars.currentplayer->prop;
f32 xdiff = door->startpos.x - playerprop->pos.x;
f32 ydiff = door->startpos.y - playerprop->pos.y;
f32 zdiff = door->startpos.z - playerprop->pos.z;
if (xdiff * xdiff + zdiff * zdiff < 40000 && ydiff < 200 && ydiff > -200) {
maybe = true;
} else if (arrayIntersects(prop->rooms, playerprop->rooms)) {
if (func0f06797c(&playerprop->pos, 150, door->base.pad)) {
maybe = true;
} else if ((door->doorflags & (DOORFLAG_0080 | DOORFLAG_0100)) != DOORFLAG_0080) {
u32 stack;
struct modelrodata_bbox bbox;
Mtxf matrix;
doorGetBbox(door, &bbox);
func0f08c424(door, &matrix);
if (func0f0675c8(&playerprop->pos, 150, &bbox, &matrix)) {
maybe = true;
}
}
}
if (maybe) {
if ((door->base.flags2 & OBJFLAG2_INTERACTCHECKLOS) == 0
|| cd0002dcd0(&playerprop->pos, playerprop->rooms, &prop->pos, prop->rooms, 0x20)) {
checkmore = func0f08f968(door, false);
if (checkmore && (door->base.flags2 & OBJFLAG2_80000000)) {
checkmore = func0f08f968(door, true);
}
}
}
}
return checkmore;
}
/**
* Activate the doors by calling the lift or requesting the new door mode
* (opening/closing) for the given door and its siblings.
*
* Assumes any lock checks have already been done and have passed.
*
* The allowliftclose argument determines whether the door should be closed if
* it's a lift door and the lift is at the door. This is typically true when the
* player has activated the door, and false when NPCs have activated the door.
*/
void doorsActivate(struct prop *doorprop, bool allowliftclose)
{
struct doorobj *door = doorprop->door;
if (!doorCallLift(doorprop, allowliftclose)) {
if (door->mode == DOORMODE_OPENING || door->mode == DOORMODE_WAITING) {
doorsRequestMode(door, DOORMODE_CLOSING);
} else if (door->mode == DOORMODE_CLOSING) {
doorsRequestMode(door, DOORMODE_OPENING);
} else if (door->mode == DOORMODE_IDLE) {
if (door->frac > 0.5f * door->maxfrac) {
doorsRequestMode(door, DOORMODE_CLOSING);
} else {
doorsRequestMode(door, DOORMODE_OPENING);
}
}
}
if (g_Vars.currentplayernum == g_Vars.coopplayernum) {
door->base.hidden |= OBJHFLAG_ACTIVATED_BY_COOP;
} else if (g_Vars.currentplayernum == g_Vars.bondplayernum) {
door->base.hidden |= OBJHFLAG_ACTIVATED_BY_BOND;
}
door->base.flags2 &= ~OBJFLAG2_00000008;
}
bool posIsInFrontOfDoor(struct coord *pos, struct doorobj *door)
{
f32 x;
f32 y;
f32 z;
f32 value;
struct pad pad;
padUnpack(door->base.pad, PADFIELD_POS | PADFIELD_NORMAL, &pad);
x = pos->x - pad.pos.x;
y = pos->y - pad.pos.y;
z = pos->z - pad.pos.z;
value = x * pad.normal.f[0] + y * pad.normal.f[1] + z * pad.normal.f[2];
if (door->doorflags & DOORFLAG_FLIP) {
value = -value;
}
if (value < 0) {
return false;
}
if (value > 0) {
return true;
}
return true;
}
void doorsChooseSwingDirection(struct prop *chrprop, struct doorobj *door)
{
if ((door->base.flags & OBJFLAG_DOOR_TWOWAY) && door->mode == DOORMODE_IDLE && door->frac == 0) {
bool infront = posIsInFrontOfDoor(&chrprop->pos, door);
u32 wantflag = 0;
if ((door->doorflags & DOORFLAG_FLIP) == 0) {
if (!infront) {
wantflag = OBJFLAG_DOOR_OPENTOFRONT;
}
} else {
if (infront) {
wantflag = OBJFLAG_DOOR_OPENTOFRONT;
}
}
// If flags are different
if ((s32)((door->base.flags ^ wantflag) << 2) < 0) {
// Toggle direction on door and siblings
struct doorobj *sibling = door;
do {
sibling->base.flags ^= OBJFLAG_DOOR_OPENTOFRONT;
sibling = sibling->sibling;
} while (sibling && sibling != door);
}
}
}
bool propdoorInteract(struct prop *doorprop)
{
struct doorobj *door = doorprop->door;
bool usingeyespy = g_Vars.currentplayer->eyespy && g_Vars.currentplayer->eyespy->active;
struct prop *playerprop = usingeyespy ? g_Vars.currentplayer->eyespy->prop : g_Vars.currentplayer->prop;
if (doorIsUnlocked(playerprop, doorprop)) {
doorsChooseSwingDirection(playerprop, door);
doorsActivate(doorprop, true);
} else if (door->mode == DOORMODE_IDLE && door->frac < 0.5f * door->maxfrac) {
if ((door->base.flags2 & OBJFLAG2_SKIPDOORLOCKEDMSG) == 0) {
struct textoverride *override = invGetTextOverrideForObj(&door->base);
u8 intraining = false;
if (g_Vars.stagenum == STAGE_CITRAINING) {
struct trainingdata *devdata = dtGetData();
struct trainingdata *holodata = getHoloTrainingData();
intraining = (devdata && devdata->intraining)
|| (holodata && holodata->intraining)
|| g_Vars.currentplayer->prop->rooms[0] == 0x0a;
}
if (override && override->activatetextid) {
hudmsgCreateWithFlags(langGet(override->activatetextid), HUDMSGTYPE_DEFAULT, HUDMSGFLAG_ONLYIFALIVE);
} else if (intraining) {
hudmsgCreateWithFlags(langGet(L_DISH_080), HUDMSGTYPE_DEFAULT, HUDMSGFLAG_ONLYIFALIVE); // "Cannot exit while training is in progress."
} else {
hudmsgCreateWithFlags(langGet(VERSION >= VERSION_PAL_BETA ? L_PROPOBJ_041 : L_PROPOBJ_044), HUDMSGTYPE_DEFAULT, HUDMSGFLAG_ONLYIFALIVE); // "This door is locked."
}
}
if (g_Vars.currentplayernum == g_Vars.coopplayernum) {
door->base.hidden |= OBJHFLAG_ACTIVATED_BY_COOP;
} else if (g_Vars.currentplayernum == g_Vars.bondplayernum) {
door->base.hidden |= OBJHFLAG_ACTIVATED_BY_BOND;
}
door->base.flags2 |= OBJFLAG2_00000008;
}
return TICKOP_NONE;
}
void alarmActivate(void)
{
if (g_AlarmTimer < 1) {
g_AlarmTimer = 1;
}
}
void alarmStopAudio(void)
{
if (g_AlarmAudioHandle && sndGetState(g_AlarmAudioHandle) != AL_STOPPED) {
audioStop(g_AlarmAudioHandle);
}
}
void alarmDeactivate(void)
{
g_AlarmTimer = 0;
alarmStopAudio();
}
bool alarmIsActive(void)
{
return g_AlarmTimer > 0;
}
void gasReleaseFromPos(struct coord *pos)
{
g_GasReleasing = true;
g_GasSoundTimer240 = 0;
g_GasPos.x = pos->x;
g_GasPos.y = pos->y;
g_GasPos.z = pos->z;
// Gas objects don't exist in PD, so this stage number was likely carried
// over from GoldenEye. It maps to GE's Egypt stage, which uses gas for a
// visual effect only.
if (mainGetStageNum() == STAGE_MP_G5BUILDING) {
g_GasReleaseTimerMax240 = 120;
g_GasEnableDamage = false;
} else {
g_GasReleaseTimerMax240 = 3600;
g_GasEnableDamage = true;
}
}
void gasStopAudio(void)
{
if (g_GasAudioHandle && sndGetState(g_GasAudioHandle)) {
audioStop(g_GasAudioHandle);
}
}
bool gasIsActive(void)
{
return g_GasReleaseTimer240 > 0;
}
void gasTick(void)
{
u32 stack;
if (g_GasReleasing) {
g_GasReleaseTimer240 += g_Vars.lvupdate240freal;
if (g_GasReleaseTimer240 >= g_GasReleaseTimerMax240) {
g_GasReleaseTimer240 = g_GasReleaseTimerMax240;
g_GasReleasing = false;
}
}
if (g_GasReleaseTimer240 > 0 && !g_PlayerInvincible) {
envApplyTransitionFrac(g_GasReleaseTimer240 / g_GasReleaseTimerMax240);
if (g_GasEnableDamage) {
if (g_GasLastCough60 < g_Vars.lvframe60 - TICKS(225)) {
g_GasLastCough60 = g_Vars.lvframe60;
if (g_GasReleaseTimer240 >= 600) {
sndStart(var80095200, SFX_0037, 0, -1, -1, -1, -1, -1);
}
if (g_GasReleaseTimer240 >= 1800) {
struct coord dir = {0, 0, 0};
chrDamageByMisc(g_Vars.currentplayer->prop->chr, 0.125f, &dir, NULL, NULL);
}
}
if (g_GasSoundTimer240 < g_GasReleaseTimerMax240) {
s16 soundnum = -1;
g_GasSoundTimer240 += g_Vars.lvupdate240freal;
if (!g_GasAudioHandle && !lvIsPaused()) {
soundnum = SFX_0037;
sndStart(var80095200, soundnum, &g_GasAudioHandle, -1, -1, -1, -1, -1);
}
if (g_GasAudioHandle) {
func0f09505c(g_GasAudioHandle, &g_GasPos, 400, 2500, 3000, g_Vars.currentplayer->prop->rooms, soundnum, 0x7fff, 0);
}
} else if (g_GasAudioHandle && sndGetState(g_GasAudioHandle)) {
audioStop(g_GasAudioHandle);
}
}
}
}
void countdownTimerSetVisible(u32 reason, bool visible)
{
if (visible) {
g_CountdownTimerOff &= ~reason;
} else {
g_CountdownTimerOff |= reason;
}
}
bool countdownTimerIsVisible(void)
{
return !g_CountdownTimerOff;
}
void countdownTimerSetValue60(f32 value)
{
g_CountdownTimerValue60 = value;
}
f32 countdownTimerGetValue60(void)
{
return g_CountdownTimerValue60;
}
void countdownTimerSetRunning(bool running)
{
g_CountdownTimerRunning = running;
}
bool countdownTimerIsRunning(void)
{
return g_CountdownTimerRunning;
}
void countdownTimerTick(void)
{
if (g_CountdownTimerRunning) {
g_CountdownTimerValue60 -= g_Vars.lvupdate240freal;
}
}
Gfx *countdownTimerRender(Gfx *gdl)
{
s32 mins;
s32 secs;
s32 ms;
s32 y;
if (!g_CountdownTimerOff) {
f32 value60 = g_CountdownTimerValue60;
u32 stack;
s32 viewright = viGetViewLeft() + (viGetViewWidth() >> 1);
s32 y = viGetViewTop() + viGetViewHeight() - 18;
s32 playercount = PLAYERCOUNT();
char *fmt = ":\n";
if (playercount == 2) {
if (IS4MB() || (optionsGetScreenSplit() != SCREENSPLIT_VERTICAL && g_Vars.currentplayernum == 0)) {
y += 10;
} else {
y += 2;
}
} else if (playercount >= 3) {
if (g_Vars.currentplayernum <= 1) {
y += 10;
} else {
y += 2;
}
} else {
if (optionsGetEffectiveScreenSize() != SCREENSIZE_FULL) {
y += 8;
}
}
#if !PAL
if (g_ViRes == VIRES_HI) {
viewright = viewright / 2;
}
#endif
if (value60 < 0) {
value60 = -value60;
}
mins = floorf(value60 * (1.0f / 3600.0f));
secs = (s32)floorf(value60 * (1.0f / 60.0f)) - mins * 60;
ms = (s32)floorf(value60 * 1.6666666269302f) - mins * 6000 - secs * 100;
gdl = text0f153628(gdl);
gdl = bgunRenderHudInteger(gdl, (mins % 100) / 10, viewright - 18, HUDHALIGN_MIDDLE, y, HUDVALIGN_MIDDLE, 0x00ff00a0);
gdl = bgunRenderHudInteger(gdl, mins % 10, viewright - 14, HUDHALIGN_MIDDLE, y, HUDVALIGN_MIDDLE, 0x00ff00a0);
gdl = bgunRenderHudString(gdl, fmt, viewright - 8, HUDHALIGN_MIDDLE, y, HUDVALIGN_MIDDLE, 0x00ff00a0);
gdl = bgunRenderHudInteger(gdl, (secs % 60) / 10, viewright - 2, HUDHALIGN_MIDDLE, y, HUDVALIGN_MIDDLE, 0x00ff00a0);
gdl = bgunRenderHudInteger(gdl, secs % 10, viewright + 2, HUDHALIGN_MIDDLE, y, HUDVALIGN_MIDDLE, 0x00ff00a0);
gdl = bgunRenderHudString(gdl, fmt, viewright + 8, HUDHALIGN_MIDDLE, y, HUDVALIGN_MIDDLE, 0x00ff00a0);
gdl = bgunRenderHudInteger(gdl, (ms % 100) / 10, viewright + 14, HUDHALIGN_MIDDLE, y, HUDVALIGN_MIDDLE, 0x00ff00a0);
gdl = bgunRenderHudInteger(gdl, ms % 10, viewright + 18, HUDHALIGN_MIDDLE, y, HUDVALIGN_MIDDLE, 0x00ff00a0);
gdl = text0f153780(gdl);
}
return gdl;
}
#if VERSION >= VERSION_NTSC_1_0
void projectilesDebug(void)
{
s32 i;
for (i = 0; i < g_MaxProjectiles; i++) {
if (g_Projectiles[i].flags) {
// empty
}
}
for (i = 0; i < g_MaxWeaponSlots; i++) {
if (g_WeaponSlots[i].weaponnum) {
// empty
}
}
}
#endif
const char var7f1aa16c[] = "ALARM : PAN 1 = %d (%s%f)";
const char var7f1aa188[] = "";
const char var7f1aa18c[] = "ALARM : DIR 1 = %d";
const char var7f1aa1a0[] = "ALARM : ADD 1 = %d (%s%f)";
const char var7f1aa1bc[] = "";
void alarmTick(void)
{
if (alarmIsActive()) {
s16 sound;
// These sounds are alarm sounds.
// They go for a fraction of a second and are repeated by this function.
switch (g_Vars.stagenum) {
case STAGE_CHICAGO: sound = SFX_ALARM_CHICAGO; break;
case STAGE_G5BUILDING: sound = SFX_ALARM_2; break;
case STAGE_AIRBASE: sound = SFX_ALARM_AIRBASE; break;
case STAGE_PELAGIC: sound = SFX_ALARM_2; break;
case STAGE_ATTACKSHIP: sound = SFX_ALARM_ATTACKSHIP; break;
case STAGE_INFILTRATION: sound = SFX_ALARM_INFILTRATION; break;
default: sound = SFX_ALARM_DEFAULT; break;
}
if (!lvIsPaused()) {
if (g_AlarmAudioHandle) {
// The sound is currently playing. Cycle between the left/right
// speaker for stereo or headphone mode.
f32 increment = g_Vars.lvupdate240 / 15.0f;
if (increment > 10) {
increment = 10;
}
g_AlarmSpeakerWeight += g_AlarmSpeakerDirection * increment;
if (g_AlarmSpeakerWeight < 30) {
g_AlarmSpeakerWeight = 30;
g_AlarmSpeakerDirection *= -1;
} else if (g_AlarmSpeakerWeight > 98) {
g_AlarmSpeakerWeight = 98;
g_AlarmSpeakerDirection *= -1;
}
sndAdjust(&g_AlarmAudioHandle, 0, 0x7fff, g_AlarmSpeakerWeight, -1, -1, 0, -1, 1);
} else {
// The alarm finished, or this is the first one.
// Start the sound again.
sndStart(var80095200, sound, &g_AlarmAudioHandle, -1, -1, -1, -1, -1);
}
}
g_AlarmTimer += g_Vars.lvupdate240_60;
}
// For G5, stop alarm after 55 seconds.
// For all other levels, stop alarm after 30 seconds.
if ((g_AlarmTimer > TICKS(1800) && mainGetStageNum() != STAGE_G5BUILDING)
|| (g_AlarmTimer > TICKS(3300) && mainGetStageNum() == STAGE_G5BUILDING)) {
alarmDeactivate();
}
gasTick();
countdownTimerTick();
chrsTriggerProxies();
g_PlayersDetonatingMines = 0;
}
void func0f091030(void)
{
struct prop *prop = g_Vars.activeprops;
while (prop) {
if (prop->type == PROPTYPE_OBJ
&& (prop->flags & (PROPFLAG_ONTHISSCREENTHISTICK | PROPFLAG_ONANYSCREENTHISTICK | PROPFLAG_ONANYSCREENPREVTICK)) == 0
&& (prop->obj->hidden2 & OBJH2FLAG_DESTROYED)
&& (prop->obj->hidden2 & OBJH2FLAG_80)) {
objFreePermanently(prop->obj, true);
return;
}
prop = prop->next;
}
}
void currentPlayerDropAllItems(void)
{
struct chrdata *chr = g_Vars.currentplayer->prop->chr;
s32 i;
weaponDeleteFromChr(chr, HAND_RIGHT);
weaponDeleteFromChr(chr, HAND_LEFT);
for (i = WEAPON_UNARMED; i <= WEAPON_SUICIDEPILL; i++) {
if (playermgrGetModelOfWeapon(i) >= 0 && invHasSingleWeaponExcAllGuns(i)) {
if (!weaponHasFlag(i, WEAPONFLAG_08000000)
|| (g_Vars.normmplayerisrunning
&& g_MpSetup.scenario == MPSCENARIO_HACKERCENTRAL
&& i == WEAPON_DATAUPLINK)) {
#if VERSION >= VERSION_NTSC_1_0
if (g_Vars.coopplayernum >= 0) {
bool canremove = true;
struct prop *child = g_Vars.currentplayer->prop->child;
while (child) {
struct defaultobj *obj = child->obj;
if (obj->type == OBJTYPE_WEAPON) {
struct weaponobj *weapon = child->weapon;
if (i == weapon->weaponnum && (obj->flags3 & OBJFLAG3_PLAYERUNDROPPABLE)) {
canremove = false;
break;
}
}
child = child->next;
}
if (canremove) {
invRemoveItemByNum(i);
}
if (!bgunIsMissionCritical(i)) {
weaponCreateForPlayerDrop(i);
}
} else {
weaponCreateForPlayerDrop(i);
}
#else
if (g_Vars.coopplayernum >= 0) {
bool canremove = true;
struct prop *child = g_Vars.currentplayer->prop->child;
while (child) {
struct defaultobj *obj = child->obj;
if (obj->type == OBJTYPE_WEAPON) {
struct weaponobj *weapon = child->weapon;
if (i == weapon->weaponnum && (obj->flags3 & OBJFLAG3_PLAYERUNDROPPABLE)) {
canremove = false;
break;
}
}
child = child->next;
}
if (canremove) {
invRemoveItemByNum(i);
}
}
weaponCreateForPlayerDrop(i);
#endif
}
}
}
}
void weaponCreateForPlayerDrop(s32 weaponnum)
{
u32 stack;
struct prop *prop;
struct chrdata *chr;
u32 stack2;
chr = g_Vars.currentplayer->prop->chr;
prop = weaponCreateForChr(chr, playermgrGetModelOfWeapon(weaponnum), weaponnum, OBJFLAG_WEAPON_AICANNOTUSE, NULL, NULL);
if (prop) {
objSetDropped(prop, DROPTYPE_DEFAULT);
objDrop(prop, true);
if (weaponnum == WEAPON_BRIEFCASE2) {
scenarioHandleDroppedToken(chr, prop);
}
}
}
void projectileCreate(struct prop *fromprop, struct fireslotthing *arg1, struct coord *pos, struct coord *dir, u8 weaponnum, struct prop *targetprop)
{
if (!lvIsPaused()) {
bool blocked = false;
struct coord endpos;
u32 stack;
f32 x;
f32 y;
f32 z;
f32 sqdist;
struct prop *obstacle = NULL;
s16 sp1c8[8];
u8 forcebeam = false;
struct beam beam;
struct coord frompos;
u32 stack2;
u8 drug = false;
u32 stack3;
frompos.x = pos->x;
frompos.y = pos->y;
frompos.z = pos->z;
if (weaponnum == WEAPON_TRANQUILIZER) {
forcebeam = true;
beam.age = -1;
drug = true;
frompos.y -= 40.0f;
}
if (arg1 && arg1->unk08 < g_Vars.lvframe60) {
switch (weaponnum) {
case WEAPON_CHOPPERGUN:
func0f0926bc(fromprop, 7, 0xffff);
propsnd0f0939f8(0, fromprop, SFX_810E, -1, -1, 0, 0, 7, 0, -1.0f, 0, -1, -1.0f, -1.0f, -1.0f);
arg1->unk08 = g_Vars.lvframe60 + 4;
break;
case WEAPON_RCP45:
func0f0926bc(fromprop, 1, 0xffff);
propsnd0f0939f8(0, fromprop, SFX_805A, -1, -1, 0, 0, 0, 0, -1.0f, 0, -1, -1.0f, -1.0f, -1.0f);
arg1->unk08 = g_Vars.lvframe60 + 2;
break;
case WEAPON_WATCHLASER:
func0f0926bc(fromprop, 1, 0xffff);
propsnd0f0939f8(0, fromprop, SFX_8043, -1, -1, 0, 0, 0, 0, -1.0f, 0, -1, -1.0f, -1.0f, -1.0f);
arg1->unk08 = g_Vars.lvframe60 + 8;
break;
default:
func0f0926bc(fromprop, 1, 0xffff);
propsnd0f0939f8(0, fromprop, SFX_8045, -1, -1, 0, 0, 0, 0, -1.0f, 0, -1, -1.0f, -1.0f, -1.0f);
arg1->unk08 = g_Vars.lvframe60 + 2;
break;
}
}
if (targetprop) {
x = targetprop->pos.f[0] - pos->f[0] - dir->f[0] * 15.0f;
y = targetprop->pos.f[1] - pos->f[1] - dir->f[1] * 15.0f;
z = targetprop->pos.f[2] - pos->f[2] - dir->f[2] * 15.0f;
sqdist = x * x + y * y + z * z;
} else {
sqdist = 0x20000000;
}
if (weaponnum == WEAPON_ROCKETLAUNCHER) {
struct weaponobj *rocket;
Mtxf sp13c;
struct coord sp130;
struct chopperobj *chopper = chopperFromHovercar((struct chopperobj *)fromprop->obj);
if (chopper && sqdist > 400.0f * 400.0f) {
struct coord sp120;
Mtxf spe0;
Mtxf spa0;
f32 rotx = chopper->rotx;
f32 roty = chopper->roty;
rocket = weaponCreateProjectileFromWeaponNum(MODEL_CHRDYROCKETMIS, WEAPON_ROCKET, NULL);
if (rocket) {
mtx4LoadIdentity(&sp13c);
mtx4LoadXRotation(rotx, &spe0);
mtx4LoadYRotation(roty, &spa0);
mtx00015be0(&spa0, &spe0);
sp120.x = dir->x * 0.27777776f;
sp120.y = dir->y * 0.27777776f;
sp120.z = dir->z * 0.27777776f;
sp130.x = sp120.f[0] * g_Vars.lvupdate240freal;
sp130.y = sp120.f[1] * g_Vars.lvupdate240freal;
sp130.z = sp120.f[2] * g_Vars.lvupdate240freal;
bgun0f09ebcc(&rocket->base, pos, fromprop->rooms, &spe0, &sp130, &sp13c, fromprop, pos);
if (rocket->base.hidden & OBJHFLAG_AIRBORNE) {
rocket->timer240 = -1;
rocket->base.projectile->flags |= PROJECTILEFLAG_00000010;
rocket->base.projectile->unk010 = sp120.x;
rocket->base.projectile->unk014 = sp120.y;
rocket->base.projectile->unk018 = sp120.z;
propsnd0f0939f8(NULL, rocket->base.prop, SFX_LAUNCH_ROCKET_8053, -1, -1, 0, 0, 0, 0, -1.0f, 0, -1, -1.0f, -1.0f, -1.0f);
}
}
}
} else {
struct gset gset = {0};
gset.weaponnum = weaponnum;
endpos.x = pos->x + dir->f[0] * 65536.0f;
endpos.y = pos->y + dir->f[1] * 65536.0f;
endpos.z = pos->z + dir->f[2] * 65536.0f;
propSetPerimEnabled(fromprop, false);
if (cdTestAToB4(pos, fromprop->rooms, &endpos, CDTYPE_OBJS | CDTYPE_DOORS | CDTYPE_CHRS | CDTYPE_PATHBLOCKER| CDTYPE_BG, 0x10) == CDRESULT_COLLISION) {
blocked = true;
#if VERSION >= VERSION_JPN_FINAL
cdGetPos(&endpos, 24883, "prop/propobj.c");
#elif VERSION >= VERSION_PAL_FINAL
cdGetPos(&endpos, 24873, "prop/propobj.c");
#elif VERSION >= VERSION_PAL_BETA
cdGetPos(&endpos, 24873, "propobj.c");
#elif VERSION >= VERSION_NTSC_1_0
cdGetPos(&endpos, 24482, "propobj.c");
#else
cdGetPos(&endpos, 24137, "propobj.c");
#endif
obstacle = cdGetObstacle();
}
propSetPerimEnabled(fromprop, true);
x = endpos.x - pos->x;
y = endpos.y - pos->y;
z = endpos.z - pos->z;
if (targetprop && sqdist <= x * x + y * y + z * z) {
f32 dist = sqrtf(sqdist);
struct coord aimpos;
aimpos.x = targetprop->pos.x;
aimpos.y = targetprop->pos.y - 20.0f;
aimpos.z = targetprop->pos.z;
if (func0f06b39c(pos, dir, &aimpos, 30)) {
f32 f0 = 0.16f * g_Vars.lvupdate240freal * arg1->unk0c;
if (dist > 200.0f) {
f0 *= 200.0f / dist;
}
arg1->unk14 += f0;
if (arg1->unk14 >= 1.0f) {
blocked = false;
endpos.x = targetprop->pos.x;
endpos.y = targetprop->pos.y;
endpos.z = targetprop->pos.z;
if (random() % 2) {
endpos.y += (random() % 10) + 2;
} else {
endpos.y -= (random() % 10) + 2;
}
bgunPlayPropHitSound(&gset, targetprop, -1);
chrDamageByImpact(targetprop->chr, gsetGetDamage(&gset) * arg1->unk10, dir, &gset, 0, 200);
arg1->unk14 = 0.0f;
}
}
}
if (blocked) {
if (obstacle) {
if (obstacle->type == PROPTYPE_CHR || obstacle->type == PROPTYPE_PLAYER) {
struct modelnode *node = NULL;
struct model *model = NULL;
s32 side = -1;
s32 hitpart = HITPART_GENERAL;
struct chrdata *chr = obstacle->chr;
if (weaponnum != WEAPON_CHOPPERGUN) {
bgunPlayPropHitSound(&gset, obstacle, -1);
}
if (chr->model) {
chrCalculateShieldHit(chr, &endpos, dir, &node, &hitpart, &model, &side);
}
chrEmitSparks(chr, obstacle, hitpart, &endpos, dir, NULL);
if (drug) {
chr->blurdrugamount = TICKS(5000);
}
func0f0341dc(chr, gsetGetDamage(&gset), dir, &gset, 0, hitpart, obstacle, node, model, side, NULL);
} else if (obstacle->type == PROPTYPE_OBJ || obstacle->type == PROPTYPE_WEAPON || obstacle->type == PROPTYPE_DOOR) {
struct defaultobj *obj = obstacle->obj;
if (weaponnum != WEAPON_CHOPPERGUN) {
bgunPlayPropHitSound(&gset, obstacle, -1);
}
func0f065e74(pos, fromprop->rooms, &endpos, sp1c8);
sparksCreate(sp1c8[0], obstacle, &endpos, NULL, NULL, SPARKTYPE_00);
objTakeGunfire(obstacle->obj, gsetGetDamage(&gset), &endpos, weaponnum, -1);
if (obj->type == OBJTYPE_WEAPON) {
struct weaponobj *weapon = (struct weaponobj *)obj;
if (weapon->weaponnum == WEAPON_DRAGON && weapon->gunfunc == FUNC_SECONDARY) {
weapon->timer240 = 0;
}
}
}
} else {
func0f065e74(pos, fromprop->rooms, &endpos, sp1c8);
if (weaponnum != WEAPON_CHOPPERGUN) {
bgunPlayBgHitSound(&gset, &endpos, -1, sp1c8);
}
sparksCreate(sp1c8[0], NULL, &endpos, NULL, NULL, SPARKTYPE_00);
}
}
if (forcebeam || (arg1 && arg1->unk01)) {
struct beam *beamptr;
if (forcebeam) {
beamptr = &beam;
} else {
beamptr = arg1->beam;
}
beamCreate(beamptr, forcebeam ? WEAPON_FALCON2 : weaponnum, &frompos, &endpos);
}
}
}
}
void objSetModelPartVisible(struct defaultobj *obj, s32 partnum, bool visible)
{
if (obj && obj->model && obj->model->filedata) {
struct modelnode *node = modelGetPart(obj->model->filedata, partnum);
if (node) {
union modelrwdata *rwdata = modelGetNodeRwData(obj->model, node);
if (rwdata) {
if (visible) {
visible = true;
} else {
visible = false;
}
rwdata->toggle.visible = visible;
}
}
}
}
Gfx *func0f091e04(Gfx *gdl, u32 arg1)
{
return gdl;
}