fire vine plant hot (#889)

This commit is contained in:
Ethan Roseman 2022-12-15 20:31:51 -05:00 committed by GitHub
parent 6ea08f8257
commit 63072fe0c1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 309 additions and 725 deletions

View File

@ -1,48 +1,307 @@
#include "kmr_22.h"
INCLUDE_ASM(s32, "world/area_kmr/kmr_22/8FF8B0", func_80240240_8FF8B0);
// TODO this entire file should be an include from kzn_19_4_npc.c
INCLUDE_ASM(s32, "world/area_kmr/kmr_22/8FF8B0", func_80240314_8FF984);
enum {
VINE_0 = 0,
VINE_1 = 1,
VINE_2 = 2,
VINE_3 = 3,
NUM_VINES = 4
};
INCLUDE_ASM(s32, "world/area_kmr/kmr_22/8FF8B0", func_80240418_8FFA88);
enum {
MV_VinesData = MapVar(0),
MV_BossDefeated = MapVar(10),
};
ApiStatus func_802404E4_8FFB54(Evt* script, s32 isInitialCall) {
enum {
VINE_0_BASE = 0x80200000,
VINE_1_BASE = 0x80204000,
VINE_2_BASE = 0x80207000,
VINE_3_BASE = 0x8020A000,
}; // TODO shiftability -- hard-coded addresses in gBackgroundImage
extern s32 N(VineAnimationsDmaTable)[];
extern Gfx N(lava_piranha_vine_gfx)[];
extern s32 N(VineRenderState);
void N(make_vine_interpolation)(LavaPiranhaVine* vine) {
Evt dummyEvt;
Evt* dummyEvtPtr = &dummyEvt;
s32 args[4];
s32 count;
// setup dummy call to LoadPath
args[0] = 3 * vine->boneCount; // generate three output samples per input
args[1] = (s32) &vine->bonePos; // points
args[2] = vine->boneCount; // num vectors
args[3] = EASING_LINEAR;
dummyEvtPtr->ptrReadPos = args;
LoadPath(dummyEvtPtr, 1);
count = 0;
do {
GetNextPathPos(dummyEvtPtr, 1);
vine->points[count].x = evt_get_float_variable(dummyEvtPtr, LVar1);
vine->points[count].y = evt_get_float_variable(dummyEvtPtr, LVar2);
vine->points[count].z = evt_get_float_variable(dummyEvtPtr, LVar3);
count++;
} while (dummyEvtPtr->varTable[0] != 0);
vine->numPoints = count;
}
API_CALLABLE(N(SetVineBonePos)) {
Bytecode* args = script->ptrReadPos;
s32 vineIdx = evt_get_variable(script, *args++);
s32 jointIdx = evt_get_variable(script, *args++);
s32 x = evt_get_variable(script, *args++);
s32 y = evt_get_variable(script, *args++);
s32 z = evt_get_variable(script, *args++);
LavaPiranhaVine* vines = (LavaPiranhaVine*) evt_get_variable(NULL, MapVar(0));
LavaPiranhaVine* vine = &vines[vineIdx];
evt_get_variable(script, *args++);
evt_get_variable(script, *args++);
evt_get_variable(script, *args++);
evt_get_variable(script, *args++);
evt_get_variable(script, *args++);
evt_get_variable(NULL, MapVar(0));
vine->bonePos[jointIdx].x = x;
vine->bonePos[jointIdx].y = y;
vine->bonePos[jointIdx].z = z;
return ApiStatus_DONE2;
}
void func_8024056C_8FFBDC(void*);
INCLUDE_ASM(s32, "world/area_kmr/kmr_22/8FF8B0", func_8024056C_8FFBDC);
API_CALLABLE(N(SetVineBoneRot)) {
Bytecode* args = script->ptrReadPos;
s32 vineIdx = evt_get_variable(script, *args++);
s32 jointIdx = evt_get_variable(script, *args++);
s32 rx = evt_get_variable(script, *args++);
s32 ry = evt_get_variable(script, *args++);
s32 rz = evt_get_variable(script, *args++);
LavaPiranhaVine* vines = (LavaPiranhaVine*) evt_get_variable(NULL, MapVar(0));
LavaPiranhaVine* vine = &vines[vineIdx];
void func_80240B00_900170(void) {
RenderTask rt;
rt.appendGfx = &func_8024056C_8FFBDC;
rt.distance = 10;
rt.appendGfxArg = NULL;
rt.renderMode = RENDER_MODE_SURFACE_OPA;
queue_render_task(&rt);
}
extern s32 D_802483D0;
ApiStatus func_80240B3C_9001AC(Evt* script, s32 isInitialCall) {
D_802483D0 = 0;
vine->boneRot[jointIdx] = rz;
return ApiStatus_DONE2;
}
ApiStatus func_80240B4C_9001BC(Evt* script, s32 isInitialCall) {
evt_set_variable(script, MapVar(0), (s32) heap_malloc(0x780)); // TODO what is this
D_802483D0 = -1;
create_worker_world(NULL, func_80240B00_900170);
API_CALLABLE(N(SetVineBoneScale)) {
Bytecode* args = script->ptrReadPos;
s32 vineIdx = evt_get_variable(script, *args++);
s32 jointIdx = evt_get_variable(script, *args++);
s32 sx = evt_get_variable(script, *args++);
s32 sy = evt_get_variable(script, *args++);
s32 sz = evt_get_variable(script, *args++);
LavaPiranhaVine* vines = (LavaPiranhaVine*) evt_get_variable(NULL, MapVar(0));
LavaPiranhaVine* vine = &vines[vineIdx];
// do nothing
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "world/area_kmr/kmr_22/8FF8B0", func_80240BA8_900218);
void N(appendGfx_piranha_vines)(void* data) {
Vtx_t* vtxBuffer;
Vtx_t* vtx;
f32 boneLength;
s32 boneCount;
f32 angle;
f32 nextAngle;
f32 curAngle1;
f32 curAngle2;
f32 alphaCoord;
f32 alphaFrac;
s32 nearest;
s32 numPoints;
s32 i, j;
f32 deltaX, deltaY;
f32 posX, posY, posZ;
if (N(VineRenderState) == -1) {
return;
}
if (N(VineRenderState) == 0) {
for (i = 0; i < NUM_VINES; i++) {
LavaPiranhaVine* vines = (LavaPiranhaVine*) evt_get_variable(NULL, MV_VinesData);
LavaPiranhaVine* vine = &vines[i];
switch (i) {
default:
return;
case 0:
boneCount = 9;
boneLength = 10.0f;
break;
case 1:
boneCount = 7;
boneLength = 8.0f;
break;
case 2:
boneCount = 7;
boneLength = 8.0f;
break;
case 3:
boneCount = 5;
boneLength = 8.0f;
break;
}
vine->boneCount = boneCount;
vine->boneLength = boneLength;
for (j = 0; j < boneCount; j++) {
if (j == (boneCount - 1)) {
vine->boneRot[j] += 90.0f;
} else {
curAngle1 = vine->boneRot[j];
nextAngle = vine->boneRot[j + 1];
if (nextAngle - curAngle1 > 180.0f) {
curAngle1 += 360.0f;
} else if (nextAngle - curAngle1 < -180.0f) {
nextAngle += 360.0f;
}
// average cur and next angles
vine->boneRot[j] = ((curAngle1 + nextAngle) / 2.0) + 90.0;
}
}
N(make_vine_interpolation)(vine);
}
N(VineRenderState) = 1;
}
gDPPipeSync(gMasterGfxPos++);
gSPDisplayList(gMasterGfxPos++, N(lava_piranha_vine_gfx));
for (i = 0; i < NUM_VINES; i++) {
LavaPiranhaVine* vines = (LavaPiranhaVine*) evt_get_variable(NULL, MV_VinesData);
LavaPiranhaVine* vine = &vines[i];
boneLength = vine->boneLength;
boneCount = vine->boneCount;
numPoints = vine->numPoints;
// we'll build the vertex data and place it in the display list, so jump forward
// here and leave space behind for the gSPBranchList command followed by two vertices
// for each point in numPoints
vtxBuffer = (Vtx_t*)(gMasterGfxPos + 1);
gSPBranchList(gMasterGfxPos, &gMasterGfxPos[1 + 2 * (2 * numPoints)]);
vtx = (Vtx_t*) (++gMasterGfxPos);
gMasterGfxPos = &gMasterGfxPos[2 * (2 * numPoints)];
for (j = 0; j < numPoints; j++) {
posX = vine->points[j].x;
posY = vine->points[j].y;
posZ = vine->points[j].z;
alphaCoord = ((f32) j * boneCount) / numPoints;
nearest = (s32) alphaCoord;
alphaFrac = alphaCoord - (f32)nearest;
if (nearest + 1 >= boneCount) {
angle = vine->boneRot[boneCount - 1];
} else {
curAngle2 = vine->boneRot[nearest];
nextAngle = vine->boneRot[nearest + 1];
if (nextAngle - curAngle2 > 180.0f) {
nextAngle -= 360.0f;
}
if (nextAngle - curAngle2 < -180.0f) {
nextAngle += 360.0f;
}
angle = ((nextAngle - curAngle2) * alphaFrac) + curAngle2;
}
deltaX = sin_deg(angle) * boneLength;
deltaY = -cos_deg(angle) * boneLength;
vtx->ob[0] = posX + deltaX;
vtx->ob[1] = posY + deltaY;
vtx->ob[2] = posZ;
vtx->tc[0] = j * 0x140;
vtx->tc[1] = 0;
vtx->cn[0] = j * 50;
vtx->cn[1] = j * 120;;
vtx->cn[2] = j * 30;
vtx++;
vtx->ob[0] = posX - deltaX;
vtx->ob[1] = posY - deltaY;
vtx->ob[2] = posZ;
vtx->tc[0] = j * 0x140;
vtx->tc[1] = 0x400;
vtx->cn[0] = j * 50;
vtx->cn[1] = j * 120;;
vtx->cn[2] = j * 30;
vtx++;
}
for (j = 0; j < numPoints - 1; j++) {
gSPVertex(gMasterGfxPos++, &vtxBuffer[2*j], 4, 0);
gSP2Triangles(gMasterGfxPos++, 1, 0, 2, 0, 1, 2, 3, 0);
}
}
gDPPipeSync(gMasterGfxPos++);
}
void N(worker_render_piranha_vines)(void) {
RenderTask renderTask;
renderTask.appendGfx = &N(appendGfx_piranha_vines);
renderTask.appendGfxArg = 0;
renderTask.distance = 10;
renderTask.renderMode = RENDER_MODE_SURFACE_OPA;
queue_render_task(&renderTask);
}
API_CALLABLE(N(MarkVineInterpolationDirty)) {
N(VineRenderState) = 0;
return ApiStatus_DONE2;
}
API_CALLABLE(N(CreateVineRenderer)) {
LavaPiranhaVine* data = heap_malloc(NUM_VINES * sizeof(*data));
evt_set_variable(script, MV_VinesData, (s32) data);
N(VineRenderState) = -1;
create_worker_world(NULL, &N(worker_render_piranha_vines));
return ApiStatus_DONE2;
}
API_CALLABLE(N(LoadAnimationFromTable)) {
Bytecode* args = script->ptrReadPos;
s32 type = evt_get_variable(script, *args++);
s32 index = evt_get_variable(script, *args++);
switch (type) {
case VINE_0:
dma_copy(
(u8*) N(VineAnimationsDmaTable)[3 * index + 0],
(u8*) N(VineAnimationsDmaTable)[3 * index + 1],
(void*) VINE_0_BASE);
break;
case VINE_1:
dma_copy(
(u8*) N(VineAnimationsDmaTable)[3 * index + 0],
(u8*) N(VineAnimationsDmaTable)[3 * index + 1],
(void*) VINE_1_BASE);
break;
case VINE_2:
dma_copy(
(u8*) N(VineAnimationsDmaTable)[3 * index + 0],
(u8*) N(VineAnimationsDmaTable)[3 * index + 1],
(void*) VINE_2_BASE);
break;
case VINE_3:
dma_copy(
(u8*) N(VineAnimationsDmaTable)[3 * index + 0],
(u8*) N(VineAnimationsDmaTable)[3 * index + 1],
(void*) VINE_3_BASE);
break;
}
return ApiStatus_DONE2;
}

View File

@ -35,7 +35,7 @@ dlabel D_802483AC_B3481C
dlabel D_802483C0_B34830
.word 0xC4128000, 0x00000000, 0xC3570000, 0x00000000
dlabel D_802483D0_B34840
dlabel kmr_22_VineRenderState_B34840
.word 0x00000002, 0x00000042, 0x00000043
dlabel D_802483DC_B3484C
@ -45,7 +45,7 @@ dlabel D_802483E4_B34854
.word 0x00000001, 0x000000AC, 0x0000024F, 0x0000004B, 0xFFFFFF24, 0x0000000F, 0x00000000, 0xF9718895
dlabel D_80248404_B34874
.word D_802483D0_B34840, D_802483DC_B3484C, D_802483E4_B34854, 0x00000000, 0x00000000
.word kmr_22_VineRenderState_B34840, D_802483DC_B3484C, D_802483E4_B34854, 0x00000000, 0x00000000
dlabel D_80248418_B34888
.word 0x44114000, 0x00000000, 0xC3700000, 0x00000000

File diff suppressed because one or more lines are too long

View File

@ -1,58 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80240240_8FF8B0
/* 8FF8B0 80240240 27BDFE60 */ addiu $sp, $sp, -0x1a0
/* 8FF8B4 80240244 AFB30194 */ sw $s3, 0x194($sp)
/* 8FF8B8 80240248 0080982D */ daddu $s3, $a0, $zero
/* 8FF8BC 8024024C AFB1018C */ sw $s1, 0x18c($sp)
/* 8FF8C0 80240250 27B10010 */ addiu $s1, $sp, 0x10
/* 8FF8C4 80240254 0220202D */ daddu $a0, $s1, $zero
/* 8FF8C8 80240258 24050001 */ addiu $a1, $zero, 1
/* 8FF8CC 8024025C AFBF0198 */ sw $ra, 0x198($sp)
/* 8FF8D0 80240260 AFB20190 */ sw $s2, 0x190($sp)
/* 8FF8D4 80240264 AFB00188 */ sw $s0, 0x188($sp)
/* 8FF8D8 80240268 8E630090 */ lw $v1, 0x90($s3)
/* 8FF8DC 8024026C 0000902D */ daddu $s2, $zero, $zero
/* 8FF8E0 80240270 AFB3017C */ sw $s3, 0x17c($sp)
/* 8FF8E4 80240274 00A31004 */ sllv $v0, $v1, $a1
/* 8FF8E8 80240278 00431021 */ addu $v0, $v0, $v1
/* 8FF8EC 8024027C AFA20178 */ sw $v0, 0x178($sp)
/* 8FF8F0 80240280 8E630090 */ lw $v1, 0x90($s3)
/* 8FF8F4 80240284 27A20178 */ addiu $v0, $sp, 0x178
/* 8FF8F8 80240288 AFA00184 */ sw $zero, 0x184($sp)
/* 8FF8FC 8024028C AFA2001C */ sw $v0, 0x1c($sp)
/* 8FF900 80240290 0C0B550C */ jal LoadPath
/* 8FF904 80240294 AFA30180 */ sw $v1, 0x180($sp)
/* 8FF908 80240298 0260802D */ daddu $s0, $s3, $zero
.L8024029C:
/* 8FF90C 8024029C 0220202D */ daddu $a0, $s1, $zero
/* 8FF910 802402A0 0C0B5549 */ jal GetNextPathPos
/* 8FF914 802402A4 24050001 */ addiu $a1, $zero, 1
/* 8FF918 802402A8 0220202D */ daddu $a0, $s1, $zero
/* 8FF91C 802402AC 3C05FE36 */ lui $a1, 0xfe36
/* 8FF920 802402B0 0C0B210B */ jal evt_get_float_variable
/* 8FF924 802402B4 34A53C81 */ ori $a1, $a1, 0x3c81
/* 8FF928 802402B8 0220202D */ daddu $a0, $s1, $zero
/* 8FF92C 802402BC 3C05FE36 */ lui $a1, 0xfe36
/* 8FF930 802402C0 34A53C82 */ ori $a1, $a1, 0x3c82
/* 8FF934 802402C4 0C0B210B */ jal evt_get_float_variable
/* 8FF938 802402C8 E6000098 */ swc1 $f0, 0x98($s0)
/* 8FF93C 802402CC 0220202D */ daddu $a0, $s1, $zero
/* 8FF940 802402D0 3C05FE36 */ lui $a1, 0xfe36
/* 8FF944 802402D4 34A53C83 */ ori $a1, $a1, 0x3c83
/* 8FF948 802402D8 0C0B210B */ jal evt_get_float_variable
/* 8FF94C 802402DC E600009C */ swc1 $f0, 0x9c($s0)
/* 8FF950 802402E0 E60000A0 */ swc1 $f0, 0xa0($s0)
/* 8FF954 802402E4 2610000C */ addiu $s0, $s0, 0xc
/* 8FF958 802402E8 8E220084 */ lw $v0, 0x84($s1)
/* 8FF95C 802402EC 1440FFEB */ bnez $v0, .L8024029C
/* 8FF960 802402F0 26520001 */ addiu $s2, $s2, 1
/* 8FF964 802402F4 AE7201DC */ sw $s2, 0x1dc($s3)
/* 8FF968 802402F8 8FBF0198 */ lw $ra, 0x198($sp)
/* 8FF96C 802402FC 8FB30194 */ lw $s3, 0x194($sp)
/* 8FF970 80240300 8FB20190 */ lw $s2, 0x190($sp)
/* 8FF974 80240304 8FB1018C */ lw $s1, 0x18c($sp)
/* 8FF978 80240308 8FB00188 */ lw $s0, 0x188($sp)
/* 8FF97C 8024030C 03E00008 */ jr $ra
/* 8FF980 80240310 27BD01A0 */ addiu $sp, $sp, 0x1a0

View File

@ -1,69 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80240314_8FF984
/* 8FF984 80240314 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 8FF988 80240318 AFB10014 */ sw $s1, 0x14($sp)
/* 8FF98C 8024031C 0080882D */ daddu $s1, $a0, $zero
/* 8FF990 80240320 AFBF0024 */ sw $ra, 0x24($sp)
/* 8FF994 80240324 AFB40020 */ sw $s4, 0x20($sp)
/* 8FF998 80240328 AFB3001C */ sw $s3, 0x1c($sp)
/* 8FF99C 8024032C AFB20018 */ sw $s2, 0x18($sp)
/* 8FF9A0 80240330 AFB00010 */ sw $s0, 0x10($sp)
/* 8FF9A4 80240334 8E30000C */ lw $s0, 0xc($s1)
/* 8FF9A8 80240338 8E050000 */ lw $a1, ($s0)
/* 8FF9AC 8024033C 0C0B1EAF */ jal evt_get_variable
/* 8FF9B0 80240340 26100004 */ addiu $s0, $s0, 4
/* 8FF9B4 80240344 8E050000 */ lw $a1, ($s0)
/* 8FF9B8 80240348 26100004 */ addiu $s0, $s0, 4
/* 8FF9BC 8024034C 0220202D */ daddu $a0, $s1, $zero
/* 8FF9C0 80240350 0C0B1EAF */ jal evt_get_variable
/* 8FF9C4 80240354 0040982D */ daddu $s3, $v0, $zero
/* 8FF9C8 80240358 8E050000 */ lw $a1, ($s0)
/* 8FF9CC 8024035C 26100004 */ addiu $s0, $s0, 4
/* 8FF9D0 80240360 0220202D */ daddu $a0, $s1, $zero
/* 8FF9D4 80240364 0C0B1EAF */ jal evt_get_variable
/* 8FF9D8 80240368 0040902D */ daddu $s2, $v0, $zero
/* 8FF9DC 8024036C 8E050000 */ lw $a1, ($s0)
/* 8FF9E0 80240370 26100004 */ addiu $s0, $s0, 4
/* 8FF9E4 80240374 0220202D */ daddu $a0, $s1, $zero
/* 8FF9E8 80240378 0C0B1EAF */ jal evt_get_variable
/* 8FF9EC 8024037C 0040A02D */ daddu $s4, $v0, $zero
/* 8FF9F0 80240380 0220202D */ daddu $a0, $s1, $zero
/* 8FF9F4 80240384 8E050000 */ lw $a1, ($s0)
/* 8FF9F8 80240388 0C0B1EAF */ jal evt_get_variable
/* 8FF9FC 8024038C 0040882D */ daddu $s1, $v0, $zero
/* 8FFA00 80240390 0000202D */ daddu $a0, $zero, $zero
/* 8FFA04 80240394 3C05FD05 */ lui $a1, 0xfd05
/* 8FFA08 80240398 34A50F80 */ ori $a1, $a1, 0xf80
/* 8FFA0C 8024039C 0C0B1EAF */ jal evt_get_variable
/* 8FFA10 802403A0 0040802D */ daddu $s0, $v0, $zero
/* 8FFA14 802403A4 00131900 */ sll $v1, $s3, 4
/* 8FFA18 802403A8 00731823 */ subu $v1, $v1, $s3
/* 8FFA1C 802403AC 00031940 */ sll $v1, $v1, 5
/* 8FFA20 802403B0 00432021 */ addu $a0, $v0, $v1
/* 8FFA24 802403B4 24020002 */ addiu $v0, $zero, 2
/* 8FFA28 802403B8 00121840 */ sll $v1, $s2, 1
/* 8FFA2C 802403BC 00721821 */ addu $v1, $v1, $s2
/* 8FFA30 802403C0 00431804 */ sllv $v1, $v1, $v0
/* 8FFA34 802403C4 00832021 */ addu $a0, $a0, $v1
/* 8FFA38 802403C8 44940000 */ mtc1 $s4, $f0
/* 8FFA3C 802403CC 00000000 */ nop
/* 8FFA40 802403D0 46800020 */ cvt.s.w $f0, $f0
/* 8FFA44 802403D4 E4800000 */ swc1 $f0, ($a0)
/* 8FFA48 802403D8 44910000 */ mtc1 $s1, $f0
/* 8FFA4C 802403DC 00000000 */ nop
/* 8FFA50 802403E0 46800020 */ cvt.s.w $f0, $f0
/* 8FFA54 802403E4 E4800004 */ swc1 $f0, 4($a0)
/* 8FFA58 802403E8 44900000 */ mtc1 $s0, $f0
/* 8FFA5C 802403EC 00000000 */ nop
/* 8FFA60 802403F0 46800020 */ cvt.s.w $f0, $f0
/* 8FFA64 802403F4 E4800008 */ swc1 $f0, 8($a0)
/* 8FFA68 802403F8 8FBF0024 */ lw $ra, 0x24($sp)
/* 8FFA6C 802403FC 8FB40020 */ lw $s4, 0x20($sp)
/* 8FFA70 80240400 8FB3001C */ lw $s3, 0x1c($sp)
/* 8FFA74 80240404 8FB20018 */ lw $s2, 0x18($sp)
/* 8FFA78 80240408 8FB10014 */ lw $s1, 0x14($sp)
/* 8FFA7C 8024040C 8FB00010 */ lw $s0, 0x10($sp)
/* 8FFA80 80240410 03E00008 */ jr $ra
/* 8FFA84 80240414 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -1,55 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80240418_8FFA88
/* 8FFA88 80240418 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 8FFA8C 8024041C AFB10014 */ sw $s1, 0x14($sp)
/* 8FFA90 80240420 0080882D */ daddu $s1, $a0, $zero
/* 8FFA94 80240424 AFBF0020 */ sw $ra, 0x20($sp)
/* 8FFA98 80240428 AFB3001C */ sw $s3, 0x1c($sp)
/* 8FFA9C 8024042C AFB20018 */ sw $s2, 0x18($sp)
/* 8FFAA0 80240430 AFB00010 */ sw $s0, 0x10($sp)
/* 8FFAA4 80240434 8E30000C */ lw $s0, 0xc($s1)
/* 8FFAA8 80240438 8E050000 */ lw $a1, ($s0)
/* 8FFAAC 8024043C 0C0B1EAF */ jal evt_get_variable
/* 8FFAB0 80240440 26100004 */ addiu $s0, $s0, 4
/* 8FFAB4 80240444 8E050000 */ lw $a1, ($s0)
/* 8FFAB8 80240448 26100004 */ addiu $s0, $s0, 4
/* 8FFABC 8024044C 0220202D */ daddu $a0, $s1, $zero
/* 8FFAC0 80240450 0C0B1EAF */ jal evt_get_variable
/* 8FFAC4 80240454 0040982D */ daddu $s3, $v0, $zero
/* 8FFAC8 80240458 8E050000 */ lw $a1, ($s0)
/* 8FFACC 8024045C 26100004 */ addiu $s0, $s0, 4
/* 8FFAD0 80240460 0220202D */ daddu $a0, $s1, $zero
/* 8FFAD4 80240464 0C0B1EAF */ jal evt_get_variable
/* 8FFAD8 80240468 0040902D */ daddu $s2, $v0, $zero
/* 8FFADC 8024046C 8E050000 */ lw $a1, ($s0)
/* 8FFAE0 80240470 26100004 */ addiu $s0, $s0, 4
/* 8FFAE4 80240474 0C0B1EAF */ jal evt_get_variable
/* 8FFAE8 80240478 0220202D */ daddu $a0, $s1, $zero
/* 8FFAEC 8024047C 8E050000 */ lw $a1, ($s0)
/* 8FFAF0 80240480 0C0B1EAF */ jal evt_get_variable
/* 8FFAF4 80240484 0220202D */ daddu $a0, $s1, $zero
/* 8FFAF8 80240488 0000202D */ daddu $a0, $zero, $zero
/* 8FFAFC 8024048C 3C05FD05 */ lui $a1, 0xfd05
/* 8FFB00 80240490 34A50F80 */ ori $a1, $a1, 0xf80
/* 8FFB04 80240494 0C0B1EAF */ jal evt_get_variable
/* 8FFB08 80240498 0040802D */ daddu $s0, $v0, $zero
/* 8FFB0C 8024049C 00131900 */ sll $v1, $s3, 4
/* 8FFB10 802404A0 00731823 */ subu $v1, $v1, $s3
/* 8FFB14 802404A4 00031940 */ sll $v1, $v1, 5
/* 8FFB18 802404A8 00431821 */ addu $v1, $v0, $v1
/* 8FFB1C 802404AC 24020002 */ addiu $v0, $zero, 2
/* 8FFB20 802404B0 00529004 */ sllv $s2, $s2, $v0
/* 8FFB24 802404B4 00721821 */ addu $v1, $v1, $s2
/* 8FFB28 802404B8 44900000 */ mtc1 $s0, $f0
/* 8FFB2C 802404BC 00000000 */ nop
/* 8FFB30 802404C0 46800020 */ cvt.s.w $f0, $f0
/* 8FFB34 802404C4 E460006C */ swc1 $f0, 0x6c($v1)
/* 8FFB38 802404C8 8FBF0020 */ lw $ra, 0x20($sp)
/* 8FFB3C 802404CC 8FB3001C */ lw $s3, 0x1c($sp)
/* 8FFB40 802404D0 8FB20018 */ lw $s2, 0x18($sp)
/* 8FFB44 802404D4 8FB10014 */ lw $s1, 0x14($sp)
/* 8FFB48 802404D8 8FB00010 */ lw $s0, 0x10($sp)
/* 8FFB4C 802404DC 03E00008 */ jr $ra
/* 8FFB50 802404E0 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -1,392 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_802483B0_907A20
.double 90.0, 0.0
.section .text
glabel func_8024056C_8FFBDC
/* 8FFBDC 8024056C 27BDFF70 */ addiu $sp, $sp, -0x90
/* 8FFBE0 80240570 3C038025 */ lui $v1, %hi(D_802483D0)
/* 8FFBE4 80240574 8C6383D0 */ lw $v1, %lo(D_802483D0)($v1)
/* 8FFBE8 80240578 2402FFFF */ addiu $v0, $zero, -1
/* 8FFBEC 8024057C AFBF005C */ sw $ra, 0x5c($sp)
/* 8FFBF0 80240580 AFBE0058 */ sw $fp, 0x58($sp)
/* 8FFBF4 80240584 AFB70054 */ sw $s7, 0x54($sp)
/* 8FFBF8 80240588 AFB60050 */ sw $s6, 0x50($sp)
/* 8FFBFC 8024058C AFB5004C */ sw $s5, 0x4c($sp)
/* 8FFC00 80240590 AFB40048 */ sw $s4, 0x48($sp)
/* 8FFC04 80240594 AFB30044 */ sw $s3, 0x44($sp)
/* 8FFC08 80240598 AFB20040 */ sw $s2, 0x40($sp)
/* 8FFC0C 8024059C AFB1003C */ sw $s1, 0x3c($sp)
/* 8FFC10 802405A0 AFB00038 */ sw $s0, 0x38($sp)
/* 8FFC14 802405A4 F7BE0088 */ sdc1 $f30, 0x88($sp)
/* 8FFC18 802405A8 F7BC0080 */ sdc1 $f28, 0x80($sp)
/* 8FFC1C 802405AC F7BA0078 */ sdc1 $f26, 0x78($sp)
/* 8FFC20 802405B0 F7B80070 */ sdc1 $f24, 0x70($sp)
/* 8FFC24 802405B4 F7B60068 */ sdc1 $f22, 0x68($sp)
/* 8FFC28 802405B8 1062013F */ beq $v1, $v0, .L80240AB8
/* 8FFC2C 802405BC F7B40060 */ sdc1 $f20, 0x60($sp)
/* 8FFC30 802405C0 1460005E */ bnez $v1, .L8024073C
/* 8FFC34 802405C4 0000382D */ daddu $a3, $zero, $zero
/* 8FFC38 802405C8 00E0802D */ daddu $s0, $a3, $zero
/* 8FFC3C 802405CC 3C0142B4 */ lui $at, 0x42b4
/* 8FFC40 802405D0 4481E000 */ mtc1 $at, $f28
/* 8FFC44 802405D4 3C014334 */ lui $at, 0x4334
/* 8FFC48 802405D8 4481D000 */ mtc1 $at, $f26
/* 8FFC4C 802405DC 3C0143B4 */ lui $at, 0x43b4
/* 8FFC50 802405E0 4481A000 */ mtc1 $at, $f20
/* 8FFC54 802405E4 3C01C334 */ lui $at, 0xc334
/* 8FFC58 802405E8 4481B000 */ mtc1 $at, $f22
.L802405EC:
/* 8FFC5C 802405EC 0000202D */ daddu $a0, $zero, $zero
/* 8FFC60 802405F0 3C05FD05 */ lui $a1, 0xfd05
/* 8FFC64 802405F4 34A50F80 */ ori $a1, $a1, 0xf80
/* 8FFC68 802405F8 0C0B1EAF */ jal evt_get_variable
/* 8FFC6C 802405FC AFA70030 */ sw $a3, 0x30($sp)
/* 8FFC70 80240600 00502021 */ addu $a0, $v0, $s0
/* 8FFC74 80240604 8FA70030 */ lw $a3, 0x30($sp)
/* 8FFC78 80240608 24020001 */ addiu $v0, $zero, 1
/* 8FFC7C 8024060C 10E20011 */ beq $a3, $v0, .L80240654
/* 8FFC80 80240610 28E20002 */ slti $v0, $a3, 2
/* 8FFC84 80240614 50400005 */ beql $v0, $zero, .L8024062C
/* 8FFC88 80240618 24020002 */ addiu $v0, $zero, 2
/* 8FFC8C 8024061C 10E00009 */ beqz $a3, .L80240644
/* 8FFC90 80240620 00000000 */ nop
/* 8FFC94 80240624 080902AE */ j .L80240AB8
/* 8FFC98 80240628 00000000 */ nop
.L8024062C:
/* 8FFC9C 8024062C 10E2000B */ beq $a3, $v0, .L8024065C
/* 8FFCA0 80240630 24020003 */ addiu $v0, $zero, 3
/* 8FFCA4 80240634 10E2000A */ beq $a3, $v0, .L80240660
/* 8FFCA8 80240638 24140005 */ addiu $s4, $zero, 5
/* 8FFCAC 8024063C 080902AE */ j .L80240AB8
/* 8FFCB0 80240640 00000000 */ nop
.L80240644:
/* 8FFCB4 80240644 3C014120 */ lui $at, 0x4120
/* 8FFCB8 80240648 4481C000 */ mtc1 $at, $f24
/* 8FFCBC 8024064C 0809019A */ j .L80240668
/* 8FFCC0 80240650 24140009 */ addiu $s4, $zero, 9
.L80240654:
/* 8FFCC4 80240654 08090198 */ j .L80240660
/* 8FFCC8 80240658 24140007 */ addiu $s4, $zero, 7
.L8024065C:
/* 8FFCCC 8024065C 24140007 */ addiu $s4, $zero, 7
.L80240660:
/* 8FFCD0 80240660 3C014100 */ lui $at, 0x4100
/* 8FFCD4 80240664 4481C000 */ mtc1 $at, $f24
.L80240668:
/* 8FFCD8 80240668 0000882D */ daddu $s1, $zero, $zero
/* 8FFCDC 8024066C AC940090 */ sw $s4, 0x90($a0)
/* 8FFCE0 80240670 1A800027 */ blez $s4, .L80240710
/* 8FFCE4 80240674 E4980094 */ swc1 $f24, 0x94($a0)
/* 8FFCE8 80240678 2686FFFF */ addiu $a2, $s4, -1
/* 8FFCEC 8024067C 0080182D */ daddu $v1, $a0, $zero
/* 8FFCF0 80240680 24050004 */ addiu $a1, $zero, 4
/* 8FFCF4 80240684 3C013FE0 */ lui $at, 0x3fe0
/* 8FFCF8 80240688 44814800 */ mtc1 $at, $f9
/* 8FFCFC 8024068C 44804000 */ mtc1 $zero, $f8
/* 8FFD00 80240690 3C018025 */ lui $at, %hi(D_802483B0_907A20)
/* 8FFD04 80240694 D42683B0 */ ldc1 $f6, %lo(D_802483B0_907A20)($at)
.L80240698:
/* 8FFD08 80240698 16260004 */ bne $s1, $a2, .L802406AC
/* 8FFD0C 8024069C 00851021 */ addu $v0, $a0, $a1
/* 8FFD10 802406A0 C460006C */ lwc1 $f0, 0x6c($v1)
/* 8FFD14 802406A4 080901BE */ j .L802406F8
/* 8FFD18 802406A8 461C0000 */ add.s $f0, $f0, $f28
.L802406AC:
/* 8FFD1C 802406AC C460006C */ lwc1 $f0, 0x6c($v1)
/* 8FFD20 802406B0 C444006C */ lwc1 $f4, 0x6c($v0)
/* 8FFD24 802406B4 46002081 */ sub.s $f2, $f4, $f0
/* 8FFD28 802406B8 4602D03C */ c.lt.s $f26, $f2
/* 8FFD2C 802406BC 00000000 */ nop
/* 8FFD30 802406C0 45000003 */ bc1f .L802406D0
/* 8FFD34 802406C4 00000000 */ nop
/* 8FFD38 802406C8 080901B8 */ j .L802406E0
/* 8FFD3C 802406CC 46140000 */ add.s $f0, $f0, $f20
.L802406D0:
/* 8FFD40 802406D0 4616103C */ c.lt.s $f2, $f22
/* 8FFD44 802406D4 00000000 */ nop
/* 8FFD48 802406D8 45030001 */ bc1tl .L802406E0
/* 8FFD4C 802406DC 46142100 */ add.s $f4, $f4, $f20
.L802406E0:
/* 8FFD50 802406E0 46040000 */ add.s $f0, $f0, $f4
/* 8FFD54 802406E4 46000021 */ cvt.d.s $f0, $f0
/* 8FFD58 802406E8 46280002 */ mul.d $f0, $f0, $f8
/* 8FFD5C 802406EC 00000000 */ nop
/* 8FFD60 802406F0 46260000 */ add.d $f0, $f0, $f6
/* 8FFD64 802406F4 46200020 */ cvt.s.d $f0, $f0
.L802406F8:
/* 8FFD68 802406F8 E460006C */ swc1 $f0, 0x6c($v1)
/* 8FFD6C 802406FC 24630004 */ addiu $v1, $v1, 4
/* 8FFD70 80240700 26310001 */ addiu $s1, $s1, 1
/* 8FFD74 80240704 0234102A */ slt $v0, $s1, $s4
/* 8FFD78 80240708 1440FFE3 */ bnez $v0, .L80240698
/* 8FFD7C 8024070C 24A50004 */ addiu $a1, $a1, 4
.L80240710:
/* 8FFD80 80240710 0C090090 */ jal func_80240240_8FF8B0
/* 8FFD84 80240714 AFA70030 */ sw $a3, 0x30($sp)
/* 8FFD88 80240718 8FA70030 */ lw $a3, 0x30($sp)
/* 8FFD8C 8024071C 24E70001 */ addiu $a3, $a3, 1
/* 8FFD90 80240720 28E20004 */ slti $v0, $a3, 4
/* 8FFD94 80240724 1440FFB1 */ bnez $v0, .L802405EC
/* 8FFD98 80240728 261001E0 */ addiu $s0, $s0, 0x1e0
/* 8FFD9C 8024072C 24020001 */ addiu $v0, $zero, 1
/* 8FFDA0 80240730 3C018025 */ lui $at, %hi(D_802483D0)
/* 8FFDA4 80240734 AC2283D0 */ sw $v0, %lo(D_802483D0)($at)
/* 8FFDA8 80240738 0000382D */ daddu $a3, $zero, $zero
.L8024073C:
/* 8FFDAC 8024073C 3C02800A */ lui $v0, %hi(gMasterGfxPos)
/* 8FFDB0 80240740 2442A66C */ addiu $v0, $v0, %lo(gMasterGfxPos)
/* 8FFDB4 80240744 0040402D */ daddu $t0, $v0, $zero
/* 8FFDB8 80240748 3C090100 */ lui $t1, 0x100
/* 8FFDBC 8024074C 35294008 */ ori $t1, $t1, 0x4008
/* 8FFDC0 80240750 AFA90018 */ sw $t1, 0x18($sp)
/* 8FFDC4 80240754 3C090602 */ lui $t1, 0x602
/* 8FFDC8 80240758 35290004 */ ori $t1, $t1, 4
/* 8FFDCC 8024075C AFA9001C */ sw $t1, 0x1c($sp)
/* 8FFDD0 80240760 AFA00020 */ sw $zero, 0x20($sp)
/* 8FFDD4 80240764 8D030000 */ lw $v1, ($t0)
/* 8FFDD8 80240768 3C02E700 */ lui $v0, 0xe700
/* 8FFDDC 8024076C 0060202D */ daddu $a0, $v1, $zero
/* 8FFDE0 80240770 24630008 */ addiu $v1, $v1, 8
/* 8FFDE4 80240774 AD030000 */ sw $v1, ($t0)
/* 8FFDE8 80240778 AC820000 */ sw $v0, ($a0)
/* 8FFDEC 8024077C 24620008 */ addiu $v0, $v1, 8
/* 8FFDF0 80240780 AC800004 */ sw $zero, 4($a0)
/* 8FFDF4 80240784 AD020000 */ sw $v0, ($t0)
/* 8FFDF8 80240788 3C02DE00 */ lui $v0, 0xde00
/* 8FFDFC 8024078C AC620000 */ sw $v0, ($v1)
/* 8FFE00 80240790 3C028024 */ lui $v0, %hi(D_80241F00_901570)
/* 8FFE04 80240794 24421F00 */ addiu $v0, $v0, %lo(D_80241F00_901570)
/* 8FFE08 80240798 AC620004 */ sw $v0, 4($v1)
.L8024079C:
/* 8FFE0C 8024079C 0000202D */ daddu $a0, $zero, $zero
/* 8FFE10 802407A0 3C05FD05 */ lui $a1, 0xfd05
/* 8FFE14 802407A4 34A50F80 */ ori $a1, $a1, 0xf80
/* 8FFE18 802407A8 AFA70030 */ sw $a3, 0x30($sp)
/* 8FFE1C 802407AC 0C0B1EAF */ jal evt_get_variable
/* 8FFE20 802407B0 AFA80034 */ sw $t0, 0x34($sp)
/* 8FFE24 802407B4 0000882D */ daddu $s1, $zero, $zero
/* 8FFE28 802407B8 8FA90020 */ lw $t1, 0x20($sp)
/* 8FFE2C 802407BC 8FA80034 */ lw $t0, 0x34($sp)
/* 8FFE30 802407C0 0049A821 */ addu $s5, $v0, $t1
/* 8FFE34 802407C4 3C02DE01 */ lui $v0, 0xde01
/* 8FFE38 802407C8 C6B80094 */ lwc1 $f24, 0x94($s5)
/* 8FFE3C 802407CC 8D040000 */ lw $a0, ($t0)
/* 8FFE40 802407D0 8EB40090 */ lw $s4, 0x90($s5)
/* 8FFE44 802407D4 24890008 */ addiu $t1, $a0, 8
/* 8FFE48 802407D8 AFA90010 */ sw $t1, 0x10($sp)
/* 8FFE4C 802407DC 8EA601DC */ lw $a2, 0x1dc($s5)
/* 8FFE50 802407E0 AC820000 */ sw $v0, ($a0)
/* 8FFE54 802407E4 00061940 */ sll $v1, $a2, 5
/* 8FFE58 802407E8 24620008 */ addiu $v0, $v1, 8
/* 8FFE5C 802407EC 00821021 */ addu $v0, $a0, $v0
/* 8FFE60 802407F0 01231821 */ addu $v1, $t1, $v1
/* 8FFE64 802407F4 AC820004 */ sw $v0, 4($a0)
/* 8FFE68 802407F8 AD030000 */ sw $v1, ($t0)
/* 8FFE6C 802407FC 8FA70030 */ lw $a3, 0x30($sp)
/* 8FFE70 80240800 18C00088 */ blez $a2, .L80240A24
/* 8FFE74 80240804 0120982D */ daddu $s3, $t1, $zero
/* 8FFE78 80240808 2682FFFF */ addiu $v0, $s4, -1
/* 8FFE7C 8024080C 00021080 */ sll $v0, $v0, 2
/* 8FFE80 80240810 02A21021 */ addu $v0, $s5, $v0
/* 8FFE84 80240814 AFA20014 */ sw $v0, 0x14($sp)
/* 8FFE88 80240818 0220282D */ daddu $a1, $s1, $zero
/* 8FFE8C 8024081C 0220F02D */ daddu $fp, $s1, $zero
/* 8FFE90 80240820 0220B82D */ daddu $s7, $s1, $zero
/* 8FFE94 80240824 0220B02D */ daddu $s6, $s1, $zero
/* 8FFE98 80240828 02A0902D */ daddu $s2, $s5, $zero
/* 8FFE9C 8024082C 24900016 */ addiu $s0, $a0, 0x16
.L80240830:
/* 8FFEA0 80240830 44911000 */ mtc1 $s1, $f2
/* 8FFEA4 80240834 00000000 */ nop
/* 8FFEA8 80240838 468010A0 */ cvt.s.w $f2, $f2
/* 8FFEAC 8024083C 44940000 */ mtc1 $s4, $f0
/* 8FFEB0 80240840 00000000 */ nop
/* 8FFEB4 80240844 46800020 */ cvt.s.w $f0, $f0
/* 8FFEB8 80240848 46001082 */ mul.s $f2, $f2, $f0
/* 8FFEBC 8024084C 00000000 */ nop
/* 8FFEC0 80240850 44860000 */ mtc1 $a2, $f0
/* 8FFEC4 80240854 00000000 */ nop
/* 8FFEC8 80240858 46800020 */ cvt.s.w $f0, $f0
/* 8FFECC 8024085C C65A0098 */ lwc1 $f26, 0x98($s2)
/* 8FFED0 80240860 C65C009C */ lwc1 $f28, 0x9c($s2)
/* 8FFED4 80240864 C65E00A0 */ lwc1 $f30, 0xa0($s2)
/* 8FFED8 80240868 46001083 */ div.s $f2, $f2, $f0
/* 8FFEDC 8024086C 4600128D */ trunc.w.s $f10, $f2
/* 8FFEE0 80240870 44045000 */ mfc1 $a0, $f10
/* 8FFEE4 80240874 00000000 */ nop
/* 8FFEE8 80240878 44840000 */ mtc1 $a0, $f0
/* 8FFEEC 8024087C 00000000 */ nop
/* 8FFEF0 80240880 46800020 */ cvt.s.w $f0, $f0
/* 8FFEF4 80240884 24830001 */ addiu $v1, $a0, 1
/* 8FFEF8 80240888 0074102A */ slt $v0, $v1, $s4
/* 8FFEFC 8024088C 14400005 */ bnez $v0, .L802408A4
/* 8FFF00 80240890 46001181 */ sub.s $f6, $f2, $f0
/* 8FFF04 80240894 8FA90014 */ lw $t1, 0x14($sp)
/* 8FFF08 80240898 C536006C */ lwc1 $f22, 0x6c($t1)
/* 8FFF0C 8024089C 0809024C */ j .L80240930
/* 8FFF10 802408A0 4600B306 */ mov.s $f12, $f22
.L802408A4:
/* 8FFF14 802408A4 00031080 */ sll $v0, $v1, 2
/* 8FFF18 802408A8 02A21021 */ addu $v0, $s5, $v0
/* 8FFF1C 802408AC C444006C */ lwc1 $f4, 0x6c($v0)
/* 8FFF20 802408B0 00041080 */ sll $v0, $a0, 2
/* 8FFF24 802408B4 02A21021 */ addu $v0, $s5, $v0
/* 8FFF28 802408B8 C44C006C */ lwc1 $f12, 0x6c($v0)
/* 8FFF2C 802408BC 460C2081 */ sub.s $f2, $f4, $f12
/* 8FFF30 802408C0 3C014334 */ lui $at, 0x4334
/* 8FFF34 802408C4 44810000 */ mtc1 $at, $f0
/* 8FFF38 802408C8 00000000 */ nop
/* 8FFF3C 802408CC 4602003C */ c.lt.s $f0, $f2
/* 8FFF40 802408D0 00000000 */ nop
/* 8FFF44 802408D4 45000006 */ bc1f .L802408F0
/* 8FFF48 802408D8 00000000 */ nop
/* 8FFF4C 802408DC 3C0143B4 */ lui $at, 0x43b4
/* 8FFF50 802408E0 44815000 */ mtc1 $at, $f10
/* 8FFF54 802408E4 00000000 */ nop
/* 8FFF58 802408E8 460A2101 */ sub.s $f4, $f4, $f10
/* 8FFF5C 802408EC 460C2081 */ sub.s $f2, $f4, $f12
.L802408F0:
/* 8FFF60 802408F0 3C01C334 */ lui $at, 0xc334
/* 8FFF64 802408F4 44810000 */ mtc1 $at, $f0
/* 8FFF68 802408F8 00000000 */ nop
/* 8FFF6C 802408FC 4600103C */ c.lt.s $f2, $f0
/* 8FFF70 80240900 00000000 */ nop
/* 8FFF74 80240904 45020006 */ bc1fl .L80240920
/* 8FFF78 80240908 460C2001 */ sub.s $f0, $f4, $f12
/* 8FFF7C 8024090C 3C0143B4 */ lui $at, 0x43b4
/* 8FFF80 80240910 44815000 */ mtc1 $at, $f10
/* 8FFF84 80240914 00000000 */ nop
/* 8FFF88 80240918 460A2100 */ add.s $f4, $f4, $f10
/* 8FFF8C 8024091C 460C2001 */ sub.s $f0, $f4, $f12
.L80240920:
/* 8FFF90 80240920 46060002 */ mul.s $f0, $f0, $f6
/* 8FFF94 80240924 00000000 */ nop
/* 8FFF98 80240928 460C0580 */ add.s $f22, $f0, $f12
/* 8FFF9C 8024092C 4600B306 */ mov.s $f12, $f22
.L80240930:
/* 8FFFA0 80240930 AFA50028 */ sw $a1, 0x28($sp)
/* 8FFFA4 80240934 AFA6002C */ sw $a2, 0x2c($sp)
/* 8FFFA8 80240938 AFA70030 */ sw $a3, 0x30($sp)
/* 8FFFAC 8024093C 0C00A8BB */ jal sin_deg
/* 8FFFB0 80240940 AFA80034 */ sw $t0, 0x34($sp)
/* 8FFFB4 80240944 46180502 */ mul.s $f20, $f0, $f24
/* 8FFFB8 80240948 00000000 */ nop
/* 8FFFBC 8024094C 0C00A8D4 */ jal cos_deg
/* 8FFFC0 80240950 4600B306 */ mov.s $f12, $f22
/* 8FFFC4 80240954 46000007 */ neg.s $f0, $f0
/* 8FFFC8 80240958 46180002 */ mul.s $f0, $f0, $f24
/* 8FFFCC 8024095C 00000000 */ nop
/* 8FFFD0 80240960 4614D100 */ add.s $f4, $f26, $f20
/* 8FFFD4 80240964 4600E080 */ add.s $f2, $f28, $f0
/* 8FFFD8 80240968 4614D501 */ sub.s $f20, $f26, $f20
/* 8FFFDC 8024096C 2652000C */ addiu $s2, $s2, 0xc
/* 8FFFE0 80240970 26310001 */ addiu $s1, $s1, 1
/* 8FFFE4 80240974 4600E001 */ sub.s $f0, $f28, $f0
/* 8FFFE8 80240978 4600228D */ trunc.w.s $f10, $f4
/* 8FFFEC 8024097C 44025000 */ mfc1 $v0, $f10
/* 8FFFF0 80240980 00000000 */ nop
/* 8FFFF4 80240984 A6620000 */ sh $v0, ($s3)
/* 8FFFF8 80240988 4600128D */ trunc.w.s $f10, $f2
/* 8FFFFC 8024098C 44025000 */ mfc1 $v0, $f10
/* 900000 80240990 4600F28D */ trunc.w.s $f10, $f30
/* 900004 80240994 44035000 */ mfc1 $v1, $f10
/* 900008 80240998 26730010 */ addiu $s3, $s3, 0x10
/* 90000C 8024099C A602FFF4 */ sh $v0, -0xc($s0)
/* 900010 802409A0 A603FFF6 */ sh $v1, -0xa($s0)
/* 900014 802409A4 A616FFFA */ sh $s6, -6($s0)
/* 900018 802409A8 A600FFFC */ sh $zero, -4($s0)
/* 90001C 802409AC A217FFFE */ sb $s7, -2($s0)
/* 900020 802409B0 A21EFFFF */ sb $fp, -1($s0)
/* 900024 802409B4 8FA50028 */ lw $a1, 0x28($sp)
/* 900028 802409B8 4600A28D */ trunc.w.s $f10, $f20
/* 90002C 802409BC 44025000 */ mfc1 $v0, $f10
/* 900030 802409C0 A2050000 */ sb $a1, ($s0)
/* 900034 802409C4 26100010 */ addiu $s0, $s0, 0x10
/* 900038 802409C8 A6620000 */ sh $v0, ($s3)
/* 90003C 802409CC 4600028D */ trunc.w.s $f10, $f0
/* 900040 802409D0 44025000 */ mfc1 $v0, $f10
/* 900044 802409D4 00000000 */ nop
/* 900048 802409D8 A602FFF4 */ sh $v0, -0xc($s0)
/* 90004C 802409DC 24020400 */ addiu $v0, $zero, 0x400
/* 900050 802409E0 A603FFF6 */ sh $v1, -0xa($s0)
/* 900054 802409E4 A616FFFA */ sh $s6, -6($s0)
/* 900058 802409E8 A602FFFC */ sh $v0, -4($s0)
/* 90005C 802409EC A217FFFE */ sb $s7, -2($s0)
/* 900060 802409F0 A21EFFFF */ sb $fp, -1($s0)
/* 900064 802409F4 A2050000 */ sb $a1, ($s0)
/* 900068 802409F8 26100010 */ addiu $s0, $s0, 0x10
/* 90006C 802409FC 26730010 */ addiu $s3, $s3, 0x10
/* 900070 80240A00 24A5001E */ addiu $a1, $a1, 0x1e
/* 900074 80240A04 27DE0078 */ addiu $fp, $fp, 0x78
/* 900078 80240A08 26F70032 */ addiu $s7, $s7, 0x32
/* 90007C 80240A0C 8FA6002C */ lw $a2, 0x2c($sp)
/* 900080 80240A10 8FA70030 */ lw $a3, 0x30($sp)
/* 900084 80240A14 8FA80034 */ lw $t0, 0x34($sp)
/* 900088 80240A18 0226102A */ slt $v0, $s1, $a2
/* 90008C 80240A1C 1440FF84 */ bnez $v0, .L80240830
/* 900090 80240A20 26D60140 */ addiu $s6, $s6, 0x140
.L80240A24:
/* 900094 80240A24 24C5FFFF */ addiu $a1, $a2, -1
/* 900098 80240A28 18A00014 */ blez $a1, .L80240A7C
/* 90009C 80240A2C 0000882D */ daddu $s1, $zero, $zero
/* 9000A0 80240A30 3C060002 */ lui $a2, 2
/* 9000A4 80240A34 34C60406 */ ori $a2, $a2, 0x406
/* 9000A8 80240A38 8FA40010 */ lw $a0, 0x10($sp)
.L80240A3C:
/* 9000AC 80240A3C 8D030000 */ lw $v1, ($t0)
/* 9000B0 80240A40 26310001 */ addiu $s1, $s1, 1
/* 9000B4 80240A44 0060102D */ daddu $v0, $v1, $zero
/* 9000B8 80240A48 24630008 */ addiu $v1, $v1, 8
/* 9000BC 80240A4C AC440004 */ sw $a0, 4($v0)
/* 9000C0 80240A50 AD030000 */ sw $v1, ($t0)
/* 9000C4 80240A54 8FA90018 */ lw $t1, 0x18($sp)
/* 9000C8 80240A58 24840020 */ addiu $a0, $a0, 0x20
/* 9000CC 80240A5C AC490000 */ sw $t1, ($v0)
/* 9000D0 80240A60 24620008 */ addiu $v0, $v1, 8
/* 9000D4 80240A64 AD020000 */ sw $v0, ($t0)
/* 9000D8 80240A68 8FA9001C */ lw $t1, 0x1c($sp)
/* 9000DC 80240A6C 0225102A */ slt $v0, $s1, $a1
/* 9000E0 80240A70 AC660004 */ sw $a2, 4($v1)
/* 9000E4 80240A74 1440FFF1 */ bnez $v0, .L80240A3C
/* 9000E8 80240A78 AC690000 */ sw $t1, ($v1)
.L80240A7C:
/* 9000EC 80240A7C 24E70001 */ addiu $a3, $a3, 1
/* 9000F0 80240A80 8FA90020 */ lw $t1, 0x20($sp)
/* 9000F4 80240A84 28E20004 */ slti $v0, $a3, 4
/* 9000F8 80240A88 252901E0 */ addiu $t1, $t1, 0x1e0
/* 9000FC 80240A8C 1440FF43 */ bnez $v0, .L8024079C
/* 900100 80240A90 AFA90020 */ sw $t1, 0x20($sp)
/* 900104 80240A94 3C03800A */ lui $v1, %hi(gMasterGfxPos)
/* 900108 80240A98 2463A66C */ addiu $v1, $v1, %lo(gMasterGfxPos)
/* 90010C 80240A9C 8C620000 */ lw $v0, ($v1)
/* 900110 80240AA0 0040202D */ daddu $a0, $v0, $zero
/* 900114 80240AA4 24420008 */ addiu $v0, $v0, 8
/* 900118 80240AA8 AC620000 */ sw $v0, ($v1)
/* 90011C 80240AAC 3C02E700 */ lui $v0, 0xe700
/* 900120 80240AB0 AC820000 */ sw $v0, ($a0)
/* 900124 80240AB4 AC800004 */ sw $zero, 4($a0)
.L80240AB8:
/* 900128 80240AB8 8FBF005C */ lw $ra, 0x5c($sp)
/* 90012C 80240ABC 8FBE0058 */ lw $fp, 0x58($sp)
/* 900130 80240AC0 8FB70054 */ lw $s7, 0x54($sp)
/* 900134 80240AC4 8FB60050 */ lw $s6, 0x50($sp)
/* 900138 80240AC8 8FB5004C */ lw $s5, 0x4c($sp)
/* 90013C 80240ACC 8FB40048 */ lw $s4, 0x48($sp)
/* 900140 80240AD0 8FB30044 */ lw $s3, 0x44($sp)
/* 900144 80240AD4 8FB20040 */ lw $s2, 0x40($sp)
/* 900148 80240AD8 8FB1003C */ lw $s1, 0x3c($sp)
/* 90014C 80240ADC 8FB00038 */ lw $s0, 0x38($sp)
/* 900150 80240AE0 D7BE0088 */ ldc1 $f30, 0x88($sp)
/* 900154 80240AE4 D7BC0080 */ ldc1 $f28, 0x80($sp)
/* 900158 80240AE8 D7BA0078 */ ldc1 $f26, 0x78($sp)
/* 90015C 80240AEC D7B80070 */ ldc1 $f24, 0x70($sp)
/* 900160 80240AF0 D7B60068 */ ldc1 $f22, 0x68($sp)
/* 900164 80240AF4 D7B40060 */ ldc1 $f20, 0x60($sp)
/* 900168 80240AF8 03E00008 */ jr $ra
/* 90016C 80240AFC 27BD0090 */ addiu $sp, $sp, 0x90

View File

@ -1,101 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80240BA8_900218
/* 900218 80240BA8 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 90021C 80240BAC AFB10014 */ sw $s1, 0x14($sp)
/* 900220 80240BB0 0080882D */ daddu $s1, $a0, $zero
/* 900224 80240BB4 AFBF0018 */ sw $ra, 0x18($sp)
/* 900228 80240BB8 AFB00010 */ sw $s0, 0x10($sp)
/* 90022C 80240BBC 8E30000C */ lw $s0, 0xc($s1)
/* 900230 80240BC0 8E050000 */ lw $a1, ($s0)
/* 900234 80240BC4 0C0B1EAF */ jal evt_get_variable
/* 900238 80240BC8 26100004 */ addiu $s0, $s0, 4
/* 90023C 80240BCC 0220202D */ daddu $a0, $s1, $zero
/* 900240 80240BD0 8E050000 */ lw $a1, ($s0)
/* 900244 80240BD4 0C0B1EAF */ jal evt_get_variable
/* 900248 80240BD8 0040802D */ daddu $s0, $v0, $zero
/* 90024C 80240BDC 0040202D */ daddu $a0, $v0, $zero
/* 900250 80240BE0 24020001 */ addiu $v0, $zero, 1
/* 900254 80240BE4 12020019 */ beq $s0, $v0, .L80240C4C
/* 900258 80240BE8 2A020002 */ slti $v0, $s0, 2
/* 90025C 80240BEC 10400005 */ beqz $v0, .L80240C04
/* 900260 80240BF0 24020002 */ addiu $v0, $zero, 2
/* 900264 80240BF4 12000009 */ beqz $s0, .L80240C1C
/* 900268 80240BF8 00041840 */ sll $v1, $a0, 1
/* 90026C 80240BFC 0809033D */ j .L80240CF4
/* 900270 80240C00 00000000 */ nop
.L80240C04:
/* 900274 80240C04 1202001F */ beq $s0, $v0, .L80240C84
/* 900278 80240C08 24020003 */ addiu $v0, $zero, 3
/* 90027C 80240C0C 1202002B */ beq $s0, $v0, .L80240CBC
/* 900280 80240C10 3C068020 */ lui $a2, 0x8020
/* 900284 80240C14 0809033D */ j .L80240CF4
/* 900288 80240C18 00000000 */ nop
.L80240C1C:
/* 90028C 80240C1C 3C028024 */ lui $v0, %hi(D_80241FE0_901650)
/* 900290 80240C20 24421FE0 */ addiu $v0, $v0, %lo(D_80241FE0_901650)
/* 900294 80240C24 00641821 */ addu $v1, $v1, $a0
/* 900298 80240C28 00032080 */ sll $a0, $v1, 2
/* 90029C 80240C2C 00822021 */ addu $a0, $a0, $v0
/* 9002A0 80240C30 24630001 */ addiu $v1, $v1, 1
/* 9002A4 80240C34 00031880 */ sll $v1, $v1, 2
/* 9002A8 80240C38 00621821 */ addu $v1, $v1, $v0
/* 9002AC 80240C3C 8C840000 */ lw $a0, ($a0)
/* 9002B0 80240C40 8C650000 */ lw $a1, ($v1)
/* 9002B4 80240C44 0809033B */ j .L80240CEC
/* 9002B8 80240C48 3C068020 */ lui $a2, 0x8020
.L80240C4C:
/* 9002BC 80240C4C 3C068020 */ lui $a2, 0x8020
/* 9002C0 80240C50 3C028024 */ lui $v0, %hi(D_80241FE0_901650)
/* 9002C4 80240C54 24421FE0 */ addiu $v0, $v0, %lo(D_80241FE0_901650)
/* 9002C8 80240C58 00041840 */ sll $v1, $a0, 1
/* 9002CC 80240C5C 00641821 */ addu $v1, $v1, $a0
/* 9002D0 80240C60 00032080 */ sll $a0, $v1, 2
/* 9002D4 80240C64 00822021 */ addu $a0, $a0, $v0
/* 9002D8 80240C68 24630001 */ addiu $v1, $v1, 1
/* 9002DC 80240C6C 00031880 */ sll $v1, $v1, 2
/* 9002E0 80240C70 00621821 */ addu $v1, $v1, $v0
/* 9002E4 80240C74 8C840000 */ lw $a0, ($a0)
/* 9002E8 80240C78 8C650000 */ lw $a1, ($v1)
/* 9002EC 80240C7C 0809033B */ j .L80240CEC
/* 9002F0 80240C80 34C64000 */ ori $a2, $a2, 0x4000
.L80240C84:
/* 9002F4 80240C84 3C068020 */ lui $a2, 0x8020
/* 9002F8 80240C88 3C028024 */ lui $v0, %hi(D_80241FE0_901650)
/* 9002FC 80240C8C 24421FE0 */ addiu $v0, $v0, %lo(D_80241FE0_901650)
/* 900300 80240C90 00041840 */ sll $v1, $a0, 1
/* 900304 80240C94 00641821 */ addu $v1, $v1, $a0
/* 900308 80240C98 00032080 */ sll $a0, $v1, 2
/* 90030C 80240C9C 00822021 */ addu $a0, $a0, $v0
/* 900310 80240CA0 24630001 */ addiu $v1, $v1, 1
/* 900314 80240CA4 00031880 */ sll $v1, $v1, 2
/* 900318 80240CA8 00621821 */ addu $v1, $v1, $v0
/* 90031C 80240CAC 8C840000 */ lw $a0, ($a0)
/* 900320 80240CB0 8C650000 */ lw $a1, ($v1)
/* 900324 80240CB4 0809033B */ j .L80240CEC
/* 900328 80240CB8 34C67000 */ ori $a2, $a2, 0x7000
.L80240CBC:
/* 90032C 80240CBC 3C028024 */ lui $v0, %hi(D_80241FE0_901650)
/* 900330 80240CC0 24421FE0 */ addiu $v0, $v0, %lo(D_80241FE0_901650)
/* 900334 80240CC4 00041840 */ sll $v1, $a0, 1
/* 900338 80240CC8 00641821 */ addu $v1, $v1, $a0
/* 90033C 80240CCC 00032080 */ sll $a0, $v1, 2
/* 900340 80240CD0 00822021 */ addu $a0, $a0, $v0
/* 900344 80240CD4 24630001 */ addiu $v1, $v1, 1
/* 900348 80240CD8 00031880 */ sll $v1, $v1, 2
/* 90034C 80240CDC 00621821 */ addu $v1, $v1, $v0
/* 900350 80240CE0 8C840000 */ lw $a0, ($a0)
/* 900354 80240CE4 8C650000 */ lw $a1, ($v1)
/* 900358 80240CE8 34C6A000 */ ori $a2, $a2, 0xa000
.L80240CEC:
/* 90035C 80240CEC 0C00A5CF */ jal dma_copy
/* 900360 80240CF0 00000000 */ nop
.L80240CF4:
/* 900364 80240CF4 8FBF0018 */ lw $ra, 0x18($sp)
/* 900368 80240CF8 8FB10014 */ lw $s1, 0x14($sp)
/* 90036C 80240CFC 8FB00010 */ lw $s0, 0x10($sp)
/* 900370 80240D00 24020002 */ addiu $v0, $zero, 2
/* 900374 80240D04 03E00008 */ jr $ra
/* 900378 80240D08 27BD0020 */ addiu $sp, $sp, 0x20
/* 90037C 80240D0C 00000000 */ nop

View File

@ -16423,18 +16423,18 @@ func_80240000_8FF670 = 0x80240000; // type:func rom:0x8FF670
func_80240010_8FF680 = 0x80240010; // type:func rom:0x8FF680
func_802401E0_8FF850 = 0x802401E0; // type:func rom:0x8FF850
func_80240208_8FF878 = 0x80240208; // type:func rom:0x8FF878
func_80240240_8FF8B0 = 0x80240240; // type:func rom:0x8FF8B0
func_80240314_8FF984 = 0x80240314; // type:func rom:0x8FF984
func_80240418_8FFA88 = 0x80240418; // type:func rom:0x8FFA88
func_802404E4_8FFB54 = 0x802404E4; // type:func rom:0x8FFB54
func_8024056C_8FFBDC = 0x8024056C; // type:func rom:0x8FFBDC
func_80240B00_900170 = 0x80240B00; // type:func rom:0x900170
func_80240B3C_9001AC = 0x80240B3C; // type:func rom:0x9001AC
func_80240B4C_9001BC = 0x80240B4C; // type:func rom:0x9001BC
func_80240BA8_900218 = 0x80240BA8; // type:func rom:0x900218
kmr_22_make_vine_interpolation = 0x80240240; // type:func rom:0x8FF8B0
kmr_22_SetVineBonePos = 0x80240314; // type:func rom:0x8FF984
kmr_22_SetVineBoneRot = 0x80240418; // type:func rom:0x8FFA88
kmr_22_SetVineBoneScale = 0x802404E4; // type:func rom:0x8FFB54
kmr_22_appendGfx_piranha_vines = 0x8024056C; // type:func rom:0x8FFBDC
kmr_22_worker_render_piranha_vines = 0x80240B00; // type:func rom:0x900170
kmr_22_MarkVineInterpolationDirty = 0x80240B3C; // type:func rom:0x9001AC
kmr_22_CreateVineRenderer = 0x80240B4C; // type:func rom:0x9001BC
kmr_22_LoadAnimationFromTable = 0x80240BA8; // type:func rom:0x900218
D_80240DE0_900450 = 0x80240DE0; // type:data rom:0x900450
D_80241F00_901570 = 0x80241F00; // type:data rom:0x901570
D_80241FE0_901650 = 0x80241FE0; // type:data rom:0x901650
kmr_22_lava_piranha_vine_gfx = 0x80241F00; // type:data rom:0x901570
kmr_22_VineAnimationsDmaTable = 0x80241FE0; // type:data rom:0x901650
D_802483B0_907A20 = 0x802483B0; // type:data rom:0x907A20
kmr_23_map_init = 0x80240000; // type:func rom:0x907A30
kmr_23_func_80240010_907A40 = 0x80240010; // type:func rom:0x907A40
@ -26390,7 +26390,7 @@ kzn_19_VineRenderState = 0x80248380; // type:data
dead_kzn_19_D_80248388 = 0x80248388; // type:data
D_802483C0 = 0x802483C0; // type:data
D_802483C4 = 0x802483C4; // type:data
D_802483D0 = 0x802483D0; // type:data
kmr_22_VineRenderState = 0x802483D0; // type:data
iwa_10_D_80248480 = 0x80248480; // type:data
dead_kzn_19_LetterDelivery_SavedNpcAnim = 0x8024854C; // type:data
kzn_19_LetterDelivery_SavedNpcAnim = 0x8024854C; // type:data

View File

@ -269,7 +269,7 @@ D_80247D00 = 0x80247D00;
D_80247E68 = 0x80247E68;
D_802483C0 = 0x802483C0;
D_802483C4 = 0x802483C4;
D_802483D0 = 0x802483D0;
kmr_22_VineRenderState = 0x802483D0;
iwa_10_D_80248480 = 0x80248480;
D_80248600 = 0x80248600;
D_80248624 = 0x80248624;