Enable full IDO warnings (#781)

* Fix a lot of IDO warnings (and some Clang ones)

* Format

* Put FULL_DISASM=0 back

* Fix bss
This commit is contained in:
EllipticEllipsis 2022-04-22 05:48:41 +01:00 committed by GitHub
parent e50c346ab8
commit 31f0e19b57
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
37 changed files with 78 additions and 79 deletions

View File

@ -100,7 +100,7 @@ ASFLAGS := -march=vr4300 -32 -Iinclude
MIPS_VERSION := -mips2
# we support Microsoft extensions such as anonymous structs, which the compiler does support but warns for their usage. Surpress the warnings with -woff.
CFLAGS += -G 0 -non_shared -Xfullwarn -Xcpluscomm $(IINC) -nostdinc -Wab,-r4300_mul -woff 624,649,838,712
CFLAGS += -G 0 -non_shared -fullwarn -verbose -Xcpluscomm $(IINC) -nostdinc -Wab,-r4300_mul -woff 624,649,838,712,516
# Use relocations and abi fpr names in the dump
OBJDUMP_FLAGS := -d -r -z -Mreg-names=32

View File

@ -2237,7 +2237,7 @@ void Scene_HeaderCmdPathList(GlobalContext* globalCtx, SceneCmd* cmd);
void Scene_HeaderCmdTransiActorList(GlobalContext* globalCtx, SceneCmd* cmd);
void Door_InitContext(GameState* gameState, DoorContext* doorCtx);
void Scene_HeaderCmdEnvLightSettings(GlobalContext* globalCtx, SceneCmd* cmd);
s32 Scene_LoadAreaTextures(GlobalContext* globalCtx, s32 fileIndex);
void Scene_LoadAreaTextures(GlobalContext* globalCtx, s32 fileIndex);
void Scene_HeaderCmdSkyboxSettings(GlobalContext* globalCtx, SceneCmd* cmd);
void Scene_HeaderCmdSkyboxDisables(GlobalContext* globalCtx, SceneCmd* cmd);
void Scene_HeaderCmdTimeSettings(GlobalContext* globalCtx, SceneCmd* cmd);
@ -2887,7 +2887,7 @@ void* GameAlloc_Malloc(GameAlloc* this, size_t size);
void GameAlloc_Free(GameAlloc* this, void* data);
void GameAlloc_Cleanup(GameAlloc* this);
void GameAlloc_Init(GameAlloc* this);
void* Graph_FaultClient(void);
void Graph_FaultClient(void);
void Graph_InitTHGA(TwoHeadGfxArena* arena, Gfx* buffer, s32 size);
void Graph_SetNextGfxPool(GraphicsContext* gfxCtx);
GameStateOverlay* Graph_GetNextGameState(GameState* gameState);

View File

@ -187,7 +187,10 @@ typedef struct SkelAnime {
/* 0x24 */ Vec3s* morphTable; // Table of values used to morph between animations
/* 0x28 */ f32 morphWeight; // Weight of the current animation morph as a fraction in [0,1]
/* 0x2C */ f32 morphRate; // Reciprocal of the number of frames in the morph
/* 0x30 */ s32 (*update)(); // Can be Loop, Partial loop, Play once, Morph, or Tapered morph. Link only has Loop, Play once, and Morph
/* 0x30 */ union {
s32 (*normal)(struct SkelAnime*);// Can be Loop, Partial loop, Play once, Morph, or Tapered morph
s32 (*link)(struct GlobalContext*, struct SkelAnime*); // Loop, Play once, and Morph
} update;
/* 0x34 */ s8 initFlags; // Flags used when initializing Link's skeleton
/* 0x35 */ u8 moveFlags; // Flags used for animations that move the actor in worldspace.
/* 0x36 */ s16 prevRot; // Previous rotation in worldspace.

View File

@ -459,6 +459,7 @@ s32 AudioLoad_SyncLoadInstrument(s32 fontId, s32 instId, s32 drumId) {
if (instrument->normalRangeHi != 0x7F) {
return AudioLoad_SyncLoadSample(instrument->highNotesSound.sample, fontId);
}
// TODO: is this missing return UB?
} else if (instId == 0x7F) {
Drum* drum = AudioPlayback_GetDrum(fontId, drumId);
@ -468,6 +469,7 @@ s32 AudioLoad_SyncLoadInstrument(s32 fontId, s32 instId, s32 drumId) {
AudioLoad_SyncLoadSample(drum->sound.sample, fontId);
return 0;
}
// TODO: is this missing return UB?
}
void AudioLoad_AsyncLoad(s32 tableType, s32 id, s32 nChunks, s32 retData, OSMesgQueue* retQueue) {

View File

@ -13,7 +13,7 @@ GfxMasterList* gGfxMasterDL;
CfbInfo sGraphCfbInfos[3];
OSTime sGraphTaskStartTime;
void* Graph_FaultClient(void) {
void Graph_FaultClient(void) {
FaultDrawer_DrawText(30, 100, "ShowFrameBuffer PAGE 0/1");
osViSwapBuffer(SysCfb_GetFbPtr(0));
osViSetMode(D_801FBB88);

View File

@ -240,7 +240,7 @@ void ActorShadow_DrawFeet(Actor* actor, Lights* mapper, GlobalContext* globalCtx
}
actor->shape.unk_17 &= ~spB8;
if (!mapper->l.l) {} // POSSIBLE FAKE MATCH
if ((uintptr_t)mapper->l.l) {} // POSSIBLE FAKE MATCH
}
}

View File

@ -4441,11 +4441,13 @@ s32 WaterBox_GetSurfaceImpl(GlobalContext* globalCtx, CollisionContext* colCtx,
return false;
}
// boolean
s32 WaterBox_GetSurface1(GlobalContext* globalCtx, CollisionContext* colCtx, f32 x, f32 z, f32* ySurface,
WaterBox** outWaterBox) {
WaterBox_GetSurface1_2(globalCtx, colCtx, x, z, ySurface, outWaterBox);
return WaterBox_GetSurface1_2(globalCtx, colCtx, x, z, ySurface, outWaterBox);
}
// boolean
s32 WaterBox_GetSurface1_2(GlobalContext* globalCtx, CollisionContext* colCtx, f32 x, f32 z, f32* ySurface,
WaterBox** outWaterBox) {
s32 bgId;

View File

@ -1418,6 +1418,7 @@ void Cutscene_ProcessCommands(GlobalContext* globalCtx, CutsceneContext* csCtx,
}
}
#else
void Cutscene_ProcessCommands(GlobalContext* globalCtx, CutsceneContext* csCtx, u8* cutscenePtr);
#pragma GLOBAL_ASM("asm/non_matchings/code/z_demo/Cutscene_ProcessCommands.s")
#endif

View File

@ -309,6 +309,7 @@ void EffectBlure_GetComputedValues(EffectBlure* this, s32 index, f32 ratio, Vec3
Vec3s sp30;
f32 mode4Param;
EffectBlureElement* elem = &this->elements[index];
Vec3s* unusedPtr = &sp30; // Optimized out but seems necessary to match stack usage
switch (this->calcMode) {
case 1:
@ -367,8 +368,6 @@ void EffectBlure_GetComputedValues(EffectBlure* this, s32 index, f32 ratio, Vec3
break;
}
sp30 = sp30; // Optimized out but seems necessary to match stack usage
if (this->flags & 0x10) {
color1->r = color1->g = color1->b = color1->a = 255;
color2->r = color2->g = color2->b = color2->a = 255;

View File

@ -216,7 +216,7 @@ void Lights_BindAll(Lights* lights, LightNode* listHead, Vec3f* refPos, GlobalCo
}
}
LightNode* Lights_FindBufSlot() {
LightNode* Lights_FindBufSlot(void) {
LightNode* ret;
if (sLightsBuffer.numOccupied >= LIGHTS_BUFFER_SIZE) {

View File

@ -638,7 +638,7 @@ void Distortion_Update(void) {
sDistortionContext.countdown = 2;
player = GET_PLAYER(globalCtx);
if (&player->actor != NULL) {
if (player != NULL) {
Actor_GetWorldPosShapeRot(&playerPosRot, &player->actor);
}

View File

@ -341,7 +341,7 @@ void Scene_HeaderCmdEnvLightSettings(GlobalContext* globalCtx, SceneCmd* cmd) {
* Loads different texture files for each region of the world.
* These later are stored in segment 0x06, and used in maps.
*/
s32 Scene_LoadAreaTextures(GlobalContext* globalCtx, s32 fileIndex) {
void Scene_LoadAreaTextures(GlobalContext* globalCtx, s32 fileIndex) {
static RomFile sceneTextureFiles[9] = {
{ 0, 0 }, // Default
{ SEGMENT_ROM_START(scene_texture_01), SEGMENT_ROM_END(scene_texture_01) },
@ -358,10 +358,8 @@ s32 Scene_LoadAreaTextures(GlobalContext* globalCtx, s32 fileIndex) {
if (size != 0) {
globalCtx->roomCtx.unk74 = THA_AllocEndAlign16(&globalCtx->state.heap, size);
return DmaMgr_SendRequest0(globalCtx->roomCtx.unk74, vromStart, size);
DmaMgr_SendRequest0(globalCtx->roomCtx.unk74, vromStart, size);
}
// UB: Undefined behaviour to not have a return statement here, but it breaks matching to add one.
}
// SceneTableEntry Header Command 0x11: Skybox Settings

View File

@ -234,7 +234,7 @@ f32 Scene_LagrangeInterp(s32 n, f32 x[], f32 fx[], f32 xp) {
s32 i;
s32 j;
for (i = 0, weightsPtr = weights, xPtr1 = x, fxPtr = fx, weightsPtr = weightsPtr; i < n; i++) {
for (i = 0, xPtr1 = x, fxPtr = fx, weightsPtr = weights; i < n; i++) {
for (xVal = *xPtr1, m = 1.0f, j = 0, xPtr2 = x; j < n; j++) {
if (j != i) {
m *= xVal - (*xPtr2);

View File

@ -1238,9 +1238,9 @@ void SkelAnime_InitLink(GlobalContext* globalCtx, SkelAnime* skelAnime, FlexSkel
*/
void LinkAnimation_SetUpdateFunction(SkelAnime* skelAnime) {
if (skelAnime->mode <= ANIMMODE_LOOP_INTERP) {
skelAnime->update = LinkAnimation_Loop;
skelAnime->update.link = LinkAnimation_Loop;
} else {
skelAnime->update = LinkAnimation_Once;
skelAnime->update.link = LinkAnimation_Once;
}
skelAnime->morphWeight = 0.0f;
}
@ -1250,7 +1250,7 @@ void LinkAnimation_SetUpdateFunction(SkelAnime* skelAnime) {
* finishes.
*/
s32 LinkAnimation_Update(GlobalContext* globalCtx, SkelAnime* skelAnime) {
return skelAnime->update(globalCtx, skelAnime);
return skelAnime->update.link(globalCtx, skelAnime);
}
/**
@ -1355,7 +1355,7 @@ void LinkAnimation_Change(GlobalContext* globalCtx, SkelAnime* skelAnime, LinkAn
SkelAnime_CopyFrameTable(skelAnime, skelAnime->morphTable, skelAnime->jointTable);
morphFrames = -morphFrames;
} else {
skelAnime->update = LinkAnimation_Morph;
skelAnime->update.link = LinkAnimation_Morph;
AnimationContext_SetLoadFrame(globalCtx, animation, (s32)startFrame, skelAnime->limbCount,
skelAnime->morphTable);
}
@ -1599,11 +1599,11 @@ void SkelAnime_InitSkin(GameState* gameState, SkelAnime* skelAnime, SkeletonHead
*/
void SkelAnime_SetUpdate(SkelAnime* skelAnime) {
if (skelAnime->mode <= ANIMMODE_LOOP_INTERP) {
skelAnime->update = SkelAnime_LoopFull;
skelAnime->update.normal = SkelAnime_LoopFull;
} else if (skelAnime->mode <= ANIMMODE_ONCE_INTERP) {
skelAnime->update = SkelAnime_Once;
skelAnime->update.normal = SkelAnime_Once;
} else {
skelAnime->update = SkelAnime_LoopPartial;
skelAnime->update.normal = SkelAnime_LoopPartial;
}
}
@ -1612,7 +1612,7 @@ void SkelAnime_SetUpdate(SkelAnime* skelAnime) {
* finishes.
*/
s32 SkelAnime_Update(SkelAnime* skelAnime) {
return skelAnime->update(skelAnime);
return skelAnime->update.normal(skelAnime);
}
/**
@ -1774,10 +1774,10 @@ void Animation_ChangeImpl(SkelAnime* skelAnime, AnimationHeader* animation, f32
morphFrames = -morphFrames;
} else {
if (taper != ANIMTAPER_NONE) {
skelAnime->update = SkelAnime_MorphTaper;
skelAnime->update.normal = SkelAnime_MorphTaper;
skelAnime->taper = taper;
} else {
skelAnime->update = SkelAnime_Morph;
skelAnime->update.normal = SkelAnime_Morph;
}
SkelAnime_GetFrameData(animation, startFrame, skelAnime->limbCount, skelAnime->morphTable);
}

View File

@ -1495,7 +1495,7 @@ void func_80146DF8(SramContext* sramCtx) {
}
void Sram_InitSram(GameState* gameState, SramContext* sramCtx) {
if (&gSaveContext.save) {}
if (gSaveContext.save.entranceIndex) {} // Required to match
func_801A3D98(gSaveContext.options.audioSetting);
}

View File

@ -300,7 +300,6 @@ void func_809543D4(BgIngate* this, GlobalContext* globalCtx) {
gSaveContext.save.weekEventReg[90] &= (u8)~0x40;
func_8019F208();
} else {
this = this;
func_800B7298(globalCtx, &this->dyna.actor, 6);
this->unk160 &= ~0x4;
this->actionFunc = func_809541B8;

View File

@ -1093,6 +1093,7 @@ static Color_RGB8 D_808BBB50[] = {
{ 0, 50, 200 },
{ 120, 150, 0 },
};
void func_808BB4F4(DoorWarp1* this, GlobalContext* globalCtx2);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Door_Warp1/func_808BB4F4.s")
#endif

View File

@ -669,7 +669,6 @@ void func_809C2730(EnAob01* this, GlobalContext* globalCtx) {
void func_809C2788(EnAob01* this, GlobalContext* globalCtx) {
this->unk_2D2 |= 0x20;
if (func_809C25E4(this, globalCtx)) {
globalCtx = globalCtx;
if (func_801A8A50(0) != 0x41) {
globalCtx->nextEntranceIndex = 0x7C10;
gSaveContext.eventInf[0] = (gSaveContext.eventInf[0] & (u8)~7) | 3;

View File

@ -775,7 +775,6 @@ void EnBigpo_AdjustPoAlpha(EnBigpo* this, s32 alphaDiff) {
this->actor.scale.x = newXYScale;
this->actor.scale.z = newXYScale;
this->actor.scale.y = (0.007f - (0.007f * lowerAlpha)) + 0.007f;
lowerAlpha = lowerAlpha;
} else {
Actor_SetScale(&this->actor, lowerAlpha * 0.007f);
this->actor.world.pos.y = this->savedHeight + (lowerAlpha * 15.0f);

View File

@ -982,7 +982,6 @@ s32 EnGb2_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList,
EnGb2* this = THIS;
if (limbIndex == 7) {
limbIndex = limbIndex;
Matrix_RotateY(this->unk_270.y, MTXMODE_APPLY);
}

View File

@ -213,7 +213,7 @@ static AnimationInfoS sAnimations[] = {
{ &object_hakugin_demo_Anim_003378, 1.0f, 0, -1, ANIMMODE_LOOP, -4 },
};
EnGoStruct* func_80A10FD0(EnGoStruct ptr[], Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 arg4, f32 arg5, s32 arg6) {
EnGoStruct* func_80A10FD0(EnGoStruct* ptr, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 arg4, f32 arg5, s32 arg6) {
s32 i;
for (i = 16; i < 32; i++, ptr++) {
@ -233,7 +233,7 @@ EnGoStruct* func_80A10FD0(EnGoStruct ptr[], Vec3f arg1, Vec3f arg2, Vec3f arg3,
return ptr;
}
void func_80A11144(EnGoStruct ptr[], GlobalContext* globalCtx) {
void func_80A11144(EnGoStruct* ptr, GlobalContext* globalCtx) {
s32 pad;
s32 i;
s32 flag = false;
@ -279,7 +279,7 @@ void func_80A11144(EnGoStruct ptr[], GlobalContext* globalCtx) {
CLOSE_DISPS(globalCtx->state.gfxCtx);
}
void func_80A1143C(EnGoStruct ptr[], Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 arg4, f32 arg5, s32 arg6, s32 arg7) {
void func_80A1143C(EnGoStruct* ptr, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 arg4, f32 arg5, s32 arg6, s32 arg7) {
s32 i;
for (i = 16; i < 32; i++, ptr++) {
@ -299,7 +299,7 @@ void func_80A1143C(EnGoStruct ptr[], Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 arg
}
}
void func_80A115B4(EnGoStruct ptr[], GlobalContext* globalCtx) {
void func_80A115B4(EnGoStruct* ptr, GlobalContext* globalCtx) {
static TexturePtr D_80A16644[] = {
gDust8Tex, gDust7Tex, gDust6Tex, gDust5Tex, gDust4Tex, gDust3Tex, gDust2Tex, gDust1Tex,
};
@ -355,7 +355,7 @@ void func_80A115B4(EnGoStruct ptr[], GlobalContext* globalCtx) {
}
#ifdef NON_MATCHING
void func_80A118F8(EnGoStruct ptr[32], Vec3f arg1) {
void func_80A118F8(EnGoStruct* ptr, Vec3f arg1) {
static u8 D_80A1667C[] = {
3, 1, 1, 2, 3, 1, 1, 2, 3, 1, 1, 2, 3, 1, 1, 2,
};
@ -400,10 +400,11 @@ void func_80A118F8(EnGoStruct ptr[32], Vec3f arg1) {
static u8 D_80A1667C[] = {
3, 1, 1, 2, 3, 1, 1, 2, 3, 1, 1, 2, 3, 1, 1, 2,
};
void func_80A118F8(EnGoStruct* ptr, Vec3f arg1);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Go/func_80A118F8.s")
#endif
void func_80A11BF8(EnGoStruct ptr[], f32 arg1) {
void func_80A11BF8(EnGoStruct* ptr, f32 arg1) {
f32 test;
f32 test2;
f32 x;
@ -449,7 +450,7 @@ void func_80A11BF8(EnGoStruct ptr[], f32 arg1) {
}
#ifdef NON_MATCHING
void func_80A11EC0(EnGoStruct ptr[], GlobalContext* globalCtx, Gfx arg2[], Gfx arg3[], u8 arg4) {
void func_80A11EC0(EnGoStruct* ptr, GlobalContext* globalCtx, Gfx* arg2, Gfx* arg3, u8 arg4) {
s32 i;
u8 flag = false;
@ -484,6 +485,7 @@ void func_80A11EC0(EnGoStruct ptr[], GlobalContext* globalCtx, Gfx arg2[], Gfx a
CLOSE_DISPS(globalCtx->state.gfxCtx);
}
#else
void func_80A11EC0(EnGoStruct* ptr, GlobalContext* globalCtx, Gfx* arg2, Gfx* arg3, u8 arg4);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Go/func_80A11EC0.s")
#endif
@ -1976,7 +1978,6 @@ s32 EnGo_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList,
s32 idx;
if ((ENGO_GET_F(&this->actor) == ENGO_F_8) && (limbIndex == 10)) {
limbIndex = limbIndex;
Matrix_GetStateTranslation(&sp30);
sp30.y = this->actor.world.pos.y;
Math_Vec3f_ToVec3s(&this->colliderSphere.dim.worldSphere.center, &sp30);

View File

@ -4555,7 +4555,6 @@ void EnHorse_PostDraw(Actor* thisx, GlobalContext* globalCtx, Skin* skin) {
if (this->type == HORSE_2) {
Skin_GetLimbPos(skin, 28, &hoofOffset, &sp64);
} else {
curFrame = curFrame;
Skin_GetLimbPos(skin, 28, &hoofOffset, &sp64);
}
EnHorse_RandomOffset(&sp64, 10.0f, &this->frontRightHoof);

View File

@ -3956,21 +3956,14 @@ void func_80B4C730(EnInvadepoh* this, GlobalContext* globalCtx) {
Vec3f sp4C;
Vec3f sp40;
s16 diff;
s8 temp_v1;
s16 pad;
s16 sp3A;
s8 temp_v0;
s16 pad2;
func_80B44700(this);
func_80B44EFC(this, globalCtx);
func_80B43E6C(this, 6, 2000, 100);
if (1) {}
temp_v1 = this->pathIndex;
temp_v0 = this->endPoint;
phi_a2 = temp_v0 - 1;
if (temp_v1 < temp_v0) {
phi_a2 = temp_v1;
} else if (temp_v1_3) {
}
phi_a2 = ((this->pathIndex < this->endPoint) ? this->pathIndex : this->endPoint - 1);
Math_Vec3s_ToVec3f(&sp4C, &this->pathPoints[phi_a2]);
Math_Vec3s_ToVec3f(&sp40, &this->pathPoints[phi_a2 + 1]);

View File

@ -169,6 +169,7 @@ void EnLookNuts_Patrol(EnLookNuts* this, GlobalContext* globalCtx) {
sp34 = SubS_GetDistSqAndOrientPath(this->path, this->currentPathIndex, &this->actor.world.pos, &sp30);
}
//! @bug sp30 is uninitialised if path == NULL. Fix by enclosing everything in the path NULL check.
if (sp30 < 10.0f) {
if (this->path != NULL) {
this->currentPathIndex++;
@ -181,6 +182,7 @@ void EnLookNuts_Patrol(EnLookNuts* this, GlobalContext* globalCtx) {
}
}
}
Math_SmoothStepToS(&this->actor.shape.rot.y, sp34, 1, 0x1388, 0);
this->actor.world.rot.y = this->actor.shape.rot.y;
}

View File

@ -22,7 +22,6 @@ void EnMaYto_ChooseAction(EnMaYto* this, GlobalContext* globalCtx);
s32 EnMaYto_TryFindRomani(EnMaYto* this, GlobalContext* globalCtx);
void EnMaYto_SetupKeepLookingForRomani(EnMaYto* this);
void EnMaYto_KeepLookingForRomani(EnMaYto* this, GlobalContext* globalCtx);
void EnMaYto_SetupDefaultWait(EnMaYto* this);
void EnMaYto_DefaultWait(EnMaYto* this, GlobalContext* globalCtx);
void EnMaYto_SetupDefaultDialogueHandler(EnMaYto* this);
@ -44,7 +43,6 @@ void EnMaYto_SetupAfterMilkRunInit(EnMaYto* this);
void EnMaYto_AfterMilkRunInit(EnMaYto* this, GlobalContext* globalCtx);
void EnMaYto_SetupAfterMilkRunDialogueHandler(EnMaYto* this);
void EnMaYto_AfterMilkRunDialogueHandler(EnMaYto* this, GlobalContext* globalCtx);
void EnMaYto_AfterMilkRunChooseNextDialogue(EnMaYto* this, GlobalContext* globalCtx);
void EnMaYto_SetupPostMilkRunGiveReward(EnMaYto* this);
void EnMaYto_PostMilkRunGiveReward(EnMaYto* this, GlobalContext* globalCtx);
@ -53,7 +51,6 @@ void EnMaYto_PostMilkRunExplainReward(EnMaYto* this, GlobalContext* globalCtx);
void EnMaYto_SetupBeginWarmFuzzyFeelingCs(EnMaYto* this);
void EnMaYto_BeginWarmFuzzyFeelingCs(EnMaYto* this, GlobalContext* globalCtx);
void EnMaYto_SetupWarmFuzzyFeelingCs(EnMaYto* this);
void EnMaYto_WarmFuzzyFeelingCs(EnMaYto* this, GlobalContext* globalCtx);
void EnMaYto_SetupPostMilkRunWaitDialogueEnd(EnMaYto* this);
void EnMaYto_PostMilkRunWaitDialogueEnd(EnMaYto* this, GlobalContext* globalCtx);
@ -68,9 +65,8 @@ void func_80B90E50(EnMaYto* this, s16);
void EnMaYto_SetRomaniFaceExpression(EnMaYto* this, s16 overrideEyeTexIndex, s16 mouthTexIndex);
void EnMaYto_SetFaceExpression(EnMaYto* this, s16 overrideEyeTexIndex, s16 mouthIndex);
void EnMaYto_InitFaceExpression(EnMaYto* this);
s32 EnMaYto_HasSpokeToPlayerToday();
s32 EnMaYto_HasSpokeToPlayer(void);
s32 EnMaYto_HasSpokenToPlayerToday(void);
s32 EnMaYto_HasSpokenToPlayer(void);
void EnMaYto_SetTalkedFlag(void);
const ActorInit En_Ma_Yto_InitVars = {
@ -1129,7 +1125,7 @@ void EnMaYto_DefaultStartDialogue(EnMaYto* this, GlobalContext* globalCtx) {
break;
}
} else {
if (EnMaYto_HasSpokeToPlayer()) {
if (EnMaYto_HasSpokenToPlayer()) {
Message_StartTextbox(globalCtx, 0x3394, &this->actor);
this->textId = 0x3394;
} else {
@ -1140,7 +1136,7 @@ void EnMaYto_DefaultStartDialogue(EnMaYto* this, GlobalContext* globalCtx) {
}
}
} else if (CURRENT_DAY == 3) {
if (EnMaYto_HasSpokeToPlayerToday()) {
if (EnMaYto_HasSpokenToPlayerToday()) {
EnMaYto_SetFaceExpression(this, 0, 3);
Message_StartTextbox(globalCtx, 0x33C5, &this->actor);
this->textId = 0x33C5;
@ -1186,7 +1182,7 @@ void EnMaYto_DinnerStartDialogue(EnMaYto* this, GlobalContext* globalCtx) {
break;
}
} else {
if (EnMaYto_HasSpokeToPlayer()) {
if (EnMaYto_HasSpokenToPlayer()) {
Message_StartTextbox(globalCtx, 0x339F, &this->actor);
this->textId = 0x339F;
} else {
@ -1198,7 +1194,7 @@ void EnMaYto_DinnerStartDialogue(EnMaYto* this, GlobalContext* globalCtx) {
break;
case 2:
if (EnMaYto_HasSpokeToPlayer()) {
if (EnMaYto_HasSpokenToPlayer()) {
Message_StartTextbox(globalCtx, 0x33A6, &this->actor);
this->textId = 0x33A6;
func_80151BB4(globalCtx, 6);
@ -1210,7 +1206,7 @@ void EnMaYto_DinnerStartDialogue(EnMaYto* this, GlobalContext* globalCtx) {
break;
case 3:
if (EnMaYto_HasSpokeToPlayer()) {
if (EnMaYto_HasSpokenToPlayer()) {
Message_StartTextbox(globalCtx, 0x33A8, &this->actor);
this->textId = 0x33A8;
func_80151BB4(globalCtx, 6);
@ -1249,7 +1245,7 @@ void EnMaYto_BarnStartDialogue(EnMaYto* this, GlobalContext* globalCtx) {
}
}
} else {
if (EnMaYto_HasSpokeToPlayer()) {
if (EnMaYto_HasSpokenToPlayer()) {
this->unk31E = 2;
EnMaYto_SetFaceExpression(this, 5, 3);
Message_StartTextbox(globalCtx, 0x33B3, &this->actor);
@ -1357,7 +1353,7 @@ void EnMaYto_InitFaceExpression(EnMaYto* this) {
}
}
s32 EnMaYto_HasSpokeToPlayerToday(void) {
s32 EnMaYto_HasSpokenToPlayerToday(void) {
switch (CURRENT_DAY) {
case 1:
if (gSaveContext.save.weekEventReg[13] & 4) {
@ -1380,7 +1376,7 @@ s32 EnMaYto_HasSpokeToPlayerToday(void) {
return false;
}
s32 EnMaYto_HasSpokeToPlayer(void) {
s32 EnMaYto_HasSpokenToPlayer(void) {
// Please note each case doesn't have their respective `break`s.
switch (CURRENT_DAY) {
case 3:

View File

@ -219,7 +219,7 @@ void func_80B1A768(EnPoSisters* this, GlobalContext* globalCtx) {
Math_StepToF(&this->unk_2EC, 170.0f, 10.0f);
}
sp20 = this->unk_2EC;
} else if (this->unk_18D != 0) {
} else if (this->unk_18D != 0) { // An else would be sufficient
sp20 = this->actor.parent->xzDistToPlayer;
}

View File

@ -401,6 +401,7 @@ s32 func_80BF43FC(EnRg* this) {
return phi_s4;
}
#else
s32 func_80BF43FC(EnRg* this);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Rg/func_80BF43FC.s")
#endif

View File

@ -450,6 +450,7 @@ void func_808D94D0(EnSw* this, GlobalContext* globalCtx, s32 arg2, s32 arg3, s16
}
}
#else
void func_808D94D0(EnSw* this, GlobalContext* globalCtx, s32 arg2, s32 arg3, s16 arg4);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Sw/func_808D94D0.s")
#endif
@ -816,6 +817,7 @@ void func_808DA578(EnSw* this, GlobalContext* globalCtx) {
this->unk_414 = temp_f0;
}
#else
void func_808DA578(EnSw* this, GlobalContext* globalCtx);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Sw/func_808DA578.s")
#endif
@ -854,6 +856,7 @@ void func_808DA6FC(EnSw* this, GlobalContext* globalCtx) {
this->unk_414 = sp4C;
}
#else
void func_808DA6FC(EnSw* this, GlobalContext* globalCtx);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Sw/func_808DA6FC.s")
#endif
@ -1013,6 +1016,7 @@ void func_808DACF4(EnSw* this, GlobalContext* globalCtx) {
this->unk_414 = sp4C;
}
#else
void func_808DACF4(EnSw* this, GlobalContext* globalCtx);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Sw/func_808DACF4.s")
#endif

View File

@ -309,7 +309,8 @@ void EnTanron5_Update(Actor* thisx, GlobalContext* globalCtx2) {
spAC = 780.0f;
this->unk_19C *= 1.5f;
}
// TODO: determine if unk_1A0 ever has a different value from these 3, which will cause UB from spAC
// being uninitialised
this->actor.world.pos.y -= D_80BE5DD0 * spAC;
Actor_SetScale(&this->actor, this->unk_19C * D_80BE5DD0);
Math_Vec3f_Copy(&spB8, &this->actor.world.pos);

View File

@ -320,6 +320,7 @@ void func_80A85F84(EnTruUnkStruct* arg0, GlobalContext* globalCtx) {
CLOSE_DISPS(globalCtx->state.gfxCtx);
}
#else
void func_80A85F84(EnTruUnkStruct* arg0, GlobalContext* globalCtx);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Tru/func_80A85F84.s")
#endif
@ -580,7 +581,6 @@ s32 func_80A86DB8(EnTru* this) {
if (this->skelAnime.curFrame < 57.0f) {
if (DECR(this->unk_36C) == 0) {
this = this;
this->unk_36C = Rand_S16Offset(8, 8);
this->unk_36E = 2;
} else {

View File

@ -119,19 +119,16 @@ s32 func_80A35510(ObjBell* this, s32 arg1) {
if (((arg1 == 0) && (this->unk_21C < 1000.0f)) || ((arg1 == 1) && (this->unk_21C < 4000.0f)) || (arg1 == 2)) {
phi_a3 = true;
} else {
phi_a3 = phi_a3;
}
switch (arg1) {
case 0:
this->unk_21C += this->unk_21C > 1000.0f ? 250.0f : 1000.0f;
this->unk_21C += ((this->unk_21C > 1000.0f) ? 250.0f : 1000.0f);
break;
case 1:
this->unk_21C += this->unk_21C > 3000.0f ? 750.0f : 3000.0f;
this->unk_21C += ((this->unk_21C > 3000.0f) ? 750.0f : 3000.0f);
break;
case 2:
if (1) {}
this->unk_21C += 9000.0f;
break;
}

View File

@ -198,6 +198,7 @@ void func_80A66930(ObjDrifticeStruct2* arg0, ObjDriftice* this, s16* arg2, s16*
*arg2 = (s32)temp_f22 + arg0->unk_00[2];
}
#else
void func_80A66930(ObjDrifticeStruct2* arg0, ObjDriftice* this, s16* arg2, s16* arg3);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Driftice/func_80A66930.s")
#endif

View File

@ -6,6 +6,7 @@
#include "z_obj_nozoki.h"
#include "objects/object_secom_obj/object_secom_obj.h"
#include "prevent_bss_reordering.h"
#define FLAGS (ACTOR_FLAG_10)

View File

@ -241,10 +241,10 @@ void ObjSwitch_InitTrisCollider(ObjSwitch* this, GlobalContext* globalCtx, Colli
}
Actor* ObjSwitch_SpawnIce(ObjSwitch* this, GlobalContext* globalCtx) {
Actor_SpawnAsChild(&globalCtx->actorCtx, &this->dyna.actor, globalCtx, ACTOR_OBJ_ICE_POLY,
this->dyna.actor.world.pos.x, this->dyna.actor.world.pos.y - 25.0f, this->dyna.actor.world.pos.z,
this->dyna.actor.world.rot.x, this->dyna.actor.world.rot.y, this->dyna.actor.world.rot.z,
0xFF32);
return Actor_SpawnAsChild(&globalCtx->actorCtx, &this->dyna.actor, globalCtx, ACTOR_OBJ_ICE_POLY,
this->dyna.actor.world.pos.x, this->dyna.actor.world.pos.y - 25.0f,
this->dyna.actor.world.pos.z, this->dyna.actor.world.rot.x, this->dyna.actor.world.rot.y,
this->dyna.actor.world.rot.z, 0xFF32);
}
void ObjSwitch_SetSwitchFlagState(ObjSwitch* this, GlobalContext* globalCtx, s32 setFlag) {

View File

@ -87,7 +87,7 @@ static InitChainEntry sInitChain[] = {
* angle can differ from the target angle if the panel is in
* the middle of rotating.
*/
s32 ObjTokeidai_GetTargetSunMoonPanelRotation() {
s32 ObjTokeidai_GetTargetSunMoonPanelRotation(void) {
if (gSaveContext.save.isNight) {
return 0x8000;
}

View File

@ -223,6 +223,7 @@ s32 func_80A3C8D8(ObjVspinyroll* this, GlobalContext* globalCtx, Vec3f* arg2, s3
return sp9C;
}
#else
s32 func_80A3C8D8(ObjVspinyroll* this, GlobalContext* globalCtx, Vec3f* arg2, s32 arg3);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Vspinyroll/func_80A3C8D8.s")
#endif

View File

@ -14808,8 +14808,8 @@
0x80B90E84:("EnMaYto_SetRomaniFaceExpression",),
0x80B90EC8:("EnMaYto_SetFaceExpression",),
0x80B90EF0:("EnMaYto_InitFaceExpression",),
0x80B90F84:("EnMaYto_HasSpokeToPlayerToday",),
0x80B91014:("EnMaYto_HasSpokeToPlayer",),
0x80B90F84:("EnMaYto_HasSpokenToPlayerToday",),
0x80B91014:("EnMaYto_HasSpokenToPlayer",),
0x80B9109C:("EnMaYto_SetTalkedFlag",),
0x80B9110C:("EnMaYto_Update",),
0x80B91154:("EnMaYto_OverrideLimbDraw",),