#include #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; }