mirror of
https://github.com/zeldaret/mm.git
synced 2026-07-09 05:43:18 -04:00
Improve Various Matchings and Cleanup (#809)
* Improve various matchings and cleanup * Fix warnings * Missed 2 * Few hex to dec * PR Suggestions * More PR Suggestions * Document time calculation * Improved use of macros * DAY_LENGTH macro * More cleanup of functions Co-authored-by: hensldm <https://github.com/hensldm> * Missing a space * PR Suggestions * Use DAY_LENGTH more
This commit is contained in:
+6
-5
@@ -195,7 +195,7 @@ void ActorShadow_DrawFeet(Actor* actor, Lights* mapper, GlobalContext* globalCtx
|
||||
CollisionPoly* spF8;
|
||||
s32 bgId;
|
||||
f32 floorHeight[2];
|
||||
f32 pad;
|
||||
Light* firstLight = &mapper->l.l[0];
|
||||
f32 shadowAlpha;
|
||||
f32 shadowScaleX;
|
||||
f32 shadowScaleZ;
|
||||
@@ -239,8 +239,6 @@ void ActorShadow_DrawFeet(Actor* actor, Lights* mapper, GlobalContext* globalCtx
|
||||
IREG(88) + 80, IREG(89) + 60, IREG(90) + 40, 30000, 200, 60);
|
||||
}
|
||||
actor->shape.unk_17 &= ~spB8;
|
||||
|
||||
if ((uintptr_t)mapper->l.l) {} // POSSIBLE FAKE MATCH
|
||||
}
|
||||
}
|
||||
|
||||
@@ -252,7 +250,8 @@ void ActorShadow_DrawFeet(Actor* actor, Lights* mapper, GlobalContext* globalCtx
|
||||
shadowScaleZ = 1.0f - (distToFloor * (1.0f / 70.0f));
|
||||
shadowScaleX = actor->shape.shadowScale * shadowScaleZ * actor->scale.x;
|
||||
|
||||
for (lightPtr = mapper->l.l, j = 0; j < numLights; lightPtr++, j++) {
|
||||
lightPtr = firstLight;
|
||||
for (j = 0; j < numLights; j++) {
|
||||
if (lightPtr->l.dir[1] > 0) {
|
||||
lightNum = (lightPtr->l.col[0] + lightPtr->l.col[1] + lightPtr->l.col[2]) *
|
||||
ABS_ALT(lightPtr->l.dir[1]);
|
||||
@@ -263,9 +262,10 @@ void ActorShadow_DrawFeet(Actor* actor, Lights* mapper, GlobalContext* globalCtx
|
||||
shadowScaleZ);
|
||||
}
|
||||
}
|
||||
lightPtr++;
|
||||
}
|
||||
|
||||
for (j = 0; j < 2; lightPtr++, j++) {
|
||||
for (j = 0; j < 2; j++) {
|
||||
if (lightPtr->l.dir[1] > 0) {
|
||||
lightNum = ((lightPtr->l.col[0] + lightPtr->l.col[1] + lightPtr->l.col[2]) *
|
||||
ABS_ALT(lightPtr->l.dir[1])) -
|
||||
@@ -275,6 +275,7 @@ void ActorShadow_DrawFeet(Actor* actor, Lights* mapper, GlobalContext* globalCtx
|
||||
shadowScaleZ);
|
||||
}
|
||||
}
|
||||
lightPtr++;
|
||||
}
|
||||
}
|
||||
feetPosPtr++;
|
||||
|
||||
+5
-9
@@ -132,7 +132,6 @@ void Cutscene_Command_Misc(GlobalContext* globalCtx2, CutsceneContext* csCtx, Cs
|
||||
u8 isStartFrame = false;
|
||||
f32 progress;
|
||||
SceneTableEntry* loadedScene;
|
||||
u16 time;
|
||||
|
||||
if ((csCtx->frames < cmd->startFrame) || ((csCtx->frames >= cmd->endFrame) && (cmd->endFrame != cmd->startFrame))) {
|
||||
return;
|
||||
@@ -250,11 +249,9 @@ void Cutscene_Command_Misc(GlobalContext* globalCtx2, CutsceneContext* csCtx, Cs
|
||||
break;
|
||||
case 0x12:
|
||||
if (!gSaveContext.save.isNight) {
|
||||
time = gSaveContext.save.time;
|
||||
gSaveContext.save.time = time - (u16)REG(15);
|
||||
gSaveContext.save.time = ((void)0, gSaveContext.save.time) - (u16)REG(15);
|
||||
} else {
|
||||
time = gSaveContext.save.time;
|
||||
gSaveContext.save.time = time - (u16)(2 * REG(15));
|
||||
gSaveContext.save.time = ((void)0, gSaveContext.save.time) - (u16)(2 * REG(15));
|
||||
}
|
||||
break;
|
||||
case 0x13:
|
||||
@@ -328,10 +325,9 @@ void Cutscene_Command_Misc(GlobalContext* globalCtx2, CutsceneContext* csCtx, Cs
|
||||
D_801BB15C = csCtx->frames;
|
||||
|
||||
if (REG(15) != 0) {
|
||||
time = gSaveContext.save.time;
|
||||
gSaveContext.save.time = (u16)REG(15) + time;
|
||||
time = gSaveContext.save.time;
|
||||
gSaveContext.save.time = (u16)gSaveContext.save.daySpeed + time;
|
||||
gSaveContext.save.time = ((void)0, gSaveContext.save.time) + (u16)REG(15);
|
||||
gSaveContext.save.time =
|
||||
((void)0, gSaveContext.save.time) + (u16)((void)0, gSaveContext.save.daySpeed);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -815,8 +815,6 @@ void EnItem00_DrawHeartPiece(EnItem00* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
s16 func_800A7650(s16 dropId) {
|
||||
s16 healthCapacity;
|
||||
|
||||
if ((((dropId == ITEM00_BOMBS_A) || (dropId == ITEM00_BOMBS_0) || (dropId == ITEM00_BOMBS_B)) &&
|
||||
(INV_CONTENT(ITEM_BOMB) == ITEM_NONE)) ||
|
||||
(((dropId == ITEM00_ARROWS_10) || (dropId == ITEM00_ARROWS_30) || (dropId == ITEM00_ARROWS_40) ||
|
||||
@@ -828,8 +826,7 @@ s16 func_800A7650(s16 dropId) {
|
||||
}
|
||||
|
||||
if (dropId == ITEM00_HEART) {
|
||||
healthCapacity = gSaveContext.save.playerData.healthCapacity;
|
||||
if (healthCapacity == gSaveContext.save.playerData.health) {
|
||||
if (((void)0, gSaveContext.save.playerData.healthCapacity) == ((void)0, gSaveContext.save.playerData.health)) {
|
||||
return ITEM00_RUPEE_GREEN;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -405,23 +405,23 @@ void func_80151BB4(GlobalContext* globalCtx, u8 arg1) {
|
||||
|
||||
u32 func_80151C9C(GlobalContext* globalCtx) {
|
||||
MessageContext* msgCtx = &globalCtx->msgCtx;
|
||||
u8 flag;
|
||||
|
||||
while (true) {
|
||||
if (msgCtx->unk120B1 == 0) {
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
msgCtx->unk120B1--;
|
||||
|
||||
if ((gSaveContext.save.weekEventReg[D_801C6B28[msgCtx->unk120B2[msgCtx->unk120B1]] >> 8] &
|
||||
(u8)D_801C6B28[msgCtx->unk120B2[msgCtx->unk120B1]]) == 0) {
|
||||
flag = gSaveContext.save.weekEventReg[D_801C6B28[msgCtx->unk120B2[msgCtx->unk120B1]] >> 8];
|
||||
gSaveContext.save.weekEventReg[D_801C6B28[msgCtx->unk120B2[msgCtx->unk120B1]] >> 8] =
|
||||
flag | (u8)D_801C6B28[msgCtx->unk120B2[msgCtx->unk120B1]];
|
||||
((void)0, gSaveContext.save.weekEventReg[D_801C6B28[msgCtx->unk120B2[msgCtx->unk120B1]] >> 8]) |
|
||||
(u8)D_801C6B28[msgCtx->unk120B2[msgCtx->unk120B1]];
|
||||
|
||||
if ((D_801C6AB8[msgCtx->unk120B2[msgCtx->unk120B1]] != 0) && CHECK_QUEST_ITEM(QUEST_BOMBERS_NOTEBOOK)) {
|
||||
func_80151938(globalCtx, D_801C6AB8[msgCtx->unk120B2[msgCtx->unk120B1]]);
|
||||
play_sound(NA_SE_SY_SCHEDULE_WRITE);
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -193,29 +193,32 @@ void Message_LoadTimeNES(GlobalContext* globalCtx, u8 arg1, s32* offset, f32* ar
|
||||
s16 p = *decodedBufPos;
|
||||
s32 o = *offset;
|
||||
f32 f = *arg3;
|
||||
u32 dayTime;
|
||||
u32 timeLeft;
|
||||
s16 digits[4];
|
||||
f32 timeInMinutes;
|
||||
s32 day;
|
||||
f32 timeLeftInMinutes;
|
||||
s16 i;
|
||||
|
||||
if (arg1 == 0xCF) {
|
||||
day = gSaveContext.save.day;
|
||||
dayTime = 0x40000 - ((day % 5) << 16) - (u16)(-0x4000 + gSaveContext.save.time);
|
||||
// Calculates the time left before the moon crashes.
|
||||
// The day begins at CLOCK_TIME(6, 0) so it must be offset.
|
||||
timeLeft = (4 - CURRENT_DAY) * DAY_LENGTH - (u16)(((void)0, gSaveContext.save.time) - CLOCK_TIME(6, 0));
|
||||
} else {
|
||||
dayTime = 0x10000 - (u16)(-0x4000 + gSaveContext.save.time);
|
||||
// Calculates the time left before a new day.
|
||||
// The day begins at CLOCK_TIME(6, 0) so it must be offset.
|
||||
timeLeft = DAY_LENGTH - (u16)(((void)0, gSaveContext.save.time) - CLOCK_TIME(6, 0));
|
||||
}
|
||||
timeInMinutes = TIME_TO_MINUTES_F(dayTime);
|
||||
|
||||
timeLeftInMinutes = TIME_TO_MINUTES_F(timeLeft);
|
||||
|
||||
digits[0] = 0;
|
||||
digits[1] = (timeInMinutes / 60.0f);
|
||||
digits[1] = (timeLeftInMinutes / 60.0f);
|
||||
while (digits[1] >= 10) {
|
||||
digits[0]++;
|
||||
digits[1] -= 10;
|
||||
}
|
||||
|
||||
digits[2] = 0;
|
||||
digits[3] = (s32)timeInMinutes % 60;
|
||||
digits[3] = (s32)timeLeftInMinutes % 60;
|
||||
while (digits[3] >= 10) {
|
||||
digits[2]++;
|
||||
digits[3] -= 10;
|
||||
|
||||
+6
-14
@@ -142,11 +142,9 @@ void* func_8012F73C(ObjectContext* objectCtx, s32 iParm2, s16 id) {
|
||||
|
||||
// SceneTableEntry Header Command 0x00: Spawn List
|
||||
void Scene_HeaderCmdSpawnList(GlobalContext* globalCtx, SceneCmd* cmd) {
|
||||
GlobalContext* globalCtx2 = globalCtx;
|
||||
s32 loadedCount;
|
||||
void* nextObject;
|
||||
s16 playerObjectId;
|
||||
u8 playerForm;
|
||||
void* nextObject;
|
||||
|
||||
globalCtx->linkActorEntry = (ActorEntry*)Lib_SegmentedToVirtual(cmd->spawnList.segment) +
|
||||
globalCtx->setupEntranceList[globalCtx->curSpawn].spawn;
|
||||
@@ -158,11 +156,10 @@ void Scene_HeaderCmdSpawnList(GlobalContext* globalCtx, SceneCmd* cmd) {
|
||||
}
|
||||
|
||||
loadedCount = Object_Spawn(&globalCtx->objectCtx, OBJECT_LINK_CHILD);
|
||||
nextObject = globalCtx2->objectCtx.status[globalCtx2->objectCtx.num].segment;
|
||||
nextObject = globalCtx->objectCtx.status[globalCtx->objectCtx.num].segment;
|
||||
globalCtx->objectCtx.num = loadedCount;
|
||||
globalCtx->objectCtx.spawnedObjectCount = loadedCount;
|
||||
playerForm = gSaveContext.save.playerForm;
|
||||
playerObjectId = gLinkFormObjectIndexes[playerForm];
|
||||
playerObjectId = gLinkFormObjectIndexes[(void)0, gSaveContext.save.playerForm];
|
||||
gActorOverlayTable[0].initInfo->objectId = playerObjectId;
|
||||
Object_Spawn(&globalCtx->objectCtx, playerObjectId);
|
||||
|
||||
@@ -378,8 +375,6 @@ void Scene_HeaderCmdSkyboxDisables(GlobalContext* globalCtx, SceneCmd* cmd) {
|
||||
|
||||
// SceneTableEntry Header Command 0x10: Time Settings
|
||||
void Scene_HeaderCmdTimeSettings(GlobalContext* globalCtx, SceneCmd* cmd) {
|
||||
u32 dayTime;
|
||||
|
||||
if (cmd->timeSettings.hour != 0xFF && cmd->timeSettings.min != 0xFF) {
|
||||
gSaveContext.environmentTime = gSaveContext.save.time =
|
||||
(u16)(((cmd->timeSettings.hour + (cmd->timeSettings.min / 60.0f)) * 60.0f) / 0.021972656f);
|
||||
@@ -399,12 +394,9 @@ void Scene_HeaderCmdTimeSettings(GlobalContext* globalCtx, SceneCmd* cmd) {
|
||||
REG(15) = globalCtx->envCtx.timeIncrement;
|
||||
}
|
||||
|
||||
dayTime = gSaveContext.save.time;
|
||||
globalCtx->envCtx.unk_4 = -(Math_SinS(dayTime - 0x8000) * 120.0f) * 25.0f;
|
||||
dayTime = gSaveContext.save.time;
|
||||
globalCtx->envCtx.unk_8 = (Math_CosS(dayTime - 0x8000) * 120.0f) * 25.0f;
|
||||
dayTime = gSaveContext.save.time;
|
||||
globalCtx->envCtx.unk_C = (Math_CosS(dayTime - 0x8000) * 20.0f) * 25.0f;
|
||||
globalCtx->envCtx.unk_4 = -(Math_SinS(((void)0, gSaveContext.save.time) - 0x8000) * 120.0f) * 25.0f;
|
||||
globalCtx->envCtx.unk_8 = (Math_CosS(((void)0, gSaveContext.save.time) - 0x8000) * 120.0f) * 25.0f;
|
||||
globalCtx->envCtx.unk_C = (Math_CosS(((void)0, gSaveContext.save.time) - 0x8000) * 20.0f) * 25.0f;
|
||||
|
||||
if (globalCtx->envCtx.timeIncrement == 0 && gSaveContext.save.cutscene < 0xFFF0) {
|
||||
gSaveContext.environmentTime = gSaveContext.save.time;
|
||||
|
||||
Reference in New Issue
Block a user