From 75b72af8de8d41935585c3f79b8ac477777f35fe Mon Sep 17 00:00:00 2001 From: louist103 <35883445+louist103@users.noreply.github.com> Date: Wed, 4 Aug 2021 12:41:56 -0400 Subject: [PATCH] Item00 BSS OK (#881) * bss OK * Small fix * Pr fixes (Dragorn) and some named symbols * added the comment Fig requested * rip jenkins box * Update src/code/z_en_item00.c Co-authored-by: Dragorn421 * Change combined if to 2 ifs * GI enum Co-authored-by: Dragorn421 --- data/z_en_item00.bss.s | 17 ---- include/z64actor.h | 4 +- spec | 1 - src/code/z_en_item00.c | 225 ++++++++++++++++++++--------------------- 4 files changed, 113 insertions(+), 134 deletions(-) delete mode 100644 data/z_en_item00.bss.s diff --git a/data/z_en_item00.bss.s b/data/z_en_item00.bss.s deleted file mode 100644 index 5a3fc376b0..0000000000 --- a/data/z_en_item00.bss.s +++ /dev/null @@ -1,17 +0,0 @@ -.include "macro.inc" - -# assembler directives -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches -.set gp=64 # allow use of 64-bit general purpose registers - -.section .bss - -.balign 16 - -glabel D_80157D90 -glabel D_80157D90_ - .space 0x4 - -glabel D_80157D94 - .space 0xC diff --git a/include/z64actor.h b/include/z64actor.h index b04dd9eeb0..4db6ab5403 100644 --- a/include/z64actor.h +++ b/include/z64actor.h @@ -250,12 +250,12 @@ typedef struct EnItem00 { /* 0x000 */ Actor actor; /* 0x14C */ EnItem00ActionFunc actionFunc; /* 0x150 */ s16 collectibleFlag; - /* 0x152 */ s16 unk_152; + /* 0x152 */ s16 getItemId; /* 0x154 */ s16 unk_154; /* 0x156 */ s16 unk_156; /* 0x158 */ s16 unk_158; /* 0x15A */ s16 unk_15A; - /* 0x15C */ f32 unk_15C; + /* 0x15C */ f32 scale; /* 0x160 */ ColliderCylinder collider; } EnItem00; // size = 0x1AC diff --git a/spec b/spec index 39f5a26088..a840d26d06 100644 --- a/spec +++ b/spec @@ -283,7 +283,6 @@ beginseg after "dmadata" include "build/src/code/z_en_a_keep.o" include "build/src/code/z_en_item00.o" - include "build/data/z_en_item00.bss.o" include "build/src/code/z_eff_blure.o" include "build/src/code/z_eff_shield_particle.o" include "build/src/code/z_eff_spark.o" diff --git a/src/code/z_en_item00.c b/src/code/z_en_item00.c index a7ceba2a75..dbc0b1f989 100644 --- a/src/code/z_en_item00.c +++ b/src/code/z_en_item00.c @@ -17,6 +17,11 @@ void func_8001E1C8(EnItem00* this, GlobalContext* globalCtx); void func_8001E304(EnItem00* this, GlobalContext* globalCtx); void func_8001E5C8(EnItem00* this, GlobalContext* globalCtx); +void EnItem00_DrawRupee(EnItem00* this, GlobalContext* globalCtx); +void EnItem00_DrawCollectible(EnItem00* this, GlobalContext* globalCtx); +void EnItem00_DrawHeartContainer(EnItem00* this, GlobalContext* globalCtx); +void EnItem00_DrawHeartPiece(EnItem00* this, GlobalContext* globalCtx); + const ActorInit En_Item00_InitVars = { ACTOR_EN_ITEM00, ACTORCAT_MISC, @@ -55,7 +60,7 @@ static InitChainEntry sInitChain[] = { static Color_RGBA8 sEffectPrimColor = { 255, 255, 127, 0 }; static Color_RGBA8 sEffectEnvColor = { 255, 255, 255, 0 }; -static Vec3f sEffectPos = { 0.0f, 0.1f, 0.0f }; +static Vec3f sEffectVelocity = { 0.0f, 0.1f, 0.0f }; static Vec3f sEffectAccel = { 0.0f, 0.01f, 0.0f }; static void* sRupeeTex[] = { @@ -327,14 +332,13 @@ void EnItem00_SetupAction(EnItem00* this, EnItem00ActionFunc actionFunc) { void EnItem00_Init(Actor* thisx, GlobalContext* globalCtx) { EnItem00* this = THIS; - s32 pad2; - f32 sp34 = 980.0f; - f32 sp30 = 6.0f; - s32 getItemId = 0; - s16 spawnParam8000; - s32 pad3; + s32 pad; + f32 yOffset = 980.0f; + f32 shadowScale = 6.0f; + s32 getItemId = GI_NONE; + s16 spawnParam8000 = this->actor.params & 0x8000; + s32 pad1; - spawnParam8000 = this->actor.params & 0x8000; this->collectibleFlag = (this->actor.params & 0x3F00) >> 8; this->actor.params &= 0xFF; @@ -355,44 +359,44 @@ void EnItem00_Init(Actor* thisx, GlobalContext* globalCtx) { case ITEM00_RUPEE_BLUE: case ITEM00_RUPEE_RED: Actor_SetScale(&this->actor, 0.015f); - this->unk_15C = 0.015f; - sp34 = 750.0f; + this->scale = 0.015f; + yOffset = 750.0f; break; case ITEM00_SMALL_KEY: this->unk_158 = 0; Actor_SetScale(&this->actor, 0.03f); - this->unk_15C = 0.03f; - sp34 = 350.0f; + this->scale = 0.03f; + yOffset = 350.0f; break; case ITEM00_HEART_PIECE: this->unk_158 = 0; - sp34 = 650.0f; + yOffset = 650.0f; Actor_SetScale(&this->actor, 0.02f); - this->unk_15C = 0.02f; + this->scale = 0.02f; break; case ITEM00_HEART: this->actor.home.rot.z = Rand_CenteredFloat(65535.0f); - sp34 = 430.0f; + yOffset = 430.0f; Actor_SetScale(&this->actor, 0.02f); - this->unk_15C = 0.02f; + this->scale = 0.02f; break; case ITEM00_HEART_CONTAINER: - sp34 = 430.0f; + yOffset = 430.0f; this->unk_158 = 0; Actor_SetScale(&this->actor, 0.02f); - this->unk_15C = 0.02f; + this->scale = 0.02f; break; case ITEM00_ARROWS_SINGLE: - sp34 = 400.0f; + yOffset = 400.0f; Actor_SetScale(&this->actor, 0.02f); - this->unk_15C = 0.02f; + this->scale = 0.02f; break; case ITEM00_ARROWS_SMALL: case ITEM00_ARROWS_MEDIUM: case ITEM00_ARROWS_LARGE: Actor_SetScale(&this->actor, 0.035f); - this->unk_15C = 0.035f; - sp34 = 250.0f; + this->scale = 0.035f; + yOffset = 250.0f; break; case ITEM00_BOMBS_A: case ITEM00_BOMBS_B: @@ -402,45 +406,45 @@ void EnItem00_Init(Actor* thisx, GlobalContext* globalCtx) { case ITEM00_SEEDS: case ITEM00_BOMBS_SPECIAL: Actor_SetScale(&this->actor, 0.03f); - this->unk_15C = 0.03f; - sp34 = 320.0f; + this->scale = 0.03f; + yOffset = 320.0f; break; case ITEM00_MAGIC_LARGE: Actor_SetScale(&this->actor, 0.045 - 1e-10); - this->unk_15C = 0.045 - 1e-10; - sp34 = 320.0f; + this->scale = 0.045 - 1e-10; + yOffset = 320.0f; break; case ITEM00_RUPEE_ORANGE: Actor_SetScale(&this->actor, 0.045 - 1e-10); - this->unk_15C = 0.045 - 1e-10; - sp34 = 750.0f; + this->scale = 0.045 - 1e-10; + yOffset = 750.0f; break; case ITEM00_RUPEE_PURPLE: Actor_SetScale(&this->actor, 0.03f); - this->unk_15C = 0.03f; - sp34 = 750.0f; + this->scale = 0.03f; + yOffset = 750.0f; break; case ITEM00_FLEXIBLE: - sp34 = 500.0f; + yOffset = 500.0f; Actor_SetScale(&this->actor, 0.01f); - this->unk_15C = 0.01f; + this->scale = 0.01f; break; case ITEM00_SHIELD_DEKU: this->actor.objBankIndex = Object_GetIndex(&globalCtx->objectCtx, OBJECT_GI_SHIELD_1); Actor_SetObjectDependency(globalCtx, &this->actor); Actor_SetScale(&this->actor, 0.5f); - this->unk_15C = 0.5f; - sp34 = 0.0f; - sp30 = 0.6f; + this->scale = 0.5f; + yOffset = 0.0f; + shadowScale = 0.6f; this->actor.world.rot.x = 0x4000; break; case ITEM00_SHIELD_HYLIAN: this->actor.objBankIndex = Object_GetIndex(&globalCtx->objectCtx, OBJECT_GI_SHIELD_2); Actor_SetObjectDependency(globalCtx, &this->actor); Actor_SetScale(&this->actor, 0.5f); - this->unk_15C = 0.5f; - sp34 = 0.0f; - sp30 = 0.6f; + this->scale = 0.5f; + yOffset = 0.0f; + shadowScale = 0.6f; this->actor.world.rot.x = 0x4000; break; case ITEM00_TUNIC_ZORA: @@ -448,18 +452,18 @@ void EnItem00_Init(Actor* thisx, GlobalContext* globalCtx) { this->actor.objBankIndex = Object_GetIndex(&globalCtx->objectCtx, OBJECT_GI_CLOTHES); Actor_SetObjectDependency(globalCtx, &this->actor); Actor_SetScale(&this->actor, 0.5f); - this->unk_15C = 0.5f; - sp34 = 0.0f; - sp30 = 0.6f; + this->scale = 0.5f; + yOffset = 0.0f; + shadowScale = 0.6f; this->actor.world.rot.x = 0x4000; break; } this->unk_156 = 0; - ActorShape_Init(&this->actor.shape, sp34, ActorShadow_DrawCircle, sp30); + ActorShape_Init(&this->actor.shape, yOffset, ActorShadow_DrawCircle, shadowScale); this->actor.shape.shadowAlpha = 180; this->actor.focus.pos = this->actor.world.pos; - this->unk_152 = 0; + this->getItemId = GI_NONE; if (!spawnParam8000) { EnItem00_SetupAction(this, func_8001DFC8); @@ -540,7 +544,7 @@ void EnItem00_Init(Actor* thisx, GlobalContext* globalCtx) { break; } - if ((getItemId != 0) && !Actor_HasParent(&this->actor, globalCtx)) { + if ((getItemId != GI_NONE) && !Actor_HasParent(&this->actor, globalCtx)) { func_8002F554(&this->actor, globalCtx, getItemId); } @@ -561,11 +565,13 @@ void func_8001DFC8(EnItem00* this, GlobalContext* globalCtx) { } else { if ((this->actor.params >= ITEM00_SHIELD_DEKU) && (this->actor.params != ITEM00_BOMBS_SPECIAL)) { if (this->unk_15A == -1) { - if (!Math_SmoothStepToS(&this->actor.shape.rot.x, this->actor.world.rot.x - 0x4000, 2, 3000, 1500)) { + if (Math_SmoothStepToS(&this->actor.shape.rot.x, this->actor.world.rot.x - 0x4000, 2, 3000, 1500) == + 0) { this->unk_15A = -2; } } else { - if (!Math_SmoothStepToS(&this->actor.shape.rot.x, -this->actor.world.rot.x - 0x4000, 2, 3000, 1500)) { + if (Math_SmoothStepToS(&this->actor.shape.rot.x, -this->actor.world.rot.x - 0x4000, 2, 3000, 1500) == + 0) { this->unk_15A = -1; } } @@ -600,17 +606,18 @@ void func_8001DFC8(EnItem00* this, GlobalContext* globalCtx) { void func_8001E1C8(EnItem00* this, GlobalContext* globalCtx) { f32 originalVelocity; - Vec3f pos; + Vec3f effectPos; if (this->actor.params <= ITEM00_RUPEE_RED) { this->actor.shape.rot.y += 960; } if (globalCtx->gameplayFrames & 1) { - pos.x = this->actor.world.pos.x + Rand_CenteredFloat(10.0f); - pos.y = this->actor.world.pos.y + Rand_CenteredFloat(10.0f); - pos.z = this->actor.world.pos.z + Rand_CenteredFloat(10.0f); - EffectSsKiraKira_SpawnSmall(globalCtx, &pos, &sEffectPos, &sEffectAccel, &sEffectPrimColor, &sEffectEnvColor); + effectPos.x = this->actor.world.pos.x + Rand_CenteredFloat(10.0f); + effectPos.y = this->actor.world.pos.y + Rand_CenteredFloat(10.0f); + effectPos.z = this->actor.world.pos.z + Rand_CenteredFloat(10.0f); + EffectSsKiraKira_SpawnSmall(globalCtx, &effectPos, &sEffectVelocity, &sEffectAccel, &sEffectPrimColor, + &sEffectEnvColor); } if (this->actor.bgCheckFlags & 0x0003) { @@ -668,7 +675,8 @@ void func_8001E304(EnItem00* this, GlobalContext* globalCtx) { pos.x = this->actor.world.pos.x + (Rand_ZeroOne() - 0.5f) * 10.0f; pos.y = this->actor.world.pos.y + (Rand_ZeroOne() - 0.5f) * 10.0f; pos.z = this->actor.world.pos.z + (Rand_ZeroOne() - 0.5f) * 10.0f; - EffectSsKiraKira_SpawnSmall(globalCtx, &pos, &sEffectPos, &sEffectAccel, &sEffectPrimColor, &sEffectEnvColor); + EffectSsKiraKira_SpawnSmall(globalCtx, &pos, &sEffectVelocity, &sEffectAccel, &sEffectPrimColor, + &sEffectEnvColor); } if (this->actor.bgCheckFlags & 0x0003) { @@ -682,12 +690,12 @@ void func_8001E304(EnItem00* this, GlobalContext* globalCtx) { void func_8001E5C8(EnItem00* this, GlobalContext* globalCtx) { Player* player = PLAYER; - if (this->unk_152 != 0) { + if (this->getItemId != GI_NONE) { if (!Actor_HasParent(&this->actor, globalCtx)) { - func_8002F434(&this->actor, globalCtx, this->unk_152, 50.0f, 80.0f); + func_8002F434(&this->actor, globalCtx, this->getItemId, 50.0f, 80.0f); this->unk_15A++; } else { - this->unk_152 = 0; + this->getItemId = GI_NONE; } } @@ -711,17 +719,18 @@ void func_8001E5C8(EnItem00* this, GlobalContext* globalCtx) { } } -extern s32 D_80157D90; -extern u32 D_80157D90_; // these must be defined separately for EnItem00_Update to match. -extern s16 D_80157D94; - +// The BSS in the function acted weird in the past. It is matching now but might cause issues in the future void EnItem00_Update(Actor* thisx, GlobalContext* globalCtx) { - EnItem00* this = THIS; + static u32 D_80157D90; + static s16 D_80157D94[1]; s16* params; - s32 getItemId = 0; - s16 sp3A = 0; Actor* dynaActor; + s32 getItemId = GI_NONE; + s16 sp3A = 0; s16 i; + u32* temp; + EnItem00* this = THIS; + s32 pad; if (this->unk_15A > 0) { this->unk_15A--; @@ -732,36 +741,38 @@ void EnItem00_Update(Actor* thisx, GlobalContext* globalCtx) { } this->actionFunc(this, globalCtx); + Math_SmoothStepToF(&this->actor.scale.x, this->scale, 0.1f, this->scale * 0.1f, 0.0f); + temp = &D_80157D90; - Math_SmoothStepToF(&this->actor.scale.x, this->unk_15C, 0.1f, this->unk_15C * 0.1f, 0.0f); this->actor.scale.z = this->actor.scale.x; this->actor.scale.y = this->actor.scale.x; if (this->actor.gravity) { if (this->actor.bgCheckFlags & 0x0003) { - // Separate symbols seem to be used here for 0x80157D90 since the loads and stores are completely separate - if ((u32)D_80157D90 != globalCtx->gameplayFrames) { - D_80157D90_ = globalCtx->gameplayFrames; - D_80157D94 = 0; - for (i = 0; i < BG_ACTOR_MAX; i++) { + if (*temp != globalCtx->gameplayFrames) { + D_80157D90 = globalCtx->gameplayFrames; + D_80157D94[0] = 0; + for (i = 0; i < 50; i++) { if (globalCtx->colCtx.dyna.bgActorFlags[i] & 1) { dynaActor = globalCtx->colCtx.dyna.bgActors[i].actor; - if ((dynaActor != NULL) && (dynaActor->update != NULL) && - ((dynaActor->world.pos.x != dynaActor->prevPos.x) || - (dynaActor->world.pos.y != dynaActor->prevPos.y) || - (dynaActor->world.pos.z != dynaActor->prevPos.z))) { - D_80157D94++; - break; + if ((dynaActor != NULL) && (dynaActor->update != NULL)) { + if ((dynaActor->world.pos.x != dynaActor->prevPos.x) || + (dynaActor->world.pos.y != dynaActor->prevPos.y) || + (dynaActor->world.pos.z != dynaActor->prevPos.z)) { + D_80157D94[0]++; + break; + } } } } } + } else { sp3A = 1; Actor_MoveForward(&this->actor); } - if (sp3A || D_80157D94) { + if (sp3A || D_80157D94[0]) { Actor_UpdateBgCheckInfo(globalCtx, &this->actor, 10.0f, 15.0f, 15.0f, 0x1D); if (this->actor.floorHeight <= -10000.0f) { @@ -776,14 +787,8 @@ void EnItem00_Update(Actor* thisx, GlobalContext* globalCtx) { if ((this->actor.params == ITEM00_SHIELD_DEKU) || (this->actor.params == ITEM00_SHIELD_HYLIAN) || (this->actor.params == ITEM00_TUNIC_ZORA) || (this->actor.params == ITEM00_TUNIC_GORON)) { - f32 newUnkBC = Math_CosS(this->actor.shape.rot.x) * 37.0f; - - this->actor.shape.yOffset = newUnkBC; - if (newUnkBC >= 0.0f) { - this->actor.shape.yOffset = this->actor.shape.yOffset; - } else { - this->actor.shape.yOffset = -this->actor.shape.yOffset; - } + this->actor.shape.yOffset = Math_CosS(this->actor.shape.rot.x) * 37.0f; + this->actor.shape.yOffset = ABS(this->actor.shape.yOffset); } if (this->unk_154 > 0) { @@ -881,7 +886,7 @@ void EnItem00_Update(Actor* thisx, GlobalContext* globalCtx) { params = &this->actor.params; - if ((getItemId != 0) && !Actor_HasParent(&this->actor, globalCtx)) { + if ((getItemId != GI_NONE) && !Actor_HasParent(&this->actor, globalCtx)) { func_8002F554(&this->actor, globalCtx, getItemId); } @@ -902,7 +907,7 @@ void EnItem00_Update(Actor* thisx, GlobalContext* globalCtx) { if ((*params <= ITEM00_RUPEE_RED) || (*params == ITEM00_RUPEE_ORANGE)) { Audio_PlaySoundGeneral(NA_SE_SY_GET_RUPY, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); - } else if (getItemId != 0) { + } else if (getItemId != GI_NONE) { if (Actor_HasParent(&this->actor, globalCtx)) { Flags_SetCollectible(globalCtx, this->collectibleFlag); Actor_Kill(&this->actor); @@ -921,21 +926,15 @@ void EnItem00_Update(Actor* thisx, GlobalContext* globalCtx) { this->actor.velocity.y = 0; this->actor.gravity = 0; - Actor_SetScale(&this->actor, this->unk_15C); + Actor_SetScale(&this->actor, this->scale); - this->unk_152 = 0; + this->getItemId = GI_NONE; EnItem00_SetupAction(this, func_8001E5C8); } -// Draw Function prototypes (used in EnItem00_Draw) -void func_8001EF30(EnItem00* this, GlobalContext* globalCtx); -void func_8001F080(EnItem00* this, GlobalContext* globalCtx); -void func_8001F1F4(EnItem00* this, GlobalContext* globalCtx); -void func_8001F334(EnItem00* this, GlobalContext* globalCtx); - void EnItem00_Draw(Actor* thisx, GlobalContext* globalCtx) { EnItem00* this = THIS; - f32 unkFloat; + f32 mtxScale; if (!(this->unk_156 & this->unk_158)) { switch (this->actor.params) { @@ -944,13 +943,13 @@ void EnItem00_Draw(Actor* thisx, GlobalContext* globalCtx) { case ITEM00_RUPEE_RED: case ITEM00_RUPEE_ORANGE: case ITEM00_RUPEE_PURPLE: - func_8001EF30(this, globalCtx); + EnItem00_DrawRupee(this, globalCtx); break; case ITEM00_HEART_PIECE: - func_8001F334(this, globalCtx); + EnItem00_DrawHeartPiece(this, globalCtx); break; case ITEM00_HEART_CONTAINER: - func_8001F1F4(this, globalCtx); + EnItem00_DrawHeartContainer(this, globalCtx); break; case ITEM00_HEART: if (this->unk_15A < 0) { @@ -962,8 +961,8 @@ void EnItem00_Draw(Actor* thisx, GlobalContext* globalCtx) { this->unk_15A = -2; } } else { - unkFloat = 16.0f; - Matrix_Scale(unkFloat, unkFloat, unkFloat, MTXMODE_APPLY); + mtxScale = 16.0f; + Matrix_Scale(mtxScale, mtxScale, mtxScale, MTXMODE_APPLY); GetItem_Draw(globalCtx, GID_HEART); } break; @@ -981,7 +980,7 @@ void EnItem00_Draw(Actor* thisx, GlobalContext* globalCtx) { case ITEM00_MAGIC_SMALL: case ITEM00_SEEDS: case ITEM00_SMALL_KEY: - func_8001F080(this, globalCtx); + EnItem00_DrawCollectible(this, globalCtx); break; case ITEM00_SHIELD_DEKU: GetItem_Draw(globalCtx, GID_SHIELD_DEKU); @@ -1004,9 +1003,9 @@ void EnItem00_Draw(Actor* thisx, GlobalContext* globalCtx) { /** * Draw Function used for Rupee types of En_Item00. */ -void func_8001EF30(EnItem00* this, GlobalContext* globalCtx) { +void EnItem00_DrawRupee(EnItem00* this, GlobalContext* globalCtx) { s32 pad; - s32 iconNb; + s32 texIndex; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_item00.c", 1546); @@ -1014,16 +1013,15 @@ void func_8001EF30(EnItem00* this, GlobalContext* globalCtx) { func_8002EBCC(&this->actor, globalCtx, 0); if (this->actor.params <= ITEM00_RUPEE_RED) { - iconNb = this->actor.params; + texIndex = this->actor.params; } else { - iconNb = this->actor.params - 0x10; + texIndex = this->actor.params - 0x10; } - if (1) {} // Necessary to match gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_item00.c", 1562), G_MTX_MODELVIEW | G_MTX_LOAD); - gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sRupeeTex[iconNb])); + gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sRupeeTex[texIndex])); gSPDisplayList(POLY_OPA_DISP++, &gRupeeDL); @@ -1033,22 +1031,22 @@ void func_8001EF30(EnItem00* this, GlobalContext* globalCtx) { /** * Draw Function used for most collectible types of En_Item00 (ammo, bombs, sticks, nuts, magic...). */ -void func_8001F080(EnItem00* this, GlobalContext* globalCtx) { - s32 iconNb = this->actor.params - 3; +void EnItem00_DrawCollectible(EnItem00* this, GlobalContext* globalCtx) { + s32 texIndex = this->actor.params - 3; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_item00.c", 1594); POLY_OPA_DISP = func_800BC8A0(globalCtx, POLY_OPA_DISP); if (this->actor.params == ITEM00_BOMBS_SPECIAL) { - iconNb = 1; + texIndex = 1; } else if (this->actor.params >= ITEM00_ARROWS_SMALL) { - iconNb -= 3; + texIndex -= 3; } POLY_OPA_DISP = func_800946E4(POLY_OPA_DISP); - gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sItemDropTex[iconNb])); + gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sItemDropTex[texIndex])); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_item00.c", 1607), G_MTX_MODELVIEW | G_MTX_LOAD); @@ -1060,7 +1058,7 @@ void func_8001F080(EnItem00* this, GlobalContext* globalCtx) { /** * Draw Function used for the Heart Container type of En_Item00. */ -void func_8001F1F4(EnItem00* this, GlobalContext* globalCtx) { +void EnItem00_DrawHeartContainer(EnItem00* this, GlobalContext* globalCtx) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_item00.c", 1623); @@ -1083,7 +1081,7 @@ void func_8001F1F4(EnItem00* this, GlobalContext* globalCtx) { /** * Draw Function used for the Piece of Heart type of En_Item00. */ -void func_8001F334(EnItem00* this, GlobalContext* globalCtx) { +void EnItem00_DrawHeartPiece(EnItem00* this, GlobalContext* globalCtx) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_item00.c", 1658); @@ -1173,7 +1171,6 @@ EnItem00* Item_DropCollectible(GlobalContext* globalCtx, Vec3f* spawnPos, s16 pa } } } - return spawnedActor; }