mirror of
https://github.com/zeldaret/mm.git
synced 2024-11-23 12:59:44 +00:00
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:
parent
e50c346ab8
commit
31f0e19b57
2
Makefile
2
Makefile
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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.
|
||||
|
@ -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) {
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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) {
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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]);
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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:
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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 {
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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) {
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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
|
||||
|
||||
|
@ -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",),
|
||||
|
Loading…
Reference in New Issue
Block a user