diff --git a/src/23680.c b/src/23680.c index 0d9c6cc3dc..99d0c506df 100644 --- a/src/23680.c +++ b/src/23680.c @@ -1,5 +1,6 @@ #include "common.h" #include "npc.h" +#include "effects.h" INCLUDE_ASM(s32, "23680", spawn_drops); @@ -199,7 +200,45 @@ INCLUDE_ASM(s32, "23680", func_800496B8); #define NAMESPACE base #include "world/common/UnkNpcAIFunc1.inc.c" -INCLUDE_ASM(s32, "23680", func_80049C04); +void func_80049C04(Evt* script, NpcAISettings* aiSettings, EnemyTerritoryThing* territory) { + Enemy* enemy = script->owner1.enemy; + Npc* npc = get_npc_unsafe(enemy->npcID); + f32 x, y, z; + f32 yaw; + s32 sp34; + + if (aiSettings->unk_14 >= 0 && func_800490B4(territory, enemy, aiSettings->chaseRadius, aiSettings->unk_28.f, 0)) { + x = npc->pos.x; + y = npc->pos.y; + z = npc->pos.z; + yaw = atan2(npc->pos.x, npc->pos.z, gPlayerStatusPtr->position.x, gPlayerStatusPtr->position.z); + if (!npc_test_move_simple_with_slipping(npc->collisionChannel, &x, &y, &z, aiSettings->chaseSpeed, yaw, npc->collisionHeight, npc->collisionRadius)) { + npc->yaw = yaw; + ai_enemy_play_sound(npc, 0x2F4, 0x200000); + fx_emote(0, npc, 0, npc->collisionHeight, 1.0f, 2.0f, -20.0f, 0xF, &sp34); + if (enemy->npcSettings->unk_2A & 1) { + script->functionTemp[0] = 10; + } else { + script->functionTemp[0] = 12; + } + return; + } + } + if (npc->turnAroundYawAdjustment == 0) { + npc->duration--; + if (npc->duration <= 0) { + script->functionTemp[1]--; + if (script->functionTemp[1]) { + if (!(enemy->npcSettings->unk_2A & 0x10)) { + npc->yaw = clamp_angle(npc->yaw + 180.0f); + } + npc->duration = (aiSettings->waitTime / 2) + rand_int(aiSettings->waitTime / 2 + 1); + return; + } + script->functionTemp[0] = 0; + } + } +} void func_80049E3C(Evt* script, NpcAISettings* npcAISettings, EnemyTerritoryThing* territory) { Enemy* enemy = script->owner1.enemy; @@ -271,7 +310,48 @@ void func_80049F7C(Evt* script, NpcAISettings* npcAISettings, EnemyTerritoryThin script->functionTemp[0] = 13; } -INCLUDE_ASM(s32, "23680", func_8004A124); +void func_8004A124(Evt* script, NpcAISettings* aiSettings, EnemyTerritoryThing* territory) { + Enemy* enemy = script->owner1.enemy; + Npc* npc = get_npc_unsafe(enemy->npcID); + s32 sp28; + f32 x, y, z; + + if (!func_800490B4(territory, enemy, aiSettings->chaseRadius, aiSettings->unk_28.f, 1)) { + fx_emote(2, npc, 0, npc->collisionHeight, 1.0f, 2.0f, -20.0f, 15, &sp28); + npc->currentAnim.w = enemy->animList[0]; + npc->duration = 20; + script->functionTemp[0] = 14; + return; + } + + if (enemy->npcSettings->unk_2A & 4) { + if (dist2D(npc->pos.x, npc->pos.z, gPlayerStatusPtr->position.x, gPlayerStatusPtr->position.z) > (npc->moveSpeed * 5.0)) { + x = npc->pos.x; + y = npc->pos.y; + z = npc->pos.z; + if (npc_test_move_simple_with_slipping(npc->collisionChannel, &x, &y, &z, 1.0f, npc->yaw, npc->collisionHeight, npc->collisionRadius)) { + fx_emote(2, npc, 0, npc->collisionHeight, 1.0f, 2.0f, -20.0f, 0xC, &sp28); + npc->currentAnim.w = enemy->animList[0]; + npc->duration = 15; + script->functionTemp[0] = 14; + return; + } + } + } + + func_8003D660(npc, 1); + npc_move_heading(npc, npc->moveSpeed, npc->yaw); + + if (npc->moveSpeed > 8.0 && !(gGameStatusPtr->frameCounter % 5)) { + ai_enemy_play_sound(npc, 0x20C1, 0); + } + + if (npc->duration > 0) { + npc->duration--; + } else { + script->functionTemp[0] = 12; + } +} void func_8004A3E8(Evt* script, NpcAISettings* npcAISettings, EnemyTerritoryThing* territory) { Enemy* enemy = script->owner1.enemy; @@ -285,4 +365,84 @@ void func_8004A3E8(Evt* script, NpcAISettings* npcAISettings, EnemyTerritoryThin } } -INCLUDE_ASM(s32, "23680", DoBasicAI, Evt* script, s32 isInitialCall); +ApiStatus DoBasicAI(Evt* script, s32 isInitialCall) { + Enemy* enemy = script->owner1.enemy; + Npc* npc = get_npc_unsafe(enemy->npcID); + Bytecode* args = script->ptrReadPos; + EnemyTerritoryThing territory; + EnemyTerritoryThing* pTerritory = &territory; + NpcAISettings* aiSettings = (NpcAISettings*) evt_get_variable(script, *args++); + + territory.unk_00 = 0; + territory.shape = enemy->territory->wander.detectShape; + territory.pointX = enemy->territory->wander.detect.x; + territory.pointZ = enemy->territory->wander.detect.z; + territory.sizeX = enemy->territory->wander.detectSizeX; + territory.sizeZ = enemy->territory->wander.detectSizeZ; + territory.unk_18 = 65.0f; + territory.unk_1C = 0; + + + if (isInitialCall || enemy->unk_B0 & 4) { + script->functionTemp[0] = 0; + npc->duration = 0; + + npc->currentAnim.w = enemy->animList[0]; + + npc->flags &= ~NPC_FLAG_NO_Y_MOVEMENT; + if (!enemy->territory->wander.isFlying) { + npc->flags |= NPC_FLAG_GRAVITY; + npc->flags &= ~NPC_FLAG_ENABLE_HIT_SCRIPT; + } else { + npc->flags &= ~NPC_FLAG_GRAVITY; + npc->flags |= NPC_FLAG_ENABLE_HIT_SCRIPT; + } + + if (enemy->unk_B0 & 4) { + script->functionTemp[0] = 99; + script->functionTemp[1] = 0; + } else if (enemy->flags & ENEMY_FLAGS_40000000) { + script->functionTemp[0] = 12; + } + + enemy->unk_B0 &= ~4; + enemy->flags &= ~ENEMY_FLAGS_40000000; + } + + switch (script->functionTemp[0]) { + case 0x0: + func_800495A0(script, aiSettings, pTerritory); + /* fallthrough */ + case 0x1: + func_800496B8(script, aiSettings, pTerritory); + break; + case 0x2: + base_UnkNpcAIFunc1(script, aiSettings, pTerritory); + /* fallthrough */ + case 0x3: + func_80049C04(script, aiSettings, pTerritory); + break; + case 0xA: + func_80049E3C(script, aiSettings, pTerritory); + /* fallthrough */ + case 0xB: + func_80049ECC(script, aiSettings, pTerritory); + break; + case 0xC: + func_80049F7C(script, aiSettings, pTerritory); + /* fallthrough */ + case 0xD: + func_8004A124(script, aiSettings, pTerritory); + if (script->functionTemp[0] != 0xE) { + break; + } + /* fallthrough */ + case 0xE: + func_8004A3E8(script, aiSettings, pTerritory); + break; + case 0x63: + func_8004A73C(script); + break; + } + return ApiStatus_BLOCK; +} diff --git a/ver/us/asm/nonmatchings/23680/DoBasicAI.s b/ver/us/asm/nonmatchings/23680/DoBasicAI.s deleted file mode 100644 index a51d6453fc..0000000000 --- a/ver/us/asm/nonmatchings/23680/DoBasicAI.s +++ /dev/null @@ -1,185 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.section .rodata - -dlabel jtbl_80098728 -.word .L8004A5FC_259FC, .L8004A60C_25A0C, .L8004A624_25A24, .L8004A634_25A34, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A64C_25A4C, .L8004A65C_25A5C, .L8004A674_25A74, .L8004A684_25A84, .L8004A6A4_25AA4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6C4_25AC4, .L8004A6BC_25ABC, 0, 0 - -.section .text - -glabel DoBasicAI -/* 2587C 8004A47C 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 25880 8004A480 AFB20038 */ sw $s2, 0x38($sp) -/* 25884 8004A484 0080902D */ daddu $s2, $a0, $zero -/* 25888 8004A488 AFBF0048 */ sw $ra, 0x48($sp) -/* 2588C 8004A48C AFB50044 */ sw $s5, 0x44($sp) -/* 25890 8004A490 AFB40040 */ sw $s4, 0x40($sp) -/* 25894 8004A494 AFB3003C */ sw $s3, 0x3c($sp) -/* 25898 8004A498 AFB10034 */ sw $s1, 0x34($sp) -/* 2589C 8004A49C AFB00030 */ sw $s0, 0x30($sp) -/* 258A0 8004A4A0 8E510148 */ lw $s1, 0x148($s2) -/* 258A4 8004A4A4 86240008 */ lh $a0, 8($s1) -/* 258A8 8004A4A8 0C00EABB */ jal get_npc_unsafe -/* 258AC 8004A4AC 00A0802D */ daddu $s0, $a1, $zero -/* 258B0 8004A4B0 8E43000C */ lw $v1, 0xc($s2) -/* 258B4 8004A4B4 0240202D */ daddu $a0, $s2, $zero -/* 258B8 8004A4B8 8C650000 */ lw $a1, ($v1) -/* 258BC 8004A4BC 0C0B1EAF */ jal evt_get_variable -/* 258C0 8004A4C0 0040A82D */ daddu $s5, $v0, $zero -/* 258C4 8004A4C4 AFA00010 */ sw $zero, 0x10($sp) -/* 258C8 8004A4C8 8E2300D0 */ lw $v1, 0xd0($s1) -/* 258CC 8004A4CC 8C630030 */ lw $v1, 0x30($v1) -/* 258D0 8004A4D0 AFA30014 */ sw $v1, 0x14($sp) -/* 258D4 8004A4D4 8E2300D0 */ lw $v1, 0xd0($s1) -/* 258D8 8004A4D8 8C63001C */ lw $v1, 0x1c($v1) -/* 258DC 8004A4DC AFA30018 */ sw $v1, 0x18($sp) -/* 258E0 8004A4E0 8E2300D0 */ lw $v1, 0xd0($s1) -/* 258E4 8004A4E4 8C630024 */ lw $v1, 0x24($v1) -/* 258E8 8004A4E8 AFA3001C */ sw $v1, 0x1c($sp) -/* 258EC 8004A4EC 8E2300D0 */ lw $v1, 0xd0($s1) -/* 258F0 8004A4F0 8C630028 */ lw $v1, 0x28($v1) -/* 258F4 8004A4F4 27B40010 */ addiu $s4, $sp, 0x10 -/* 258F8 8004A4F8 AFA30020 */ sw $v1, 0x20($sp) -/* 258FC 8004A4FC 8E2300D0 */ lw $v1, 0xd0($s1) -/* 25900 8004A500 3C014282 */ lui $at, 0x4282 -/* 25904 8004A504 44810000 */ mtc1 $at, $f0 -/* 25908 8004A508 8C63002C */ lw $v1, 0x2c($v1) -/* 2590C 8004A50C 0040982D */ daddu $s3, $v0, $zero -/* 25910 8004A510 E7A00028 */ swc1 $f0, 0x28($sp) -/* 25914 8004A514 A7A0002C */ sh $zero, 0x2c($sp) -/* 25918 8004A518 16000005 */ bnez $s0, .L8004A530 -/* 2591C 8004A51C AFA30024 */ sw $v1, 0x24($sp) -/* 25920 8004A520 8E2200B0 */ lw $v0, 0xb0($s1) -/* 25924 8004A524 30420004 */ andi $v0, $v0, 4 -/* 25928 8004A528 1040002B */ beqz $v0, .L8004A5D8 -/* 2592C 8004A52C 00000000 */ nop -.L8004A530: -/* 25930 8004A530 2404F7FF */ addiu $a0, $zero, -0x801 -/* 25934 8004A534 AE400070 */ sw $zero, 0x70($s2) -/* 25938 8004A538 A6A0008E */ sh $zero, 0x8e($s5) -/* 2593C 8004A53C 8E2200CC */ lw $v0, 0xcc($s1) -/* 25940 8004A540 8EA30000 */ lw $v1, ($s5) -/* 25944 8004A544 8C420000 */ lw $v0, ($v0) -/* 25948 8004A548 00641824 */ and $v1, $v1, $a0 -/* 2594C 8004A54C AEA30000 */ sw $v1, ($s5) -/* 25950 8004A550 AEA20028 */ sw $v0, 0x28($s5) -/* 25954 8004A554 8E2200D0 */ lw $v0, 0xd0($s1) -/* 25958 8004A558 8C420034 */ lw $v0, 0x34($v0) -/* 2595C 8004A55C 54400005 */ bnel $v0, $zero, .L8004A574 -/* 25960 8004A560 2402FDFF */ addiu $v0, $zero, -0x201 -/* 25964 8004A564 34620200 */ ori $v0, $v1, 0x200 -/* 25968 8004A568 2403FFF7 */ addiu $v1, $zero, -9 -/* 2596C 8004A56C 0801295F */ j .L8004A57C -/* 25970 8004A570 00431024 */ and $v0, $v0, $v1 -.L8004A574: -/* 25974 8004A574 00621024 */ and $v0, $v1, $v0 -/* 25978 8004A578 34420008 */ ori $v0, $v0, 8 -.L8004A57C: -/* 2597C 8004A57C AEA20000 */ sw $v0, ($s5) -/* 25980 8004A580 8E2200B0 */ lw $v0, 0xb0($s1) -/* 25984 8004A584 30420004 */ andi $v0, $v0, 4 -/* 25988 8004A588 10400004 */ beqz $v0, .L8004A59C -/* 2598C 8004A58C 24020063 */ addiu $v0, $zero, 0x63 -/* 25990 8004A590 AE420070 */ sw $v0, 0x70($s2) -/* 25994 8004A594 0801296D */ j .L8004A5B4 -/* 25998 8004A598 AE400074 */ sw $zero, 0x74($s2) -.L8004A59C: -/* 2599C 8004A59C 8E220000 */ lw $v0, ($s1) -/* 259A0 8004A5A0 3C034000 */ lui $v1, 0x4000 -/* 259A4 8004A5A4 00431024 */ and $v0, $v0, $v1 -/* 259A8 8004A5A8 10400002 */ beqz $v0, .L8004A5B4 -/* 259AC 8004A5AC 2402000C */ addiu $v0, $zero, 0xc -/* 259B0 8004A5B0 AE420070 */ sw $v0, 0x70($s2) -.L8004A5B4: -/* 259B4 8004A5B4 3C05BFFF */ lui $a1, 0xbfff -/* 259B8 8004A5B8 34A5FFFF */ ori $a1, $a1, 0xffff -/* 259BC 8004A5BC 2404FFFB */ addiu $a0, $zero, -5 -/* 259C0 8004A5C0 8E2200B0 */ lw $v0, 0xb0($s1) -/* 259C4 8004A5C4 8E230000 */ lw $v1, ($s1) -/* 259C8 8004A5C8 00441024 */ and $v0, $v0, $a0 -/* 259CC 8004A5CC 00651824 */ and $v1, $v1, $a1 -/* 259D0 8004A5D0 AE2200B0 */ sw $v0, 0xb0($s1) -/* 259D4 8004A5D4 AE230000 */ sw $v1, ($s1) -.L8004A5D8: -/* 259D8 8004A5D8 8E430070 */ lw $v1, 0x70($s2) -/* 259DC 8004A5DC 2C620064 */ sltiu $v0, $v1, 0x64 -/* 259E0 8004A5E0 10400038 */ beqz $v0, .L8004A6C4_25AC4 -/* 259E4 8004A5E4 00031080 */ sll $v0, $v1, 2 -/* 259E8 8004A5E8 3C01800A */ lui $at, %hi(jtbl_80098728) -/* 259EC 8004A5EC 00220821 */ addu $at, $at, $v0 -/* 259F0 8004A5F0 8C228728 */ lw $v0, %lo(jtbl_80098728)($at) -/* 259F4 8004A5F4 00400008 */ jr $v0 -/* 259F8 8004A5F8 00000000 */ nop -.L8004A5FC_259FC: -/* 259FC 8004A5FC 0240202D */ daddu $a0, $s2, $zero -/* 25A00 8004A600 0260282D */ daddu $a1, $s3, $zero -/* 25A04 8004A604 0C012568 */ jal func_800495A0 -/* 25A08 8004A608 0280302D */ daddu $a2, $s4, $zero -.L8004A60C_25A0C: -/* 25A0C 8004A60C 0240202D */ daddu $a0, $s2, $zero -/* 25A10 8004A610 0260282D */ daddu $a1, $s3, $zero -/* 25A14 8004A614 0C0125AE */ jal func_800496B8 -/* 25A18 8004A618 0280302D */ daddu $a2, $s4, $zero -/* 25A1C 8004A61C 080129B1 */ j .L8004A6C4_25AC4 -/* 25A20 8004A620 00000000 */ nop -.L8004A624_25A24: -/* 25A24 8004A624 0240202D */ daddu $a0, $s2, $zero -/* 25A28 8004A628 0260282D */ daddu $a1, $s3, $zero -/* 25A2C 8004A62C 0C0126D1 */ jal base_UnkNpcAIFunc1 -/* 25A30 8004A630 0280302D */ daddu $a2, $s4, $zero -.L8004A634_25A34: -/* 25A34 8004A634 0240202D */ daddu $a0, $s2, $zero -/* 25A38 8004A638 0260282D */ daddu $a1, $s3, $zero -/* 25A3C 8004A63C 0C012701 */ jal func_80049C04 -/* 25A40 8004A640 0280302D */ daddu $a2, $s4, $zero -/* 25A44 8004A644 080129B1 */ j .L8004A6C4_25AC4 -/* 25A48 8004A648 00000000 */ nop -.L8004A64C_25A4C: -/* 25A4C 8004A64C 0240202D */ daddu $a0, $s2, $zero -/* 25A50 8004A650 0260282D */ daddu $a1, $s3, $zero -/* 25A54 8004A654 0C01278F */ jal func_80049E3C -/* 25A58 8004A658 0280302D */ daddu $a2, $s4, $zero -.L8004A65C_25A5C: -/* 25A5C 8004A65C 0240202D */ daddu $a0, $s2, $zero -/* 25A60 8004A660 0260282D */ daddu $a1, $s3, $zero -/* 25A64 8004A664 0C0127B3 */ jal func_80049ECC -/* 25A68 8004A668 0280302D */ daddu $a2, $s4, $zero -/* 25A6C 8004A66C 080129B1 */ j .L8004A6C4_25AC4 -/* 25A70 8004A670 00000000 */ nop -.L8004A674_25A74: -/* 25A74 8004A674 0240202D */ daddu $a0, $s2, $zero -/* 25A78 8004A678 0260282D */ daddu $a1, $s3, $zero -/* 25A7C 8004A67C 0C0127DF */ jal func_80049F7C -/* 25A80 8004A680 0280302D */ daddu $a2, $s4, $zero -.L8004A684_25A84: -/* 25A84 8004A684 0240202D */ daddu $a0, $s2, $zero -/* 25A88 8004A688 0260282D */ daddu $a1, $s3, $zero -/* 25A8C 8004A68C 0C012849 */ jal func_8004A124 -/* 25A90 8004A690 0280302D */ daddu $a2, $s4, $zero -/* 25A94 8004A694 8E430070 */ lw $v1, 0x70($s2) -/* 25A98 8004A698 2402000E */ addiu $v0, $zero, 0xe -/* 25A9C 8004A69C 14620009 */ bne $v1, $v0, .L8004A6C4_25AC4 -/* 25AA0 8004A6A0 00000000 */ nop -.L8004A6A4_25AA4: -/* 25AA4 8004A6A4 0240202D */ daddu $a0, $s2, $zero -/* 25AA8 8004A6A8 0260282D */ daddu $a1, $s3, $zero -/* 25AAC 8004A6AC 0C0128FA */ jal func_8004A3E8 -/* 25AB0 8004A6B0 0280302D */ daddu $a2, $s4, $zero -/* 25AB4 8004A6B4 080129B1 */ j .L8004A6C4_25AC4 -/* 25AB8 8004A6B8 00000000 */ nop -.L8004A6BC_25ABC: -/* 25ABC 8004A6BC 0C0129CF */ jal func_8004A73C -/* 25AC0 8004A6C0 0240202D */ daddu $a0, $s2, $zero -.L8004A6C4_25AC4: -/* 25AC4 8004A6C4 8FBF0048 */ lw $ra, 0x48($sp) -/* 25AC8 8004A6C8 8FB50044 */ lw $s5, 0x44($sp) -/* 25ACC 8004A6CC 8FB40040 */ lw $s4, 0x40($sp) -/* 25AD0 8004A6D0 8FB3003C */ lw $s3, 0x3c($sp) -/* 25AD4 8004A6D4 8FB20038 */ lw $s2, 0x38($sp) -/* 25AD8 8004A6D8 8FB10034 */ lw $s1, 0x34($sp) -/* 25ADC 8004A6DC 8FB00030 */ lw $s0, 0x30($sp) -/* 25AE0 8004A6E0 0000102D */ daddu $v0, $zero, $zero -/* 25AE4 8004A6E4 03E00008 */ jr $ra -/* 25AE8 8004A6E8 27BD0050 */ addiu $sp, $sp, 0x50 -/* 25AEC 8004A6EC 00000000 */ nop diff --git a/ver/us/asm/nonmatchings/23680/func_80049C04.s b/ver/us/asm/nonmatchings/23680/func_80049C04.s deleted file mode 100644 index ed1924aa38..0000000000 --- a/ver/us/asm/nonmatchings/23680/func_80049C04.s +++ /dev/null @@ -1,151 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80049C04 -/* 25004 80049C04 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* 25008 80049C08 AFB40048 */ sw $s4, 0x48($sp) -/* 2500C 80049C0C 0080A02D */ daddu $s4, $a0, $zero -/* 25010 80049C10 AFBF004C */ sw $ra, 0x4c($sp) -/* 25014 80049C14 AFB30044 */ sw $s3, 0x44($sp) -/* 25018 80049C18 AFB20040 */ sw $s2, 0x40($sp) -/* 2501C 80049C1C AFB1003C */ sw $s1, 0x3c($sp) -/* 25020 80049C20 AFB00038 */ sw $s0, 0x38($sp) -/* 25024 80049C24 F7B40050 */ sdc1 $f20, 0x50($sp) -/* 25028 80049C28 8E920148 */ lw $s2, 0x148($s4) -/* 2502C 80049C2C 00A0982D */ daddu $s3, $a1, $zero -/* 25030 80049C30 86440008 */ lh $a0, 8($s2) -/* 25034 80049C34 0C00EABB */ jal get_npc_unsafe -/* 25038 80049C38 00C0882D */ daddu $s1, $a2, $zero -/* 2503C 80049C3C 8E630014 */ lw $v1, 0x14($s3) -/* 25040 80049C40 0460004F */ bltz $v1, .L80049D80 -/* 25044 80049C44 0040802D */ daddu $s0, $v0, $zero -/* 25048 80049C48 0220202D */ daddu $a0, $s1, $zero -/* 2504C 80049C4C AFA00010 */ sw $zero, 0x10($sp) -/* 25050 80049C50 8E660024 */ lw $a2, 0x24($s3) -/* 25054 80049C54 8E670028 */ lw $a3, 0x28($s3) -/* 25058 80049C58 0C01242D */ jal func_800490B4 -/* 2505C 80049C5C 0240282D */ daddu $a1, $s2, $zero -/* 25060 80049C60 10400047 */ beqz $v0, .L80049D80 -/* 25064 80049C64 00000000 */ nop -/* 25068 80049C68 3C02800F */ lui $v0, %hi(gPlayerStatusPtr) -/* 2506C 80049C6C 8C427B30 */ lw $v0, %lo(gPlayerStatusPtr)($v0) -/* 25070 80049C70 C60C0038 */ lwc1 $f12, 0x38($s0) -/* 25074 80049C74 C602003C */ lwc1 $f2, 0x3c($s0) -/* 25078 80049C78 C6040040 */ lwc1 $f4, 0x40($s0) -/* 2507C 80049C7C 46006006 */ mov.s $f0, $f12 -/* 25080 80049C80 8C460028 */ lw $a2, 0x28($v0) -/* 25084 80049C84 8C470030 */ lw $a3, 0x30($v0) -/* 25088 80049C88 46002386 */ mov.s $f14, $f4 -/* 2508C 80049C8C E7A00028 */ swc1 $f0, 0x28($sp) -/* 25090 80049C90 E7A2002C */ swc1 $f2, 0x2c($sp) -/* 25094 80049C94 0C00A720 */ jal atan2 -/* 25098 80049C98 E7A40030 */ swc1 $f4, 0x30($sp) -/* 2509C 80049C9C C6620018 */ lwc1 $f2, 0x18($s3) -/* 250A0 80049CA0 46000506 */ mov.s $f20, $f0 -/* 250A4 80049CA4 E7B40014 */ swc1 $f20, 0x14($sp) -/* 250A8 80049CA8 E7A20010 */ swc1 $f2, 0x10($sp) -/* 250AC 80049CAC 860200A8 */ lh $v0, 0xa8($s0) -/* 250B0 80049CB0 27A50028 */ addiu $a1, $sp, 0x28 -/* 250B4 80049CB4 44820000 */ mtc1 $v0, $f0 -/* 250B8 80049CB8 00000000 */ nop -/* 250BC 80049CBC 46800020 */ cvt.s.w $f0, $f0 -/* 250C0 80049CC0 E7A00018 */ swc1 $f0, 0x18($sp) -/* 250C4 80049CC4 860200A6 */ lh $v0, 0xa6($s0) -/* 250C8 80049CC8 27A6002C */ addiu $a2, $sp, 0x2c -/* 250CC 80049CCC 44820000 */ mtc1 $v0, $f0 -/* 250D0 80049CD0 00000000 */ nop -/* 250D4 80049CD4 46800020 */ cvt.s.w $f0, $f0 -/* 250D8 80049CD8 E7A0001C */ swc1 $f0, 0x1c($sp) -/* 250DC 80049CDC 8E040080 */ lw $a0, 0x80($s0) -/* 250E0 80049CE0 0C037711 */ jal npc_test_move_simple_with_slipping -/* 250E4 80049CE4 27A70030 */ addiu $a3, $sp, 0x30 -/* 250E8 80049CE8 14400025 */ bnez $v0, .L80049D80 -/* 250EC 80049CEC 0200202D */ daddu $a0, $s0, $zero -/* 250F0 80049CF0 240502F4 */ addiu $a1, $zero, 0x2f4 -/* 250F4 80049CF4 3C060020 */ lui $a2, 0x20 -/* 250F8 80049CF8 0C012530 */ jal ai_enemy_play_sound -/* 250FC 80049CFC E614000C */ swc1 $f20, 0xc($s0) -/* 25100 80049D00 0000202D */ daddu $a0, $zero, $zero -/* 25104 80049D04 0200282D */ daddu $a1, $s0, $zero -/* 25108 80049D08 0000302D */ daddu $a2, $zero, $zero -/* 2510C 80049D0C 84A300A8 */ lh $v1, 0xa8($a1) -/* 25110 80049D10 3C013F80 */ lui $at, 0x3f80 -/* 25114 80049D14 44810000 */ mtc1 $at, $f0 -/* 25118 80049D18 3C014000 */ lui $at, 0x4000 -/* 2511C 80049D1C 44811000 */ mtc1 $at, $f2 -/* 25120 80049D20 3C01C1A0 */ lui $at, 0xc1a0 -/* 25124 80049D24 44812000 */ mtc1 $at, $f4 -/* 25128 80049D28 2402000F */ addiu $v0, $zero, 0xf -/* 2512C 80049D2C AFA2001C */ sw $v0, 0x1c($sp) -/* 25130 80049D30 44833000 */ mtc1 $v1, $f6 -/* 25134 80049D34 00000000 */ nop -/* 25138 80049D38 468031A0 */ cvt.s.w $f6, $f6 -/* 2513C 80049D3C 44073000 */ mfc1 $a3, $f6 -/* 25140 80049D40 27A20034 */ addiu $v0, $sp, 0x34 -/* 25144 80049D44 AFA20020 */ sw $v0, 0x20($sp) -/* 25148 80049D48 E7A00010 */ swc1 $f0, 0x10($sp) -/* 2514C 80049D4C E7A20014 */ swc1 $f2, 0x14($sp) -/* 25150 80049D50 0C01BFA4 */ jal fx_emote -/* 25154 80049D54 E7A40018 */ swc1 $f4, 0x18($sp) -/* 25158 80049D58 8E420018 */ lw $v0, 0x18($s2) -/* 2515C 80049D5C 9442002A */ lhu $v0, 0x2a($v0) -/* 25160 80049D60 30420001 */ andi $v0, $v0, 1 -/* 25164 80049D64 10400003 */ beqz $v0, .L80049D74 -/* 25168 80049D68 2402000A */ addiu $v0, $zero, 0xa -/* 2516C 80049D6C 08012786 */ j .L80049E18 -/* 25170 80049D70 AE820070 */ sw $v0, 0x70($s4) -.L80049D74: -/* 25174 80049D74 2402000C */ addiu $v0, $zero, 0xc -/* 25178 80049D78 08012786 */ j .L80049E18 -/* 2517C 80049D7C AE820070 */ sw $v0, 0x70($s4) -.L80049D80: -/* 25180 80049D80 8602008C */ lh $v0, 0x8c($s0) -/* 25184 80049D84 14400024 */ bnez $v0, .L80049E18 -/* 25188 80049D88 00000000 */ nop -/* 2518C 80049D8C 9602008E */ lhu $v0, 0x8e($s0) -/* 25190 80049D90 2442FFFF */ addiu $v0, $v0, -1 -/* 25194 80049D94 A602008E */ sh $v0, 0x8e($s0) -/* 25198 80049D98 00021400 */ sll $v0, $v0, 0x10 -/* 2519C 80049D9C 1C40001E */ bgtz $v0, .L80049E18 -/* 251A0 80049DA0 00000000 */ nop -/* 251A4 80049DA4 8E820074 */ lw $v0, 0x74($s4) -/* 251A8 80049DA8 2442FFFF */ addiu $v0, $v0, -1 -/* 251AC 80049DAC 10400019 */ beqz $v0, .L80049E14 -/* 251B0 80049DB0 AE820074 */ sw $v0, 0x74($s4) -/* 251B4 80049DB4 8E420018 */ lw $v0, 0x18($s2) -/* 251B8 80049DB8 9442002A */ lhu $v0, 0x2a($v0) -/* 251BC 80049DBC 30420010 */ andi $v0, $v0, 0x10 -/* 251C0 80049DC0 14400007 */ bnez $v0, .L80049DE0 -/* 251C4 80049DC4 00000000 */ nop -/* 251C8 80049DC8 C600000C */ lwc1 $f0, 0xc($s0) -/* 251CC 80049DCC 3C014334 */ lui $at, 0x4334 -/* 251D0 80049DD0 44816000 */ mtc1 $at, $f12 -/* 251D4 80049DD4 0C00A6C9 */ jal clamp_angle -/* 251D8 80049DD8 460C0300 */ add.s $f12, $f0, $f12 -/* 251DC 80049DDC E600000C */ swc1 $f0, 0xc($s0) -.L80049DE0: -/* 251E0 80049DE0 8E640008 */ lw $a0, 8($s3) -/* 251E4 80049DE4 000417C2 */ srl $v0, $a0, 0x1f -/* 251E8 80049DE8 00822021 */ addu $a0, $a0, $v0 -/* 251EC 80049DEC 00042043 */ sra $a0, $a0, 1 -/* 251F0 80049DF0 0C00A67F */ jal rand_int -/* 251F4 80049DF4 24840001 */ addiu $a0, $a0, 1 -/* 251F8 80049DF8 8E630008 */ lw $v1, 8($s3) -/* 251FC 80049DFC 000327C2 */ srl $a0, $v1, 0x1f -/* 25200 80049E00 00641821 */ addu $v1, $v1, $a0 -/* 25204 80049E04 00031843 */ sra $v1, $v1, 1 -/* 25208 80049E08 00621821 */ addu $v1, $v1, $v0 -/* 2520C 80049E0C 08012786 */ j .L80049E18 -/* 25210 80049E10 A603008E */ sh $v1, 0x8e($s0) -.L80049E14: -/* 25214 80049E14 AE800070 */ sw $zero, 0x70($s4) -.L80049E18: -/* 25218 80049E18 8FBF004C */ lw $ra, 0x4c($sp) -/* 2521C 80049E1C 8FB40048 */ lw $s4, 0x48($sp) -/* 25220 80049E20 8FB30044 */ lw $s3, 0x44($sp) -/* 25224 80049E24 8FB20040 */ lw $s2, 0x40($sp) -/* 25228 80049E28 8FB1003C */ lw $s1, 0x3c($sp) -/* 2522C 80049E2C 8FB00038 */ lw $s0, 0x38($sp) -/* 25230 80049E30 D7B40050 */ ldc1 $f20, 0x50($sp) -/* 25234 80049E34 03E00008 */ jr $ra -/* 25238 80049E38 27BD0058 */ addiu $sp, $sp, 0x58 diff --git a/ver/us/asm/nonmatchings/23680/func_8004A124.s b/ver/us/asm/nonmatchings/23680/func_8004A124.s deleted file mode 100644 index 3fa108b562..0000000000 --- a/ver/us/asm/nonmatchings/23680/func_8004A124.s +++ /dev/null @@ -1,188 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_8004A124 -/* 25524 8004A124 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* 25528 8004A128 AFB30044 */ sw $s3, 0x44($sp) -/* 2552C 8004A12C 0080982D */ daddu $s3, $a0, $zero -/* 25530 8004A130 AFBF0048 */ sw $ra, 0x48($sp) -/* 25534 8004A134 AFB20040 */ sw $s2, 0x40($sp) -/* 25538 8004A138 AFB1003C */ sw $s1, 0x3c($sp) -/* 2553C 8004A13C AFB00038 */ sw $s0, 0x38($sp) -/* 25540 8004A140 F7B40050 */ sdc1 $f20, 0x50($sp) -/* 25544 8004A144 8E720148 */ lw $s2, 0x148($s3) -/* 25548 8004A148 00A0882D */ daddu $s1, $a1, $zero -/* 2554C 8004A14C 86440008 */ lh $a0, 8($s2) -/* 25550 8004A150 0C00EABB */ jal get_npc_unsafe -/* 25554 8004A154 00C0802D */ daddu $s0, $a2, $zero -/* 25558 8004A158 0200202D */ daddu $a0, $s0, $zero -/* 2555C 8004A15C 0240282D */ daddu $a1, $s2, $zero -/* 25560 8004A160 24030001 */ addiu $v1, $zero, 1 -/* 25564 8004A164 AFA30010 */ sw $v1, 0x10($sp) -/* 25568 8004A168 8E260024 */ lw $a2, 0x24($s1) -/* 2556C 8004A16C 8E270028 */ lw $a3, 0x28($s1) -/* 25570 8004A170 0C01242D */ jal func_800490B4 -/* 25574 8004A174 0040802D */ daddu $s0, $v0, $zero -/* 25578 8004A178 1440001D */ bnez $v0, .L8004A1F0 -/* 2557C 8004A17C 24040002 */ addiu $a0, $zero, 2 -/* 25580 8004A180 0200282D */ daddu $a1, $s0, $zero -/* 25584 8004A184 0000302D */ daddu $a2, $zero, $zero -/* 25588 8004A188 860300A8 */ lh $v1, 0xa8($s0) -/* 2558C 8004A18C 3C013F80 */ lui $at, 0x3f80 -/* 25590 8004A190 44810000 */ mtc1 $at, $f0 -/* 25594 8004A194 3C014000 */ lui $at, 0x4000 -/* 25598 8004A198 44811000 */ mtc1 $at, $f2 -/* 2559C 8004A19C 3C01C1A0 */ lui $at, 0xc1a0 -/* 255A0 8004A1A0 44812000 */ mtc1 $at, $f4 -/* 255A4 8004A1A4 2402000F */ addiu $v0, $zero, 0xf -/* 255A8 8004A1A8 AFA2001C */ sw $v0, 0x1c($sp) -/* 255AC 8004A1AC 44833000 */ mtc1 $v1, $f6 -/* 255B0 8004A1B0 00000000 */ nop -/* 255B4 8004A1B4 468031A0 */ cvt.s.w $f6, $f6 -/* 255B8 8004A1B8 44073000 */ mfc1 $a3, $f6 -/* 255BC 8004A1BC 27A20028 */ addiu $v0, $sp, 0x28 -/* 255C0 8004A1C0 AFA20020 */ sw $v0, 0x20($sp) -/* 255C4 8004A1C4 E7A00010 */ swc1 $f0, 0x10($sp) -/* 255C8 8004A1C8 E7A20014 */ swc1 $f2, 0x14($sp) -/* 255CC 8004A1CC 0C01BFA4 */ jal fx_emote -/* 255D0 8004A1D0 E7A40018 */ swc1 $f4, 0x18($sp) -/* 255D4 8004A1D4 8E4200CC */ lw $v0, 0xcc($s2) -/* 255D8 8004A1D8 8C430000 */ lw $v1, ($v0) -/* 255DC 8004A1DC 24020014 */ addiu $v0, $zero, 0x14 -/* 255E0 8004A1E0 A602008E */ sh $v0, 0x8e($s0) -/* 255E4 8004A1E4 2402000E */ addiu $v0, $zero, 0xe -/* 255E8 8004A1E8 080128F1 */ j .L8004A3C4 -/* 255EC 8004A1EC AE030028 */ sw $v1, 0x28($s0) -.L8004A1F0: -/* 255F0 8004A1F0 8E420018 */ lw $v0, 0x18($s2) -/* 255F4 8004A1F4 9442002A */ lhu $v0, 0x2a($v0) -/* 255F8 8004A1F8 30420004 */ andi $v0, $v0, 4 -/* 255FC 8004A1FC 1040004A */ beqz $v0, .L8004A328 -/* 25600 8004A200 0200202D */ daddu $a0, $s0, $zero -/* 25604 8004A204 3C02800F */ lui $v0, %hi(gPlayerStatusPtr) -/* 25608 8004A208 8C427B30 */ lw $v0, %lo(gPlayerStatusPtr)($v0) -/* 2560C 8004A20C C60C0038 */ lwc1 $f12, 0x38($s0) -/* 25610 8004A210 C60E0040 */ lwc1 $f14, 0x40($s0) -/* 25614 8004A214 8C460028 */ lw $a2, 0x28($v0) -/* 25618 8004A218 0C00A7B5 */ jal dist2D -/* 2561C 8004A21C 8C470030 */ lw $a3, 0x30($v0) -/* 25620 8004A220 C6020018 */ lwc1 $f2, 0x18($s0) -/* 25624 8004A224 3C014014 */ lui $at, 0x4014 -/* 25628 8004A228 44812800 */ mtc1 $at, $f5 -/* 2562C 8004A22C 44802000 */ mtc1 $zero, $f4 -/* 25630 8004A230 460010A1 */ cvt.d.s $f2, $f2 -/* 25634 8004A234 46241082 */ mul.d $f2, $f2, $f4 -/* 25638 8004A238 00000000 */ nop -/* 2563C 8004A23C 46000021 */ cvt.d.s $f0, $f0 -/* 25640 8004A240 4620103C */ c.lt.d $f2, $f0 -/* 25644 8004A244 00000000 */ nop -/* 25648 8004A248 45000036 */ bc1f .L8004A324 -/* 2564C 8004A24C 27A5002C */ addiu $a1, $sp, 0x2c -/* 25650 8004A250 C6000038 */ lwc1 $f0, 0x38($s0) -/* 25654 8004A254 C602003C */ lwc1 $f2, 0x3c($s0) -/* 25658 8004A258 C6040040 */ lwc1 $f4, 0x40($s0) -/* 2565C 8004A25C 3C013F80 */ lui $at, 0x3f80 -/* 25660 8004A260 4481A000 */ mtc1 $at, $f20 -/* 25664 8004A264 E7A0002C */ swc1 $f0, 0x2c($sp) -/* 25668 8004A268 E7A20030 */ swc1 $f2, 0x30($sp) -/* 2566C 8004A26C E7A40034 */ swc1 $f4, 0x34($sp) -/* 25670 8004A270 E7B40010 */ swc1 $f20, 0x10($sp) -/* 25674 8004A274 C600000C */ lwc1 $f0, 0xc($s0) -/* 25678 8004A278 E7A00014 */ swc1 $f0, 0x14($sp) -/* 2567C 8004A27C 860200A8 */ lh $v0, 0xa8($s0) -/* 25680 8004A280 44820000 */ mtc1 $v0, $f0 -/* 25684 8004A284 00000000 */ nop -/* 25688 8004A288 46800020 */ cvt.s.w $f0, $f0 -/* 2568C 8004A28C E7A00018 */ swc1 $f0, 0x18($sp) -/* 25690 8004A290 860200A6 */ lh $v0, 0xa6($s0) -/* 25694 8004A294 27A60030 */ addiu $a2, $sp, 0x30 -/* 25698 8004A298 44820000 */ mtc1 $v0, $f0 -/* 2569C 8004A29C 00000000 */ nop -/* 256A0 8004A2A0 46800020 */ cvt.s.w $f0, $f0 -/* 256A4 8004A2A4 E7A0001C */ swc1 $f0, 0x1c($sp) -/* 256A8 8004A2A8 8E040080 */ lw $a0, 0x80($s0) -/* 256AC 8004A2AC 0C037711 */ jal npc_test_move_simple_with_slipping -/* 256B0 8004A2B0 27A70034 */ addiu $a3, $sp, 0x34 -/* 256B4 8004A2B4 1040001B */ beqz $v0, .L8004A324 -/* 256B8 8004A2B8 0200282D */ daddu $a1, $s0, $zero -/* 256BC 8004A2BC 24040002 */ addiu $a0, $zero, 2 -/* 256C0 8004A2C0 0000302D */ daddu $a2, $zero, $zero -/* 256C4 8004A2C4 860300A8 */ lh $v1, 0xa8($s0) -/* 256C8 8004A2C8 3C014000 */ lui $at, 0x4000 -/* 256CC 8004A2CC 44810000 */ mtc1 $at, $f0 -/* 256D0 8004A2D0 3C01C1A0 */ lui $at, 0xc1a0 -/* 256D4 8004A2D4 44811000 */ mtc1 $at, $f2 -/* 256D8 8004A2D8 2402000C */ addiu $v0, $zero, 0xc -/* 256DC 8004A2DC AFA2001C */ sw $v0, 0x1c($sp) -/* 256E0 8004A2E0 44833000 */ mtc1 $v1, $f6 -/* 256E4 8004A2E4 00000000 */ nop -/* 256E8 8004A2E8 468031A0 */ cvt.s.w $f6, $f6 -/* 256EC 8004A2EC 44073000 */ mfc1 $a3, $f6 -/* 256F0 8004A2F0 27A20028 */ addiu $v0, $sp, 0x28 -/* 256F4 8004A2F4 E7B40010 */ swc1 $f20, 0x10($sp) -/* 256F8 8004A2F8 AFA20020 */ sw $v0, 0x20($sp) -/* 256FC 8004A2FC E7A00014 */ swc1 $f0, 0x14($sp) -/* 25700 8004A300 0C01BFA4 */ jal fx_emote -/* 25704 8004A304 E7A20018 */ swc1 $f2, 0x18($sp) -/* 25708 8004A308 8E4200CC */ lw $v0, 0xcc($s2) -/* 2570C 8004A30C 8C430000 */ lw $v1, ($v0) -/* 25710 8004A310 2402000F */ addiu $v0, $zero, 0xf -/* 25714 8004A314 A602008E */ sh $v0, 0x8e($s0) -/* 25718 8004A318 2402000E */ addiu $v0, $zero, 0xe -/* 2571C 8004A31C 080128F1 */ j .L8004A3C4 -/* 25720 8004A320 AE030028 */ sw $v1, 0x28($s0) -.L8004A324: -/* 25724 8004A324 0200202D */ daddu $a0, $s0, $zero -.L8004A328: -/* 25728 8004A328 0C00F598 */ jal func_8003D660 -/* 2572C 8004A32C 24050001 */ addiu $a1, $zero, 1 -/* 25730 8004A330 8E050018 */ lw $a1, 0x18($s0) -/* 25734 8004A334 8E06000C */ lw $a2, 0xc($s0) -/* 25738 8004A338 0C00EA95 */ jal npc_move_heading -/* 2573C 8004A33C 0200202D */ daddu $a0, $s0, $zero -/* 25740 8004A340 C6000018 */ lwc1 $f0, 0x18($s0) -/* 25744 8004A344 3C014020 */ lui $at, 0x4020 -/* 25748 8004A348 44811800 */ mtc1 $at, $f3 -/* 2574C 8004A34C 44801000 */ mtc1 $zero, $f2 -/* 25750 8004A350 46000021 */ cvt.d.s $f0, $f0 -/* 25754 8004A354 4620103C */ c.lt.d $f2, $f0 -/* 25758 8004A358 00000000 */ nop -/* 2575C 8004A35C 45000012 */ bc1f .L8004A3A8 -/* 25760 8004A360 00000000 */ nop -/* 25764 8004A364 3C028007 */ lui $v0, %hi(gGameStatusPtr) -/* 25768 8004A368 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) -/* 2576C 8004A36C 94430134 */ lhu $v1, 0x134($v0) -/* 25770 8004A370 3C02CCCC */ lui $v0, 0xcccc -/* 25774 8004A374 3442CCCD */ ori $v0, $v0, 0xcccd -/* 25778 8004A378 00620019 */ multu $v1, $v0 -/* 2577C 8004A37C 00004010 */ mfhi $t0 -/* 25780 8004A380 00082082 */ srl $a0, $t0, 2 -/* 25784 8004A384 00041080 */ sll $v0, $a0, 2 -/* 25788 8004A388 00441021 */ addu $v0, $v0, $a0 -/* 2578C 8004A38C 00621823 */ subu $v1, $v1, $v0 -/* 25790 8004A390 3063FFFF */ andi $v1, $v1, 0xffff -/* 25794 8004A394 14600004 */ bnez $v1, .L8004A3A8 -/* 25798 8004A398 0200202D */ daddu $a0, $s0, $zero -/* 2579C 8004A39C 240520C1 */ addiu $a1, $zero, 0x20c1 -/* 257A0 8004A3A0 0C012530 */ jal ai_enemy_play_sound -/* 257A4 8004A3A4 0000302D */ daddu $a2, $zero, $zero -.L8004A3A8: -/* 257A8 8004A3A8 8602008E */ lh $v0, 0x8e($s0) -/* 257AC 8004A3AC 9603008E */ lhu $v1, 0x8e($s0) -/* 257B0 8004A3B0 18400003 */ blez $v0, .L8004A3C0 -/* 257B4 8004A3B4 2462FFFF */ addiu $v0, $v1, -1 -/* 257B8 8004A3B8 080128F2 */ j .L8004A3C8 -/* 257BC 8004A3BC A602008E */ sh $v0, 0x8e($s0) -.L8004A3C0: -/* 257C0 8004A3C0 2402000C */ addiu $v0, $zero, 0xc -.L8004A3C4: -/* 257C4 8004A3C4 AE620070 */ sw $v0, 0x70($s3) -.L8004A3C8: -/* 257C8 8004A3C8 8FBF0048 */ lw $ra, 0x48($sp) -/* 257CC 8004A3CC 8FB30044 */ lw $s3, 0x44($sp) -/* 257D0 8004A3D0 8FB20040 */ lw $s2, 0x40($sp) -/* 257D4 8004A3D4 8FB1003C */ lw $s1, 0x3c($sp) -/* 257D8 8004A3D8 8FB00038 */ lw $s0, 0x38($sp) -/* 257DC 8004A3DC D7B40050 */ ldc1 $f20, 0x50($sp) -/* 257E0 8004A3E0 03E00008 */ jr $ra -/* 257E4 8004A3E4 27BD0058 */ addiu $sp, $sp, 0x58