item entity functions and a few others (#725)

* matched 4 functions
* matched 2 item entity funcs and migrated data
* removed default case and fixed lights def
This commit is contained in:
Unnunu 2022-06-09 02:36:32 +03:00 committed by GitHub
parent 76187e5c3b
commit 59119c0949
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 677 additions and 1833 deletions

View File

@ -1229,8 +1229,8 @@ typedef struct ItemEntity {
/* 0x40 */ s32* sparkleReadPos;
/* 0x44 */ s32 sparkleUnk44;
/* 0x48 */ s32* sparkleSavedPos;
/* 0x4C */ s32* sparkleRaster;
/* 0x50 */ s32* sparklePalette;
/* 0x4C */ s8* sparkleRaster;
/* 0x50 */ s8* sparklePalette;
/* 0x54 */ s32 sparkleWidth;
/* 0x58 */ s32 sparkleHeight;
} ItemEntity; // size = 0x5C

View File

@ -1809,15 +1809,30 @@ enum ItemEntityFlags {
ITEM_ENTITY_FLAGS_CAM3 = 0x00000008,
ITEM_ENTITY_FLAGS_10 = 0x00000010,
ITEM_ENTITY_FLAGS_40 = 0x00000040,
ITEM_ENTITY_FLAGS_80 = 0x00000080,
ITEM_ENTITY_FLAGS_100 = 0x00000100,
ITEM_ENTITY_FLAGS_NEVER_VANISH = 0x00000200,
ITEM_ENTITY_FLAGS_400 = 0x00000400,
ITEM_ENTITY_FLAGS_800 = 0x00000800,
ITEM_ENTITY_FLAGS_1000 = 0x00001000,
ITEM_ENTITY_FLAGS_FIXED = 0x00002000,
ITEM_ENTITY_FLAGS_TINY = 0x00004000,
ITEM_ENTITY_FLAGS_8000 = 0x00008000,
ITEM_ENTITY_FLAGS_10000 = 0x00010000,
ITEM_ENTITY_FLAGS_20000 = 0x00020000,
ITEM_ENTITY_FLAGS_40000 = 0x00040000,
ITEM_ENTITY_FLAGS_TRANSPARENT = 0x00080000,
ITEM_ENTITY_FLAGS_100000 = 0x00100000,
ITEM_ENTITY_FLAGS_200000 = 0x00200000,
ITEM_ENTITY_FLAGS_400000 = 0x00400000,
ITEM_ENTITY_FLAGS_800000 = 0x00800000,
ITEM_ENTITY_FLAGS_1000000 = 0x01000000,
ITEM_ENTITY_FLAGS_2000000 = 0x02000000,
ITEM_ENTITY_FLAGS_4000000 = 0x04000000,
ITEM_ENTITY_FLAGS_8000000 = 0x08000000,
ITEM_ENTITY_FLAGS_10000000 = 0x10000000,
ITEM_ENTITY_FLAGS_40000000 = 0x40000000,
ITEM_ENTITY_FLAGS_80000000 = 0x80000000,
};
enum Buttons {

View File

@ -745,6 +745,7 @@ s32 create_generic_entity_world(WorldArgs, WorldArgs);
EntityModel* get_entity_model(s32 idx);
f32 phys_get_spin_history(s32 lag, s32* x, s32* y, s32* z);
void fold_update(u32, s32, s32, s32, s32, s32, s32);
s32 fold_appendGfx_component(s32, FoldImageRecPart*, u32, Matrix4f);
s32 func_8013A704(s32);
void free_generic_entity(s32);

View File

@ -400,8 +400,6 @@ Camera* initialize_next_camera(CameraInitData* initData) {
return camera;
}
// Ordering shtuff
#ifdef NON_EQUIVALENT
void set_cam_viewport(s16 id, s16 x, s16 y, s16 width, s16 height) {
Camera* camera = &gCameras[id];
@ -415,8 +413,9 @@ void set_cam_viewport(s16 id, s16 x, s16 y, s16 width, s16 height) {
camera->vp.vp.vscale[2] = 0x1FF;
camera->vp.vp.vscale[3] = 0;
camera->vp.vp.vtrans[0] = (((camera->viewportStartX + (camera->viewportW / 2)) << 16) >> 14);
camera->vp.vp.vtrans[1] = (((camera->viewportStartY + (camera->viewportH / 2)) << 16) >> 14);
camera->vp.vp.vtrans[0] = (((u16)camera->viewportStartX + (camera->viewportW / 2)) << 16) >> 14;
camera->vp.vp.vtrans[1] = ((u16)camera->viewportStartY + (camera->viewportH / 2));
camera->vp.vp.vtrans[1] = (camera->vp.vp.vtrans[1] << 16) >> 14; // needed to match
camera->vp.vp.vtrans[2] = 0x1FF;
camera->vp.vp.vtrans[3] = 0;
@ -430,9 +429,6 @@ void set_cam_viewport(s16 id, s16 x, s16 y, s16 width, s16 height) {
camera->vpAlt.vp.vtrans[2] = 0x200;
camera->vpAlt.vp.vtrans[3] = 0;
}
#else
INCLUDE_ASM(void, "8800", set_cam_viewport, s16 id, s16 x, s16 y, s16 width, s16 height);
#endif
void get_cam_viewport(s32 camID, u16* x, u16* y, u16* width, u16* height) {
*width = gCameras[camID].viewportW;

View File

@ -11,13 +11,16 @@ extern ItemEntity* WorldItemEntities[MAX_ITEM_ENTITIES];
extern ItemEntity* BattleItemEntities[MAX_ITEM_ENTITIES];
extern ItemEntity** gCurrentItemEntities;
extern s16 isPickingUpItem;
extern s16 D_801565A8;
extern s32 D_80155D80;
extern s16 D_80155D8C;
extern s16 D_80155D8E;
extern s16 D_80155D90;
extern s16 D_801565A6;
extern s16 D_801565A8;
extern s32 D_801568E0;
extern s32 D_801568EC;
extern s32* SparkleScript_Coin;
extern HudScript SparkleScript_Coin;
void item_entity_load(ItemEntity*);
void item_entity_update(ItemEntity*);
@ -28,12 +31,99 @@ s32 test_item_player_collision(ItemEntity*);
void update_item_entity_collectable(ItemEntity*);
void func_8013559C(ItemEntity*);
void update_item_entity_static(ItemEntity*);
void func_801356C4(void);
void func_801356C4(ItemEntity*);
void func_801356CC(ItemEntity*);
void func_801356D4(void);
void func_801356D4(ItemEntity*);
void update_item_entity_temp(ItemEntity*);
s32 draw_image_with_clipping(s32* raster, s32 width, s32 height, s32 fmt, s32 bitDepth, s16 posX, s16 posY, u16 clipULx,
u16 clipULy, u16 clipLRx, u16 clipRLy);
void func_8013673C(ItemEntity* itemEntity, s32 posX, s32 posY);
void func_801369D0(ItemEntity* itemEntity, s32 posX, s32 posY);
void func_80136A08(ItemEntity* itemEntity, s32 posX, s32 posY);
INCLUDE_ASM(s32, "C50A0", draw_ci_image_with_clipping);
Vtx D_8014C5A0[4] = {
{{{ -12, 0, 0 }, 0, { 0x2300, 0x2300 }, { 0, 0, 0, 255 }}},
{{{ 11, 0, 0 }, 0, { 0x2000, 0x2300 }, { 0, 0, 0, 255 }}},
{{{ 11, 23, 0 }, 0, { 0x2000, 0x2000 }, { 0, 0, 0, 255 }}},
{{{ -12, 23, 0 }, 0, { 0x2300, 0x2000 }, { 0, 0, 0, 255 }}},
};
Vtx D_8014C5E0[4] = {
{{{ -16, 0, 0 }, 0, { 0x2400, 0x2400 }, { 0, 0, 0, 255 }}},
{{{ 15, 0, 0 }, 0, { 0x2000, 0x2400 }, { 0, 0, 0, 255 }}},
{{{ 15, 31, 0 }, 0, { 0x2000, 0x2000 }, { 0, 0, 0, 255 }}},
{{{ -16, 31, 0 }, 0, { 0x2400, 0x2000 }, { 0, 0, 0, 255 }}},
};
Gfx D_8014C620[] = {
gsDPPipeSync(),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetTexturePersp(G_TP_PERSP),
gsDPSetTextureDetail(G_TD_CLAMP),
gsDPSetTextureLOD(G_TL_TILE),
gsDPSetTextureLUT(G_TT_NONE),
gsDPSetTextureFilter(G_TF_BILERP),
gsDPSetTextureConvert(G_TC_FILT),
gsDPSetTextureLUT(G_TT_RGBA16),
gsSPEndDisplayList(),
};
Gfx D_8014C678[] = {
gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING | G_SHADING_SMOOTH),
gsSPVertex(D_8014C5A0, 4, 0),
gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
gsDPPipeSync(),
gsSPEndDisplayList(),
};
Gfx D_8014C6A0[] = {
gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING | G_SHADING_SMOOTH),
gsSPVertex(D_8014C5E0, 4, 0),
gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
gsDPPipeSync(),
gsSPEndDisplayList(),
};
Lights1 D_8014C6C8 = gdSPDefLights1(255, 255, 255, 0, 0, 0, 0, 0, 0);
s16 D_8014C6E0[] = { 32, 40 };
s16 D_8014C6E4[] = { 8, 4 };
s32 draw_ci_image_with_clipping(s32* raster, s32 width, s32 height, s32 fmt, s32 bitDepth, s32* palette, s16 posX,
s16 posY, u16 clipULx, u16 clipULy, u16 clipLRx, u16 clipRLy, u8 opacity) {
s32 ret;
gDPPipeSync(gMasterGfxPos++);
gDPSetCycleType(gMasterGfxPos++, G_CYC_1CYCLE);
gDPSetTextureFilter(gMasterGfxPos++, G_TF_POINT);
gDPSetTexturePersp(gMasterGfxPos++, G_TP_NONE);
if (opacity == 255) {
gDPSetRenderMode(gMasterGfxPos++, G_RM_TEX_EDGE, G_RM_TEX_EDGE2);
gDPSetCombineMode(gMasterGfxPos++, G_CC_DECALRGBA, G_CC_DECALRGBA);
} else if (opacity == 0) {
return 1;
} else {
gDPSetRenderMode(gMasterGfxPos++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
gDPSetCombineLERP(gMasterGfxPos++, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, 0);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 0, 0, 0, opacity);
}
if (fmt == G_IM_FMT_CI) {
gDPSetTextureLUT(gMasterGfxPos++, G_TT_RGBA16);
if (bitDepth == G_IM_SIZ_4b) {
gDPLoadTLUT_pal16(gMasterGfxPos++, 0, palette);
} else {
gDPLoadTLUT_pal256(gMasterGfxPos++, palette);
}
} else {
gDPSetTextureLUT(gMasterGfxPos++, G_TT_NONE);
}
ret = draw_image_with_clipping(raster, width, height, fmt, bitDepth, posX, posY, clipULx, clipULy, clipLRx, clipRLy);
gDPPipeSync(gMasterGfxPos++);
return ret;
}
INCLUDE_ASM(s32, "C50A0", draw_image_with_clipping);
@ -101,7 +191,55 @@ void sparkle_script_update(ItemEntity* itemEntity) {
}
}
INCLUDE_ASM(s32, "C50A0", draw_coin_sparkles);
void draw_coin_sparkles(ItemEntity* itemEntity) {
f32 x, y, z;
f32 angle;
Matrix4f sp18;
Matrix4f sp58;
Matrix4f sp98;
Matrix4f spD8;
FoldImageRecPart foldImage;
x = D_80155D8C;
y = D_80155D8E;
z = D_80155D90;
angle = clamp_angle(180.0f - gCameras[gCurrentCamID].currentYaw);
guTranslateF(sp18, x, y, z);
guTranslateF(sp58, itemEntity->position.x, itemEntity->position.y + 12.0f, itemEntity->position.z);
guRotateF(sp98, angle, 0.0f, 1.0f, 0.0f);
guMtxCatF(sp18, sp98, sp98);
guMtxCatF(sp98, sp58, spD8);
guMtxF2L(spD8, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPSetCycleType(gMasterGfxPos++, G_CYC_1CYCLE);
gSPClearGeometryMode(gMasterGfxPos++, G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH);
gSPSetGeometryMode(gMasterGfxPos++, G_ZBUFFER | G_SHADE | G_LIGHTING | G_SHADING_SMOOTH);
gSPSetLights1(gMasterGfxPos++, D_8014C6C8);
gSPTexture(gMasterGfxPos++, -1, -1, 0, G_TX_RENDERTILE, G_ON);
gDPSetTextureLOD(gMasterGfxPos++, G_TL_TILE);
gDPSetTexturePersp(gMasterGfxPos++, G_TP_PERSP);
gDPSetTextureFilter(gMasterGfxPos++, G_TF_BILERP);
gDPSetColorDither(gMasterGfxPos++, G_CD_DISABLE);
gDPSetTextureDetail(gMasterGfxPos++, G_TD_CLAMP);
gDPSetTextureConvert(gMasterGfxPos++, G_TC_FILT);
gDPSetCombineKey(gMasterGfxPos++, G_CK_NONE);
gDPSetAlphaCompare(gMasterGfxPos++, G_AC_NONE);
foldImage.raster = itemEntity->sparkleRaster;
foldImage.palette = itemEntity->sparklePalette;
foldImage.width = itemEntity->sparkleWidth;
foldImage.height = itemEntity->sparkleHeight;
foldImage.xOffset = -itemEntity->sparkleWidth / 2;
foldImage.yOffset = itemEntity->sparkleHeight / 2;
foldImage.unk_10 = 255;
fold_appendGfx_component(0, &foldImage, 0, spD8);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
gDPPipeSync(gMasterGfxPos++);
}
ItemEntity* get_item_entity(s32 itemEntityIndex) {
return gCurrentItemEntities[itemEntityIndex];
@ -110,7 +248,7 @@ ItemEntity* get_item_entity(s32 itemEntityIndex) {
void item_entity_disable_shadow(ItemEntity* itemEntity) {
Shadow* shadow;
itemEntity->flags |= ENTITY_FLAGS_CONTINUOUS_COLLISION;
itemEntity->flags |= ITEM_ENTITY_FLAGS_40;
if (itemEntity->shadowIndex >= 0) {
shadow = get_shadow_by_index(itemEntity->shadowIndex);
shadow->flags |= SHADOW_FLAGS_HIDDEN;
@ -120,7 +258,7 @@ void item_entity_disable_shadow(ItemEntity* itemEntity) {
void item_entity_enable_shadow(ItemEntity* itemEntity) {
Shadow* shadow;
itemEntity->flags &= ~ENTITY_FLAGS_CONTINUOUS_COLLISION;
itemEntity->flags &= ~ITEM_ENTITY_FLAGS_40;
if (itemEntity->shadowIndex >= 0) {
shadow = get_shadow_by_index(itemEntity->shadowIndex);
shadow->flags &= ~SHADOW_FLAGS_HIDDEN;
@ -171,8 +309,263 @@ void init_item_entity_list(void) {
INCLUDE_ASM(s32, "C50A0", item_entity_load);
INCLUDE_ASM(s32, "C50A0", make_item_entity, s32 itemID, f32 x, f32 y, f32 z, s32 itemSpawnMode, s32 pickupDelay,
s32 facingAngleSign, s32 pickupVar);
s32 make_item_entity(s32 itemID, f32 x, f32 y, f32 z, s32 itemSpawnMode, s32 pickupDelay, s32 facingAngleSign, s32 pickupVar) {
s32 i;
s32 id;
ItemEntity* itemEntity;
f32 hitDepth;
Shadow* shadow;
if (pickupVar <= -120000000) {
pickupVar = pickupVar + 130000000;
}
if (pickupVar > 0) {
switch (itemSpawnMode) {
case ITEM_SPAWN_MODE_NOTHING:
case ITEM_SPAWN_MODE_TOSS_NEVER_VANISH:
case ITEM_SPAWN_MODE_TOSS:
case ITEM_SPAWN_MODE_TOSS_SPAWN_ONCE:
case ITEM_SPAWN_MODE_TOSS_SPAWN_ONCE_NEVER_VANISH:
case ITEM_SPAWN_MODE_ITEM_BLOCK_ITEM:
case ITEM_SPAWN_MODE_ITEM_BLOCK_BADGE:
case ITEM_SPAWN_MODE_FALL_NEVER_VANISH:
case ITEM_SPAWN_MODE_FALL:
case ITEM_SPAWN_MODE_FALL_SPAWN_ONCE:
case ITEM_SPAWN_MODE_FIXED_NEVER_VANISH:
case ITEM_SPAWN_MODE_FIXED:
case ITEM_SPAWN_MODE_ITEM_BLOCK_COIN:
case ITEM_SPAWN_MODE_TOSS_HIGHER_NEVER_VANISH:
if (get_global_flag(pickupVar) != 0) {
return -1;
}
break;
}
}
for (i = 0; i < MAX_ITEM_ENTITIES; i++) {
if (gCurrentItemEntities[i] == NULL) {
break;
}
}
ASSERT(i < MAX_ITEM_ENTITIES);
id = i;
gCurrentItemEntities[id] = itemEntity = heap_malloc(sizeof(*itemEntity));
ItemEntitiesCreated++;
ASSERT(itemEntity != NULL);
itemEntity->renderGroup = ((u32)itemID >> 0x10) & 0xF;
if (itemEntity->renderGroup == 5) {
itemEntity->renderGroup = -1;
}
itemEntity->spawnType = itemSpawnMode;
itemEntity->state = 0;
itemEntity->position.x = x;
itemEntity->position.y = y;
itemEntity->position.z = z;
itemID &= 0xFFFF;
itemEntity->flags = ITEM_ENTITY_FLAGS_80 | ITEM_ENTITY_FLAGS_10 | ITEM_ENTITY_FLAGS_CAM2 | ITEM_ENTITY_FLAGS_CAM1 | ITEM_ENTITY_FLAGS_CAM0;
itemEntity->pickupMsgFlags = 0;
itemEntity->boundVar = pickupVar;
itemEntity->itemID = itemID;
itemEntity->physicsData = NULL;
itemEntity->pickupDelay = pickupDelay;
itemEntity->scale = 1.0f;
itemEntity->wsFaceAngle = facingAngleSign;
itemEntity->shadowIndex = -1;
itemEntity->nextUpdate = 1;
itemEntity->unk_34.x = -9999;
itemEntity->unk_34.y = -9999;
itemEntity->unk_34.z = -9999;
D_801565A6 = 30;
itemEntity->flags |= ITEM_ENTITY_FLAGS_TINY;
if (gItemTable[itemID].typeFlags & ITEM_TYPE_FLAG_ENTITY_FULLSIZE) {
itemEntity->flags |= ITEM_ENTITY_FLAGS_40000;
itemEntity->flags &= ~ITEM_ENTITY_FLAGS_TINY;
}
if (ItemEntityAlternatingSpawn != 0) {
itemEntity->flags |= ITEM_ENTITY_FLAGS_20000;
}
ItemEntityAlternatingSpawn = 1 - ItemEntityAlternatingSpawn;
switch (itemEntity->spawnType) {
case ITEM_SPAWN_MODE_NOTHING:
itemEntity->flags |= ITEM_ENTITY_FLAGS_80000000;
break;
case ITEM_SPAWN_MODE_DECORATION:
case ITEM_SPAWN_MODE_TOSS_SPAWN_ALWAYS:
itemEntity->flags |= ITEM_ENTITY_FLAGS_800000;
break;
case ITEM_SPAWN_MODE_INVISIBLE:
itemEntity->flags |= ITEM_ENTITY_FLAGS_100000;
break;
case ITEM_SPAWN_MODE_BATTLE_REWARD:
itemEntity->flags |= ITEM_ENTITY_FLAGS_800000;
itemEntity->flags |= ITEM_ENTITY_FLAGS_10000;
itemEntity->spawnType = ITEM_SPAWN_MODE_TOSS_SPAWN_ALWAYS;
break;
case ITEM_SPAWN_MODE_TOSS_NEVER_VANISH:
itemEntity->flags |= ITEM_ENTITY_FLAGS_800000 | ITEM_ENTITY_FLAGS_400 | ITEM_ENTITY_FLAGS_NEVER_VANISH;
itemEntity->spawnType = ITEM_SPAWN_MODE_TOSS_SPAWN_ALWAYS;
break;
case ITEM_SPAWN_MODE_TOSS:
itemEntity->flags |= ITEM_ENTITY_FLAGS_800000 | ITEM_ENTITY_FLAGS_400;
itemEntity->spawnType = ITEM_SPAWN_MODE_TOSS_SPAWN_ALWAYS;
break;
case ITEM_SPAWN_MODE_TOSS_SPAWN_ONCE:
itemEntity->flags |= ITEM_ENTITY_FLAGS_800000 | ITEM_ENTITY_FLAGS_800;
itemEntity->spawnType = ITEM_SPAWN_MODE_TOSS_SPAWN_ALWAYS;
break;
case ITEM_SPAWN_MODE_TOSS_SPAWN_ONCE_NEVER_VANISH:
itemEntity->flags |= ITEM_ENTITY_FLAGS_800000 | ITEM_ENTITY_FLAGS_800 | ITEM_ENTITY_FLAGS_NEVER_VANISH;
itemEntity->spawnType = ITEM_SPAWN_MODE_TOSS_SPAWN_ALWAYS;
break;
case ITEM_SPAWN_MODE_TOSS_SPAWN_ALWAYS_NEVER_VANISH:
itemEntity->flags |= ITEM_ENTITY_FLAGS_800000 | ITEM_ENTITY_FLAGS_NEVER_VANISH;
itemEntity->spawnType = ITEM_SPAWN_MODE_TOSS_SPAWN_ALWAYS;
break;
case ITEM_SPAWN_MODE_ITEM_BLOCK_ITEM:
itemEntity->flags |= ITEM_ENTITY_FLAGS_800000 | ITEM_ENTITY_FLAGS_400;
itemEntity->flags |= ITEM_ENTITY_FLAGS_40000000;
itemEntity->spawnType = ITEM_SPAWN_MODE_TOSS_SPAWN_ALWAYS;
break;
case ITEM_SPAWN_MODE_ITEM_BLOCK_BADGE:
itemEntity->flags |= ITEM_ENTITY_FLAGS_800000 | ITEM_ENTITY_FLAGS_400;
itemEntity->flags |= ITEM_ENTITY_FLAGS_40000000 | ITEM_ENTITY_FLAGS_NEVER_VANISH;
itemEntity->spawnType = ITEM_SPAWN_MODE_TOSS_SPAWN_ALWAYS;
break;
case ITEM_SPAWN_MODE_FALL_SPAWN_ALWAYS:
itemEntity->flags |= ITEM_ENTITY_FLAGS_800000;
break;
case ITEM_SPAWN_MODE_FALL_NEVER_VANISH:
itemEntity->flags |= ITEM_ENTITY_FLAGS_800000 | ITEM_ENTITY_FLAGS_400 | ITEM_ENTITY_FLAGS_NEVER_VANISH;
itemEntity->spawnType = ITEM_SPAWN_MODE_FALL_SPAWN_ALWAYS;
break;
case ITEM_SPAWN_MODE_FALL:
itemEntity->flags |= ITEM_ENTITY_FLAGS_800000 | ITEM_ENTITY_FLAGS_400;
itemEntity->spawnType = ITEM_SPAWN_MODE_FALL_SPAWN_ALWAYS;
break;
case ITEM_SPAWN_MODE_FALL_SPAWN_ONCE:
itemEntity->flags |= ITEM_ENTITY_FLAGS_800000 | ITEM_ENTITY_FLAGS_800;
itemEntity->spawnType = ITEM_SPAWN_MODE_FALL_SPAWN_ALWAYS;
break;
case ITEM_SPAWN_MODE_FIXED_SPAWN_ALWAYS:
itemEntity->flags |= ITEM_ENTITY_FLAGS_800000 | ITEM_ENTITY_FLAGS_FIXED;
itemEntity->flags |= ITEM_ENTITY_FLAGS_10000000;
break;
case ITEM_SPAWN_MODE_FIXED_NEVER_VANISH:
itemEntity->flags |= ITEM_ENTITY_FLAGS_800000 | ITEM_ENTITY_FLAGS_FIXED | ITEM_ENTITY_FLAGS_400 | ITEM_ENTITY_FLAGS_NEVER_VANISH;
itemEntity->flags |= ITEM_ENTITY_FLAGS_10000000;
itemEntity->spawnType = ITEM_SPAWN_MODE_FIXED_SPAWN_ALWAYS;
break;
case ITEM_SPAWN_MODE_FIXED:
itemEntity->flags |= ITEM_ENTITY_FLAGS_800000 | ITEM_ENTITY_FLAGS_FIXED | ITEM_ENTITY_FLAGS_400;
itemEntity->flags |= ITEM_ENTITY_FLAGS_10000000;
itemEntity->spawnType = ITEM_SPAWN_MODE_FIXED_SPAWN_ALWAYS;
break;
case ITEM_SPAWN_MODE_FIXED_SPAWN_ALWAYS_NEVER_VANISH:
itemEntity->flags |= ITEM_ENTITY_FLAGS_800000 | ITEM_ENTITY_FLAGS_FIXED | ITEM_ENTITY_FLAGS_NEVER_VANISH;
itemEntity->flags |= ITEM_ENTITY_FLAGS_10000000;
itemEntity->spawnType = ITEM_SPAWN_MODE_FIXED_SPAWN_ALWAYS;
break;
case ITEM_SPAWN_MODE_TOSS_FADE1:
itemEntity->flags |= ITEM_ENTITY_FLAGS_800000 | ITEM_ENTITY_FLAGS_1000;
itemEntity->scale = 0.8f;
itemEntity->flags |= ITEM_ENTITY_FLAGS_TINY;
break;
case ITEM_SPAWN_MODE_TOSS_FADE2:
itemEntity->flags |= ITEM_ENTITY_FLAGS_800000 | ITEM_ENTITY_FLAGS_1000;
itemEntity->flags |= ITEM_ENTITY_FLAGS_10000;
itemEntity->spawnType = ITEM_SPAWN_MODE_TOSS_FADE1;
itemEntity->scale = 0.8f;
itemEntity->flags |= ITEM_ENTITY_FLAGS_TINY;
break;
case ITEM_SPAWN_MODE_TOSS_FADE3:
itemEntity->flags |= ITEM_ENTITY_FLAGS_800000 | ITEM_ENTITY_FLAGS_1000;
itemEntity->flags |= ITEM_ENTITY_FLAGS_400000;
itemEntity->spawnType = ITEM_SPAWN_MODE_TOSS_FADE1;
itemEntity->scale = 0.8f;
itemEntity->flags |= ITEM_ENTITY_FLAGS_TINY;
break;
case ITEM_SPAWN_MODE_TOSS_SPAWN_ALWAYS_SMALL:
itemEntity->flags |= ITEM_ENTITY_FLAGS_800000;
itemEntity->spawnType = ITEM_SPAWN_MODE_TOSS_SPAWN_ALWAYS;
itemEntity->scale = 0.8f;
itemEntity->flags |= ITEM_ENTITY_FLAGS_TINY;
break;
case ITEM_SPAWN_MODE_UNKNOWN_1B:
itemEntity->flags |= ITEM_ENTITY_FLAGS_800000 | ITEM_ENTITY_FLAGS_8000;
itemEntity->spawnType = ITEM_SPAWN_MODE_ITEM_BLOCK_SPAWN_ALWAYS;
itemEntity->scale = 0.8f;
itemEntity->flags |= ITEM_ENTITY_FLAGS_TINY;
break;
case ITEM_SPAWN_MODE_ITEM_BLOCK_SPAWN_ALWAYS:
itemEntity->flags |= ITEM_ENTITY_FLAGS_800000 | ITEM_ENTITY_FLAGS_8000 | ITEM_ENTITY_FLAGS_NEVER_VANISH;
break;
case ITEM_SPAWN_MODE_ITEM_BLOCK_COIN:
itemEntity->spawnType = ITEM_SPAWN_MODE_ITEM_BLOCK_SPAWN_ALWAYS;
itemEntity->flags |= ITEM_ENTITY_FLAGS_800000 | ITEM_ENTITY_FLAGS_8000 | ITEM_ENTITY_FLAGS_400 | ITEM_ENTITY_FLAGS_NEVER_VANISH;
break;
case ITEM_SPAWN_MODE_TOSS_HIGHER_NEVER_VANISH:
itemEntity->spawnType = ITEM_SPAWN_MODE_TOSS_SPAWN_ALWAYS;
itemEntity->flags |= ITEM_ENTITY_FLAGS_800000 | ITEM_ENTITY_FLAGS_400 | ITEM_ENTITY_FLAGS_NEVER_VANISH;
itemEntity->flags |= ITEM_ENTITY_FLAGS_1000000;
break;
}
switch (itemEntity->spawnType) {
case ITEM_SPAWN_MODE_NOTHING:
case ITEM_SPAWN_MODE_TOSS_SPAWN_ALWAYS:
case ITEM_SPAWN_MODE_FALL_SPAWN_ALWAYS:
case ITEM_SPAWN_MODE_FIXED_SPAWN_ALWAYS:
case ITEM_SPAWN_MODE_ITEM_BLOCK_SPAWN_ALWAYS:
itemEntity->shadowIndex = create_shadow_type(0, itemEntity->position.x, itemEntity->position.y, itemEntity->position.z);
shadow = get_shadow_by_index(itemEntity->shadowIndex);
if (itemEntity->spawnType == ITEM_SPAWN_MODE_ITEM_BLOCK_SPAWN_ALWAYS) {
shadow->flags |= SHADOW_FLAGS_HIDDEN;
}
x = itemEntity->position.x;
y = itemEntity->position.y + 12.0f;
z = itemEntity->position.z;
hitDepth = 1000.0f;
npc_raycast_down_sides(0x20000, &x, &y, &z, &hitDepth);
shadow->position.x = x;
shadow->position.y = y;
shadow->position.z = z;
shadow->rotation.x = gGameStatusPtr->playerGroundTraceAngles.x;
shadow->rotation.y = 0.0f;
shadow->rotation.z = gGameStatusPtr->playerGroundTraceAngles.z;
set_standard_shadow_scale(shadow, hitDepth * 0.5f);
break;
}
if (itemEntity->pickupDelay != 0) {
item_entity_disable_shadow(itemEntity);
}
item_entity_load(itemEntity);
if (itemEntity->itemID == ITEM_COIN) {
sparkle_script_init(itemEntity, SparkleScript_Coin);
sparkle_script_update(itemEntity);
}
if (itemEntity->itemID == ITEM_STAR_PIECE) {
itemEntity->flags &= ~ITEM_ENTITY_FLAGS_80;
}
return id;
}
s32 make_item_entity_nodelay(s32 itemID, f32 x, f32 y, f32 z, s32 itemSpawnMode, s32 pickupVar) {
return make_item_entity(itemID, x, y, z, itemSpawnMode, 0, -1, pickupVar);
@ -259,12 +652,15 @@ s32 make_item_entity_at_player(s32 itemID, s32 arg1, s32 pickupMsgFlags) {
item_entity_load(item);
if (item->itemID == ITEM_COIN) {
sparkle_script_init(item, &SparkleScript_Coin);
sparkle_script_init(item, SparkleScript_Coin);
sparkle_script_update(item);
}
return id;
}
//TODO remove this
static const f32 rodata_padding_2 = 0.0f;
INCLUDE_ASM(s32, "C50A0", item_entity_update);
void update_item_entities(void) {
@ -281,7 +677,7 @@ void update_item_entities(void) {
if (entity != NULL && entity->flags != 0) {
if (entity->itemID == ITEM_COIN) {
if (rand_int(100) > 90) {
sparkle_script_init(entity, &SparkleScript_Coin);
sparkle_script_init(entity, SparkleScript_Coin);
D_80155D8C = rand_int(16) - 8;
D_80155D8E = rand_int(16) - 8;
D_80155D90 = 5;
@ -398,11 +794,11 @@ void draw_item_entities_UI(void) {
if (itemEntity != NULL && itemEntity->flags != 0) {
switch (itemEntity->spawnType) {
case ITEM_SPAWN_MODE_NOTHING:
func_801356C4();
func_801356C4(itemEntity);
break;
case ITEM_SPAWN_MODE_DECORATION:
case ITEM_SPAWN_MODE_INVISIBLE:
func_801356D4();
func_801356D4(itemEntity);
break;
case ITEM_SPAWN_MODE_TOSS_SPAWN_ALWAYS:
case ITEM_SPAWN_MODE_FALL_SPAWN_ALWAYS:
@ -476,12 +872,12 @@ void func_80133A94(s32 idx, s32 itemID) {
item->itemID = itemID;
item->flags |= ENTITY_FLAGS_4000;
item->flags &= ~ENTITY_FLAGS_DRAW_IF_CLOSE_HIDE_MODE2;
item->flags |= ITEM_ENTITY_FLAGS_TINY;
item->flags &= ~ITEM_ENTITY_FLAGS_40000;
if (gItemTable[itemID].typeFlags & ITEM_TYPE_FLAG_ENTITY_FULLSIZE) {
item->flags |= ENTITY_FLAGS_DRAW_IF_CLOSE_HIDE_MODE2;
item->flags &= ~ENTITY_FLAGS_4000;
item->flags |= ITEM_ENTITY_FLAGS_40000;
item->flags &= ~ITEM_ENTITY_FLAGS_TINY;
}
item_entity_load(item);
@ -511,19 +907,19 @@ s32 test_item_entity_position(f32 x, f32 y, f32 z, f32 dist) {
continue;
}
if (item->spawnType == ENTITY_TYPE_SHADOW) {
if (item->spawnType == ITEM_SPAWN_MODE_DECORATION) {
continue;
}
if (item->spawnType == ENTITY_TYPE_2) {
if (item->spawnType == ITEM_SPAWN_MODE_INVISIBLE) {
continue;
}
if (item->flags & ENTITY_FLAGS_CONTINUOUS_COLLISION) {
if (item->flags & ITEM_ENTITY_FLAGS_40) {
continue;
}
if (item->flags & ENTITY_FLAGS_200000) {
if (item->flags & ITEM_ENTITY_FLAGS_200000) {
continue;
}
@ -541,7 +937,7 @@ void set_item_entity_flags(s32 index, s32 flags) {
ItemEntity* itemEntity = gCurrentItemEntities[index];
itemEntity->flags |= flags;
if (itemEntity->flags & ENTITY_FLAGS_200000) {
if (itemEntity->flags & ITEM_ENTITY_FLAGS_200000) {
D_801565A8 = 1;
}
}
@ -555,7 +951,7 @@ void clear_item_entity_flags(s32 index, s32 flags) {
void func_801341B0(s32 index) {
ItemEntity* itemEntity = gCurrentItemEntities[index];
gOverrideFlags |= GLOBAL_OVERRIDES_40;
itemEntity->flags |= ENTITY_FLAGS_100;
itemEntity->flags |= ITEM_ENTITY_FLAGS_100;
}
/// @returns TRUE when "you got X" popup is on-screen
@ -620,22 +1016,190 @@ void update_item_entity_static(ItemEntity* itemEntity) {
}
}
void func_801356C4(void) {
void func_801356C4(ItemEntity* itemEntity) {
}
void func_801356CC(ItemEntity* itemEntity) {
}
void func_801356D4(void) {
void func_801356D4(ItemEntity* itemEntity) {
}
INCLUDE_ASM(s32, "C50A0", update_item_entity_temp);
#ifdef NON_EQUIVALENT
void func_801363A0(ItemEntity* itemEntity) {
ItemData* itemData = &gItemTable[itemEntity->itemID];
s32 itemMsg;
s32 offsetY;
s32 s1;
s32 temp;
s32 s3;
s32 temp2;
s32 v1;
switch (itemEntity->state) {
case 2:
case 10:
if (!(itemData->typeFlags & ITEM_TYPE_FLAG_BADGE)) {
if (!(itemEntity->flags & ITEM_ENTITY_FLAGS_4000000) || (itemEntity->pickupMsgFlags & 0x4)) {
itemMsg = MESSAGE_ID(0x1D, 0x058);
} else {
itemMsg = MESSAGE_ID(0x1D, 0x05A);
}
if (itemEntity->pickupMsgFlags & 0x10) {
itemMsg = MESSAGE_ID(0x1D, 0x05D);
}
if (itemEntity->pickupMsgFlags & 0x20) {
itemMsg = MESSAGE_ID(0x1D, 0x05E);
}
if (itemEntity->pickupMsgFlags & 0x40) {
itemMsg = MESSAGE_ID(0x1D, 0x05C);
}
set_message_msg(itemData->nameMsg, 0);
if (!(gItemTable[itemEntity->itemID].typeFlags & ITEM_TYPE_FLAG_KEY) &&
itemEntity->itemID != ITEM_STAR_PIECE &&
!(gItemTable[itemEntity->itemID].typeFlags & ITEM_TYPE_FLAG_GEAR) &&
!(itemEntity->pickupMsgFlags & 0x30)) {
offsetY = get_msg_width(itemMsg, 0) + 54;
} else {
offsetY = get_msg_width(itemMsg, 0) + 30;
}
s1 = 160 - offsetY / 2;
s3 = 0x4C;
} else {
if (!(itemEntity->flags & ITEM_ENTITY_FLAGS_4000000) || (itemEntity->pickupMsgFlags & 0x4)) {
itemMsg = MESSAGE_ID(0x1D, 0x059);
} else {
itemMsg = MESSAGE_ID(0x1D, 0x05B);
}
if (itemEntity->pickupMsgFlags & 0x10) {
itemMsg = MESSAGE_ID(0x1D, 0x05D);
}
if (itemEntity->pickupMsgFlags & 0x20) {
itemMsg = MESSAGE_ID(0x1D, 0x05E);
}
if (itemEntity->pickupMsgFlags & 0x40) {
itemMsg = MESSAGE_ID(0x1D, 0x05C);
}
set_message_msg(itemData->nameMsg, 0);
offsetY = get_msg_width(itemMsg, 0) + 30;
s1 = 160 - offsetY / 2;
s3 = 0x4C;
}
temp2 = D_8014C6E0[get_msg_lines(itemMsg) - 1];
if (itemEntity->state != 2) {
temp = 0x1C;
} else {
temp = 0;
}
if (gItemTable[itemEntity->itemID].typeFlags) {
set_window_properties(0xC, s1, s3 - 0x18 + temp, offsetY,
temp2, 0, func_8013673C, itemEntity, -1);
} else {
set_window_properties(0xC, s1, s3 - 0x18 + temp, offsetY,
temp2, 0, func_8013673C, itemEntity, -1);
}
if (itemEntity->itemID != ITEM_STAR_PIECE && itemEntity->itemID != ITEM_COIN) {
set_window_properties(0x13, 0x14, 0xBA, 0x118, 0x20, NULL, func_80136A08, itemEntity, -1);
}
if (itemEntity->state != 2) {
offsetY = get_msg_width(MESSAGE_ID(0x1D, 0x060), 0) + 0x18;
set_window_properties(0x11, 160 - offsetY / 2, 0x24, offsetY, 40, NULL, func_801369D0, itemEntity, -1);
}
break;
case 12:
set_message_msg(itemData->nameMsg, 0);
offsetY = get_msg_width(MESSAGE_ID(0x1D, 0x05F), 0) + 0x36;
set_window_properties(0xC, 160 - offsetY / 2, 0x4C, offsetY, 40, NULL, func_8013673C, itemEntity, -1);
break;
}
}
#else
INCLUDE_ASM(s32, "C50A0", func_801363A0);
#endif
INCLUDE_ASM(s32, "C50A0", func_8013673C);
void func_8013673C(ItemEntity* itemEntity, s32 posX, s32 posY) {
ItemData* itemData = &gItemTable[itemEntity->itemID];
s32 itemMsg;
s32 offsetY;
void func_801369D0(s32 arg1, s32 x, s32 y) {
switch (itemEntity->state) {
case 2:
case 3:
case 10:
case 11:
if (!(itemData->typeFlags & ITEM_TYPE_FLAG_BADGE)) {
if (!(itemEntity->flags & ITEM_ENTITY_FLAGS_4000000) || (itemEntity->pickupMsgFlags & 0x4)) {
itemMsg = MESSAGE_ID(0x1D, 0x058);
} else {
itemMsg = MESSAGE_ID(0x1D, 0x05A);
}
set_message_msg(itemData->nameMsg, 0);
if (itemEntity->pickupMsgFlags & 0x10) {
itemMsg = MESSAGE_ID(0x1D, 0x05D);
}
if (itemEntity->pickupMsgFlags & 0x20) {
itemMsg = MESSAGE_ID(0x1D, 0x05E);
}
if (itemEntity->pickupMsgFlags & 0x40) {
itemMsg = MESSAGE_ID(0x1D, 0x05C);
}
} else {
if (!(itemEntity->flags & ITEM_ENTITY_FLAGS_4000000) || (itemEntity->pickupMsgFlags & 0x4)) {
itemMsg = MESSAGE_ID(0x1D, 0x059);
} else {
itemMsg = MESSAGE_ID(0x1D, 0x05B);
}
if (itemEntity->pickupMsgFlags & 0x10) {
itemMsg = MESSAGE_ID(0x1D, 0x05D);
}
if (itemEntity->pickupMsgFlags & 0x20) {
itemMsg = MESSAGE_ID(0x1D, 0x05E);
}
if (itemEntity->pickupMsgFlags & 0x40) {
itemMsg = MESSAGE_ID(0x1D, 0x05C);
}
set_message_msg(itemData->nameMsg, 0);
}
offsetY = D_8014C6E4[get_msg_lines(itemMsg) - 1];
if ((gItemTable[itemEntity->itemID].typeFlags & ITEM_TYPE_FLAG_BADGE) ||
(gItemTable[itemEntity->itemID].typeFlags & ITEM_TYPE_FLAG_KEY) ||
itemEntity->itemID == ITEM_STAR_PIECE ||
(gItemTable[itemEntity->itemID].typeFlags & ITEM_TYPE_FLAG_GEAR) ||
(itemEntity->pickupMsgFlags & 0x30)) {
draw_msg(itemMsg, posX + 15, posY + offsetY, 255, 47, 0);
} else {
draw_msg(itemMsg, posX + 40, posY + offsetY, 255, 47, 0);
if (!(itemEntity->pickupMsgFlags & 0x30)) {
hud_element_set_render_pos(D_801568E0, posX + 20, posY + 20);
hud_element_draw_next(D_801568E0);
}
}
break;
case 13:
case 14:
set_message_msg(gItemTable[D_801568EC].nameMsg, 0);
draw_msg(MESSAGE_ID(0x1D, 0x05F), posX + 40, posY + 4, 255, 47, 0);
hud_element_set_render_pos(D_801568E0, posX + 20, posY + 20);
hud_element_draw_next(D_801568E0);
break;
}
}
void func_801369D0(ItemEntity* itemEntity, s32 x, s32 y) {
draw_msg(MESSAGE_ID(0x1D,0x060), x + 12, y + 4, 255, 52, 0);
}
@ -653,3 +1217,6 @@ void func_80136A08(ItemEntity* itemEntity, s32 posX, s32 posY) {
break;
}
}
// TODO remove this
static const f32 rodata_padding[] = { 0.0f, 0.0f };

View File

@ -14,32 +14,21 @@ typedef struct struct802B7C78 {
/* 0x28 */ s32 unk_28;
} struct802B7C78;
typedef struct UnknownCommand {
/* 0x00 */ Matrix4f* unk_00;
/* 0x04 */ Matrix4f* unk_04;
/* 0x08 */ s16 unk_08;
/* 0x0A */ s16 unk_0A;
/* 0x0C */ s16 unk_0C;
/* 0x0E */ s16 unk_0E;
/* 0x10 */ u8 unk_10;
} UnknownCommand;
extern Matrix4f D_802B7580_E22B30;
extern Matrix4f D_802B7BA0_E23150;
extern Matrix4f D_802B7BC0_E23170;
extern Matrix4f D_802B7BE0_E23190;
extern u8 D_802B7580_E22B30[];
extern u8 D_802B7BA0_E23150[];
extern u8 D_802B7BC0_E23170[];
extern u8 D_802B7BE0_E23190[];
extern Gfx D_802B7C00_E231B0[];
extern void (*D_8010C93C)(void);
extern struct802B7C78* D_802B7C78_E23228;
void fold_appendGfx_component(s32, UnknownCommand*, s32, Matrix4f*);
void func_802B735C_E2290C(void);
void func_802B7000_E225B0(void) {
Matrix4f matrix1;
Matrix4f matrix2;
UnknownCommand command;
FoldImageRecPart foldImage;
Gfx* oldMasterGfxPos;
f32 scale;
@ -72,31 +61,31 @@ void func_802B7000_E225B0(void) {
case 1:
case 2:
case 3:
command.unk_04 = &D_802B7BA0_E23150;
foldImage.palette = D_802B7BA0_E23150;
break;
case 4:
case 5:
case 6:
case 7:
command.unk_04 = &D_802B7BC0_E23170;
foldImage.palette = D_802B7BC0_E23170;
break;
case 8:
case 9:
case 10:
case 11:
command.unk_04 = &D_802B7BE0_E23190;
foldImage.palette = D_802B7BE0_E23190;
break;
}
fold_update(0, 7, 0xFF, 0xFF, 0xFF, D_802B7C78_E23228->unk_28, 0);
command.unk_00 = &D_802B7580_E22B30;
command.unk_08 = 0x38;
command.unk_0A = 0x38;
command.unk_0C = -0x1C;
command.unk_0E = 0x2E;
command.unk_10 = 0xFF;
foldImage.raster = D_802B7580_E22B30;
foldImage.width = 56;
foldImage.height = 56;
foldImage.xOffset = -28;
foldImage.yOffset = 46;
foldImage.unk_10 = 255;
fold_appendGfx_component(0, &command, 0, &matrix2);
fold_appendGfx_component(0, &foldImage, 0, matrix2);
gSPPopMatrix(gMasterGfxPos++, 0);
}
}

View File

@ -87,29 +87,7 @@ FoldImageRec* fold_currentImage = &D_80156920;
u16 fold_vtxCount = 0;
Lights2 D_8014EE18 = {
.a = {
.l = {
.col = { 144, 144, 144 },
.colc = { 144, 144, 144 },
}
},
.l = {
{
.l = {
.col = { 255, 255, 255 },
.colc = { 255, 255, 255 },
.dir = { 0, 0, 120},
}
}, {
.l = {
.col = { 255, 255, 255 },
.colc = { 255, 255, 255 },
.dir = { 0, 0, 136 },
}
}
}
};
Lights2 D_8014EE18 = gdSPDefLights2(144, 144, 144, 255, 255, 255, 0, 0, 120, 255, 255, 255, 0, 0, 136);
Vp D_8014EE40 = {
.vp = {
@ -635,7 +613,7 @@ void fold_set_state_flags(s32 idx, u16 flagBits, s32 mode) {
}
}
s32 fold_appendGfx_component(s32 idx, FoldImageRec* image, u32 flagBits, Matrix4f mtx) {
s32 fold_appendGfx_component(s32 idx, FoldImageRecPart* image, u32 flagBits, Matrix4f mtx) {
FoldState* state = &(*D_80156954)[idx];
s32 ret = 0;

View File

@ -123,7 +123,6 @@ extern u8* gHudElementCacheBufferWorld;
extern u8* gHudElementCacheBufferBattle;
extern u8* gHudElementCacheBuffer;
s32 fold_appendGfx_component(s32 idx, FoldImageRecPart* image, u32 flagBits, Matrix4f mtx);
void func_801413F8(void);
void hud_element_load_script(HudElement* hudElement, HudScript* anim) {
@ -1658,9 +1657,7 @@ void render_hud_elements_world(void) {
gDPPipeSync(gMasterGfxPos++);
gSPClearGeometryMode(gMasterGfxPos++, G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH);
gSPSetGeometryMode(gMasterGfxPos++, G_ZBUFFER | G_SHADE | G_LIGHTING | G_SHADING_SMOOTH);
gSPNumLights(gMasterGfxPos++, 1);
gSPLight(gMasterGfxPos++, &D_8014F108.l, 1);
gSPLight(gMasterGfxPos++, &D_8014F108.a, 2);
gSPSetLights1(gMasterGfxPos++, D_8014F108);
gSPTexture(gMasterGfxPos++, -1, -1, 0, G_TX_RENDERTILE, G_ON);
gDPSetAlphaCompare(gMasterGfxPos++, G_AC_NONE);
gSPSetOtherMode(gMasterGfxPos++, G_SETOTHERMODE_H, G_MDSFT_ALPHADITHER, 18, G_AD_DISABLE | G_CD_DISABLE | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE);
@ -1708,9 +1705,7 @@ void render_hud_elements_world(void) {
gDPPipeSync(gMasterGfxPos++);
gSPClearGeometryMode(gMasterGfxPos++, G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH);
gSPSetGeometryMode(gMasterGfxPos++, G_ZBUFFER | G_SHADE | G_LIGHTING | G_SHADING_SMOOTH);
gSPNumLights(gMasterGfxPos++, 1);
gSPLight(gMasterGfxPos++, &D_8014F108.l, 1);
gSPLight(gMasterGfxPos++, &D_8014F108.a, 2);
gSPSetLights1(gMasterGfxPos++, D_8014F108);
gSPTexture(gMasterGfxPos++, -1, -1, 0, G_TX_RENDERTILE, G_ON);
gDPSetAlphaCompare(gMasterGfxPos++, G_AC_NONE);
gSPSetOtherMode(gMasterGfxPos++, G_SETOTHERMODE_H, G_MDSFT_ALPHADITHER, 18, G_AD_DISABLE | G_CD_DISABLE | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE);

View File

@ -7,6 +7,9 @@ void gfxRetrace_Callback(s32);
void gfxPreNMI_Callback(void);
void gfx_task_main(void);
void gfx_draw_frame(void);
void gfx_init_state(void);
// TODO: name these symbols the same, this is just a shift
#ifdef VERSION_US
extern s32 D_80073E00;
@ -16,7 +19,7 @@ extern s32 D_80073DE0;
extern u16* D_80073E04;
extern s16 D_80073E08;
extern s16 D_80073E0A;
extern s32 D_80073E10;
extern s32 D_80073E10[];
extern u16* D_8009A680;
extern OSViMode _osViModeNtscLan1;
extern OSViMode _osViModeMPalLan1;
@ -105,21 +108,12 @@ void gfxRetrace_Callback(s32 arg0) {
INCLUDE_ASM(s32, "main", gfxRetrace_Callback);
#endif
// the loops & gSPTextureRectangle
#ifdef NON_EQUIVALENT
#ifdef VERSION_US
void gfx_task_main(void) {
u16 t;
s32 temp_a0_3;
s32 temp_a1_3;
s32 temp_a2;
s32 temp_a3_2;
s32 temp_s0_3;
s32 temp_s1_2;
s32 temp_s3;
s32 temp_t7;
s16 t;
s16 i;
s16 j;
s32* temp;
u16* temp;
gMatrixListPos = 0;
gDisplayContext = &D_80164000[gCurrentDisplayContextIndex];
@ -139,43 +133,54 @@ void gfx_task_main(void) {
gDPSetCombineLERP(gMasterGfxPos++, 0, 0, 0, 0, 0, 0, 0, TEXEL0, 0, 0, 0, 0, 0, 0, 0, TEXEL0);
gDPSetAlphaCompare(gMasterGfxPos++, G_AC_THRESHOLD);
gDPSetBlendColor(gMasterGfxPos++, 0, 0, 0, 127);
gDPLoadTextureTile_4b(gMasterGfxPos++, &D_80073E10, G_IM_FMT_I, 128, 0, 0, 0, 127, 7, 0, G_TX_NOMIRROR | G_TX_WRAP,
gDPLoadTextureTile_4b(gMasterGfxPos++, D_80073E10, G_IM_FMT_I, 128, 8, 0, 0, 127, 7, 0, G_TX_NOMIRROR | G_TX_WRAP,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
for (i = 0; i < 20; i++) {
temp_s3 = ((i * 8) + 168) * 4;
temp_s1_2 = ((i * 8) + 160) * 4;
temp_s0_3 = (160 - (i * 8)) * 4;
temp_t7 = (152 - (i * 8)) * 4;
for (j = 0; j < 15; j++) {
t = (33 - ((i + 14) - j)) / 2 - (D_80074010 - 15);
if (t < 16 && t >= 0) {
temp_a0_3 = ((j * 8) + 8) * 4;
temp_a3_2 = ((j * 8) - 8) * 4;
temp_a1_3 = (SCREEN_HEIGHT - (j * 8)) * 4;
temp_a2 = (232 - (j * 8)) * 4;
gSPTextureRectangle(gMasterGfxPos++, temp_s3, temp_a0_3, temp_s1_2, temp_a3_2, 4, -0x2000, t, 0x0400, 0x0400);
gSPTextureRectangle(gMasterGfxPos++, temp_s3, temp_a1_3, temp_s1_2, temp_a2, 4, -0x2000, t, 0x0400, -0x0400);
gSPTextureRectangle(gMasterGfxPos++, temp_s0_3, temp_a0_3, temp_t7, temp_a3_2, 4, -0x2000, t, -0x0400, 0x0400);
gSPTextureRectangle(gMasterGfxPos++, temp_s0_3, temp_a1_3, temp_t7, temp_a2, 4, -0x2000, t, -0x0400, -0x0400);
s32 s4 = i + 14;
t = (33 - (s4 - j)) / 2 + 15 - D_80074010;
if (t >= 16) {
continue;
}
if (t < 0) {
continue;
}
gSPTextureRectangle(gMasterGfxPos++, ((i * 8) + 160) * 4,
((j * 8)) * 4,
((i * 8) + 168) * 4,
((j * 8) + 8) * 4,
G_TX_RENDERTILE,
(t * 8) * 32, 0, 0x0400, 0x0400);
gSPTextureRectangle(gMasterGfxPos++, ((i * 8) + 160) * 4,
(232 - (j * 8)) * 4,
((i * 8) + 168) * 4,
(240 - (j * 8)) * 4,
G_TX_RENDERTILE,
(t * 8) * 32, 7 * 32, 0x0400, -0x0400);
gSPTextureRectangle(gMasterGfxPos++, (152 - (i * 8)) * 4,
((j * 8)) * 4,
(160 - (i * 8)) * 4,
((j * 8) + 8) * 4,
G_TX_RENDERTILE,
(t * 8 + 7) * 32, 0, -0x0400, 0x0400);
gSPTextureRectangle(gMasterGfxPos++, (152 - (i * 8)) * 4,
(232 - (j * 8)) * 4,
(160 - (i * 8)) * 4,
(240 - (j * 8)) * 4,
G_TX_RENDERTILE,
(t * 8 + 7) * 32, 7 * 32, -0x0400, -0x0400);
}
}
D_80074010++;
gDPFullSync(gMasterGfxPos++);
gSPEndDisplayList(gMasterGfxPos++);
nuGfxTaskStart(gDisplayContext->mainGfx, (u32)(gMasterGfxPos - gDisplayContext->mainGfx) * 8, 0, 0x40000);
nuGfxTaskStart(gDisplayContext->mainGfx, (u32)(gMasterGfxPos - gDisplayContext->mainGfx) * 8, NU_GFX_UCODE_F3DEX, NU_SC_TASK_LODABLE);
gCurrentDisplayContextIndex ^= 1;
}
#else
#ifdef VERSION_US
INCLUDE_ASM(void, "main", gfx_task_main);
#else
INCLUDE_ASM(s32, "main", func_80026148);
#endif
#endif
void gfxPreNMI_Callback(void) {

View File

@ -27,23 +27,7 @@ s32 D_80077A2C = 0;
s32 D_80077A30 = 0;
s32 D_80077A34[1] = {0};
Lights1 D_80077A38 = {
.a = {
.l = {
.col = {255, 255, 255},
.colc = {255, 255, 255},
},
},
.l = {
{
.l = {
.col = {0, 0, 0},
.colc = {0, 0, 0},
.dir = {0, 0, 0},
}
}
}
};
Lights1 D_80077A38 = gdSPDefLights1(255, 255, 255, 0, 0, 0, 0, 0, 0);
Gfx D_80077A50[] = {
gsDPPipeSync(),

View File

@ -1,27 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_8014C5A0
.word 0xFFF40000, 0x00000000, 0x23002300, 0x000000FF, 0x000B0000, 0x00000000, 0x20002300, 0x000000FF, 0x000B0017, 0x00000000, 0x20002000, 0x000000FF, 0xFFF40017, 0x00000000, 0x23002000, 0x000000FF
dlabel D_8014C5E0
.word 0xFFF00000, 0x00000000, 0x24002400, 0x000000FF, 0x000F0000, 0x00000000, 0x20002400, 0x000000FF, 0x000F001F, 0x00000000, 0x20002000, 0x000000FF, 0xFFF0001F, 0x00000000, 0x24002000, 0x000000FF
dlabel D_8014C620
.word 0xE7000000, 0x00000000, 0xD7000002, 0xFFFFFFFF, 0xFCFFFFFF, 0xFFFCF279, 0xE3000C00, 0x00080000, 0xE3000D01, 0x00000000, 0xE3000F00, 0x00000000, 0xE3001001, 0x00000000, 0xE3001201, 0x00002000, 0xE3001402, 0x00000C00, 0xE3001001, 0x00008000, 0xDF000000, 0x00000000
dlabel D_8014C678
.word 0xD9DDFBFF, 0x00000000, 0x01004008, D_8014C5A0, 0x06000204, 0x00000406, 0xE7000000, 0x00000000, 0xDF000000, 0x00000000
dlabel D_8014C6A0
.word 0xD9DDFBFF, 0x00000000, 0x01004008, D_8014C5E0, 0x06000204, 0x00000406, 0xE7000000, 0x00000000, 0xDF000000, 0x00000000, 0xFFFFFF00, 0xFFFFFF00
dlabel D_8014C6D0
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
dlabel D_8014C6E0
.short 0x0020, 0x0028
dlabel D_8014C6E4
.short 0x0008, 0x0004, 0x0000, 0x0000, 0x0000, 0x0000

View File

@ -1,121 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel set_cam_viewport
/* 9714 8002E314 3C08800B */ lui $t0, %hi(gCameras)
/* 9718 8002E318 25081D80 */ addiu $t0, $t0, %lo(gCameras)
/* 971C 8002E31C 00042400 */ sll $a0, $a0, 0x10
/* 9720 8002E320 00042403 */ sra $a0, $a0, 0x10
/* 9724 8002E324 00041880 */ sll $v1, $a0, 2
/* 9728 8002E328 00641821 */ addu $v1, $v1, $a0
/* 972C 8002E32C 00031880 */ sll $v1, $v1, 2
/* 9730 8002E330 00641823 */ subu $v1, $v1, $a0
/* 9734 8002E334 000310C0 */ sll $v0, $v1, 3
/* 9738 8002E338 00621821 */ addu $v1, $v1, $v0
/* 973C 8002E33C 000318C0 */ sll $v1, $v1, 3
/* 9740 8002E340 00681821 */ addu $v1, $v1, $t0
/* 9744 8002E344 A467000A */ sh $a3, 0xa($v1)
/* 9748 8002E348 A465000E */ sh $a1, 0xe($v1)
/* 974C 8002E34C 00E0282D */ daddu $a1, $a3, $zero
/* 9750 8002E350 A4660010 */ sh $a2, 0x10($v1)
/* 9754 8002E354 8FA40010 */ lw $a0, 0x10($sp)
/* 9758 8002E358 240201FF */ addiu $v0, $zero, 0x1ff
/* 975C 8002E35C A46200A4 */ sh $v0, 0xa4($v1)
/* 9760 8002E360 A46200AC */ sh $v0, 0xac($v1)
/* 9764 8002E364 A46200B4 */ sh $v0, 0xb4($v1)
/* 9768 8002E368 9462000E */ lhu $v0, 0xe($v1)
/* 976C 8002E36C 00052C00 */ sll $a1, $a1, 0x10
/* 9770 8002E370 A46000A6 */ sh $zero, 0xa6($v1)
/* 9774 8002E374 A46000AE */ sh $zero, 0xae($v1)
/* 9778 8002E378 A46000B6 */ sh $zero, 0xb6($v1)
/* 977C 8002E37C A464000C */ sh $a0, 0xc($v1)
/* 9780 8002E380 00052403 */ sra $a0, $a1, 0x10
/* 9784 8002E384 00052FC2 */ srl $a1, $a1, 0x1f
/* 9788 8002E388 00852021 */ addu $a0, $a0, $a1
/* 978C 8002E38C 00042043 */ sra $a0, $a0, 1
/* 9790 8002E390 00441021 */ addu $v0, $v0, $a0
/* 9794 8002E394 00021400 */ sll $v0, $v0, 0x10
/* 9798 8002E398 8464000A */ lh $a0, 0xa($v1)
/* 979C 8002E39C 00021383 */ sra $v0, $v0, 0xe
/* 97A0 8002E3A0 A46200A8 */ sh $v0, 0xa8($v1)
/* 97A4 8002E3A4 9462000C */ lhu $v0, 0xc($v1)
/* 97A8 8002E3A8 44840000 */ mtc1 $a0, $f0
/* 97AC 8002E3AC 00000000 */ nop
/* 97B0 8002E3B0 46800020 */ cvt.s.w $f0, $f0
/* 97B4 8002E3B4 00021400 */ sll $v0, $v0, 0x10
/* 97B8 8002E3B8 00022403 */ sra $a0, $v0, 0x10
/* 97BC 8002E3BC 000217C2 */ srl $v0, $v0, 0x1f
/* 97C0 8002E3C0 00822021 */ addu $a0, $a0, $v0
/* 97C4 8002E3C4 00C0102D */ daddu $v0, $a2, $zero
/* 97C8 8002E3C8 00042043 */ sra $a0, $a0, 1
/* 97CC 8002E3CC 00441021 */ addu $v0, $v0, $a0
/* 97D0 8002E3D0 00021400 */ sll $v0, $v0, 0x10
/* 97D4 8002E3D4 00021383 */ sra $v0, $v0, 0xe
/* 97D8 8002E3D8 46000000 */ add.s $f0, $f0, $f0
/* 97DC 8002E3DC A46200AA */ sh $v0, 0xaa($v1)
/* 97E0 8002E3E0 8462000A */ lh $v0, 0xa($v1)
/* 97E4 8002E3E4 4600010D */ trunc.w.s $f4, $f0
/* 97E8 8002E3E8 44042000 */ mfc1 $a0, $f4
/* 97EC 8002E3EC 44820000 */ mtc1 $v0, $f0
/* 97F0 8002E3F0 00000000 */ nop
/* 97F4 8002E3F4 46800020 */ cvt.s.w $f0, $f0
/* 97F8 8002E3F8 46000000 */ add.s $f0, $f0, $f0
/* 97FC 8002E3FC 8462000C */ lh $v0, 0xc($v1)
/* 9800 8002E400 3C068007 */ lui $a2, %hi(gGameStatusPtr)
/* 9804 8002E404 8CC6419C */ lw $a2, %lo(gGameStatusPtr)($a2)
/* 9808 8002E408 44821000 */ mtc1 $v0, $f2
/* 980C 8002E40C 00000000 */ nop
/* 9810 8002E410 468010A0 */ cvt.s.w $f2, $f2
/* 9814 8002E414 4600010D */ trunc.w.s $f4, $f0
/* 9818 8002E418 44022000 */ mfc1 $v0, $f4
/* 981C 8002E41C 00000000 */ nop
/* 9820 8002E420 A46200B0 */ sh $v0, 0xb0($v1)
/* 9824 8002E424 8462000C */ lh $v0, 0xc($v1)
/* 9828 8002E428 46021080 */ add.s $f2, $f2, $f2
/* 982C 8002E42C A46400A0 */ sh $a0, 0xa0($v1)
/* 9830 8002E430 44820000 */ mtc1 $v0, $f0
/* 9834 8002E434 00000000 */ nop
/* 9838 8002E438 46800020 */ cvt.s.w $f0, $f0
/* 983C 8002E43C 46000000 */ add.s $f0, $f0, $f0
/* 9840 8002E440 4600110D */ trunc.w.s $f4, $f2
/* 9844 8002E444 44042000 */ mfc1 $a0, $f4
/* 9848 8002E448 00000000 */ nop
/* 984C 8002E44C A46400A2 */ sh $a0, 0xa2($v1)
/* 9850 8002E450 4600010D */ trunc.w.s $f4, $f0
/* 9854 8002E454 44022000 */ mfc1 $v0, $f4
/* 9858 8002E458 00000000 */ nop
/* 985C 8002E45C A46200B2 */ sh $v0, 0xb2($v1)
/* 9860 8002E460 00E0102D */ daddu $v0, $a3, $zero
/* 9864 8002E464 00021400 */ sll $v0, $v0, 0x10
/* 9868 8002E468 00022403 */ sra $a0, $v0, 0x10
/* 986C 8002E46C 000217C2 */ srl $v0, $v0, 0x1f
/* 9870 8002E470 00822021 */ addu $a0, $a0, $v0
/* 9874 8002E474 00042043 */ sra $a0, $a0, 1
/* 9878 8002E478 90C50082 */ lbu $a1, 0x82($a2)
/* 987C 8002E47C 9462000E */ lhu $v0, 0xe($v1)
/* 9880 8002E480 00052E00 */ sll $a1, $a1, 0x18
/* 9884 8002E484 00052E03 */ sra $a1, $a1, 0x18
/* 9888 8002E488 00441021 */ addu $v0, $v0, $a0
/* 988C 8002E48C 00021400 */ sll $v0, $v0, 0x10
/* 9890 8002E490 00021383 */ sra $v0, $v0, 0xe
/* 9894 8002E494 00A22821 */ addu $a1, $a1, $v0
/* 9898 8002E498 A46500B8 */ sh $a1, 0xb8($v1)
/* 989C 8002E49C 90C50083 */ lbu $a1, 0x83($a2)
/* 98A0 8002E4A0 9462000C */ lhu $v0, 0xc($v1)
/* 98A4 8002E4A4 00052E00 */ sll $a1, $a1, 0x18
/* 98A8 8002E4A8 00052E03 */ sra $a1, $a1, 0x18
/* 98AC 8002E4AC 00021400 */ sll $v0, $v0, 0x10
/* 98B0 8002E4B0 00022403 */ sra $a0, $v0, 0x10
/* 98B4 8002E4B4 000217C2 */ srl $v0, $v0, 0x1f
/* 98B8 8002E4B8 00822021 */ addu $a0, $a0, $v0
/* 98BC 8002E4BC 94620010 */ lhu $v0, 0x10($v1)
/* 98C0 8002E4C0 00042043 */ sra $a0, $a0, 1
/* 98C4 8002E4C4 00441021 */ addu $v0, $v0, $a0
/* 98C8 8002E4C8 00021400 */ sll $v0, $v0, 0x10
/* 98CC 8002E4CC 00021383 */ sra $v0, $v0, 0xe
/* 98D0 8002E4D0 00A22821 */ addu $a1, $a1, $v0
/* 98D4 8002E4D4 24020200 */ addiu $v0, $zero, 0x200
/* 98D8 8002E4D8 A46500BA */ sh $a1, 0xba($v1)
/* 98DC 8002E4DC A46200BC */ sh $v0, 0xbc($v1)
/* 98E0 8002E4E0 03E00008 */ jr $ra
/* 98E4 8002E4E4 A46000BE */ sh $zero, 0xbe($v1)

View File

@ -1,201 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel draw_ci_image_with_clipping
/* C50A0 8012E9A0 27BDFFB8 */ addiu $sp, $sp, -0x48
/* C50A4 8012E9A4 AFB10034 */ sw $s1, 0x34($sp)
/* C50A8 8012E9A8 0080882D */ daddu $s1, $a0, $zero
/* C50AC 8012E9AC AFB20038 */ sw $s2, 0x38($sp)
/* C50B0 8012E9B0 00A0902D */ daddu $s2, $a1, $zero
/* C50B4 8012E9B4 AFB3003C */ sw $s3, 0x3c($sp)
/* C50B8 8012E9B8 00C0982D */ daddu $s3, $a2, $zero
/* C50BC 8012E9BC AFB00030 */ sw $s0, 0x30($sp)
/* C50C0 8012E9C0 00E0802D */ daddu $s0, $a3, $zero
/* C50C4 8012E9C4 3C05E300 */ lui $a1, 0xe300
/* C50C8 8012E9C8 34A50A01 */ ori $a1, $a1, 0xa01
/* C50CC 8012E9CC 3C06E300 */ lui $a2, 0xe300
/* C50D0 8012E9D0 34C61201 */ ori $a2, $a2, 0x1201
/* C50D4 8012E9D4 3C07E300 */ lui $a3, 0xe300
/* C50D8 8012E9D8 3C09800A */ lui $t1, %hi(gMasterGfxPos)
/* C50DC 8012E9DC 2529A66C */ addiu $t1, $t1, %lo(gMasterGfxPos)
/* C50E0 8012E9E0 34E70C00 */ ori $a3, $a3, 0xc00
/* C50E4 8012E9E4 3C02E700 */ lui $v0, 0xe700
/* C50E8 8012E9E8 AFBF0040 */ sw $ra, 0x40($sp)
/* C50EC 8012E9EC 8D280000 */ lw $t0, ($t1)
/* C50F0 8012E9F0 8FB90058 */ lw $t9, 0x58($sp)
/* C50F4 8012E9F4 8FAA005C */ lw $t2, 0x5c($sp)
/* C50F8 8012E9F8 97AB0062 */ lhu $t3, 0x62($sp)
/* C50FC 8012E9FC 97AC0066 */ lhu $t4, 0x66($sp)
/* C5100 8012EA00 97AD006A */ lhu $t5, 0x6a($sp)
/* C5104 8012EA04 97AE006E */ lhu $t6, 0x6e($sp)
/* C5108 8012EA08 97AF0072 */ lhu $t7, 0x72($sp)
/* C510C 8012EA0C 97B80076 */ lhu $t8, 0x76($sp)
/* C5110 8012EA10 93A4007B */ lbu $a0, 0x7b($sp)
/* C5114 8012EA14 0100182D */ daddu $v1, $t0, $zero
/* C5118 8012EA18 25080008 */ addiu $t0, $t0, 8
/* C511C 8012EA1C AD280000 */ sw $t0, ($t1)
/* C5120 8012EA20 AC620000 */ sw $v0, ($v1)
/* C5124 8012EA24 25020008 */ addiu $v0, $t0, 8
/* C5128 8012EA28 AC600004 */ sw $zero, 4($v1)
/* C512C 8012EA2C AD220000 */ sw $v0, ($t1)
/* C5130 8012EA30 25020010 */ addiu $v0, $t0, 0x10
/* C5134 8012EA34 AD050000 */ sw $a1, ($t0)
/* C5138 8012EA38 AD000004 */ sw $zero, 4($t0)
/* C513C 8012EA3C AD220000 */ sw $v0, ($t1)
/* C5140 8012EA40 25020018 */ addiu $v0, $t0, 0x18
/* C5144 8012EA44 AD060008 */ sw $a2, 8($t0)
/* C5148 8012EA48 AD00000C */ sw $zero, 0xc($t0)
/* C514C 8012EA4C AD220000 */ sw $v0, ($t1)
/* C5150 8012EA50 AD070010 */ sw $a3, 0x10($t0)
/* C5154 8012EA54 308700FF */ andi $a3, $a0, 0xff
/* C5158 8012EA58 240200FF */ addiu $v0, $zero, 0xff
/* C515C 8012EA5C 14E20012 */ bne $a3, $v0, .L8012EAA8
/* C5160 8012EA60 AD000014 */ sw $zero, 0x14($t0)
/* C5164 8012EA64 3C05E200 */ lui $a1, 0xe200
/* C5168 8012EA68 34A5001C */ ori $a1, $a1, 0x1c
/* C516C 8012EA6C 3C030F0A */ lui $v1, 0xf0a
/* C5170 8012EA70 34637008 */ ori $v1, $v1, 0x7008
/* C5174 8012EA74 3C06FCFF */ lui $a2, 0xfcff
/* C5178 8012EA78 34C6FFFF */ ori $a2, $a2, 0xffff
/* C517C 8012EA7C 3C04FFFC */ lui $a0, 0xfffc
/* C5180 8012EA80 3484F279 */ ori $a0, $a0, 0xf279
/* C5184 8012EA84 25020020 */ addiu $v0, $t0, 0x20
/* C5188 8012EA88 AD220000 */ sw $v0, ($t1)
/* C518C 8012EA8C 25020028 */ addiu $v0, $t0, 0x28
/* C5190 8012EA90 AD050018 */ sw $a1, 0x18($t0)
/* C5194 8012EA94 AD03001C */ sw $v1, 0x1c($t0)
/* C5198 8012EA98 AD220000 */ sw $v0, ($t1)
/* C519C 8012EA9C AD060020 */ sw $a2, 0x20($t0)
/* C51A0 8012EAA0 0804BAC2 */ j .L8012EB08
/* C51A4 8012EAA4 AD040024 */ sw $a0, 0x24($t0)
.L8012EAA8:
/* C51A8 8012EAA8 14E00003 */ bnez $a3, .L8012EAB8
/* C51AC 8012EAAC 3C05E200 */ lui $a1, 0xe200
/* C51B0 8012EAB0 0804BB1E */ j .L8012EC78
/* C51B4 8012EAB4 24020001 */ addiu $v0, $zero, 1
.L8012EAB8:
/* C51B8 8012EAB8 34A5001C */ ori $a1, $a1, 0x1c
/* C51BC 8012EABC 3C030050 */ lui $v1, 0x50
/* C51C0 8012EAC0 34634240 */ ori $v1, $v1, 0x4240
/* C51C4 8012EAC4 3C06FCFF */ lui $a2, 0xfcff
/* C51C8 8012EAC8 34C697FF */ ori $a2, $a2, 0x97ff
/* C51CC 8012EACC 3C04FF2C */ lui $a0, 0xff2c
/* C51D0 8012EAD0 3484FE7F */ ori $a0, $a0, 0xfe7f
/* C51D4 8012EAD4 25020020 */ addiu $v0, $t0, 0x20
/* C51D8 8012EAD8 AD220000 */ sw $v0, ($t1)
/* C51DC 8012EADC 25020028 */ addiu $v0, $t0, 0x28
/* C51E0 8012EAE0 AD050018 */ sw $a1, 0x18($t0)
/* C51E4 8012EAE4 AD03001C */ sw $v1, 0x1c($t0)
/* C51E8 8012EAE8 AD220000 */ sw $v0, ($t1)
/* C51EC 8012EAEC 25020030 */ addiu $v0, $t0, 0x30
/* C51F0 8012EAF0 AD060020 */ sw $a2, 0x20($t0)
/* C51F4 8012EAF4 AD040024 */ sw $a0, 0x24($t0)
/* C51F8 8012EAF8 AD220000 */ sw $v0, ($t1)
/* C51FC 8012EAFC 3C02FA00 */ lui $v0, 0xfa00
/* C5200 8012EB00 AD020028 */ sw $v0, 0x28($t0)
/* C5204 8012EB04 AD07002C */ sw $a3, 0x2c($t0)
.L8012EB08:
/* C5208 8012EB08 24020002 */ addiu $v0, $zero, 2
/* C520C 8012EB0C 16020034 */ bne $s0, $v0, .L8012EBE0
/* C5210 8012EB10 3C05E300 */ lui $a1, 0xe300
/* C5214 8012EB14 3C02E300 */ lui $v0, 0xe300
/* C5218 8012EB18 3C06800A */ lui $a2, %hi(gMasterGfxPos)
/* C521C 8012EB1C 24C6A66C */ addiu $a2, $a2, %lo(gMasterGfxPos)
/* C5220 8012EB20 8CC50000 */ lw $a1, ($a2)
/* C5224 8012EB24 34421001 */ ori $v0, $v0, 0x1001
/* C5228 8012EB28 00A0182D */ daddu $v1, $a1, $zero
/* C522C 8012EB2C 24A50008 */ addiu $a1, $a1, 8
/* C5230 8012EB30 ACC50000 */ sw $a1, ($a2)
/* C5234 8012EB34 AC620000 */ sw $v0, ($v1)
/* C5238 8012EB38 34028000 */ ori $v0, $zero, 0x8000
/* C523C 8012EB3C 17200005 */ bnez $t9, .L8012EB54
/* C5240 8012EB40 AC620004 */ sw $v0, 4($v1)
/* C5244 8012EB44 3C03F500 */ lui $v1, 0xf500
/* C5248 8012EB48 34630100 */ ori $v1, $v1, 0x100
/* C524C 8012EB4C 0804BAD8 */ j .L8012EB60
/* C5250 8012EB50 3C040703 */ lui $a0, 0x703
.L8012EB54:
/* C5254 8012EB54 3C03F500 */ lui $v1, 0xf500
/* C5258 8012EB58 34630100 */ ori $v1, $v1, 0x100
/* C525C 8012EB5C 3C04073F */ lui $a0, 0x73f
.L8012EB60:
/* C5260 8012EB60 3484C000 */ ori $a0, $a0, 0xc000
/* C5264 8012EB64 24A20008 */ addiu $v0, $a1, 8
/* C5268 8012EB68 ACC20000 */ sw $v0, ($a2)
/* C526C 8012EB6C 3C02FD10 */ lui $v0, 0xfd10
/* C5270 8012EB70 ACA20000 */ sw $v0, ($a1)
/* C5274 8012EB74 24A20010 */ addiu $v0, $a1, 0x10
/* C5278 8012EB78 ACAA0004 */ sw $t2, 4($a1)
/* C527C 8012EB7C ACC20000 */ sw $v0, ($a2)
/* C5280 8012EB80 3C02E800 */ lui $v0, 0xe800
/* C5284 8012EB84 ACA20008 */ sw $v0, 8($a1)
/* C5288 8012EB88 24A20018 */ addiu $v0, $a1, 0x18
/* C528C 8012EB8C ACA0000C */ sw $zero, 0xc($a1)
/* C5290 8012EB90 ACC20000 */ sw $v0, ($a2)
/* C5294 8012EB94 3C020700 */ lui $v0, 0x700
/* C5298 8012EB98 ACA20014 */ sw $v0, 0x14($a1)
/* C529C 8012EB9C 24A20020 */ addiu $v0, $a1, 0x20
/* C52A0 8012EBA0 ACA30010 */ sw $v1, 0x10($a1)
/* C52A4 8012EBA4 ACC20000 */ sw $v0, ($a2)
/* C52A8 8012EBA8 3C02E600 */ lui $v0, 0xe600
/* C52AC 8012EBAC ACA20018 */ sw $v0, 0x18($a1)
/* C52B0 8012EBB0 24A20028 */ addiu $v0, $a1, 0x28
/* C52B4 8012EBB4 ACA0001C */ sw $zero, 0x1c($a1)
/* C52B8 8012EBB8 ACC20000 */ sw $v0, ($a2)
/* C52BC 8012EBBC 3C02F000 */ lui $v0, 0xf000
/* C52C0 8012EBC0 ACA20020 */ sw $v0, 0x20($a1)
/* C52C4 8012EBC4 24A20030 */ addiu $v0, $a1, 0x30
/* C52C8 8012EBC8 ACA40024 */ sw $a0, 0x24($a1)
/* C52CC 8012EBCC ACC20000 */ sw $v0, ($a2)
/* C52D0 8012EBD0 3C02E700 */ lui $v0, 0xe700
/* C52D4 8012EBD4 ACA20028 */ sw $v0, 0x28($a1)
/* C52D8 8012EBD8 0804BB01 */ j .L8012EC04
/* C52DC 8012EBDC ACA0002C */ sw $zero, 0x2c($a1)
.L8012EBE0:
/* C52E0 8012EBE0 3C04800A */ lui $a0, %hi(gMasterGfxPos)
/* C52E4 8012EBE4 2484A66C */ addiu $a0, $a0, %lo(gMasterGfxPos)
/* C52E8 8012EBE8 8C820000 */ lw $v0, ($a0)
/* C52EC 8012EBEC 34A51001 */ ori $a1, $a1, 0x1001
/* C52F0 8012EBF0 0040182D */ daddu $v1, $v0, $zero
/* C52F4 8012EBF4 24420008 */ addiu $v0, $v0, 8
/* C52F8 8012EBF8 AC820000 */ sw $v0, ($a0)
/* C52FC 8012EBFC AC650000 */ sw $a1, ($v1)
/* C5300 8012EC00 AC600004 */ sw $zero, 4($v1)
.L8012EC04:
/* C5304 8012EC04 000B1400 */ sll $v0, $t3, 0x10
/* C5308 8012EC08 00021403 */ sra $v0, $v0, 0x10
/* C530C 8012EC0C AFA20014 */ sw $v0, 0x14($sp)
/* C5310 8012EC10 000C1400 */ sll $v0, $t4, 0x10
/* C5314 8012EC14 00021403 */ sra $v0, $v0, 0x10
/* C5318 8012EC18 AFA20018 */ sw $v0, 0x18($sp)
/* C531C 8012EC1C 31A2FFFF */ andi $v0, $t5, 0xffff
/* C5320 8012EC20 AFA2001C */ sw $v0, 0x1c($sp)
/* C5324 8012EC24 31C2FFFF */ andi $v0, $t6, 0xffff
/* C5328 8012EC28 AFA20020 */ sw $v0, 0x20($sp)
/* C532C 8012EC2C 31E2FFFF */ andi $v0, $t7, 0xffff
/* C5330 8012EC30 AFA20024 */ sw $v0, 0x24($sp)
/* C5334 8012EC34 3302FFFF */ andi $v0, $t8, 0xffff
/* C5338 8012EC38 0220202D */ daddu $a0, $s1, $zero
/* C533C 8012EC3C 0240282D */ daddu $a1, $s2, $zero
/* C5340 8012EC40 0260302D */ daddu $a2, $s3, $zero
/* C5344 8012EC44 0200382D */ daddu $a3, $s0, $zero
/* C5348 8012EC48 AFB90010 */ sw $t9, 0x10($sp)
/* C534C 8012EC4C 0C04BB25 */ jal draw_image_with_clipping
/* C5350 8012EC50 AFA20028 */ sw $v0, 0x28($sp)
/* C5354 8012EC54 3C04800A */ lui $a0, %hi(gMasterGfxPos)
/* C5358 8012EC58 2484A66C */ addiu $a0, $a0, %lo(gMasterGfxPos)
/* C535C 8012EC5C 8C830000 */ lw $v1, ($a0)
/* C5360 8012EC60 0060282D */ daddu $a1, $v1, $zero
/* C5364 8012EC64 24630008 */ addiu $v1, $v1, 8
/* C5368 8012EC68 AC830000 */ sw $v1, ($a0)
/* C536C 8012EC6C 3C03E700 */ lui $v1, 0xe700
/* C5370 8012EC70 ACA30000 */ sw $v1, ($a1)
/* C5374 8012EC74 ACA00004 */ sw $zero, 4($a1)
.L8012EC78:
/* C5378 8012EC78 8FBF0040 */ lw $ra, 0x40($sp)
/* C537C 8012EC7C 8FB3003C */ lw $s3, 0x3c($sp)
/* C5380 8012EC80 8FB20038 */ lw $s2, 0x38($sp)
/* C5384 8012EC84 8FB10034 */ lw $s1, 0x34($sp)
/* C5388 8012EC88 8FB00030 */ lw $s0, 0x30($sp)
/* C538C 8012EC8C 03E00008 */ jr $ra
/* C5390 8012EC90 27BD0048 */ addiu $sp, $sp, 0x48

View File

@ -1,279 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel draw_coin_sparkles
/* C720C 80130B0C 27BDFE78 */ addiu $sp, $sp, -0x188
/* C7210 80130B10 AFB20150 */ sw $s2, 0x150($sp)
/* C7214 80130B14 0080902D */ daddu $s2, $a0, $zero
/* C7218 80130B18 AFB70164 */ sw $s7, 0x164($sp)
/* C721C 80130B1C 3C170001 */ lui $s7, 1
/* C7220 80130B20 3C03800A */ lui $v1, %hi(gCurrentCamID)
/* C7224 80130B24 8463A634 */ lh $v1, %lo(gCurrentCamID)($v1)
/* C7228 80130B28 3C014334 */ lui $at, 0x4334
/* C722C 80130B2C 44816000 */ mtc1 $at, $f12
/* C7230 80130B30 36F71630 */ ori $s7, $s7, 0x1630
/* C7234 80130B34 AFBF016C */ sw $ra, 0x16c($sp)
/* C7238 80130B38 AFBE0168 */ sw $fp, 0x168($sp)
/* C723C 80130B3C AFB60160 */ sw $s6, 0x160($sp)
/* C7240 80130B40 AFB5015C */ sw $s5, 0x15c($sp)
/* C7244 80130B44 AFB40158 */ sw $s4, 0x158($sp)
/* C7248 80130B48 AFB30154 */ sw $s3, 0x154($sp)
/* C724C 80130B4C AFB1014C */ sw $s1, 0x14c($sp)
/* C7250 80130B50 AFB00148 */ sw $s0, 0x148($sp)
/* C7254 80130B54 F7B80180 */ sdc1 $f24, 0x180($sp)
/* C7258 80130B58 F7B60178 */ sdc1 $f22, 0x178($sp)
/* C725C 80130B5C F7B40170 */ sdc1 $f20, 0x170($sp)
/* C7260 80130B60 00031080 */ sll $v0, $v1, 2
/* C7264 80130B64 00431021 */ addu $v0, $v0, $v1
/* C7268 80130B68 00021080 */ sll $v0, $v0, 2
/* C726C 80130B6C 00431023 */ subu $v0, $v0, $v1
/* C7270 80130B70 000218C0 */ sll $v1, $v0, 3
/* C7274 80130B74 00431021 */ addu $v0, $v0, $v1
/* C7278 80130B78 000210C0 */ sll $v0, $v0, 3
/* C727C 80130B7C 3C038015 */ lui $v1, %hi(D_80155D8C)
/* C7280 80130B80 84635D8C */ lh $v1, %lo(D_80155D8C)($v1)
/* C7284 80130B84 3C01800B */ lui $at, %hi(gCameras+0x6C)
/* C7288 80130B88 00220821 */ addu $at, $at, $v0
/* C728C 80130B8C C4201DEC */ lwc1 $f0, %lo(gCameras+0x6C)($at)
/* C7290 80130B90 3C028015 */ lui $v0, %hi(D_80155D8E)
/* C7294 80130B94 84425D8E */ lh $v0, %lo(D_80155D8E)($v0)
/* C7298 80130B98 4483C000 */ mtc1 $v1, $f24
/* C729C 80130B9C 00000000 */ nop
/* C72A0 80130BA0 4680C620 */ cvt.s.w $f24, $f24
/* C72A4 80130BA4 3C038015 */ lui $v1, %hi(D_80155D90)
/* C72A8 80130BA8 84635D90 */ lh $v1, %lo(D_80155D90)($v1)
/* C72AC 80130BAC 4482A000 */ mtc1 $v0, $f20
/* C72B0 80130BB0 00000000 */ nop
/* C72B4 80130BB4 4680A520 */ cvt.s.w $f20, $f20
/* C72B8 80130BB8 4483B000 */ mtc1 $v1, $f22
/* C72BC 80130BBC 00000000 */ nop
/* C72C0 80130BC0 4680B5A0 */ cvt.s.w $f22, $f22
/* C72C4 80130BC4 0C00A6C9 */ jal clamp_angle
/* C72C8 80130BC8 46006301 */ sub.s $f12, $f12, $f0
/* C72CC 80130BCC 27A40018 */ addiu $a0, $sp, 0x18
/* C72D0 80130BD0 4405C000 */ mfc1 $a1, $f24
/* C72D4 80130BD4 4406A000 */ mfc1 $a2, $f20
/* C72D8 80130BD8 4407B000 */ mfc1 $a3, $f22
/* C72DC 80130BDC 0C019E40 */ jal guTranslateF
/* C72E0 80130BE0 46000506 */ mov.s $f20, $f0
/* C72E4 80130BE4 C642000C */ lwc1 $f2, 0xc($s2)
/* C72E8 80130BE8 3C014140 */ lui $at, 0x4140
/* C72EC 80130BEC 44810000 */ mtc1 $at, $f0
/* C72F0 80130BF0 27B10058 */ addiu $s1, $sp, 0x58
/* C72F4 80130BF4 46001080 */ add.s $f2, $f2, $f0
/* C72F8 80130BF8 8E450008 */ lw $a1, 8($s2)
/* C72FC 80130BFC 8E470010 */ lw $a3, 0x10($s2)
/* C7300 80130C00 44061000 */ mfc1 $a2, $f2
/* C7304 80130C04 0C019E40 */ jal guTranslateF
/* C7308 80130C08 0220202D */ daddu $a0, $s1, $zero
/* C730C 80130C0C 27B00098 */ addiu $s0, $sp, 0x98
/* C7310 80130C10 4405A000 */ mfc1 $a1, $f20
/* C7314 80130C14 44800000 */ mtc1 $zero, $f0
/* C7318 80130C18 3C073F80 */ lui $a3, 0x3f80
/* C731C 80130C1C 44060000 */ mfc1 $a2, $f0
/* C7320 80130C20 0200202D */ daddu $a0, $s0, $zero
/* C7324 80130C24 0C019EC8 */ jal guRotateF
/* C7328 80130C28 AFA60010 */ sw $a2, 0x10($sp)
/* C732C 80130C2C 27A40018 */ addiu $a0, $sp, 0x18
/* C7330 80130C30 0200282D */ daddu $a1, $s0, $zero
/* C7334 80130C34 0C019D80 */ jal guMtxCatF
/* C7338 80130C38 0200302D */ daddu $a2, $s0, $zero
/* C733C 80130C3C 0200202D */ daddu $a0, $s0, $zero
/* C7340 80130C40 0220282D */ daddu $a1, $s1, $zero
/* C7344 80130C44 27B100D8 */ addiu $s1, $sp, 0xd8
/* C7348 80130C48 0C019D80 */ jal guMtxCatF
/* C734C 80130C4C 0220302D */ daddu $a2, $s1, $zero
/* C7350 80130C50 0220202D */ daddu $a0, $s1, $zero
/* C7354 80130C54 3C138007 */ lui $s3, %hi(gMatrixListPos)
/* C7358 80130C58 267341F0 */ addiu $s3, $s3, %lo(gMatrixListPos)
/* C735C 80130C5C 3C14800A */ lui $s4, %hi(gDisplayContext)
/* C7360 80130C60 2694A674 */ addiu $s4, $s4, %lo(gDisplayContext)
/* C7364 80130C64 96650000 */ lhu $a1, ($s3)
/* C7368 80130C68 8E820000 */ lw $v0, ($s4)
/* C736C 80130C6C 00052980 */ sll $a1, $a1, 6
/* C7370 80130C70 00B72821 */ addu $a1, $a1, $s7
/* C7374 80130C74 0C019D40 */ jal guMtxF2L
/* C7378 80130C78 00452821 */ addu $a1, $v0, $a1
/* C737C 80130C7C 3C08DA38 */ lui $t0, 0xda38
/* C7380 80130C80 35080002 */ ori $t0, $t0, 2
/* C7384 80130C84 3C0AE300 */ lui $t2, 0xe300
/* C7388 80130C88 354A0A01 */ ori $t2, $t2, 0xa01
/* C738C 80130C8C 3C0BD9C0 */ lui $t3, 0xd9c0
/* C7390 80130C90 356BF9FA */ ori $t3, $t3, 0xf9fa
/* C7394 80130C94 3C0DD9FF */ lui $t5, 0xd9ff
/* C7398 80130C98 35ADFFFF */ ori $t5, $t5, 0xffff
/* C739C 80130C9C 3C0C0022 */ lui $t4, 0x22
/* C73A0 80130CA0 358C0005 */ ori $t4, $t4, 5
/* C73A4 80130CA4 3C0EDC08 */ lui $t6, 0xdc08
/* C73A8 80130CA8 35CE060A */ ori $t6, $t6, 0x60a
/* C73AC 80130CAC 3C0FDC08 */ lui $t7, 0xdc08
/* C73B0 80130CB0 35EF090A */ ori $t7, $t7, 0x90a
/* C73B4 80130CB4 3C15D700 */ lui $s5, 0xd700
/* C73B8 80130CB8 36B50002 */ ori $s5, $s5, 2
/* C73BC 80130CBC 3C16E300 */ lui $s6, 0xe300
/* C73C0 80130CC0 36D60F00 */ ori $s6, $s6, 0xf00
/* C73C4 80130CC4 3C18E300 */ lui $t8, 0xe300
/* C73C8 80130CC8 37180C00 */ ori $t8, $t8, 0xc00
/* C73CC 80130CCC 3C19E300 */ lui $t9, 0xe300
/* C73D0 80130CD0 37391201 */ ori $t9, $t9, 0x1201
/* C73D4 80130CD4 3C1EE300 */ lui $fp, 0xe300
/* C73D8 80130CD8 37DE1801 */ ori $fp, $fp, 0x1801
/* C73DC 80130CDC AFAA0140 */ sw $t2, 0x140($sp)
/* C73E0 80130CE0 3C0AE300 */ lui $t2, 0xe300
/* C73E4 80130CE4 354A0D01 */ ori $t2, $t2, 0xd01
/* C73E8 80130CE8 AFAA0130 */ sw $t2, 0x130($sp)
/* C73EC 80130CEC 3C0AE300 */ lui $t2, 0xe300
/* C73F0 80130CF0 354A1402 */ ori $t2, $t2, 0x1402
/* C73F4 80130CF4 AFAA0134 */ sw $t2, 0x134($sp)
/* C73F8 80130CF8 3C0AE300 */ lui $t2, 0xe300
/* C73FC 80130CFC 354A1700 */ ori $t2, $t2, 0x1700
/* C7400 80130D00 AFAA0138 */ sw $t2, 0x138($sp)
/* C7404 80130D04 3C0AE200 */ lui $t2, 0xe200
/* C7408 80130D08 354A1E01 */ ori $t2, $t2, 0x1e01
/* C740C 80130D0C 0000202D */ daddu $a0, $zero, $zero
/* C7410 80130D10 3C10800A */ lui $s0, %hi(gMasterGfxPos)
/* C7414 80130D14 2610A66C */ addiu $s0, $s0, %lo(gMasterGfxPos)
/* C7418 80130D18 AFAA013C */ sw $t2, 0x13c($sp)
/* C741C 80130D1C 8E030000 */ lw $v1, ($s0)
/* C7420 80130D20 96620000 */ lhu $v0, ($s3)
/* C7424 80130D24 0060482D */ daddu $t1, $v1, $zero
/* C7428 80130D28 24630008 */ addiu $v1, $v1, 8
/* C742C 80130D2C AE030000 */ sw $v1, ($s0)
/* C7430 80130D30 AD280000 */ sw $t0, ($t1)
/* C7434 80130D34 24480001 */ addiu $t0, $v0, 1
/* C7438 80130D38 3042FFFF */ andi $v0, $v0, 0xffff
/* C743C 80130D3C 00021180 */ sll $v0, $v0, 6
/* C7440 80130D40 A6680000 */ sh $t0, ($s3)
/* C7444 80130D44 8E880000 */ lw $t0, ($s4)
/* C7448 80130D48 00571021 */ addu $v0, $v0, $s7
/* C744C 80130D4C 01024021 */ addu $t0, $t0, $v0
/* C7450 80130D50 24620008 */ addiu $v0, $v1, 8
/* C7454 80130D54 AD280004 */ sw $t0, 4($t1)
/* C7458 80130D58 AE020000 */ sw $v0, ($s0)
/* C745C 80130D5C 24620010 */ addiu $v0, $v1, 0x10
/* C7460 80130D60 8FAA0140 */ lw $t2, 0x140($sp)
/* C7464 80130D64 3C088015 */ lui $t0, %hi(D_8014C6D0)
/* C7468 80130D68 2508C6D0 */ addiu $t0, $t0, %lo(D_8014C6D0)
/* C746C 80130D6C AC6A0000 */ sw $t2, ($v1)
/* C7470 80130D70 AC600004 */ sw $zero, 4($v1)
/* C7474 80130D74 AE020000 */ sw $v0, ($s0)
/* C7478 80130D78 24620018 */ addiu $v0, $v1, 0x18
/* C747C 80130D7C AC6B0008 */ sw $t3, 8($v1)
/* C7480 80130D80 AC60000C */ sw $zero, 0xc($v1)
/* C7484 80130D84 AE020000 */ sw $v0, ($s0)
/* C7488 80130D88 24620020 */ addiu $v0, $v1, 0x20
/* C748C 80130D8C AC6D0010 */ sw $t5, 0x10($v1)
/* C7490 80130D90 AC6C0014 */ sw $t4, 0x14($v1)
/* C7494 80130D94 AE020000 */ sw $v0, ($s0)
/* C7498 80130D98 3C02DB02 */ lui $v0, 0xdb02
/* C749C 80130D9C AC620018 */ sw $v0, 0x18($v1)
/* C74A0 80130DA0 24020018 */ addiu $v0, $zero, 0x18
/* C74A4 80130DA4 AC62001C */ sw $v0, 0x1c($v1)
/* C74A8 80130DA8 24620028 */ addiu $v0, $v1, 0x28
/* C74AC 80130DAC AE020000 */ sw $v0, ($s0)
/* C74B0 80130DB0 24620030 */ addiu $v0, $v1, 0x30
/* C74B4 80130DB4 AC680024 */ sw $t0, 0x24($v1)
/* C74B8 80130DB8 2508FFF8 */ addiu $t0, $t0, -8
/* C74BC 80130DBC AC6E0020 */ sw $t6, 0x20($v1)
/* C74C0 80130DC0 AE020000 */ sw $v0, ($s0)
/* C74C4 80130DC4 24620038 */ addiu $v0, $v1, 0x38
/* C74C8 80130DC8 AC6F0028 */ sw $t7, 0x28($v1)
/* C74CC 80130DCC AC68002C */ sw $t0, 0x2c($v1)
/* C74D0 80130DD0 AE020000 */ sw $v0, ($s0)
/* C74D4 80130DD4 2402FFFF */ addiu $v0, $zero, -1
/* C74D8 80130DD8 AC750030 */ sw $s5, 0x30($v1)
/* C74DC 80130DDC AC620034 */ sw $v0, 0x34($v1)
/* C74E0 80130DE0 24620040 */ addiu $v0, $v1, 0x40
/* C74E4 80130DE4 AE020000 */ sw $v0, ($s0)
/* C74E8 80130DE8 24620048 */ addiu $v0, $v1, 0x48
/* C74EC 80130DEC AC760038 */ sw $s6, 0x38($v1)
/* C74F0 80130DF0 AC60003C */ sw $zero, 0x3c($v1)
/* C74F4 80130DF4 AE020000 */ sw $v0, ($s0)
/* C74F8 80130DF8 3C020008 */ lui $v0, 8
/* C74FC 80130DFC AC780040 */ sw $t8, 0x40($v1)
/* C7500 80130E00 AC620044 */ sw $v0, 0x44($v1)
/* C7504 80130E04 24620050 */ addiu $v0, $v1, 0x50
/* C7508 80130E08 AE020000 */ sw $v0, ($s0)
/* C750C 80130E0C 24022000 */ addiu $v0, $zero, 0x2000
/* C7510 80130E10 AC62004C */ sw $v0, 0x4c($v1)
/* C7514 80130E14 240200C0 */ addiu $v0, $zero, 0xc0
/* C7518 80130E18 AC790048 */ sw $t9, 0x48($v1)
/* C751C 80130E1C AC7E0050 */ sw $fp, 0x50($v1)
/* C7520 80130E20 AC620054 */ sw $v0, 0x54($v1)
/* C7524 80130E24 8FAA0130 */ lw $t2, 0x130($sp)
/* C7528 80130E28 27A50118 */ addiu $a1, $sp, 0x118
/* C752C 80130E2C AC6A0058 */ sw $t2, 0x58($v1)
/* C7530 80130E30 AC60005C */ sw $zero, 0x5c($v1)
/* C7534 80130E34 8FAA0134 */ lw $t2, 0x134($sp)
/* C7538 80130E38 24020C00 */ addiu $v0, $zero, 0xc00
/* C753C 80130E3C AC6A0060 */ sw $t2, 0x60($v1)
/* C7540 80130E40 AC620064 */ sw $v0, 0x64($v1)
/* C7544 80130E44 8FAA0138 */ lw $t2, 0x138($sp)
/* C7548 80130E48 0080302D */ daddu $a2, $a0, $zero
/* C754C 80130E4C AC6A0068 */ sw $t2, 0x68($v1)
/* C7550 80130E50 AC60006C */ sw $zero, 0x6c($v1)
/* C7554 80130E54 8FAA013C */ lw $t2, 0x13c($sp)
/* C7558 80130E58 0220382D */ daddu $a3, $s1, $zero
/* C755C 80130E5C AC6A0070 */ sw $t2, 0x70($v1)
/* C7560 80130E60 AC600074 */ sw $zero, 0x74($v1)
/* C7564 80130E64 8E48004C */ lw $t0, 0x4c($s2)
/* C7568 80130E68 24620058 */ addiu $v0, $v1, 0x58
/* C756C 80130E6C AE020000 */ sw $v0, ($s0)
/* C7570 80130E70 AFA80118 */ sw $t0, 0x118($sp)
/* C7574 80130E74 8E480050 */ lw $t0, 0x50($s2)
/* C7578 80130E78 24620060 */ addiu $v0, $v1, 0x60
/* C757C 80130E7C AE020000 */ sw $v0, ($s0)
/* C7580 80130E80 AFA8011C */ sw $t0, 0x11c($sp)
/* C7584 80130E84 96480056 */ lhu $t0, 0x56($s2)
/* C7588 80130E88 24620068 */ addiu $v0, $v1, 0x68
/* C758C 80130E8C AE020000 */ sw $v0, ($s0)
/* C7590 80130E90 A7A80120 */ sh $t0, 0x120($sp)
/* C7594 80130E94 9648005A */ lhu $t0, 0x5a($s2)
/* C7598 80130E98 24620070 */ addiu $v0, $v1, 0x70
/* C759C 80130E9C AE020000 */ sw $v0, ($s0)
/* C75A0 80130EA0 A7A80122 */ sh $t0, 0x122($sp)
/* C75A4 80130EA4 8E420054 */ lw $v0, 0x54($s2)
/* C75A8 80130EA8 24630078 */ addiu $v1, $v1, 0x78
/* C75AC 80130EAC AE030000 */ sw $v1, ($s0)
/* C75B0 80130EB0 00021023 */ negu $v0, $v0
/* C75B4 80130EB4 00021FC2 */ srl $v1, $v0, 0x1f
/* C75B8 80130EB8 00431021 */ addu $v0, $v0, $v1
/* C75BC 80130EBC 00021043 */ sra $v0, $v0, 1
/* C75C0 80130EC0 A7A20124 */ sh $v0, 0x124($sp)
/* C75C4 80130EC4 8E420058 */ lw $v0, 0x58($s2)
/* C75C8 80130EC8 240300FF */ addiu $v1, $zero, 0xff
/* C75CC 80130ECC A3A30128 */ sb $v1, 0x128($sp)
/* C75D0 80130ED0 00021FC2 */ srl $v1, $v0, 0x1f
/* C75D4 80130ED4 00431021 */ addu $v0, $v0, $v1
/* C75D8 80130ED8 00021043 */ sra $v0, $v0, 1
/* C75DC 80130EDC 0C04EBDC */ jal fold_appendGfx_component
/* C75E0 80130EE0 A7A20126 */ sh $v0, 0x126($sp)
/* C75E4 80130EE4 3C03D838 */ lui $v1, 0xd838
/* C75E8 80130EE8 8E020000 */ lw $v0, ($s0)
/* C75EC 80130EEC 34630002 */ ori $v1, $v1, 2
/* C75F0 80130EF0 0040202D */ daddu $a0, $v0, $zero
/* C75F4 80130EF4 24420008 */ addiu $v0, $v0, 8
/* C75F8 80130EF8 AE020000 */ sw $v0, ($s0)
/* C75FC 80130EFC AC830000 */ sw $v1, ($a0)
/* C7600 80130F00 24030040 */ addiu $v1, $zero, 0x40
/* C7604 80130F04 AC830004 */ sw $v1, 4($a0)
/* C7608 80130F08 24430008 */ addiu $v1, $v0, 8
/* C760C 80130F0C AE030000 */ sw $v1, ($s0)
/* C7610 80130F10 3C03E700 */ lui $v1, 0xe700
/* C7614 80130F14 AC430000 */ sw $v1, ($v0)
/* C7618 80130F18 AC400004 */ sw $zero, 4($v0)
/* C761C 80130F1C 8FBF016C */ lw $ra, 0x16c($sp)
/* C7620 80130F20 8FBE0168 */ lw $fp, 0x168($sp)
/* C7624 80130F24 8FB70164 */ lw $s7, 0x164($sp)
/* C7628 80130F28 8FB60160 */ lw $s6, 0x160($sp)
/* C762C 80130F2C 8FB5015C */ lw $s5, 0x15c($sp)
/* C7630 80130F30 8FB40158 */ lw $s4, 0x158($sp)
/* C7634 80130F34 8FB30154 */ lw $s3, 0x154($sp)
/* C7638 80130F38 8FB20150 */ lw $s2, 0x150($sp)
/* C763C 80130F3C 8FB1014C */ lw $s1, 0x14c($sp)
/* C7640 80130F40 8FB00148 */ lw $s0, 0x148($sp)
/* C7644 80130F44 D7B80180 */ ldc1 $f24, 0x180($sp)
/* C7648 80130F48 D7B60178 */ ldc1 $f22, 0x178($sp)
/* C764C 80130F4C D7B40170 */ ldc1 $f20, 0x170($sp)
/* C7650 80130F50 03E00008 */ jr $ra
/* C7654 80130F54 27BD0188 */ addiu $sp, $sp, 0x188

View File

@ -1,194 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel jtbl_80150E60
.word .L801367A4_CCEA4, .L801367A4_CCEA4, .L801369B4_CD0B4, .L801369B4_CD0B4, .L801369B4_CD0B4, .L801369B4_CD0B4, .L801369B4_CD0B4, .L801369B4_CD0B4, .L801367A4_CCEA4, .L801367A4_CCEA4, .L801369B4_CD0B4, .L8013694C_CD04C, .L8013694C_CD04C, 0, 0, 0
.section .text
glabel func_8013673C
/* CCE3C 8013673C 27BDFFD0 */ addiu $sp, $sp, -0x30
/* CCE40 80136740 AFB1001C */ sw $s1, 0x1c($sp)
/* CCE44 80136744 0080882D */ daddu $s1, $a0, $zero
/* CCE48 80136748 AFB20020 */ sw $s2, 0x20($sp)
/* CCE4C 8013674C 00A0902D */ daddu $s2, $a1, $zero
/* CCE50 80136750 AFB30024 */ sw $s3, 0x24($sp)
/* CCE54 80136754 3C048008 */ lui $a0, %hi(gItemTable)
/* CCE58 80136758 248478E0 */ addiu $a0, $a0, %lo(gItemTable)
/* CCE5C 8013675C AFBF0028 */ sw $ra, 0x28($sp)
/* CCE60 80136760 AFB00018 */ sw $s0, 0x18($sp)
/* CCE64 80136764 86230018 */ lh $v1, 0x18($s1)
/* CCE68 80136768 9222001A */ lbu $v0, 0x1a($s1)
/* CCE6C 8013676C 00031940 */ sll $v1, $v1, 5
/* CCE70 80136770 00642021 */ addu $a0, $v1, $a0
/* CCE74 80136774 2442FFFE */ addiu $v0, $v0, -2
/* CCE78 80136778 00021600 */ sll $v0, $v0, 0x18
/* CCE7C 8013677C 00021E03 */ sra $v1, $v0, 0x18
/* CCE80 80136780 2C62000D */ sltiu $v0, $v1, 0xd
/* CCE84 80136784 1040008B */ beqz $v0, .L801369B4_CD0B4
/* CCE88 80136788 00C0982D */ daddu $s3, $a2, $zero
/* CCE8C 8013678C 00031080 */ sll $v0, $v1, 2
/* CCE90 80136790 3C018015 */ lui $at, %hi(jtbl_80150E60)
/* CCE94 80136794 00220821 */ addu $at, $at, $v0
/* CCE98 80136798 8C220E60 */ lw $v0, %lo(jtbl_80150E60)($at)
/* CCE9C 8013679C 00400008 */ jr $v0
/* CCEA0 801367A0 00000000 */ nop
.L801367A4_CCEA4:
/* CCEA4 801367A4 94820018 */ lhu $v0, 0x18($a0)
/* CCEA8 801367A8 30420040 */ andi $v0, $v0, 0x40
/* CCEAC 801367AC 1440001C */ bnez $v0, .L80136820
/* CCEB0 801367B0 3C030400 */ lui $v1, 0x400
/* CCEB4 801367B4 8E220000 */ lw $v0, ($s1)
/* CCEB8 801367B8 00431024 */ and $v0, $v0, $v1
/* CCEBC 801367BC 10400005 */ beqz $v0, .L801367D4
/* CCEC0 801367C0 3C10001D */ lui $s0, 0x1d
/* CCEC4 801367C4 96220006 */ lhu $v0, 6($s1)
/* CCEC8 801367C8 30420004 */ andi $v0, $v0, 4
/* CCECC 801367CC 50400002 */ beql $v0, $zero, .L801367D8
/* CCED0 801367D0 3610005A */ ori $s0, $s0, 0x5a
.L801367D4:
/* CCED4 801367D4 36100058 */ ori $s0, $s0, 0x58
.L801367D8:
/* CCED8 801367D8 8C840000 */ lw $a0, ($a0)
/* CCEDC 801367DC 0C0496CF */ jal set_message_msg
/* CCEE0 801367E0 0000282D */ daddu $a1, $zero, $zero
/* CCEE4 801367E4 96230006 */ lhu $v1, 6($s1)
/* CCEE8 801367E8 30620010 */ andi $v0, $v1, 0x10
/* CCEEC 801367EC 10400003 */ beqz $v0, .L801367FC
/* CCEF0 801367F0 30620020 */ andi $v0, $v1, 0x20
/* CCEF4 801367F4 3C10001D */ lui $s0, 0x1d
/* CCEF8 801367F8 3610005D */ ori $s0, $s0, 0x5d
.L801367FC:
/* CCEFC 801367FC 10400003 */ beqz $v0, .L8013680C
/* CCF00 80136800 30620040 */ andi $v0, $v1, 0x40
/* CCF04 80136804 3C10001D */ lui $s0, 0x1d
/* CCF08 80136808 3610005E */ ori $s0, $s0, 0x5e
.L8013680C:
/* CCF0C 8013680C 1040001E */ beqz $v0, .L80136888
/* CCF10 80136810 00000000 */ nop
/* CCF14 80136814 3C10001D */ lui $s0, 0x1d
/* CCF18 80136818 0804DA22 */ j .L80136888
/* CCF1C 8013681C 3610005C */ ori $s0, $s0, 0x5c
.L80136820:
/* CCF20 80136820 8E220000 */ lw $v0, ($s1)
/* CCF24 80136824 00431024 */ and $v0, $v0, $v1
/* CCF28 80136828 10400005 */ beqz $v0, .L80136840
/* CCF2C 8013682C 3C10001D */ lui $s0, 0x1d
/* CCF30 80136830 96220006 */ lhu $v0, 6($s1)
/* CCF34 80136834 30420004 */ andi $v0, $v0, 4
/* CCF38 80136838 50400002 */ beql $v0, $zero, .L80136844
/* CCF3C 8013683C 3610005B */ ori $s0, $s0, 0x5b
.L80136840:
/* CCF40 80136840 36100059 */ ori $s0, $s0, 0x59
.L80136844:
/* CCF44 80136844 96230006 */ lhu $v1, 6($s1)
/* CCF48 80136848 30620010 */ andi $v0, $v1, 0x10
/* CCF4C 8013684C 10400003 */ beqz $v0, .L8013685C
/* CCF50 80136850 30620020 */ andi $v0, $v1, 0x20
/* CCF54 80136854 3C10001D */ lui $s0, 0x1d
/* CCF58 80136858 3610005D */ ori $s0, $s0, 0x5d
.L8013685C:
/* CCF5C 8013685C 10400003 */ beqz $v0, .L8013686C
/* CCF60 80136860 30620040 */ andi $v0, $v1, 0x40
/* CCF64 80136864 3C10001D */ lui $s0, 0x1d
/* CCF68 80136868 3610005E */ ori $s0, $s0, 0x5e
.L8013686C:
/* CCF6C 8013686C 10400003 */ beqz $v0, .L8013687C
/* CCF70 80136870 00000000 */ nop
/* CCF74 80136874 3C10001D */ lui $s0, 0x1d
/* CCF78 80136878 3610005C */ ori $s0, $s0, 0x5c
.L8013687C:
/* CCF7C 8013687C 8C840000 */ lw $a0, ($a0)
/* CCF80 80136880 0C0496CF */ jal set_message_msg
/* CCF84 80136884 0000282D */ daddu $a1, $zero, $zero
.L80136888:
/* CCF88 80136888 0C04992C */ jal get_msg_lines
/* CCF8C 8013688C 0200202D */ daddu $a0, $s0, $zero
/* CCF90 80136890 2442FFFF */ addiu $v0, $v0, -1
/* CCF94 80136894 86250018 */ lh $a1, 0x18($s1)
/* CCF98 80136898 00021040 */ sll $v0, $v0, 1
/* CCF9C 8013689C 00051940 */ sll $v1, $a1, 5
/* CCFA0 801368A0 3C048008 */ lui $a0, %hi(gItemTable+0x18)
/* CCFA4 801368A4 00832021 */ addu $a0, $a0, $v1
/* CCFA8 801368A8 948478F8 */ lhu $a0, %lo(gItemTable+0x18)($a0)
/* CCFAC 801368AC 3C068015 */ lui $a2, %hi(D_8014C6E4)
/* CCFB0 801368B0 00C23021 */ addu $a2, $a2, $v0
/* CCFB4 801368B4 84C6C6E4 */ lh $a2, %lo(D_8014C6E4)($a2)
/* CCFB8 801368B8 30830040 */ andi $v1, $a0, 0x40
/* CCFBC 801368BC 5460000E */ bnel $v1, $zero, .L801368F8
/* CCFC0 801368C0 0200202D */ daddu $a0, $s0, $zero
/* CCFC4 801368C4 30820008 */ andi $v0, $a0, 8
/* CCFC8 801368C8 5440000B */ bnel $v0, $zero, .L801368F8
/* CCFCC 801368CC 0200202D */ daddu $a0, $s0, $zero
/* CCFD0 801368D0 2402015C */ addiu $v0, $zero, 0x15c
/* CCFD4 801368D4 10A20007 */ beq $a1, $v0, .L801368F4
/* CCFD8 801368D8 30820020 */ andi $v0, $a0, 0x20
/* CCFDC 801368DC 14400006 */ bnez $v0, .L801368F8
/* CCFE0 801368E0 0200202D */ daddu $a0, $s0, $zero
/* CCFE4 801368E4 96220006 */ lhu $v0, 6($s1)
/* CCFE8 801368E8 30420030 */ andi $v0, $v0, 0x30
/* CCFEC 801368EC 1040000B */ beqz $v0, .L8013691C
/* CCFF0 801368F0 26450028 */ addiu $a1, $s2, 0x28
.L801368F4:
/* CCFF4 801368F4 0200202D */ daddu $a0, $s0, $zero
.L801368F8:
/* CCFF8 801368F8 2645000F */ addiu $a1, $s2, 0xf
/* CCFFC 801368FC 02663021 */ addu $a2, $s3, $a2
/* CD000 80136900 240700FF */ addiu $a3, $zero, 0xff
/* CD004 80136904 2402002F */ addiu $v0, $zero, 0x2f
/* CD008 80136908 AFA20010 */ sw $v0, 0x10($sp)
/* CD00C 8013690C 0C04993B */ jal draw_msg
/* CD010 80136910 AFA00014 */ sw $zero, 0x14($sp)
/* CD014 80136914 0804DA6D */ j .L801369B4_CD0B4
/* CD018 80136918 00000000 */ nop
.L8013691C:
/* CD01C 8013691C 02663021 */ addu $a2, $s3, $a2
/* CD020 80136920 240700FF */ addiu $a3, $zero, 0xff
/* CD024 80136924 2402002F */ addiu $v0, $zero, 0x2f
/* CD028 80136928 AFA20010 */ sw $v0, 0x10($sp)
/* CD02C 8013692C 0C04993B */ jal draw_msg
/* CD030 80136930 AFA00014 */ sw $zero, 0x14($sp)
/* CD034 80136934 96220006 */ lhu $v0, 6($s1)
/* CD038 80136938 30420030 */ andi $v0, $v0, 0x30
/* CD03C 8013693C 1440001D */ bnez $v0, .L801369B4_CD0B4
/* CD040 80136940 26450014 */ addiu $a1, $s2, 0x14
/* CD044 80136944 0804DA65 */ j .L80136994
/* CD048 80136948 00000000 */ nop
.L8013694C_CD04C:
/* CD04C 8013694C 3C028015 */ lui $v0, %hi(D_801568EC)
/* CD050 80136950 8C4268EC */ lw $v0, %lo(D_801568EC)($v0)
/* CD054 80136954 00021140 */ sll $v0, $v0, 5
/* CD058 80136958 3C048008 */ lui $a0, %hi(gItemTable)
/* CD05C 8013695C 00822021 */ addu $a0, $a0, $v0
/* CD060 80136960 8C8478E0 */ lw $a0, %lo(gItemTable)($a0)
/* CD064 80136964 0C0496CF */ jal set_message_msg
/* CD068 80136968 0000282D */ daddu $a1, $zero, $zero
/* CD06C 8013696C 3C04001D */ lui $a0, 0x1d
/* CD070 80136970 3484005F */ ori $a0, $a0, 0x5f
/* CD074 80136974 26450028 */ addiu $a1, $s2, 0x28
/* CD078 80136978 26660004 */ addiu $a2, $s3, 4
/* CD07C 8013697C 240700FF */ addiu $a3, $zero, 0xff
/* CD080 80136980 2402002F */ addiu $v0, $zero, 0x2f
/* CD084 80136984 AFA20010 */ sw $v0, 0x10($sp)
/* CD088 80136988 0C04993B */ jal draw_msg
/* CD08C 8013698C AFA00014 */ sw $zero, 0x14($sp)
/* CD090 80136990 26450014 */ addiu $a1, $s2, 0x14
.L80136994:
/* CD094 80136994 3C108015 */ lui $s0, %hi(D_801568E0)
/* CD098 80136998 261068E0 */ addiu $s0, $s0, %lo(D_801568E0)
/* CD09C 8013699C 8E040000 */ lw $a0, ($s0)
/* CD0A0 801369A0 0C051261 */ jal hud_element_set_render_pos
/* CD0A4 801369A4 26660014 */ addiu $a2, $s3, 0x14
/* CD0A8 801369A8 8E040000 */ lw $a0, ($s0)
/* CD0AC 801369AC 0C0511F1 */ jal hud_element_draw_next
/* CD0B0 801369B0 00000000 */ nop
.L801369B4_CD0B4:
/* CD0B4 801369B4 8FBF0028 */ lw $ra, 0x28($sp)
/* CD0B8 801369B8 8FB30024 */ lw $s3, 0x24($sp)
/* CD0BC 801369BC 8FB20020 */ lw $s2, 0x20($sp)
/* CD0C0 801369C0 8FB1001C */ lw $s1, 0x1c($sp)
/* CD0C4 801369C4 8FB00018 */ lw $s0, 0x18($sp)
/* CD0C8 801369C8 03E00008 */ jr $ra
/* CD0CC 801369CC 27BD0030 */ addiu $sp, $sp, 0x30

View File

@ -1,494 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel jtbl_80150A98
.word .L80131468_C7B68, .L80131478_C7B78, .L80131478_C7B78, .L80131478_C7B78, .L80131478_C7B78, .L80131468_C7B68, .L80131468_C7B68, .L80131468_C7B68, .L80131468_C7B68, .L80131478_C7B78, .L80131468_C7B68, .L80131468_C7B68, .L80131478_C7B78, .L80131468_C7B68, .L80131468_C7B68, .L80131468_C7B68, .L80131478_C7B78, .L80131468_C7B68, .L80131468_C7B68, .L80131478_C7B78, .L80131478_C7B78, .L80131468_C7B68, .L80131468_C7B68, 0
dlabel jtbl_80150AF8
.word .L80131620_C7D20, .L8013162C_C7D2C, .L80131638_C7D38, .L8013162C_C7D2C, .L80131644_C7D44, .L80131660_C7D60, .L80131674_C7D74, .L80131688_C7D88, .L8013169C_C7D9C, .L801316B0_C7DB0, .L801316C4_C7DC4, .L801316E0_C7DE0, .L80131708_C7E08, .L80131714_C7E14, .L80131728_C7E28, .L8013173C_C7E3C, .L80131750_C7E50, .L80131768_C7E68, .L80131784_C7E84, .L801317A0_C7EA0, .L801318B4_C7FB4, .L801318C4_C7FC4, .L801318E4_C7FE4, .L801317BC_C7EBC, .L801317E8_C7EE8, .L8013181C_C7F1C, .L80131850_C7F50, .L80131878_C7F78
dlabel jtbl_80150B68
.word .L8013192C_C802C, .L80131A0C_C810C, .L80131A0C_C810C, .L8013192C_C802C, .L80131A0C_C810C, .L80131A0C_C810C, .L80131A0C_C810C, .L80131A0C_C810C, .L80131A0C_C810C, .L80131A0C_C810C, .L80131A0C_C810C, .L80131A0C_C810C, .L8013192C_C802C, .L80131A0C_C810C, .L80131A0C_C810C, .L80131A0C_C810C, .L8013192C_C802C, .L80131A0C_C810C, .L80131A0C_C810C, .L80131A0C_C810C, .L8013192C_C802C, 0
.section .text
glabel make_item_entity
/* C7AF4 801313F4 27BDFFC8 */ addiu $sp, $sp, -0x38
/* C7AF8 801313F8 AFB20028 */ sw $s2, 0x28($sp)
/* C7AFC 801313FC 0080902D */ daddu $s2, $a0, $zero
/* C7B00 80131400 AFB10024 */ sw $s1, 0x24($sp)
/* C7B04 80131404 8FB10054 */ lw $s1, 0x54($sp)
/* C7B08 80131408 3C02F8D8 */ lui $v0, 0xf8d8
/* C7B0C 8013140C AFB3002C */ sw $s3, 0x2c($sp)
/* C7B10 80131410 8FB30048 */ lw $s3, 0x48($sp)
/* C7B14 80131414 3442F200 */ ori $v0, $v0, 0xf200
/* C7B18 80131418 AFBF0034 */ sw $ra, 0x34($sp)
/* C7B1C 8013141C AFB40030 */ sw $s4, 0x30($sp)
/* C7B20 80131420 AFB00020 */ sw $s0, 0x20($sp)
/* C7B24 80131424 AFA5003C */ sw $a1, 0x3c($sp)
/* C7B28 80131428 AFA60040 */ sw $a2, 0x40($sp)
/* C7B2C 8013142C 0051102A */ slt $v0, $v0, $s1
/* C7B30 80131430 14400004 */ bnez $v0, .L80131444
/* C7B34 80131434 AFA70044 */ sw $a3, 0x44($sp)
/* C7B38 80131438 3C0207BF */ lui $v0, 0x7bf
/* C7B3C 8013143C 3442A480 */ ori $v0, $v0, 0xa480
/* C7B40 80131440 02228821 */ addu $s1, $s1, $v0
.L80131444:
/* C7B44 80131444 1A20000C */ blez $s1, .L80131478_C7B78
/* C7B48 80131448 2E620017 */ sltiu $v0, $s3, 0x17
/* C7B4C 8013144C 1040000A */ beqz $v0, .L80131478_C7B78
/* C7B50 80131450 00131080 */ sll $v0, $s3, 2
/* C7B54 80131454 3C018015 */ lui $at, %hi(jtbl_80150A98)
/* C7B58 80131458 00220821 */ addu $at, $at, $v0
/* C7B5C 8013145C 8C220A98 */ lw $v0, %lo(jtbl_80150A98)($at)
/* C7B60 80131460 00400008 */ jr $v0
/* C7B64 80131464 00000000 */ nop
.L80131468_C7B68:
/* C7B68 80131468 0C05152F */ jal get_global_flag
/* C7B6C 8013146C 0220202D */ daddu $a0, $s1, $zero
/* C7B70 80131470 14400180 */ bnez $v0, .L80131A74
/* C7B74 80131474 2402FFFF */ addiu $v0, $zero, -1
.L80131478_C7B78:
/* C7B78 80131478 0000182D */ daddu $v1, $zero, $zero
/* C7B7C 8013147C 3C048015 */ lui $a0, %hi(gCurrentItemEntities)
/* C7B80 80131480 8C8465A0 */ lw $a0, %lo(gCurrentItemEntities)($a0)
.L80131484:
/* C7B84 80131484 8C820000 */ lw $v0, ($a0)
/* C7B88 80131488 10400006 */ beqz $v0, .L801314A4
/* C7B8C 8013148C 28620100 */ slti $v0, $v1, 0x100
/* C7B90 80131490 24630001 */ addiu $v1, $v1, 1
/* C7B94 80131494 28620100 */ slti $v0, $v1, 0x100
/* C7B98 80131498 1440FFFA */ bnez $v0, .L80131484
/* C7B9C 8013149C 24840004 */ addiu $a0, $a0, 4
/* C7BA0 801314A0 28620100 */ slti $v0, $v1, 0x100
.L801314A4:
/* C7BA4 801314A4 54400003 */ bnel $v0, $zero, .L801314B4
/* C7BA8 801314A8 2404005C */ addiu $a0, $zero, 0x5c
.L801314AC:
/* C7BAC 801314AC 0804C52B */ j .L801314AC
/* C7BB0 801314B0 00000000 */ nop
.L801314B4:
/* C7BB4 801314B4 0C00AB39 */ jal heap_malloc
/* C7BB8 801314B8 0060A02D */ daddu $s4, $v1, $zero
/* C7BBC 801314BC 00142080 */ sll $a0, $s4, 2
/* C7BC0 801314C0 3C038015 */ lui $v1, %hi(gCurrentItemEntities)
/* C7BC4 801314C4 8C6365A0 */ lw $v1, %lo(gCurrentItemEntities)($v1)
/* C7BC8 801314C8 3C058015 */ lui $a1, %hi(ItemEntitiesCreated)
/* C7BCC 801314CC 24A512F8 */ addiu $a1, $a1, %lo(ItemEntitiesCreated)
/* C7BD0 801314D0 00832021 */ addu $a0, $a0, $v1
/* C7BD4 801314D4 8CA30000 */ lw $v1, ($a1)
/* C7BD8 801314D8 0040802D */ daddu $s0, $v0, $zero
/* C7BDC 801314DC AC900000 */ sw $s0, ($a0)
/* C7BE0 801314E0 24630001 */ addiu $v1, $v1, 1
/* C7BE4 801314E4 16000003 */ bnez $s0, .L801314F4
/* C7BE8 801314E8 ACA30000 */ sw $v1, ($a1)
.L801314EC:
/* C7BEC 801314EC 0804C53B */ j .L801314EC
/* C7BF0 801314F0 00000000 */ nop
.L801314F4:
/* C7BF4 801314F4 00121402 */ srl $v0, $s2, 0x10
/* C7BF8 801314F8 3042000F */ andi $v0, $v0, 0xf
/* C7BFC 801314FC 24030005 */ addiu $v1, $zero, 5
/* C7C00 80131500 14430003 */ bne $v0, $v1, .L80131510
/* C7C04 80131504 A202001D */ sb $v0, 0x1d($s0)
/* C7C08 80131508 2402FFFF */ addiu $v0, $zero, -1
/* C7C0C 8013150C A202001D */ sb $v0, 0x1d($s0)
.L80131510:
/* C7C10 80131510 3252FFFF */ andi $s2, $s2, 0xffff
/* C7C14 80131514 A213001B */ sb $s3, 0x1b($s0)
/* C7C18 80131518 A200001A */ sb $zero, 0x1a($s0)
/* C7C1C 8013151C C7A2003C */ lwc1 $f2, 0x3c($sp)
/* C7C20 80131520 C7A40040 */ lwc1 $f4, 0x40($sp)
/* C7C24 80131524 C7A60044 */ lwc1 $f6, 0x44($sp)
/* C7C28 80131528 24020097 */ addiu $v0, $zero, 0x97
/* C7C2C 8013152C AE020000 */ sw $v0, ($s0)
/* C7C30 80131530 A6000006 */ sh $zero, 6($s0)
/* C7C34 80131534 A6110004 */ sh $s1, 4($s0)
/* C7C38 80131538 A6120018 */ sh $s2, 0x18($s0)
/* C7C3C 8013153C AE000014 */ sw $zero, 0x14($s0)
/* C7C40 80131540 8FA2004C */ lw $v0, 0x4c($sp)
/* C7C44 80131544 3C013F80 */ lui $at, 0x3f80
/* C7C48 80131548 44810000 */ mtc1 $at, $f0
/* C7C4C 8013154C 8E030000 */ lw $v1, ($s0)
/* C7C50 80131550 A202001C */ sb $v0, 0x1c($s0)
/* C7C54 80131554 8FA20050 */ lw $v0, 0x50($sp)
/* C7C58 80131558 34644000 */ ori $a0, $v1, 0x4000
/* C7C5C 8013155C E6020008 */ swc1 $f2, 8($s0)
/* C7C60 80131560 E604000C */ swc1 $f4, 0xc($s0)
/* C7C64 80131564 E6060010 */ swc1 $f6, 0x10($s0)
/* C7C68 80131568 E6000030 */ swc1 $f0, 0x30($s0)
/* C7C6C 8013156C AE040000 */ sw $a0, ($s0)
/* C7C70 80131570 A602001E */ sh $v0, 0x1e($s0)
/* C7C74 80131574 2402FFFF */ addiu $v0, $zero, -1
/* C7C78 80131578 A6020020 */ sh $v0, 0x20($s0)
/* C7C7C 8013157C 24020001 */ addiu $v0, $zero, 1
/* C7C80 80131580 A202002E */ sb $v0, 0x2e($s0)
/* C7C84 80131584 2402D8F1 */ addiu $v0, $zero, -0x270f
/* C7C88 80131588 A6020034 */ sh $v0, 0x34($s0)
/* C7C8C 8013158C A6020036 */ sh $v0, 0x36($s0)
/* C7C90 80131590 A6020038 */ sh $v0, 0x38($s0)
/* C7C94 80131594 00121140 */ sll $v0, $s2, 5
/* C7C98 80131598 3C018008 */ lui $at, %hi(gItemTable+0x18)
/* C7C9C 8013159C 00220821 */ addu $at, $at, $v0
/* C7CA0 801315A0 942278F8 */ lhu $v0, %lo(gItemTable+0x18)($at)
/* C7CA4 801315A4 2403001E */ addiu $v1, $zero, 0x1e
/* C7CA8 801315A8 3C018015 */ lui $at, %hi(D_801565A6)
/* C7CAC 801315AC A42365A6 */ sh $v1, %lo(D_801565A6)($at)
/* C7CB0 801315B0 30421000 */ andi $v0, $v0, 0x1000
/* C7CB4 801315B4 10400005 */ beqz $v0, .L801315CC
/* C7CB8 801315B8 3C020004 */ lui $v0, 4
/* C7CBC 801315BC 00821025 */ or $v0, $a0, $v0
/* C7CC0 801315C0 2403BFFF */ addiu $v1, $zero, -0x4001
/* C7CC4 801315C4 00431024 */ and $v0, $v0, $v1
/* C7CC8 801315C8 AE020000 */ sw $v0, ($s0)
.L801315CC:
/* C7CCC 801315CC 3C048015 */ lui $a0, %hi(ItemEntityAlternatingSpawn)
/* C7CD0 801315D0 24845D84 */ addiu $a0, $a0, %lo(ItemEntityAlternatingSpawn)
/* C7CD4 801315D4 8C820000 */ lw $v0, ($a0)
/* C7CD8 801315D8 10400005 */ beqz $v0, .L801315F0
/* C7CDC 801315DC 3C030002 */ lui $v1, 2
/* C7CE0 801315E0 8E020000 */ lw $v0, ($s0)
/* C7CE4 801315E4 00431025 */ or $v0, $v0, $v1
/* C7CE8 801315E8 AE020000 */ sw $v0, ($s0)
/* C7CEC 801315EC 8C820000 */ lw $v0, ($a0)
.L801315F0:
/* C7CF0 801315F0 24030001 */ addiu $v1, $zero, 1
/* C7CF4 801315F4 00621823 */ subu $v1, $v1, $v0
/* C7CF8 801315F8 AC830000 */ sw $v1, ($a0)
/* C7CFC 801315FC 8203001B */ lb $v1, 0x1b($s0)
/* C7D00 80131600 2C62001C */ sltiu $v0, $v1, 0x1c
/* C7D04 80131604 104000C1 */ beqz $v0, .L8013190C
/* C7D08 80131608 00031080 */ sll $v0, $v1, 2
/* C7D0C 8013160C 3C018015 */ lui $at, %hi(jtbl_80150AF8)
/* C7D10 80131610 00220821 */ addu $at, $at, $v0
/* C7D14 80131614 8C220AF8 */ lw $v0, %lo(jtbl_80150AF8)($at)
/* C7D18 80131618 00400008 */ jr $v0
/* C7D1C 8013161C 00000000 */ nop
.L80131620_C7D20:
/* C7D20 80131620 8E020000 */ lw $v0, ($s0)
/* C7D24 80131624 0804C640 */ j .L80131900
/* C7D28 80131628 3C038000 */ lui $v1, 0x8000
.L8013162C_C7D2C:
/* C7D2C 8013162C 8E020000 */ lw $v0, ($s0)
/* C7D30 80131630 0804C640 */ j .L80131900
/* C7D34 80131634 3C030080 */ lui $v1, 0x80
.L80131638_C7D38:
/* C7D38 80131638 8E020000 */ lw $v0, ($s0)
/* C7D3C 8013163C 0804C640 */ j .L80131900
/* C7D40 80131640 3C030010 */ lui $v1, 0x10
.L80131644_C7D44:
/* C7D44 80131644 24020003 */ addiu $v0, $zero, 3
/* C7D48 80131648 A202001B */ sb $v0, 0x1b($s0)
/* C7D4C 8013164C 8E020000 */ lw $v0, ($s0)
/* C7D50 80131650 3C030080 */ lui $v1, 0x80
/* C7D54 80131654 00431025 */ or $v0, $v0, $v1
/* C7D58 80131658 0804C640 */ j .L80131900
/* C7D5C 8013165C 3C030001 */ lui $v1, 1
.L80131660_C7D60:
/* C7D60 80131660 3C020080 */ lui $v0, 0x80
/* C7D64 80131664 34420600 */ ori $v0, $v0, 0x600
/* C7D68 80131668 8E030000 */ lw $v1, ($s0)
/* C7D6C 8013166C 0804C635 */ j .L801318D4
/* C7D70 80131670 24040003 */ addiu $a0, $zero, 3
.L80131674_C7D74:
/* C7D74 80131674 3C020080 */ lui $v0, 0x80
/* C7D78 80131678 34420400 */ ori $v0, $v0, 0x400
/* C7D7C 8013167C 8E030000 */ lw $v1, ($s0)
/* C7D80 80131680 0804C635 */ j .L801318D4
/* C7D84 80131684 24040003 */ addiu $a0, $zero, 3
.L80131688_C7D88:
/* C7D88 80131688 3C020080 */ lui $v0, 0x80
/* C7D8C 8013168C 34420800 */ ori $v0, $v0, 0x800
/* C7D90 80131690 8E030000 */ lw $v1, ($s0)
/* C7D94 80131694 0804C635 */ j .L801318D4
/* C7D98 80131698 24040003 */ addiu $a0, $zero, 3
.L8013169C_C7D9C:
/* C7D9C 8013169C 3C020080 */ lui $v0, 0x80
/* C7DA0 801316A0 34420A00 */ ori $v0, $v0, 0xa00
/* C7DA4 801316A4 8E030000 */ lw $v1, ($s0)
/* C7DA8 801316A8 0804C635 */ j .L801318D4
/* C7DAC 801316AC 24040003 */ addiu $a0, $zero, 3
.L801316B0_C7DB0:
/* C7DB0 801316B0 3C020080 */ lui $v0, 0x80
/* C7DB4 801316B4 34420200 */ ori $v0, $v0, 0x200
/* C7DB8 801316B8 8E030000 */ lw $v1, ($s0)
/* C7DBC 801316BC 0804C635 */ j .L801318D4
/* C7DC0 801316C0 24040003 */ addiu $a0, $zero, 3
.L801316C4_C7DC4:
/* C7DC4 801316C4 3C040080 */ lui $a0, 0x80
/* C7DC8 801316C8 34840400 */ ori $a0, $a0, 0x400
/* C7DCC 801316CC 8E020000 */ lw $v0, ($s0)
/* C7DD0 801316D0 24030003 */ addiu $v1, $zero, 3
/* C7DD4 801316D4 A203001B */ sb $v1, 0x1b($s0)
/* C7DD8 801316D8 0804C63F */ j .L801318FC
/* C7DDC 801316DC 3C034000 */ lui $v1, 0x4000
.L801316E0_C7DE0:
/* C7DE0 801316E0 3C050080 */ lui $a1, 0x80
/* C7DE4 801316E4 34A50400 */ ori $a1, $a1, 0x400
/* C7DE8 801316E8 3C044000 */ lui $a0, 0x4000
/* C7DEC 801316EC 34840200 */ ori $a0, $a0, 0x200
/* C7DF0 801316F0 8E020000 */ lw $v0, ($s0)
/* C7DF4 801316F4 24030003 */ addiu $v1, $zero, 3
/* C7DF8 801316F8 A203001B */ sb $v1, 0x1b($s0)
/* C7DFC 801316FC 00451025 */ or $v0, $v0, $a1
/* C7E00 80131700 0804C641 */ j .L80131904
/* C7E04 80131704 00441025 */ or $v0, $v0, $a0
.L80131708_C7E08:
/* C7E08 80131708 8E020000 */ lw $v0, ($s0)
/* C7E0C 8013170C 0804C640 */ j .L80131900
/* C7E10 80131710 3C030080 */ lui $v1, 0x80
.L80131714_C7E14:
/* C7E14 80131714 3C020080 */ lui $v0, 0x80
/* C7E18 80131718 34420600 */ ori $v0, $v0, 0x600
/* C7E1C 8013171C 8E030000 */ lw $v1, ($s0)
/* C7E20 80131720 0804C635 */ j .L801318D4
/* C7E24 80131724 2404000C */ addiu $a0, $zero, 0xc
.L80131728_C7E28:
/* C7E28 80131728 3C020080 */ lui $v0, 0x80
/* C7E2C 8013172C 34420400 */ ori $v0, $v0, 0x400
/* C7E30 80131730 8E030000 */ lw $v1, ($s0)
/* C7E34 80131734 0804C635 */ j .L801318D4
/* C7E38 80131738 2404000C */ addiu $a0, $zero, 0xc
.L8013173C_C7E3C:
/* C7E3C 8013173C 3C020080 */ lui $v0, 0x80
/* C7E40 80131740 34420800 */ ori $v0, $v0, 0x800
/* C7E44 80131744 8E030000 */ lw $v1, ($s0)
/* C7E48 80131748 0804C635 */ j .L801318D4
/* C7E4C 8013174C 2404000C */ addiu $a0, $zero, 0xc
.L80131750_C7E50:
/* C7E50 80131750 3C020080 */ lui $v0, 0x80
/* C7E54 80131754 8E030000 */ lw $v1, ($s0)
/* C7E58 80131758 34422000 */ ori $v0, $v0, 0x2000
/* C7E5C 8013175C 00621825 */ or $v1, $v1, $v0
/* C7E60 80131760 0804C636 */ j .L801318D8
/* C7E64 80131764 3C021000 */ lui $v0, 0x1000
.L80131768_C7E68:
/* C7E68 80131768 3C040080 */ lui $a0, 0x80
/* C7E6C 8013176C 34842600 */ ori $a0, $a0, 0x2600
/* C7E70 80131770 8E020000 */ lw $v0, ($s0)
/* C7E74 80131774 24030010 */ addiu $v1, $zero, 0x10
/* C7E78 80131778 A203001B */ sb $v1, 0x1b($s0)
/* C7E7C 8013177C 0804C63F */ j .L801318FC
/* C7E80 80131780 3C031000 */ lui $v1, 0x1000
.L80131784_C7E84:
/* C7E84 80131784 3C040080 */ lui $a0, 0x80
/* C7E88 80131788 34842400 */ ori $a0, $a0, 0x2400
/* C7E8C 8013178C 8E020000 */ lw $v0, ($s0)
/* C7E90 80131790 24030010 */ addiu $v1, $zero, 0x10
/* C7E94 80131794 A203001B */ sb $v1, 0x1b($s0)
/* C7E98 80131798 0804C63F */ j .L801318FC
/* C7E9C 8013179C 3C031000 */ lui $v1, 0x1000
.L801317A0_C7EA0:
/* C7EA0 801317A0 3C040080 */ lui $a0, 0x80
/* C7EA4 801317A4 34842200 */ ori $a0, $a0, 0x2200
/* C7EA8 801317A8 8E020000 */ lw $v0, ($s0)
/* C7EAC 801317AC 24030010 */ addiu $v1, $zero, 0x10
/* C7EB0 801317B0 A203001B */ sb $v1, 0x1b($s0)
/* C7EB4 801317B4 0804C63F */ j .L801318FC
/* C7EB8 801317B8 3C031000 */ lui $v1, 0x1000
.L801317BC_C7EBC:
/* C7EBC 801317BC 3C030080 */ lui $v1, 0x80
/* C7EC0 801317C0 34631000 */ ori $v1, $v1, 0x1000
/* C7EC4 801317C4 8E020000 */ lw $v0, ($s0)
/* C7EC8 801317C8 3C013F4C */ lui $at, 0x3f4c
/* C7ECC 801317CC 3421CCCD */ ori $at, $at, 0xcccd
/* C7ED0 801317D0 44810000 */ mtc1 $at, $f0
/* C7ED4 801317D4 00431025 */ or $v0, $v0, $v1
/* C7ED8 801317D8 AE020000 */ sw $v0, ($s0)
/* C7EDC 801317DC 34424000 */ ori $v0, $v0, 0x4000
/* C7EE0 801317E0 0804C641 */ j .L80131904
/* C7EE4 801317E4 E6000030 */ swc1 $f0, 0x30($s0)
.L801317E8_C7EE8:
/* C7EE8 801317E8 3C030080 */ lui $v1, 0x80
/* C7EEC 801317EC 34631000 */ ori $v1, $v1, 0x1000
/* C7EF0 801317F0 8E020000 */ lw $v0, ($s0)
/* C7EF4 801317F4 3C013F4C */ lui $at, 0x3f4c
/* C7EF8 801317F8 3421CCCD */ ori $at, $at, 0xcccd
/* C7EFC 801317FC 44810000 */ mtc1 $at, $f0
/* C7F00 80131800 00431025 */ or $v0, $v0, $v1
/* C7F04 80131804 3C030001 */ lui $v1, 1
/* C7F08 80131808 00431025 */ or $v0, $v0, $v1
/* C7F0C 8013180C AE020000 */ sw $v0, ($s0)
/* C7F10 80131810 0040182D */ daddu $v1, $v0, $zero
/* C7F14 80131814 0804C628 */ j .L801318A0
/* C7F18 80131818 24020017 */ addiu $v0, $zero, 0x17
.L8013181C_C7F1C:
/* C7F1C 8013181C 3C030080 */ lui $v1, 0x80
/* C7F20 80131820 34631000 */ ori $v1, $v1, 0x1000
/* C7F24 80131824 8E020000 */ lw $v0, ($s0)
/* C7F28 80131828 3C013F4C */ lui $at, 0x3f4c
/* C7F2C 8013182C 3421CCCD */ ori $at, $at, 0xcccd
/* C7F30 80131830 44810000 */ mtc1 $at, $f0
/* C7F34 80131834 00431025 */ or $v0, $v0, $v1
/* C7F38 80131838 3C030040 */ lui $v1, 0x40
/* C7F3C 8013183C 00431025 */ or $v0, $v0, $v1
/* C7F40 80131840 AE020000 */ sw $v0, ($s0)
/* C7F44 80131844 0040182D */ daddu $v1, $v0, $zero
/* C7F48 80131848 0804C628 */ j .L801318A0
/* C7F4C 8013184C 24020017 */ addiu $v0, $zero, 0x17
.L80131850_C7F50:
/* C7F50 80131850 3C030080 */ lui $v1, 0x80
/* C7F54 80131854 8E020000 */ lw $v0, ($s0)
/* C7F58 80131858 3C013F4C */ lui $at, 0x3f4c
/* C7F5C 8013185C 3421CCCD */ ori $at, $at, 0xcccd
/* C7F60 80131860 44810000 */ mtc1 $at, $f0
/* C7F64 80131864 00431025 */ or $v0, $v0, $v1
/* C7F68 80131868 AE020000 */ sw $v0, ($s0)
/* C7F6C 8013186C 0040182D */ daddu $v1, $v0, $zero
/* C7F70 80131870 0804C628 */ j .L801318A0
/* C7F74 80131874 24020003 */ addiu $v0, $zero, 3
.L80131878_C7F78:
/* C7F78 80131878 3C030080 */ lui $v1, 0x80
/* C7F7C 8013187C 34638000 */ ori $v1, $v1, 0x8000
/* C7F80 80131880 8E020000 */ lw $v0, ($s0)
/* C7F84 80131884 3C013F4C */ lui $at, 0x3f4c
/* C7F88 80131888 3421CCCD */ ori $at, $at, 0xcccd
/* C7F8C 8013188C 44810000 */ mtc1 $at, $f0
/* C7F90 80131890 00431025 */ or $v0, $v0, $v1
/* C7F94 80131894 AE020000 */ sw $v0, ($s0)
/* C7F98 80131898 0040182D */ daddu $v1, $v0, $zero
/* C7F9C 8013189C 24020014 */ addiu $v0, $zero, 0x14
.L801318A0:
/* C7FA0 801318A0 34634000 */ ori $v1, $v1, 0x4000
/* C7FA4 801318A4 A202001B */ sb $v0, 0x1b($s0)
/* C7FA8 801318A8 E6000030 */ swc1 $f0, 0x30($s0)
/* C7FAC 801318AC 0804C642 */ j .L80131908
/* C7FB0 801318B0 AE030000 */ sw $v1, ($s0)
.L801318B4_C7FB4:
/* C7FB4 801318B4 3C030080 */ lui $v1, 0x80
/* C7FB8 801318B8 8E020000 */ lw $v0, ($s0)
/* C7FBC 801318BC 0804C640 */ j .L80131900
/* C7FC0 801318C0 34638200 */ ori $v1, $v1, 0x8200
.L801318C4_C7FC4:
/* C7FC4 801318C4 3C020080 */ lui $v0, 0x80
/* C7FC8 801318C8 34428600 */ ori $v0, $v0, 0x8600
/* C7FCC 801318CC 8E030000 */ lw $v1, ($s0)
/* C7FD0 801318D0 24040014 */ addiu $a0, $zero, 0x14
.L801318D4:
/* C7FD4 801318D4 A204001B */ sb $a0, 0x1b($s0)
.L801318D8:
/* C7FD8 801318D8 00621825 */ or $v1, $v1, $v0
/* C7FDC 801318DC 0804C642 */ j .L80131908
/* C7FE0 801318E0 AE030000 */ sw $v1, ($s0)
.L801318E4_C7FE4:
/* C7FE4 801318E4 3C040080 */ lui $a0, 0x80
/* C7FE8 801318E8 34840600 */ ori $a0, $a0, 0x600
/* C7FEC 801318EC 8E020000 */ lw $v0, ($s0)
/* C7FF0 801318F0 24030003 */ addiu $v1, $zero, 3
/* C7FF4 801318F4 A203001B */ sb $v1, 0x1b($s0)
/* C7FF8 801318F8 3C030100 */ lui $v1, 0x100
.L801318FC:
/* C7FFC 801318FC 00441025 */ or $v0, $v0, $a0
.L80131900:
/* C8000 80131900 00431025 */ or $v0, $v0, $v1
.L80131904:
/* C8004 80131904 AE020000 */ sw $v0, ($s0)
.L80131908:
/* C8008 80131908 8203001B */ lb $v1, 0x1b($s0)
.L8013190C:
/* C800C 8013190C 2C620015 */ sltiu $v0, $v1, 0x15
/* C8010 80131910 1040003E */ beqz $v0, .L80131A0C_C810C
/* C8014 80131914 00031080 */ sll $v0, $v1, 2
/* C8018 80131918 3C018015 */ lui $at, %hi(jtbl_80150B68)
/* C801C 8013191C 00220821 */ addu $at, $at, $v0
/* C8020 80131920 8C220B68 */ lw $v0, %lo(jtbl_80150B68)($at)
/* C8024 80131924 00400008 */ jr $v0
/* C8028 80131928 00000000 */ nop
.L8013192C_C802C:
/* C802C 8013192C 8E050008 */ lw $a1, 8($s0)
/* C8030 80131930 8E06000C */ lw $a2, 0xc($s0)
/* C8034 80131934 8E070010 */ lw $a3, 0x10($s0)
/* C8038 80131938 0C044898 */ jal create_shadow_type
/* C803C 8013193C 0000202D */ daddu $a0, $zero, $zero
/* C8040 80131940 00022400 */ sll $a0, $v0, 0x10
/* C8044 80131944 00042403 */ sra $a0, $a0, 0x10
/* C8048 80131948 0C044181 */ jal get_shadow_by_index
/* C804C 8013194C A6020020 */ sh $v0, 0x20($s0)
/* C8050 80131950 0040882D */ daddu $s1, $v0, $zero
/* C8054 80131954 8203001B */ lb $v1, 0x1b($s0)
/* C8058 80131958 24020014 */ addiu $v0, $zero, 0x14
/* C805C 8013195C 14620004 */ bne $v1, $v0, .L80131970
/* C8060 80131960 3C040002 */ lui $a0, 2
/* C8064 80131964 8E220000 */ lw $v0, ($s1)
/* C8068 80131968 34420001 */ ori $v0, $v0, 1
/* C806C 8013196C AE220000 */ sw $v0, ($s1)
.L80131970:
/* C8070 80131970 27A5003C */ addiu $a1, $sp, 0x3c
/* C8074 80131974 27A60040 */ addiu $a2, $sp, 0x40
/* C8078 80131978 27A70044 */ addiu $a3, $sp, 0x44
/* C807C 8013197C 27A20018 */ addiu $v0, $sp, 0x18
/* C8080 80131980 C6080008 */ lwc1 $f8, 8($s0)
/* C8084 80131984 C600000C */ lwc1 $f0, 0xc($s0)
/* C8088 80131988 3C014140 */ lui $at, 0x4140
/* C808C 8013198C 44811000 */ mtc1 $at, $f2
/* C8090 80131990 C6040010 */ lwc1 $f4, 0x10($s0)
/* C8094 80131994 3C01447A */ lui $at, 0x447a
/* C8098 80131998 44813000 */ mtc1 $at, $f6
/* C809C 8013199C 46020000 */ add.s $f0, $f0, $f2
/* C80A0 801319A0 E7A8003C */ swc1 $f8, 0x3c($sp)
/* C80A4 801319A4 E7A40044 */ swc1 $f4, 0x44($sp)
/* C80A8 801319A8 E7A00040 */ swc1 $f0, 0x40($sp)
/* C80AC 801319AC E7A60018 */ swc1 $f6, 0x18($sp)
/* C80B0 801319B0 0C0372DF */ jal npc_raycast_down_sides
/* C80B4 801319B4 AFA20010 */ sw $v0, 0x10($sp)
/* C80B8 801319B8 C7A0003C */ lwc1 $f0, 0x3c($sp)
/* C80BC 801319BC C7A20040 */ lwc1 $f2, 0x40($sp)
/* C80C0 801319C0 C7A40044 */ lwc1 $f4, 0x44($sp)
/* C80C4 801319C4 3C028007 */ lui $v0, %hi(gGameStatusPtr)
/* C80C8 801319C8 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
/* C80CC 801319CC E6200010 */ swc1 $f0, 0x10($s1)
/* C80D0 801319D0 E6220014 */ swc1 $f2, 0x14($s1)
/* C80D4 801319D4 E6240018 */ swc1 $f4, 0x18($s1)
/* C80D8 801319D8 C7A20018 */ lwc1 $f2, 0x18($sp)
/* C80DC 801319DC 3C013F00 */ lui $at, 0x3f00
/* C80E0 801319E0 44810000 */ mtc1 $at, $f0
/* C80E4 801319E4 C444011C */ lwc1 $f4, 0x11c($v0)
/* C80E8 801319E8 46001082 */ mul.s $f2, $f2, $f0
/* C80EC 801319EC 00000000 */ nop
/* C80F0 801319F0 AE20002C */ sw $zero, 0x2c($s1)
/* C80F4 801319F4 E6240028 */ swc1 $f4, 0x28($s1)
/* C80F8 801319F8 C4400124 */ lwc1 $f0, 0x124($v0)
/* C80FC 801319FC 44051000 */ mfc1 $a1, $f2
/* C8100 80131A00 0220202D */ daddu $a0, $s1, $zero
/* C8104 80131A04 0C044A17 */ jal set_standard_shadow_scale
/* C8108 80131A08 E4800030 */ swc1 $f0, 0x30($a0)
.L80131A0C_C810C:
/* C810C 80131A0C 9202001C */ lbu $v0, 0x1c($s0)
/* C8110 80131A10 10400003 */ beqz $v0, .L80131A20
/* C8114 80131A14 00000000 */ nop
/* C8118 80131A18 0C04C3DC */ jal item_entity_disable_shadow
/* C811C 80131A1C 0200202D */ daddu $a0, $s0, $zero
.L80131A20:
/* C8120 80131A20 0C04C44A */ jal item_entity_load
/* C8124 80131A24 0200202D */ daddu $a0, $s0, $zero
/* C8128 80131A28 86030018 */ lh $v1, 0x18($s0)
/* C812C 80131A2C 24020157 */ addiu $v0, $zero, 0x157
/* C8130 80131A30 14620009 */ bne $v1, $v0, .L80131A58
/* C8134 80131A34 2402015C */ addiu $v0, $zero, 0x15c
/* C8138 80131A38 3C058010 */ lui $a1, %hi(SparkleScript_Coin)
/* C813C 80131A3C 24A54AC0 */ addiu $a1, $a1, %lo(SparkleScript_Coin)
/* C8140 80131A40 0C04C27C */ jal sparkle_script_init
/* C8144 80131A44 0200202D */ daddu $a0, $s0, $zero
/* C8148 80131A48 0C04C2B3 */ jal sparkle_script_update
/* C814C 80131A4C 0200202D */ daddu $a0, $s0, $zero
/* C8150 80131A50 86030018 */ lh $v1, 0x18($s0)
/* C8154 80131A54 2402015C */ addiu $v0, $zero, 0x15c
.L80131A58:
/* C8158 80131A58 14620006 */ bne $v1, $v0, .L80131A74
/* C815C 80131A5C 0280102D */ daddu $v0, $s4, $zero
/* C8160 80131A60 8E020000 */ lw $v0, ($s0)
/* C8164 80131A64 2403FF7F */ addiu $v1, $zero, -0x81
/* C8168 80131A68 00431024 */ and $v0, $v0, $v1
/* C816C 80131A6C AE020000 */ sw $v0, ($s0)
/* C8170 80131A70 0280102D */ daddu $v0, $s4, $zero
.L80131A74:
/* C8174 80131A74 8FBF0034 */ lw $ra, 0x34($sp)
/* C8178 80131A78 8FB40030 */ lw $s4, 0x30($sp)
/* C817C 80131A7C 8FB3002C */ lw $s3, 0x2c($sp)
/* C8180 80131A80 8FB20028 */ lw $s2, 0x28($sp)
/* C8184 80131A84 8FB10024 */ lw $s1, 0x24($sp)
/* C8188 80131A88 8FB00020 */ lw $s0, 0x20($sp)
/* C818C 80131A8C 03E00008 */ jr $ra
/* C8190 80131A90 27BD0038 */ addiu $sp, $sp, 0x38

View File

@ -1,370 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel gfx_task_main
/* 1564 80026164 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 1568 80026168 3C048007 */ lui $a0, %hi(gCurrentDisplayContextIndex)
/* 156C 8002616C 8C8441F4 */ lw $a0, %lo(gCurrentDisplayContextIndex)($a0)
/* 1570 80026170 3C058016 */ lui $a1, %hi(D_80164000)
/* 1574 80026174 24A54000 */ addiu $a1, $a1, %lo(D_80164000)
/* 1578 80026178 AFB20020 */ sw $s2, 0x20($sp)
/* 157C 8002617C 3C12800A */ lui $s2, %hi(gMasterGfxPos)
/* 1580 80026180 2652A66C */ addiu $s2, $s2, %lo(gMasterGfxPos)
/* 1584 80026184 AFBF003C */ sw $ra, 0x3c($sp)
/* 1588 80026188 AFBE0038 */ sw $fp, 0x38($sp)
/* 158C 8002618C AFB70034 */ sw $s7, 0x34($sp)
/* 1590 80026190 AFB60030 */ sw $s6, 0x30($sp)
/* 1594 80026194 AFB5002C */ sw $s5, 0x2c($sp)
/* 1598 80026198 AFB40028 */ sw $s4, 0x28($sp)
/* 159C 8002619C AFB30024 */ sw $s3, 0x24($sp)
/* 15A0 800261A0 AFB1001C */ sw $s1, 0x1c($sp)
/* 15A4 800261A4 AFB00018 */ sw $s0, 0x18($sp)
/* 15A8 800261A8 3C018007 */ lui $at, %hi(gMatrixListPos)
/* 15AC 800261AC A42041F0 */ sh $zero, %lo(gMatrixListPos)($at)
/* 15B0 800261B0 00041040 */ sll $v0, $a0, 1
/* 15B4 800261B4 00441021 */ addu $v0, $v0, $a0
/* 15B8 800261B8 000210C0 */ sll $v0, $v0, 3
/* 15BC 800261BC 00441021 */ addu $v0, $v0, $a0
/* 15C0 800261C0 00021980 */ sll $v1, $v0, 6
/* 15C4 800261C4 00431021 */ addu $v0, $v0, $v1
/* 15C8 800261C8 00021080 */ sll $v0, $v0, 2
/* 15CC 800261CC 00441023 */ subu $v0, $v0, $a0
/* 15D0 800261D0 00021100 */ sll $v0, $v0, 4
/* 15D4 800261D4 00451021 */ addu $v0, $v0, $a1
/* 15D8 800261D8 3C01800A */ lui $at, %hi(gDisplayContext)
/* 15DC 800261DC AC22A674 */ sw $v0, %lo(gDisplayContext)($at)
/* 15E0 800261E0 24420230 */ addiu $v0, $v0, 0x230
/* 15E4 800261E4 AE420000 */ sw $v0, ($s2)
/* 15E8 800261E8 3C118007 */ lui $s1, %hi(D_80073E04)
/* 15EC 800261EC 8E313E04 */ lw $s1, %lo(D_80073E04)($s1)
/* 15F0 800261F0 0C009C68 */ jal gfx_init_state
/* 15F4 800261F4 3C13070F */ lui $s3, 0x70f
/* 15F8 800261F8 3C06FF10 */ lui $a2, 0xff10
/* 15FC 800261FC 34C6013F */ ori $a2, $a2, 0x13f
/* 1600 80026200 3C02FE00 */ lui $v0, 0xfe00
/* 1604 80026204 8E500000 */ lw $s0, ($s2)
/* 1608 80026208 3C038000 */ lui $v1, 0x8000
/* 160C 8002620C 0200282D */ daddu $a1, $s0, $zero
/* 1610 80026210 26100008 */ addiu $s0, $s0, 8
/* 1614 80026214 AE500000 */ sw $s0, ($s2)
/* 1618 80026218 ACA20000 */ sw $v0, ($a1)
/* 161C 8002621C 3C02800A */ lui $v0, %hi(nuGfxZBuffer)
/* 1620 80026220 8C42A5DC */ lw $v0, %lo(nuGfxZBuffer)($v0)
/* 1624 80026224 0220202D */ daddu $a0, $s1, $zero
/* 1628 80026228 00431021 */ addu $v0, $v0, $v1
/* 162C 8002622C ACA20004 */ sw $v0, 4($a1)
/* 1630 80026230 26020008 */ addiu $v0, $s0, 8
/* 1634 80026234 AE420000 */ sw $v0, ($s2)
/* 1638 80026238 0C0187A4 */ jal osVirtualToPhysical
/* 163C 8002623C AE060000 */ sw $a2, ($s0)
/* 1640 80026240 3C050050 */ lui $a1, 0x50
/* 1644 80026244 34A503C0 */ ori $a1, $a1, 0x3c0
/* 1648 80026248 3C06D700 */ lui $a2, 0xd700
/* 164C 8002624C 34C60002 */ ori $a2, $a2, 2
/* 1650 80026250 3C07E300 */ lui $a3, 0xe300
/* 1654 80026254 34E70A01 */ ori $a3, $a3, 0xa01
/* 1658 80026258 3C08E300 */ lui $t0, 0xe300
/* 165C 8002625C 35080C00 */ ori $t0, $t0, 0xc00
/* 1660 80026260 3C09E300 */ lui $t1, 0xe300
/* 1664 80026264 35291001 */ ori $t1, $t1, 0x1001
/* 1668 80026268 3C0BE200 */ lui $t3, 0xe200
/* 166C 8002626C 356B001C */ ori $t3, $t3, 0x1c
/* 1670 80026270 3C0A0F0A */ lui $t2, 0xf0a
/* 1674 80026274 354A4000 */ ori $t2, $t2, 0x4000
/* 1678 80026278 3C0CE300 */ lui $t4, 0xe300
/* 167C 8002627C 358C1201 */ ori $t4, $t4, 0x1201
/* 1680 80026280 3C0DFCFF */ lui $t5, 0xfcff
/* 1684 80026284 35ADFFFF */ ori $t5, $t5, 0xffff
/* 1688 80026288 3C0EE200 */ lui $t6, 0xe200
/* 168C 8002628C 35CE1E01 */ ori $t6, $t6, 0x1e01
/* 1690 80026290 3C0FFD88 */ lui $t7, 0xfd88
/* 1694 80026294 35EF003F */ ori $t7, $t7, 0x3f
/* 1698 80026298 3C11F588 */ lui $s1, 0xf588
/* 169C 8002629C 36311000 */ ori $s1, $s1, 0x1000
/* 16A0 800262A0 3673E01C */ ori $s3, $s3, 0xe01c
/* 16A4 800262A4 3C14F580 */ lui $s4, 0xf580
/* 16A8 800262A8 36941000 */ ori $s4, $s4, 0x1000
/* 16AC 800262AC 3C15001F */ lui $s5, 0x1f
/* 16B0 800262B0 36B5C01C */ ori $s5, $s5, 0xc01c
/* 16B4 800262B4 0000B02D */ daddu $s6, $zero, $zero
/* 16B8 800262B8 3C17E400 */ lui $s7, 0xe400
/* 16BC 800262BC 3C19E100 */ lui $t9, 0xe100
/* 16C0 800262C0 3C18F100 */ lui $t8, 0xf100
/* 16C4 800262C4 8E430000 */ lw $v1, ($s2)
/* 16C8 800262C8 241E0098 */ addiu $fp, $zero, 0x98
/* 16CC 800262CC AE020004 */ sw $v0, 4($s0)
/* 16D0 800262D0 3C02ED00 */ lui $v0, 0xed00
/* 16D4 800262D4 0060202D */ daddu $a0, $v1, $zero
/* 16D8 800262D8 24630008 */ addiu $v1, $v1, 8
/* 16DC 800262DC AE430000 */ sw $v1, ($s2)
/* 16E0 800262E0 AC820000 */ sw $v0, ($a0)
/* 16E4 800262E4 24620008 */ addiu $v0, $v1, 8
/* 16E8 800262E8 AC850004 */ sw $a1, 4($a0)
/* 16EC 800262EC AE420000 */ sw $v0, ($s2)
/* 16F0 800262F0 2402FFFF */ addiu $v0, $zero, -1
/* 16F4 800262F4 AC620004 */ sw $v0, 4($v1)
/* 16F8 800262F8 24620010 */ addiu $v0, $v1, 0x10
/* 16FC 800262FC AC660000 */ sw $a2, ($v1)
/* 1700 80026300 AE420000 */ sw $v0, ($s2)
/* 1704 80026304 24620018 */ addiu $v0, $v1, 0x18
/* 1708 80026308 AC670008 */ sw $a3, 8($v1)
/* 170C 8002630C AC60000C */ sw $zero, 0xc($v1)
/* 1710 80026310 AE420000 */ sw $v0, ($s2)
/* 1714 80026314 24620020 */ addiu $v0, $v1, 0x20
/* 1718 80026318 AC680010 */ sw $t0, 0x10($v1)
/* 171C 8002631C AC600014 */ sw $zero, 0x14($v1)
/* 1720 80026320 AE420000 */ sw $v0, ($s2)
/* 1724 80026324 24620028 */ addiu $v0, $v1, 0x28
/* 1728 80026328 AC690018 */ sw $t1, 0x18($v1)
/* 172C 8002632C AC60001C */ sw $zero, 0x1c($v1)
/* 1730 80026330 AE420000 */ sw $v0, ($s2)
/* 1734 80026334 24620030 */ addiu $v0, $v1, 0x30
/* 1738 80026338 AC6B0020 */ sw $t3, 0x20($v1)
/* 173C 8002633C AC6A0024 */ sw $t2, 0x24($v1)
/* 1740 80026340 AE420000 */ sw $v0, ($s2)
/* 1744 80026344 24620038 */ addiu $v0, $v1, 0x38
/* 1748 80026348 AC6C0028 */ sw $t4, 0x28($v1)
/* 174C 8002634C AC60002C */ sw $zero, 0x2c($v1)
/* 1750 80026350 AE420000 */ sw $v0, ($s2)
/* 1754 80026354 2402F3F9 */ addiu $v0, $zero, -0xc07
/* 1758 80026358 AC620034 */ sw $v0, 0x34($v1)
/* 175C 8002635C 24620040 */ addiu $v0, $v1, 0x40
/* 1760 80026360 AC6D0030 */ sw $t5, 0x30($v1)
/* 1764 80026364 AE420000 */ sw $v0, ($s2)
/* 1768 80026368 24020001 */ addiu $v0, $zero, 1
/* 176C 8002636C AC62003C */ sw $v0, 0x3c($v1)
/* 1770 80026370 24620048 */ addiu $v0, $v1, 0x48
/* 1774 80026374 AC6E0038 */ sw $t6, 0x38($v1)
/* 1778 80026378 AE420000 */ sw $v0, ($s2)
/* 177C 8002637C 3C02F900 */ lui $v0, 0xf900
/* 1780 80026380 AC620040 */ sw $v0, 0x40($v1)
/* 1784 80026384 2402007F */ addiu $v0, $zero, 0x7f
/* 1788 80026388 AC620044 */ sw $v0, 0x44($v1)
/* 178C 8002638C 24620050 */ addiu $v0, $v1, 0x50
/* 1790 80026390 AE420000 */ sw $v0, ($s2)
/* 1794 80026394 3C028007 */ lui $v0, %hi(D_80073E10)
/* 1798 80026398 24423E10 */ addiu $v0, $v0, %lo(D_80073E10)
/* 179C 8002639C AC6F0048 */ sw $t7, 0x48($v1)
/* 17A0 800263A0 AC62004C */ sw $v0, 0x4c($v1)
/* 17A4 800263A4 24620058 */ addiu $v0, $v1, 0x58
/* 17A8 800263A8 AE420000 */ sw $v0, ($s2)
/* 17AC 800263AC 3C020700 */ lui $v0, 0x700
/* 17B0 800263B0 AC620054 */ sw $v0, 0x54($v1)
/* 17B4 800263B4 24620060 */ addiu $v0, $v1, 0x60
/* 17B8 800263B8 AC710050 */ sw $s1, 0x50($v1)
/* 17BC 800263BC AE420000 */ sw $v0, ($s2)
/* 17C0 800263C0 3C02E600 */ lui $v0, 0xe600
/* 17C4 800263C4 AC620058 */ sw $v0, 0x58($v1)
/* 17C8 800263C8 24620068 */ addiu $v0, $v1, 0x68
/* 17CC 800263CC AC60005C */ sw $zero, 0x5c($v1)
/* 17D0 800263D0 AE420000 */ sw $v0, ($s2)
/* 17D4 800263D4 3C02F400 */ lui $v0, 0xf400
/* 17D8 800263D8 AC620060 */ sw $v0, 0x60($v1)
/* 17DC 800263DC 24620070 */ addiu $v0, $v1, 0x70
/* 17E0 800263E0 AC730064 */ sw $s3, 0x64($v1)
/* 17E4 800263E4 AE420000 */ sw $v0, ($s2)
/* 17E8 800263E8 3C02E700 */ lui $v0, 0xe700
/* 17EC 800263EC AC620068 */ sw $v0, 0x68($v1)
/* 17F0 800263F0 24620078 */ addiu $v0, $v1, 0x78
/* 17F4 800263F4 AC60006C */ sw $zero, 0x6c($v1)
/* 17F8 800263F8 AE420000 */ sw $v0, ($s2)
/* 17FC 800263FC 24620080 */ addiu $v0, $v1, 0x80
/* 1800 80026400 AC740070 */ sw $s4, 0x70($v1)
/* 1804 80026404 AC600074 */ sw $zero, 0x74($v1)
/* 1808 80026408 AE420000 */ sw $v0, ($s2)
/* 180C 8002640C 3C02F200 */ lui $v0, 0xf200
/* 1810 80026410 AC620078 */ sw $v0, 0x78($v1)
/* 1814 80026414 AC75007C */ sw $s5, 0x7c($v1)
/* 1818 80026418 0000702D */ daddu $t6, $zero, $zero
.L8002641C:
/* 181C 8002641C 00161C00 */ sll $v1, $s6, 0x10
/* 1820 80026420 00031C03 */ sra $v1, $v1, 0x10
/* 1824 80026424 2474000E */ addiu $s4, $v1, 0xe
/* 1828 80026428 000318C0 */ sll $v1, $v1, 3
/* 182C 8002642C 246200A8 */ addiu $v0, $v1, 0xa8
/* 1830 80026430 00021080 */ sll $v0, $v0, 2
/* 1834 80026434 30420FFF */ andi $v0, $v0, 0xfff
/* 1838 80026438 00029B00 */ sll $s3, $v0, 0xc
/* 183C 8002643C 246200A0 */ addiu $v0, $v1, 0xa0
/* 1840 80026440 00021080 */ sll $v0, $v0, 2
/* 1844 80026444 30420FFF */ andi $v0, $v0, 0xfff
/* 1848 80026448 00028B00 */ sll $s1, $v0, 0xc
/* 184C 8002644C 241500A0 */ addiu $s5, $zero, 0xa0
/* 1850 80026450 02A31023 */ subu $v0, $s5, $v1
/* 1854 80026454 00021080 */ sll $v0, $v0, 2
/* 1858 80026458 30420FFF */ andi $v0, $v0, 0xfff
/* 185C 8002645C 00028300 */ sll $s0, $v0, 0xc
/* 1860 80026460 03C31823 */ subu $v1, $fp, $v1
/* 1864 80026464 00031880 */ sll $v1, $v1, 2
/* 1868 80026468 30630FFF */ andi $v1, $v1, 0xfff
/* 186C 8002646C 00037B00 */ sll $t7, $v1, 0xc
/* 1870 80026470 000E1400 */ sll $v0, $t6, 0x10
.L80026474:
/* 1874 80026474 00023C03 */ sra $a3, $v0, 0x10
/* 1878 80026478 02871823 */ subu $v1, $s4, $a3
/* 187C 8002647C 24020021 */ addiu $v0, $zero, 0x21
/* 1880 80026480 00431023 */ subu $v0, $v0, $v1
/* 1884 80026484 00021FC2 */ srl $v1, $v0, 0x1f
/* 1888 80026488 00431021 */ addu $v0, $v0, $v1
/* 188C 8002648C 3C038007 */ lui $v1, %hi(D_80074010)
/* 1890 80026490 94634010 */ lhu $v1, %lo(D_80074010)($v1)
/* 1894 80026494 00021043 */ sra $v0, $v0, 1
/* 1898 80026498 2463FFF1 */ addiu $v1, $v1, -0xf
/* 189C 8002649C 00431023 */ subu $v0, $v0, $v1
/* 18A0 800264A0 00021400 */ sll $v0, $v0, 0x10
/* 18A4 800264A4 00026C03 */ sra $t5, $v0, 0x10
/* 18A8 800264A8 29A20010 */ slti $v0, $t5, 0x10
/* 18AC 800264AC 1040005C */ beqz $v0, .L80026620
/* 18B0 800264B0 25C20001 */ addiu $v0, $t6, 1
/* 18B4 800264B4 05A2005B */ bltzl $t5, .L80026624
/* 18B8 800264B8 0040702D */ daddu $t6, $v0, $zero
/* 18BC 800264BC 3C060400 */ lui $a2, 0x400
/* 18C0 800264C0 34C60400 */ ori $a2, $a2, 0x400
/* 18C4 800264C4 3C0A0400 */ lui $t2, 0x400
/* 18C8 800264C8 354AFC00 */ ori $t2, $t2, 0xfc00
/* 18CC 800264CC 3C0BFC00 */ lui $t3, 0xfc00
/* 18D0 800264D0 356B0400 */ ori $t3, $t3, 0x400
/* 18D4 800264D4 3C0CFC00 */ lui $t4, 0xfc00
/* 18D8 800264D8 358CFC00 */ ori $t4, $t4, 0xfc00
/* 18DC 800264DC 000748C0 */ sll $t1, $a3, 3
/* 18E0 800264E0 25240008 */ addiu $a0, $t1, 8
/* 18E4 800264E4 00042080 */ sll $a0, $a0, 2
/* 18E8 800264E8 30840FFF */ andi $a0, $a0, 0xfff
/* 18EC 800264EC 00972025 */ or $a0, $a0, $s7
/* 18F0 800264F0 02641025 */ or $v0, $s3, $a0
/* 18F4 800264F4 00073940 */ sll $a3, $a3, 5
/* 18F8 800264F8 30E70FFF */ andi $a3, $a3, 0xfff
/* 18FC 800264FC 000D4600 */ sll $t0, $t5, 0x18
/* 1900 80026500 8E430000 */ lw $v1, ($s2)
/* 1904 80026504 02042025 */ or $a0, $s0, $a0
/* 1908 80026508 0060282D */ daddu $a1, $v1, $zero
/* 190C 8002650C 24630008 */ addiu $v1, $v1, 8
/* 1910 80026510 AE430000 */ sw $v1, ($s2)
/* 1914 80026514 ACA20000 */ sw $v0, ($a1)
/* 1918 80026518 02271025 */ or $v0, $s1, $a3
/* 191C 8002651C ACA20004 */ sw $v0, 4($a1)
/* 1920 80026520 24620008 */ addiu $v0, $v1, 8
/* 1924 80026524 AE420000 */ sw $v0, ($s2)
/* 1928 80026528 24620010 */ addiu $v0, $v1, 0x10
/* 192C 8002652C AC790000 */ sw $t9, ($v1)
/* 1930 80026530 AC680004 */ sw $t0, 4($v1)
/* 1934 80026534 AE420000 */ sw $v0, ($s2)
/* 1938 80026538 24620018 */ addiu $v0, $v1, 0x18
/* 193C 8002653C 240500F0 */ addiu $a1, $zero, 0xf0
/* 1940 80026540 00A92823 */ subu $a1, $a1, $t1
/* 1944 80026544 00052880 */ sll $a1, $a1, 2
/* 1948 80026548 30A50FFF */ andi $a1, $a1, 0xfff
/* 194C 8002654C 00B72825 */ or $a1, $a1, $s7
/* 1950 80026550 AC780008 */ sw $t8, 8($v1)
/* 1954 80026554 AC66000C */ sw $a2, 0xc($v1)
/* 1958 80026558 AE420000 */ sw $v0, ($s2)
/* 195C 8002655C 02651025 */ or $v0, $s3, $a1
/* 1960 80026560 240600E8 */ addiu $a2, $zero, 0xe8
/* 1964 80026564 00C93023 */ subu $a2, $a2, $t1
/* 1968 80026568 00063080 */ sll $a2, $a2, 2
/* 196C 8002656C 30C60FFF */ andi $a2, $a2, 0xfff
/* 1970 80026570 AC620010 */ sw $v0, 0x10($v1)
/* 1974 80026574 02261025 */ or $v0, $s1, $a2
/* 1978 80026578 AC620014 */ sw $v0, 0x14($v1)
/* 197C 8002657C 24620020 */ addiu $v0, $v1, 0x20
/* 1980 80026580 350800E0 */ ori $t0, $t0, 0xe0
/* 1984 80026584 AE420000 */ sw $v0, ($s2)
/* 1988 80026588 24620028 */ addiu $v0, $v1, 0x28
/* 198C 8002658C AC790018 */ sw $t9, 0x18($v1)
/* 1990 80026590 AC68001C */ sw $t0, 0x1c($v1)
/* 1994 80026594 AE420000 */ sw $v0, ($s2)
/* 1998 80026598 24620030 */ addiu $v0, $v1, 0x30
/* 199C 8002659C 01E73825 */ or $a3, $t7, $a3
/* 19A0 800265A0 AC780020 */ sw $t8, 0x20($v1)
/* 19A4 800265A4 AC6A0024 */ sw $t2, 0x24($v1)
/* 19A8 800265A8 AE420000 */ sw $v0, ($s2)
/* 19AC 800265AC 24620038 */ addiu $v0, $v1, 0x38
/* 19B0 800265B0 AC640028 */ sw $a0, 0x28($v1)
/* 19B4 800265B4 000D2200 */ sll $a0, $t5, 8
/* 19B8 800265B8 348400E0 */ ori $a0, $a0, 0xe0
/* 19BC 800265BC 00042400 */ sll $a0, $a0, 0x10
/* 19C0 800265C0 AC67002C */ sw $a3, 0x2c($v1)
/* 19C4 800265C4 AE420000 */ sw $v0, ($s2)
/* 19C8 800265C8 24620040 */ addiu $v0, $v1, 0x40
/* 19CC 800265CC AC790030 */ sw $t9, 0x30($v1)
/* 19D0 800265D0 AC640034 */ sw $a0, 0x34($v1)
/* 19D4 800265D4 AE420000 */ sw $v0, ($s2)
/* 19D8 800265D8 24620048 */ addiu $v0, $v1, 0x48
/* 19DC 800265DC 02052825 */ or $a1, $s0, $a1
/* 19E0 800265E0 01E63025 */ or $a2, $t7, $a2
/* 19E4 800265E4 AC780038 */ sw $t8, 0x38($v1)
/* 19E8 800265E8 AC6B003C */ sw $t3, 0x3c($v1)
/* 19EC 800265EC AE420000 */ sw $v0, ($s2)
/* 19F0 800265F0 24620050 */ addiu $v0, $v1, 0x50
/* 19F4 800265F4 348400E0 */ ori $a0, $a0, 0xe0
/* 19F8 800265F8 AC650040 */ sw $a1, 0x40($v1)
/* 19FC 800265FC AC660044 */ sw $a2, 0x44($v1)
/* 1A00 80026600 AE420000 */ sw $v0, ($s2)
/* 1A04 80026604 24620058 */ addiu $v0, $v1, 0x58
/* 1A08 80026608 AC790048 */ sw $t9, 0x48($v1)
/* 1A0C 8002660C AC64004C */ sw $a0, 0x4c($v1)
/* 1A10 80026610 AE420000 */ sw $v0, ($s2)
/* 1A14 80026614 AC780050 */ sw $t8, 0x50($v1)
/* 1A18 80026618 AC6C0054 */ sw $t4, 0x54($v1)
/* 1A1C 8002661C 25C20001 */ addiu $v0, $t6, 1
.L80026620:
/* 1A20 80026620 0040702D */ daddu $t6, $v0, $zero
.L80026624:
/* 1A24 80026624 00021400 */ sll $v0, $v0, 0x10
/* 1A28 80026628 00021403 */ sra $v0, $v0, 0x10
/* 1A2C 8002662C 2842000F */ slti $v0, $v0, 0xf
/* 1A30 80026630 1440FF90 */ bnez $v0, .L80026474
/* 1A34 80026634 000E1400 */ sll $v0, $t6, 0x10
/* 1A38 80026638 26C20001 */ addiu $v0, $s6, 1
/* 1A3C 8002663C 0040B02D */ daddu $s6, $v0, $zero
/* 1A40 80026640 00021400 */ sll $v0, $v0, 0x10
/* 1A44 80026644 00021403 */ sra $v0, $v0, 0x10
/* 1A48 80026648 28420014 */ slti $v0, $v0, 0x14
/* 1A4C 8002664C 1440FF73 */ bnez $v0, .L8002641C
/* 1A50 80026650 0000702D */ daddu $t6, $zero, $zero
/* 1A54 80026654 3C06800A */ lui $a2, %hi(gMasterGfxPos)
/* 1A58 80026658 24C6A66C */ addiu $a2, $a2, %lo(gMasterGfxPos)
/* 1A5C 8002665C 3C038007 */ lui $v1, %hi(D_80074010)
/* 1A60 80026660 24634010 */ addiu $v1, $v1, %lo(D_80074010)
/* 1A64 80026664 8CC50000 */ lw $a1, ($a2)
/* 1A68 80026668 3C08800A */ lui $t0, %hi(gDisplayContext)
/* 1A6C 8002666C 8D08A674 */ lw $t0, %lo(gDisplayContext)($t0)
/* 1A70 80026670 94620000 */ lhu $v0, ($v1)
/* 1A74 80026674 00A0382D */ daddu $a3, $a1, $zero
/* 1A78 80026678 24A50008 */ addiu $a1, $a1, 8
/* 1A7C 8002667C 25040230 */ addiu $a0, $t0, 0x230
/* 1A80 80026680 24420001 */ addiu $v0, $v0, 1
/* 1A84 80026684 A4620000 */ sh $v0, ($v1)
/* 1A88 80026688 3C02E900 */ lui $v0, 0xe900
/* 1A8C 8002668C ACC50000 */ sw $a1, ($a2)
/* 1A90 80026690 ACE20000 */ sw $v0, ($a3)
/* 1A94 80026694 24A20008 */ addiu $v0, $a1, 8
/* 1A98 80026698 ACE00004 */ sw $zero, 4($a3)
/* 1A9C 8002669C ACC20000 */ sw $v0, ($a2)
/* 1AA0 800266A0 3C02DF00 */ lui $v0, 0xdf00
/* 1AA4 800266A4 ACA20000 */ sw $v0, ($a1)
/* 1AA8 800266A8 ACA00004 */ sw $zero, 4($a1)
/* 1AAC 800266AC 24A5FDD8 */ addiu $a1, $a1, -0x228
/* 1AB0 800266B0 00A82823 */ subu $a1, $a1, $t0
/* 1AB4 800266B4 000528C3 */ sra $a1, $a1, 3
/* 1AB8 800266B8 000528C0 */ sll $a1, $a1, 3
/* 1ABC 800266BC 0000302D */ daddu $a2, $zero, $zero
/* 1AC0 800266C0 0C00B331 */ jal nuGfxTaskStart
/* 1AC4 800266C4 3C070004 */ lui $a3, 4
/* 1AC8 800266C8 3C038007 */ lui $v1, %hi(gCurrentDisplayContextIndex)
/* 1ACC 800266CC 246341F4 */ addiu $v1, $v1, %lo(gCurrentDisplayContextIndex)
/* 1AD0 800266D0 8C620000 */ lw $v0, ($v1)
/* 1AD4 800266D4 38420001 */ xori $v0, $v0, 1
/* 1AD8 800266D8 AC620000 */ sw $v0, ($v1)
/* 1ADC 800266DC 8FBF003C */ lw $ra, 0x3c($sp)
/* 1AE0 800266E0 8FBE0038 */ lw $fp, 0x38($sp)
/* 1AE4 800266E4 8FB70034 */ lw $s7, 0x34($sp)
/* 1AE8 800266E8 8FB60030 */ lw $s6, 0x30($sp)
/* 1AEC 800266EC 8FB5002C */ lw $s5, 0x2c($sp)
/* 1AF0 800266F0 8FB40028 */ lw $s4, 0x28($sp)
/* 1AF4 800266F4 8FB30024 */ lw $s3, 0x24($sp)
/* 1AF8 800266F8 8FB20020 */ lw $s2, 0x20($sp)
/* 1AFC 800266FC 8FB1001C */ lw $s1, 0x1c($sp)
/* 1B00 80026700 8FB00018 */ lw $s0, 0x18($sp)
/* 1B04 80026704 03E00008 */ jr $ra
/* 1B08 80026708 27BD0040 */ addiu $sp, $sp, 0x40

View File

@ -800,7 +800,7 @@ segments:
- [0xE2950, .data, B4580]
- [0xE2960, .data, entity]
- [0xE2980, .data, msg]
- [0xE2CA0, data]
- [0xE2CA0, .data, C50A0]
- start: 0xE2DF0
type: .data
name: cd180_len_38f0