diff --git a/include/common_structs.h b/include/common_structs.h index e6720a0afb..ac066e76ce 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -1336,7 +1336,7 @@ typedef struct ActorPart { /* 0x6C */ Vec2s targetOffset; /* 0x70 */ s16 unk_70; /* 0x72 */ Vec2bu size; - /* 0x74 */ u8 verticalStretch; + /* 0x74 */ s8 verticalStretch; /* 0x75 */ s8 unk_75; /* 0x76 */ s8 unk_76; /* 0x77 */ char unk_77[1]; @@ -1475,12 +1475,12 @@ typedef struct DecorationTable { /* 0x7FC */ s16 posX[16]; /* 0x81C */ s16 posY[16]; /* 0x83C */ s16 posZ[16]; - /* 0x85C */ u8 rotationPivotOffsetX[16]; - /* 0x86C */ u8 rotationPivotOffsetY[16]; + /* 0x85C */ s8 rotationPivotOffsetX[16]; + /* 0x86C */ s8 rotationPivotOffsetY[16]; /* 0x87C */ u8 rotX[16]; /* 0x88C */ u8 rotY[16]; /* 0x89C */ u8 rotZ[16]; - /* 0x8AC */ u8 effectType; /* 0 = blur, 14 = none? */ + /* 0x8AC */ s8 effectType; /* 0 = blur, 14 = none? */ /* 0x8AD */ char unk_8AD[3]; /* 0x8B0 */ struct Temp8025D160* unk_8B0[2]; /* 0x8B8 */ s8 decorationType[2]; diff --git a/include/functions.h b/include/functions.h index bb78633218..09b93c8449 100644 --- a/include/functions.h +++ b/include/functions.h @@ -89,7 +89,7 @@ void func_80257B48(s32); void func_8025599C(s32); void func_80257B88(void); void func_80257DA4(void); -void func_80254C50(void); +void func_80254C50(Actor*); void func_80258E14(void); f32 func_800E34D8(void); @@ -97,6 +97,7 @@ void func_800E4AD8(s32 arg0); f32 player_check_collision_below(f32, s32* colliderID); s32 can_trigger_loading_zone(void); void func_802667F0(s32, Actor*, f32, f32, f32); +void func_802591EC(s32, ActorPart*, s32, Matrix4f*, s32); void* general_heap_malloc(s32 size); s32 general_heap_free(void* data); diff --git a/src/182B30.c b/src/182B30.c index fa4c2bf733..05cdae9ad4 100644 --- a/src/182B30.c +++ b/src/182B30.c @@ -184,11 +184,175 @@ void func_802549C0(void) { decorationTable->effectType = 1; } -INCLUDE_ASM(s32, "182B30", func_802549F4); +void func_802549F4(Actor* actor) { + ActorPart* partsTable = actor->partsTable; + DecorationTable* decorationTable = partsTable->decorationTable; -INCLUDE_ASM(void, "182B30", func_80254C50); + if (!(partsTable->flags & ACTOR_PART_FLAG_INVISIBLE) && partsTable->idleAnimations != NULL) { + s32 i = decorationTable->unk_7D9; -INCLUDE_ASM(s32, "182B30", func_802550BC); + decorationTable->posX[i] = partsTable->currentPos.x; + decorationTable->posY[i] = partsTable->currentPos.y; + decorationTable->posZ[i] = partsTable->currentPos.z; + decorationTable->scale[i] = actor->yaw; + + decorationTable->rotationPivotOffsetX[i] = (s32)(actor->rotationPivotOffset.x * actor->scalingFactor); + decorationTable->rotationPivotOffsetY[i] = (s32)(actor->rotationPivotOffset.y * actor->scalingFactor); + + decorationTable->rotX[i] = clamp_angle(actor->rotation.x) * 0.5f; + decorationTable->rotY[i] = clamp_angle(actor->rotation.y) * 0.5f; + decorationTable->rotZ[i] = clamp_angle(actor->rotation.z) * 0.5f; + + i++; + if (i >= ARRAY_COUNT(decorationTable->posX)) { + i = 0; + } + decorationTable->unk_7D9 = i; + } +} + +void func_80254C50(Actor* actor) { + Matrix4f sp18; + Matrix4f sp58; + Matrix4f sp98; + Matrix4f spD8; + Matrix4f sp118; + Matrix4f sp158; + Matrix4f sp198; + Matrix4f sp1D8; + Matrix4f sp218; + Matrix4f sp258; + s32 sp298; + s32 sp29C; + s32 scale; + ActorPart* partTable; + DecorationTable* decorationTable; + f32 rotX, rotY, rotZ; + s32 temp_s0_2; + s32 temp_v1; + s32 temp_s0; + s32 temp_s1; + s32 i; + s32 phi_s6; + s32 phi_s4; + f32 x, y, z; + + partTable = actor->partsTable; + decorationTable = partTable->decorationTable; + if (decorationTable->effectType != 0) { + decorationTable->effectType--; + if (decorationTable->effectType == 0) { + actor->flags &= ~ACTOR_FLAG_10000000; + return; + } + } + + if (!(partTable->flags & ACTOR_PART_FLAG_INVISIBLE) && partTable->idleAnimations != NULL) { + sp298 = 0; + sp29C = 0; + i = decorationTable->unk_7D9; + + while (1) { + i--; + sp298 += 1; + if (i < 0) { + i = 0xF; + } + if (i == decorationTable->unk_7D9) { + break; + } + + if (sp298 >= 3) { + sp298 = 0; + sp29C++; + + if (decorationTable->unk_7DA < sp29C) { + break; + } + temp_v1 = partTable->opacity; + x = decorationTable->posX[i]; + y = decorationTable->posY[i]; + z = decorationTable->posZ[i]; + + scale = decorationTable->scale[i]; + + temp_s0 = decorationTable->rotationPivotOffsetX[i]; + temp_s1 = decorationTable->rotationPivotOffsetY[i]; + + rotX = decorationTable->rotX[i] * 2; + rotY = decorationTable->rotY[i] * 2; + rotZ = decorationTable->rotZ[i] * 2; + + phi_s6 = 120; + phi_s4 = 20; + if (temp_v1 < 50) { + phi_s6 = 50; + phi_s4 = 8; + } else if (temp_v1 < 100) { + phi_s6 = 70; + phi_s4 = 10; + } else if (temp_v1 < 150) { + phi_s6 = 100; + phi_s4 = 15; + } + + guTranslateF(sp1D8, x, y, z); + guTranslateF(sp158, -temp_s0, -temp_s1, 0.0f); + guTranslateF(sp198, temp_s0, temp_s1, 0.0f); + guRotateF(sp18, rotX, 1.0f, 0.0f, 0.0f); + guRotateF(sp58, rotY, 0.0f, 1.0f, 0.0f); + guRotateF(sp98, rotZ, 0.0f, 0.0f, 1.0f); + guMtxCatF(sp18, sp58, sp218); + guMtxCatF(sp218, sp98, spD8); + guScaleF(sp118, actor->scale.x * (5.0 / 7.0) * actor->scalingFactor, + actor->scale.y * (5.0 / 7.0) * actor->scalingFactor * partTable->verticalStretch, + actor->scale.z * (5.0 / 7.0)); + guMtxCatF(sp118, sp158, sp258); + guMtxCatF(sp258, spD8, sp218); + guMtxCatF(sp218, sp198, sp258); + guMtxCatF(sp258, sp1D8, sp218); + temp_s0_2 = partTable->opacity; + partTable->opacity = phi_s6 - (sp29C * phi_s4); + func_802591EC(0, partTable, clamp_angle(scale + 0xB4), &sp218, 1); + partTable->opacity = temp_s0_2; + } + } + } +} + +void func_802550BC(s32 arg0, Actor* actor) { + s32 numParts = actor->numParts; + ActorPart* partsTable = actor->partsTable; + DecorationTable* decorationTable; + s32 i, j; + + for (i = 0; i < numParts; i++) { + if (partsTable->flags & ACTOR_PART_FLAG_INVISIBLE || partsTable->idleAnimations == NULL || partsTable->flags & ACTOR_PART_FLAG_2) { + partsTable = partsTable->nextPart; + } else { + decorationTable = partsTable->decorationTable; + j = decorationTable->unk_7D9; + + decorationTable->posX[j] = partsTable->currentPos.x; + decorationTable->posY[j] = partsTable->currentPos.y; + decorationTable->posZ[j] = partsTable->currentPos.z; + decorationTable->scale[j] = actor->yaw; + + decorationTable->rotationPivotOffsetX[j] = actor->rotationPivotOffset.x; + decorationTable->rotationPivotOffsetY[j] = actor->rotationPivotOffset.y; + + decorationTable->rotX[j] = clamp_angle(actor->rotation.x) * 0.5f; + decorationTable->rotY[j] = clamp_angle(actor->rotation.y) * 0.5f; + decorationTable->rotZ[j] = clamp_angle(actor->rotation.z) * 0.5f; + + j++; + if (j >= ARRAY_COUNT(decorationTable->posX)) { + j = 0; + } + decorationTable->unk_7D9 = j; + } + } +} INCLUDE_ASM(s32, "182B30", func_802552EC); diff --git a/ver/us/asm/nonmatchings/182B30/func_802549F4.s b/ver/us/asm/nonmatchings/182B30/func_802549F4.s deleted file mode 100644 index 285db5d733..0000000000 --- a/ver/us/asm/nonmatchings/182B30/func_802549F4.s +++ /dev/null @@ -1,163 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802549F4 -/* 1832D4 802549F4 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 1832D8 802549F8 AFB20018 */ sw $s2, 0x18($sp) -/* 1832DC 802549FC 0080902D */ daddu $s2, $a0, $zero -/* 1832E0 80254A00 AFBF0020 */ sw $ra, 0x20($sp) -/* 1832E4 80254A04 AFB3001C */ sw $s3, 0x1c($sp) -/* 1832E8 80254A08 AFB10014 */ sw $s1, 0x14($sp) -/* 1832EC 80254A0C AFB00010 */ sw $s0, 0x10($sp) -/* 1832F0 80254A10 8E4401F4 */ lw $a0, 0x1f4($s2) -/* 1832F4 80254A14 8C820000 */ lw $v0, ($a0) -/* 1832F8 80254A18 8C9300C0 */ lw $s3, 0xc0($a0) -/* 1832FC 80254A1C 30420001 */ andi $v0, $v0, 1 -/* 183300 80254A20 14400084 */ bnez $v0, .L80254C34 -/* 183304 80254A24 00000000 */ nop -/* 183308 80254A28 8C820094 */ lw $v0, 0x94($a0) -/* 18330C 80254A2C 10400081 */ beqz $v0, .L80254C34 -/* 183310 80254A30 00000000 */ nop -/* 183314 80254A34 827107D9 */ lb $s1, 0x7d9($s3) -/* 183318 80254A38 C4800058 */ lwc1 $f0, 0x58($a0) -/* 18331C 80254A3C 00111840 */ sll $v1, $s1, 1 -/* 183320 80254A40 02631821 */ addu $v1, $s3, $v1 -/* 183324 80254A44 4600010D */ trunc.w.s $f4, $f0 -/* 183328 80254A48 44022000 */ mfc1 $v0, $f4 -/* 18332C 80254A4C 00000000 */ nop -/* 183330 80254A50 A46207FC */ sh $v0, 0x7fc($v1) -/* 183334 80254A54 C480005C */ lwc1 $f0, 0x5c($a0) -/* 183338 80254A58 4600010D */ trunc.w.s $f4, $f0 -/* 18333C 80254A5C 44022000 */ mfc1 $v0, $f4 -/* 183340 80254A60 00000000 */ nop -/* 183344 80254A64 A462081C */ sh $v0, 0x81c($v1) -/* 183348 80254A68 C4800060 */ lwc1 $f0, 0x60($a0) -/* 18334C 80254A6C 4600010D */ trunc.w.s $f4, $f0 -/* 183350 80254A70 44022000 */ mfc1 $v0, $f4 -/* 183354 80254A74 00000000 */ nop -/* 183358 80254A78 A462083C */ sh $v0, 0x83c($v1) -/* 18335C 80254A7C C640018C */ lwc1 $f0, 0x18c($s2) -/* 183360 80254A80 4600010D */ trunc.w.s $f4, $f0 -/* 183364 80254A84 44022000 */ mfc1 $v0, $f4 -/* 183368 80254A88 00000000 */ nop -/* 18336C 80254A8C A46207DC */ sh $v0, 0x7dc($v1) -/* 183370 80254A90 86420168 */ lh $v0, 0x168($s2) -/* 183374 80254A94 C6420188 */ lwc1 $f2, 0x188($s2) -/* 183378 80254A98 44820000 */ mtc1 $v0, $f0 -/* 18337C 80254A9C 00000000 */ nop -/* 183380 80254AA0 46800020 */ cvt.s.w $f0, $f0 -/* 183384 80254AA4 46020002 */ mul.s $f0, $f0, $f2 -/* 183388 80254AA8 00000000 */ nop -/* 18338C 80254AAC 02718021 */ addu $s0, $s3, $s1 -/* 183390 80254AB0 4600010D */ trunc.w.s $f4, $f0 -/* 183394 80254AB4 44022000 */ mfc1 $v0, $f4 -/* 183398 80254AB8 00000000 */ nop -/* 18339C 80254ABC A202085C */ sb $v0, 0x85c($s0) -/* 1833A0 80254AC0 8642016A */ lh $v0, 0x16a($s2) -/* 1833A4 80254AC4 C6420188 */ lwc1 $f2, 0x188($s2) -/* 1833A8 80254AC8 44820000 */ mtc1 $v0, $f0 -/* 1833AC 80254ACC 00000000 */ nop -/* 1833B0 80254AD0 46800020 */ cvt.s.w $f0, $f0 -/* 1833B4 80254AD4 46020002 */ mul.s $f0, $f0, $f2 -/* 1833B8 80254AD8 00000000 */ nop -/* 1833BC 80254ADC 4600010D */ trunc.w.s $f4, $f0 -/* 1833C0 80254AE0 44022000 */ mfc1 $v0, $f4 -/* 1833C4 80254AE4 00000000 */ nop -/* 1833C8 80254AE8 A202086C */ sb $v0, 0x86c($s0) -/* 1833CC 80254AEC C64C015C */ lwc1 $f12, 0x15c($s2) -/* 1833D0 80254AF0 0C00A6C9 */ jal clamp_angle -/* 1833D4 80254AF4 2610087C */ addiu $s0, $s0, 0x87c -/* 1833D8 80254AF8 3C013F00 */ lui $at, 0x3f00 -/* 1833DC 80254AFC 44811000 */ mtc1 $at, $f2 -/* 1833E0 80254B00 00000000 */ nop -/* 1833E4 80254B04 46020002 */ mul.s $f0, $f0, $f2 -/* 1833E8 80254B08 00000000 */ nop -/* 1833EC 80254B0C 3C014F00 */ lui $at, 0x4f00 -/* 1833F0 80254B10 44811000 */ mtc1 $at, $f2 -/* 1833F4 80254B14 00000000 */ nop -/* 1833F8 80254B18 4600103E */ c.le.s $f2, $f0 -/* 1833FC 80254B1C 00000000 */ nop -/* 183400 80254B20 45030005 */ bc1tl .L80254B38 -/* 183404 80254B24 46020001 */ sub.s $f0, $f0, $f2 -/* 183408 80254B28 4600010D */ trunc.w.s $f4, $f0 -/* 18340C 80254B2C 44032000 */ mfc1 $v1, $f4 -/* 183410 80254B30 080952D4 */ j .L80254B50 -/* 183414 80254B34 A2030000 */ sb $v1, ($s0) -.L80254B38: -/* 183418 80254B38 3C028000 */ lui $v0, 0x8000 -/* 18341C 80254B3C 4600010D */ trunc.w.s $f4, $f0 -/* 183420 80254B40 44032000 */ mfc1 $v1, $f4 -/* 183424 80254B44 00000000 */ nop -/* 183428 80254B48 00621825 */ or $v1, $v1, $v0 -/* 18342C 80254B4C A2030000 */ sb $v1, ($s0) -.L80254B50: -/* 183430 80254B50 0C00A6C9 */ jal clamp_angle -/* 183434 80254B54 C64C0160 */ lwc1 $f12, 0x160($s2) -/* 183438 80254B58 3C013F00 */ lui $at, 0x3f00 -/* 18343C 80254B5C 44811000 */ mtc1 $at, $f2 -/* 183440 80254B60 00000000 */ nop -/* 183444 80254B64 46020002 */ mul.s $f0, $f0, $f2 -/* 183448 80254B68 00000000 */ nop -/* 18344C 80254B6C 02711021 */ addu $v0, $s3, $s1 -/* 183450 80254B70 3C014F00 */ lui $at, 0x4f00 -/* 183454 80254B74 44811000 */ mtc1 $at, $f2 -/* 183458 80254B78 00000000 */ nop -/* 18345C 80254B7C 4600103E */ c.le.s $f2, $f0 -/* 183460 80254B80 00000000 */ nop -/* 183464 80254B84 45010005 */ bc1t .L80254B9C -/* 183468 80254B88 2444088C */ addiu $a0, $v0, 0x88c -/* 18346C 80254B8C 4600010D */ trunc.w.s $f4, $f0 -/* 183470 80254B90 44032000 */ mfc1 $v1, $f4 -/* 183474 80254B94 080952EE */ j .L80254BB8 -/* 183478 80254B98 A0830000 */ sb $v1, ($a0) -.L80254B9C: -/* 18347C 80254B9C 46020001 */ sub.s $f0, $f0, $f2 -/* 183480 80254BA0 3C028000 */ lui $v0, 0x8000 -/* 183484 80254BA4 4600010D */ trunc.w.s $f4, $f0 -/* 183488 80254BA8 44032000 */ mfc1 $v1, $f4 -/* 18348C 80254BAC 00000000 */ nop -/* 183490 80254BB0 00621825 */ or $v1, $v1, $v0 -/* 183494 80254BB4 A0830000 */ sb $v1, ($a0) -.L80254BB8: -/* 183498 80254BB8 0C00A6C9 */ jal clamp_angle -/* 18349C 80254BBC C64C0164 */ lwc1 $f12, 0x164($s2) -/* 1834A0 80254BC0 3C013F00 */ lui $at, 0x3f00 -/* 1834A4 80254BC4 44811000 */ mtc1 $at, $f2 -/* 1834A8 80254BC8 00000000 */ nop -/* 1834AC 80254BCC 46020002 */ mul.s $f0, $f0, $f2 -/* 1834B0 80254BD0 00000000 */ nop -/* 1834B4 80254BD4 02711021 */ addu $v0, $s3, $s1 -/* 1834B8 80254BD8 3C014F00 */ lui $at, 0x4f00 -/* 1834BC 80254BDC 44811000 */ mtc1 $at, $f2 -/* 1834C0 80254BE0 00000000 */ nop -/* 1834C4 80254BE4 4600103E */ c.le.s $f2, $f0 -/* 1834C8 80254BE8 00000000 */ nop -/* 1834CC 80254BEC 45010005 */ bc1t .L80254C04 -/* 1834D0 80254BF0 2444089C */ addiu $a0, $v0, 0x89c -/* 1834D4 80254BF4 4600010D */ trunc.w.s $f4, $f0 -/* 1834D8 80254BF8 44032000 */ mfc1 $v1, $f4 -/* 1834DC 80254BFC 08095308 */ j .L80254C20 -/* 1834E0 80254C00 A0830000 */ sb $v1, ($a0) -.L80254C04: -/* 1834E4 80254C04 46020001 */ sub.s $f0, $f0, $f2 -/* 1834E8 80254C08 3C028000 */ lui $v0, 0x8000 -/* 1834EC 80254C0C 4600010D */ trunc.w.s $f4, $f0 -/* 1834F0 80254C10 44032000 */ mfc1 $v1, $f4 -/* 1834F4 80254C14 00000000 */ nop -/* 1834F8 80254C18 00621825 */ or $v1, $v1, $v0 -/* 1834FC 80254C1C A0830000 */ sb $v1, ($a0) -.L80254C20: -/* 183500 80254C20 26310001 */ addiu $s1, $s1, 1 -/* 183504 80254C24 2A220010 */ slti $v0, $s1, 0x10 -/* 183508 80254C28 50400001 */ beql $v0, $zero, .L80254C30 -/* 18350C 80254C2C 0000882D */ daddu $s1, $zero, $zero -.L80254C30: -/* 183510 80254C30 A27107D9 */ sb $s1, 0x7d9($s3) -.L80254C34: -/* 183514 80254C34 8FBF0020 */ lw $ra, 0x20($sp) -/* 183518 80254C38 8FB3001C */ lw $s3, 0x1c($sp) -/* 18351C 80254C3C 8FB20018 */ lw $s2, 0x18($sp) -/* 183520 80254C40 8FB10014 */ lw $s1, 0x14($sp) -/* 183524 80254C44 8FB00010 */ lw $s0, 0x10($sp) -/* 183528 80254C48 03E00008 */ jr $ra -/* 18352C 80254C4C 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/ver/us/asm/nonmatchings/182B30/func_80254C50.s b/ver/us/asm/nonmatchings/182B30/func_80254C50.s deleted file mode 100644 index d3373d6973..0000000000 --- a/ver/us/asm/nonmatchings/182B30/func_80254C50.s +++ /dev/null @@ -1,302 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.section .rodata - -dlabel D_8029D350 -.double 0.7142857142857143 - -.section .text - -glabel func_80254C50 -/* 183530 80254C50 27BDFCE8 */ addiu $sp, $sp, -0x318 -/* 183534 80254C54 AFBF02E4 */ sw $ra, 0x2e4($sp) -/* 183538 80254C58 AFBE02E0 */ sw $fp, 0x2e0($sp) -/* 18353C 80254C5C AFB702DC */ sw $s7, 0x2dc($sp) -/* 183540 80254C60 AFB602D8 */ sw $s6, 0x2d8($sp) -/* 183544 80254C64 AFB502D4 */ sw $s5, 0x2d4($sp) -/* 183548 80254C68 AFB402D0 */ sw $s4, 0x2d0($sp) -/* 18354C 80254C6C AFB302CC */ sw $s3, 0x2cc($sp) -/* 183550 80254C70 AFB202C8 */ sw $s2, 0x2c8($sp) -/* 183554 80254C74 AFB102C4 */ sw $s1, 0x2c4($sp) -/* 183558 80254C78 AFB002C0 */ sw $s0, 0x2c0($sp) -/* 18355C 80254C7C F7BE0310 */ sdc1 $f30, 0x310($sp) -/* 183560 80254C80 F7BC0308 */ sdc1 $f28, 0x308($sp) -/* 183564 80254C84 F7BA0300 */ sdc1 $f26, 0x300($sp) -/* 183568 80254C88 F7B802F8 */ sdc1 $f24, 0x2f8($sp) -/* 18356C 80254C8C F7B602F0 */ sdc1 $f22, 0x2f0($sp) -/* 183570 80254C90 F7B402E8 */ sdc1 $f20, 0x2e8($sp) -/* 183574 80254C94 AFA40318 */ sw $a0, 0x318($sp) -/* 183578 80254C98 8C9201F4 */ lw $s2, 0x1f4($a0) -/* 18357C 80254C9C 8E5700C0 */ lw $s7, 0xc0($s2) -/* 183580 80254CA0 82E208AC */ lb $v0, 0x8ac($s7) -/* 183584 80254CA4 92E308AC */ lbu $v1, 0x8ac($s7) -/* 183588 80254CA8 1040000B */ beqz $v0, .L80254CD8 -/* 18358C 80254CAC 2462FFFF */ addiu $v0, $v1, -1 -/* 183590 80254CB0 A2E208AC */ sb $v0, 0x8ac($s7) -/* 183594 80254CB4 00021600 */ sll $v0, $v0, 0x18 -/* 183598 80254CB8 14400007 */ bnez $v0, .L80254CD8 -/* 18359C 80254CBC 3C03EFFF */ lui $v1, 0xefff -/* 1835A0 80254CC0 8FA80318 */ lw $t0, 0x318($sp) -/* 1835A4 80254CC4 8D020000 */ lw $v0, ($t0) -/* 1835A8 80254CC8 3463FFFF */ ori $v1, $v1, 0xffff -/* 1835AC 80254CCC 00431024 */ and $v0, $v0, $v1 -/* 1835B0 80254CD0 0809541D */ j .L80255074 -/* 1835B4 80254CD4 AD020000 */ sw $v0, ($t0) -.L80254CD8: -/* 1835B8 80254CD8 8E420000 */ lw $v0, ($s2) -/* 1835BC 80254CDC 30420001 */ andi $v0, $v0, 1 -/* 1835C0 80254CE0 144000E4 */ bnez $v0, .L80255074 -/* 1835C4 80254CE4 00000000 */ nop -/* 1835C8 80254CE8 8E420094 */ lw $v0, 0x94($s2) -/* 1835CC 80254CEC 104000E1 */ beqz $v0, .L80255074 -/* 1835D0 80254CF0 27A801D8 */ addiu $t0, $sp, 0x1d8 -/* 1835D4 80254CF4 AFA802A4 */ sw $t0, 0x2a4($sp) -/* 1835D8 80254CF8 27A80158 */ addiu $t0, $sp, 0x158 -/* 1835DC 80254CFC AFA802A8 */ sw $t0, 0x2a8($sp) -/* 1835E0 80254D00 27A80198 */ addiu $t0, $sp, 0x198 -/* 1835E4 80254D04 AFA802AC */ sw $t0, 0x2ac($sp) -/* 1835E8 80254D08 27A80058 */ addiu $t0, $sp, 0x58 -/* 1835EC 80254D0C AFA802B0 */ sw $t0, 0x2b0($sp) -/* 1835F0 80254D10 27A80098 */ addiu $t0, $sp, 0x98 -/* 1835F4 80254D14 27B50218 */ addiu $s5, $sp, 0x218 -/* 1835F8 80254D18 AFA802B4 */ sw $t0, 0x2b4($sp) -/* 1835FC 80254D1C 27A800D8 */ addiu $t0, $sp, 0xd8 -/* 183600 80254D20 AFA802B8 */ sw $t0, 0x2b8($sp) -/* 183604 80254D24 27A80118 */ addiu $t0, $sp, 0x118 -/* 183608 80254D28 27BE0258 */ addiu $fp, $sp, 0x258 -/* 18360C 80254D2C AFA00298 */ sw $zero, 0x298($sp) -/* 183610 80254D30 AFA0029C */ sw $zero, 0x29c($sp) -/* 183614 80254D34 AFA802BC */ sw $t0, 0x2bc($sp) -/* 183618 80254D38 82F307D9 */ lb $s3, 0x7d9($s7) -/* 18361C 80254D3C 4480A000 */ mtc1 $zero, $f20 -/* 183620 80254D40 3C013F80 */ lui $at, 0x3f80 -/* 183624 80254D44 4481F000 */ mtc1 $at, $f30 -/* 183628 80254D48 3C01802A */ lui $at, %hi(D_8029D350) -/* 18362C 80254D4C D43CD350 */ ldc1 $f28, %lo(D_8029D350)($at) -.L80254D50: -/* 183630 80254D50 8FA80298 */ lw $t0, 0x298($sp) -/* 183634 80254D54 2673FFFF */ addiu $s3, $s3, -1 -.L80254D58: -/* 183638 80254D58 25080001 */ addiu $t0, $t0, 1 -/* 18363C 80254D5C 06610002 */ bgez $s3, .L80254D68 -/* 183640 80254D60 AFA80298 */ sw $t0, 0x298($sp) -/* 183644 80254D64 2413000F */ addiu $s3, $zero, 0xf -.L80254D68: -/* 183648 80254D68 82E207D9 */ lb $v0, 0x7d9($s7) -/* 18364C 80254D6C 126200C1 */ beq $s3, $v0, .L80255074 -/* 183650 80254D70 00000000 */ nop -/* 183654 80254D74 8FA80298 */ lw $t0, 0x298($sp) -/* 183658 80254D78 29020003 */ slti $v0, $t0, 3 -/* 18365C 80254D7C 5440FFF6 */ bnel $v0, $zero, .L80254D58 -/* 183660 80254D80 2673FFFF */ addiu $s3, $s3, -1 -/* 183664 80254D84 8FA8029C */ lw $t0, 0x29c($sp) -/* 183668 80254D88 AFA00298 */ sw $zero, 0x298($sp) -/* 18366C 80254D8C 82E207DA */ lb $v0, 0x7da($s7) -/* 183670 80254D90 25080001 */ addiu $t0, $t0, 1 -/* 183674 80254D94 0048102A */ slt $v0, $v0, $t0 -/* 183678 80254D98 144000B6 */ bnez $v0, .L80255074 -/* 18367C 80254D9C AFA8029C */ sw $t0, 0x29c($sp) -/* 183680 80254DA0 24160078 */ addiu $s6, $zero, 0x78 -/* 183684 80254DA4 00132840 */ sll $a1, $s3, 1 -/* 183688 80254DA8 02E52821 */ addu $a1, $s7, $a1 -/* 18368C 80254DAC 02F32021 */ addu $a0, $s7, $s3 -/* 183690 80254DB0 84A207FC */ lh $v0, 0x7fc($a1) -/* 183694 80254DB4 84A3081C */ lh $v1, 0x81c($a1) -/* 183698 80254DB8 44821000 */ mtc1 $v0, $f2 -/* 18369C 80254DBC 00000000 */ nop -/* 1836A0 80254DC0 468010A0 */ cvt.s.w $f2, $f2 -/* 1836A4 80254DC4 44832000 */ mtc1 $v1, $f4 -/* 1836A8 80254DC8 00000000 */ nop -/* 1836AC 80254DCC 46802120 */ cvt.s.w $f4, $f4 -/* 1836B0 80254DD0 84A3083C */ lh $v1, 0x83c($a1) -/* 1836B4 80254DD4 9082087C */ lbu $v0, 0x87c($a0) -/* 1836B8 80254DD8 84A507DC */ lh $a1, 0x7dc($a1) -/* 1836BC 80254DDC 44830000 */ mtc1 $v1, $f0 -/* 1836C0 80254DE0 00000000 */ nop -/* 1836C4 80254DE4 46800020 */ cvt.s.w $f0, $f0 -/* 1836C8 80254DE8 00021040 */ sll $v0, $v0, 1 -/* 1836CC 80254DEC 4482B000 */ mtc1 $v0, $f22 -/* 1836D0 80254DF0 00000000 */ nop -/* 1836D4 80254DF4 4680B5A0 */ cvt.s.w $f22, $f22 -/* 1836D8 80254DF8 9083088C */ lbu $v1, 0x88c($a0) -/* 1836DC 80254DFC 9082089C */ lbu $v0, 0x89c($a0) -/* 1836E0 80254E00 00031840 */ sll $v1, $v1, 1 -/* 1836E4 80254E04 4483C000 */ mtc1 $v1, $f24 -/* 1836E8 80254E08 00000000 */ nop -/* 1836EC 80254E0C 4680C620 */ cvt.s.w $f24, $f24 -/* 1836F0 80254E10 00021040 */ sll $v0, $v0, 1 -/* 1836F4 80254E14 86430098 */ lh $v1, 0x98($s2) -/* 1836F8 80254E18 4482D000 */ mtc1 $v0, $f26 -/* 1836FC 80254E1C 00000000 */ nop -/* 183700 80254E20 4680D6A0 */ cvt.s.w $f26, $f26 -/* 183704 80254E24 AFA502A0 */ sw $a1, 0x2a0($sp) -/* 183708 80254E28 8090085C */ lb $s0, 0x85c($a0) -/* 18370C 80254E2C 8091086C */ lb $s1, 0x86c($a0) -/* 183710 80254E30 28620032 */ slti $v0, $v1, 0x32 -/* 183714 80254E34 10400004 */ beqz $v0, .L80254E48 -/* 183718 80254E38 24140014 */ addiu $s4, $zero, 0x14 -/* 18371C 80254E3C 24160032 */ addiu $s6, $zero, 0x32 -/* 183720 80254E40 0809539C */ j .L80254E70 -/* 183724 80254E44 24140008 */ addiu $s4, $zero, 8 -.L80254E48: -/* 183728 80254E48 28620064 */ slti $v0, $v1, 0x64 -/* 18372C 80254E4C 10400004 */ beqz $v0, .L80254E60 -/* 183730 80254E50 28620096 */ slti $v0, $v1, 0x96 -/* 183734 80254E54 24160046 */ addiu $s6, $zero, 0x46 -/* 183738 80254E58 0809539C */ j .L80254E70 -/* 18373C 80254E5C 2414000A */ addiu $s4, $zero, 0xa -.L80254E60: -/* 183740 80254E60 10400003 */ beqz $v0, .L80254E70 -/* 183744 80254E64 00000000 */ nop -/* 183748 80254E68 24160064 */ addiu $s6, $zero, 0x64 -/* 18374C 80254E6C 2414000F */ addiu $s4, $zero, 0xf -.L80254E70: -/* 183750 80254E70 44051000 */ mfc1 $a1, $f2 -/* 183754 80254E74 44062000 */ mfc1 $a2, $f4 -/* 183758 80254E78 44070000 */ mfc1 $a3, $f0 -/* 18375C 80254E7C 0C019E40 */ jal guTranslateF -/* 183760 80254E80 8FA402A4 */ lw $a0, 0x2a4($sp) -/* 183764 80254E84 00101023 */ negu $v0, $s0 -/* 183768 80254E88 44824000 */ mtc1 $v0, $f8 -/* 18376C 80254E8C 00000000 */ nop -/* 183770 80254E90 46804220 */ cvt.s.w $f8, $f8 -/* 183774 80254E94 00111023 */ negu $v0, $s1 -/* 183778 80254E98 44054000 */ mfc1 $a1, $f8 -/* 18377C 80254E9C 44824000 */ mtc1 $v0, $f8 -/* 183780 80254EA0 00000000 */ nop -/* 183784 80254EA4 46804220 */ cvt.s.w $f8, $f8 -/* 183788 80254EA8 8FA402A8 */ lw $a0, 0x2a8($sp) -/* 18378C 80254EAC 4407A000 */ mfc1 $a3, $f20 -/* 183790 80254EB0 44064000 */ mfc1 $a2, $f8 -/* 183794 80254EB4 0C019E40 */ jal guTranslateF -/* 183798 80254EB8 00000000 */ nop -/* 18379C 80254EBC 44904000 */ mtc1 $s0, $f8 -/* 1837A0 80254EC0 00000000 */ nop -/* 1837A4 80254EC4 46804220 */ cvt.s.w $f8, $f8 -/* 1837A8 80254EC8 44054000 */ mfc1 $a1, $f8 -/* 1837AC 80254ECC 44914000 */ mtc1 $s1, $f8 -/* 1837B0 80254ED0 00000000 */ nop -/* 1837B4 80254ED4 46804220 */ cvt.s.w $f8, $f8 -/* 1837B8 80254ED8 8FA402AC */ lw $a0, 0x2ac($sp) -/* 1837BC 80254EDC 4407A000 */ mfc1 $a3, $f20 -/* 1837C0 80254EE0 44064000 */ mfc1 $a2, $f8 -/* 1837C4 80254EE4 0C019E40 */ jal guTranslateF -/* 1837C8 80254EE8 00000000 */ nop -/* 1837CC 80254EEC 4405B000 */ mfc1 $a1, $f22 -/* 1837D0 80254EF0 4406F000 */ mfc1 $a2, $f30 -/* 1837D4 80254EF4 4407A000 */ mfc1 $a3, $f20 -/* 1837D8 80254EF8 27A40018 */ addiu $a0, $sp, 0x18 -/* 1837DC 80254EFC 0C019EC8 */ jal guRotateF -/* 1837E0 80254F00 E7B40010 */ swc1 $f20, 0x10($sp) -/* 1837E4 80254F04 4405C000 */ mfc1 $a1, $f24 -/* 1837E8 80254F08 4406A000 */ mfc1 $a2, $f20 -/* 1837EC 80254F0C 4407F000 */ mfc1 $a3, $f30 -/* 1837F0 80254F10 8FA402B0 */ lw $a0, 0x2b0($sp) -/* 1837F4 80254F14 0C019EC8 */ jal guRotateF -/* 1837F8 80254F18 E7B40010 */ swc1 $f20, 0x10($sp) -/* 1837FC 80254F1C 4405D000 */ mfc1 $a1, $f26 -/* 183800 80254F20 4406A000 */ mfc1 $a2, $f20 -/* 183804 80254F24 4407A000 */ mfc1 $a3, $f20 -/* 183808 80254F28 8FA402B4 */ lw $a0, 0x2b4($sp) -/* 18380C 80254F2C 0C019EC8 */ jal guRotateF -/* 183810 80254F30 E7BE0010 */ swc1 $f30, 0x10($sp) -/* 183814 80254F34 27A40018 */ addiu $a0, $sp, 0x18 -/* 183818 80254F38 8FA502B0 */ lw $a1, 0x2b0($sp) -/* 18381C 80254F3C 0C019D80 */ jal guMtxCatF -/* 183820 80254F40 02A0302D */ daddu $a2, $s5, $zero -/* 183824 80254F44 8FA502B4 */ lw $a1, 0x2b4($sp) -/* 183828 80254F48 8FA602B8 */ lw $a2, 0x2b8($sp) -/* 18382C 80254F4C 0C019D80 */ jal guMtxCatF -/* 183830 80254F50 02A0202D */ daddu $a0, $s5, $zero -/* 183834 80254F54 8FA80318 */ lw $t0, 0x318($sp) -/* 183838 80254F58 C5060170 */ lwc1 $f6, 0x170($t0) -/* 18383C 80254F5C 460031A1 */ cvt.d.s $f6, $f6 -/* 183840 80254F60 463C3182 */ mul.d $f6, $f6, $f28 -/* 183844 80254F64 00000000 */ nop -/* 183848 80254F68 C5040174 */ lwc1 $f4, 0x174($t0) -/* 18384C 80254F6C 46002121 */ cvt.d.s $f4, $f4 -/* 183850 80254F70 463C2102 */ mul.d $f4, $f4, $f28 -/* 183854 80254F74 00000000 */ nop -/* 183858 80254F78 C5020178 */ lwc1 $f2, 0x178($t0) -/* 18385C 80254F7C 460010A1 */ cvt.d.s $f2, $f2 -/* 183860 80254F80 463C1082 */ mul.d $f2, $f2, $f28 -/* 183864 80254F84 00000000 */ nop -/* 183868 80254F88 C5000188 */ lwc1 $f0, 0x188($t0) -/* 18386C 80254F8C 46000021 */ cvt.d.s $f0, $f0 -/* 183870 80254F90 46203182 */ mul.d $f6, $f6, $f0 -/* 183874 80254F94 00000000 */ nop -/* 183878 80254F98 46202102 */ mul.d $f4, $f4, $f0 -/* 18387C 80254F9C 00000000 */ nop -/* 183880 80254FA0 82420074 */ lb $v0, 0x74($s2) -/* 183884 80254FA4 44820000 */ mtc1 $v0, $f0 -/* 183888 80254FA8 00000000 */ nop -/* 18388C 80254FAC 46800021 */ cvt.d.w $f0, $f0 -/* 183890 80254FB0 46202102 */ mul.d $f4, $f4, $f0 -/* 183894 80254FB4 00000000 */ nop -/* 183898 80254FB8 8FA402BC */ lw $a0, 0x2bc($sp) -/* 18389C 80254FBC 462010A0 */ cvt.s.d $f2, $f2 -/* 1838A0 80254FC0 44071000 */ mfc1 $a3, $f2 -/* 1838A4 80254FC4 462031A0 */ cvt.s.d $f6, $f6 -/* 1838A8 80254FC8 44053000 */ mfc1 $a1, $f6 -/* 1838AC 80254FCC 46202120 */ cvt.s.d $f4, $f4 -/* 1838B0 80254FD0 44062000 */ mfc1 $a2, $f4 -/* 1838B4 80254FD4 0C019DF0 */ jal guScaleF -/* 1838B8 80254FD8 00000000 */ nop -/* 1838BC 80254FDC 8FA402BC */ lw $a0, 0x2bc($sp) -/* 1838C0 80254FE0 8FA502A8 */ lw $a1, 0x2a8($sp) -/* 1838C4 80254FE4 0C019D80 */ jal guMtxCatF -/* 1838C8 80254FE8 03C0302D */ daddu $a2, $fp, $zero -/* 1838CC 80254FEC 03C0202D */ daddu $a0, $fp, $zero -/* 1838D0 80254FF0 8FA502B8 */ lw $a1, 0x2b8($sp) -/* 1838D4 80254FF4 0C019D80 */ jal guMtxCatF -/* 1838D8 80254FF8 02A0302D */ daddu $a2, $s5, $zero -/* 1838DC 80254FFC 02A0202D */ daddu $a0, $s5, $zero -/* 1838E0 80255000 8FA502AC */ lw $a1, 0x2ac($sp) -/* 1838E4 80255004 0C019D80 */ jal guMtxCatF -/* 1838E8 80255008 03C0302D */ daddu $a2, $fp, $zero -/* 1838EC 8025500C 03C0202D */ daddu $a0, $fp, $zero -/* 1838F0 80255010 8FA502A4 */ lw $a1, 0x2a4($sp) -/* 1838F4 80255014 0C019D80 */ jal guMtxCatF -/* 1838F8 80255018 02A0302D */ daddu $a2, $s5, $zero -/* 1838FC 8025501C 8FA8029C */ lw $t0, 0x29c($sp) -/* 183900 80255020 01140018 */ mult $t0, $s4 -/* 183904 80255024 86500098 */ lh $s0, 0x98($s2) -/* 183908 80255028 00004012 */ mflo $t0 -/* 18390C 8025502C 02C81023 */ subu $v0, $s6, $t0 -/* 183910 80255030 A6420098 */ sh $v0, 0x98($s2) -/* 183914 80255034 8FA802A0 */ lw $t0, 0x2a0($sp) -/* 183918 80255038 250200B4 */ addiu $v0, $t0, 0xb4 -/* 18391C 8025503C 44826000 */ mtc1 $v0, $f12 -/* 183920 80255040 00000000 */ nop -/* 183924 80255044 0C00A6C9 */ jal clamp_angle -/* 183928 80255048 46806320 */ cvt.s.w $f12, $f12 -/* 18392C 8025504C 0000202D */ daddu $a0, $zero, $zero -/* 183930 80255050 0240282D */ daddu $a1, $s2, $zero -/* 183934 80255054 4600020D */ trunc.w.s $f8, $f0 -/* 183938 80255058 44064000 */ mfc1 $a2, $f8 -/* 18393C 8025505C 02A0382D */ daddu $a3, $s5, $zero -/* 183940 80255060 24020001 */ addiu $v0, $zero, 1 -/* 183944 80255064 0C09647B */ jal func_802591EC -/* 183948 80255068 AFA20010 */ sw $v0, 0x10($sp) -/* 18394C 8025506C 08095354 */ j .L80254D50 -/* 183950 80255070 A6500098 */ sh $s0, 0x98($s2) -.L80255074: -/* 183954 80255074 8FBF02E4 */ lw $ra, 0x2e4($sp) -/* 183958 80255078 8FBE02E0 */ lw $fp, 0x2e0($sp) -/* 18395C 8025507C 8FB702DC */ lw $s7, 0x2dc($sp) -/* 183960 80255080 8FB602D8 */ lw $s6, 0x2d8($sp) -/* 183964 80255084 8FB502D4 */ lw $s5, 0x2d4($sp) -/* 183968 80255088 8FB402D0 */ lw $s4, 0x2d0($sp) -/* 18396C 8025508C 8FB302CC */ lw $s3, 0x2cc($sp) -/* 183970 80255090 8FB202C8 */ lw $s2, 0x2c8($sp) -/* 183974 80255094 8FB102C4 */ lw $s1, 0x2c4($sp) -/* 183978 80255098 8FB002C0 */ lw $s0, 0x2c0($sp) -/* 18397C 8025509C D7BE0310 */ ldc1 $f30, 0x310($sp) -/* 183980 802550A0 D7BC0308 */ ldc1 $f28, 0x308($sp) -/* 183984 802550A4 D7BA0300 */ ldc1 $f26, 0x300($sp) -/* 183988 802550A8 D7B802F8 */ ldc1 $f24, 0x2f8($sp) -/* 18398C 802550AC D7B602F0 */ ldc1 $f22, 0x2f0($sp) -/* 183990 802550B0 D7B402E8 */ ldc1 $f20, 0x2e8($sp) -/* 183994 802550B4 03E00008 */ jr $ra -/* 183998 802550B8 27BD0318 */ addiu $sp, $sp, 0x318 diff --git a/ver/us/asm/nonmatchings/182B30/func_802550BC.s b/ver/us/asm/nonmatchings/182B30/func_802550BC.s deleted file mode 100644 index 38e5b55d04..0000000000 --- a/ver/us/asm/nonmatchings/182B30/func_802550BC.s +++ /dev/null @@ -1,156 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802550BC -/* 18399C 802550BC 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 1839A0 802550C0 AFB50024 */ sw $s5, 0x24($sp) -/* 1839A4 802550C4 00A0A82D */ daddu $s5, $a1, $zero -/* 1839A8 802550C8 AFB40020 */ sw $s4, 0x20($sp) -/* 1839AC 802550CC AFBF0030 */ sw $ra, 0x30($sp) -/* 1839B0 802550D0 AFB7002C */ sw $s7, 0x2c($sp) -/* 1839B4 802550D4 AFB60028 */ sw $s6, 0x28($sp) -/* 1839B8 802550D8 AFB3001C */ sw $s3, 0x1c($sp) -/* 1839BC 802550DC AFB20018 */ sw $s2, 0x18($sp) -/* 1839C0 802550E0 AFB10014 */ sw $s1, 0x14($sp) -/* 1839C4 802550E4 AFB00010 */ sw $s0, 0x10($sp) -/* 1839C8 802550E8 F7B60040 */ sdc1 $f22, 0x40($sp) -/* 1839CC 802550EC F7B40038 */ sdc1 $f20, 0x38($sp) -/* 1839D0 802550F0 82B601F3 */ lb $s6, 0x1f3($s5) -/* 1839D4 802550F4 8EB201F4 */ lw $s2, 0x1f4($s5) -/* 1839D8 802550F8 1AC0006F */ blez $s6, .L802552B8 -/* 1839DC 802550FC 0000A02D */ daddu $s4, $zero, $zero -/* 1839E0 80255100 3C178000 */ lui $s7, 0x8000 -/* 1839E4 80255104 3C013F00 */ lui $at, 0x3f00 -/* 1839E8 80255108 4481B000 */ mtc1 $at, $f22 -/* 1839EC 8025510C 3C014F00 */ lui $at, 0x4f00 -/* 1839F0 80255110 4481A000 */ mtc1 $at, $f20 -.L80255114: -/* 1839F4 80255114 8E430000 */ lw $v1, ($s2) -/* 1839F8 80255118 30620001 */ andi $v0, $v1, 1 -/* 1839FC 8025511C 14400006 */ bnez $v0, .L80255138 -/* 183A00 80255120 00000000 */ nop -/* 183A04 80255124 8E420094 */ lw $v0, 0x94($s2) -/* 183A08 80255128 10400003 */ beqz $v0, .L80255138 -/* 183A0C 8025512C 30620002 */ andi $v0, $v1, 2 -/* 183A10 80255130 10400004 */ beqz $v0, .L80255144 -/* 183A14 80255134 00000000 */ nop -.L80255138: -/* 183A18 80255138 8E52000C */ lw $s2, 0xc($s2) -/* 183A1C 8025513C 080954AB */ j .L802552AC -/* 183A20 80255140 26940001 */ addiu $s4, $s4, 1 -.L80255144: -/* 183A24 80255144 8E5300C0 */ lw $s3, 0xc0($s2) -/* 183A28 80255148 C6400058 */ lwc1 $f0, 0x58($s2) -/* 183A2C 8025514C 827107D9 */ lb $s1, 0x7d9($s3) -/* 183A30 80255150 4600008D */ trunc.w.s $f2, $f0 -/* 183A34 80255154 44021000 */ mfc1 $v0, $f2 -/* 183A38 80255158 00111840 */ sll $v1, $s1, 1 -/* 183A3C 8025515C 02631821 */ addu $v1, $s3, $v1 -/* 183A40 80255160 A46207FC */ sh $v0, 0x7fc($v1) -/* 183A44 80255164 C640005C */ lwc1 $f0, 0x5c($s2) -/* 183A48 80255168 4600008D */ trunc.w.s $f2, $f0 -/* 183A4C 8025516C 44021000 */ mfc1 $v0, $f2 -/* 183A50 80255170 00000000 */ nop -/* 183A54 80255174 A462081C */ sh $v0, 0x81c($v1) -/* 183A58 80255178 C6400060 */ lwc1 $f0, 0x60($s2) -/* 183A5C 8025517C 4600008D */ trunc.w.s $f2, $f0 -/* 183A60 80255180 44021000 */ mfc1 $v0, $f2 -/* 183A64 80255184 00000000 */ nop -/* 183A68 80255188 A462083C */ sh $v0, 0x83c($v1) -/* 183A6C 8025518C C6A0018C */ lwc1 $f0, 0x18c($s5) -/* 183A70 80255190 4600008D */ trunc.w.s $f2, $f0 -/* 183A74 80255194 44021000 */ mfc1 $v0, $f2 -/* 183A78 80255198 00000000 */ nop -/* 183A7C 8025519C A46207DC */ sh $v0, 0x7dc($v1) -/* 183A80 802551A0 92A20169 */ lbu $v0, 0x169($s5) -/* 183A84 802551A4 02718021 */ addu $s0, $s3, $s1 -/* 183A88 802551A8 A202085C */ sb $v0, 0x85c($s0) -/* 183A8C 802551AC 92A2016B */ lbu $v0, 0x16b($s5) -/* 183A90 802551B0 A202086C */ sb $v0, 0x86c($s0) -/* 183A94 802551B4 C6AC015C */ lwc1 $f12, 0x15c($s5) -/* 183A98 802551B8 0C00A6C9 */ jal clamp_angle -/* 183A9C 802551BC 2610087C */ addiu $s0, $s0, 0x87c -/* 183AA0 802551C0 46160002 */ mul.s $f0, $f0, $f22 -/* 183AA4 802551C4 00000000 */ nop -/* 183AA8 802551C8 4600A03E */ c.le.s $f20, $f0 -/* 183AAC 802551CC 00000000 */ nop -/* 183AB0 802551D0 45030005 */ bc1tl .L802551E8 -/* 183AB4 802551D4 46140001 */ sub.s $f0, $f0, $f20 -/* 183AB8 802551D8 4600008D */ trunc.w.s $f2, $f0 -/* 183ABC 802551DC 44021000 */ mfc1 $v0, $f2 -/* 183AC0 802551E0 0809547F */ j .L802551FC -/* 183AC4 802551E4 A2020000 */ sb $v0, ($s0) -.L802551E8: -/* 183AC8 802551E8 4600008D */ trunc.w.s $f2, $f0 -/* 183ACC 802551EC 44021000 */ mfc1 $v0, $f2 -/* 183AD0 802551F0 00000000 */ nop -/* 183AD4 802551F4 00571025 */ or $v0, $v0, $s7 -/* 183AD8 802551F8 A2020000 */ sb $v0, ($s0) -.L802551FC: -/* 183ADC 802551FC 0C00A6C9 */ jal clamp_angle -/* 183AE0 80255200 C6AC0160 */ lwc1 $f12, 0x160($s5) -/* 183AE4 80255204 46160002 */ mul.s $f0, $f0, $f22 -/* 183AE8 80255208 00000000 */ nop -/* 183AEC 8025520C 02711021 */ addu $v0, $s3, $s1 -/* 183AF0 80255210 4600A03E */ c.le.s $f20, $f0 -/* 183AF4 80255214 00000000 */ nop -/* 183AF8 80255218 45010005 */ bc1t .L80255230 -/* 183AFC 8025521C 2442088C */ addiu $v0, $v0, 0x88c -/* 183B00 80255220 4600008D */ trunc.w.s $f2, $f0 -/* 183B04 80255224 44031000 */ mfc1 $v1, $f2 -/* 183B08 80255228 08095492 */ j .L80255248 -/* 183B0C 8025522C A0430000 */ sb $v1, ($v0) -.L80255230: -/* 183B10 80255230 46140001 */ sub.s $f0, $f0, $f20 -/* 183B14 80255234 4600008D */ trunc.w.s $f2, $f0 -/* 183B18 80255238 44031000 */ mfc1 $v1, $f2 -/* 183B1C 8025523C 00000000 */ nop -/* 183B20 80255240 00771825 */ or $v1, $v1, $s7 -/* 183B24 80255244 A0430000 */ sb $v1, ($v0) -.L80255248: -/* 183B28 80255248 0C00A6C9 */ jal clamp_angle -/* 183B2C 8025524C C6AC0164 */ lwc1 $f12, 0x164($s5) -/* 183B30 80255250 46160002 */ mul.s $f0, $f0, $f22 -/* 183B34 80255254 00000000 */ nop -/* 183B38 80255258 02711021 */ addu $v0, $s3, $s1 -/* 183B3C 8025525C 4600A03E */ c.le.s $f20, $f0 -/* 183B40 80255260 00000000 */ nop -/* 183B44 80255264 45010005 */ bc1t .L8025527C -/* 183B48 80255268 2442089C */ addiu $v0, $v0, 0x89c -/* 183B4C 8025526C 4600008D */ trunc.w.s $f2, $f0 -/* 183B50 80255270 44031000 */ mfc1 $v1, $f2 -/* 183B54 80255274 080954A5 */ j .L80255294 -/* 183B58 80255278 A0430000 */ sb $v1, ($v0) -.L8025527C: -/* 183B5C 8025527C 46140001 */ sub.s $f0, $f0, $f20 -/* 183B60 80255280 4600008D */ trunc.w.s $f2, $f0 -/* 183B64 80255284 44031000 */ mfc1 $v1, $f2 -/* 183B68 80255288 00000000 */ nop -/* 183B6C 8025528C 00771825 */ or $v1, $v1, $s7 -/* 183B70 80255290 A0430000 */ sb $v1, ($v0) -.L80255294: -/* 183B74 80255294 26310001 */ addiu $s1, $s1, 1 -/* 183B78 80255298 2A220010 */ slti $v0, $s1, 0x10 -/* 183B7C 8025529C 50400001 */ beql $v0, $zero, .L802552A4 -/* 183B80 802552A0 0000882D */ daddu $s1, $zero, $zero -.L802552A4: -/* 183B84 802552A4 A27107D9 */ sb $s1, 0x7d9($s3) -/* 183B88 802552A8 26940001 */ addiu $s4, $s4, 1 -.L802552AC: -/* 183B8C 802552AC 0296102A */ slt $v0, $s4, $s6 -/* 183B90 802552B0 1440FF98 */ bnez $v0, .L80255114 -/* 183B94 802552B4 00000000 */ nop -.L802552B8: -/* 183B98 802552B8 8FBF0030 */ lw $ra, 0x30($sp) -/* 183B9C 802552BC 8FB7002C */ lw $s7, 0x2c($sp) -/* 183BA0 802552C0 8FB60028 */ lw $s6, 0x28($sp) -/* 183BA4 802552C4 8FB50024 */ lw $s5, 0x24($sp) -/* 183BA8 802552C8 8FB40020 */ lw $s4, 0x20($sp) -/* 183BAC 802552CC 8FB3001C */ lw $s3, 0x1c($sp) -/* 183BB0 802552D0 8FB20018 */ lw $s2, 0x18($sp) -/* 183BB4 802552D4 8FB10014 */ lw $s1, 0x14($sp) -/* 183BB8 802552D8 8FB00010 */ lw $s0, 0x10($sp) -/* 183BBC 802552DC D7B60040 */ ldc1 $f22, 0x40($sp) -/* 183BC0 802552E0 D7B40038 */ ldc1 $f20, 0x38($sp) -/* 183BC4 802552E4 03E00008 */ jr $ra -/* 183BC8 802552E8 27BD0048 */ addiu $sp, $sp, 0x48