Effect, map decomp (#877)

* snaking_static_appendGfx, gfx migration, cleanup

* more decomp + data stuff

* fix for Light

* map funcs

* 2 obk_07

* 4 mor

* fixes

* message IDs
This commit is contained in:
Ethan Roseman 2022-12-05 18:53:46 -05:00 committed by GitHub
parent 703896a7f1
commit 5b63159eaf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
41 changed files with 1045 additions and 2977 deletions

View File

@ -333,7 +333,7 @@ typedef struct PlayerData {
/* 0x298 */ u16 hitsTaken;
/* 0x29A */ u16 hitsBlocked;
/* 0x29C */ u16 playerFirstStrikes;
/* 0x29E */ s16 enemyFirstStrikes;
/* 0x29E */ u16 enemyFirstStrikes;
/* 0x2A0 */ u16 powerBounces;
/* 0x2A2 */ u16 battlesCount;
/* 0x2A4 */ u16 battlesWon;
@ -346,13 +346,13 @@ typedef struct PlayerData {
/* 0x2B8 */ s16 idleFrameCounter; /* frames with no inputs, overflows ever ~36 minutes of idling */
/* 0x2BA */ char unk_2BA[2];
/* 0x2BC */ u32 frameCounter; /* increases by 2 per frame */
/* 0x2C0 */ s16 quizzesAnswered;
/* 0x2C2 */ s16 quizzesCorrect;
/* 0x2C0 */ u16 quizzesAnswered;
/* 0x2C2 */ u16 quizzesCorrect;
/* 0x2C4 */ s32 partnerUnlockedTime[12];
/* 0x2F4 */ s32 partnerUsedTime[12];
/* 0x324 */ s32 tradeEventStartTime;
/* 0x328 */ s32 droTreeHintTime;
/* 0x32C */ s16 starPiecesCollected;
/* 0x32C */ u16 starPiecesCollected;
/* 0x32E */ u16 jumpGamePlays;
/* 0x330 */ u32 jumpGameTotal; /* all-time winnings, max = 99999 */
/* 0x334 */ u16 jumpGameRecord;

View File

@ -2507,12 +2507,10 @@ typedef struct SomethingRotatingFXData {
/* 0x18 */ f32 unk_18;
/* 0x1C */ f32 unk_1C;
/* 0x20 */ f32 unk_20;
/* 0x24 */ u8 unk_24;
/* 0x24 */ u8 primAlpha;
/* 0x25 */ s8 unk_25;
/* 0x26 */ u8 unk_26;
/* 0x27 */ u8 unk_27;
/* 0x28 */ u8 unk_28;
/* 0x29 */ u8 unk_29;
/* 0x26 */ Color_RGB8 env;
/* 0x29 */ u8 state;
/* 0x2A */ char unk_2A[2];
/* 0x2C */ f32 unk_2C;
} SomethingRotatingFXData; // size = 0x30

View File

@ -156,14 +156,14 @@ AuResult au_bgm_dispatch_player_event(SongUpdateEvent* event) {
}
}
volume0 = event->startVolume;
if (volume0 >= 0x80) {
if (volume0 > 0x7F) {
volume0 = 0x7F;
}
if (volume0 != 0) {
volume0 = (volume0 << 8) | 0xFF;
}
volume1 = event->finalVolume;
if (volume1 >= 0x80) {
if (volume1 > 0x7F) {
volume1 = 0x7F;
}
if (volume1 != 0) {
@ -1001,10 +1001,10 @@ if (track->detourLength != 0) {\
}
void au_bgm_player_update_playing(BGMPlayer *player) {
s32 bVolumeFading; // SP + 10
u8 sp1F; // SP + 1F
s16 notePitch; // SP + 26
u8 bFinished; // SP + 28
s32 bVolumeFading;
u8 sp1F;
s16 notePitch;
u8 bFinished;
AlUnkVoice* voice;
BGMDrumInfo* drumInfo;

View File

@ -114,7 +114,7 @@ EffectTableEntry gEffectTable[] = {
/* 0x54 */ FX_ENTRY(quizmo_audience, effect_gfx_quizmo_audience),
/* 0x55 */ FX_ENTRY(butterflies, effect_gfx_butterflies),
/* 0x56 */ FX_ENTRY(stat_change, effect_gfx_stat_change),
/* 0x57 */ FX_ENTRY(snaking_static, _3B2D90),
/* 0x57 */ FX_ENTRY(snaking_static, effect_gfx_snaking_static),
/* 0x58 */ FX_ENTRY(thunderbolt_ring, effect_gfx_thunderbolt_ring),
/* 0x59 */ FX_ENTRY(squirt, _3B5340),
/* 0x5A */ FX_ENTRY(water_block, _3B6BF0),
@ -150,9 +150,9 @@ EffectTableEntry gEffectTable[] = {
/* 0x78 */ FX_ENTRY(peach_star_beam, effect_gfx_peach_star_beam),
/* 0x79 */ FX_ENTRY(chapter_change, effect_gfx_chapter_change),
/* 0x7A */ FX_ENTRY(ice_shard, effect_gfx_ice_shard),
/* 0x7B */ FX_ENTRY(spirit_card, _3FA4B0),
/* 0x7B */ FX_ENTRY(spirit_card, effect_gfx_spirit_card),
/* 0x7C */ FX_ENTRY(lil_oink, effect_gfx_lil_oink),
/* 0x7D */ FX_ENTRY(something_rotating, _3FA4B0),
/* 0x7D */ FX_ENTRY(something_rotating, effect_gfx_spirit_card),
/* 0x7E */ FX_ENTRY(breaking_junk, effect_gfx_breaking_junk),
/* 0x7F */ FX_ENTRY(partner_buff, _404F40),
/* 0x80 */ FX_ENTRY(quizmo_assistant, effect_gfx_quizmo_assistant),

View File

@ -0,0 +1,4 @@
#include "effects/gfx/D_09000000_3B2D90.png.inc.c"
#include "effects/gfx/D_09001000_3B3D90.gfx.inc.c"
#include "effects/gfx/D_090010B8_3B3E48.vtx.inc.c"
#include "effects/gfx/D_090010F8_3B3E88.gfx.inc.c"

View File

@ -0,0 +1,94 @@
#include "PR/gbi.h"
#include "effects/gfx/star_cards/card_front.png.inc.c"
#include "effects/gfx/star_cards/card_front.pal.inc.c"
char D_09000220_3FA6D0[0x1E0] = { 0 };
#include "effects/gfx/star_cards/card_back.png.inc.c"
#include "effects/gfx/star_cards/card_back.pal.inc.c"
char D_09000820_3FACD0[0x1E0] = { 0 };
#include "effects/gfx/star_cards/wave.png.inc.c"
#include "effects/gfx/star_cards/wave.pal.inc.c"
char D_09000C20_3FB0D0[0x1E0] = { 0 };
#include "effects/gfx/star_cards/squares.png.inc.c"
#include "effects/gfx/star_cards/squares.pal.inc.c"
char D_09000EA0_3FB350[0x1E0] = { 0 };
#include "effects/gfx/star_cards/eldstar.png.inc.c"
#include "effects/gfx/star_cards/eldstar.pal.inc.c"
char D_09001520_3FB9D0[0x1E0] = { 0 };
#include "effects/gfx/star_cards/mamar.png.inc.c"
#include "effects/gfx/star_cards/mamar.pal.inc.c"
char D_09001BA0_3FC050[0x1E0] = { 0 };
#include "effects/gfx/star_cards/skolar.png.inc.c"
#include "effects/gfx/star_cards/skolar.pal.inc.c"
char D_09002220_3FC6D0[0x1E0] = { 0 };
#include "effects/gfx/star_cards/muskular.png.inc.c"
#include "effects/gfx/star_cards/muskular.pal.inc.c"
char D_090028A0_3FCD50[0x1E0] = { 0 };
#include "effects/gfx/star_cards/misstar.png.inc.c"
#include "effects/gfx/star_cards/misstar.pal.inc.c"
char D_09002F20_3FD3D0[0x1E0] = { 0 };
#include "effects/gfx/star_cards/klevar.png.inc.c"
#include "effects/gfx/star_cards/klevar.pal.inc.c"
char D_090035A0_3FDA50[0x1E0] = { 0 };
#include "effects/gfx/star_cards/kalmar.png.inc.c"
#include "effects/gfx/star_cards/kalmar.pal.inc.c"
char D_09003C20_3FE0D0[0x1E0] = { 0 };
#include "effects/gfx/D_09003E00_3FE2B0.vtx.inc.c"
Lights1 D_09003F80_3FE430 = gdSPDefLights1(200, 200, 200, 255, 255, 255, 231, 93, 82);
#include "effects/gfx/D_09003F98_3FE448.gfx.inc.c"
#include "effects/gfx/D_09004010_3FE4C0.gfx.inc.c"
#include "effects/gfx/D_09004088_3FE538.gfx.inc.c"
#include "effects/gfx/D_09004100_3FE5B0.gfx.inc.c"
#include "effects/gfx/D_09004178_3FE628.gfx.inc.c"
#include "effects/gfx/D_090041F0_3FE6A0.gfx.inc.c"
#include "effects/gfx/D_09004268_3FE718.gfx.inc.c"
//#include "effects/gfx/D_090042E0_3FE790.gfx.inc.c"
Gfx D_090042E0_3FE790[] = {
gsDPPipeSync(),
gsSPTexture(0xFFFF, 0xFFFF, 0x0, G_TX_RENDERTILE, G_ON),
gsDPSetCycleType(G_CYC_2CYCLE),
gsDPSetTexturePersp(G_TP_PERSP),
gsDPSetTextureDetail(G_TD_CLAMP),
gsDPSetTextureLOD(G_TL_TILE),
gsDPSetTextureFilter(G_TF_BILERP),
gsDPSetTextureConvert(G_TC_FILT),
gsDPSetDepthSource(G_ZS_PIXEL),
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_TEX_EDGE2),
gsSPSetLights1(D_09003F80_3FE430),
gsSPClearGeometryMode(G_CULL_BOTH),
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_LIGHTING | G_SHADING_SMOOTH),
gsSPEndDisplayList(),
};
#include "effects/gfx/D_09004360_3FE810.gfx.inc.c"
#include "effects/gfx/D_090043D8_3FE888.vtx.inc.c"
#include "effects/gfx/D_09004418_3FE8C8.gfx.inc.c"
#include "effects/gfx/D_09004438_3FE8E8.gfx.inc.c"
#include "effects/gfx/D_09004458_3FE908.gfx.inc.c"
#include "effects/gfx/D_09004508_3FE9B8.gfx.inc.c"
#include "effects/gfx/D_09004600_3FEAB0.gfx.inc.c"

View File

@ -1,11 +1,13 @@
#include "common.h"
#include "effects_internal.h"
void snaking_static_appendGfx(void* effect);
void snaking_static_update(EffectInstance*);
void snaking_static_init(EffectInstance* effect);
void snaking_static_render(EffectInstance* effect);
void snaking_static_appendGfx(void* effect);
extern Gfx D_09001000_3B3D90[];
extern Gfx D_090010F8_3B3E88[];
EffectInstance* snaking_static_main(s32 arg0, f32 posX, f32 posY, f32 posZ, f32 arg4, s32 timeLeft) {
EffectBlueprint effectBp;
@ -156,4 +158,50 @@ void snaking_static_render(EffectInstance* effect) {
void func_E00AE544(void) {
}
INCLUDE_ASM(s32, "effects/snaking_static", snaking_static_appendGfx);
void snaking_static_appendGfx(void* effect) {
EffectInstance* effectTemp = effect;
SnakingStaticFXData* data = effectTemp->data.snakingStatic;
Camera* camera = &gCameras[gCurrentCameraID];
Matrix4f sp18, sp58;
s32 lifeTime = data->lifeTime;
s32 unk_24 = data->unk_24;
s32 primR = data->unk_18;
s32 primG = data->unk_1C;
s32 primB = data->unk_20;
s32 i;
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
shim_guTranslateF(sp18, data->pos.x, data->pos.y, data->pos.z);
shim_guScaleF(sp58, data->unk_38, data->unk_38, data->unk_38);
shim_guMtxCatF(sp58, sp18, sp18);
shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPMatrix(gMasterGfxPos++, camera->unkMatrix, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gDPSetEnvColor(gMasterGfxPos++, data->unk_28, data->unk_2C, data->unk_30, 0);
gSPDisplayList(gMasterGfxPos++, D_09001000_3B3D90);
data++;
for (i = 1; i < ((EffectInstance*)effect)->numParts; i++, data++) {
gDPSetPrimColor(gMasterGfxPos++, 0, 0, primR, primG, primB, (data->unk_24 * unk_24) / 255);
shim_guTranslateF(sp18, data->pos.x, data->pos.y, 0.0f);
shim_guRotateF(sp58, data->unk_3C, 0.0f, 0.0f, 1.0f);
shim_guMtxCatF(sp58, sp18, sp18);
shim_guScaleF(sp58, data->unk_34 * 0.0625f, data->unk_34 * 0.0625f, 1.0f);
shim_guMtxCatF(sp58, sp18, sp18);
shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gDPSetTileSize(gMasterGfxPos++, G_TX_RENDERTILE, data->unk_40 * 64, 0, (data->unk_40 * 64) | 0x3C, 0x007C);
gDPSetTileSize(gMasterGfxPos++, 1, (lifeTime * 12), 0, ((lifeTime * 3) + 0x1F) * 4, 0x007C);
gSPDisplayList(gMasterGfxPos++, D_090010F8_3B3E88);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}
gDPSetAlphaCompare(gMasterGfxPos++, G_AC_NONE);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}

View File

@ -1,30 +1,31 @@
#include "common.h"
#include "effects_internal.h"
extern Gfx D_09003F98[];
extern Gfx D_09004010[];
extern Gfx D_09004088[];
extern Gfx D_09004100[];
extern Gfx D_09004178[];
extern Gfx D_090041F0[];
extern Gfx D_09004268[];
extern Gfx D_09004360[];
extern Gfx D_09004458[];
extern Gfx D_09004508[];
extern Gfx D_09004600[];
extern Gfx D_09003F98_3FE448[];
extern Gfx D_09004010_3FE4C0[];
extern Gfx D_09004088_3FE538[];
extern Gfx D_09004100_3FE5B0[];
extern Gfx D_09004178_3FE628[];
extern Gfx D_090041F0_3FE6A0[];
extern Gfx D_09004268_3FE718[];
extern Gfx D_090042E0_3FE790[];
extern Gfx D_09004360_3FE810[];
extern Gfx D_09004458_3FE908[];
extern Gfx D_09004508_3FE9B8[];
extern Gfx D_09004600_3FEAB0[];
Gfx* D_E0116C60[] = { D_09004458 };
Gfx* D_E0116C60[] = { D_09004458_3FE908 };
Gfx* D_E0116C64[] = { D_09004600 };
Gfx* D_E0116C64[] = { D_09004600_3FEAB0 };
Gfx* D_E0116C68[] = { D_09004360 };
Gfx* D_E0116C68[] = { D_09004360_3FE810 };
Gfx* D_E0116C6C[] = { D_09004508 };
Gfx* D_E0116C6C[] = { D_09004508_3FE9B8 };
Gfx* D_E0116C70[] = {
D_09003F98, D_09004010, D_09004088,
D_09004100, D_09004178, D_090041F0,
D_09004268
D_09003F98_3FE448, D_09004010_3FE4C0, D_09004088_3FE538,
D_09004100_3FE5B0, D_09004178_3FE628, D_090041F0_3FE6A0,
D_09004268_3FE718
};
Color_RGB8 D_E0116C8C[] = {
@ -39,38 +40,32 @@ Color_RGB8 D_E0116C8C[] = {
};
s16 D_E0116CA4[] = {
0x0000, 0x003C, 0x0078, 0x00B4, 0x00F0, 0x012C, 0x0000, 0x003C, 0x0078, 0x00B4,
0x00F0, 0x012C, 0x0000, 0x003C, 0x0078, 0x00B4, 0x00F0, 0x012C, 0x0000, 0x003C,
0x0078, 0x00B4, 0x00F0, 0x012C, 0x0000, 0x001E, 0x003C, 0x005A, 0x0078, 0x0096,
0x00B4, 0x00D2, 0x00F0, 0x010E, 0x012C, 0x014A, 0x0159, 0x0161, 0x0165, 0x0167,
0x0000
0, 60, 120, 180, 240, 300,
0, 60, 120, 180, 240, 300,
0, 60, 120, 180, 240, 300,
0, 60, 120, 180, 240, 300,
0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330, 345, 353, 357, 359,
0
};
s8 D_E0116CF8[] = {
0x02, 0x14, 0x28, 0x3C, 0x50, 0x64, 0x78, 0xA0, 0xB4, 0xC8, 0xDC, 0xF0, 0xFF
u8 D_E0116CF8[] = {
2, 20, 40, 60, 80, 100, 120, 160, 180, 200, 220, 240, 255
};
s8 D_E0116D08[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x14, 0x28, 0x3C, 0x50, 0x64, 0x78, 0xA0, 0xB4, 0xC8, 0xDC,
0xF0, 0xFF
u8 D_E0116D08[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 20, 40, 60, 80, 100, 120, 160, 180, 200, 220, 240, 255
};
u8 D_E0116D3C[] = {
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0xB9, 0xA5,
0x94, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1,
0xB9, 0xA5, 0x94, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xE1, 0xB9, 0xA5, 0x94, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xE1, 0xB9, 0xA5, 0x94, 0x80
255, 255, 255, 255, 255, 255, 255, 225, 185, 165, 148, 128,
255, 255, 255, 255, 255, 255, 255, 225, 185, 165, 148, 128,
255, 255, 255, 255, 255, 255, 255, 225, 185, 165, 148, 128,
255, 255, 255, 255, 255, 255, 255, 225, 185, 165, 148, 128
};
u8 D_E0116D6C[] = {
0x32, 0x50, 0x64, 0x69, 0x6B, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C,
0x6C, 0x6B, 0x69, 0x64, 0x5F, 0x5A, 0x55, 0x50, 0x4B, 0x46,
0x41, 0x3C, 0x37, 0x32
50, 80, 100, 105, 107, 108, 108, 108, 108, 108, 108, 107, 105, 100, 95, 90, 85, 80, 75, 70, 65, 60, 55, 50
};
void something_rotating_init(EffectInstance* effect);
@ -120,15 +115,15 @@ EffectInstance* something_rotating_main(
part++;
for (i = 1; i < numParts; i++, part++) {
part->unk_24 = 0;
part->primAlpha = 0;
part->unk_18 = arg4 * 0.5;
part->unk_26 = 255;
part->unk_27 = 255;
part->unk_28 = 0;
part->env.r = 255;
part->env.g = 255;
part->env.b = 0;
part->unk_25 = 0;
part->unk_1C = 30.0f;
part->unk_20 = 0;
part->unk_29 = 0;
part->state = 0;
part->unk_2C = 50.0f;
}
@ -179,12 +174,12 @@ void something_rotating_update(EffectInstance* effect) {
part->unk_08 = unk_08 + temp_f22 * shim_cos_deg(angle2);
part->unk_0C = unk_0C + temp_f22 * shim_cos_deg(angle1) * temp_f24;
switch (part->unk_29 - 1) {
case 0:
part->unk_14 = 0;
part->unk_29++;
// fallthrough
switch (part->state) {
case 1:
part->unk_14 = 0;
part->state++;
// fallthrough
case 2:
unk_14_2 = part->unk_14;
if (unk_14_2 < ARRAY_COUNT(D_E0116CA4)) {
@ -193,9 +188,9 @@ void something_rotating_update(EffectInstance* effect) {
part->unk_20 = D_E0116CA4[ARRAY_COUNT(D_E0116CA4) - 1];
}
if (unk_14_2 < ARRAY_COUNT(D_E0116CF8)) {
part->unk_24 = D_E0116CF8[unk_14_2];
part->primAlpha = D_E0116CF8[unk_14_2];
} else {
part->unk_24 = D_E0116CF8[ARRAY_COUNT(D_E0116CF8) - 1];
part->primAlpha = D_E0116CF8[ARRAY_COUNT(D_E0116CF8) - 1];
}
if (unk_14_2 < ARRAY_COUNT(D_E0116D08)) {
part->unk_25 = D_E0116D08[unk_14_2];
@ -210,9 +205,9 @@ void something_rotating_update(EffectInstance* effect) {
}
factor *= 0.0039215686; // 1 / 255
part->unk_26 = factor * D_E0116C8C[i - 1].r;
part->unk_27 = factor * D_E0116C8C[i - 1].g;
part->unk_28 = factor * D_E0116C8C[i - 1].b;
part->env.r = factor * D_E0116C8C[i - 1].r;
part->env.g = factor * D_E0116C8C[i - 1].g;
part->env.b = factor * D_E0116C8C[i - 1].b;
if (unk_14_2 < ARRAY_COUNT(D_E0116D6C)) {
part->unk_18 = (f32) D_E0116D6C[unk_14_2] * 0.01;
@ -221,22 +216,22 @@ void something_rotating_update(EffectInstance* effect) {
}
break;
case 2:
part->unk_14 = 0;
part->unk_29++;
// fallthrough
case 3:
part->unk_14 = 0;
part->state++;
// fallthrough
case 4:
unk_14_2 = part->unk_14;
if (unk_14_2 < 18) {
part->unk_2C = (shim_sin_deg(90 - unk_14_2 * 10) + 1.0f) * 50.0f * 0.5;
} else {
part->unk_2C = 0.0f;
part->unk_29++;
part->state++;
}
break;
case 4:
case 5:
break;
}
@ -268,14 +263,57 @@ void func_E01166E8(s32 arg0, SomethingRotatingFXData* part) {
temp = 0.0f;
}
shim_guPositionF(sp20, 0.0f, part->unk_20 - temp, 0.0f, part->unk_18, part->unk_04 + 2.0f, part->unk_08, part->unk_0C + 2.0f);
shim_guPositionF(sp20, 0.0f, part->unk_20 - temp, 0.0f, part->unk_18,
part->unk_04 + 2.0f,
part->unk_08,
part->unk_0C + 2.0f
);
shim_guRotateF(sp60, part->unk_1C, 0.0f, 0.0f, 1.0f);
shim_guMtxCatF(sp60, sp20, sp20);
shim_guTranslateF(sp60, 0.0f, 0.0f, -2.0f);
shim_guMtxCatF(sp60, sp20, sp20);
shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
}
INCLUDE_ASM(s32, "effects/something_rotating", something_rotating_appendGfx);
void something_rotating_appendGfx(void* effect) {
SomethingRotatingFXData* data = ((EffectInstance*)effect)->data.somethingRotating;
s32 unk_14 = data->unk_14;
s32 l, t;
s32 i;
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
gSPDisplayList(gMasterGfxPos++, D_090042E0_3FE790);
gDPSetEnvColor(gMasterGfxPos++, 0, 0, 0, 255);
data++;
for (i = 1; i < ((EffectInstance*)effect)->numParts; i++, data++) {
if (data->state != 5) {
func_E01166E8(1, data);
if (data->primAlpha != 255) {
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 0, 0, 0, data->primAlpha);
gDPSetEnvColor(gMasterGfxPos++, data->env.r, data->env.g, data->env.b, 0x78);
gSPDisplayList(gMasterGfxPos++, D_E0116C6C[0]);
l = ((unk_14 * 4.0f) * 100.0f) * (1.0 / 1024);
t = ((unk_14 * 4.0f) * 40.0f) * (1.0 / 1024);
gDPSetTileSize(gMasterGfxPos++, G_TX_RENDERTILE, l, t, l + 0xFC, t + 0xFC);
l = ((unk_14 * 4.0f) * 200.0f) * (1.0 / 1024);
t = ((unk_14 * 4.0f) * 90.0f) * (1.0 / 1024);
gDPSetTileSize(gMasterGfxPos++, 1, l, t, l + 0xFC, t + 0xFC);
gSPDisplayList(gMasterGfxPos++, D_E0116C64[0]);
} else {
gSPDisplayList(gMasterGfxPos++, D_E0116C68[0]);
gDPSetEnvColor(gMasterGfxPos++, data->env.r, data->env.g, data->env.b, data->unk_25);
gSPDisplayList(gMasterGfxPos++, D_E0116C70[i - 1]);
gSPDisplayList(gMasterGfxPos++, D_E0116C60[0]);
}
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}
}
}

View File

@ -1,10 +1,25 @@
#include "common.h"
#include "effects_internal.h"
extern Gfx D_090042E0[];
extern Gfx* D_E0112630[];
extern Gfx* D_E0112638[];
extern Gfx* D_E0112640[];
extern Gfx D_09003F98_3FE448[];
extern Gfx D_09004010_3FE4C0[];
extern Gfx D_09004088_3FE538[];
extern Gfx D_09004100_3FE5B0[];
extern Gfx D_09004178_3FE628[];
extern Gfx D_090041F0_3FE6A0[];
extern Gfx D_09004268_3FE718[];
extern Gfx D_090042E0_3FE790[];
extern Gfx D_09004360_3FE810[];
extern Gfx D_09004458_3FE908[];
extern Gfx D_09004508_3FE9B8[];
extern Gfx D_09004600_3FEAB0[];
Gfx* D_E0112630[] = { D_09004458_3FE908, D_09004600_3FEAB0 };
Gfx* D_E0112638[] = { D_09004360_3FE810, D_09004508_3FE9B8 };
Gfx* D_E0112640[] = {
D_09003F98_3FE448, D_09004010_3FE4C0, D_09004088_3FE538, D_09004100_3FE5B0,
D_09004178_3FE628, D_090041F0_3FE6A0, D_09004268_3FE718
};
void spirit_card_init(EffectInstance* effect);
void spirit_card_update(EffectInstance* effect);
@ -137,7 +152,7 @@ void spirit_card_appendGfx(void* effect) {
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
gSPDisplayList(gMasterGfxPos++, D_090042E0);
gSPDisplayList(gMasterGfxPos++, D_090042E0_3FE790);
gDPSetEnvColor(gMasterGfxPos++, 0, 0, 0, 255);
if (unk_00 < 2) {

View File

@ -216,7 +216,7 @@ ApiStatus func_80240F30_A2B170(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
EffectInstance* effect = (EffectInstance*) evt_get_variable(script, ArrayVar(0));
effect->data.somethingRotating[D_802495DC_A3381C + 1].unk_29 = 1;
effect->data.somethingRotating[D_802495DC_A3381C + 1].state = 1;
D_802495DC_A3381C++;
return ApiStatus_DONE2;
}
@ -225,7 +225,7 @@ ApiStatus func_80240F88_A2B1C8(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
EffectInstance* effect = (EffectInstance*) evt_get_variable(script, ArrayVar(0));
effect->data.somethingRotating[D_802495E0_A33820 + 1].unk_29 = 3;
effect->data.somethingRotating[D_802495E0_A33820 + 1].state = 3;
D_802495E0_A33820++;
return ApiStatus_DONE2;
}

View File

@ -1,9 +1,140 @@
#include "kmr_20.h"
INCLUDE_ASM(s32, "world/area_kmr/kmr_20/8EDFC0", func_802421A0_8EDFC0);
typedef struct UnkKmr20 {
/* 0x00 */ u16 unk_00;
/* 0x02 */ s16 unk_02;
/* 0x04 */ s32 unk_04;
/* 0x08 */ s16 unk_08;
/* 0x0A */ s16 unk_0A;
/* 0x0C */ char unk_0C[0xC];
/* 0x18 */ s16 unk_18;
/* 0x1A */ s16 unk_1A;
/* 0x1C */ s16 unk_1C;
/* 0x1E */ char unk_1E[0x2];
/* 0x20 */ s32 unk_20;
/* 0x24 */ u16 equippedBadges;
/* 0x26 */ s16 unk_26;
/* 0x28 */ s16 unk_28;
} UnkKmr20;
void func_80242870_8EE690(void*);
INCLUDE_ASM(s32, "world/area_kmr/kmr_20/8EDFC0", func_80242870_8EE690);
extern Gfx D_80252D50_8FEB70[];
extern s32 D_80252DC0_8FEBE0[];
void func_802421A0_8EDFC0(UnkKmr20* arg0, s32 opacity) {
s32 width;
if (opacity > 0) {
gSPDisplayList(gMasterGfxPos++, D_80252D50_8FEB70);
gDPPipeSync(gMasterGfxPos++);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 16, 120, 24, opacity * 0.65);
gDPFillRectangle(gMasterGfxPos++, 33, 43, 287, 192);
gDPPipeSync(gMasterGfxPos++);
msg_draw_frame(30, 40, 260, 155, 6, 0, 1, opacity * 0.55, opacity);
draw_msg(MSG_CH0_00FC, 206 - get_msg_width(MSG_CH0_00FC, 0), 50, opacity, 0, 1);
draw_number(gPlayerData.totalCoinsEarned, 216, 51, 1, 0, opacity, 2);
draw_msg(MSG_CH0_00FD, 206 - get_msg_width(MSG_CH0_00FD, 0), 65, opacity, 0, 1);
draw_number(arg0->equippedBadges, 231, 66, 1, 0, opacity, 3);
draw_msg(MSG_MenuTip_0034, 232, 63, opacity, 0, 0);
draw_number(80, 244, 66, 1, 0, opacity, 2);
if (gPlayerData.starPiecesCollected == 0) {
draw_msg(MSG_CH0_00FA, 109, 80, opacity, 0, 1);
} else {
draw_msg(MSG_CH0_00FB, 206 - get_msg_width(MSG_CH0_00FB, 0), 80, opacity, 0, 1);
draw_number(gPlayerData.starPiecesCollected, 231, 81, 1, 0, opacity, 3);
draw_msg(MSG_MenuTip_0034, 232, 78, opacity, 0, 0);
draw_number(160, 244, 80, 1, 0, opacity, 2);
}
width = get_msg_width(MSG_CH0_00FE, 0);
if (arg0->unk_26 == 0) {
draw_msg(MSG_CH0_00FA, 110, 95, opacity, 0, 1);
} else {
if (arg0->unk_26 == -1) {
draw_msg(MSG_CH0_00FE, 206 - width, 95, opacity, 0, 1);
draw_number(0, 231, 96, 1, 0, opacity, 3);
} else {
draw_msg(MSG_CH0_00FE, 206 - width, 95, opacity, 0, 1);
draw_number(arg0->unk_26, 231, 96, 1, 0, opacity, 3);
}
draw_msg(MSG_MenuTip_0034, 232, 93, opacity, 0, 0);
draw_number(arg0->unk_28, 244, 95, 1, 0, opacity, 2);
}
if (gPlayerData.quizzesAnswered == 0) {
draw_msg(MSG_CH0_00FA, 109, 110, opacity, 0, 1);
} else {
draw_msg(MSG_CH0_00FF, 206 - get_msg_width(MSG_CH0_00FF, 0), 110, opacity, 0, 1);
draw_number(gPlayerData.quizzesCorrect, 231, 111, 1, 0, opacity, 3);
draw_msg(MSG_MenuTip_0034, 232, 108, opacity, 0, 0);
draw_number(gPlayerData.quizzesAnswered, 244, 111, 1, 0, opacity, 2);
}
draw_msg(MSG_CH0_00F4, 206 - get_msg_width(MSG_CH0_00F4, 0), 125, opacity, 0, 1);
draw_number(gPlayerData.battlesCount, 216, 126, 1, 0, opacity, 2);
width = get_msg_width(MSG_CH0_00F7, 0);
draw_msg(MSG_CH0_00F7, 206 - width, 140, opacity, 0, 1);
draw_number(gPlayerData.playerFirstStrikes, 216, 141, 1, 0, opacity, 2);
draw_msg(MSG_CH0_00F8, 206 - get_msg_width(MSG_CH0_00F8, 0), 155, opacity, 0, 1);
draw_number(gPlayerData.enemyFirstStrikes, 216, 156, 1, 0, opacity, 2);
if (gPlayerData.powerBounces == 0) {
draw_msg(MSG_CH0_00FA, 109, 170, opacity, 0, 1);
} else {
draw_msg(MSG_CH0_00F9, 206 - get_msg_width(MSG_CH0_00F9, 0), 170, opacity, 0, 1);
draw_number(gPlayerData.powerBounces, 216, 171, 1, 0, opacity, 2);
}
}
}
void func_80242870_8EE690(void* data) {
UnkKmr20* temp_v0 = (UnkKmr20*) evt_get_variable(NULL, MapVar(10));
s32 temp_f2;
switch (temp_v0->unk_00) {
case 0:
temp_v0->unk_18 = 0;
temp_v0->unk_08 = 0;
temp_v0->unk_0A = 0;
temp_v0->unk_04 = 0;
temp_v0->unk_00 = 1;
snd_start_sound(SOUND_21C, 0, 0);
// fallthrough
case 1:
temp_v0->unk_04++;
temp_f2 = update_lerp(0, 32.0f, 255.0f, temp_v0->unk_04, 3);
temp_v0->unk_1A = temp_f2;
temp_v0->unk_1C = temp_f2;
if (temp_v0->unk_04 >= 3) {
temp_v0->unk_00 = 2;
temp_v0->unk_1A = 255;
temp_v0->unk_1C = 255;
}
break;
case 2:
temp_v0->unk_1A = 255;
temp_v0->unk_1C = 255;
if (gGameStatusPtr->currentButtons[0] & (BUTTON_A | BUTTON_B)) {
temp_v0->unk_00 = 3;
}
if (temp_v0->unk_00 != 3) {
break;
}
case 3:
temp_v0->unk_04 = 0;
temp_v0->unk_00 = 4;
snd_start_sound(SOUND_MENU_BACK, 0, 0);
// fallthrough
case 4:
temp_v0->unk_04++;
temp_v0->unk_1A = update_lerp(0, temp_v0->unk_1C, 0.0f, temp_v0->unk_04, 3);
if (temp_v0->unk_04 >= 3) {
temp_v0->unk_00 = 5;
}
break;
}
func_802421A0_8EDFC0(temp_v0, temp_v0->unk_1A);
}
void func_80242A04_8EE824(void) {
RenderTask rt;
@ -15,6 +146,26 @@ void func_80242A04_8EE824(void) {
queue_render_task(&rt);
}
void func_80242A3C_8EE85C(UnkKmr20*);
INCLUDE_ASM(s32, "world/area_kmr/kmr_20/8EDFC0", func_80242A3C_8EE85C);
INCLUDE_ASM(s32, "world/area_kmr/kmr_20/8EDFC0", func_80242B04_8EE924);
ApiStatus func_80242B04_8EE924(Evt* script, s32 isInitialCall) {
UnkKmr20* temp_v0;
if (isInitialCall) {
temp_v0 = script->functionTempPtr[0] = heap_malloc(sizeof(*temp_v0));
temp_v0->unk_00 = 0;
temp_v0->unk_1A = 255;
temp_v0->unk_20 = create_worker_world(0, func_80242A04_8EE824);
evt_set_variable(script, MapVar(10), (s32) temp_v0);
func_80242A3C_8EE85C(temp_v0);
}
temp_v0 = script->functionTempPtr[0];
if (temp_v0->unk_00 == 5) {
free_worker(temp_v0->unk_20);
heap_free(temp_v0);
return ApiStatus_DONE1;
}
return ApiStatus_BLOCK;
}

View File

@ -8,3 +8,5 @@
#include "../kmr.h"
#define NAMESPACE kmr_20
void msg_draw_frame(s32 posX, s32 posY, s32 sizeX, s32 sizeY, s32 style, s32 palette, s32 fading, s32 bgAlpha, s32 frameAlpha);

View File

@ -67,7 +67,7 @@ ApiStatus func_80240730_BBD8D0(Evt* script, s32 isInitialCall) {
ApiStatus func_80240790_BBD930(Evt* script, s32 isInitialCall) {
ItemEntity* item = get_item_entity(script->varTable[0]);
set_item_entity_flags(script->varTable[0], 0x80000);
set_item_entity_flags(script->varTable[0], ITEM_ENTITY_FLAGS_TRANSPARENT);
item->alpha = -1;
return ApiStatus_DONE2;
}

View File

@ -1,3 +1,189 @@
#include "obk_03.h"
#include "model.h"
#include "mapfs/obk_03_shape.h"
#include "mapfs/obk_03_hit.h"
INCLUDE_ASM(s32, "world/area_obk/obk_03/BC4B50", func_802408D0_BC4B50);
// identical to (copy-pasted from) obk_05_RockingChair_UpdatePhysics aside from a few constants
// TODO de-duplicate?
ApiStatus func_802408D0_BC4B50(Evt* script, s32 isInitialCall) {
typedef struct RockingChairPhysics {
/* 0x00 */ f32 angleDelta;
/* 0x04 */ f32 angularAccel;
/* 0x08 */ f32 rotationAngle;
/* 0x0C */ f32 verticalOffset;
/* 0x10 */ f32 angleB;
/* 0x14 */ f32 angleA;
/* 0x18 */ f32 mass;
/* 0x1C */ f32 equilibriumAngle;
} RockingChairPhysics; // size = 0x20
enum RockingChairState {
CHAIR_STATE_INITIAL = 0,
CHAIR_STATE_PLAYER_TOUCHING = 1,
CHAIR_STATE_PLAYER_NOT_TOUCHING = 2
};
PlayerStatus* playerStatus = &gPlayerStatus;
CollisionStatus* collisionStatus = &gCollisionStatus;
RockingChairPhysics* physics;
f32 centerX, centerY, centerZ;
Matrix4f tempMtx;
Model* model;
s16 currentFloor;
if (isInitialCall) {
physics = heap_malloc(sizeof(*physics));
script->functionTempPtr[1] = physics;
physics->angleDelta = 0;
physics->verticalOffset = 0;
physics->rotationAngle = 0;
physics->angleB = 0;
physics->angleA = 0;
physics->angularAccel = 0.1f;
physics->mass = 3.0f;
script->functionTemp[0] = CHAIR_STATE_INITIAL;
script->functionTemp[2] = 0;
script->functionTemp[3] = 0;
}
physics = script->functionTempPtr[1];
switch (script->functionTemp[0]) {
case CHAIR_STATE_INITIAL:
if (collisionStatus->currentFloor == COLLIDER_i3) {
script->functionTemp[0] = CHAIR_STATE_PLAYER_TOUCHING;
}
if (collisionStatus->currentFloor == COLLIDER_i2) {
script->functionTemp[0] = CHAIR_STATE_PLAYER_TOUCHING;
}
physics->angleDelta = 0.0f;
physics->verticalOffset = 0.0f;
physics->angleB = 0.0f;
physics->angleA = 0.0f;
physics->rotationAngle = 0.0f;
physics->angularAccel = 0.1f;
physics->mass = 3.0f;
physics->equilibriumAngle = 20.0f;
break;
case CHAIR_STATE_PLAYER_TOUCHING:
//TODO odd match
currentFloor = collisionStatus->currentFloor;
if (currentFloor != COLLIDER_i3 && collisionStatus->currentFloor != COLLIDER_i2) {
script->functionTemp[3] = 120; // settle time
script->functionTemp[0] = CHAIR_STATE_PLAYER_NOT_TOUCHING;
}
if (fabsf(physics->rotationAngle) < 5.0f) {
physics->angularAccel = fabsf(-170.0 - playerStatus->position.x) / 200.0f;
} else {
physics->angularAccel = 0.1f;
}
if (playerStatus->position.x <= -170.0) {
physics->angleB += physics->angularAccel;
physics->equilibriumAngle = SQ(fabsf(-170.0 - playerStatus->position.x)) / 50.0f;
if (physics->equilibriumAngle > 15.0f) {
physics->equilibriumAngle = 15.0f;
}
if (physics->rotationAngle > physics->equilibriumAngle) {
physics->angleA += physics->angularAccel * physics->mass;
}
} else {
physics->angleA += physics->angularAccel;
physics->equilibriumAngle = -SQ(-fabsf(-170.0 - playerStatus->position.x) * 0.5f) / 50.0f;
if (physics->equilibriumAngle < -5.0f) {
physics->equilibriumAngle = -5.0f;
}
if (physics->rotationAngle < physics->equilibriumAngle) {
physics->angleB += physics->angularAccel * physics->mass;
}
}
if ((physics->angleB > 100.0) && (physics->angleA > 100.0)) {
physics->angleB -= 100.0;
physics->angleA -= 100.0;
}
// clamp difference to 1.5 degrees
if (fabsf(physics->angleB - physics->angleA) > 1.5) {
if (physics->angleA > physics->angleB) {
physics->angleA = physics->angleB + 1.5;
} else {
physics->angleB = physics->angleA + 1.5;
}
}
physics->angleDelta = physics->angleB - physics->angleA;
physics->rotationAngle += physics->angleDelta;
break;
case CHAIR_STATE_PLAYER_NOT_TOUCHING:
if (collisionStatus->currentFloor == COLLIDER_i3) {
script->functionTemp[0] = CHAIR_STATE_PLAYER_TOUCHING;
}
if (collisionStatus->currentFloor == COLLIDER_i2) {
script->functionTemp[0] = CHAIR_STATE_PLAYER_TOUCHING;
}
physics->angularAccel = 0.1f;
physics->equilibriumAngle = 0;
physics->angleB += physics->angularAccel;
if (physics->rotationAngle > physics->equilibriumAngle) {
physics->angleA += physics->angularAccel * physics->mass;
}
if ((physics->angleB > 100.0) && ( physics->angleA > 100.0)) {
physics->angleB -= 100.0;
physics->angleA -= 100.0;
}
if (fabsf(physics->angleB - physics->angleA) > 0.5) {
if (physics->angleA > physics->angleB) {
physics->angleA = physics->angleB + 0.5;
} else {
physics->angleB = physics->angleA + 0.5;
}
}
if (script->functionTemp[3] < 0) {
f32 zero = 0.0f;
physics->angleA = zero;
physics->angleB = zero;
physics->angleDelta = zero;
physics->rotationAngle = zero;
} else {
script->functionTemp[3]--;
}
physics->angleDelta = physics->angleB - physics->angleA;
physics->rotationAngle += physics->angleDelta;
break;
}
// play creak sound once per cycle
if (physics->rotationAngle <= -7.0f) {
if (script->functionTemp[2] != -1) {
get_collider_center(COLLIDER_i3, &centerX, &centerY, &centerZ);
sfx_play_sound_at_position(SOUND_CREAKY_ROCKING_CHAIR, 0, centerX, centerY, centerZ);
script->functionTemp[2] = -1;
}
} else {
script->functionTemp[2] = 0;
}
physics->verticalOffset = SQ(physics->rotationAngle) / 90.0f;
model = get_model_from_list_index(get_model_list_index_from_tree_index(MODEL_i3));
model->flags |= (MODEL_FLAGS_USES_TRANSFORM_MATRIX | MODEL_FLAGS_HAS_TRANSFORM_APPLIED);
guTranslateF(model->transformMatrix, 0.0f, physics->verticalOffset, 0.0f);
guRotateF(tempMtx, physics->rotationAngle, 0.0f, 0.0f, 1.0f);
guMtxCatF(model->transformMatrix, tempMtx, model->transformMatrix);
update_collider_transform(COLLIDER_i3);
update_collider_transform(COLLIDER_i2);
model = get_model_from_list_index(get_model_list_index_from_tree_index(MODEL_i2));
model->flags |= (MODEL_FLAGS_USES_TRANSFORM_MATRIX | MODEL_FLAGS_HAS_TRANSFORM_APPLIED);
guTranslateF(model->transformMatrix, 0.0f, physics->verticalOffset, 0.0f);
guRotateF(tempMtx, physics->rotationAngle, 0.0f, 0.0f, 1.0f);
guMtxCatF(model->transformMatrix, tempMtx, model->transformMatrix);
model = get_model_from_list_index(get_model_list_index_from_tree_index(MODEL_i1));
model->flags |= (MODEL_FLAGS_USES_TRANSFORM_MATRIX | MODEL_FLAGS_HAS_TRANSFORM_APPLIED);
guTranslateF(model->transformMatrix, 0.0f, physics->verticalOffset, 0.0f);
guRotateF(tempMtx, physics->rotationAngle, 0.0f, 0.0f, 1.0f);
guMtxCatF(model->transformMatrix, tempMtx, model->transformMatrix);
update_collider_transform(COLLIDER_i1);
return ApiStatus_BLOCK;
}

View File

@ -58,7 +58,7 @@ ApiStatus N(RockingChair_UpdatePhysics)(Evt* script, s32 isInitialCall) {
script->functionTemp[2] = 0;
script->functionTemp[3] = 0;
}
physics = script->functionTempPtr[1];
switch (script->functionTemp[0]) {
case CHAIR_STATE_INITIAL:
@ -134,7 +134,7 @@ ApiStatus N(RockingChair_UpdatePhysics)(Evt* script, s32 isInitialCall) {
physics->angularAccel = 0.1f;
physics->equilibriumAngle = 0;
physics->angleB += physics->angularAccel;
if (physics->rotationAngle > physics->equilibriumAngle) {
physics->angleA += physics->angularAccel * physics->mass;
}
@ -142,7 +142,7 @@ ApiStatus N(RockingChair_UpdatePhysics)(Evt* script, s32 isInitialCall) {
physics->angleB -= 100.0;
physics->angleA -= 100.0;
}
if (fabsf(physics->angleB - physics->angleA) > 0.5) {
if (physics->angleA > physics->angleB) {
physics->angleA = physics->angleB + 0.5;
@ -174,7 +174,7 @@ ApiStatus N(RockingChair_UpdatePhysics)(Evt* script, s32 isInitialCall) {
} else {
script->functionTemp[2] = 0;
}
physics->verticalOffset = SQ(physics->rotationAngle) / 90.0f;
model = get_model_from_list_index(get_model_list_index_from_tree_index(MODEL_i3));
@ -184,19 +184,19 @@ ApiStatus N(RockingChair_UpdatePhysics)(Evt* script, s32 isInitialCall) {
guMtxCatF(model->transformMatrix, tempMtx, model->transformMatrix);
update_collider_transform(COLLIDER_i3);
update_collider_transform(COLLIDER_i2);
model = get_model_from_list_index(get_model_list_index_from_tree_index(MODEL_i2));
model->flags |= (MODEL_FLAGS_USES_TRANSFORM_MATRIX | MODEL_FLAGS_HAS_TRANSFORM_APPLIED);
guTranslateF(model->transformMatrix, 0.0f, physics->verticalOffset, 0.0f);
guRotateF(tempMtx, physics->rotationAngle, 0.0f, 0.0f, 1.0f);
guMtxCatF(model->transformMatrix, tempMtx, model->transformMatrix);
model = get_model_from_list_index(get_model_list_index_from_tree_index(MODEL_i1));
model->flags |= (MODEL_FLAGS_USES_TRANSFORM_MATRIX | MODEL_FLAGS_HAS_TRANSFORM_APPLIED);
guTranslateF(model->transformMatrix, 0.0f, physics->verticalOffset, 0.0f);
guRotateF(tempMtx, physics->rotationAngle, 0.0f, 0.0f, 1.0f);
guMtxCatF(model->transformMatrix, tempMtx, model->transformMatrix);
update_collider_transform(COLLIDER_i1);
return ApiStatus_BLOCK;
}

View File

@ -2,17 +2,14 @@
#include "hud_element.h"
#include "battle/action_cmd.h"
extern HudScript HES_SlowlyMashAButton;
typedef struct UnkObk07 {
/* 0x000 */ s32 unk_00;
/* 0x004 */ s32 unk_04;
/* 0x008 */ s32 unk_08;
/* 0x00C */ s32 unk_0C; // song name
/* 0x010 */ s32 unk_10;
/* 0x014 */ s32 unk_14;
/* 0x018 */ s32 unk_18;
/* 0x01C */ s32 unk_1C;
/* 0x020 */ s32 unk_20;
/* 0x024 */ s32 unk_24;
/* 0x010 */ s32 unk_10[6]; // probably more
/* 0x028 */ s32 unk_28;
/* 0x02C */ s32 unk_2C; // entity id
/* 0x030 */ s32 unk_30;
@ -25,8 +22,7 @@ typedef struct UnkObk07 {
/* 0x04C */ s32 unk_4C;
/* 0x050 */ s32 unk_50;
/* 0x054 */ s32 unk_54;
/* 0x058 */ s32 unk_58[89];
/* 0x1BC */ s32 unk_1BC;
/* 0x058 */ s32 aPressed[90];
/* 0x1C0 */ s32 unk_1C0;
/* 0x1C4 */ f32 unk_1C4;
/* 0x1C8 */ f32 unk_1C8;
@ -38,7 +34,11 @@ typedef struct UnkObk07 {
/* 0x1DD */ char unk_1DD[0x3];
} UnkObk07; // size = 0x1E0
void func_80240A6C_BCF65C(void);
extern s32 D_80243090_BD1C80[];
extern s32 D_80243098_BD1C88[];
extern u8 D_802430A0_BD1C90[];
extern u8 D_802430B0_BD1CA0[];
extern u8 D_802430C0_BD1CB0[];
ApiStatus func_80240500_BCF0F0(Evt* script, s32 isInitialCall) {
evt_set_variable(script, MapVar(6), (s32) heap_malloc(sizeof(UnkObk07)));
@ -57,7 +57,89 @@ void func_80240A10_BCF600(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
func_80240564_BCF154(arg0, arg1, arg2);
}
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_80240A6C_BCF65C);
void func_80240A6C_BCF65C(void) {
UnkObk07* temp_v0 = func_80240540_BCF130();
s32 id;
s32 temp;
s32 count;
s32 arrCount;
s32 idx;
s32 i;
temp_v0->aPressed[temp_v0->unk_1C0] = gGameStatusPtr->pressedButtons[0] & A_BUTTON;
temp_v0->unk_1C0++;
if (temp_v0->unk_1C0 >= ARRAY_COUNT(temp_v0->aPressed)) {
temp_v0->unk_1C0 = 0;
}
switch (temp_v0->unk_30) {
case 0:
id = temp_v0->unk_3C;
hud_element_set_alpha(id, 255);
hud_element_clear_flags(id, 2);
id = temp_v0->unk_40;
hud_element_set_alpha(id, 255);
hud_element_clear_flags(id, 2);
id = temp_v0->unk_44;
hud_element_set_alpha(id, 255);
hud_element_clear_flags(id, 2);
temp_v0->unk_30 = 1;
break;
case 1:
temp_v0->unk_34 += 20;
if (temp_v0->unk_34 > 50) {
temp_v0->unk_34 = 50;
}
hud_element_set_render_pos(temp_v0->unk_3C, temp_v0->unk_34, temp_v0->unk_38);
hud_element_set_render_pos(temp_v0->unk_40, temp_v0->unk_34, temp_v0->unk_38 + 28);
hud_element_set_render_pos(temp_v0->unk_44, temp_v0->unk_34 + 2, temp_v0->unk_38 + 14);
break;
case 10:
hud_element_set_script(temp_v0->unk_3C, &HES_SlowlyMashAButton);
temp_v0->unk_30 = 11;
// fallthrough
case 11:
arrCount = ARRAY_COUNT(temp_v0->aPressed);
idx = temp_v0->unk_1C0;
idx -= arrCount;
temp_v0->unk_04 = 0;
if (idx < 0) {
idx += arrCount;
}
count = 0;
for (i = 0; i < arrCount; i++, idx++) {
if (idx >= ARRAY_COUNT(temp_v0->aPressed)) {
idx -= ARRAY_COUNT(temp_v0->aPressed);
}
if (temp_v0->aPressed[idx] != 0) {
count++;
}
}
evt_set_variable(NULL, MapVar(7), count * 1000);
temp_v0->unk_04 = (count * 100) / 22;
if (temp_v0->unk_04 < 0) {
temp_v0->unk_04 = 0;
}
if (temp_v0->unk_04 > 100) {
temp_v0->unk_04 = 100;
}
id = temp_v0->unk_08 / 60; // TODO use of id required to match - weird
if (id <= 50) {
temp = 50.0f;
temp *= sin_rad((((id * 90) / 50) * TAU) / 360.0f);
} else {
temp = ((1.0 - sin_rad((((((id - 50) * 90) / 50) + 90) * TAU) / 360.0f)) * 50.0) + 50.0;
}
temp_v0->unk_1C4 = (((100 - temp) * 0.25) / 100.0) + ((2.0 * temp) / 100.0);
func_80055D38(temp_v0->unk_0C, temp_v0->unk_1C4);
set_script_timescale(get_script_by_id(temp_v0->unk_4C), temp_v0->unk_1C4 * 3.0f);
set_script_timescale(get_script_by_id(temp_v0->unk_50), temp_v0->unk_1C4 * 5.0f);
set_script_timescale(get_script_by_id(temp_v0->unk_54), temp_v0->unk_1C4 * 5.0f);
break;
}
}
ApiStatus func_80240EF8_BCFAE8(Evt* script, s32 isInitialCall) {
UnkObk07* temp_s0 = func_80240540_BCF130();
@ -88,9 +170,6 @@ void func_802410C0_BCFCB0(void) {
hud_element_draw_clipped(temp_v0->unk_44);
}
extern s32 D_80243090_BD1C80[];
extern s32 D_80243098_BD1C88[];
ApiStatus func_80241130_BCFD20(Evt* script, s32 isInitialCall) {
s32 outVal = 0;
s32* it = D_80243090_BD1C80;
@ -118,16 +197,16 @@ ApiStatus func_80241168_BCFD58(Evt* script, s32 isInitialCall) {
temp_s1->unk_30 = 0;
temp_s1->unk_04 = 0;
temp_s1->unk_08 = 0;
temp_s1->unk_10 = 0;
temp_s1->unk_14 = 20;
temp_s1->unk_18 = 40;
temp_s1->unk_1C = 60;
temp_s1->unk_20 = 80;
temp_s1->unk_24 = 100;
temp_s1->unk_10[0] = 0;
temp_s1->unk_10[1] = 20;
temp_s1->unk_10[2] = 40;
temp_s1->unk_10[3] = 60;
temp_s1->unk_10[4] = 80;
temp_s1->unk_10[5] = 100;
temp_s1->unk_28 = 5;
for (i = 0; i <= 89; i++) {
temp_s1->unk_58[i] = 0;
for (i = 0; i < ARRAY_COUNT(temp_s1->aPressed); i++) {
temp_s1->aPressed[i] = 0;
}
temp_s1->unk_34 = -48;
@ -328,7 +407,70 @@ ApiStatus func_80241898_BD0488(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_802418E0_BD04D0);
ApiStatus func_802418E0_BD04D0(Evt* script, s32 isInitialCall) {
Npc* npc = get_npc_unsafe(2);
UnkObk07* temp_v0 = func_80240540_BCF130();
f32 y2 = -136.0f;
f32 x = npc->pos.x;
f32 z = npc->pos.z;
f32 x2 = -92.0f;
f32 x3 = 168.0f;
f32 speed;
if (temp_v0->unk_30 == -1) {
speed = 2.0f;
npc->currentAnim = 0x950003;
if (dist2D(x, z, x3, y2) < speed) {
npc->pos.x = x3;
npc->pos.z = y2;
npc->yaw = atan2(x, z, x2, y2);
script->varTable[10] = 0;
script->varTable[11] = 1;
return ApiStatus_DONE2;
} else {
npc->yaw = atan2(x, z, x3, y2);
npc_move_heading(npc, speed, npc->yaw);
}
return ApiStatus_DONE2;
}
if (temp_v0->unk_1D4 > 7000) {
speed = 2.0f;
script->varTable[10] = 1;
if (dist2D(x, z, x2, y2) < speed) {
npc->pos.x = x2;
npc->pos.z = y2;
} else {
npc->yaw = atan2(x, z, x2, y2);
npc_move_heading(npc, speed, npc->yaw);
}
}
if (temp_v0->unk_1D4 < 3000) {
speed = 2.0f;
script->varTable[10] = 0;
if (dist2D(x, z, x3, y2) < speed) {
npc->pos.x = x3;
npc->pos.z = y2;
npc->yaw = atan2(x, z, x2, -136.0f);
} else {
npc->yaw = atan2(x, z, x3, y2);
npc_move_heading(npc, speed, npc->yaw);
}
}
if (temp_v0->unk_1D4 > 7000) {
npc->currentAnim = 0x950005;
} else if (temp_v0->unk_1D4 > 5000) {
npc->currentAnim = 0x950003;
} else if (temp_v0->unk_1D4 > 3000) {
npc->currentAnim = 0x950002;
} else {
npc->currentAnim = 0x950001;
}
return ApiStatus_DONE2;
}
ApiStatus func_80241B50_BD0740(Evt* script, s32 isInitialCall) {
Npc* npc = get_npc_unsafe(script->owner2.npcID);

View File

@ -2,7 +2,30 @@
#include "world/common/todo/UnkFoldFunc.inc.c"
INCLUDE_ASM(s32, "world/area_obk/obk_08/BD3870", func_802403DC_BD3C4C);
ApiStatus func_802403DC_BD3C4C(Evt* script) {
Bytecode* args = script->ptrReadPos;
s32 spriteIndex = evt_get_variable(script, *args++);
s32 rasterIndex = evt_get_variable(script, *args++);
UnkEntityStruct* temp_v0 = heap_malloc(sizeof(*temp_v0));
temp_v0->spriteIndex = spriteIndex;
temp_v0->rasterIndex = rasterIndex;
temp_v0->unk_34 = gPlayerStatus.colliderHeight;
temp_v0->unk_38 = gPlayerStatus.colliderDiameter;
temp_v0->pos.x = gPlayerStatus.position.x;
temp_v0->pos.y = gPlayerStatus.position.y;
temp_v0->pos.z = gPlayerStatus.position.z;
temp_v0->rot.x = 0.0f;
temp_v0->rot.y = 0.0f;
temp_v0->rot.z = 0.0f;
temp_v0->scale.x = SPRITE_WORLD_SCALE_F;
temp_v0->scale.y = SPRITE_WORLD_SCALE_F;
temp_v0->scale.z = SPRITE_WORLD_SCALE_F;
temp_v0->foldID = func_8013A704(1);
temp_v0->entityID = create_worker_world(0, obk_08_UnkFoldFunc);
evt_set_variable(script, MapVar(10), (s32) temp_v0);
return ApiStatus_DONE2;
}
ApiStatus func_802404F0_BD3D60(Evt* script, s32 isInitialCall) {
UnkEntityStruct* temp_v0 = (UnkEntityStruct*) evt_get_variable(NULL, MapVar(10));
@ -14,13 +37,55 @@ ApiStatus func_802404F0_BD3D60(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "world/area_obk/obk_08/BD3870", func_8024055C_BD3DCC);
ApiStatus func_8024055C_BD3DCC(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32 x = evt_get_float_variable(script, *args++);
s32 y = evt_get_float_variable(script, *args++);
s32 z = evt_get_float_variable(script, *args++);
UnkEntityStruct* temp_v0 = (UnkEntityStruct*) evt_get_variable(NULL, MapVar(10));
INCLUDE_ASM(s32, "world/area_obk/obk_08/BD3870", func_8024061C_BD3E8C);
temp_v0->pos.x = x;
temp_v0->pos.y = y;
temp_v0->pos.z = z;
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "world/area_obk/obk_08/BD3870", func_802406DC_BD3F4C);
ApiStatus func_8024061C_BD3E8C(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32 x = evt_get_float_variable(script, *args++);
s32 y = evt_get_float_variable(script, *args++);
s32 z = evt_get_float_variable(script, *args++);
UnkEntityStruct* temp_v0 = (UnkEntityStruct*) evt_get_variable(NULL, MapVar(10));
INCLUDE_ASM(s32, "world/area_obk/obk_08/BD3870", func_8024079C_BD400C);
temp_v0->rot.x = x;
temp_v0->rot.y = y;
temp_v0->rot.z = z;
return ApiStatus_DONE2;
}
ApiStatus func_802406DC_BD3F4C(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32 x = evt_get_float_variable(script, *args++);
s32 y = evt_get_float_variable(script, *args++);
s32 z = evt_get_float_variable(script, *args++);
UnkEntityStruct* temp_v0 = (UnkEntityStruct*) evt_get_variable(NULL, MapVar(10));
temp_v0->scale.x = x;
temp_v0->scale.y = y;
temp_v0->scale.z = z;
return ApiStatus_DONE2;
}
ApiStatus func_8024079C_BD400C(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32 spriteIndex = evt_get_variable(script, *args++);
s32 rasterIndex = evt_get_variable(script, *args++);
UnkEntityStruct* temp_v0 = (UnkEntityStruct*) evt_get_variable(NULL, MapVar(10));
temp_v0->spriteIndex = spriteIndex;
temp_v0->rasterIndex = rasterIndex;
return ApiStatus_DONE2;
}
ApiStatus func_80240808_BD4078(Evt* script, s32 isInitialCall) {
if (gPlayerData.curHP < 2) {

View File

@ -1,5 +1,49 @@
#include "obk_09.h"
#include "effects.h"
INCLUDE_ASM(s32, "world/area_obk/obk_09/BDA940", func_80240190_BDA940);
typedef struct UnkObk09 {
/* 0x00 */ Vec3f pos;
/* 0x0C */ char unk_0C[0x4];
/* 0x10 */ f32 unk_10;
/* 0x14 */ char unk_14[0x4];
/* 0x18 */ s32 shadowID;
/* 0x1C */ EffectInstance* spiritCard;
} UnkObk09; // size = 0x20
INCLUDE_ASM(s32, "world/area_obk/obk_09/BDA940", func_80240248_BDA9F8);
ApiStatus func_80240190_BDA940(Evt* script, s32 isInitialCall) {
Npc* npc = get_npc_safe(script->owner2.npcID);
UnkObk09* data = heap_malloc(sizeof(*data));
script->userData = data;
data->pos.x = npc->pos.x;
data->pos.y = npc->pos.y;
data->pos.z = npc->pos.z;
data->unk_10 = 0.0f;
data->spiritCard = fx_spirit_card(1, data->pos.x, data->pos.y, data->pos.z, 1.0f, 0);
data->spiritCard->data.spiritCard->chapter = 2;
data->shadowID = create_shadow_type(0, data->pos.x, data->pos.y, data->pos.z);
return ApiStatus_DONE2;
}
ApiStatus func_80240248_BDA9F8(Evt* script, s32 isInitialCall) {
UnkObk09* data = script->userData;
Npc* npc = get_npc_safe(script->owner2.npcID);
Shadow* shadow = get_shadow_by_index(data->shadowID);
EffectInstance* effect;
data->pos.x = npc->pos.x - 2.0f;
data->pos.y = npc->pos.y + 12.0f;
data->pos.z = npc->pos.z - 30.0f;
effect = data->spiritCard;
effect->data.spiritCard->pos.x = data->pos.x;
effect->data.spiritCard->pos.y = data->pos.y;
effect->data.spiritCard->pos.z = data->pos.z;
data->unk_10 = clamp_angle(data->unk_10 + 6.6f);
effect->data.spiritCard->yaw = data->unk_10;
shadow->position.x = data->pos.x;
shadow->position.y = data->pos.y - 40.0f;
shadow->position.z = data->pos.z;
return ApiStatus_BLOCK;
}

View File

@ -1,4 +1,5 @@
#include "omo_13.h"
#include "sprite/npc/ShyGuy.h"
#include "world/common/enemy/ai/ShyGuyWanderAI.inc.c"
@ -61,8 +62,6 @@ ApiStatus func_80240F8C_DE341C(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
// control flow
#ifdef NON_MATCHING
ApiStatus func_80241028_DE34B8(Evt* script, s32 isInitialCall) {
PlayerStatus* playerStatus = &gPlayerStatus;
Npc* npc = get_npc_safe(0);
@ -71,7 +70,6 @@ ApiStatus func_80241028_DE34B8(Evt* script, s32 isInitialCall) {
dist2D(110.0f, -45.0f, playerStatus->position.x, playerStatus->position.z);
theta = clamp_angle(atan2(110.0f, -45.0f, playerStatus->position.x, playerStatus->position.z));
x = (sin_deg(theta) * 30.0f) + 110.0f;
if (script->varTable[11] != 0) {
y = playerStatus->position.y * 0.7f;
@ -83,32 +81,21 @@ ApiStatus func_80241028_DE34B8(Evt* script, s32 isInitialCall) {
if (script->varTable[11] != 0 && npc->pos.y == 0.0f) {
script->varTable[11] = 0;
}
if (npc->pos.x == x && npc->pos.y == y) {
if (npc->pos.z == z) {
if (npc->currentAnim != 0x3B0501) {
npc->currentAnim = 0x3B0501;
}
} else {
goto block_10;
}
} else {
block_10:
if (npc->currentAnim != 0x3B0502) {
if (script->varTable[10]++ >= 6) {
npc->currentAnim = 0x3B0502;
script->varTable[10] = 0;
}
if (npc->pos.x != x || npc->pos.y != y || npc->pos.z != z) {
if (npc->currentAnim != ANIM_ShyGuy_Black_Anim02 && script->varTable[10]++ >= 6) {
npc->currentAnim = ANIM_ShyGuy_Black_Anim02;
script->varTable[10] = 0;
}
npc->pos.x = x;
npc->pos.z = z;
npc->colliderPos.x = npc->pos.x;
npc->colliderPos.y = npc->pos.y;
npc->colliderPos.z = npc->pos.z;
npc->flags |= 0x10000;
npc->flags |= NPC_FLAG_DIRTY_SHADOW;
} else if (npc->currentAnim != ANIM_ShyGuy_Black_Anim01) {
npc->currentAnim = ANIM_ShyGuy_Black_Anim01;
}
npc->yaw = atan2(npc->pos.x, npc->pos.z, playerStatus->position.x, playerStatus->position.z);
return ApiStatus_DONE2;
}
#else
INCLUDE_ASM(s32, "world/area_omo/omo_13/DE2710", func_80241028_DE34B8);
#endif

View File

@ -75,7 +75,42 @@ ApiStatus func_80241A6C_D3C03C(Evt* script, s32 isInitialCall) {
#include "world/common/atomic/TexturePan.inc.c"
// float regalloc
#ifdef NON_MATCHING
ApiStatus func_80241DAC_D3C37C(Evt* script, s32 isInitialCall) {
EffectInstance* effect;
f32 temp_f22;
f32 f1;
f32 f2;
f32 f3;
f32 f4;
s32 i;
for (i = 0; i < 24; i++) {
f2 = ((i / 6) * 40) - 100;
f1 = ((i % 6) * 40) - 100;
f3 = f1 + (0.0f);
temp_f22 = f2;
f1 = f1 * 0.1;
f2 = f2 * 0.1;
effect = fx_ice_shard(i & 1, f3, -10.0f, temp_f22 + 250.0f, 2.0 * ((i & 3) + 1.0), ((i & 3) * 4) + 30);
temp_f22 = 4.0f;
effect->data.iceShard->unk_44 = 0.0f;
effect->data.iceShard->unk_48 = (rand_int(10) * 0.2) + 0.1;
effect->data.iceShard->unk_3C = i * 35;
effect->data.iceShard->unk_40 = rand_int(10) - 5;
effect->data.iceShard->unk_4C = f1;
effect->data.iceShard->unk_50 = temp_f22;
effect->data.iceShard->unk_54 = f2;
effect->data.iceShard->unk_58 = -0.1f;
}
return ApiStatus_DONE2;
}
#else
INCLUDE_ASM(s32, "world/area_sam/sam_11/D3ADA0", func_80241DAC_D3C37C);
#endif
static char* N(exit_str_0) = "sam_02";
ApiStatus func_80241FB0_D3C580(Evt* script, s32 isInitialCall) {
script->varTable[10] = 0;

View File

@ -1,12 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E0112630
.word 0x09004458, 0x09004600
dlabel D_E0112638
.word 0x09004360, 0x09004508
dlabel D_E0112640
.word 0x09003F98, 0x09004010, 0x09004088, 0x09004100, 0x09004178, 0x090041F0, 0x09004268, 0x00000000

View File

@ -1,323 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel snaking_static_appendGfx
/* 3B289C E00AE54C 27BDFF18 */ addiu $sp, $sp, -0xe8
/* 3B28A0 E00AE550 3C06DB06 */ lui $a2, 0xdb06
/* 3B28A4 E00AE554 34C60024 */ ori $a2, $a2, 0x24
/* 3B28A8 E00AE558 AFB300BC */ sw $s3, 0xbc($sp)
/* 3B28AC E00AE55C 3C13800A */ lui $s3, %hi(gMasterGfxPos)
/* 3B28B0 E00AE560 2673A66C */ addiu $s3, $s3, %lo(gMasterGfxPos)
/* 3B28B4 E00AE564 AFBF00D4 */ sw $ra, 0xd4($sp)
/* 3B28B8 E00AE568 AFBE00D0 */ sw $fp, 0xd0($sp)
/* 3B28BC E00AE56C AFB700CC */ sw $s7, 0xcc($sp)
/* 3B28C0 E00AE570 AFB600C8 */ sw $s6, 0xc8($sp)
/* 3B28C4 E00AE574 AFB500C4 */ sw $s5, 0xc4($sp)
/* 3B28C8 E00AE578 AFB400C0 */ sw $s4, 0xc0($sp)
/* 3B28CC E00AE57C AFB200B8 */ sw $s2, 0xb8($sp)
/* 3B28D0 E00AE580 AFB100B4 */ sw $s1, 0xb4($sp)
/* 3B28D4 E00AE584 AFB000B0 */ sw $s0, 0xb0($sp)
/* 3B28D8 E00AE588 F7B600E0 */ sdc1 $f22, 0xe0($sp)
/* 3B28DC E00AE58C F7B400D8 */ sdc1 $f20, 0xd8($sp)
/* 3B28E0 E00AE590 AFA400E8 */ sw $a0, 0xe8($sp)
/* 3B28E4 E00AE594 8E650000 */ lw $a1, ($s3)
/* 3B28E8 E00AE598 8FA900E8 */ lw $t1, 0xe8($sp)
/* 3B28EC E00AE59C 00A0182D */ daddu $v1, $a1, $zero
/* 3B28F0 E00AE5A0 8D32000C */ lw $s2, 0xc($t1)
/* 3B28F4 E00AE5A4 24A50008 */ addiu $a1, $a1, 8
/* 3B28F8 E00AE5A8 AE650000 */ sw $a1, ($s3)
/* 3B28FC E00AE5AC 8E490014 */ lw $t1, 0x14($s2)
/* 3B2900 E00AE5B0 27A40018 */ addiu $a0, $sp, 0x18
/* 3B2904 E00AE5B4 AFA90098 */ sw $t1, 0x98($sp)
/* 3B2908 E00AE5B8 8E490024 */ lw $t1, 0x24($s2)
/* 3B290C E00AE5BC 3C110001 */ lui $s1, 1
/* 3B2910 E00AE5C0 AFA9009C */ sw $t1, 0x9c($sp)
/* 3B2914 E00AE5C4 8E5E0018 */ lw $fp, 0x18($s2)
/* 3B2918 E00AE5C8 8E49001C */ lw $t1, 0x1c($s2)
/* 3B291C E00AE5CC 36311630 */ ori $s1, $s1, 0x1630
/* 3B2920 E00AE5D0 AFA900A0 */ sw $t1, 0xa0($sp)
/* 3B2924 E00AE5D4 8E490020 */ lw $t1, 0x20($s2)
/* 3B2928 E00AE5D8 3C02E700 */ lui $v0, 0xe700
/* 3B292C E00AE5DC AFA900A4 */ sw $t1, 0xa4($sp)
/* 3B2930 E00AE5E0 AC620000 */ sw $v0, ($v1)
/* 3B2934 E00AE5E4 AC600004 */ sw $zero, 4($v1)
/* 3B2938 E00AE5E8 ACA60000 */ sw $a2, ($a1)
/* 3B293C E00AE5EC 8FA900E8 */ lw $t1, 0xe8($sp)
/* 3B2940 E00AE5F0 24150001 */ addiu $s5, $zero, 1
/* 3B2944 E00AE5F4 8D230010 */ lw $v1, 0x10($t1)
/* 3B2948 E00AE5F8 24A20008 */ addiu $v0, $a1, 8
/* 3B294C E00AE5FC AE620000 */ sw $v0, ($s3)
/* 3B2950 E00AE600 8C62001C */ lw $v0, 0x1c($v1)
/* 3B2954 E00AE604 3C038000 */ lui $v1, 0x8000
/* 3B2958 E00AE608 00431021 */ addu $v0, $v0, $v1
/* 3B295C E00AE60C 3C03800B */ lui $v1, %hi(gCameras)
/* 3B2960 E00AE610 24631D80 */ addiu $v1, $v1, %lo(gCameras)
/* 3B2964 E00AE614 ACA20004 */ sw $v0, 4($a1)
/* 3B2968 E00AE618 8E450004 */ lw $a1, 4($s2)
/* 3B296C E00AE61C 8E460008 */ lw $a2, 8($s2)
/* 3B2970 E00AE620 3C028007 */ lui $v0, %hi(gCurrentCameraID)
/* 3B2974 E00AE624 8C427410 */ lw $v0, %lo(gCurrentCameraID)($v0)
/* 3B2978 E00AE628 8E47000C */ lw $a3, 0xc($s2)
/* 3B297C E00AE62C 00028080 */ sll $s0, $v0, 2
/* 3B2980 E00AE630 02028021 */ addu $s0, $s0, $v0
/* 3B2984 E00AE634 00108080 */ sll $s0, $s0, 2
/* 3B2988 E00AE638 02028023 */ subu $s0, $s0, $v0
/* 3B298C E00AE63C 001010C0 */ sll $v0, $s0, 3
/* 3B2990 E00AE640 02028021 */ addu $s0, $s0, $v0
/* 3B2994 E00AE644 001080C0 */ sll $s0, $s0, 3
/* 3B2998 E00AE648 0C080108 */ jal shim_guTranslateF
/* 3B299C E00AE64C 02038021 */ addu $s0, $s0, $v1
/* 3B29A0 E00AE650 27B40058 */ addiu $s4, $sp, 0x58
/* 3B29A4 E00AE654 8E450038 */ lw $a1, 0x38($s2)
/* 3B29A8 E00AE658 0280202D */ daddu $a0, $s4, $zero
/* 3B29AC E00AE65C 00A0302D */ daddu $a2, $a1, $zero
/* 3B29B0 E00AE660 0C080110 */ jal shim_guScaleF
/* 3B29B4 E00AE664 00A0382D */ daddu $a3, $a1, $zero
/* 3B29B8 E00AE668 0280202D */ daddu $a0, $s4, $zero
/* 3B29BC E00AE66C 27A50018 */ addiu $a1, $sp, 0x18
/* 3B29C0 E00AE670 0C080114 */ jal shim_guMtxCatF
/* 3B29C4 E00AE674 00A0302D */ daddu $a2, $a1, $zero
/* 3B29C8 E00AE678 27A40018 */ addiu $a0, $sp, 0x18
/* 3B29CC E00AE67C 3C168007 */ lui $s6, %hi(gMatrixListPos)
/* 3B29D0 E00AE680 26D641F0 */ addiu $s6, $s6, %lo(gMatrixListPos)
/* 3B29D4 E00AE684 3C17800A */ lui $s7, %hi(gDisplayContext)
/* 3B29D8 E00AE688 26F7A674 */ addiu $s7, $s7, %lo(gDisplayContext)
/* 3B29DC E00AE68C 96C50000 */ lhu $a1, ($s6)
/* 3B29E0 E00AE690 8EE20000 */ lw $v0, ($s7)
/* 3B29E4 E00AE694 00052980 */ sll $a1, $a1, 6
/* 3B29E8 E00AE698 00B12821 */ addu $a1, $a1, $s1
/* 3B29EC E00AE69C 0C080118 */ jal shim_guMtxF2L
/* 3B29F0 E00AE6A0 00452821 */ addu $a1, $v0, $a1
/* 3B29F4 E00AE6A4 3C03DA38 */ lui $v1, 0xda38
/* 3B29F8 E00AE6A8 34630002 */ ori $v1, $v1, 2
/* 3B29FC E00AE6AC 3C06DA38 */ lui $a2, 0xda38
/* 3B2A00 E00AE6B0 00D53025 */ or $a2, $a2, $s5
/* 3B2A04 E00AE6B4 8E640000 */ lw $a0, ($s3)
/* 3B2A08 E00AE6B8 96C20000 */ lhu $v0, ($s6)
/* 3B2A0C E00AE6BC 0080282D */ daddu $a1, $a0, $zero
/* 3B2A10 E00AE6C0 24840008 */ addiu $a0, $a0, 8
/* 3B2A14 E00AE6C4 AE640000 */ sw $a0, ($s3)
/* 3B2A18 E00AE6C8 ACA30000 */ sw $v1, ($a1)
/* 3B2A1C E00AE6CC 00551821 */ addu $v1, $v0, $s5
/* 3B2A20 E00AE6D0 3042FFFF */ andi $v0, $v0, 0xffff
/* 3B2A24 E00AE6D4 00021180 */ sll $v0, $v0, 6
/* 3B2A28 E00AE6D8 A6C30000 */ sh $v1, ($s6)
/* 3B2A2C E00AE6DC 8EE30000 */ lw $v1, ($s7)
/* 3B2A30 E00AE6E0 00511021 */ addu $v0, $v0, $s1
/* 3B2A34 E00AE6E4 00621821 */ addu $v1, $v1, $v0
/* 3B2A38 E00AE6E8 24820008 */ addiu $v0, $a0, 8
/* 3B2A3C E00AE6EC ACA30004 */ sw $v1, 4($a1)
/* 3B2A40 E00AE6F0 AE620000 */ sw $v0, ($s3)
/* 3B2A44 E00AE6F4 24820010 */ addiu $v0, $a0, 0x10
/* 3B2A48 E00AE6F8 AC860000 */ sw $a2, ($a0)
/* 3B2A4C E00AE6FC AE620000 */ sw $v0, ($s3)
/* 3B2A50 E00AE700 8E030204 */ lw $v1, 0x204($s0)
/* 3B2A54 E00AE704 3C02FB00 */ lui $v0, 0xfb00
/* 3B2A58 E00AE708 AC820008 */ sw $v0, 8($a0)
/* 3B2A5C E00AE70C AC830004 */ sw $v1, 4($a0)
/* 3B2A60 E00AE710 9243002B */ lbu $v1, 0x2b($s2)
/* 3B2A64 E00AE714 9245002F */ lbu $a1, 0x2f($s2)
/* 3B2A68 E00AE718 92460033 */ lbu $a2, 0x33($s2)
/* 3B2A6C E00AE71C 3C02DE00 */ lui $v0, 0xde00
/* 3B2A70 E00AE720 AC820010 */ sw $v0, 0x10($a0)
/* 3B2A74 E00AE724 3C020900 */ lui $v0, 0x900
/* 3B2A78 E00AE728 24421000 */ addiu $v0, $v0, 0x1000
/* 3B2A7C E00AE72C AC820014 */ sw $v0, 0x14($a0)
/* 3B2A80 E00AE730 00031E00 */ sll $v1, $v1, 0x18
/* 3B2A84 E00AE734 00052C00 */ sll $a1, $a1, 0x10
/* 3B2A88 E00AE738 00651825 */ or $v1, $v1, $a1
/* 3B2A8C E00AE73C 00063200 */ sll $a2, $a2, 8
/* 3B2A90 E00AE740 00661825 */ or $v1, $v1, $a2
/* 3B2A94 E00AE744 AC83000C */ sw $v1, 0xc($a0)
/* 3B2A98 E00AE748 8FA900E8 */ lw $t1, 0xe8($sp)
/* 3B2A9C E00AE74C 26520044 */ addiu $s2, $s2, 0x44
/* 3B2AA0 E00AE750 8D220008 */ lw $v0, 8($t1)
/* 3B2AA4 E00AE754 24840018 */ addiu $a0, $a0, 0x18
/* 3B2AA8 E00AE758 02A2102A */ slt $v0, $s5, $v0
/* 3B2AAC E00AE75C 10400098 */ beqz $v0, .LE00AE9C0
/* 3B2AB0 E00AE760 AE640000 */ sw $a0, ($s3)
/* 3B2AB4 E00AE764 0260882D */ daddu $s1, $s3, $zero
/* 3B2AB8 E00AE768 001E1E00 */ sll $v1, $fp, 0x18
/* 3B2ABC E00AE76C 0280982D */ daddu $s3, $s4, $zero
/* 3B2AC0 E00AE770 02C0B82D */ daddu $s7, $s6, $zero
/* 3B2AC4 E00AE774 3C140001 */ lui $s4, 1
/* 3B2AC8 E00AE778 36941630 */ ori $s4, $s4, 0x1630
/* 3B2ACC E00AE77C 3C1EF200 */ lui $fp, 0xf200
/* 3B2AD0 E00AE780 26500040 */ addiu $s0, $s2, 0x40
/* 3B2AD4 E00AE784 8FA900A0 */ lw $t1, 0xa0($sp)
/* 3B2AD8 E00AE788 4480A000 */ mtc1 $zero, $f20
/* 3B2ADC E00AE78C 3C013F80 */ lui $at, 0x3f80
/* 3B2AE0 E00AE790 4481B000 */ mtc1 $at, $f22
/* 3B2AE4 E00AE794 312200FF */ andi $v0, $t1, 0xff
/* 3B2AE8 E00AE798 00021400 */ sll $v0, $v0, 0x10
/* 3B2AEC E00AE79C 8FA900A4 */ lw $t1, 0xa4($sp)
/* 3B2AF0 E00AE7A0 00621825 */ or $v1, $v1, $v0
/* 3B2AF4 E00AE7A4 312200FF */ andi $v0, $t1, 0xff
/* 3B2AF8 E00AE7A8 00021200 */ sll $v0, $v0, 8
/* 3B2AFC E00AE7AC 8FA90098 */ lw $t1, 0x98($sp)
/* 3B2B00 E00AE7B0 00621825 */ or $v1, $v1, $v0
/* 3B2B04 E00AE7B4 AFA300A8 */ sw $v1, 0xa8($sp)
/* 3B2B08 E00AE7B8 02A91004 */ sllv $v0, $t1, $s5
/* 3B2B0C E00AE7BC 0049B021 */ addu $s6, $v0, $t1
/* 3B2B10 E00AE7C0 26C2001F */ addiu $v0, $s6, 0x1f
/* 3B2B14 E00AE7C4 00021080 */ sll $v0, $v0, 2
/* 3B2B18 E00AE7C8 30420FFF */ andi $v0, $v0, 0xfff
/* 3B2B1C E00AE7CC 00021300 */ sll $v0, $v0, 0xc
/* 3B2B20 E00AE7D0 AFA200AC */ sw $v0, 0xac($sp)
.LE00AE7D4:
/* 3B2B24 E00AE7D4 8E280000 */ lw $t0, ($s1)
/* 3B2B28 E00AE7D8 3C02FA00 */ lui $v0, 0xfa00
/* 3B2B2C E00AE7DC 0100282D */ daddu $a1, $t0, $zero
/* 3B2B30 E00AE7E0 ACA20000 */ sw $v0, ($a1)
/* 3B2B34 E00AE7E4 8E03FFE4 */ lw $v1, -0x1c($s0)
/* 3B2B38 E00AE7E8 8FA9009C */ lw $t1, 0x9c($sp)
/* 3B2B3C E00AE7EC 00690018 */ mult $v1, $t1
/* 3B2B40 E00AE7F0 00001812 */ mflo $v1
/* 3B2B44 E00AE7F4 3C028080 */ lui $v0, 0x8080
/* 3B2B48 E00AE7F8 34428081 */ ori $v0, $v0, 0x8081
/* 3B2B4C E00AE7FC 00620018 */ mult $v1, $v0
/* 3B2B50 E00AE800 27A40018 */ addiu $a0, $sp, 0x18
/* 3B2B54 E00AE804 4407A000 */ mfc1 $a3, $f20
/* 3B2B58 E00AE808 8FA900A8 */ lw $t1, 0xa8($sp)
/* 3B2B5C E00AE80C 00001010 */ mfhi $v0
/* 3B2B60 E00AE810 00431021 */ addu $v0, $v0, $v1
/* 3B2B64 E00AE814 000211C3 */ sra $v0, $v0, 7
/* 3B2B68 E00AE818 00031FC3 */ sra $v1, $v1, 0x1f
/* 3B2B6C E00AE81C 00431023 */ subu $v0, $v0, $v1
/* 3B2B70 E00AE820 304200FF */ andi $v0, $v0, 0xff
/* 3B2B74 E00AE824 01221025 */ or $v0, $t1, $v0
/* 3B2B78 E00AE828 ACA20004 */ sw $v0, 4($a1)
/* 3B2B7C E00AE82C 8E05FFC4 */ lw $a1, -0x3c($s0)
/* 3B2B80 E00AE830 8E06FFC8 */ lw $a2, -0x38($s0)
/* 3B2B84 E00AE834 25080008 */ addiu $t0, $t0, 8
/* 3B2B88 E00AE838 0C080108 */ jal shim_guTranslateF
/* 3B2B8C E00AE83C AE280000 */ sw $t0, ($s1)
/* 3B2B90 E00AE840 E7B60010 */ swc1 $f22, 0x10($sp)
/* 3B2B94 E00AE844 8E05FFFC */ lw $a1, -4($s0)
/* 3B2B98 E00AE848 4406A000 */ mfc1 $a2, $f20
/* 3B2B9C E00AE84C 4407A000 */ mfc1 $a3, $f20
/* 3B2BA0 E00AE850 0C080104 */ jal shim_guRotateF
/* 3B2BA4 E00AE854 0260202D */ daddu $a0, $s3, $zero
/* 3B2BA8 E00AE858 0260202D */ daddu $a0, $s3, $zero
/* 3B2BAC E00AE85C 27A50018 */ addiu $a1, $sp, 0x18
/* 3B2BB0 E00AE860 0C080114 */ jal shim_guMtxCatF
/* 3B2BB4 E00AE864 00A0302D */ daddu $a2, $a1, $zero
/* 3B2BB8 E00AE868 C602FFF4 */ lwc1 $f2, -0xc($s0)
/* 3B2BBC E00AE86C 3C013D80 */ lui $at, 0x3d80
/* 3B2BC0 E00AE870 44810000 */ mtc1 $at, $f0
/* 3B2BC4 E00AE874 00000000 */ nop
/* 3B2BC8 E00AE878 46001082 */ mul.s $f2, $f2, $f0
/* 3B2BCC E00AE87C 00000000 */ nop
/* 3B2BD0 E00AE880 0260202D */ daddu $a0, $s3, $zero
/* 3B2BD4 E00AE884 44051000 */ mfc1 $a1, $f2
/* 3B2BD8 E00AE888 4407B000 */ mfc1 $a3, $f22
/* 3B2BDC E00AE88C 0C080110 */ jal shim_guScaleF
/* 3B2BE0 E00AE890 00A0302D */ daddu $a2, $a1, $zero
/* 3B2BE4 E00AE894 0260202D */ daddu $a0, $s3, $zero
/* 3B2BE8 E00AE898 27A50018 */ addiu $a1, $sp, 0x18
/* 3B2BEC E00AE89C 0C080114 */ jal shim_guMtxCatF
/* 3B2BF0 E00AE8A0 00A0302D */ daddu $a2, $a1, $zero
/* 3B2BF4 E00AE8A4 27A40018 */ addiu $a0, $sp, 0x18
/* 3B2BF8 E00AE8A8 96E50000 */ lhu $a1, ($s7)
/* 3B2BFC E00AE8AC 3C02800A */ lui $v0, %hi(gDisplayContext)
/* 3B2C00 E00AE8B0 8C42A674 */ lw $v0, %lo(gDisplayContext)($v0)
/* 3B2C04 E00AE8B4 00052980 */ sll $a1, $a1, 6
/* 3B2C08 E00AE8B8 00B42821 */ addu $a1, $a1, $s4
/* 3B2C0C E00AE8BC 0C080118 */ jal shim_guMtxF2L
/* 3B2C10 E00AE8C0 00452821 */ addu $a1, $v0, $a1
/* 3B2C14 E00AE8C4 3C060100 */ lui $a2, 0x100
/* 3B2C18 E00AE8C8 34C6007C */ ori $a2, $a2, 0x7c
/* 3B2C1C E00AE8CC 3C07D838 */ lui $a3, 0xd838
/* 3B2C20 E00AE8D0 8E240000 */ lw $a0, ($s1)
/* 3B2C24 E00AE8D4 34E70002 */ ori $a3, $a3, 2
/* 3B2C28 E00AE8D8 0080282D */ daddu $a1, $a0, $zero
/* 3B2C2C E00AE8DC 24840008 */ addiu $a0, $a0, 8
/* 3B2C30 E00AE8E0 AE240000 */ sw $a0, ($s1)
/* 3B2C34 E00AE8E4 96E20000 */ lhu $v0, ($s7)
/* 3B2C38 E00AE8E8 3C03DA38 */ lui $v1, 0xda38
/* 3B2C3C E00AE8EC ACA30000 */ sw $v1, ($a1)
/* 3B2C40 E00AE8F0 24430001 */ addiu $v1, $v0, 1
/* 3B2C44 E00AE8F4 3042FFFF */ andi $v0, $v0, 0xffff
/* 3B2C48 E00AE8F8 00021180 */ sll $v0, $v0, 6
/* 3B2C4C E00AE8FC A6E30000 */ sh $v1, ($s7)
/* 3B2C50 E00AE900 3C03800A */ lui $v1, %hi(gDisplayContext)
/* 3B2C54 E00AE904 8C63A674 */ lw $v1, %lo(gDisplayContext)($v1)
/* 3B2C58 E00AE908 00541021 */ addu $v0, $v0, $s4
/* 3B2C5C E00AE90C 00621821 */ addu $v1, $v1, $v0
/* 3B2C60 E00AE910 24820008 */ addiu $v0, $a0, 8
/* 3B2C64 E00AE914 ACA30004 */ sw $v1, 4($a1)
/* 3B2C68 E00AE918 AE220000 */ sw $v0, ($s1)
/* 3B2C6C E00AE91C 24820010 */ addiu $v0, $a0, 0x10
/* 3B2C70 E00AE920 AE220000 */ sw $v0, ($s1)
/* 3B2C74 E00AE924 24820018 */ addiu $v0, $a0, 0x18
/* 3B2C78 E00AE928 AE220000 */ sw $v0, ($s1)
/* 3B2C7C E00AE92C 8E020000 */ lw $v0, ($s0)
/* 3B2C80 E00AE930 24830020 */ addiu $v1, $a0, 0x20
/* 3B2C84 E00AE934 AE230000 */ sw $v1, ($s1)
/* 3B2C88 E00AE938 00021180 */ sll $v0, $v0, 6
/* 3B2C8C E00AE93C 30420FFF */ andi $v0, $v0, 0xfff
/* 3B2C90 E00AE940 00021300 */ sll $v0, $v0, 0xc
/* 3B2C94 E00AE944 005E1025 */ or $v0, $v0, $fp
/* 3B2C98 E00AE948 AC820000 */ sw $v0, ($a0)
/* 3B2C9C E00AE94C 00161080 */ sll $v0, $s6, 2
/* 3B2CA0 E00AE950 30420FFF */ andi $v0, $v0, 0xfff
/* 3B2CA4 E00AE954 00021300 */ sll $v0, $v0, 0xc
/* 3B2CA8 E00AE958 8E030000 */ lw $v1, ($s0)
/* 3B2CAC E00AE95C 005E1025 */ or $v0, $v0, $fp
/* 3B2CB0 E00AE960 AC820008 */ sw $v0, 8($a0)
/* 3B2CB4 E00AE964 8FA900AC */ lw $t1, 0xac($sp)
/* 3B2CB8 E00AE968 3C02DE00 */ lui $v0, 0xde00
/* 3B2CBC E00AE96C AC820010 */ sw $v0, 0x10($a0)
/* 3B2CC0 E00AE970 3C020900 */ lui $v0, 0x900
/* 3B2CC4 E00AE974 244210F8 */ addiu $v0, $v0, 0x10f8
/* 3B2CC8 E00AE978 AC820014 */ sw $v0, 0x14($a0)
/* 3B2CCC E00AE97C 24020040 */ addiu $v0, $zero, 0x40
/* 3B2CD0 E00AE980 AC870018 */ sw $a3, 0x18($a0)
/* 3B2CD4 E00AE984 AC82001C */ sw $v0, 0x1c($a0)
/* 3B2CD8 E00AE988 01263025 */ or $a2, $t1, $a2
/* 3B2CDC E00AE98C 00031980 */ sll $v1, $v1, 6
/* 3B2CE0 E00AE990 3463003C */ ori $v1, $v1, 0x3c
/* 3B2CE4 E00AE994 30630FFF */ andi $v1, $v1, 0xfff
/* 3B2CE8 E00AE998 00031B00 */ sll $v1, $v1, 0xc
/* 3B2CEC E00AE99C 3463007C */ ori $v1, $v1, 0x7c
/* 3B2CF0 E00AE9A0 AC86000C */ sw $a2, 0xc($a0)
/* 3B2CF4 E00AE9A4 AC830004 */ sw $v1, 4($a0)
/* 3B2CF8 E00AE9A8 8FA900E8 */ lw $t1, 0xe8($sp)
/* 3B2CFC E00AE9AC 26B50001 */ addiu $s5, $s5, 1
/* 3B2D00 E00AE9B0 8D220008 */ lw $v0, 8($t1)
/* 3B2D04 E00AE9B4 02A2102A */ slt $v0, $s5, $v0
/* 3B2D08 E00AE9B8 1440FF86 */ bnez $v0, .LE00AE7D4
/* 3B2D0C E00AE9BC 26100044 */ addiu $s0, $s0, 0x44
.LE00AE9C0:
/* 3B2D10 E00AE9C0 3C05E200 */ lui $a1, 0xe200
/* 3B2D14 E00AE9C4 34A51E01 */ ori $a1, $a1, 0x1e01
/* 3B2D18 E00AE9C8 3C06D838 */ lui $a2, 0xd838
/* 3B2D1C E00AE9CC 3C04800A */ lui $a0, %hi(gMasterGfxPos)
/* 3B2D20 E00AE9D0 2484A66C */ addiu $a0, $a0, %lo(gMasterGfxPos)
/* 3B2D24 E00AE9D4 8C820000 */ lw $v0, ($a0)
/* 3B2D28 E00AE9D8 34C60002 */ ori $a2, $a2, 2
/* 3B2D2C E00AE9DC 0040182D */ daddu $v1, $v0, $zero
/* 3B2D30 E00AE9E0 24420008 */ addiu $v0, $v0, 8
/* 3B2D34 E00AE9E4 AC820000 */ sw $v0, ($a0)
/* 3B2D38 E00AE9E8 AC650000 */ sw $a1, ($v1)
/* 3B2D3C E00AE9EC AC600004 */ sw $zero, 4($v1)
/* 3B2D40 E00AE9F0 24430008 */ addiu $v1, $v0, 8
/* 3B2D44 E00AE9F4 AC830000 */ sw $v1, ($a0)
/* 3B2D48 E00AE9F8 24030040 */ addiu $v1, $zero, 0x40
/* 3B2D4C E00AE9FC AC460000 */ sw $a2, ($v0)
/* 3B2D50 E00AEA00 AC430004 */ sw $v1, 4($v0)
/* 3B2D54 E00AEA04 8FBF00D4 */ lw $ra, 0xd4($sp)
/* 3B2D58 E00AEA08 8FBE00D0 */ lw $fp, 0xd0($sp)
/* 3B2D5C E00AEA0C 8FB700CC */ lw $s7, 0xcc($sp)
/* 3B2D60 E00AEA10 8FB600C8 */ lw $s6, 0xc8($sp)
/* 3B2D64 E00AEA14 8FB500C4 */ lw $s5, 0xc4($sp)
/* 3B2D68 E00AEA18 8FB400C0 */ lw $s4, 0xc0($sp)
/* 3B2D6C E00AEA1C 8FB300BC */ lw $s3, 0xbc($sp)
/* 3B2D70 E00AEA20 8FB200B8 */ lw $s2, 0xb8($sp)
/* 3B2D74 E00AEA24 8FB100B4 */ lw $s1, 0xb4($sp)
/* 3B2D78 E00AEA28 8FB000B0 */ lw $s0, 0xb0($sp)
/* 3B2D7C E00AEA2C D7B600E0 */ ldc1 $f22, 0xe0($sp)
/* 3B2D80 E00AEA30 D7B400D8 */ ldc1 $f20, 0xd8($sp)
/* 3B2D84 E00AEA34 03E00008 */ jr $ra
/* 3B2D88 E00AEA38 27BD00E8 */ addiu $sp, $sp, 0xe8
/* 3B2D8C E00AEA3C 00000000 */ nop

View File

@ -1,256 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel something_rotating_appendGfx
/* 402EC4 E0116884 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 402EC8 E0116888 AFB7002C */ sw $s7, 0x2c($sp)
/* 402ECC E011688C 0080B82D */ daddu $s7, $a0, $zero
/* 402ED0 E0116890 3C05DB06 */ lui $a1, 0xdb06
/* 402ED4 E0116894 34A50024 */ ori $a1, $a1, 0x24
/* 402ED8 E0116898 AFB3001C */ sw $s3, 0x1c($sp)
/* 402EDC E011689C 24130001 */ addiu $s3, $zero, 1
/* 402EE0 E01168A0 3C06800A */ lui $a2, %hi(gMasterGfxPos)
/* 402EE4 E01168A4 24C6A66C */ addiu $a2, $a2, %lo(gMasterGfxPos)
/* 402EE8 E01168A8 3C03E700 */ lui $v1, 0xe700
/* 402EEC E01168AC AFBF0034 */ sw $ra, 0x34($sp)
/* 402EF0 E01168B0 AFBE0030 */ sw $fp, 0x30($sp)
/* 402EF4 E01168B4 AFB60028 */ sw $s6, 0x28($sp)
/* 402EF8 E01168B8 AFB50024 */ sw $s5, 0x24($sp)
/* 402EFC E01168BC AFB40020 */ sw $s4, 0x20($sp)
/* 402F00 E01168C0 AFB20018 */ sw $s2, 0x18($sp)
/* 402F04 E01168C4 AFB10014 */ sw $s1, 0x14($sp)
/* 402F08 E01168C8 AFB00010 */ sw $s0, 0x10($sp)
/* 402F0C E01168CC F7B40038 */ sdc1 $f20, 0x38($sp)
/* 402F10 E01168D0 8CC20000 */ lw $v0, ($a2)
/* 402F14 E01168D4 8EF2000C */ lw $s2, 0xc($s7)
/* 402F18 E01168D8 0040202D */ daddu $a0, $v0, $zero
/* 402F1C E01168DC 24420008 */ addiu $v0, $v0, 8
/* 402F20 E01168E0 8E5E0014 */ lw $fp, 0x14($s2)
/* 402F24 E01168E4 26520030 */ addiu $s2, $s2, 0x30
/* 402F28 E01168E8 ACC20000 */ sw $v0, ($a2)
/* 402F2C E01168EC AC830000 */ sw $v1, ($a0)
/* 402F30 E01168F0 24430008 */ addiu $v1, $v0, 8
/* 402F34 E01168F4 AC800004 */ sw $zero, 4($a0)
/* 402F38 E01168F8 ACC30000 */ sw $v1, ($a2)
/* 402F3C E01168FC AC450000 */ sw $a1, ($v0)
/* 402F40 E0116900 8EE40010 */ lw $a0, 0x10($s7)
/* 402F44 E0116904 24430010 */ addiu $v1, $v0, 0x10
/* 402F48 E0116908 ACC30000 */ sw $v1, ($a2)
/* 402F4C E011690C 8C84001C */ lw $a0, 0x1c($a0)
/* 402F50 E0116910 3C03DE00 */ lui $v1, 0xde00
/* 402F54 E0116914 AC430008 */ sw $v1, 8($v0)
/* 402F58 E0116918 3C030900 */ lui $v1, 0x900
/* 402F5C E011691C 246342E0 */ addiu $v1, $v1, 0x42e0
/* 402F60 E0116920 AC43000C */ sw $v1, 0xc($v0)
/* 402F64 E0116924 3C03FB00 */ lui $v1, 0xfb00
/* 402F68 E0116928 AC430010 */ sw $v1, 0x10($v0)
/* 402F6C E011692C 240300FF */ addiu $v1, $zero, 0xff
/* 402F70 E0116930 AC430014 */ sw $v1, 0x14($v0)
/* 402F74 E0116934 3C038000 */ lui $v1, 0x8000
/* 402F78 E0116938 00832021 */ addu $a0, $a0, $v1
/* 402F7C E011693C AC440004 */ sw $a0, 4($v0)
/* 402F80 E0116940 8EE30008 */ lw $v1, 8($s7)
/* 402F84 E0116944 24420018 */ addiu $v0, $v0, 0x18
/* 402F88 E0116948 0263182A */ slt $v1, $s3, $v1
/* 402F8C E011694C 106000B5 */ beqz $v1, .LE0116C24
/* 402F90 E0116950 ACC20000 */ sw $v0, ($a2)
/* 402F94 E0116954 00C0882D */ daddu $s1, $a2, $zero
/* 402F98 E0116958 3C16FB00 */ lui $s6, 0xfb00
/* 402F9C E011695C 3C14DE00 */ lui $s4, 0xde00
/* 402FA0 E0116960 3C013F50 */ lui $at, 0x3f50
/* 402FA4 E0116964 4481A800 */ mtc1 $at, $f21
/* 402FA8 E0116968 4480A000 */ mtc1 $zero, $f20
/* 402FAC E011696C 3C15F200 */ lui $s5, 0xf200
/* 402FB0 E0116970 26500025 */ addiu $s0, $s2, 0x25
.LE0116974:
/* 402FB4 E0116974 92030004 */ lbu $v1, 4($s0)
/* 402FB8 E0116978 24020005 */ addiu $v0, $zero, 5
/* 402FBC E011697C 506200A4 */ beql $v1, $v0, .LE0116C10
/* 402FC0 E0116980 26730001 */ addiu $s3, $s3, 1
/* 402FC4 E0116984 24040001 */ addiu $a0, $zero, 1
/* 402FC8 E0116988 0C0459BA */ jal func_E01166E8
/* 402FCC E011698C 0240282D */ daddu $a1, $s2, $zero
/* 402FD0 E0116990 9203FFFF */ lbu $v1, -1($s0)
/* 402FD4 E0116994 240200FF */ addiu $v0, $zero, 0xff
/* 402FD8 E0116998 1062006E */ beq $v1, $v0, .LE0116B54
/* 402FDC E011699C 3C02FA00 */ lui $v0, 0xfa00
/* 402FE0 E01169A0 3C014080 */ lui $at, 0x4080
/* 402FE4 E01169A4 44810000 */ mtc1 $at, $f0
/* 402FE8 E01169A8 449E1000 */ mtc1 $fp, $f2
/* 402FEC E01169AC 00000000 */ nop
/* 402FF0 E01169B0 468010A0 */ cvt.s.w $f2, $f2
/* 402FF4 E01169B4 46001082 */ mul.s $f2, $f2, $f0
/* 402FF8 E01169B8 00000000 */ nop
/* 402FFC E01169BC 3C0142C8 */ lui $at, 0x42c8
/* 403000 E01169C0 44813000 */ mtc1 $at, $f6
/* 403004 E01169C4 00000000 */ nop
/* 403008 E01169C8 46061182 */ mul.s $f6, $f2, $f6
/* 40300C E01169CC 00000000 */ nop
/* 403010 E01169D0 460031A1 */ cvt.d.s $f6, $f6
/* 403014 E01169D4 46343182 */ mul.d $f6, $f6, $f20
/* 403018 E01169D8 00000000 */ nop
/* 40301C E01169DC 8E260000 */ lw $a2, ($s1)
/* 403020 E01169E0 3C014220 */ lui $at, 0x4220
/* 403024 E01169E4 44812000 */ mtc1 $at, $f4
/* 403028 E01169E8 3C0142B4 */ lui $at, 0x42b4
/* 40302C E01169EC 44814000 */ mtc1 $at, $f8
/* 403030 E01169F0 00C0202D */ daddu $a0, $a2, $zero
/* 403034 E01169F4 24C60008 */ addiu $a2, $a2, 8
/* 403038 E01169F8 AE260000 */ sw $a2, ($s1)
/* 40303C E01169FC AC820000 */ sw $v0, ($a0)
/* 403040 E0116A00 46041102 */ mul.s $f4, $f2, $f4
/* 403044 E0116A04 00000000 */ nop
/* 403048 E0116A08 9203FFFF */ lbu $v1, -1($s0)
/* 40304C E0116A0C 3C014348 */ lui $at, 0x4348
/* 403050 E0116A10 44810000 */ mtc1 $at, $f0
/* 403054 E0116A14 24C20008 */ addiu $v0, $a2, 8
/* 403058 E0116A18 AE220000 */ sw $v0, ($s1)
/* 40305C E0116A1C 46002121 */ cvt.d.s $f4, $f4
/* 403060 E0116A20 46342102 */ mul.d $f4, $f4, $f20
/* 403064 E0116A24 00000000 */ nop
/* 403068 E0116A28 AC830004 */ sw $v1, 4($a0)
/* 40306C E0116A2C ACD60000 */ sw $s6, ($a2)
/* 403070 E0116A30 92030001 */ lbu $v1, 1($s0)
/* 403074 E0116A34 92040002 */ lbu $a0, 2($s0)
/* 403078 E0116A38 92050003 */ lbu $a1, 3($s0)
/* 40307C E0116A3C 24C20010 */ addiu $v0, $a2, 0x10
/* 403080 E0116A40 AE220000 */ sw $v0, ($s1)
/* 403084 E0116A44 46001002 */ mul.s $f0, $f2, $f0
/* 403088 E0116A48 00000000 */ nop
/* 40308C E0116A4C 24C20018 */ addiu $v0, $a2, 0x18
/* 403090 E0116A50 ACD40008 */ sw $s4, 8($a2)
/* 403094 E0116A54 AE220000 */ sw $v0, ($s1)
/* 403098 E0116A58 00031E00 */ sll $v1, $v1, 0x18
/* 40309C E0116A5C 46000021 */ cvt.d.s $f0, $f0
/* 4030A0 E0116A60 46340002 */ mul.d $f0, $f0, $f20
/* 4030A4 E0116A64 00000000 */ nop
/* 4030A8 E0116A68 00042400 */ sll $a0, $a0, 0x10
/* 4030AC E0116A6C 00641825 */ or $v1, $v1, $a0
/* 4030B0 E0116A70 00052A00 */ sll $a1, $a1, 8
/* 4030B4 E0116A74 00651825 */ or $v1, $v1, $a1
/* 4030B8 E0116A78 34630078 */ ori $v1, $v1, 0x78
/* 4030BC E0116A7C ACC30004 */ sw $v1, 4($a2)
/* 4030C0 E0116A80 3C03E011 */ lui $v1, %hi(D_E0116C6C)
/* 4030C4 E0116A84 8C636C6C */ lw $v1, %lo(D_E0116C6C)($v1)
/* 4030C8 E0116A88 46081082 */ mul.s $f2, $f2, $f8
/* 4030CC E0116A8C 00000000 */ nop
/* 4030D0 E0116A90 24C20020 */ addiu $v0, $a2, 0x20
/* 4030D4 E0116A94 AE220000 */ sw $v0, ($s1)
/* 4030D8 E0116A98 ACD40020 */ sw $s4, 0x20($a2)
/* 4030DC E0116A9C ACC3000C */ sw $v1, 0xc($a2)
/* 4030E0 E0116AA0 460010A1 */ cvt.d.s $f2, $f2
/* 4030E4 E0116AA4 46341082 */ mul.d $f2, $f2, $f20
/* 4030E8 E0116AA8 00000000 */ nop
/* 4030EC E0116AAC 4620328D */ trunc.w.d $f10, $f6
/* 4030F0 E0116AB0 44075000 */ mfc1 $a3, $f10
/* 4030F4 E0116AB4 4620228D */ trunc.w.d $f10, $f4
/* 4030F8 E0116AB8 44085000 */ mfc1 $t0, $f10
/* 4030FC E0116ABC 30E40FFF */ andi $a0, $a3, 0xfff
/* 403100 E0116AC0 24E200FC */ addiu $v0, $a3, 0xfc
/* 403104 E0116AC4 4620028D */ trunc.w.d $f10, $f0
/* 403108 E0116AC8 44075000 */ mfc1 $a3, $f10
/* 40310C E0116ACC 31030FFF */ andi $v1, $t0, 0xfff
/* 403110 E0116AD0 250500FC */ addiu $a1, $t0, 0xfc
/* 403114 E0116AD4 4620128D */ trunc.w.d $f10, $f2
/* 403118 E0116AD8 44085000 */ mfc1 $t0, $f10
/* 40311C E0116ADC 00042300 */ sll $a0, $a0, 0xc
/* 403120 E0116AE0 00751825 */ or $v1, $v1, $s5
/* 403124 E0116AE4 00832025 */ or $a0, $a0, $v1
/* 403128 E0116AE8 30420FFF */ andi $v0, $v0, 0xfff
/* 40312C E0116AEC 00021300 */ sll $v0, $v0, 0xc
/* 403130 E0116AF0 30A50FFF */ andi $a1, $a1, 0xfff
/* 403134 E0116AF4 00451025 */ or $v0, $v0, $a1
/* 403138 E0116AF8 30E30FFF */ andi $v1, $a3, 0xfff
/* 40313C E0116AFC 00031B00 */ sll $v1, $v1, 0xc
/* 403140 E0116B00 ACC20014 */ sw $v0, 0x14($a2)
/* 403144 E0116B04 31020FFF */ andi $v0, $t0, 0xfff
/* 403148 E0116B08 00551025 */ or $v0, $v0, $s5
/* 40314C E0116B0C 00621825 */ or $v1, $v1, $v0
/* 403150 E0116B10 ACC30018 */ sw $v1, 0x18($a2)
/* 403154 E0116B14 24E300FC */ addiu $v1, $a3, 0xfc
/* 403158 E0116B18 30630FFF */ andi $v1, $v1, 0xfff
/* 40315C E0116B1C 00031B00 */ sll $v1, $v1, 0xc
/* 403160 E0116B20 250200FC */ addiu $v0, $t0, 0xfc
/* 403164 E0116B24 30420FFF */ andi $v0, $v0, 0xfff
/* 403168 E0116B28 ACC40010 */ sw $a0, 0x10($a2)
/* 40316C E0116B2C 3C040100 */ lui $a0, 0x100
/* 403170 E0116B30 00441025 */ or $v0, $v0, $a0
/* 403174 E0116B34 00621825 */ or $v1, $v1, $v0
/* 403178 E0116B38 ACC3001C */ sw $v1, 0x1c($a2)
/* 40317C E0116B3C 3C03E011 */ lui $v1, %hi(D_E0116C64)
/* 403180 E0116B40 8C636C64 */ lw $v1, %lo(D_E0116C64)($v1)
/* 403184 E0116B44 24C20028 */ addiu $v0, $a2, 0x28
/* 403188 E0116B48 AE220000 */ sw $v0, ($s1)
/* 40318C E0116B4C 08045AFA */ j .LE0116BE8
/* 403190 E0116B50 ACC30024 */ sw $v1, 0x24($a2)
.LE0116B54:
/* 403194 E0116B54 8E240000 */ lw $a0, ($s1)
/* 403198 E0116B58 0080282D */ daddu $a1, $a0, $zero
/* 40319C E0116B5C 24840008 */ addiu $a0, $a0, 8
/* 4031A0 E0116B60 AE240000 */ sw $a0, ($s1)
/* 4031A4 E0116B64 ACB40000 */ sw $s4, ($a1)
/* 4031A8 E0116B68 3C03E011 */ lui $v1, %hi(D_E0116C68)
/* 4031AC E0116B6C 8C636C68 */ lw $v1, %lo(D_E0116C68)($v1)
/* 4031B0 E0116B70 24820008 */ addiu $v0, $a0, 8
/* 4031B4 E0116B74 AE220000 */ sw $v0, ($s1)
/* 4031B8 E0116B78 ACA30004 */ sw $v1, 4($a1)
/* 4031BC E0116B7C AC960000 */ sw $s6, ($a0)
/* 4031C0 E0116B80 92020001 */ lbu $v0, 1($s0)
/* 4031C4 E0116B84 92030002 */ lbu $v1, 2($s0)
/* 4031C8 E0116B88 92050003 */ lbu $a1, 3($s0)
/* 4031CC E0116B8C 92060000 */ lbu $a2, ($s0)
/* 4031D0 E0116B90 AC940008 */ sw $s4, 8($a0)
/* 4031D4 E0116B94 00021600 */ sll $v0, $v0, 0x18
/* 4031D8 E0116B98 00031C00 */ sll $v1, $v1, 0x10
/* 4031DC E0116B9C 00431025 */ or $v0, $v0, $v1
/* 4031E0 E0116BA0 00052A00 */ sll $a1, $a1, 8
/* 4031E4 E0116BA4 00451025 */ or $v0, $v0, $a1
/* 4031E8 E0116BA8 00461025 */ or $v0, $v0, $a2
/* 4031EC E0116BAC AC820004 */ sw $v0, 4($a0)
/* 4031F0 E0116BB0 2662FFFF */ addiu $v0, $s3, -1
/* 4031F4 E0116BB4 00021080 */ sll $v0, $v0, 2
/* 4031F8 E0116BB8 3C03E011 */ lui $v1, %hi(D_E0116C70)
/* 4031FC E0116BBC 00621821 */ addu $v1, $v1, $v0
/* 403200 E0116BC0 8C636C70 */ lw $v1, %lo(D_E0116C70)($v1)
/* 403204 E0116BC4 24820010 */ addiu $v0, $a0, 0x10
/* 403208 E0116BC8 AE220000 */ sw $v0, ($s1)
/* 40320C E0116BCC AC940010 */ sw $s4, 0x10($a0)
/* 403210 E0116BD0 AC83000C */ sw $v1, 0xc($a0)
/* 403214 E0116BD4 3C03E011 */ lui $v1, %hi(D_E0116C60)
/* 403218 E0116BD8 8C636C60 */ lw $v1, %lo(D_E0116C60)($v1)
/* 40321C E0116BDC 24820018 */ addiu $v0, $a0, 0x18
/* 403220 E0116BE0 AE220000 */ sw $v0, ($s1)
/* 403224 E0116BE4 AC830014 */ sw $v1, 0x14($a0)
.LE0116BE8:
/* 403228 E0116BE8 3C04D838 */ lui $a0, 0xd838
/* 40322C E0116BEC 8E220000 */ lw $v0, ($s1)
/* 403230 E0116BF0 34840002 */ ori $a0, $a0, 2
/* 403234 E0116BF4 0040182D */ daddu $v1, $v0, $zero
/* 403238 E0116BF8 24420008 */ addiu $v0, $v0, 8
/* 40323C E0116BFC AE220000 */ sw $v0, ($s1)
/* 403240 E0116C00 24020040 */ addiu $v0, $zero, 0x40
/* 403244 E0116C04 AC640000 */ sw $a0, ($v1)
/* 403248 E0116C08 AC620004 */ sw $v0, 4($v1)
/* 40324C E0116C0C 26730001 */ addiu $s3, $s3, 1
.LE0116C10:
/* 403250 E0116C10 26100030 */ addiu $s0, $s0, 0x30
/* 403254 E0116C14 8EE20008 */ lw $v0, 8($s7)
/* 403258 E0116C18 0262102A */ slt $v0, $s3, $v0
/* 40325C E0116C1C 1440FF55 */ bnez $v0, .LE0116974
/* 403260 E0116C20 26520030 */ addiu $s2, $s2, 0x30
.LE0116C24:
/* 403264 E0116C24 8FBF0034 */ lw $ra, 0x34($sp)
/* 403268 E0116C28 8FBE0030 */ lw $fp, 0x30($sp)
/* 40326C E0116C2C 8FB7002C */ lw $s7, 0x2c($sp)
/* 403270 E0116C30 8FB60028 */ lw $s6, 0x28($sp)
/* 403274 E0116C34 8FB50024 */ lw $s5, 0x24($sp)
/* 403278 E0116C38 8FB40020 */ lw $s4, 0x20($sp)
/* 40327C E0116C3C 8FB3001C */ lw $s3, 0x1c($sp)
/* 403280 E0116C40 8FB20018 */ lw $s2, 0x18($sp)
/* 403284 E0116C44 8FB10014 */ lw $s1, 0x14($sp)
/* 403288 E0116C48 8FB00010 */ lw $s0, 0x10($sp)
/* 40328C E0116C4C D7B40038 */ ldc1 $f20, 0x38($sp)
/* 403290 E0116C50 03E00008 */ jr $ra
/* 403294 E0116C54 27BD0040 */ addiu $sp, $sp, 0x40
/* 403298 E0116C58 00000000 */ nop
/* 40329C E0116C5C 00000000 */ nop

View File

@ -1,462 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_80253030_8FEE50
.double 0.65
dlabel D_80253038_8FEE58
.double 0.55
.section .text
glabel func_802421A0_8EDFC0
/* 8EDFC0 802421A0 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 8EDFC4 802421A4 AFB60040 */ sw $s6, 0x40($sp)
/* 8EDFC8 802421A8 0080B02D */ daddu $s6, $a0, $zero
/* 8EDFCC 802421AC AFB00028 */ sw $s0, 0x28($sp)
/* 8EDFD0 802421B0 00A0802D */ daddu $s0, $a1, $zero
/* 8EDFD4 802421B4 AFBF0044 */ sw $ra, 0x44($sp)
/* 8EDFD8 802421B8 AFB5003C */ sw $s5, 0x3c($sp)
/* 8EDFDC 802421BC AFB40038 */ sw $s4, 0x38($sp)
/* 8EDFE0 802421C0 AFB30034 */ sw $s3, 0x34($sp)
/* 8EDFE4 802421C4 AFB20030 */ sw $s2, 0x30($sp)
/* 8EDFE8 802421C8 1A00019F */ blez $s0, .L80242848
/* 8EDFEC 802421CC AFB1002C */ sw $s1, 0x2c($sp)
/* 8EDFF0 802421D0 3C04800A */ lui $a0, %hi(gMasterGfxPos)
/* 8EDFF4 802421D4 2484A66C */ addiu $a0, $a0, %lo(gMasterGfxPos)
/* 8EDFF8 802421D8 3C02DE00 */ lui $v0, 0xde00
/* 8EDFFC 802421DC 44900000 */ mtc1 $s0, $f0
/* 8EE000 802421E0 00000000 */ nop
/* 8EE004 802421E4 46800021 */ cvt.d.w $f0, $f0
/* 8EE008 802421E8 8C830000 */ lw $v1, ($a0)
/* 8EE00C 802421EC 3C018025 */ lui $at, %hi(D_80253030_8FEE50)
/* 8EE010 802421F0 D4223030 */ ldc1 $f2, %lo(D_80253030_8FEE50)($at)
/* 8EE014 802421F4 0060282D */ daddu $a1, $v1, $zero
/* 8EE018 802421F8 24630008 */ addiu $v1, $v1, 8
/* 8EE01C 802421FC AC830000 */ sw $v1, ($a0)
/* 8EE020 80242200 ACA20000 */ sw $v0, ($a1)
/* 8EE024 80242204 3C028025 */ lui $v0, %hi(D_80252D50_8FEB70)
/* 8EE028 80242208 24422D50 */ addiu $v0, $v0, %lo(D_80252D50_8FEB70)
/* 8EE02C 8024220C ACA20004 */ sw $v0, 4($a1)
/* 8EE030 80242210 24620008 */ addiu $v0, $v1, 8
/* 8EE034 80242214 AC820000 */ sw $v0, ($a0)
/* 8EE038 80242218 3C02E700 */ lui $v0, 0xe700
/* 8EE03C 8024221C 46220002 */ mul.d $f0, $f0, $f2
/* 8EE040 80242220 00000000 */ nop
/* 8EE044 80242224 AC620000 */ sw $v0, ($v1)
/* 8EE048 80242228 24620010 */ addiu $v0, $v1, 0x10
/* 8EE04C 8024222C AC600004 */ sw $zero, 4($v1)
/* 8EE050 80242230 AC820000 */ sw $v0, ($a0)
/* 8EE054 80242234 3C02FA00 */ lui $v0, 0xfa00
/* 8EE058 80242238 3C0141E0 */ lui $at, 0x41e0
/* 8EE05C 8024223C 44811800 */ mtc1 $at, $f3
/* 8EE060 80242240 44801000 */ mtc1 $zero, $f2
/* 8EE064 80242244 246D000C */ addiu $t5, $v1, 0xc
/* 8EE068 80242248 4620103E */ c.le.d $f2, $f0
/* 8EE06C 8024224C 00000000 */ nop
/* 8EE070 80242250 45010005 */ bc1t .L80242268
/* 8EE074 80242254 AC620008 */ sw $v0, 8($v1)
/* 8EE078 80242258 4620010D */ trunc.w.d $f4, $f0
/* 8EE07C 8024225C 440C2000 */ mfc1 $t4, $f4
/* 8EE080 80242260 080908A1 */ j .L80242284
/* 8EE084 80242264 3C091078 */ lui $t1, 0x1078
.L80242268:
/* 8EE088 80242268 46220001 */ sub.d $f0, $f0, $f2
/* 8EE08C 8024226C 3C028000 */ lui $v0, 0x8000
/* 8EE090 80242270 4620010D */ trunc.w.d $f4, $f0
/* 8EE094 80242274 440C2000 */ mfc1 $t4, $f4
/* 8EE098 80242278 00000000 */ nop
/* 8EE09C 8024227C 01826025 */ or $t4, $t4, $v0
/* 8EE0A0 80242280 3C091078 */ lui $t1, 0x1078
.L80242284:
/* 8EE0A4 80242284 35291800 */ ori $t1, $t1, 0x1800
/* 8EE0A8 80242288 3C0BF647 */ lui $t3, 0xf647
/* 8EE0AC 8024228C 356BC300 */ ori $t3, $t3, 0xc300
/* 8EE0B0 80242290 3C0A0008 */ lui $t2, 8
/* 8EE0B4 80242294 354A40AC */ ori $t2, $t2, 0x40ac
/* 8EE0B8 80242298 2404001E */ addiu $a0, $zero, 0x1e
/* 8EE0BC 8024229C 24050028 */ addiu $a1, $zero, 0x28
/* 8EE0C0 802422A0 24060104 */ addiu $a2, $zero, 0x104
/* 8EE0C4 802422A4 3C08800A */ lui $t0, %hi(gMasterGfxPos)
/* 8EE0C8 802422A8 2508A66C */ addiu $t0, $t0, %lo(gMasterGfxPos)
/* 8EE0CC 802422AC 318200FF */ andi $v0, $t4, 0xff
/* 8EE0D0 802422B0 00491025 */ or $v0, $v0, $t1
/* 8EE0D4 802422B4 44901000 */ mtc1 $s0, $f2
/* 8EE0D8 802422B8 00000000 */ nop
/* 8EE0DC 802422BC 468010A1 */ cvt.d.w $f2, $f2
/* 8EE0E0 802422C0 8D030000 */ lw $v1, ($t0)
/* 8EE0E4 802422C4 3C018025 */ lui $at, %hi(D_80253038_8FEE58)
/* 8EE0E8 802422C8 D4203038 */ ldc1 $f0, %lo(D_80253038_8FEE58)($at)
/* 8EE0EC 802422CC 24110001 */ addiu $s1, $zero, 1
/* 8EE0F0 802422D0 ADA20000 */ sw $v0, ($t5)
/* 8EE0F4 802422D4 0060102D */ daddu $v0, $v1, $zero
/* 8EE0F8 802422D8 24630008 */ addiu $v1, $v1, 8
/* 8EE0FC 802422DC AD030000 */ sw $v1, ($t0)
/* 8EE100 802422E0 AC4B0000 */ sw $t3, ($v0)
/* 8EE104 802422E4 AC4A0004 */ sw $t2, 4($v0)
/* 8EE108 802422E8 24620008 */ addiu $v0, $v1, 8
/* 8EE10C 802422EC AD020000 */ sw $v0, ($t0)
/* 8EE110 802422F0 3C02E700 */ lui $v0, 0xe700
/* 8EE114 802422F4 46201082 */ mul.d $f2, $f2, $f0
/* 8EE118 802422F8 00000000 */ nop
/* 8EE11C 802422FC AC620000 */ sw $v0, ($v1)
/* 8EE120 80242300 24020006 */ addiu $v0, $zero, 6
/* 8EE124 80242304 AC600004 */ sw $zero, 4($v1)
/* 8EE128 80242308 AFA20010 */ sw $v0, 0x10($sp)
/* 8EE12C 8024230C AFA00014 */ sw $zero, 0x14($sp)
/* 8EE130 80242310 AFB10018 */ sw $s1, 0x18($sp)
/* 8EE134 80242314 AFB00020 */ sw $s0, 0x20($sp)
/* 8EE138 80242318 4620110D */ trunc.w.d $f4, $f2
/* 8EE13C 8024231C E7A4001C */ swc1 $f4, 0x1c($sp)
/* 8EE140 80242320 0C04B6D6 */ jal msg_draw_frame
/* 8EE144 80242324 2407009B */ addiu $a3, $zero, 0x9b
/* 8EE148 80242328 3C04000B */ lui $a0, 0xb
/* 8EE14C 8024232C 348400FC */ ori $a0, $a0, 0xfc
/* 8EE150 80242330 0C04991D */ jal get_msg_width
/* 8EE154 80242334 0000282D */ daddu $a1, $zero, $zero
/* 8EE158 80242338 3C04000B */ lui $a0, 0xb
/* 8EE15C 8024233C 348400FC */ ori $a0, $a0, 0xfc
/* 8EE160 80242340 241300CE */ addiu $s3, $zero, 0xce
/* 8EE164 80242344 02622823 */ subu $a1, $s3, $v0
/* 8EE168 80242348 24060032 */ addiu $a2, $zero, 0x32
/* 8EE16C 8024234C 0200382D */ daddu $a3, $s0, $zero
/* 8EE170 80242350 AFA00010 */ sw $zero, 0x10($sp)
/* 8EE174 80242354 0C04993B */ jal draw_msg
/* 8EE178 80242358 AFB10014 */ sw $s1, 0x14($sp)
/* 8EE17C 8024235C 240500D8 */ addiu $a1, $zero, 0xd8
/* 8EE180 80242360 24060033 */ addiu $a2, $zero, 0x33
/* 8EE184 80242364 3C128011 */ lui $s2, %hi(gPlayerData)
/* 8EE188 80242368 2652F290 */ addiu $s2, $s2, %lo(gPlayerData)
/* 8EE18C 8024236C 0220382D */ daddu $a3, $s1, $zero
/* 8EE190 80242370 8E4402B4 */ lw $a0, 0x2b4($s2)
/* 8EE194 80242374 24140002 */ addiu $s4, $zero, 2
/* 8EE198 80242378 AFA00010 */ sw $zero, 0x10($sp)
/* 8EE19C 8024237C AFB00014 */ sw $s0, 0x14($sp)
/* 8EE1A0 80242380 0C049DA7 */ jal draw_number
/* 8EE1A4 80242384 AFB40018 */ sw $s4, 0x18($sp)
/* 8EE1A8 80242388 3C04000B */ lui $a0, 0xb
/* 8EE1AC 8024238C 348400FD */ ori $a0, $a0, 0xfd
/* 8EE1B0 80242390 0C04991D */ jal get_msg_width
/* 8EE1B4 80242394 0000282D */ daddu $a1, $zero, $zero
/* 8EE1B8 80242398 3C04000B */ lui $a0, 0xb
/* 8EE1BC 8024239C 348400FD */ ori $a0, $a0, 0xfd
/* 8EE1C0 802423A0 02622823 */ subu $a1, $s3, $v0
/* 8EE1C4 802423A4 24060041 */ addiu $a2, $zero, 0x41
/* 8EE1C8 802423A8 0200382D */ daddu $a3, $s0, $zero
/* 8EE1CC 802423AC AFA00010 */ sw $zero, 0x10($sp)
/* 8EE1D0 802423B0 0C04993B */ jal draw_msg
/* 8EE1D4 802423B4 AFB10014 */ sw $s1, 0x14($sp)
/* 8EE1D8 802423B8 240500E7 */ addiu $a1, $zero, 0xe7
/* 8EE1DC 802423BC 24060042 */ addiu $a2, $zero, 0x42
/* 8EE1E0 802423C0 0220382D */ daddu $a3, $s1, $zero
/* 8EE1E4 802423C4 96C40024 */ lhu $a0, 0x24($s6)
/* 8EE1E8 802423C8 24150003 */ addiu $s5, $zero, 3
/* 8EE1EC 802423CC AFA00010 */ sw $zero, 0x10($sp)
/* 8EE1F0 802423D0 AFB00014 */ sw $s0, 0x14($sp)
/* 8EE1F4 802423D4 0C049DA7 */ jal draw_number
/* 8EE1F8 802423D8 AFB50018 */ sw $s5, 0x18($sp)
/* 8EE1FC 802423DC 3C04001F */ lui $a0, 0x1f
/* 8EE200 802423E0 34840034 */ ori $a0, $a0, 0x34
/* 8EE204 802423E4 240500E8 */ addiu $a1, $zero, 0xe8
/* 8EE208 802423E8 2406003F */ addiu $a2, $zero, 0x3f
/* 8EE20C 802423EC 0200382D */ daddu $a3, $s0, $zero
/* 8EE210 802423F0 AFA00010 */ sw $zero, 0x10($sp)
/* 8EE214 802423F4 0C04993B */ jal draw_msg
/* 8EE218 802423F8 AFA00014 */ sw $zero, 0x14($sp)
/* 8EE21C 802423FC 24040050 */ addiu $a0, $zero, 0x50
/* 8EE220 80242400 240500F4 */ addiu $a1, $zero, 0xf4
/* 8EE224 80242404 24060042 */ addiu $a2, $zero, 0x42
/* 8EE228 80242408 0220382D */ daddu $a3, $s1, $zero
/* 8EE22C 8024240C AFA00010 */ sw $zero, 0x10($sp)
/* 8EE230 80242410 AFB00014 */ sw $s0, 0x14($sp)
/* 8EE234 80242414 0C049DA7 */ jal draw_number
/* 8EE238 80242418 AFB40018 */ sw $s4, 0x18($sp)
/* 8EE23C 8024241C 9642032C */ lhu $v0, 0x32c($s2)
/* 8EE240 80242420 1440000A */ bnez $v0, .L8024244C
/* 8EE244 80242424 3C04000B */ lui $a0, 0xb
/* 8EE248 80242428 348400FA */ ori $a0, $a0, 0xfa
/* 8EE24C 8024242C 2405006D */ addiu $a1, $zero, 0x6d
/* 8EE250 80242430 24060050 */ addiu $a2, $zero, 0x50
/* 8EE254 80242434 0200382D */ daddu $a3, $s0, $zero
/* 8EE258 80242438 AFA00010 */ sw $zero, 0x10($sp)
/* 8EE25C 8024243C 0C04993B */ jal draw_msg
/* 8EE260 80242440 AFB10014 */ sw $s1, 0x14($sp)
/* 8EE264 80242444 08090937 */ j .L802424DC
/* 8EE268 80242448 3C04000B */ lui $a0, 0xb
.L8024244C:
/* 8EE26C 8024244C 348400FB */ ori $a0, $a0, 0xfb
/* 8EE270 80242450 0C04991D */ jal get_msg_width
/* 8EE274 80242454 0000282D */ daddu $a1, $zero, $zero
/* 8EE278 80242458 3C04000B */ lui $a0, 0xb
/* 8EE27C 8024245C 348400FB */ ori $a0, $a0, 0xfb
/* 8EE280 80242460 02622823 */ subu $a1, $s3, $v0
/* 8EE284 80242464 24060050 */ addiu $a2, $zero, 0x50
/* 8EE288 80242468 0200382D */ daddu $a3, $s0, $zero
/* 8EE28C 8024246C AFA00010 */ sw $zero, 0x10($sp)
/* 8EE290 80242470 0C04993B */ jal draw_msg
/* 8EE294 80242474 AFB10014 */ sw $s1, 0x14($sp)
/* 8EE298 80242478 240500E7 */ addiu $a1, $zero, 0xe7
/* 8EE29C 8024247C 24060051 */ addiu $a2, $zero, 0x51
/* 8EE2A0 80242480 9644032C */ lhu $a0, 0x32c($s2)
/* 8EE2A4 80242484 24070001 */ addiu $a3, $zero, 1
/* 8EE2A8 80242488 AFA00010 */ sw $zero, 0x10($sp)
/* 8EE2AC 8024248C AFB00014 */ sw $s0, 0x14($sp)
/* 8EE2B0 80242490 0C049DA7 */ jal draw_number
/* 8EE2B4 80242494 AFB50018 */ sw $s5, 0x18($sp)
/* 8EE2B8 80242498 3C04001F */ lui $a0, 0x1f
/* 8EE2BC 8024249C 34840034 */ ori $a0, $a0, 0x34
/* 8EE2C0 802424A0 240500E8 */ addiu $a1, $zero, 0xe8
/* 8EE2C4 802424A4 2406004E */ addiu $a2, $zero, 0x4e
/* 8EE2C8 802424A8 0200382D */ daddu $a3, $s0, $zero
/* 8EE2CC 802424AC AFA00010 */ sw $zero, 0x10($sp)
/* 8EE2D0 802424B0 0C04993B */ jal draw_msg
/* 8EE2D4 802424B4 AFA00014 */ sw $zero, 0x14($sp)
/* 8EE2D8 802424B8 240400A0 */ addiu $a0, $zero, 0xa0
/* 8EE2DC 802424BC 240500F4 */ addiu $a1, $zero, 0xf4
/* 8EE2E0 802424C0 24060050 */ addiu $a2, $zero, 0x50
/* 8EE2E4 802424C4 24070001 */ addiu $a3, $zero, 1
/* 8EE2E8 802424C8 AFA00010 */ sw $zero, 0x10($sp)
/* 8EE2EC 802424CC AFB00014 */ sw $s0, 0x14($sp)
/* 8EE2F0 802424D0 0C049DA7 */ jal draw_number
/* 8EE2F4 802424D4 AFB40018 */ sw $s4, 0x18($sp)
/* 8EE2F8 802424D8 3C04000B */ lui $a0, 0xb
.L802424DC:
/* 8EE2FC 802424DC 348400FE */ ori $a0, $a0, 0xfe
/* 8EE300 802424E0 0C04991D */ jal get_msg_width
/* 8EE304 802424E4 0000282D */ daddu $a1, $zero, $zero
/* 8EE308 802424E8 86C40026 */ lh $a0, 0x26($s6)
/* 8EE30C 802424EC 1480000C */ bnez $a0, .L80242520
/* 8EE310 802424F0 0040182D */ daddu $v1, $v0, $zero
/* 8EE314 802424F4 3C04000B */ lui $a0, 0xb
/* 8EE318 802424F8 348400FA */ ori $a0, $a0, 0xfa
/* 8EE31C 802424FC 2405006E */ addiu $a1, $zero, 0x6e
/* 8EE320 80242500 2406005F */ addiu $a2, $zero, 0x5f
/* 8EE324 80242504 0200382D */ daddu $a3, $s0, $zero
/* 8EE328 80242508 24020001 */ addiu $v0, $zero, 1
/* 8EE32C 8024250C AFA00010 */ sw $zero, 0x10($sp)
/* 8EE330 80242510 0C04993B */ jal draw_msg
/* 8EE334 80242514 AFA20014 */ sw $v0, 0x14($sp)
/* 8EE338 80242518 0809097C */ j .L802425F0
/* 8EE33C 8024251C 00000000 */ nop
.L80242520:
/* 8EE340 80242520 2402FFFF */ addiu $v0, $zero, -1
/* 8EE344 80242524 1482000F */ bne $a0, $v0, .L80242564
/* 8EE348 80242528 3C04000B */ lui $a0, 0xb
/* 8EE34C 8024252C 348400FE */ ori $a0, $a0, 0xfe
/* 8EE350 80242530 240500CE */ addiu $a1, $zero, 0xce
/* 8EE354 80242534 00A32823 */ subu $a1, $a1, $v1
/* 8EE358 80242538 2406005F */ addiu $a2, $zero, 0x5f
/* 8EE35C 8024253C 0200382D */ daddu $a3, $s0, $zero
/* 8EE360 80242540 24020001 */ addiu $v0, $zero, 1
/* 8EE364 80242544 AFA00010 */ sw $zero, 0x10($sp)
/* 8EE368 80242548 0C04993B */ jal draw_msg
/* 8EE36C 8024254C AFA20014 */ sw $v0, 0x14($sp)
/* 8EE370 80242550 0000202D */ daddu $a0, $zero, $zero
/* 8EE374 80242554 240500E7 */ addiu $a1, $zero, 0xe7
/* 8EE378 80242558 24060060 */ addiu $a2, $zero, 0x60
/* 8EE37C 8024255C 08090966 */ j .L80242598
/* 8EE380 80242560 24070001 */ addiu $a3, $zero, 1
.L80242564:
/* 8EE384 80242564 348400FE */ ori $a0, $a0, 0xfe
/* 8EE388 80242568 240500CE */ addiu $a1, $zero, 0xce
/* 8EE38C 8024256C 00A32823 */ subu $a1, $a1, $v1
/* 8EE390 80242570 2406005F */ addiu $a2, $zero, 0x5f
/* 8EE394 80242574 0200382D */ daddu $a3, $s0, $zero
/* 8EE398 80242578 24020001 */ addiu $v0, $zero, 1
/* 8EE39C 8024257C AFA00010 */ sw $zero, 0x10($sp)
/* 8EE3A0 80242580 0C04993B */ jal draw_msg
/* 8EE3A4 80242584 AFA20014 */ sw $v0, 0x14($sp)
/* 8EE3A8 80242588 240500E7 */ addiu $a1, $zero, 0xe7
/* 8EE3AC 8024258C 24060060 */ addiu $a2, $zero, 0x60
/* 8EE3B0 80242590 24070001 */ addiu $a3, $zero, 1
/* 8EE3B4 80242594 86C40026 */ lh $a0, 0x26($s6)
.L80242598:
/* 8EE3B8 80242598 24020003 */ addiu $v0, $zero, 3
/* 8EE3BC 8024259C AFA00010 */ sw $zero, 0x10($sp)
/* 8EE3C0 802425A0 AFB00014 */ sw $s0, 0x14($sp)
/* 8EE3C4 802425A4 0C049DA7 */ jal draw_number
/* 8EE3C8 802425A8 AFA20018 */ sw $v0, 0x18($sp)
/* 8EE3CC 802425AC 3C04001F */ lui $a0, 0x1f
/* 8EE3D0 802425B0 34840034 */ ori $a0, $a0, 0x34
/* 8EE3D4 802425B4 240500E8 */ addiu $a1, $zero, 0xe8
/* 8EE3D8 802425B8 2406005D */ addiu $a2, $zero, 0x5d
/* 8EE3DC 802425BC 0200382D */ daddu $a3, $s0, $zero
/* 8EE3E0 802425C0 AFA00010 */ sw $zero, 0x10($sp)
/* 8EE3E4 802425C4 0C04993B */ jal draw_msg
/* 8EE3E8 802425C8 AFA00014 */ sw $zero, 0x14($sp)
/* 8EE3EC 802425CC 240500F4 */ addiu $a1, $zero, 0xf4
/* 8EE3F0 802425D0 2406005F */ addiu $a2, $zero, 0x5f
/* 8EE3F4 802425D4 24070001 */ addiu $a3, $zero, 1
/* 8EE3F8 802425D8 86C40028 */ lh $a0, 0x28($s6)
/* 8EE3FC 802425DC 24020002 */ addiu $v0, $zero, 2
/* 8EE400 802425E0 AFA00010 */ sw $zero, 0x10($sp)
/* 8EE404 802425E4 AFB00014 */ sw $s0, 0x14($sp)
/* 8EE408 802425E8 0C049DA7 */ jal draw_number
/* 8EE40C 802425EC AFA20018 */ sw $v0, 0x18($sp)
.L802425F0:
/* 8EE410 802425F0 3C118011 */ lui $s1, %hi(gPlayerData)
/* 8EE414 802425F4 2631F290 */ addiu $s1, $s1, %lo(gPlayerData)
/* 8EE418 802425F8 962202C0 */ lhu $v0, 0x2c0($s1)
/* 8EE41C 802425FC 1440000B */ bnez $v0, .L8024262C
/* 8EE420 80242600 3C04000B */ lui $a0, 0xb
/* 8EE424 80242604 348400FA */ ori $a0, $a0, 0xfa
/* 8EE428 80242608 2405006D */ addiu $a1, $zero, 0x6d
/* 8EE42C 8024260C 2406006E */ addiu $a2, $zero, 0x6e
/* 8EE430 80242610 0200382D */ daddu $a3, $s0, $zero
/* 8EE434 80242614 24020001 */ addiu $v0, $zero, 1
/* 8EE438 80242618 AFA00010 */ sw $zero, 0x10($sp)
/* 8EE43C 8024261C 0C04993B */ jal draw_msg
/* 8EE440 80242620 AFA20014 */ sw $v0, 0x14($sp)
/* 8EE444 80242624 080909B3 */ j .L802426CC
/* 8EE448 80242628 3C04000B */ lui $a0, 0xb
.L8024262C:
/* 8EE44C 8024262C 348400FF */ ori $a0, $a0, 0xff
/* 8EE450 80242630 0C04991D */ jal get_msg_width
/* 8EE454 80242634 0000282D */ daddu $a1, $zero, $zero
/* 8EE458 80242638 3C04000B */ lui $a0, 0xb
/* 8EE45C 8024263C 348400FF */ ori $a0, $a0, 0xff
/* 8EE460 80242640 240500CE */ addiu $a1, $zero, 0xce
/* 8EE464 80242644 00A22823 */ subu $a1, $a1, $v0
/* 8EE468 80242648 2406006E */ addiu $a2, $zero, 0x6e
/* 8EE46C 8024264C 0200382D */ daddu $a3, $s0, $zero
/* 8EE470 80242650 24020001 */ addiu $v0, $zero, 1
/* 8EE474 80242654 AFA00010 */ sw $zero, 0x10($sp)
/* 8EE478 80242658 0C04993B */ jal draw_msg
/* 8EE47C 8024265C AFA20014 */ sw $v0, 0x14($sp)
/* 8EE480 80242660 240500E7 */ addiu $a1, $zero, 0xe7
/* 8EE484 80242664 2406006F */ addiu $a2, $zero, 0x6f
/* 8EE488 80242668 24070001 */ addiu $a3, $zero, 1
/* 8EE48C 8024266C AFA00010 */ sw $zero, 0x10($sp)
/* 8EE490 80242670 AFB00014 */ sw $s0, 0x14($sp)
/* 8EE494 80242674 962402C2 */ lhu $a0, 0x2c2($s1)
/* 8EE498 80242678 24020003 */ addiu $v0, $zero, 3
/* 8EE49C 8024267C 0C049DA7 */ jal draw_number
/* 8EE4A0 80242680 AFA20018 */ sw $v0, 0x18($sp)
/* 8EE4A4 80242684 3C04001F */ lui $a0, 0x1f
/* 8EE4A8 80242688 34840034 */ ori $a0, $a0, 0x34
/* 8EE4AC 8024268C 240500E8 */ addiu $a1, $zero, 0xe8
/* 8EE4B0 80242690 2406006C */ addiu $a2, $zero, 0x6c
/* 8EE4B4 80242694 0200382D */ daddu $a3, $s0, $zero
/* 8EE4B8 80242698 AFA00010 */ sw $zero, 0x10($sp)
/* 8EE4BC 8024269C 0C04993B */ jal draw_msg
/* 8EE4C0 802426A0 AFA00014 */ sw $zero, 0x14($sp)
/* 8EE4C4 802426A4 240500F4 */ addiu $a1, $zero, 0xf4
/* 8EE4C8 802426A8 2406006F */ addiu $a2, $zero, 0x6f
/* 8EE4CC 802426AC 24070001 */ addiu $a3, $zero, 1
/* 8EE4D0 802426B0 AFA00010 */ sw $zero, 0x10($sp)
/* 8EE4D4 802426B4 AFB00014 */ sw $s0, 0x14($sp)
/* 8EE4D8 802426B8 962402C0 */ lhu $a0, 0x2c0($s1)
/* 8EE4DC 802426BC 24020002 */ addiu $v0, $zero, 2
/* 8EE4E0 802426C0 0C049DA7 */ jal draw_number
/* 8EE4E4 802426C4 AFA20018 */ sw $v0, 0x18($sp)
/* 8EE4E8 802426C8 3C04000B */ lui $a0, 0xb
.L802426CC:
/* 8EE4EC 802426CC 348400F4 */ ori $a0, $a0, 0xf4
/* 8EE4F0 802426D0 0C04991D */ jal get_msg_width
/* 8EE4F4 802426D4 0000282D */ daddu $a1, $zero, $zero
/* 8EE4F8 802426D8 3C04000B */ lui $a0, 0xb
/* 8EE4FC 802426DC 348400F4 */ ori $a0, $a0, 0xf4
/* 8EE500 802426E0 241400CE */ addiu $s4, $zero, 0xce
/* 8EE504 802426E4 02822823 */ subu $a1, $s4, $v0
/* 8EE508 802426E8 2406007D */ addiu $a2, $zero, 0x7d
/* 8EE50C 802426EC 0200382D */ daddu $a3, $s0, $zero
/* 8EE510 802426F0 24120001 */ addiu $s2, $zero, 1
/* 8EE514 802426F4 AFA00010 */ sw $zero, 0x10($sp)
/* 8EE518 802426F8 0C04993B */ jal draw_msg
/* 8EE51C 802426FC AFB20014 */ sw $s2, 0x14($sp)
/* 8EE520 80242700 240500D8 */ addiu $a1, $zero, 0xd8
/* 8EE524 80242704 2406007E */ addiu $a2, $zero, 0x7e
/* 8EE528 80242708 0240382D */ daddu $a3, $s2, $zero
/* 8EE52C 8024270C 3C118011 */ lui $s1, %hi(gPlayerData)
/* 8EE530 80242710 2631F290 */ addiu $s1, $s1, %lo(gPlayerData)
/* 8EE534 80242714 AFA00010 */ sw $zero, 0x10($sp)
/* 8EE538 80242718 AFB00014 */ sw $s0, 0x14($sp)
/* 8EE53C 8024271C 962402A2 */ lhu $a0, 0x2a2($s1)
/* 8EE540 80242720 24130002 */ addiu $s3, $zero, 2
/* 8EE544 80242724 0C049DA7 */ jal draw_number
/* 8EE548 80242728 AFB30018 */ sw $s3, 0x18($sp)
/* 8EE54C 8024272C 3C04000B */ lui $a0, 0xb
/* 8EE550 80242730 348400F7 */ ori $a0, $a0, 0xf7
/* 8EE554 80242734 0C04991D */ jal get_msg_width
/* 8EE558 80242738 0000282D */ daddu $a1, $zero, $zero
/* 8EE55C 8024273C 3C04000B */ lui $a0, 0xb
/* 8EE560 80242740 348400F7 */ ori $a0, $a0, 0xf7
/* 8EE564 80242744 02822823 */ subu $a1, $s4, $v0
/* 8EE568 80242748 2406008C */ addiu $a2, $zero, 0x8c
/* 8EE56C 8024274C 0200382D */ daddu $a3, $s0, $zero
/* 8EE570 80242750 AFA00010 */ sw $zero, 0x10($sp)
/* 8EE574 80242754 0C04993B */ jal draw_msg
/* 8EE578 80242758 AFB20014 */ sw $s2, 0x14($sp)
/* 8EE57C 8024275C 240500D8 */ addiu $a1, $zero, 0xd8
/* 8EE580 80242760 2406008D */ addiu $a2, $zero, 0x8d
/* 8EE584 80242764 9624029C */ lhu $a0, 0x29c($s1)
/* 8EE588 80242768 0240382D */ daddu $a3, $s2, $zero
/* 8EE58C 8024276C AFA00010 */ sw $zero, 0x10($sp)
/* 8EE590 80242770 AFB00014 */ sw $s0, 0x14($sp)
/* 8EE594 80242774 0C049DA7 */ jal draw_number
/* 8EE598 80242778 AFB30018 */ sw $s3, 0x18($sp)
/* 8EE59C 8024277C 3C04000B */ lui $a0, 0xb
/* 8EE5A0 80242780 348400F8 */ ori $a0, $a0, 0xf8
/* 8EE5A4 80242784 0C04991D */ jal get_msg_width
/* 8EE5A8 80242788 0000282D */ daddu $a1, $zero, $zero
/* 8EE5AC 8024278C 3C04000B */ lui $a0, 0xb
/* 8EE5B0 80242790 348400F8 */ ori $a0, $a0, 0xf8
/* 8EE5B4 80242794 02822823 */ subu $a1, $s4, $v0
/* 8EE5B8 80242798 2406009B */ addiu $a2, $zero, 0x9b
/* 8EE5BC 8024279C 0200382D */ daddu $a3, $s0, $zero
/* 8EE5C0 802427A0 AFA00010 */ sw $zero, 0x10($sp)
/* 8EE5C4 802427A4 0C04993B */ jal draw_msg
/* 8EE5C8 802427A8 AFB20014 */ sw $s2, 0x14($sp)
/* 8EE5CC 802427AC 240500D8 */ addiu $a1, $zero, 0xd8
/* 8EE5D0 802427B0 2406009C */ addiu $a2, $zero, 0x9c
/* 8EE5D4 802427B4 9624029E */ lhu $a0, 0x29e($s1)
/* 8EE5D8 802427B8 0240382D */ daddu $a3, $s2, $zero
/* 8EE5DC 802427BC AFA00010 */ sw $zero, 0x10($sp)
/* 8EE5E0 802427C0 AFB00014 */ sw $s0, 0x14($sp)
/* 8EE5E4 802427C4 0C049DA7 */ jal draw_number
/* 8EE5E8 802427C8 AFB30018 */ sw $s3, 0x18($sp)
/* 8EE5EC 802427CC 962202A0 */ lhu $v0, 0x2a0($s1)
/* 8EE5F0 802427D0 1440000A */ bnez $v0, .L802427FC
/* 8EE5F4 802427D4 3C04000B */ lui $a0, 0xb
/* 8EE5F8 802427D8 348400FA */ ori $a0, $a0, 0xfa
/* 8EE5FC 802427DC 2405006D */ addiu $a1, $zero, 0x6d
/* 8EE600 802427E0 240600AA */ addiu $a2, $zero, 0xaa
/* 8EE604 802427E4 0200382D */ daddu $a3, $s0, $zero
/* 8EE608 802427E8 AFA00010 */ sw $zero, 0x10($sp)
/* 8EE60C 802427EC 0C04993B */ jal draw_msg
/* 8EE610 802427F0 AFB20014 */ sw $s2, 0x14($sp)
/* 8EE614 802427F4 08090A12 */ j .L80242848
/* 8EE618 802427F8 00000000 */ nop
.L802427FC:
/* 8EE61C 802427FC 348400F9 */ ori $a0, $a0, 0xf9
/* 8EE620 80242800 0C04991D */ jal get_msg_width
/* 8EE624 80242804 0000282D */ daddu $a1, $zero, $zero
/* 8EE628 80242808 3C04000B */ lui $a0, 0xb
/* 8EE62C 8024280C 348400F9 */ ori $a0, $a0, 0xf9
/* 8EE630 80242810 02822823 */ subu $a1, $s4, $v0
/* 8EE634 80242814 240600AA */ addiu $a2, $zero, 0xaa
/* 8EE638 80242818 0200382D */ daddu $a3, $s0, $zero
/* 8EE63C 8024281C AFA00010 */ sw $zero, 0x10($sp)
/* 8EE640 80242820 0C04993B */ jal draw_msg
/* 8EE644 80242824 AFB20014 */ sw $s2, 0x14($sp)
/* 8EE648 80242828 240500D8 */ addiu $a1, $zero, 0xd8
/* 8EE64C 8024282C 240600AB */ addiu $a2, $zero, 0xab
/* 8EE650 80242830 962402A0 */ lhu $a0, 0x2a0($s1)
/* 8EE654 80242834 24070001 */ addiu $a3, $zero, 1
/* 8EE658 80242838 AFA00010 */ sw $zero, 0x10($sp)
/* 8EE65C 8024283C AFB00014 */ sw $s0, 0x14($sp)
/* 8EE660 80242840 0C049DA7 */ jal draw_number
/* 8EE664 80242844 AFB30018 */ sw $s3, 0x18($sp)
.L80242848:
/* 8EE668 80242848 8FBF0044 */ lw $ra, 0x44($sp)
/* 8EE66C 8024284C 8FB60040 */ lw $s6, 0x40($sp)
/* 8EE670 80242850 8FB5003C */ lw $s5, 0x3c($sp)
/* 8EE674 80242854 8FB40038 */ lw $s4, 0x38($sp)
/* 8EE678 80242858 8FB30034 */ lw $s3, 0x34($sp)
/* 8EE67C 8024285C 8FB20030 */ lw $s2, 0x30($sp)
/* 8EE680 80242860 8FB1002C */ lw $s1, 0x2c($sp)
/* 8EE684 80242864 8FB00028 */ lw $s0, 0x28($sp)
/* 8EE688 80242868 03E00008 */ jr $ra
/* 8EE68C 8024286C 27BD0048 */ addiu $sp, $sp, 0x48

View File

@ -1,119 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel jtbl_80253040_8FEE60
.word .L802428B4_8EE6D4, .L802428DC_8EE6FC, .L8024293C_8EE75C, .L80242974_8EE794, .L80242990_8EE7B0, 0, 0, 0
.section .text
glabel func_80242870_8EE690
/* 8EE690 80242870 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 8EE694 80242874 0000202D */ daddu $a0, $zero, $zero
/* 8EE698 80242878 3C05FD05 */ lui $a1, 0xfd05
/* 8EE69C 8024287C 34A50F8A */ ori $a1, $a1, 0xf8a
/* 8EE6A0 80242880 AFBF001C */ sw $ra, 0x1c($sp)
/* 8EE6A4 80242884 0C0B1EAF */ jal evt_get_variable
/* 8EE6A8 80242888 AFB00018 */ sw $s0, 0x18($sp)
/* 8EE6AC 8024288C 0040802D */ daddu $s0, $v0, $zero
/* 8EE6B0 80242890 96030000 */ lhu $v1, ($s0)
/* 8EE6B4 80242894 2C620005 */ sltiu $v0, $v1, 5
/* 8EE6B8 80242898 10400053 */ beqz $v0, .L802429E8
/* 8EE6BC 8024289C 00031080 */ sll $v0, $v1, 2
/* 8EE6C0 802428A0 3C018025 */ lui $at, %hi(jtbl_80253040_8FEE60)
/* 8EE6C4 802428A4 00220821 */ addu $at, $at, $v0
/* 8EE6C8 802428A8 8C223040 */ lw $v0, %lo(jtbl_80253040_8FEE60)($at)
/* 8EE6CC 802428AC 00400008 */ jr $v0
/* 8EE6D0 802428B0 00000000 */ nop
.L802428B4_8EE6D4:
/* 8EE6D4 802428B4 2404021C */ addiu $a0, $zero, 0x21c
/* 8EE6D8 802428B8 0000282D */ daddu $a1, $zero, $zero
/* 8EE6DC 802428BC 00A0302D */ daddu $a2, $a1, $zero
/* 8EE6E0 802428C0 24020001 */ addiu $v0, $zero, 1
/* 8EE6E4 802428C4 A6000018 */ sh $zero, 0x18($s0)
/* 8EE6E8 802428C8 A6000008 */ sh $zero, 8($s0)
/* 8EE6EC 802428CC A600000A */ sh $zero, 0xa($s0)
/* 8EE6F0 802428D0 AE000004 */ sw $zero, 4($s0)
/* 8EE6F4 802428D4 0C015478 */ jal snd_start_sound
/* 8EE6F8 802428D8 A6020000 */ sh $v0, ($s0)
.L802428DC_8EE6FC:
/* 8EE6FC 802428DC 3C054200 */ lui $a1, 0x4200
/* 8EE700 802428E0 8E020004 */ lw $v0, 4($s0)
/* 8EE704 802428E4 3C06437F */ lui $a2, 0x437f
/* 8EE708 802428E8 24420001 */ addiu $v0, $v0, 1
/* 8EE70C 802428EC AE020004 */ sw $v0, 4($s0)
/* 8EE710 802428F0 24020003 */ addiu $v0, $zero, 3
/* 8EE714 802428F4 AFA20010 */ sw $v0, 0x10($sp)
/* 8EE718 802428F8 8E070004 */ lw $a3, 4($s0)
/* 8EE71C 802428FC 0C00A8ED */ jal update_lerp
/* 8EE720 80242900 0000202D */ daddu $a0, $zero, $zero
/* 8EE724 80242904 8E020004 */ lw $v0, 4($s0)
/* 8EE728 80242908 4600008D */ trunc.w.s $f2, $f0
/* 8EE72C 8024290C 44031000 */ mfc1 $v1, $f2
/* 8EE730 80242910 00000000 */ nop
/* 8EE734 80242914 A603001A */ sh $v1, 0x1a($s0)
/* 8EE738 80242918 28420003 */ slti $v0, $v0, 3
/* 8EE73C 8024291C 14400032 */ bnez $v0, .L802429E8
/* 8EE740 80242920 A603001C */ sh $v1, 0x1c($s0)
/* 8EE744 80242924 24020002 */ addiu $v0, $zero, 2
/* 8EE748 80242928 A6020000 */ sh $v0, ($s0)
/* 8EE74C 8024292C 240200FF */ addiu $v0, $zero, 0xff
/* 8EE750 80242930 A602001A */ sh $v0, 0x1a($s0)
/* 8EE754 80242934 08090A7A */ j .L802429E8
/* 8EE758 80242938 A602001C */ sh $v0, 0x1c($s0)
.L8024293C_8EE75C:
/* 8EE75C 8024293C 3C038007 */ lui $v1, %hi(gGameStatusPtr)
/* 8EE760 80242940 8C63419C */ lw $v1, %lo(gGameStatusPtr)($v1)
/* 8EE764 80242944 240200FF */ addiu $v0, $zero, 0xff
/* 8EE768 80242948 A602001A */ sh $v0, 0x1a($s0)
/* 8EE76C 8024294C A602001C */ sh $v0, 0x1c($s0)
/* 8EE770 80242950 8C620000 */ lw $v0, ($v1)
/* 8EE774 80242954 3042C000 */ andi $v0, $v0, 0xc000
/* 8EE778 80242958 10400002 */ beqz $v0, .L80242964
/* 8EE77C 8024295C 24020003 */ addiu $v0, $zero, 3
/* 8EE780 80242960 A6020000 */ sh $v0, ($s0)
.L80242964:
/* 8EE784 80242964 96030000 */ lhu $v1, ($s0)
/* 8EE788 80242968 24020003 */ addiu $v0, $zero, 3
/* 8EE78C 8024296C 1462001E */ bne $v1, $v0, .L802429E8
/* 8EE790 80242970 00000000 */ nop
.L80242974_8EE794:
/* 8EE794 80242974 240400CA */ addiu $a0, $zero, 0xca
/* 8EE798 80242978 0000282D */ daddu $a1, $zero, $zero
/* 8EE79C 8024297C 00A0302D */ daddu $a2, $a1, $zero
/* 8EE7A0 80242980 24020004 */ addiu $v0, $zero, 4
/* 8EE7A4 80242984 AE000004 */ sw $zero, 4($s0)
/* 8EE7A8 80242988 0C015478 */ jal snd_start_sound
/* 8EE7AC 8024298C A6020000 */ sh $v0, ($s0)
.L80242990_8EE7B0:
/* 8EE7B0 80242990 0000202D */ daddu $a0, $zero, $zero
/* 8EE7B4 80242994 8E020004 */ lw $v0, 4($s0)
/* 8EE7B8 80242998 8603001C */ lh $v1, 0x1c($s0)
/* 8EE7BC 8024299C 24420001 */ addiu $v0, $v0, 1
/* 8EE7C0 802429A0 AE020004 */ sw $v0, 4($s0)
/* 8EE7C4 802429A4 24020003 */ addiu $v0, $zero, 3
/* 8EE7C8 802429A8 44831000 */ mtc1 $v1, $f2
/* 8EE7CC 802429AC 00000000 */ nop
/* 8EE7D0 802429B0 468010A0 */ cvt.s.w $f2, $f2
/* 8EE7D4 802429B4 AFA20010 */ sw $v0, 0x10($sp)
/* 8EE7D8 802429B8 8E070004 */ lw $a3, 4($s0)
/* 8EE7DC 802429BC 44051000 */ mfc1 $a1, $f2
/* 8EE7E0 802429C0 0C00A8ED */ jal update_lerp
/* 8EE7E4 802429C4 0000302D */ daddu $a2, $zero, $zero
/* 8EE7E8 802429C8 8E020004 */ lw $v0, 4($s0)
/* 8EE7EC 802429CC 4600008D */ trunc.w.s $f2, $f0
/* 8EE7F0 802429D0 44031000 */ mfc1 $v1, $f2
/* 8EE7F4 802429D4 28420003 */ slti $v0, $v0, 3
/* 8EE7F8 802429D8 14400003 */ bnez $v0, .L802429E8
/* 8EE7FC 802429DC A603001A */ sh $v1, 0x1a($s0)
/* 8EE800 802429E0 24020005 */ addiu $v0, $zero, 5
/* 8EE804 802429E4 A6020000 */ sh $v0, ($s0)
.L802429E8:
/* 8EE808 802429E8 8605001A */ lh $a1, 0x1a($s0)
/* 8EE80C 802429EC 0C090868 */ jal func_802421A0_8EDFC0
/* 8EE810 802429F0 0200202D */ daddu $a0, $s0, $zero
/* 8EE814 802429F4 8FBF001C */ lw $ra, 0x1c($sp)
/* 8EE818 802429F8 8FB00018 */ lw $s0, 0x18($sp)
/* 8EE81C 802429FC 03E00008 */ jr $ra
/* 8EE820 80242A00 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,49 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80242B04_8EE924
/* 8EE924 80242B04 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 8EE928 80242B08 AFB10014 */ sw $s1, 0x14($sp)
/* 8EE92C 80242B0C 0080882D */ daddu $s1, $a0, $zero
/* 8EE930 80242B10 AFBF0018 */ sw $ra, 0x18($sp)
/* 8EE934 80242B14 10A00014 */ beqz $a1, .L80242B68
/* 8EE938 80242B18 AFB00010 */ sw $s0, 0x10($sp)
/* 8EE93C 80242B1C 0C00AB39 */ jal heap_malloc
/* 8EE940 80242B20 2404002C */ addiu $a0, $zero, 0x2c
/* 8EE944 80242B24 0040802D */ daddu $s0, $v0, $zero
/* 8EE948 80242B28 0000202D */ daddu $a0, $zero, $zero
/* 8EE94C 80242B2C 3C058024 */ lui $a1, %hi(func_80242A04_8EE824)
/* 8EE950 80242B30 24A52A04 */ addiu $a1, $a1, %lo(func_80242A04_8EE824)
/* 8EE954 80242B34 240200FF */ addiu $v0, $zero, 0xff
/* 8EE958 80242B38 AE300070 */ sw $s0, 0x70($s1)
/* 8EE95C 80242B3C A6000000 */ sh $zero, ($s0)
/* 8EE960 80242B40 0C048C56 */ jal create_worker_world
/* 8EE964 80242B44 A602001A */ sh $v0, 0x1a($s0)
/* 8EE968 80242B48 0220202D */ daddu $a0, $s1, $zero
/* 8EE96C 80242B4C 3C05FD05 */ lui $a1, 0xfd05
/* 8EE970 80242B50 34A50F8A */ ori $a1, $a1, 0xf8a
/* 8EE974 80242B54 0200302D */ daddu $a2, $s0, $zero
/* 8EE978 80242B58 0C0B2026 */ jal evt_set_variable
/* 8EE97C 80242B5C AE020020 */ sw $v0, 0x20($s0)
/* 8EE980 80242B60 0C090A8F */ jal func_80242A3C_8EE85C
/* 8EE984 80242B64 0200202D */ daddu $a0, $s0, $zero
.L80242B68:
/* 8EE988 80242B68 8E300070 */ lw $s0, 0x70($s1)
/* 8EE98C 80242B6C 96030000 */ lhu $v1, ($s0)
/* 8EE990 80242B70 24020005 */ addiu $v0, $zero, 5
/* 8EE994 80242B74 14620007 */ bne $v1, $v0, .L80242B94
/* 8EE998 80242B78 0000102D */ daddu $v0, $zero, $zero
/* 8EE99C 80242B7C 8E040020 */ lw $a0, 0x20($s0)
/* 8EE9A0 80242B80 0C048D70 */ jal free_worker
/* 8EE9A4 80242B84 00000000 */ nop
/* 8EE9A8 80242B88 0C00AB4B */ jal heap_free
/* 8EE9AC 80242B8C 0200202D */ daddu $a0, $s0, $zero
/* 8EE9B0 80242B90 24020001 */ addiu $v0, $zero, 1
.L80242B94:
/* 8EE9B4 80242B94 8FBF0018 */ lw $ra, 0x18($sp)
/* 8EE9B8 80242B98 8FB10014 */ lw $s1, 0x14($sp)
/* 8EE9BC 80242B9C 8FB00010 */ lw $s0, 0x10($sp)
/* 8EE9C0 80242BA0 03E00008 */ jr $ra
/* 8EE9C4 80242BA4 27BD0020 */ addiu $sp, $sp, 0x20
/* 8EE9C8 80242BA8 00000000 */ nop
/* 8EE9CC 80242BAC 00000000 */ nop

View File

@ -1,497 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_80243BD0_BC7E50
.double -170.0
dlabel D_80243BD8_BC7E58
.double -170.0
.section .text
glabel func_802408D0_BC4B50
/* BC4B50 802408D0 27BDFF70 */ addiu $sp, $sp, -0x90
/* BC4B54 802408D4 AFB20070 */ sw $s2, 0x70($sp)
/* BC4B58 802408D8 AFB30074 */ sw $s3, 0x74($sp)
/* BC4B5C 802408DC 3C138011 */ lui $s3, %hi(gPlayerStatus)
/* BC4B60 802408E0 2673EFC8 */ addiu $s3, $s3, %lo(gPlayerStatus)
/* BC4B64 802408E4 AFB00068 */ sw $s0, 0x68($sp)
/* BC4B68 802408E8 3C108016 */ lui $s0, %hi(gCollisionStatus)
/* BC4B6C 802408EC 2610A550 */ addiu $s0, $s0, %lo(gCollisionStatus)
/* BC4B70 802408F0 AFBF0078 */ sw $ra, 0x78($sp)
/* BC4B74 802408F4 AFB1006C */ sw $s1, 0x6c($sp)
/* BC4B78 802408F8 F7B60088 */ sdc1 $f22, 0x88($sp)
/* BC4B7C 802408FC F7B40080 */ sdc1 $f20, 0x80($sp)
/* BC4B80 80240900 10A00014 */ beqz $a1, .L80240954
/* BC4B84 80240904 0080902D */ daddu $s2, $a0, $zero
/* BC4B88 80240908 0C00AB39 */ jal heap_malloc
/* BC4B8C 8024090C 24040020 */ addiu $a0, $zero, 0x20
/* BC4B90 80240910 3C013DCC */ lui $at, 0x3dcc
/* BC4B94 80240914 3421CCCD */ ori $at, $at, 0xcccd
/* BC4B98 80240918 44810000 */ mtc1 $at, $f0
/* BC4B9C 8024091C 3C014040 */ lui $at, 0x4040
/* BC4BA0 80240920 44811000 */ mtc1 $at, $f2
/* BC4BA4 80240924 0040882D */ daddu $s1, $v0, $zero
/* BC4BA8 80240928 AE510074 */ sw $s1, 0x74($s2)
/* BC4BAC 8024092C AE200000 */ sw $zero, ($s1)
/* BC4BB0 80240930 AE20000C */ sw $zero, 0xc($s1)
/* BC4BB4 80240934 AE200008 */ sw $zero, 8($s1)
/* BC4BB8 80240938 AE200010 */ sw $zero, 0x10($s1)
/* BC4BBC 8024093C AE200014 */ sw $zero, 0x14($s1)
/* BC4BC0 80240940 E6200004 */ swc1 $f0, 4($s1)
/* BC4BC4 80240944 E6220018 */ swc1 $f2, 0x18($s1)
/* BC4BC8 80240948 AE400070 */ sw $zero, 0x70($s2)
/* BC4BCC 8024094C AE400078 */ sw $zero, 0x78($s2)
/* BC4BD0 80240950 AE40007C */ sw $zero, 0x7c($s2)
.L80240954:
/* BC4BD4 80240954 24040001 */ addiu $a0, $zero, 1
/* BC4BD8 80240958 8E430070 */ lw $v1, 0x70($s2)
/* BC4BDC 8024095C 8E510074 */ lw $s1, 0x74($s2)
/* BC4BE0 80240960 10640022 */ beq $v1, $a0, .L802409EC
/* BC4BE4 80240964 28620002 */ slti $v0, $v1, 2
/* BC4BE8 80240968 50400005 */ beql $v0, $zero, .L80240980
/* BC4BEC 8024096C 24020002 */ addiu $v0, $zero, 2
/* BC4BF0 80240970 10600007 */ beqz $v1, .L80240990
/* BC4BF4 80240974 2402003C */ addiu $v0, $zero, 0x3c
/* BC4BF8 80240978 0809037C */ j .L80240DF0
/* BC4BFC 8024097C 00000000 */ nop
.L80240980:
/* BC4C00 80240980 106200BF */ beq $v1, $v0, .L80240C80
/* BC4C04 80240984 2402003C */ addiu $v0, $zero, 0x3c
/* BC4C08 80240988 0809037C */ j .L80240DF0
/* BC4C0C 8024098C 00000000 */ nop
.L80240990:
/* BC4C10 80240990 86030002 */ lh $v1, 2($s0)
/* BC4C14 80240994 50620001 */ beql $v1, $v0, .L8024099C
/* BC4C18 80240998 AE440070 */ sw $a0, 0x70($s2)
.L8024099C:
/* BC4C1C 8024099C 86030002 */ lh $v1, 2($s0)
/* BC4C20 802409A0 2402003B */ addiu $v0, $zero, 0x3b
/* BC4C24 802409A4 50620001 */ beql $v1, $v0, .L802409AC
/* BC4C28 802409A8 AE440070 */ sw $a0, 0x70($s2)
.L802409AC:
/* BC4C2C 802409AC 3C013DCC */ lui $at, 0x3dcc
/* BC4C30 802409B0 3421CCCD */ ori $at, $at, 0xcccd
/* BC4C34 802409B4 44810000 */ mtc1 $at, $f0
/* BC4C38 802409B8 3C014040 */ lui $at, 0x4040
/* BC4C3C 802409BC 44811000 */ mtc1 $at, $f2
/* BC4C40 802409C0 3C0141A0 */ lui $at, 0x41a0
/* BC4C44 802409C4 44812000 */ mtc1 $at, $f4
/* BC4C48 802409C8 AE200000 */ sw $zero, ($s1)
/* BC4C4C 802409CC AE20000C */ sw $zero, 0xc($s1)
/* BC4C50 802409D0 AE200010 */ sw $zero, 0x10($s1)
/* BC4C54 802409D4 AE200014 */ sw $zero, 0x14($s1)
/* BC4C58 802409D8 AE200008 */ sw $zero, 8($s1)
/* BC4C5C 802409DC E6200004 */ swc1 $f0, 4($s1)
/* BC4C60 802409E0 E6220018 */ swc1 $f2, 0x18($s1)
/* BC4C64 802409E4 0809037C */ j .L80240DF0
/* BC4C68 802409E8 E624001C */ swc1 $f4, 0x1c($s1)
.L802409EC:
/* BC4C6C 802409EC 86030002 */ lh $v1, 2($s0)
/* BC4C70 802409F0 2402003C */ addiu $v0, $zero, 0x3c
/* BC4C74 802409F4 10620006 */ beq $v1, $v0, .L80240A10
/* BC4C78 802409F8 2402003B */ addiu $v0, $zero, 0x3b
/* BC4C7C 802409FC 10620004 */ beq $v1, $v0, .L80240A10
/* BC4C80 80240A00 24020078 */ addiu $v0, $zero, 0x78
/* BC4C84 80240A04 AE42007C */ sw $v0, 0x7c($s2)
/* BC4C88 80240A08 24020002 */ addiu $v0, $zero, 2
/* BC4C8C 80240A0C AE420070 */ sw $v0, 0x70($s2)
.L80240A10:
/* BC4C90 80240A10 C6200008 */ lwc1 $f0, 8($s1)
/* BC4C94 80240A14 3C0140A0 */ lui $at, 0x40a0
/* BC4C98 80240A18 44811000 */ mtc1 $at, $f2
/* BC4C9C 80240A1C 46000005 */ abs.s $f0, $f0
/* BC4CA0 80240A20 4602003C */ c.lt.s $f0, $f2
/* BC4CA4 80240A24 00000000 */ nop
/* BC4CA8 80240A28 4500000D */ bc1f .L80240A60
/* BC4CAC 80240A2C 00000000 */ nop
/* BC4CB0 80240A30 C6600028 */ lwc1 $f0, 0x28($s3)
/* BC4CB4 80240A34 3C018024 */ lui $at, %hi(D_80243BD0_BC7E50)
/* BC4CB8 80240A38 D4223BD0 */ ldc1 $f2, %lo(D_80243BD0_BC7E50)($at)
/* BC4CBC 80240A3C 46000021 */ cvt.d.s $f0, $f0
/* BC4CC0 80240A40 46201081 */ sub.d $f2, $f2, $f0
/* BC4CC4 80240A44 3C014348 */ lui $at, 0x4348
/* BC4CC8 80240A48 44810000 */ mtc1 $at, $f0
/* BC4CCC 80240A4C 462010A0 */ cvt.s.d $f2, $f2
/* BC4CD0 80240A50 46001085 */ abs.s $f2, $f2
/* BC4CD4 80240A54 46001083 */ div.s $f2, $f2, $f0
/* BC4CD8 80240A58 0809029D */ j .L80240A74
/* BC4CDC 80240A5C E6220004 */ swc1 $f2, 4($s1)
.L80240A60:
/* BC4CE0 80240A60 3C013DCC */ lui $at, 0x3dcc
/* BC4CE4 80240A64 3421CCCD */ ori $at, $at, 0xcccd
/* BC4CE8 80240A68 44810000 */ mtc1 $at, $f0
/* BC4CEC 80240A6C 00000000 */ nop
/* BC4CF0 80240A70 E6200004 */ swc1 $f0, 4($s1)
.L80240A74:
/* BC4CF4 80240A74 C6600028 */ lwc1 $f0, 0x28($s3)
/* BC4CF8 80240A78 3C018024 */ lui $at, %hi(D_80243BD8_BC7E58)
/* BC4CFC 80240A7C D4243BD8 */ ldc1 $f4, %lo(D_80243BD8_BC7E58)($at)
/* BC4D00 80240A80 46000021 */ cvt.d.s $f0, $f0
/* BC4D04 80240A84 4624003E */ c.le.d $f0, $f4
/* BC4D08 80240A88 00000000 */ nop
/* BC4D0C 80240A8C 45000024 */ bc1f .L80240B20
/* BC4D10 80240A90 00000000 */ nop
/* BC4D14 80240A94 C6200010 */ lwc1 $f0, 0x10($s1)
/* BC4D18 80240A98 C6220004 */ lwc1 $f2, 4($s1)
/* BC4D1C 80240A9C 46020000 */ add.s $f0, $f0, $f2
/* BC4D20 80240AA0 E6200010 */ swc1 $f0, 0x10($s1)
/* BC4D24 80240AA4 C6600028 */ lwc1 $f0, 0x28($s3)
/* BC4D28 80240AA8 46000021 */ cvt.d.s $f0, $f0
/* BC4D2C 80240AAC 46202001 */ sub.d $f0, $f4, $f0
/* BC4D30 80240AB0 46200020 */ cvt.s.d $f0, $f0
/* BC4D34 80240AB4 46000005 */ abs.s $f0, $f0
/* BC4D38 80240AB8 46000002 */ mul.s $f0, $f0, $f0
/* BC4D3C 80240ABC 00000000 */ nop
/* BC4D40 80240AC0 3C014248 */ lui $at, 0x4248
/* BC4D44 80240AC4 44811000 */ mtc1 $at, $f2
/* BC4D48 80240AC8 3C014170 */ lui $at, 0x4170
/* BC4D4C 80240ACC 44812000 */ mtc1 $at, $f4
/* BC4D50 80240AD0 46020003 */ div.s $f0, $f0, $f2
/* BC4D54 80240AD4 4600203C */ c.lt.s $f4, $f0
/* BC4D58 80240AD8 00000000 */ nop
/* BC4D5C 80240ADC 45000002 */ bc1f .L80240AE8
/* BC4D60 80240AE0 E620001C */ swc1 $f0, 0x1c($s1)
/* BC4D64 80240AE4 E624001C */ swc1 $f4, 0x1c($s1)
.L80240AE8:
/* BC4D68 80240AE8 C6220008 */ lwc1 $f2, 8($s1)
/* BC4D6C 80240AEC C620001C */ lwc1 $f0, 0x1c($s1)
/* BC4D70 80240AF0 4602003C */ c.lt.s $f0, $f2
/* BC4D74 80240AF4 00000000 */ nop
/* BC4D78 80240AF8 45000031 */ bc1f .L80240BC0
/* BC4D7C 80240AFC 00000000 */ nop
/* BC4D80 80240B00 C6200004 */ lwc1 $f0, 4($s1)
/* BC4D84 80240B04 C6220018 */ lwc1 $f2, 0x18($s1)
/* BC4D88 80240B08 46020002 */ mul.s $f0, $f0, $f2
/* BC4D8C 80240B0C 00000000 */ nop
/* BC4D90 80240B10 C6220014 */ lwc1 $f2, 0x14($s1)
/* BC4D94 80240B14 46001080 */ add.s $f2, $f2, $f0
/* BC4D98 80240B18 080902F0 */ j .L80240BC0
/* BC4D9C 80240B1C E6220014 */ swc1 $f2, 0x14($s1)
.L80240B20:
/* BC4DA0 80240B20 C6200014 */ lwc1 $f0, 0x14($s1)
/* BC4DA4 80240B24 C6220004 */ lwc1 $f2, 4($s1)
/* BC4DA8 80240B28 46020000 */ add.s $f0, $f0, $f2
/* BC4DAC 80240B2C E6200014 */ swc1 $f0, 0x14($s1)
/* BC4DB0 80240B30 C6600028 */ lwc1 $f0, 0x28($s3)
/* BC4DB4 80240B34 46000021 */ cvt.d.s $f0, $f0
/* BC4DB8 80240B38 46202001 */ sub.d $f0, $f4, $f0
/* BC4DBC 80240B3C 3C013F00 */ lui $at, 0x3f00
/* BC4DC0 80240B40 44811000 */ mtc1 $at, $f2
/* BC4DC4 80240B44 46200020 */ cvt.s.d $f0, $f0
/* BC4DC8 80240B48 46000005 */ abs.s $f0, $f0
/* BC4DCC 80240B4C 46000007 */ neg.s $f0, $f0
/* BC4DD0 80240B50 46020002 */ mul.s $f0, $f0, $f2
/* BC4DD4 80240B54 00000000 */ nop
/* BC4DD8 80240B58 46000002 */ mul.s $f0, $f0, $f0
/* BC4DDC 80240B5C 00000000 */ nop
/* BC4DE0 80240B60 3C01C0A0 */ lui $at, 0xc0a0
/* BC4DE4 80240B64 44812000 */ mtc1 $at, $f4
/* BC4DE8 80240B68 3C014248 */ lui $at, 0x4248
/* BC4DEC 80240B6C 44811000 */ mtc1 $at, $f2
/* BC4DF0 80240B70 46000007 */ neg.s $f0, $f0
/* BC4DF4 80240B74 46020003 */ div.s $f0, $f0, $f2
/* BC4DF8 80240B78 4604003C */ c.lt.s $f0, $f4
/* BC4DFC 80240B7C 00000000 */ nop
/* BC4E00 80240B80 45000002 */ bc1f .L80240B8C
/* BC4E04 80240B84 E620001C */ swc1 $f0, 0x1c($s1)
/* BC4E08 80240B88 E624001C */ swc1 $f4, 0x1c($s1)
.L80240B8C:
/* BC4E0C 80240B8C C6220008 */ lwc1 $f2, 8($s1)
/* BC4E10 80240B90 C620001C */ lwc1 $f0, 0x1c($s1)
/* BC4E14 80240B94 4600103C */ c.lt.s $f2, $f0
/* BC4E18 80240B98 00000000 */ nop
/* BC4E1C 80240B9C 45000008 */ bc1f .L80240BC0
/* BC4E20 80240BA0 00000000 */ nop
/* BC4E24 80240BA4 C6200004 */ lwc1 $f0, 4($s1)
/* BC4E28 80240BA8 C6220018 */ lwc1 $f2, 0x18($s1)
/* BC4E2C 80240BAC 46020002 */ mul.s $f0, $f0, $f2
/* BC4E30 80240BB0 00000000 */ nop
/* BC4E34 80240BB4 C6220010 */ lwc1 $f2, 0x10($s1)
/* BC4E38 80240BB8 46001080 */ add.s $f2, $f2, $f0
/* BC4E3C 80240BBC E6220010 */ swc1 $f2, 0x10($s1)
.L80240BC0:
/* BC4E40 80240BC0 C6200010 */ lwc1 $f0, 0x10($s1)
/* BC4E44 80240BC4 3C014059 */ lui $at, 0x4059
/* BC4E48 80240BC8 44812800 */ mtc1 $at, $f5
/* BC4E4C 80240BCC 44802000 */ mtc1 $zero, $f4
/* BC4E50 80240BD0 460000A1 */ cvt.d.s $f2, $f0
/* BC4E54 80240BD4 4622203C */ c.lt.d $f4, $f2
/* BC4E58 80240BD8 00000000 */ nop
/* BC4E5C 80240BDC 4500000F */ bc1f .L80240C1C
/* BC4E60 80240BE0 00000000 */ nop
/* BC4E64 80240BE4 C6200014 */ lwc1 $f0, 0x14($s1)
/* BC4E68 80240BE8 46000021 */ cvt.d.s $f0, $f0
/* BC4E6C 80240BEC 4620203C */ c.lt.d $f4, $f0
/* BC4E70 80240BF0 00000000 */ nop
/* BC4E74 80240BF4 45000009 */ bc1f .L80240C1C
/* BC4E78 80240BF8 00000000 */ nop
/* BC4E7C 80240BFC C6200014 */ lwc1 $f0, 0x14($s1)
/* BC4E80 80240C00 46241081 */ sub.d $f2, $f2, $f4
/* BC4E84 80240C04 46000021 */ cvt.d.s $f0, $f0
/* BC4E88 80240C08 46240001 */ sub.d $f0, $f0, $f4
/* BC4E8C 80240C0C 462010A0 */ cvt.s.d $f2, $f2
/* BC4E90 80240C10 E6220010 */ swc1 $f2, 0x10($s1)
/* BC4E94 80240C14 46200020 */ cvt.s.d $f0, $f0
/* BC4E98 80240C18 E6200014 */ swc1 $f0, 0x14($s1)
.L80240C1C:
/* BC4E9C 80240C1C C6240010 */ lwc1 $f4, 0x10($s1)
/* BC4EA0 80240C20 C6220014 */ lwc1 $f2, 0x14($s1)
/* BC4EA4 80240C24 46022001 */ sub.s $f0, $f4, $f2
/* BC4EA8 80240C28 3C013FF8 */ lui $at, 0x3ff8
/* BC4EAC 80240C2C 44813800 */ mtc1 $at, $f7
/* BC4EB0 80240C30 44803000 */ mtc1 $zero, $f6
/* BC4EB4 80240C34 46000005 */ abs.s $f0, $f0
/* BC4EB8 80240C38 46000021 */ cvt.d.s $f0, $f0
/* BC4EBC 80240C3C 4620303C */ c.lt.d $f6, $f0
/* BC4EC0 80240C40 00000000 */ nop
/* BC4EC4 80240C44 45000063 */ bc1f .L80240DD4
/* BC4EC8 80240C48 00000000 */ nop
/* BC4ECC 80240C4C 4602203C */ c.lt.s $f4, $f2
/* BC4ED0 80240C50 00000000 */ nop
/* BC4ED4 80240C54 45020006 */ bc1fl .L80240C70
/* BC4ED8 80240C58 46001021 */ cvt.d.s $f0, $f2
/* BC4EDC 80240C5C 46002021 */ cvt.d.s $f0, $f4
/* BC4EE0 80240C60 46260000 */ add.d $f0, $f0, $f6
/* BC4EE4 80240C64 46200020 */ cvt.s.d $f0, $f0
/* BC4EE8 80240C68 08090375 */ j .L80240DD4
/* BC4EEC 80240C6C E6200014 */ swc1 $f0, 0x14($s1)
.L80240C70:
/* BC4EF0 80240C70 46260000 */ add.d $f0, $f0, $f6
/* BC4EF4 80240C74 46200020 */ cvt.s.d $f0, $f0
/* BC4EF8 80240C78 08090375 */ j .L80240DD4
/* BC4EFC 80240C7C E6200010 */ swc1 $f0, 0x10($s1)
.L80240C80:
/* BC4F00 80240C80 86030002 */ lh $v1, 2($s0)
/* BC4F04 80240C84 50620001 */ beql $v1, $v0, .L80240C8C
/* BC4F08 80240C88 AE440070 */ sw $a0, 0x70($s2)
.L80240C8C:
/* BC4F0C 80240C8C 86030002 */ lh $v1, 2($s0)
/* BC4F10 80240C90 2402003B */ addiu $v0, $zero, 0x3b
/* BC4F14 80240C94 50620001 */ beql $v1, $v0, .L80240C9C
/* BC4F18 80240C98 AE440070 */ sw $a0, 0x70($s2)
.L80240C9C:
/* BC4F1C 80240C9C 3C013DCC */ lui $at, 0x3dcc
/* BC4F20 80240CA0 3421CCCD */ ori $at, $at, 0xcccd
/* BC4F24 80240CA4 44810000 */ mtc1 $at, $f0
/* BC4F28 80240CA8 C6220010 */ lwc1 $f2, 0x10($s1)
/* BC4F2C 80240CAC C6240008 */ lwc1 $f4, 8($s1)
/* BC4F30 80240CB0 AE20001C */ sw $zero, 0x1c($s1)
/* BC4F34 80240CB4 46001080 */ add.s $f2, $f2, $f0
/* BC4F38 80240CB8 E6200004 */ swc1 $f0, 4($s1)
/* BC4F3C 80240CBC C620001C */ lwc1 $f0, 0x1c($s1)
/* BC4F40 80240CC0 4604003C */ c.lt.s $f0, $f4
/* BC4F44 80240CC4 00000000 */ nop
/* BC4F48 80240CC8 45000008 */ bc1f .L80240CEC
/* BC4F4C 80240CCC E6220010 */ swc1 $f2, 0x10($s1)
/* BC4F50 80240CD0 C6200004 */ lwc1 $f0, 4($s1)
/* BC4F54 80240CD4 C6220018 */ lwc1 $f2, 0x18($s1)
/* BC4F58 80240CD8 46020002 */ mul.s $f0, $f0, $f2
/* BC4F5C 80240CDC 00000000 */ nop
/* BC4F60 80240CE0 C6220014 */ lwc1 $f2, 0x14($s1)
/* BC4F64 80240CE4 46001080 */ add.s $f2, $f2, $f0
/* BC4F68 80240CE8 E6220014 */ swc1 $f2, 0x14($s1)
.L80240CEC:
/* BC4F6C 80240CEC C6200010 */ lwc1 $f0, 0x10($s1)
/* BC4F70 80240CF0 3C014059 */ lui $at, 0x4059
/* BC4F74 80240CF4 44812800 */ mtc1 $at, $f5
/* BC4F78 80240CF8 44802000 */ mtc1 $zero, $f4
/* BC4F7C 80240CFC 460000A1 */ cvt.d.s $f2, $f0
/* BC4F80 80240D00 4622203C */ c.lt.d $f4, $f2
/* BC4F84 80240D04 00000000 */ nop
/* BC4F88 80240D08 4500000F */ bc1f .L80240D48
/* BC4F8C 80240D0C 00000000 */ nop
/* BC4F90 80240D10 C6200014 */ lwc1 $f0, 0x14($s1)
/* BC4F94 80240D14 46000021 */ cvt.d.s $f0, $f0
/* BC4F98 80240D18 4620203C */ c.lt.d $f4, $f0
/* BC4F9C 80240D1C 00000000 */ nop
/* BC4FA0 80240D20 45000009 */ bc1f .L80240D48
/* BC4FA4 80240D24 00000000 */ nop
/* BC4FA8 80240D28 C6200014 */ lwc1 $f0, 0x14($s1)
/* BC4FAC 80240D2C 46241081 */ sub.d $f2, $f2, $f4
/* BC4FB0 80240D30 46000021 */ cvt.d.s $f0, $f0
/* BC4FB4 80240D34 46240001 */ sub.d $f0, $f0, $f4
/* BC4FB8 80240D38 462010A0 */ cvt.s.d $f2, $f2
/* BC4FBC 80240D3C E6220010 */ swc1 $f2, 0x10($s1)
/* BC4FC0 80240D40 46200020 */ cvt.s.d $f0, $f0
/* BC4FC4 80240D44 E6200014 */ swc1 $f0, 0x14($s1)
.L80240D48:
/* BC4FC8 80240D48 C6240010 */ lwc1 $f4, 0x10($s1)
/* BC4FCC 80240D4C C6220014 */ lwc1 $f2, 0x14($s1)
/* BC4FD0 80240D50 46022001 */ sub.s $f0, $f4, $f2
/* BC4FD4 80240D54 3C013FE0 */ lui $at, 0x3fe0
/* BC4FD8 80240D58 44813800 */ mtc1 $at, $f7
/* BC4FDC 80240D5C 44803000 */ mtc1 $zero, $f6
/* BC4FE0 80240D60 46000005 */ abs.s $f0, $f0
/* BC4FE4 80240D64 46000021 */ cvt.d.s $f0, $f0
/* BC4FE8 80240D68 4620303C */ c.lt.d $f6, $f0
/* BC4FEC 80240D6C 00000000 */ nop
/* BC4FF0 80240D70 4500000D */ bc1f .L80240DA8
/* BC4FF4 80240D74 00000000 */ nop
/* BC4FF8 80240D78 4602203C */ c.lt.s $f4, $f2
/* BC4FFC 80240D7C 00000000 */ nop
/* BC5000 80240D80 45020006 */ bc1fl .L80240D9C
/* BC5004 80240D84 46001021 */ cvt.d.s $f0, $f2
/* BC5008 80240D88 46002021 */ cvt.d.s $f0, $f4
/* BC500C 80240D8C 46260000 */ add.d $f0, $f0, $f6
/* BC5010 80240D90 46200020 */ cvt.s.d $f0, $f0
/* BC5014 80240D94 0809036A */ j .L80240DA8
/* BC5018 80240D98 E6200014 */ swc1 $f0, 0x14($s1)
.L80240D9C:
/* BC501C 80240D9C 46260000 */ add.d $f0, $f0, $f6
/* BC5020 80240DA0 46200020 */ cvt.s.d $f0, $f0
/* BC5024 80240DA4 E6200010 */ swc1 $f0, 0x10($s1)
.L80240DA8:
/* BC5028 80240DA8 8E42007C */ lw $v0, 0x7c($s2)
/* BC502C 80240DAC 04410008 */ bgez $v0, .L80240DD0
/* BC5030 80240DB0 2442FFFF */ addiu $v0, $v0, -1
/* BC5034 80240DB4 44800000 */ mtc1 $zero, $f0
/* BC5038 80240DB8 00000000 */ nop
/* BC503C 80240DBC E6200014 */ swc1 $f0, 0x14($s1)
/* BC5040 80240DC0 E6200010 */ swc1 $f0, 0x10($s1)
/* BC5044 80240DC4 E6200000 */ swc1 $f0, ($s1)
/* BC5048 80240DC8 08090375 */ j .L80240DD4
/* BC504C 80240DCC E6200008 */ swc1 $f0, 8($s1)
.L80240DD0:
/* BC5050 80240DD0 AE42007C */ sw $v0, 0x7c($s2)
.L80240DD4:
/* BC5054 80240DD4 C6200010 */ lwc1 $f0, 0x10($s1)
/* BC5058 80240DD8 C6220014 */ lwc1 $f2, 0x14($s1)
/* BC505C 80240DDC 46020001 */ sub.s $f0, $f0, $f2
/* BC5060 80240DE0 C6220008 */ lwc1 $f2, 8($s1)
/* BC5064 80240DE4 46001080 */ add.s $f2, $f2, $f0
/* BC5068 80240DE8 E6200000 */ swc1 $f0, ($s1)
/* BC506C 80240DEC E6220008 */ swc1 $f2, 8($s1)
.L80240DF0:
/* BC5070 80240DF0 C6220008 */ lwc1 $f2, 8($s1)
/* BC5074 80240DF4 3C01C0E0 */ lui $at, 0xc0e0
/* BC5078 80240DF8 44810000 */ mtc1 $at, $f0
/* BC507C 80240DFC 00000000 */ nop
/* BC5080 80240E00 4600103E */ c.le.s $f2, $f0
/* BC5084 80240E04 00000000 */ nop
/* BC5088 80240E08 45000013 */ bc1f .L80240E58
/* BC508C 80240E0C 2410FFFF */ addiu $s0, $zero, -1
/* BC5090 80240E10 8E420078 */ lw $v0, 0x78($s2)
/* BC5094 80240E14 10500011 */ beq $v0, $s0, .L80240E5C
/* BC5098 80240E18 27A50058 */ addiu $a1, $sp, 0x58
/* BC509C 80240E1C 2404003C */ addiu $a0, $zero, 0x3c
/* BC50A0 80240E20 27A6005C */ addiu $a2, $sp, 0x5c
/* BC50A4 80240E24 0C016F84 */ jal get_collider_center
/* BC50A8 80240E28 27A70060 */ addiu $a3, $sp, 0x60
/* BC50AC 80240E2C 240401D6 */ addiu $a0, $zero, 0x1d6
/* BC50B0 80240E30 C7A00058 */ lwc1 $f0, 0x58($sp)
/* BC50B4 80240E34 C7A2005C */ lwc1 $f2, 0x5c($sp)
/* BC50B8 80240E38 44060000 */ mfc1 $a2, $f0
/* BC50BC 80240E3C 44071000 */ mfc1 $a3, $f2
/* BC50C0 80240E40 C7A00060 */ lwc1 $f0, 0x60($sp)
/* BC50C4 80240E44 0000282D */ daddu $a1, $zero, $zero
/* BC50C8 80240E48 0C052757 */ jal sfx_play_sound_at_position
/* BC50CC 80240E4C E7A00010 */ swc1 $f0, 0x10($sp)
/* BC50D0 80240E50 08090397 */ j .L80240E5C
/* BC50D4 80240E54 AE500078 */ sw $s0, 0x78($s2)
.L80240E58:
/* BC50D8 80240E58 AE400078 */ sw $zero, 0x78($s2)
.L80240E5C:
/* BC50DC 80240E5C C6200008 */ lwc1 $f0, 8($s1)
/* BC50E0 80240E60 46000002 */ mul.s $f0, $f0, $f0
/* BC50E4 80240E64 00000000 */ nop
/* BC50E8 80240E68 3C0142B4 */ lui $at, 0x42b4
/* BC50EC 80240E6C 44811000 */ mtc1 $at, $f2
/* BC50F0 80240E70 24040081 */ addiu $a0, $zero, 0x81
/* BC50F4 80240E74 46020003 */ div.s $f0, $f0, $f2
/* BC50F8 80240E78 0C046C04 */ jal get_model_list_index_from_tree_index
/* BC50FC 80240E7C E620000C */ swc1 $f0, 0xc($s1)
/* BC5100 80240E80 0C046B4C */ jal get_model_from_list_index
/* BC5104 80240E84 0040202D */ daddu $a0, $v0, $zero
/* BC5108 80240E88 0040182D */ daddu $v1, $v0, $zero
/* BC510C 80240E8C 24700058 */ addiu $s0, $v1, 0x58
/* BC5110 80240E90 4480A000 */ mtc1 $zero, $f20
/* BC5114 80240E94 94620000 */ lhu $v0, ($v1)
/* BC5118 80240E98 4405A000 */ mfc1 $a1, $f20
/* BC511C 80240E9C 4407A000 */ mfc1 $a3, $f20
/* BC5120 80240EA0 34421400 */ ori $v0, $v0, 0x1400
/* BC5124 80240EA4 A4620000 */ sh $v0, ($v1)
/* BC5128 80240EA8 8E26000C */ lw $a2, 0xc($s1)
/* BC512C 80240EAC 3C013F80 */ lui $at, 0x3f80
/* BC5130 80240EB0 4481B000 */ mtc1 $at, $f22
/* BC5134 80240EB4 0C019E40 */ jal guTranslateF
/* BC5138 80240EB8 0200202D */ daddu $a0, $s0, $zero
/* BC513C 80240EBC E7B60010 */ swc1 $f22, 0x10($sp)
/* BC5140 80240EC0 8E250008 */ lw $a1, 8($s1)
/* BC5144 80240EC4 4406A000 */ mfc1 $a2, $f20
/* BC5148 80240EC8 4407A000 */ mfc1 $a3, $f20
/* BC514C 80240ECC 0C019EC8 */ jal guRotateF
/* BC5150 80240ED0 27A40018 */ addiu $a0, $sp, 0x18
/* BC5154 80240ED4 0200202D */ daddu $a0, $s0, $zero
/* BC5158 80240ED8 27A50018 */ addiu $a1, $sp, 0x18
/* BC515C 80240EDC 0C019D80 */ jal guMtxCatF
/* BC5160 80240EE0 0080302D */ daddu $a2, $a0, $zero
/* BC5164 80240EE4 0C016E89 */ jal update_collider_transform
/* BC5168 80240EE8 2404003C */ addiu $a0, $zero, 0x3c
/* BC516C 80240EEC 0C016E89 */ jal update_collider_transform
/* BC5170 80240EF0 2404003B */ addiu $a0, $zero, 0x3b
/* BC5174 80240EF4 0C046C04 */ jal get_model_list_index_from_tree_index
/* BC5178 80240EF8 24040080 */ addiu $a0, $zero, 0x80
/* BC517C 80240EFC 0C046B4C */ jal get_model_from_list_index
/* BC5180 80240F00 0040202D */ daddu $a0, $v0, $zero
/* BC5184 80240F04 0040182D */ daddu $v1, $v0, $zero
/* BC5188 80240F08 24700058 */ addiu $s0, $v1, 0x58
/* BC518C 80240F0C 4405A000 */ mfc1 $a1, $f20
/* BC5190 80240F10 94620000 */ lhu $v0, ($v1)
/* BC5194 80240F14 4407A000 */ mfc1 $a3, $f20
/* BC5198 80240F18 34421400 */ ori $v0, $v0, 0x1400
/* BC519C 80240F1C A4620000 */ sh $v0, ($v1)
/* BC51A0 80240F20 8E26000C */ lw $a2, 0xc($s1)
/* BC51A4 80240F24 0C019E40 */ jal guTranslateF
/* BC51A8 80240F28 0200202D */ daddu $a0, $s0, $zero
/* BC51AC 80240F2C E7B60010 */ swc1 $f22, 0x10($sp)
/* BC51B0 80240F30 8E250008 */ lw $a1, 8($s1)
/* BC51B4 80240F34 4406A000 */ mfc1 $a2, $f20
/* BC51B8 80240F38 4407A000 */ mfc1 $a3, $f20
/* BC51BC 80240F3C 0C019EC8 */ jal guRotateF
/* BC51C0 80240F40 27A40018 */ addiu $a0, $sp, 0x18
/* BC51C4 80240F44 0200202D */ daddu $a0, $s0, $zero
/* BC51C8 80240F48 27A50018 */ addiu $a1, $sp, 0x18
/* BC51CC 80240F4C 0C019D80 */ jal guMtxCatF
/* BC51D0 80240F50 0080302D */ daddu $a2, $a0, $zero
/* BC51D4 80240F54 0C046C04 */ jal get_model_list_index_from_tree_index
/* BC51D8 80240F58 2404007F */ addiu $a0, $zero, 0x7f
/* BC51DC 80240F5C 0C046B4C */ jal get_model_from_list_index
/* BC51E0 80240F60 0040202D */ daddu $a0, $v0, $zero
/* BC51E4 80240F64 0040182D */ daddu $v1, $v0, $zero
/* BC51E8 80240F68 24700058 */ addiu $s0, $v1, 0x58
/* BC51EC 80240F6C 4405A000 */ mfc1 $a1, $f20
/* BC51F0 80240F70 94620000 */ lhu $v0, ($v1)
/* BC51F4 80240F74 4407A000 */ mfc1 $a3, $f20
/* BC51F8 80240F78 34421400 */ ori $v0, $v0, 0x1400
/* BC51FC 80240F7C A4620000 */ sh $v0, ($v1)
/* BC5200 80240F80 8E26000C */ lw $a2, 0xc($s1)
/* BC5204 80240F84 0C019E40 */ jal guTranslateF
/* BC5208 80240F88 0200202D */ daddu $a0, $s0, $zero
/* BC520C 80240F8C 4406A000 */ mfc1 $a2, $f20
/* BC5210 80240F90 27A40018 */ addiu $a0, $sp, 0x18
/* BC5214 80240F94 E7B60010 */ swc1 $f22, 0x10($sp)
/* BC5218 80240F98 8E250008 */ lw $a1, 8($s1)
/* BC521C 80240F9C 0C019EC8 */ jal guRotateF
/* BC5220 80240FA0 00C0382D */ daddu $a3, $a2, $zero
/* BC5224 80240FA4 0200202D */ daddu $a0, $s0, $zero
/* BC5228 80240FA8 27A50018 */ addiu $a1, $sp, 0x18
/* BC522C 80240FAC 0C019D80 */ jal guMtxCatF
/* BC5230 80240FB0 0080302D */ daddu $a2, $a0, $zero
/* BC5234 80240FB4 0C016E89 */ jal update_collider_transform
/* BC5238 80240FB8 2404003A */ addiu $a0, $zero, 0x3a
/* BC523C 80240FBC 8FBF0078 */ lw $ra, 0x78($sp)
/* BC5240 80240FC0 8FB30074 */ lw $s3, 0x74($sp)
/* BC5244 80240FC4 8FB20070 */ lw $s2, 0x70($sp)
/* BC5248 80240FC8 8FB1006C */ lw $s1, 0x6c($sp)
/* BC524C 80240FCC 8FB00068 */ lw $s0, 0x68($sp)
/* BC5250 80240FD0 D7B60088 */ ldc1 $f22, 0x88($sp)
/* BC5254 80240FD4 D7B40080 */ ldc1 $f20, 0x80($sp)
/* BC5258 80240FD8 0000102D */ daddu $v0, $zero, $zero
/* BC525C 80240FDC 03E00008 */ jr $ra
/* BC5260 80240FE0 27BD0090 */ addiu $sp, $sp, 0x90
/* BC5264 80240FE4 00000000 */ nop
/* BC5268 80240FE8 00000000 */ nop
/* BC526C 80240FEC 00000000 */ nop

View File

@ -1,311 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80240A6C_BCF65C
/* BCF65C 80240A6C 27BDFFD8 */ addiu $sp, $sp, -0x28
/* BCF660 80240A70 AFBF001C */ sw $ra, 0x1c($sp)
/* BCF664 80240A74 AFB20018 */ sw $s2, 0x18($sp)
/* BCF668 80240A78 AFB10014 */ sw $s1, 0x14($sp)
/* BCF66C 80240A7C AFB00010 */ sw $s0, 0x10($sp)
/* BCF670 80240A80 0C090150 */ jal func_80240540_BCF130
/* BCF674 80240A84 F7B40020 */ sdc1 $f20, 0x20($sp)
/* BCF678 80240A88 0040882D */ daddu $s1, $v0, $zero
/* BCF67C 80240A8C 8E2301C0 */ lw $v1, 0x1c0($s1)
/* BCF680 80240A90 3C028007 */ lui $v0, %hi(gGameStatusPtr)
/* BCF684 80240A94 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
/* BCF688 80240A98 00031880 */ sll $v1, $v1, 2
/* BCF68C 80240A9C 8C420010 */ lw $v0, 0x10($v0)
/* BCF690 80240AA0 02231821 */ addu $v1, $s1, $v1
/* BCF694 80240AA4 30428000 */ andi $v0, $v0, 0x8000
/* BCF698 80240AA8 AC620058 */ sw $v0, 0x58($v1)
/* BCF69C 80240AAC 8E2201C0 */ lw $v0, 0x1c0($s1)
/* BCF6A0 80240AB0 24420001 */ addiu $v0, $v0, 1
/* BCF6A4 80240AB4 AE2201C0 */ sw $v0, 0x1c0($s1)
/* BCF6A8 80240AB8 2842005A */ slti $v0, $v0, 0x5a
/* BCF6AC 80240ABC 50400001 */ beql $v0, $zero, .L80240AC4
/* BCF6B0 80240AC0 AE2001C0 */ sw $zero, 0x1c0($s1)
.L80240AC4:
/* BCF6B4 80240AC4 8E230030 */ lw $v1, 0x30($s1)
/* BCF6B8 80240AC8 24120001 */ addiu $s2, $zero, 1
/* BCF6BC 80240ACC 10720023 */ beq $v1, $s2, .L80240B5C
/* BCF6C0 80240AD0 28620002 */ slti $v0, $v1, 2
/* BCF6C4 80240AD4 50400005 */ beql $v0, $zero, .L80240AEC
/* BCF6C8 80240AD8 2402000A */ addiu $v0, $zero, 0xa
/* BCF6CC 80240ADC 10600009 */ beqz $v1, .L80240B04
/* BCF6D0 80240AE0 240500FF */ addiu $a1, $zero, 0xff
/* BCF6D4 80240AE4 080903B7 */ j .L80240EDC
/* BCF6D8 80240AE8 00000000 */ nop
.L80240AEC:
/* BCF6DC 80240AEC 10620033 */ beq $v1, $v0, .L80240BBC
/* BCF6E0 80240AF0 2402000B */ addiu $v0, $zero, 0xb
/* BCF6E4 80240AF4 10620038 */ beq $v1, $v0, .L80240BD8
/* BCF6E8 80240AF8 00000000 */ nop
/* BCF6EC 80240AFC 080903B7 */ j .L80240EDC
/* BCF6F0 80240B00 00000000 */ nop
.L80240B04:
/* BCF6F4 80240B04 8E30003C */ lw $s0, 0x3c($s1)
/* BCF6F8 80240B08 0C0513AC */ jal hud_element_set_alpha
/* BCF6FC 80240B0C 0200202D */ daddu $a0, $s0, $zero
/* BCF700 80240B10 0200202D */ daddu $a0, $s0, $zero
/* BCF704 80240B14 0C05128B */ jal hud_element_clear_flags
/* BCF708 80240B18 24050002 */ addiu $a1, $zero, 2
/* BCF70C 80240B1C 8E300040 */ lw $s0, 0x40($s1)
/* BCF710 80240B20 240500FF */ addiu $a1, $zero, 0xff
/* BCF714 80240B24 0C0513AC */ jal hud_element_set_alpha
/* BCF718 80240B28 0200202D */ daddu $a0, $s0, $zero
/* BCF71C 80240B2C 0200202D */ daddu $a0, $s0, $zero
/* BCF720 80240B30 0C05128B */ jal hud_element_clear_flags
/* BCF724 80240B34 24050002 */ addiu $a1, $zero, 2
/* BCF728 80240B38 8E300044 */ lw $s0, 0x44($s1)
/* BCF72C 80240B3C 240500FF */ addiu $a1, $zero, 0xff
/* BCF730 80240B40 0C0513AC */ jal hud_element_set_alpha
/* BCF734 80240B44 0200202D */ daddu $a0, $s0, $zero
/* BCF738 80240B48 0200202D */ daddu $a0, $s0, $zero
/* BCF73C 80240B4C 0C05128B */ jal hud_element_clear_flags
/* BCF740 80240B50 24050002 */ addiu $a1, $zero, 2
/* BCF744 80240B54 080903B7 */ j .L80240EDC
/* BCF748 80240B58 AE320030 */ sw $s2, 0x30($s1)
.L80240B5C:
/* BCF74C 80240B5C 8E220034 */ lw $v0, 0x34($s1)
/* BCF750 80240B60 24420014 */ addiu $v0, $v0, 0x14
/* BCF754 80240B64 AE220034 */ sw $v0, 0x34($s1)
/* BCF758 80240B68 28420033 */ slti $v0, $v0, 0x33
/* BCF75C 80240B6C 14400002 */ bnez $v0, .L80240B78
/* BCF760 80240B70 24020032 */ addiu $v0, $zero, 0x32
/* BCF764 80240B74 AE220034 */ sw $v0, 0x34($s1)
.L80240B78:
/* BCF768 80240B78 8E24003C */ lw $a0, 0x3c($s1)
/* BCF76C 80240B7C 8E250034 */ lw $a1, 0x34($s1)
/* BCF770 80240B80 0C051261 */ jal hud_element_set_render_pos
/* BCF774 80240B84 8E260038 */ lw $a2, 0x38($s1)
/* BCF778 80240B88 8E240040 */ lw $a0, 0x40($s1)
/* BCF77C 80240B8C 8E260038 */ lw $a2, 0x38($s1)
/* BCF780 80240B90 8E250034 */ lw $a1, 0x34($s1)
/* BCF784 80240B94 0C051261 */ jal hud_element_set_render_pos
/* BCF788 80240B98 24C6001C */ addiu $a2, $a2, 0x1c
/* BCF78C 80240B9C 8E240044 */ lw $a0, 0x44($s1)
/* BCF790 80240BA0 8E250034 */ lw $a1, 0x34($s1)
/* BCF794 80240BA4 8E260038 */ lw $a2, 0x38($s1)
/* BCF798 80240BA8 24A50002 */ addiu $a1, $a1, 2
/* BCF79C 80240BAC 0C051261 */ jal hud_element_set_render_pos
/* BCF7A0 80240BB0 24C6000E */ addiu $a2, $a2, 0xe
/* BCF7A4 80240BB4 080903B7 */ j .L80240EDC
/* BCF7A8 80240BB8 00000000 */ nop
.L80240BBC:
/* BCF7AC 80240BBC 8E24003C */ lw $a0, 0x3c($s1)
/* BCF7B0 80240BC0 3C058011 */ lui $a1, %hi(HES_SlowlyMashAButton)
/* BCF7B4 80240BC4 24A58C34 */ addiu $a1, $a1, %lo(HES_SlowlyMashAButton)
/* BCF7B8 80240BC8 0C0511FF */ jal hud_element_set_script
/* BCF7BC 80240BCC 00000000 */ nop
/* BCF7C0 80240BD0 2402000B */ addiu $v0, $zero, 0xb
/* BCF7C4 80240BD4 AE220030 */ sw $v0, 0x30($s1)
.L80240BD8:
/* BCF7C8 80240BD8 8E2301C0 */ lw $v1, 0x1c0($s1)
/* BCF7CC 80240BDC 2405005A */ addiu $a1, $zero, 0x5a
/* BCF7D0 80240BE0 2463FFA6 */ addiu $v1, $v1, -0x5a
/* BCF7D4 80240BE4 04610002 */ bgez $v1, .L80240BF0
/* BCF7D8 80240BE8 AE200004 */ sw $zero, 4($s1)
/* BCF7DC 80240BEC 00651821 */ addu $v1, $v1, $a1
.L80240BF0:
/* BCF7E0 80240BF0 0000802D */ daddu $s0, $zero, $zero
/* BCF7E4 80240BF4 0200202D */ daddu $a0, $s0, $zero
.L80240BF8:
/* BCF7E8 80240BF8 2862005A */ slti $v0, $v1, 0x5a
/* BCF7EC 80240BFC 50400001 */ beql $v0, $zero, .L80240C04
/* BCF7F0 80240C00 2463FFA6 */ addiu $v1, $v1, -0x5a
.L80240C04:
/* BCF7F4 80240C04 00031080 */ sll $v0, $v1, 2
/* BCF7F8 80240C08 02221021 */ addu $v0, $s1, $v0
/* BCF7FC 80240C0C 8C420058 */ lw $v0, 0x58($v0)
/* BCF800 80240C10 54400001 */ bnel $v0, $zero, .L80240C18
/* BCF804 80240C14 26100001 */ addiu $s0, $s0, 1
.L80240C18:
/* BCF808 80240C18 24840001 */ addiu $a0, $a0, 1
/* BCF80C 80240C1C 0085102A */ slt $v0, $a0, $a1
/* BCF810 80240C20 1440FFF5 */ bnez $v0, .L80240BF8
/* BCF814 80240C24 24630001 */ addiu $v1, $v1, 1
/* BCF818 80240C28 0000202D */ daddu $a0, $zero, $zero
/* BCF81C 80240C2C 3C05FD05 */ lui $a1, 0xfd05
/* BCF820 80240C30 34A50F87 */ ori $a1, $a1, 0xf87
/* BCF824 80240C34 00103140 */ sll $a2, $s0, 5
/* BCF828 80240C38 00D03023 */ subu $a2, $a2, $s0
/* BCF82C 80240C3C 00063080 */ sll $a2, $a2, 2
/* BCF830 80240C40 00D03021 */ addu $a2, $a2, $s0
/* BCF834 80240C44 0C0B2026 */ jal evt_set_variable
/* BCF838 80240C48 000630C0 */ sll $a2, $a2, 3
/* BCF83C 80240C4C 3C032E8B */ lui $v1, 0x2e8b
/* BCF840 80240C50 3463A2E9 */ ori $v1, $v1, 0xa2e9
/* BCF844 80240C54 00101040 */ sll $v0, $s0, 1
/* BCF848 80240C58 00501021 */ addu $v0, $v0, $s0
/* BCF84C 80240C5C 000210C0 */ sll $v0, $v0, 3
/* BCF850 80240C60 00501021 */ addu $v0, $v0, $s0
/* BCF854 80240C64 00021080 */ sll $v0, $v0, 2
/* BCF858 80240C68 00430018 */ mult $v0, $v1
/* BCF85C 80240C6C 000217C3 */ sra $v0, $v0, 0x1f
/* BCF860 80240C70 00003810 */ mfhi $a3
/* BCF864 80240C74 00071883 */ sra $v1, $a3, 2
/* BCF868 80240C78 00621823 */ subu $v1, $v1, $v0
/* BCF86C 80240C7C 04610002 */ bgez $v1, .L80240C88
/* BCF870 80240C80 AE230004 */ sw $v1, 4($s1)
/* BCF874 80240C84 AE200004 */ sw $zero, 4($s1)
.L80240C88:
/* BCF878 80240C88 8E220004 */ lw $v0, 4($s1)
/* BCF87C 80240C8C 28420065 */ slti $v0, $v0, 0x65
/* BCF880 80240C90 14400004 */ bnez $v0, .L80240CA4
/* BCF884 80240C94 3C028888 */ lui $v0, 0x8888
/* BCF888 80240C98 24020064 */ addiu $v0, $zero, 0x64
/* BCF88C 80240C9C AE220004 */ sw $v0, 4($s1)
/* BCF890 80240CA0 3C028888 */ lui $v0, 0x8888
.L80240CA4:
/* BCF894 80240CA4 8E230008 */ lw $v1, 8($s1)
/* BCF898 80240CA8 34428889 */ ori $v0, $v0, 0x8889
/* BCF89C 80240CAC 00620018 */ mult $v1, $v0
/* BCF8A0 80240CB0 00003810 */ mfhi $a3
/* BCF8A4 80240CB4 00E31021 */ addu $v0, $a3, $v1
/* BCF8A8 80240CB8 00021143 */ sra $v0, $v0, 5
/* BCF8AC 80240CBC 00031FC3 */ sra $v1, $v1, 0x1f
/* BCF8B0 80240CC0 00438023 */ subu $s0, $v0, $v1
/* BCF8B4 80240CC4 2A020033 */ slti $v0, $s0, 0x33
/* BCF8B8 80240CC8 10400021 */ beqz $v0, .L80240D50
/* BCF8BC 80240CCC 00101840 */ sll $v1, $s0, 1
/* BCF8C0 80240CD0 3C0451EB */ lui $a0, 0x51eb
/* BCF8C4 80240CD4 3484851F */ ori $a0, $a0, 0x851f
/* BCF8C8 80240CD8 00701821 */ addu $v1, $v1, $s0
/* BCF8CC 80240CDC 00031100 */ sll $v0, $v1, 4
/* BCF8D0 80240CE0 00431023 */ subu $v0, $v0, $v1
/* BCF8D4 80240CE4 00021040 */ sll $v0, $v0, 1
/* BCF8D8 80240CE8 00440018 */ mult $v0, $a0
/* BCF8DC 80240CEC 000217C3 */ sra $v0, $v0, 0x1f
/* BCF8E0 80240CF0 3C0140C9 */ lui $at, 0x40c9
/* BCF8E4 80240CF4 34210FD0 */ ori $at, $at, 0xfd0
/* BCF8E8 80240CF8 44810000 */ mtc1 $at, $f0
/* BCF8EC 80240CFC 00003810 */ mfhi $a3
/* BCF8F0 80240D00 00071903 */ sra $v1, $a3, 4
/* BCF8F4 80240D04 00621823 */ subu $v1, $v1, $v0
/* BCF8F8 80240D08 44836000 */ mtc1 $v1, $f12
/* BCF8FC 80240D0C 00000000 */ nop
/* BCF900 80240D10 46806320 */ cvt.s.w $f12, $f12
/* BCF904 80240D14 46006302 */ mul.s $f12, $f12, $f0
/* BCF908 80240D18 00000000 */ nop
/* BCF90C 80240D1C 3C0143B4 */ lui $at, 0x43b4
/* BCF910 80240D20 44810000 */ mtc1 $at, $f0
/* BCF914 80240D24 0C00A85B */ jal sin_rad
/* BCF918 80240D28 46006303 */ div.s $f12, $f12, $f0
/* BCF91C 80240D2C 3C014248 */ lui $at, 0x4248
/* BCF920 80240D30 44811000 */ mtc1 $at, $f2
/* BCF924 80240D34 00000000 */ nop
/* BCF928 80240D38 46020002 */ mul.s $f0, $f0, $f2
/* BCF92C 80240D3C 00000000 */ nop
/* BCF930 80240D40 4600018D */ trunc.w.s $f6, $f0
/* BCF934 80240D44 44103000 */ mfc1 $s0, $f6
/* BCF938 80240D48 0809037D */ j .L80240DF4
/* BCF93C 80240D4C 24020064 */ addiu $v0, $zero, 0x64
.L80240D50:
/* BCF940 80240D50 3C0451EB */ lui $a0, 0x51eb
/* BCF944 80240D54 3484851F */ ori $a0, $a0, 0x851f
/* BCF948 80240D58 2602FFCE */ addiu $v0, $s0, -0x32
/* BCF94C 80240D5C 00021840 */ sll $v1, $v0, 1
/* BCF950 80240D60 00621821 */ addu $v1, $v1, $v0
/* BCF954 80240D64 00031100 */ sll $v0, $v1, 4
/* BCF958 80240D68 00431023 */ subu $v0, $v0, $v1
/* BCF95C 80240D6C 00021040 */ sll $v0, $v0, 1
/* BCF960 80240D70 00440018 */ mult $v0, $a0
/* BCF964 80240D74 000217C3 */ sra $v0, $v0, 0x1f
/* BCF968 80240D78 3C0140C9 */ lui $at, 0x40c9
/* BCF96C 80240D7C 34210FD0 */ ori $at, $at, 0xfd0
/* BCF970 80240D80 44810000 */ mtc1 $at, $f0
/* BCF974 80240D84 00003810 */ mfhi $a3
/* BCF978 80240D88 00071903 */ sra $v1, $a3, 4
/* BCF97C 80240D8C 00621823 */ subu $v1, $v1, $v0
/* BCF980 80240D90 2463005A */ addiu $v1, $v1, 0x5a
/* BCF984 80240D94 44836000 */ mtc1 $v1, $f12
/* BCF988 80240D98 00000000 */ nop
/* BCF98C 80240D9C 46806320 */ cvt.s.w $f12, $f12
/* BCF990 80240DA0 46006302 */ mul.s $f12, $f12, $f0
/* BCF994 80240DA4 00000000 */ nop
/* BCF998 80240DA8 3C0143B4 */ lui $at, 0x43b4
/* BCF99C 80240DAC 44810000 */ mtc1 $at, $f0
/* BCF9A0 80240DB0 0C00A85B */ jal sin_rad
/* BCF9A4 80240DB4 46006303 */ div.s $f12, $f12, $f0
/* BCF9A8 80240DB8 3C013FF0 */ lui $at, 0x3ff0
/* BCF9AC 80240DBC 44811800 */ mtc1 $at, $f3
/* BCF9B0 80240DC0 44801000 */ mtc1 $zero, $f2
/* BCF9B4 80240DC4 46000021 */ cvt.d.s $f0, $f0
/* BCF9B8 80240DC8 46201081 */ sub.d $f2, $f2, $f0
/* BCF9BC 80240DCC 3C014049 */ lui $at, 0x4049
/* BCF9C0 80240DD0 44810800 */ mtc1 $at, $f1
/* BCF9C4 80240DD4 44800000 */ mtc1 $zero, $f0
/* BCF9C8 80240DD8 00000000 */ nop
/* BCF9CC 80240DDC 46201082 */ mul.d $f2, $f2, $f0
/* BCF9D0 80240DE0 00000000 */ nop
/* BCF9D4 80240DE4 46201080 */ add.d $f2, $f2, $f0
/* BCF9D8 80240DE8 4620118D */ trunc.w.d $f6, $f2
/* BCF9DC 80240DEC 44103000 */ mfc1 $s0, $f6
/* BCF9E0 80240DF0 24020064 */ addiu $v0, $zero, 0x64
.L80240DF4:
/* BCF9E4 80240DF4 00501023 */ subu $v0, $v0, $s0
/* BCF9E8 80240DF8 3C013FD0 */ lui $at, 0x3fd0
/* BCF9EC 80240DFC 44811800 */ mtc1 $at, $f3
/* BCF9F0 80240E00 44801000 */ mtc1 $zero, $f2
/* BCF9F4 80240E04 44820000 */ mtc1 $v0, $f0
/* BCF9F8 80240E08 00000000 */ nop
/* BCF9FC 80240E0C 46800021 */ cvt.d.w $f0, $f0
/* BCFA00 80240E10 46220002 */ mul.d $f0, $f0, $f2
/* BCFA04 80240E14 00000000 */ nop
/* BCFA08 80240E18 44901000 */ mtc1 $s0, $f2
/* BCFA0C 80240E1C 00000000 */ nop
/* BCFA10 80240E20 468010A1 */ cvt.d.w $f2, $f2
/* BCFA14 80240E24 46221080 */ add.d $f2, $f2, $f2
/* BCFA18 80240E28 3C014059 */ lui $at, 0x4059
/* BCFA1C 80240E2C 44812800 */ mtc1 $at, $f5
/* BCFA20 80240E30 44802000 */ mtc1 $zero, $f4
/* BCFA24 80240E34 00000000 */ nop
/* BCFA28 80240E38 46241083 */ div.d $f2, $f2, $f4
/* BCFA2C 80240E3C 46240003 */ div.d $f0, $f0, $f4
/* BCFA30 80240E40 46220000 */ add.d $f0, $f0, $f2
/* BCFA34 80240E44 8E24000C */ lw $a0, 0xc($s1)
/* BCFA38 80240E48 46200020 */ cvt.s.d $f0, $f0
/* BCFA3C 80240E4C 44050000 */ mfc1 $a1, $f0
/* BCFA40 80240E50 0C01574E */ jal func_80055D38
/* BCFA44 80240E54 AE2501C4 */ sw $a1, 0x1c4($s1)
/* BCFA48 80240E58 8E24004C */ lw $a0, 0x4c($s1)
/* BCFA4C 80240E5C 0C0B11EA */ jal get_script_by_id
/* BCFA50 80240E60 00000000 */ nop
/* BCFA54 80240E64 C62201C4 */ lwc1 $f2, 0x1c4($s1)
/* BCFA58 80240E68 3C014040 */ lui $at, 0x4040
/* BCFA5C 80240E6C 44810000 */ mtc1 $at, $f0
/* BCFA60 80240E70 00000000 */ nop
/* BCFA64 80240E74 46001082 */ mul.s $f2, $f2, $f0
/* BCFA68 80240E78 00000000 */ nop
/* BCFA6C 80240E7C 44051000 */ mfc1 $a1, $f2
/* BCFA70 80240E80 0C0B1078 */ jal set_script_timescale
/* BCFA74 80240E84 0040202D */ daddu $a0, $v0, $zero
/* BCFA78 80240E88 8E240050 */ lw $a0, 0x50($s1)
/* BCFA7C 80240E8C 0C0B11EA */ jal get_script_by_id
/* BCFA80 80240E90 00000000 */ nop
/* BCFA84 80240E94 C62001C4 */ lwc1 $f0, 0x1c4($s1)
/* BCFA88 80240E98 3C0140A0 */ lui $at, 0x40a0
/* BCFA8C 80240E9C 4481A000 */ mtc1 $at, $f20
/* BCFA90 80240EA0 00000000 */ nop
/* BCFA94 80240EA4 46140002 */ mul.s $f0, $f0, $f20
/* BCFA98 80240EA8 00000000 */ nop
/* BCFA9C 80240EAC 44050000 */ mfc1 $a1, $f0
/* BCFAA0 80240EB0 0C0B1078 */ jal set_script_timescale
/* BCFAA4 80240EB4 0040202D */ daddu $a0, $v0, $zero
/* BCFAA8 80240EB8 8E240054 */ lw $a0, 0x54($s1)
/* BCFAAC 80240EBC 0C0B11EA */ jal get_script_by_id
/* BCFAB0 80240EC0 00000000 */ nop
/* BCFAB4 80240EC4 C62001C4 */ lwc1 $f0, 0x1c4($s1)
/* BCFAB8 80240EC8 46140002 */ mul.s $f0, $f0, $f20
/* BCFABC 80240ECC 00000000 */ nop
/* BCFAC0 80240ED0 44050000 */ mfc1 $a1, $f0
/* BCFAC4 80240ED4 0C0B1078 */ jal set_script_timescale
/* BCFAC8 80240ED8 0040202D */ daddu $a0, $v0, $zero
.L80240EDC:
/* BCFACC 80240EDC 8FBF001C */ lw $ra, 0x1c($sp)
/* BCFAD0 80240EE0 8FB20018 */ lw $s2, 0x18($sp)
/* BCFAD4 80240EE4 8FB10014 */ lw $s1, 0x14($sp)
/* BCFAD8 80240EE8 8FB00010 */ lw $s0, 0x10($sp)
/* BCFADC 80240EEC D7B40020 */ ldc1 $f20, 0x20($sp)
/* BCFAE0 80240EF0 03E00008 */ jr $ra
/* BCFAE4 80240EF4 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -1,171 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802418E0_BD04D0
/* BD04D0 802418E0 27BDFFB0 */ addiu $sp, $sp, -0x50
/* BD04D4 802418E4 AFB20018 */ sw $s2, 0x18($sp)
/* BD04D8 802418E8 0080902D */ daddu $s2, $a0, $zero
/* BD04DC 802418EC AFBF001C */ sw $ra, 0x1c($sp)
/* BD04E0 802418F0 AFB10014 */ sw $s1, 0x14($sp)
/* BD04E4 802418F4 AFB00010 */ sw $s0, 0x10($sp)
/* BD04E8 802418F8 F7BE0048 */ sdc1 $f30, 0x48($sp)
/* BD04EC 802418FC F7BC0040 */ sdc1 $f28, 0x40($sp)
/* BD04F0 80241900 F7BA0038 */ sdc1 $f26, 0x38($sp)
/* BD04F4 80241904 F7B80030 */ sdc1 $f24, 0x30($sp)
/* BD04F8 80241908 F7B60028 */ sdc1 $f22, 0x28($sp)
/* BD04FC 8024190C F7B40020 */ sdc1 $f20, 0x20($sp)
/* BD0500 80241910 0C00EABB */ jal get_npc_unsafe
/* BD0504 80241914 24040002 */ addiu $a0, $zero, 2
/* BD0508 80241918 0C090150 */ jal func_80240540_BCF130
/* BD050C 8024191C 0040802D */ daddu $s0, $v0, $zero
/* BD0510 80241920 0040882D */ daddu $s1, $v0, $zero
/* BD0514 80241924 2403FFFF */ addiu $v1, $zero, -1
/* BD0518 80241928 3C01C308 */ lui $at, 0xc308
/* BD051C 8024192C 4481D000 */ mtc1 $at, $f26
/* BD0520 80241930 C6160038 */ lwc1 $f22, 0x38($s0)
/* BD0524 80241934 C6180040 */ lwc1 $f24, 0x40($s0)
/* BD0528 80241938 3C01C2B8 */ lui $at, 0xc2b8
/* BD052C 8024193C 4481F000 */ mtc1 $at, $f30
/* BD0530 80241940 8E220030 */ lw $v0, 0x30($s1)
/* BD0534 80241944 3C014328 */ lui $at, 0x4328
/* BD0538 80241948 4481E000 */ mtc1 $at, $f28
/* BD053C 8024194C 14430025 */ bne $v0, $v1, .L802419E4
/* BD0540 80241950 3C020095 */ lui $v0, 0x95
/* BD0544 80241954 34420003 */ ori $v0, $v0, 3
/* BD0548 80241958 4600B306 */ mov.s $f12, $f22
/* BD054C 8024195C 3C014000 */ lui $at, 0x4000
/* BD0550 80241960 4481A000 */ mtc1 $at, $f20
/* BD0554 80241964 4406E000 */ mfc1 $a2, $f28
/* BD0558 80241968 4407D000 */ mfc1 $a3, $f26
/* BD055C 8024196C 4600C386 */ mov.s $f14, $f24
/* BD0560 80241970 0C00A7B5 */ jal dist2D
/* BD0564 80241974 AE020028 */ sw $v0, 0x28($s0)
/* BD0568 80241978 4614003C */ c.lt.s $f0, $f20
/* BD056C 8024197C 00000000 */ nop
/* BD0570 80241980 4500000D */ bc1f .L802419B8
/* BD0574 80241984 4600B306 */ mov.s $f12, $f22
/* BD0578 80241988 4406F000 */ mfc1 $a2, $f30
/* BD057C 8024198C 4407D000 */ mfc1 $a3, $f26
/* BD0580 80241990 4600C386 */ mov.s $f14, $f24
/* BD0584 80241994 E61C0038 */ swc1 $f28, 0x38($s0)
/* BD0588 80241998 0C00A720 */ jal atan2
/* BD058C 8024199C AE070040 */ sw $a3, 0x40($s0)
/* BD0590 802419A0 24020002 */ addiu $v0, $zero, 2
/* BD0594 802419A4 24030001 */ addiu $v1, $zero, 1
/* BD0598 802419A8 E600000C */ swc1 $f0, 0xc($s0)
/* BD059C 802419AC AE4000AC */ sw $zero, 0xac($s2)
/* BD05A0 802419B0 080906C8 */ j .L80241B20
/* BD05A4 802419B4 AE4300B0 */ sw $v1, 0xb0($s2)
.L802419B8:
/* BD05A8 802419B8 4406E000 */ mfc1 $a2, $f28
/* BD05AC 802419BC 4407D000 */ mfc1 $a3, $f26
/* BD05B0 802419C0 0C00A720 */ jal atan2
/* BD05B4 802419C4 4600C386 */ mov.s $f14, $f24
/* BD05B8 802419C8 4405A000 */ mfc1 $a1, $f20
/* BD05BC 802419CC 44060000 */ mfc1 $a2, $f0
/* BD05C0 802419D0 0200202D */ daddu $a0, $s0, $zero
/* BD05C4 802419D4 0C00EA95 */ jal npc_move_heading
/* BD05C8 802419D8 AC86000C */ sw $a2, 0xc($a0)
/* BD05CC 802419DC 080906C8 */ j .L80241B20
/* BD05D0 802419E0 24020002 */ addiu $v0, $zero, 2
.L802419E4:
/* BD05D4 802419E4 8E2201D4 */ lw $v0, 0x1d4($s1)
/* BD05D8 802419E8 28421B59 */ slti $v0, $v0, 0x1b59
/* BD05DC 802419EC 14400019 */ bnez $v0, .L80241A54
/* BD05E0 802419F0 4600B306 */ mov.s $f12, $f22
/* BD05E4 802419F4 4600C386 */ mov.s $f14, $f24
/* BD05E8 802419F8 3C014000 */ lui $at, 0x4000
/* BD05EC 802419FC 4481A000 */ mtc1 $at, $f20
/* BD05F0 80241A00 4406F000 */ mfc1 $a2, $f30
/* BD05F4 80241A04 4407D000 */ mfc1 $a3, $f26
/* BD05F8 80241A08 24020001 */ addiu $v0, $zero, 1
/* BD05FC 80241A0C 0C00A7B5 */ jal dist2D
/* BD0600 80241A10 AE4200AC */ sw $v0, 0xac($s2)
/* BD0604 80241A14 4614003C */ c.lt.s $f0, $f20
/* BD0608 80241A18 00000000 */ nop
/* BD060C 80241A1C 45000004 */ bc1f .L80241A30
/* BD0610 80241A20 4600B306 */ mov.s $f12, $f22
/* BD0614 80241A24 E61E0038 */ swc1 $f30, 0x38($s0)
/* BD0618 80241A28 08090695 */ j .L80241A54
/* BD061C 80241A2C E61A0040 */ swc1 $f26, 0x40($s0)
.L80241A30:
/* BD0620 80241A30 4406F000 */ mfc1 $a2, $f30
/* BD0624 80241A34 4407D000 */ mfc1 $a3, $f26
/* BD0628 80241A38 0C00A720 */ jal atan2
/* BD062C 80241A3C 4600C386 */ mov.s $f14, $f24
/* BD0630 80241A40 4405A000 */ mfc1 $a1, $f20
/* BD0634 80241A44 44060000 */ mfc1 $a2, $f0
/* BD0638 80241A48 0200202D */ daddu $a0, $s0, $zero
/* BD063C 80241A4C 0C00EA95 */ jal npc_move_heading
/* BD0640 80241A50 AE06000C */ sw $a2, 0xc($s0)
.L80241A54:
/* BD0644 80241A54 8E2201D4 */ lw $v0, 0x1d4($s1)
/* BD0648 80241A58 28420BB8 */ slti $v0, $v0, 0xbb8
/* BD064C 80241A5C 1040001D */ beqz $v0, .L80241AD4
/* BD0650 80241A60 4600B306 */ mov.s $f12, $f22
/* BD0654 80241A64 3C014000 */ lui $at, 0x4000
/* BD0658 80241A68 4481A000 */ mtc1 $at, $f20
/* BD065C 80241A6C 4406E000 */ mfc1 $a2, $f28
/* BD0660 80241A70 4407D000 */ mfc1 $a3, $f26
/* BD0664 80241A74 4600C386 */ mov.s $f14, $f24
/* BD0668 80241A78 0C00A7B5 */ jal dist2D
/* BD066C 80241A7C AE4000AC */ sw $zero, 0xac($s2)
/* BD0670 80241A80 4614003C */ c.lt.s $f0, $f20
/* BD0674 80241A84 00000000 */ nop
/* BD0678 80241A88 45000009 */ bc1f .L80241AB0
/* BD067C 80241A8C 4600B306 */ mov.s $f12, $f22
/* BD0680 80241A90 4406F000 */ mfc1 $a2, $f30
/* BD0684 80241A94 3C07C308 */ lui $a3, 0xc308
/* BD0688 80241A98 4600C386 */ mov.s $f14, $f24
/* BD068C 80241A9C E61C0038 */ swc1 $f28, 0x38($s0)
/* BD0690 80241AA0 0C00A720 */ jal atan2
/* BD0694 80241AA4 E61A0040 */ swc1 $f26, 0x40($s0)
/* BD0698 80241AA8 080906B5 */ j .L80241AD4
/* BD069C 80241AAC E600000C */ swc1 $f0, 0xc($s0)
.L80241AB0:
/* BD06A0 80241AB0 4406E000 */ mfc1 $a2, $f28
/* BD06A4 80241AB4 4407D000 */ mfc1 $a3, $f26
/* BD06A8 80241AB8 0C00A720 */ jal atan2
/* BD06AC 80241ABC 4600C386 */ mov.s $f14, $f24
/* BD06B0 80241AC0 4405A000 */ mfc1 $a1, $f20
/* BD06B4 80241AC4 44060000 */ mfc1 $a2, $f0
/* BD06B8 80241AC8 0200202D */ daddu $a0, $s0, $zero
/* BD06BC 80241ACC 0C00EA95 */ jal npc_move_heading
/* BD06C0 80241AD0 AE06000C */ sw $a2, 0xc($s0)
.L80241AD4:
/* BD06C4 80241AD4 8E2301D4 */ lw $v1, 0x1d4($s1)
/* BD06C8 80241AD8 28621B59 */ slti $v0, $v1, 0x1b59
/* BD06CC 80241ADC 54400004 */ bnel $v0, $zero, .L80241AF0
/* BD06D0 80241AE0 28621389 */ slti $v0, $v1, 0x1389
/* BD06D4 80241AE4 3C020095 */ lui $v0, 0x95
/* BD06D8 80241AE8 080906C6 */ j .L80241B18
/* BD06DC 80241AEC 34420005 */ ori $v0, $v0, 5
.L80241AF0:
/* BD06E0 80241AF0 54400004 */ bnel $v0, $zero, .L80241B04
/* BD06E4 80241AF4 28620BB9 */ slti $v0, $v1, 0xbb9
/* BD06E8 80241AF8 3C020095 */ lui $v0, 0x95
/* BD06EC 80241AFC 080906C6 */ j .L80241B18
/* BD06F0 80241B00 34420003 */ ori $v0, $v0, 3
.L80241B04:
/* BD06F4 80241B04 14400003 */ bnez $v0, .L80241B14
/* BD06F8 80241B08 3C020095 */ lui $v0, 0x95
/* BD06FC 80241B0C 080906C6 */ j .L80241B18
/* BD0700 80241B10 34420002 */ ori $v0, $v0, 2
.L80241B14:
/* BD0704 80241B14 34420001 */ ori $v0, $v0, 1
.L80241B18:
/* BD0708 80241B18 AE020028 */ sw $v0, 0x28($s0)
/* BD070C 80241B1C 24020002 */ addiu $v0, $zero, 2
.L80241B20:
/* BD0710 80241B20 8FBF001C */ lw $ra, 0x1c($sp)
/* BD0714 80241B24 8FB20018 */ lw $s2, 0x18($sp)
/* BD0718 80241B28 8FB10014 */ lw $s1, 0x14($sp)
/* BD071C 80241B2C 8FB00010 */ lw $s0, 0x10($sp)
/* BD0720 80241B30 D7BE0048 */ ldc1 $f30, 0x48($sp)
/* BD0724 80241B34 D7BC0040 */ ldc1 $f28, 0x40($sp)
/* BD0728 80241B38 D7BA0038 */ ldc1 $f26, 0x38($sp)
/* BD072C 80241B3C D7B80030 */ ldc1 $f24, 0x30($sp)
/* BD0730 80241B40 D7B60028 */ ldc1 $f22, 0x28($sp)
/* BD0734 80241B44 D7B40020 */ ldc1 $f20, 0x20($sp)
/* BD0738 80241B48 03E00008 */ jr $ra
/* BD073C 80241B4C 27BD0050 */ addiu $sp, $sp, 0x50

View File

@ -1,73 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802403DC_BD3C4C
/* BD3C4C 802403DC 27BDFFD8 */ addiu $sp, $sp, -0x28
/* BD3C50 802403E0 AFB3001C */ sw $s3, 0x1c($sp)
/* BD3C54 802403E4 0080982D */ daddu $s3, $a0, $zero
/* BD3C58 802403E8 AFBF0020 */ sw $ra, 0x20($sp)
/* BD3C5C 802403EC AFB20018 */ sw $s2, 0x18($sp)
/* BD3C60 802403F0 AFB10014 */ sw $s1, 0x14($sp)
/* BD3C64 802403F4 AFB00010 */ sw $s0, 0x10($sp)
/* BD3C68 802403F8 8E70000C */ lw $s0, 0xc($s3)
/* BD3C6C 802403FC 8E050000 */ lw $a1, ($s0)
/* BD3C70 80240400 0C0B1EAF */ jal evt_get_variable
/* BD3C74 80240404 26100004 */ addiu $s0, $s0, 4
/* BD3C78 80240408 0260202D */ daddu $a0, $s3, $zero
/* BD3C7C 8024040C 8E050000 */ lw $a1, ($s0)
/* BD3C80 80240410 0C0B1EAF */ jal evt_get_variable
/* BD3C84 80240414 0040902D */ daddu $s2, $v0, $zero
/* BD3C88 80240418 2404003C */ addiu $a0, $zero, 0x3c
/* BD3C8C 8024041C 0C00AB39 */ jal heap_malloc
/* BD3C90 80240420 0040882D */ daddu $s1, $v0, $zero
/* BD3C94 80240424 0040802D */ daddu $s0, $v0, $zero
/* BD3C98 80240428 3C038011 */ lui $v1, %hi(gPlayerStatus)
/* BD3C9C 8024042C 2463EFC8 */ addiu $v1, $v1, %lo(gPlayerStatus)
/* BD3CA0 80240430 AE120008 */ sw $s2, 8($s0)
/* BD3CA4 80240434 AE11000C */ sw $s1, 0xc($s0)
/* BD3CA8 80240438 846200B0 */ lh $v0, 0xb0($v1)
/* BD3CAC 8024043C 44820000 */ mtc1 $v0, $f0
/* BD3CB0 80240440 00000000 */ nop
/* BD3CB4 80240444 46800020 */ cvt.s.w $f0, $f0
/* BD3CB8 80240448 E6000034 */ swc1 $f0, 0x34($s0)
/* BD3CBC 8024044C 846200B2 */ lh $v0, 0xb2($v1)
/* BD3CC0 80240450 44820000 */ mtc1 $v0, $f0
/* BD3CC4 80240454 00000000 */ nop
/* BD3CC8 80240458 46800020 */ cvt.s.w $f0, $f0
/* BD3CCC 8024045C E6000038 */ swc1 $f0, 0x38($s0)
/* BD3CD0 80240460 C4600028 */ lwc1 $f0, 0x28($v1)
/* BD3CD4 80240464 E6000010 */ swc1 $f0, 0x10($s0)
/* BD3CD8 80240468 C460002C */ lwc1 $f0, 0x2c($v1)
/* BD3CDC 8024046C E6000014 */ swc1 $f0, 0x14($s0)
/* BD3CE0 80240470 C4620030 */ lwc1 $f2, 0x30($v1)
/* BD3CE4 80240474 3C013F36 */ lui $at, 0x3f36
/* BD3CE8 80240478 3421DB6E */ ori $at, $at, 0xdb6e
/* BD3CEC 8024047C 44810000 */ mtc1 $at, $f0
/* BD3CF0 80240480 24040001 */ addiu $a0, $zero, 1
/* BD3CF4 80240484 AE00001C */ sw $zero, 0x1c($s0)
/* BD3CF8 80240488 AE000020 */ sw $zero, 0x20($s0)
/* BD3CFC 8024048C AE000024 */ sw $zero, 0x24($s0)
/* BD3D00 80240490 E6000028 */ swc1 $f0, 0x28($s0)
/* BD3D04 80240494 E600002C */ swc1 $f0, 0x2c($s0)
/* BD3D08 80240498 E6000030 */ swc1 $f0, 0x30($s0)
/* BD3D0C 8024049C 0C04E9C1 */ jal func_8013A704
/* BD3D10 802404A0 E6020018 */ swc1 $f2, 0x18($s0)
/* BD3D14 802404A4 0000202D */ daddu $a0, $zero, $zero
/* BD3D18 802404A8 3C058024 */ lui $a1, %hi(obk_08_UnkFoldFunc)
/* BD3D1C 802404AC 24A50000 */ addiu $a1, $a1, %lo(obk_08_UnkFoldFunc)
/* BD3D20 802404B0 0C048C56 */ jal create_worker_world
/* BD3D24 802404B4 AE020000 */ sw $v0, ($s0)
/* BD3D28 802404B8 0260202D */ daddu $a0, $s3, $zero
/* BD3D2C 802404BC 3C05FD05 */ lui $a1, 0xfd05
/* BD3D30 802404C0 34A50F8A */ ori $a1, $a1, 0xf8a
/* BD3D34 802404C4 0200302D */ daddu $a2, $s0, $zero
/* BD3D38 802404C8 0C0B2026 */ jal evt_set_variable
/* BD3D3C 802404CC AE020004 */ sw $v0, 4($s0)
/* BD3D40 802404D0 8FBF0020 */ lw $ra, 0x20($sp)
/* BD3D44 802404D4 8FB3001C */ lw $s3, 0x1c($sp)
/* BD3D48 802404D8 8FB20018 */ lw $s2, 0x18($sp)
/* BD3D4C 802404DC 8FB10014 */ lw $s1, 0x14($sp)
/* BD3D50 802404E0 8FB00010 */ lw $s0, 0x10($sp)
/* BD3D54 802404E4 24020002 */ addiu $v0, $zero, 2
/* BD3D58 802404E8 03E00008 */ jr $ra
/* BD3D5C 802404EC 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -1,52 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8024055C_BD3DCC
/* BD3DCC 8024055C 27BDFFE0 */ addiu $sp, $sp, -0x20
/* BD3DD0 80240560 AFB10014 */ sw $s1, 0x14($sp)
/* BD3DD4 80240564 0080882D */ daddu $s1, $a0, $zero
/* BD3DD8 80240568 AFBF001C */ sw $ra, 0x1c($sp)
/* BD3DDC 8024056C AFB20018 */ sw $s2, 0x18($sp)
/* BD3DE0 80240570 AFB00010 */ sw $s0, 0x10($sp)
/* BD3DE4 80240574 8E30000C */ lw $s0, 0xc($s1)
/* BD3DE8 80240578 8E050000 */ lw $a1, ($s0)
/* BD3DEC 8024057C 0C0B210B */ jal evt_get_float_variable
/* BD3DF0 80240580 26100004 */ addiu $s0, $s0, 4
/* BD3DF4 80240584 8E050000 */ lw $a1, ($s0)
/* BD3DF8 80240588 26100004 */ addiu $s0, $s0, 4
/* BD3DFC 8024058C 4600008D */ trunc.w.s $f2, $f0
/* BD3E00 80240590 44121000 */ mfc1 $s2, $f2
/* BD3E04 80240594 0C0B210B */ jal evt_get_float_variable
/* BD3E08 80240598 0220202D */ daddu $a0, $s1, $zero
/* BD3E0C 8024059C 0220202D */ daddu $a0, $s1, $zero
/* BD3E10 802405A0 8E050000 */ lw $a1, ($s0)
/* BD3E14 802405A4 4600008D */ trunc.w.s $f2, $f0
/* BD3E18 802405A8 44111000 */ mfc1 $s1, $f2
/* BD3E1C 802405AC 0C0B210B */ jal evt_get_float_variable
/* BD3E20 802405B0 00000000 */ nop
/* BD3E24 802405B4 0000202D */ daddu $a0, $zero, $zero
/* BD3E28 802405B8 3C05FD05 */ lui $a1, 0xfd05
/* BD3E2C 802405BC 4600008D */ trunc.w.s $f2, $f0
/* BD3E30 802405C0 44101000 */ mfc1 $s0, $f2
/* BD3E34 802405C4 0C0B1EAF */ jal evt_get_variable
/* BD3E38 802405C8 34A50F8A */ ori $a1, $a1, 0xf8a
/* BD3E3C 802405CC 0040182D */ daddu $v1, $v0, $zero
/* BD3E40 802405D0 44920000 */ mtc1 $s2, $f0
/* BD3E44 802405D4 00000000 */ nop
/* BD3E48 802405D8 46800020 */ cvt.s.w $f0, $f0
/* BD3E4C 802405DC E4600010 */ swc1 $f0, 0x10($v1)
/* BD3E50 802405E0 44910000 */ mtc1 $s1, $f0
/* BD3E54 802405E4 00000000 */ nop
/* BD3E58 802405E8 46800020 */ cvt.s.w $f0, $f0
/* BD3E5C 802405EC E4600014 */ swc1 $f0, 0x14($v1)
/* BD3E60 802405F0 44900000 */ mtc1 $s0, $f0
/* BD3E64 802405F4 00000000 */ nop
/* BD3E68 802405F8 46800020 */ cvt.s.w $f0, $f0
/* BD3E6C 802405FC E4600018 */ swc1 $f0, 0x18($v1)
/* BD3E70 80240600 8FBF001C */ lw $ra, 0x1c($sp)
/* BD3E74 80240604 8FB20018 */ lw $s2, 0x18($sp)
/* BD3E78 80240608 8FB10014 */ lw $s1, 0x14($sp)
/* BD3E7C 8024060C 8FB00010 */ lw $s0, 0x10($sp)
/* BD3E80 80240610 24020002 */ addiu $v0, $zero, 2
/* BD3E84 80240614 03E00008 */ jr $ra
/* BD3E88 80240618 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,52 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8024061C_BD3E8C
/* BD3E8C 8024061C 27BDFFE0 */ addiu $sp, $sp, -0x20
/* BD3E90 80240620 AFB10014 */ sw $s1, 0x14($sp)
/* BD3E94 80240624 0080882D */ daddu $s1, $a0, $zero
/* BD3E98 80240628 AFBF001C */ sw $ra, 0x1c($sp)
/* BD3E9C 8024062C AFB20018 */ sw $s2, 0x18($sp)
/* BD3EA0 80240630 AFB00010 */ sw $s0, 0x10($sp)
/* BD3EA4 80240634 8E30000C */ lw $s0, 0xc($s1)
/* BD3EA8 80240638 8E050000 */ lw $a1, ($s0)
/* BD3EAC 8024063C 0C0B210B */ jal evt_get_float_variable
/* BD3EB0 80240640 26100004 */ addiu $s0, $s0, 4
/* BD3EB4 80240644 8E050000 */ lw $a1, ($s0)
/* BD3EB8 80240648 26100004 */ addiu $s0, $s0, 4
/* BD3EBC 8024064C 4600008D */ trunc.w.s $f2, $f0
/* BD3EC0 80240650 44121000 */ mfc1 $s2, $f2
/* BD3EC4 80240654 0C0B210B */ jal evt_get_float_variable
/* BD3EC8 80240658 0220202D */ daddu $a0, $s1, $zero
/* BD3ECC 8024065C 0220202D */ daddu $a0, $s1, $zero
/* BD3ED0 80240660 8E050000 */ lw $a1, ($s0)
/* BD3ED4 80240664 4600008D */ trunc.w.s $f2, $f0
/* BD3ED8 80240668 44111000 */ mfc1 $s1, $f2
/* BD3EDC 8024066C 0C0B210B */ jal evt_get_float_variable
/* BD3EE0 80240670 00000000 */ nop
/* BD3EE4 80240674 0000202D */ daddu $a0, $zero, $zero
/* BD3EE8 80240678 3C05FD05 */ lui $a1, 0xfd05
/* BD3EEC 8024067C 4600008D */ trunc.w.s $f2, $f0
/* BD3EF0 80240680 44101000 */ mfc1 $s0, $f2
/* BD3EF4 80240684 0C0B1EAF */ jal evt_get_variable
/* BD3EF8 80240688 34A50F8A */ ori $a1, $a1, 0xf8a
/* BD3EFC 8024068C 0040182D */ daddu $v1, $v0, $zero
/* BD3F00 80240690 44920000 */ mtc1 $s2, $f0
/* BD3F04 80240694 00000000 */ nop
/* BD3F08 80240698 46800020 */ cvt.s.w $f0, $f0
/* BD3F0C 8024069C E460001C */ swc1 $f0, 0x1c($v1)
/* BD3F10 802406A0 44910000 */ mtc1 $s1, $f0
/* BD3F14 802406A4 00000000 */ nop
/* BD3F18 802406A8 46800020 */ cvt.s.w $f0, $f0
/* BD3F1C 802406AC E4600020 */ swc1 $f0, 0x20($v1)
/* BD3F20 802406B0 44900000 */ mtc1 $s0, $f0
/* BD3F24 802406B4 00000000 */ nop
/* BD3F28 802406B8 46800020 */ cvt.s.w $f0, $f0
/* BD3F2C 802406BC E4600024 */ swc1 $f0, 0x24($v1)
/* BD3F30 802406C0 8FBF001C */ lw $ra, 0x1c($sp)
/* BD3F34 802406C4 8FB20018 */ lw $s2, 0x18($sp)
/* BD3F38 802406C8 8FB10014 */ lw $s1, 0x14($sp)
/* BD3F3C 802406CC 8FB00010 */ lw $s0, 0x10($sp)
/* BD3F40 802406D0 24020002 */ addiu $v0, $zero, 2
/* BD3F44 802406D4 03E00008 */ jr $ra
/* BD3F48 802406D8 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,52 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802406DC_BD3F4C
/* BD3F4C 802406DC 27BDFFE0 */ addiu $sp, $sp, -0x20
/* BD3F50 802406E0 AFB10014 */ sw $s1, 0x14($sp)
/* BD3F54 802406E4 0080882D */ daddu $s1, $a0, $zero
/* BD3F58 802406E8 AFBF001C */ sw $ra, 0x1c($sp)
/* BD3F5C 802406EC AFB20018 */ sw $s2, 0x18($sp)
/* BD3F60 802406F0 AFB00010 */ sw $s0, 0x10($sp)
/* BD3F64 802406F4 8E30000C */ lw $s0, 0xc($s1)
/* BD3F68 802406F8 8E050000 */ lw $a1, ($s0)
/* BD3F6C 802406FC 0C0B210B */ jal evt_get_float_variable
/* BD3F70 80240700 26100004 */ addiu $s0, $s0, 4
/* BD3F74 80240704 8E050000 */ lw $a1, ($s0)
/* BD3F78 80240708 26100004 */ addiu $s0, $s0, 4
/* BD3F7C 8024070C 4600008D */ trunc.w.s $f2, $f0
/* BD3F80 80240710 44121000 */ mfc1 $s2, $f2
/* BD3F84 80240714 0C0B210B */ jal evt_get_float_variable
/* BD3F88 80240718 0220202D */ daddu $a0, $s1, $zero
/* BD3F8C 8024071C 0220202D */ daddu $a0, $s1, $zero
/* BD3F90 80240720 8E050000 */ lw $a1, ($s0)
/* BD3F94 80240724 4600008D */ trunc.w.s $f2, $f0
/* BD3F98 80240728 44111000 */ mfc1 $s1, $f2
/* BD3F9C 8024072C 0C0B210B */ jal evt_get_float_variable
/* BD3FA0 80240730 00000000 */ nop
/* BD3FA4 80240734 0000202D */ daddu $a0, $zero, $zero
/* BD3FA8 80240738 3C05FD05 */ lui $a1, 0xfd05
/* BD3FAC 8024073C 4600008D */ trunc.w.s $f2, $f0
/* BD3FB0 80240740 44101000 */ mfc1 $s0, $f2
/* BD3FB4 80240744 0C0B1EAF */ jal evt_get_variable
/* BD3FB8 80240748 34A50F8A */ ori $a1, $a1, 0xf8a
/* BD3FBC 8024074C 0040182D */ daddu $v1, $v0, $zero
/* BD3FC0 80240750 44920000 */ mtc1 $s2, $f0
/* BD3FC4 80240754 00000000 */ nop
/* BD3FC8 80240758 46800020 */ cvt.s.w $f0, $f0
/* BD3FCC 8024075C E4600028 */ swc1 $f0, 0x28($v1)
/* BD3FD0 80240760 44910000 */ mtc1 $s1, $f0
/* BD3FD4 80240764 00000000 */ nop
/* BD3FD8 80240768 46800020 */ cvt.s.w $f0, $f0
/* BD3FDC 8024076C E460002C */ swc1 $f0, 0x2c($v1)
/* BD3FE0 80240770 44900000 */ mtc1 $s0, $f0
/* BD3FE4 80240774 00000000 */ nop
/* BD3FE8 80240778 46800020 */ cvt.s.w $f0, $f0
/* BD3FEC 8024077C E4600030 */ swc1 $f0, 0x30($v1)
/* BD3FF0 80240780 8FBF001C */ lw $ra, 0x1c($sp)
/* BD3FF4 80240784 8FB20018 */ lw $s2, 0x18($sp)
/* BD3FF8 80240788 8FB10014 */ lw $s1, 0x14($sp)
/* BD3FFC 8024078C 8FB00010 */ lw $s0, 0x10($sp)
/* BD4000 80240790 24020002 */ addiu $v0, $zero, 2
/* BD4004 80240794 03E00008 */ jr $ra
/* BD4008 80240798 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,31 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8024079C_BD400C
/* BD400C 8024079C 27BDFFE0 */ addiu $sp, $sp, -0x20
/* BD4010 802407A0 AFB10014 */ sw $s1, 0x14($sp)
/* BD4014 802407A4 0080882D */ daddu $s1, $a0, $zero
/* BD4018 802407A8 AFBF0018 */ sw $ra, 0x18($sp)
/* BD401C 802407AC AFB00010 */ sw $s0, 0x10($sp)
/* BD4020 802407B0 8E30000C */ lw $s0, 0xc($s1)
/* BD4024 802407B4 8E050000 */ lw $a1, ($s0)
/* BD4028 802407B8 0C0B1EAF */ jal evt_get_variable
/* BD402C 802407BC 26100004 */ addiu $s0, $s0, 4
/* BD4030 802407C0 0220202D */ daddu $a0, $s1, $zero
/* BD4034 802407C4 8E050000 */ lw $a1, ($s0)
/* BD4038 802407C8 0C0B1EAF */ jal evt_get_variable
/* BD403C 802407CC 0040882D */ daddu $s1, $v0, $zero
/* BD4040 802407D0 0000202D */ daddu $a0, $zero, $zero
/* BD4044 802407D4 3C05FD05 */ lui $a1, 0xfd05
/* BD4048 802407D8 34A50F8A */ ori $a1, $a1, 0xf8a
/* BD404C 802407DC 0C0B1EAF */ jal evt_get_variable
/* BD4050 802407E0 0040802D */ daddu $s0, $v0, $zero
/* BD4054 802407E4 0040182D */ daddu $v1, $v0, $zero
/* BD4058 802407E8 AC710008 */ sw $s1, 8($v1)
/* BD405C 802407EC AC70000C */ sw $s0, 0xc($v1)
/* BD4060 802407F0 8FBF0018 */ lw $ra, 0x18($sp)
/* BD4064 802407F4 8FB10014 */ lw $s1, 0x14($sp)
/* BD4068 802407F8 8FB00010 */ lw $s0, 0x10($sp)
/* BD406C 802407FC 24020002 */ addiu $v0, $zero, 2
/* BD4070 80240800 03E00008 */ jr $ra
/* BD4074 80240804 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,50 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80240190_BDA940
/* BDA940 80240190 27BDFFD8 */ addiu $sp, $sp, -0x28
/* BDA944 80240194 AFB20020 */ sw $s2, 0x20($sp)
/* BDA948 80240198 0080902D */ daddu $s2, $a0, $zero
/* BDA94C 8024019C AFBF0024 */ sw $ra, 0x24($sp)
/* BDA950 802401A0 AFB1001C */ sw $s1, 0x1c($sp)
/* BDA954 802401A4 AFB00018 */ sw $s0, 0x18($sp)
/* BDA958 802401A8 0C00EAD2 */ jal get_npc_safe
/* BDA95C 802401AC 8E44014C */ lw $a0, 0x14c($s2)
/* BDA960 802401B0 24040020 */ addiu $a0, $zero, 0x20
/* BDA964 802401B4 0C00AB39 */ jal heap_malloc
/* BDA968 802401B8 0040882D */ daddu $s1, $v0, $zero
/* BDA96C 802401BC 0040802D */ daddu $s0, $v0, $zero
/* BDA970 802401C0 AE500060 */ sw $s0, 0x60($s2)
/* BDA974 802401C4 C6200038 */ lwc1 $f0, 0x38($s1)
/* BDA978 802401C8 3C013F80 */ lui $at, 0x3f80
/* BDA97C 802401CC 44811000 */ mtc1 $at, $f2
/* BDA980 802401D0 E6000000 */ swc1 $f0, ($s0)
/* BDA984 802401D4 C620003C */ lwc1 $f0, 0x3c($s1)
/* BDA988 802401D8 E6000004 */ swc1 $f0, 4($s0)
/* BDA98C 802401DC C6200040 */ lwc1 $f0, 0x40($s1)
/* BDA990 802401E0 AE000010 */ sw $zero, 0x10($s0)
/* BDA994 802401E4 E6000008 */ swc1 $f0, 8($s0)
/* BDA998 802401E8 E7A20010 */ swc1 $f2, 0x10($sp)
/* BDA99C 802401EC AFA00014 */ sw $zero, 0x14($sp)
/* BDA9A0 802401F0 8E050000 */ lw $a1, ($s0)
/* BDA9A4 802401F4 8E060004 */ lw $a2, 4($s0)
/* BDA9A8 802401F8 8E070008 */ lw $a3, 8($s0)
/* BDA9AC 802401FC 0C01C9AC */ jal fx_spirit_card
/* BDA9B0 80240200 24040001 */ addiu $a0, $zero, 1
/* BDA9B4 80240204 AE02001C */ sw $v0, 0x1c($s0)
/* BDA9B8 80240208 8C43000C */ lw $v1, 0xc($v0)
/* BDA9BC 8024020C 24020002 */ addiu $v0, $zero, 2
/* BDA9C0 80240210 A0620034 */ sb $v0, 0x34($v1)
/* BDA9C4 80240214 8E050000 */ lw $a1, ($s0)
/* BDA9C8 80240218 8E060004 */ lw $a2, 4($s0)
/* BDA9CC 8024021C 8E070008 */ lw $a3, 8($s0)
/* BDA9D0 80240220 0C044898 */ jal create_shadow_type
/* BDA9D4 80240224 0000202D */ daddu $a0, $zero, $zero
/* BDA9D8 80240228 AE020018 */ sw $v0, 0x18($s0)
/* BDA9DC 8024022C 8FBF0024 */ lw $ra, 0x24($sp)
/* BDA9E0 80240230 8FB20020 */ lw $s2, 0x20($sp)
/* BDA9E4 80240234 8FB1001C */ lw $s1, 0x1c($sp)
/* BDA9E8 80240238 8FB00018 */ lw $s0, 0x18($sp)
/* BDA9EC 8024023C 24020002 */ addiu $v0, $zero, 2
/* BDA9F0 80240240 03E00008 */ jr $ra
/* BDA9F4 80240244 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -1,70 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80240248_BDA9F8
/* BDA9F8 80240248 27BDFFE0 */ addiu $sp, $sp, -0x20
/* BDA9FC 8024024C 0080102D */ daddu $v0, $a0, $zero
/* BDAA00 80240250 AFBF001C */ sw $ra, 0x1c($sp)
/* BDAA04 80240254 AFB20018 */ sw $s2, 0x18($sp)
/* BDAA08 80240258 AFB10014 */ sw $s1, 0x14($sp)
/* BDAA0C 8024025C AFB00010 */ sw $s0, 0x10($sp)
/* BDAA10 80240260 8C44014C */ lw $a0, 0x14c($v0)
/* BDAA14 80240264 0C00EAD2 */ jal get_npc_safe
/* BDAA18 80240268 8C500060 */ lw $s0, 0x60($v0)
/* BDAA1C 8024026C 8E040018 */ lw $a0, 0x18($s0)
/* BDAA20 80240270 0C044181 */ jal get_shadow_by_index
/* BDAA24 80240274 0040882D */ daddu $s1, $v0, $zero
/* BDAA28 80240278 C6200038 */ lwc1 $f0, 0x38($s1)
/* BDAA2C 8024027C 3C014000 */ lui $at, 0x4000
/* BDAA30 80240280 44811000 */ mtc1 $at, $f2
/* BDAA34 80240284 00000000 */ nop
/* BDAA38 80240288 46020001 */ sub.s $f0, $f0, $f2
/* BDAA3C 8024028C 3C014140 */ lui $at, 0x4140
/* BDAA40 80240290 44811000 */ mtc1 $at, $f2
/* BDAA44 80240294 E6000000 */ swc1 $f0, ($s0)
/* BDAA48 80240298 C620003C */ lwc1 $f0, 0x3c($s1)
/* BDAA4C 8024029C 46020000 */ add.s $f0, $f0, $f2
/* BDAA50 802402A0 3C0141F0 */ lui $at, 0x41f0
/* BDAA54 802402A4 44811000 */ mtc1 $at, $f2
/* BDAA58 802402A8 E6000004 */ swc1 $f0, 4($s0)
/* BDAA5C 802402AC C6200040 */ lwc1 $f0, 0x40($s1)
/* BDAA60 802402B0 8E12001C */ lw $s2, 0x1c($s0)
/* BDAA64 802402B4 46020001 */ sub.s $f0, $f0, $f2
/* BDAA68 802402B8 3C0140D3 */ lui $at, 0x40d3
/* BDAA6C 802402BC 34213333 */ ori $at, $at, 0x3333
/* BDAA70 802402C0 44816000 */ mtc1 $at, $f12
/* BDAA74 802402C4 E6000008 */ swc1 $f0, 8($s0)
/* BDAA78 802402C8 8E43000C */ lw $v1, 0xc($s2)
/* BDAA7C 802402CC C6000000 */ lwc1 $f0, ($s0)
/* BDAA80 802402D0 E4600004 */ swc1 $f0, 4($v1)
/* BDAA84 802402D4 8E43000C */ lw $v1, 0xc($s2)
/* BDAA88 802402D8 C6000004 */ lwc1 $f0, 4($s0)
/* BDAA8C 802402DC E4600008 */ swc1 $f0, 8($v1)
/* BDAA90 802402E0 8E43000C */ lw $v1, 0xc($s2)
/* BDAA94 802402E4 C6000008 */ lwc1 $f0, 8($s0)
/* BDAA98 802402E8 E460000C */ swc1 $f0, 0xc($v1)
/* BDAA9C 802402EC C6000010 */ lwc1 $f0, 0x10($s0)
/* BDAAA0 802402F0 460C0300 */ add.s $f12, $f0, $f12
/* BDAAA4 802402F4 0C00A6C9 */ jal clamp_angle
/* BDAAA8 802402F8 0040882D */ daddu $s1, $v0, $zero
/* BDAAAC 802402FC E6000010 */ swc1 $f0, 0x10($s0)
/* BDAAB0 80240300 8E42000C */ lw $v0, 0xc($s2)
/* BDAAB4 80240304 3C014220 */ lui $at, 0x4220
/* BDAAB8 80240308 44811000 */ mtc1 $at, $f2
/* BDAABC 8024030C E4400024 */ swc1 $f0, 0x24($v0)
/* BDAAC0 80240310 C6000000 */ lwc1 $f0, ($s0)
/* BDAAC4 80240314 E6200010 */ swc1 $f0, 0x10($s1)
/* BDAAC8 80240318 C6000004 */ lwc1 $f0, 4($s0)
/* BDAACC 8024031C 46020001 */ sub.s $f0, $f0, $f2
/* BDAAD0 80240320 E6200014 */ swc1 $f0, 0x14($s1)
/* BDAAD4 80240324 C6000008 */ lwc1 $f0, 8($s0)
/* BDAAD8 80240328 E6200018 */ swc1 $f0, 0x18($s1)
/* BDAADC 8024032C 8FBF001C */ lw $ra, 0x1c($sp)
/* BDAAE0 80240330 8FB20018 */ lw $s2, 0x18($sp)
/* BDAAE4 80240334 8FB10014 */ lw $s1, 0x14($sp)
/* BDAAE8 80240338 8FB00010 */ lw $s0, 0x10($sp)
/* BDAAEC 8024033C 0000102D */ daddu $v0, $zero, $zero
/* BDAAF0 80240340 03E00008 */ jr $ra
/* BDAAF4 80240344 27BD0020 */ addiu $sp, $sp, 0x20
/* BDAAF8 80240348 00000000 */ nop
/* BDAAFC 8024034C 00000000 */ nop

View File

@ -1,142 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80241028_DE34B8
/* DE34B8 80241028 27BDFFC8 */ addiu $sp, $sp, -0x38
/* DE34BC 8024102C AFB20018 */ sw $s2, 0x18($sp)
/* DE34C0 80241030 0080902D */ daddu $s2, $a0, $zero
/* DE34C4 80241034 AFBF001C */ sw $ra, 0x1c($sp)
/* DE34C8 80241038 AFB10014 */ sw $s1, 0x14($sp)
/* DE34CC 8024103C AFB00010 */ sw $s0, 0x10($sp)
/* DE34D0 80241040 F7B80030 */ sdc1 $f24, 0x30($sp)
/* DE34D4 80241044 F7B60028 */ sdc1 $f22, 0x28($sp)
/* DE34D8 80241048 F7B40020 */ sdc1 $f20, 0x20($sp)
/* DE34DC 8024104C 0C00EAD2 */ jal get_npc_safe
/* DE34E0 80241050 0000202D */ daddu $a0, $zero, $zero
/* DE34E4 80241054 3C118011 */ lui $s1, %hi(gPlayerStatus)
/* DE34E8 80241058 2631EFC8 */ addiu $s1, $s1, %lo(gPlayerStatus)
/* DE34EC 8024105C 0040802D */ daddu $s0, $v0, $zero
/* DE34F0 80241060 8E260028 */ lw $a2, 0x28($s1)
/* DE34F4 80241064 8E270030 */ lw $a3, 0x30($s1)
/* DE34F8 80241068 3C0142DC */ lui $at, 0x42dc
/* DE34FC 8024106C 4481A000 */ mtc1 $at, $f20
/* DE3500 80241070 3C01C234 */ lui $at, 0xc234
/* DE3504 80241074 4481B000 */ mtc1 $at, $f22
/* DE3508 80241078 4600A306 */ mov.s $f12, $f20
/* DE350C 8024107C 0C00A7B5 */ jal dist2D
/* DE3510 80241080 4600B386 */ mov.s $f14, $f22
/* DE3514 80241084 4600A306 */ mov.s $f12, $f20
/* DE3518 80241088 8E260028 */ lw $a2, 0x28($s1)
/* DE351C 8024108C 8E270030 */ lw $a3, 0x30($s1)
/* DE3520 80241090 0C00A720 */ jal atan2
/* DE3524 80241094 4600B386 */ mov.s $f14, $f22
/* DE3528 80241098 0C00A6C9 */ jal clamp_angle
/* DE352C 8024109C 46000306 */ mov.s $f12, $f0
/* DE3530 802410A0 46000586 */ mov.s $f22, $f0
/* DE3534 802410A4 0C00A8BB */ jal sin_deg
/* DE3538 802410A8 4600B306 */ mov.s $f12, $f22
/* DE353C 802410AC 3C0141F0 */ lui $at, 0x41f0
/* DE3540 802410B0 44811000 */ mtc1 $at, $f2
/* DE3544 802410B4 00000000 */ nop
/* DE3548 802410B8 46020002 */ mul.s $f0, $f0, $f2
/* DE354C 802410BC 00000000 */ nop
/* DE3550 802410C0 8E4200B0 */ lw $v0, 0xb0($s2)
/* DE3554 802410C4 10400009 */ beqz $v0, .L802410EC
/* DE3558 802410C8 46140600 */ add.s $f24, $f0, $f20
/* DE355C 802410CC C622002C */ lwc1 $f2, 0x2c($s1)
/* DE3560 802410D0 3C013F33 */ lui $at, 0x3f33
/* DE3564 802410D4 34213333 */ ori $at, $at, 0x3333
/* DE3568 802410D8 44810000 */ mtc1 $at, $f0
/* DE356C 802410DC 00000000 */ nop
/* DE3570 802410E0 46001502 */ mul.s $f20, $f2, $f0
/* DE3574 802410E4 0809043C */ j .L802410F0
/* DE3578 802410E8 00000000 */ nop
.L802410EC:
/* DE357C 802410EC C614003C */ lwc1 $f20, 0x3c($s0)
.L802410F0:
/* DE3580 802410F0 0C00A8D4 */ jal cos_deg
/* DE3584 802410F4 4600B306 */ mov.s $f12, $f22
/* DE3588 802410F8 3C0141F0 */ lui $at, 0x41f0
/* DE358C 802410FC 44811000 */ mtc1 $at, $f2
/* DE3590 80241100 00000000 */ nop
/* DE3594 80241104 46020002 */ mul.s $f0, $f0, $f2
/* DE3598 80241108 00000000 */ nop
/* DE359C 8024110C 3C01C234 */ lui $at, 0xc234
/* DE35A0 80241110 44811000 */ mtc1 $at, $f2
/* DE35A4 80241114 8E4200B0 */ lw $v0, 0xb0($s2)
/* DE35A8 80241118 10400008 */ beqz $v0, .L8024113C
/* DE35AC 8024111C 46001101 */ sub.s $f4, $f2, $f0
/* DE35B0 80241120 C602003C */ lwc1 $f2, 0x3c($s0)
/* DE35B4 80241124 44800000 */ mtc1 $zero, $f0
/* DE35B8 80241128 00000000 */ nop
/* DE35BC 8024112C 46001032 */ c.eq.s $f2, $f0
/* DE35C0 80241130 00000000 */ nop
/* DE35C4 80241134 45030001 */ bc1tl .L8024113C
/* DE35C8 80241138 AE4000B0 */ sw $zero, 0xb0($s2)
.L8024113C:
/* DE35CC 8024113C C6000038 */ lwc1 $f0, 0x38($s0)
/* DE35D0 80241140 46180032 */ c.eq.s $f0, $f24
/* DE35D4 80241144 00000000 */ nop
/* DE35D8 80241148 4500000C */ bc1f .L8024117C
/* DE35DC 8024114C 3C04003B */ lui $a0, 0x3b
/* DE35E0 80241150 C600003C */ lwc1 $f0, 0x3c($s0)
/* DE35E4 80241154 46140032 */ c.eq.s $f0, $f20
/* DE35E8 80241158 00000000 */ nop
/* DE35EC 8024115C 45000007 */ bc1f .L8024117C
/* DE35F0 80241160 00000000 */ nop
/* DE35F4 80241164 C6000040 */ lwc1 $f0, 0x40($s0)
/* DE35F8 80241168 46040032 */ c.eq.s $f0, $f4
/* DE35FC 8024116C 00000000 */ nop
/* DE3600 80241170 4501001A */ bc1t .L802411DC
/* DE3604 80241174 3C03003B */ lui $v1, 0x3b
/* DE3608 80241178 3C04003B */ lui $a0, 0x3b
.L8024117C:
/* DE360C 8024117C 8E020028 */ lw $v0, 0x28($s0)
/* DE3610 80241180 34840502 */ ori $a0, $a0, 0x502
/* DE3614 80241184 5044000A */ beql $v0, $a0, .L802411B0
/* DE3618 80241188 E6180038 */ swc1 $f24, 0x38($s0)
/* DE361C 8024118C 8E4200AC */ lw $v0, 0xac($s2)
/* DE3620 80241190 0040182D */ daddu $v1, $v0, $zero
/* DE3624 80241194 24420001 */ addiu $v0, $v0, 1
/* DE3628 80241198 28630006 */ slti $v1, $v1, 6
/* DE362C 8024119C 14600003 */ bnez $v1, .L802411AC
/* DE3630 802411A0 AE4200AC */ sw $v0, 0xac($s2)
/* DE3634 802411A4 AE040028 */ sw $a0, 0x28($s0)
/* DE3638 802411A8 AE4000AC */ sw $zero, 0xac($s2)
.L802411AC:
/* DE363C 802411AC E6180038 */ swc1 $f24, 0x38($s0)
.L802411B0:
/* DE3640 802411B0 4600C006 */ mov.s $f0, $f24
/* DE3644 802411B4 C602003C */ lwc1 $f2, 0x3c($s0)
/* DE3648 802411B8 8E020000 */ lw $v0, ($s0)
/* DE364C 802411BC 3C030001 */ lui $v1, 1
/* DE3650 802411C0 E6040040 */ swc1 $f4, 0x40($s0)
/* DE3654 802411C4 E600006C */ swc1 $f0, 0x6c($s0)
/* DE3658 802411C8 E6040074 */ swc1 $f4, 0x74($s0)
/* DE365C 802411CC 00431025 */ or $v0, $v0, $v1
/* DE3660 802411D0 E6020070 */ swc1 $f2, 0x70($s0)
/* DE3664 802411D4 0809047B */ j .L802411EC
/* DE3668 802411D8 AE020000 */ sw $v0, ($s0)
.L802411DC:
/* DE366C 802411DC 8E020028 */ lw $v0, 0x28($s0)
/* DE3670 802411E0 34630501 */ ori $v1, $v1, 0x501
/* DE3674 802411E4 54430001 */ bnel $v0, $v1, .L802411EC
/* DE3678 802411E8 AE030028 */ sw $v1, 0x28($s0)
.L802411EC:
/* DE367C 802411EC C60C0038 */ lwc1 $f12, 0x38($s0)
/* DE3680 802411F0 C60E0040 */ lwc1 $f14, 0x40($s0)
/* DE3684 802411F4 8E260028 */ lw $a2, 0x28($s1)
/* DE3688 802411F8 0C00A720 */ jal atan2
/* DE368C 802411FC 8E270030 */ lw $a3, 0x30($s1)
/* DE3690 80241200 E600000C */ swc1 $f0, 0xc($s0)
/* DE3694 80241204 8FBF001C */ lw $ra, 0x1c($sp)
/* DE3698 80241208 8FB20018 */ lw $s2, 0x18($sp)
/* DE369C 8024120C 8FB10014 */ lw $s1, 0x14($sp)
/* DE36A0 80241210 8FB00010 */ lw $s0, 0x10($sp)
/* DE36A4 80241214 D7B80030 */ ldc1 $f24, 0x30($sp)
/* DE36A8 80241218 D7B60028 */ ldc1 $f22, 0x28($sp)
/* DE36AC 8024121C D7B40020 */ ldc1 $f20, 0x20($sp)
/* DE36B0 80241220 24020002 */ addiu $v0, $zero, 2
/* DE36B4 80241224 03E00008 */ jr $ra
/* DE36B8 80241228 27BD0038 */ addiu $sp, $sp, 0x38
/* DE36BC 8024122C 00000000 */ nop

View File

@ -7,7 +7,7 @@ dlabel D_80251430_D4BA00
.double 0.1
dlabel D_80251438_D4BA08
.double 0.2, 6.092491109832673e+247, 0.0
.double 0.2
.section .text

View File

@ -5082,7 +5082,23 @@ segments:
vram: 0xE00AE000
subsegments:
- [0x3B2350, c, snaking_static]
- [0x3B2D90, bin] # snaking_static gfx
- name: effect_gfx_snaking_static
dir: effects/gfx
type: code
start: 0x3B2D90
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x3B2D90, c, snaking_static]
- start: 0x3B2D90
type: .data
name: snaking_static
subsegments:
- [0x3B2D90, i4, D_09000000_3B2D90, 256, 32]
- [0x3B3D90, gfx, D_09001000_3B3D90]
- [0x3B3E48, vtx, D_090010B8_3B3E48]
- [0x3B3E88, gfx, D_090010F8_3B3E88]
- [0x3B3EA8]
- name: effect_thunderbolt_ring
dir: effects
type: code
@ -6124,90 +6140,70 @@ segments:
vram: 0xE0112000
subsegments:
- [0x3F9E50, c, spirit_card]
- [0x3FA480, data]
- type: group # effect spirit_card, something_rotating gfx
- [0x3FA480]
- name: effect_gfx_spirit_card # effect spirit_card, something_rotating gfx
dir: effects/gfx
type: code
start: 0x3FA4B0
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x3FA4B0, c, spirit_card]
- start: 0x3FA4B0
type: ci4
name: star_cards/card_front
flip_y: true
width: 32
height: 32
- [0x3FA6B0, palette, star_cards/card_front]
- [0x3FA6D0, bin] # PAD
- start: 0x3FA8B0
type: ci4
name: star_cards/card_back
flip_y: true
width: 32
height: 64
- [0x3FACB0, palette, star_cards/card_back]
- [0x3FACD0, bin] # PAD
- start: 0x3FAEB0
type: ci4
name: star_cards/wave
flip_y: true
width: 32
height: 32
- [0x3FB0B0, palette, star_cards/wave]
- [0x3FB0D0, bin] # PAD
- start: 0x3FB2B0
type: ci4
name: star_cards/squares
flip_y: true
width: 16
height: 16
- [0x3FB330, palette, star_cards/squares]
- [0x3FB350, bin] # PAD
- start: 0x3FB530
type: ci4
name: star_cards/eldstar
flip_y: true
width: 48
height: 48
- [0x3FB9B0, palette, star_cards/eldstar]
- [0x3FB9D0, bin] # PAD
- start: 0x3FBBB0
type: ci4
name: star_cards/mamar
flip_y: true
width: 48
height: 48
- [0x3FC030, palette, star_cards/mamar]
- [0x3FC050, bin] # PAD
- start: 0x3FC230
type: ci4
name: star_cards/skolar
flip_y: true
width: 48
height: 48
- [0x3FC6B0, palette, star_cards/skolar]
- [0x3FC6D0, bin] # PAD
- start: 0x3FC8B0
type: ci4
name: star_cards/muskular
flip_y: true
width: 48
height: 48
- [0x3FCD30, palette, star_cards/muskular]
- [0x3FCD50, bin] # PAD
- start: 0x3FCF30
type: ci4
name: star_cards/misstar
flip_y: true
width: 48
height: 48
- [0x3FD3B0, palette, star_cards/misstar]
- [0x3FD3D0, bin] # PAD
- start: 0x3FDC30
type: ci4
name: star_cards/klevar
flip_y: true
width: 48
height: 48
- [0x3FE0B0, palette, star_cards/klevar]
- [0x3FE0D0, bin]
type: .data
name: spirit_card
subsegments:
- { start: 0x3FA4B0, type: ci4, name: star_cards/card_front, flip_y: true, width: 32, height: 32 }
- [0x3FA6B0, palette, star_cards/card_front]
- [0x3FA6D0] # padding
- { start: 0x3FA8B0, type: ci4, name: star_cards/card_back, flip_y: true, width: 32, height: 64 }
- [0x3FACB0, palette, star_cards/card_back]
- [0x3FACD0] # padding
- { start: 0x3FAEB0, type: ci4, name: star_cards/wave, flip_y: true, width: 32, height: 32 }
- [0x3FB0B0, palette, star_cards/wave]
- [0x3FB0D0] # padding
- { start: 0x3FB2B0, type: ci4, name: star_cards/squares, flip_y: true, width: 16, height: 16 }
- [0x3FB330, palette, star_cards/squares]
- [0x3FB350] # padding
- { start: 0x3FB530, type: ci4, name: star_cards/eldstar, flip_y: true, width: 48, height: 48 }
- [0x3FB9B0, palette, star_cards/eldstar]
- [0x3FB9D0] # padding
- { start: 0x3FBBB0, type: ci4, name: star_cards/mamar, flip_y: true, width: 48, height: 48 }
- [0x3FC030, palette, star_cards/mamar]
- [0x3FC050] # padding
- { start: 0x3FC230, type: ci4, name: star_cards/skolar, flip_y: true, width: 48, height: 48 }
- [0x3FC6B0, palette, star_cards/skolar]
- [0x3FC6D0] # padding
- { start: 0x3FC8B0, type: ci4, name: star_cards/muskular, flip_y: true, width: 48, height: 48 }
- [0x3FCD30, palette, star_cards/muskular]
- [0x3FCD50] # padding
- { start: 0x3FCF30, type: ci4, name: star_cards/misstar, flip_y: true, width: 48, height: 48 }
- [0x3FD3B0, palette, star_cards/misstar]
- [0x3FD3D0] # padding
- { start: 0x3FD5B0, type: ci4, name: star_cards/klevar, flip_y: true, width: 48, height: 48 }
- [0x3FDA30, palette, star_cards/klevar]
- [0x3FDA50] # padding
- { start: 0x3FDC30, type: ci4, name: star_cards/kalmar, flip_y: true, width: 48, height: 48 }
- [0x3FE0B0, palette, star_cards/kalmar]
- [0x3FE0D0] # padding
- [0x3FE2B0, vtx, D_09003E00_3FE2B0]
- [0x3FE430] # light
- [0x3FE448, gfx, D_09003F98_3FE448]
- [0x3FE4C0, gfx, D_09004010_3FE4C0]
- [0x3FE538, gfx, D_09004088_3FE538]
- [0x3FE5B0, gfx, D_09004100_3FE5B0]
- [0x3FE628, gfx, D_09004178_3FE628]
- [0x3FE6A0, gfx, D_090041F0_3FE6A0]
- [0x3FE718, gfx, D_09004268_3FE718]
- [0x3FE790, gfx, D_090042E0_3FE790] # has bug (see gfx/spirit_card.c)
- [0x3FE810, gfx, D_09004360_3FE810]
- [0x3FE888, vtx, D_090043D8_3FE888]
- [0x3FE8C8, gfx, D_09004418_3FE8C8]
- [0x3FE8E8, gfx, D_09004438_3FE8E8]
- [0x3FE908, gfx, D_09004458_3FE908]
- [0x3FE9B8, gfx, D_09004508_3FE9B8]
- [0x3FEAB0, gfx, D_09004600_3FEAB0]
- [0x3FEAD8]
- name: effect_lil_oink
dir: effects
type: code

View File

@ -9019,6 +9019,7 @@ spirit_card_update = 0xE01121C0; // type:func rom:0x3FA010
spirit_card_render = 0xE01122E8; // type:func rom:0x3FA138
func_E0112330 = 0xE0112330; // type:func rom:0x3FA180
spirit_card_appendGfx = 0xE01124CC; // type:func rom:0x3FA31C
D_09003F80_3FE430 = 0x09003F80; // type:data rom:0x3FE430 segment:effect_gfx_spirit_card
lil_oink_main = 0xE0114000; // type:func rom:0x3FEAE0
lil_oink_init = 0xE01140D4; // type:func rom:0x3FEBB4
lil_oink_update = 0xE01140DC; // type:func rom:0x3FEBBC

View File

@ -35,19 +35,6 @@ D_09007090 = 0x09007090;
D_090070E8 = 0x090070E8;
D_09007230 = 0x09007230;
// effect_something_rotating
D_09003F98 = 0x09003F98;
D_09004010 = 0x09004010;
D_09004088 = 0x09004088;
D_09004100 = 0x09004100;
D_09004178 = 0x09004178;
D_090041F0 = 0x090041F0;
D_09004268 = 0x09004268;
D_09004360 = 0x09004360;
D_09004458 = 0x09004458;
D_09004508 = 0x09004508;
D_09004600 = 0x09004600;
// effect_stars_shimmer
D_09000F20 = 0x09000F20;
D_090011C8 = 0x090011C8;
@ -67,9 +54,6 @@ D_09001A90 = 0x09001A90;
D_09001B08 = 0x09001B08;
D_09001B80 = 0x09001B80;
// effect_spirit_card
D_090042E0 = 0x090042E0;
// hacks for various things
fx_sun_undeclared = fx_sun;
EntityModel_Spring_ReboundAnim = 0x1E4;