1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-02-25 10:24:26 +00:00

Run formatter with changes

This commit is contained in:
Roman971 2020-03-24 00:11:21 +01:00
parent 5b42bda4eb
commit 9a63f1d4d1
19 changed files with 489 additions and 281 deletions

View file

@ -137,8 +137,9 @@ void Fault_AddClient(FaultClient* client, void* callback, void* param0, void* pa
end: end:
osSetIntMask(mask); osSetIntMask(mask);
if (alreadyExists) if (alreadyExists) {
osSyncPrintf(VT_COL(RED, WHITE) "fault_AddClient: %08x は既にリスト中にある\n" VT_RST, client); osSyncPrintf(VT_COL(RED, WHITE) "fault_AddClient: %08x は既にリスト中にある\n" VT_RST, client);
}
} }
#else #else
#pragma GLOBAL_ASM("asm/non_matchings/code/fault/Fault_AddClient.s") #pragma GLOBAL_ASM("asm/non_matchings/code/fault/Fault_AddClient.s")
@ -270,27 +271,34 @@ u32 Fault_WaitForInputImpl() {
kDown = curInput->padPressed; kDown = curInput->padPressed;
if (kDown == 0x20) if (kDown == 0x20) {
sFaultStructPtr->faultActive = !sFaultStructPtr->faultActive; sFaultStructPtr->faultActive = !sFaultStructPtr->faultActive;
}
if (!sFaultStructPtr->faultActive) if (!sFaultStructPtr->faultActive) {
break; break;
}
if (count-- < 1) if (count-- < 1) {
return false; return false;
}
} }
if (kDown == 0x8000 || kDown == 0x100) if (kDown == 0x8000 || kDown == 0x100) {
return false; return false;
}
if (kDown == 0x200) if (kDown == 0x200) {
return true; return true;
}
if (kDown == 0x800) if (kDown == 0x800) {
FaultDrawer_SetOsSyncPrintfEnabled(true); FaultDrawer_SetOsSyncPrintfEnabled(true);
}
if (kDown == 0x400) if (kDown == 0x400) {
FaultDrawer_SetOsSyncPrintfEnabled(false); FaultDrawer_SetOsSyncPrintfEnabled(false);
}
} }
return false; return false;
@ -555,24 +563,28 @@ void Fault_DrawMemDump(u32 pc, u32 sp, u32 unk0, u32 unk1) {
s32 off; s32 off;
while (true) { while (true) {
if (addr < 0x80000000) if (addr < 0x80000000) {
addr = 0x80000000; addr = 0x80000000;
if (addr > 0x807fff00) }
if (addr > 0x807fff00) {
addr = 0x807fff00; addr = 0x807fff00;
}
addr &= ~0xF; addr &= ~0xF;
Fault_DrawMemDumpPage("Dump", (u32*)addr, 0); Fault_DrawMemDumpPage("Dump", (u32*)addr, 0);
count = 600; count = 600;
while (sFaultStructPtr->faultActive) { while (sFaultStructPtr->faultActive) {
if (count == 0) if (count == 0) {
return; return;
}
count--; count--;
Fault_Sleep(0x10); Fault_Sleep(0x10);
Fault_UpdatePadImpl(); Fault_UpdatePadImpl();
if (!~(curInput->padPressed | ~0x20)) if (!~(curInput->padPressed | ~0x20)) {
sFaultStructPtr->faultActive = false; sFaultStructPtr->faultActive = false;
}
} }
do { do {
@ -580,31 +592,42 @@ void Fault_DrawMemDump(u32 pc, u32 sp, u32 unk0, u32 unk1) {
Fault_UpdatePadImpl(); Fault_UpdatePadImpl();
} while (curInput->padPressed == 0); } while (curInput->padPressed == 0);
if (!~(curInput->padPressed | ~0x1000)) if (!~(curInput->padPressed | ~0x1000)) {
return; return;
}
if (!~(curInput->raw.pad | ~0x8000)) if (!~(curInput->raw.pad | ~0x8000)) {
return; return;
}
off = 0x10; off = 0x10;
if (!~(curInput->raw.pad | ~0x2000)) if (!~(curInput->raw.pad | ~0x2000)) {
off = 0x100; off = 0x100;
if (!~(curInput->raw.pad | ~0x4000)) }
if (!~(curInput->raw.pad | ~0x4000)) {
off <<= 8; off <<= 8;
if (!~(curInput->raw.pad | ~0x800)) }
if (!~(curInput->raw.pad | ~0x800)) {
addr -= off; addr -= off;
if (!~(curInput->raw.pad | ~0x400)) }
if (!~(curInput->raw.pad | ~0x400)) {
addr += off; addr += off;
if (!~(curInput->raw.pad | ~0x8)) }
if (!~(curInput->raw.pad | ~0x8)) {
addr = pc; addr = pc;
if (!~(curInput->raw.pad | ~0x4)) }
if (!~(curInput->raw.pad | ~0x4)) {
addr = sp; addr = sp;
if (!~(curInput->raw.pad | ~0x2)) }
if (!~(curInput->raw.pad | ~0x2)) {
addr = unk0; addr = unk0;
if (!~(curInput->raw.pad | ~0x1)) }
if (!~(curInput->raw.pad | ~0x1)) {
addr = unk1; addr = unk1;
if (!~(curInput->raw.pad | ~0x20)) }
if (!~(curInput->raw.pad | ~0x20)) {
break; break;
}
} }
sFaultStructPtr->faultActive = true; sFaultStructPtr->faultActive = true;
@ -715,15 +738,16 @@ void Fault_ThreadEntry(void* arg) {
__osSetFpcCsr(__osGetFpcCsr() & -0xf81); __osSetFpcCsr(__osGetFpcCsr() & -0xf81);
sFaultStructPtr->faultedThread = faultedThread; sFaultStructPtr->faultedThread = faultedThread;
while (!sFaultStructPtr->faultHandlerEnabled) while (!sFaultStructPtr->faultHandlerEnabled) {
Fault_Sleep(1000); Fault_Sleep(1000);
}
Fault_Sleep(500); Fault_Sleep(500);
Fault_CommitFB(); Fault_CommitFB();
if (sFaultStructPtr->faultActive) if (sFaultStructPtr->faultActive) {
Fault_Wait5Seconds(); Fault_Wait5Seconds();
else { } else {
Fault_DrawCornerRec(0xF801); Fault_DrawCornerRec(0xF801);
Fault_WaitForButtonCombo(); Fault_WaitForButtonCombo();
} }

View file

@ -114,10 +114,11 @@ void FaultDrawer_DrawChar(char c) {
u32 mask = 0x10000000 << (c % 4); u32 mask = 0x10000000 << (c % 4);
u32 data = *dataPtr; u32 data = *dataPtr;
for (x = 0; x < sFaultDrawerStruct.charW; x++) { for (x = 0; x < sFaultDrawerStruct.charW; x++) {
if (mask & data) if (mask & data) {
fb[x] = sFaultDrawerStruct.foreColor; fb[x] = sFaultDrawerStruct.foreColor;
else if (sFaultDrawerStruct.backColor & 1) } else if (sFaultDrawerStruct.backColor & 1) {
fb[x] = sFaultDrawerStruct.backColor; fb[x] = sFaultDrawerStruct.backColor;
}
mask >>= 4; mask >>= 4;
} }
fb += sFaultDrawerStruct.w; fb += sFaultDrawerStruct.w;

View file

@ -246,22 +246,24 @@ void GfxPrint_PrintCharImpl(GfxPrint* this, u8 c) {
if (this->flag & GFXPRINT_FLAG4) { if (this->flag & GFXPRINT_FLAG4) {
gDPSetPrimColorMod(this->dlist++, 0, 0, 0); gDPSetPrimColorMod(this->dlist++, 0, 0, 0);
if (this->flag & GFXPRINT_FLAG64) if (this->flag & GFXPRINT_FLAG64) {
gSPTextureRectangle(this->dlist++, (this->posX + 4) << 1, (this->posY + 4) << 1, (this->posX + 4 + 32) << 1, gSPTextureRectangle(this->dlist++, (this->posX + 4) << 1, (this->posY + 4) << 1, (this->posX + 4 + 32) << 1,
(this->posY + 4 + 32) << 1, c * 2, (u16)(c & 4) * 64, (u16)(c >> 3) * 256, 512, 512); (this->posY + 4 + 32) << 1, c * 2, (u16)(c & 4) * 64, (u16)(c >> 3) * 256, 512, 512);
else } else {
gSPTextureRectangle(this->dlist++, this->posX + 4, this->posY + 4, this->posX + 4 + 32, this->posY + 4 + 32, gSPTextureRectangle(this->dlist++, this->posX + 4, this->posY + 4, this->posX + 4 + 32, this->posY + 4 + 32,
c * 2, (u16)(c & 4) * 64, (u16)(c >> 3) * 256, 1024, 1024); c * 2, (u16)(c & 4) * 64, (u16)(c >> 3) * 256, 1024, 1024);
}
gDPSetPrimColorMod(this->dlist++, 0, 0, *(u32*)&this->color); gDPSetPrimColorMod(this->dlist++, 0, 0, *(u32*)&this->color);
} }
if (this->flag & GFXPRINT_FLAG64) if (this->flag & GFXPRINT_FLAG64) {
gSPTextureRectangle(this->dlist++, (this->posX) << 1, (this->posY) << 1, (this->posX + 32) << 1, gSPTextureRectangle(this->dlist++, (this->posX) << 1, (this->posY) << 1, (this->posX + 32) << 1,
(this->posY + 32) << 1, c * 2, (u16)(c & 4) * 64, (u16)(c >> 3) * 256, 512, 512); (this->posY + 32) << 1, c * 2, (u16)(c & 4) * 64, (u16)(c >> 3) * 256, 512, 512);
else } else {
gSPTextureRectangle(this->dlist++, this->posX, this->posY, this->posX + 32, this->posY + 32, c * 2, gSPTextureRectangle(this->dlist++, this->posX, this->posY, this->posX + 32, this->posY + 32, c * 2,
(u16)(c & 4) * 64, (u16)(c >> 3) * 256, 1024, 1024); (u16)(c & 4) * 64, (u16)(c >> 3) * 256, 1024, 1024);
}
this->posX += 32; this->posX += 32;
} }

View file

@ -738,12 +738,13 @@ void func_800D20CC(MtxF* mf, Vec3s* vec, s32 flag) {
vec->y = Math_atan2f(mf->zx, mf->zz) * (32768 / M_PI); vec->y = Math_atan2f(mf->zx, mf->zz) * (32768 / M_PI);
if (!flag) if (!flag) {
vec->z = Math_atan2f(mf->xy, mf->yy) * (32768 / M_PI); vec->z = Math_atan2f(mf->xy, mf->yy) * (32768 / M_PI);
else } else {
vec->z = Math_atan2f(mf->xy / sqrtf(SQ(mf->xx) + SQ(mf->xz) + SQ(mf->xy)), vec->z = Math_atan2f(mf->xy / sqrtf(SQ(mf->xx) + SQ(mf->xz) + SQ(mf->xy)),
mf->yy / sqrtf(SQ(mf->yx) + SQ(mf->yz) + SQ(mf->yy))) * mf->yy / sqrtf(SQ(mf->yx) + SQ(mf->yz) + SQ(mf->yy))) *
(32768 / M_PI); (32768 / M_PI);
}
} }
#else #else
#pragma GLOBAL_ASM("asm/non_matchings/code/sys_matrix/func_800D20CC.s") #pragma GLOBAL_ASM("asm/non_matchings/code/sys_matrix/func_800D20CC.s")
@ -762,12 +763,13 @@ void func_800D2264(MtxF* mf, Vec3s* vec, s32 flag) {
vec->z = Math_atan2f(mf->xy, mf->xx) * (32768 / M_PI); vec->z = Math_atan2f(mf->xy, mf->xx) * (32768 / M_PI);
if (!flag) if (!flag) {
vec->x = Math_atan2f(mf->yz, mf->zz) * (32768 / M_PI); vec->x = Math_atan2f(mf->yz, mf->zz) * (32768 / M_PI);
else } else {
vec->x = Math_atan2f(mf->yz / sqrtf(SQ(mf->yx) + SQ(mf->yy) + SQ(mf->yz)), vec->x = Math_atan2f(mf->yz / sqrtf(SQ(mf->yx) + SQ(mf->yy) + SQ(mf->yz)),
mf->zz / sqrtf(SQ(mf->zx) + SQ(mf->zy) + SQ(mf->zz))) * mf->zz / sqrtf(SQ(mf->zx) + SQ(mf->zy) + SQ(mf->zz))) *
(32768 / M_PI); (32768 / M_PI);
}
} }
#else #else
#pragma GLOBAL_ASM("asm/non_matchings/code/sys_matrix/func_800D2264.s") #pragma GLOBAL_ASM("asm/non_matchings/code/sys_matrix/func_800D2264.s")

View file

@ -156,16 +156,19 @@ void ActorShadow_DrawFunc_Teardrop(Actor* actor, LightMapper* lightMapper, Globa
if ((phi_f2 >= -1.0f) && (phi_f2 < 500.0f)) { if ((phi_f2 >= -1.0f) && (phi_f2 < 500.0f)) {
phi_s0 = lightMapper->lights; phi_s0 = lightMapper->lights;
if (phi_f2 <= 0.0f) if (phi_f2 <= 0.0f) {
actor->shape.unk_15++; actor->shape.unk_15++;
}
if (30.0f < phi_f2) if (30.0f < phi_f2) {
phi_f2 = 30.0f; phi_f2 = 30.0f;
}
temp_f24 = actor->shape.unk_14 * (1.0f - (phi_f2 * (1.0f / 30))); temp_f24 = actor->shape.unk_14 * (1.0f - (phi_f2 * (1.0f / 30)));
if (30.0f < phi_f2) if (30.0f < phi_f2) {
phi_f2 = 30.0f; phi_f2 = 30.0f;
}
temp_f20_2 = 1.0f - (phi_f2 * (1.0f / 70)); temp_f20_2 = 1.0f - (phi_f2 * (1.0f / 70));
temp_f22_2 = (actor->shape.unk_10 * temp_f20_2) * actor->scale.x; temp_f22_2 = (actor->shape.unk_10 * temp_f20_2) * actor->scale.x;
@ -187,8 +190,9 @@ void ActorShadow_DrawFunc_Teardrop(Actor* actor, LightMapper* lightMapper, Globa
if (phi_s0->l.dir[1] > 0) { if (phi_s0->l.dir[1] > 0) {
temp_a3 = (ABS(phi_s0->l.dir[1]) * ((phi_s0->l.col[0] + phi_s0->l.col[1]) + phi_s0->l.col[2])) - temp_a3 = (ABS(phi_s0->l.dir[1]) * ((phi_s0->l.col[0] + phi_s0->l.col[1]) + phi_s0->l.col[2])) -
(phi_s2 * 8); (phi_s2 * 8);
if (temp_a3 > 0) if (temp_a3 > 0) {
func_8002B66C(globalCtx, phi_s0, &spE8, temp_a3, temp_f24, temp_f22_2, temp_f20_2); func_8002B66C(globalCtx, phi_s0, &spE8, temp_a3, temp_f24, temp_f22_2, temp_f20_2);
}
} }
phi_s0++; phi_s0++;
} }
@ -335,18 +339,20 @@ void func_8002C124(TargetContext* targetCtx, GlobalContext* globalCtx) {
spCE = 0xFF; spCE = 0xFF;
var1 = 1.0f; var1 = 1.0f;
if (targetCtx->unk_4B != 0) if (targetCtx->unk_4B != 0) {
spB8 = 1; spB8 = 1;
else } else {
spB8 = 3; spB8 = 3;
}
if (actor != NULL) { if (actor != NULL) {
Math_Vec3f_Copy(&targetCtx->targetCenterPos, &actor->posRot2.pos); Math_Vec3f_Copy(&targetCtx->targetCenterPos, &actor->posRot2.pos);
var1 = (500.0f - targetCtx->unk_44) / 420.0f; var1 = (500.0f - targetCtx->unk_44) / 420.0f;
} else { } else {
targetCtx->unk_48 -= 120; targetCtx->unk_48 -= 120;
if (targetCtx->unk_48 < 0) if (targetCtx->unk_48 < 0) {
targetCtx->unk_48 = 0; targetCtx->unk_48 = 0;
}
spCE = targetCtx->unk_48; spCE = targetCtx->unk_48;
} }
@ -361,8 +367,9 @@ void func_8002C124(TargetContext* targetCtx, GlobalContext* globalCtx) {
spBC.z = spBC.z * var1; spBC.z = spBC.z * var1;
targetCtx->unk_4C--; targetCtx->unk_4C--;
if (targetCtx->unk_4C < 0) if (targetCtx->unk_4C < 0) {
targetCtx->unk_4C = 2; targetCtx->unk_4C = 2;
}
func_8002BE64(targetCtx, targetCtx->unk_4C, spBC.x, spBC.y, spBC.z); func_8002BE64(targetCtx, targetCtx->unk_4C, spBC.x, spBC.y, spBC.z);
@ -373,10 +380,11 @@ void func_8002C124(TargetContext* targetCtx, GlobalContext* globalCtx) {
entry = &targetCtx->arr_50[spAC]; entry = &targetCtx->arr_50[spAC];
if (entry->unk_0C < 500.0f) { if (entry->unk_0C < 500.0f) {
if (entry->unk_0C <= 120.0f) if (entry->unk_0C <= 120.0f) {
var2 = 0.15f; var2 = 0.15f;
else } else {
var2 = ((entry->unk_0C - 120.0f) * 0.001f) + 0.15f; var2 = ((entry->unk_0C - 120.0f) * 0.001f) + 0.15f;
}
Matrix_Translate(entry->pos.x, entry->pos.y, 0.0f, MTXMODE_NEW); Matrix_Translate(entry->pos.x, entry->pos.y, 0.0f, MTXMODE_NEW);
Matrix_Scale(var2, 0.15f, 1.0f, MTXMODE_APPLY); Matrix_Scale(var2, 0.15f, 1.0f, MTXMODE_APPLY);
@ -398,8 +406,9 @@ void func_8002C124(TargetContext* targetCtx, GlobalContext* globalCtx) {
} }
spCE = spCE - (0xFF / 3); spCE = spCE - (0xFF / 3);
if (spCE < 0) if (spCE < 0) {
spCE = 0; spCE = 0;
}
spAC = (spAC + 1) % 3; spAC = (spAC + 1) % 3;
} }
} }
@ -1437,14 +1446,16 @@ f32 func_8002EFC0(Actor* actor, Player* player, s16 arg2) {
abs_var = ABS(var); abs_var = ABS(var);
if (player->unk_664 != NULL) { if (player->unk_664 != NULL) {
if ((abs_var > 0x4000) || (actor->flags & 0x8000000)) if ((abs_var > 0x4000) || (actor->flags & 0x8000000)) {
return FLT_MAX; return FLT_MAX;
else } else {
return actor->waterSurfaceDist - actor->waterSurfaceDist * 0.8f * ((0x4000 - abs_var) * 3.0517578125e-05f); return actor->waterSurfaceDist - actor->waterSurfaceDist * 0.8f * ((0x4000 - abs_var) * 3.0517578125e-05f);
}
} }
if (abs_var > 0x2AAA) if (abs_var > 0x2AAA) {
return FLT_MAX; return FLT_MAX;
}
return actor->waterSurfaceDist; return actor->waterSurfaceDist;
} }
@ -1822,10 +1833,11 @@ void func_8002FBAC(GlobalContext* globalCtx) {
func_800C6AC4(gfxArr, globalCtx->state.gfxCtx, "../z_actor.c", 5308); func_800C6AC4(gfxArr, globalCtx->state.gfxCtx, "../z_actor.c", 5308);
if (gSaveContext.respawn[RESPAWN_MODE_TOP].data != 0) { if (gSaveContext.respawn[RESPAWN_MODE_TOP].data != 0) {
if (LINK_IS_ADULT) if (LINK_IS_ADULT) {
spD8 = 80.0f; spD8 = 80.0f;
else } else {
spD8 = 60.0f; spD8 = 60.0f;
}
spD0 = 0xFF; spD0 = 0xFF;
spD4 = 1.0f; spD4 = 1.0f;

View file

@ -224,8 +224,9 @@ s32 func_800443A0(Camera* camera, Vec3f* b, Vec3f* c) {
sp34 = NULL; // this is moved to the top when it should be done in the middle of the function args being loaded sp34 = NULL; // this is moved to the top when it should be done in the middle of the function args being loaded
if (func_8003DD6C(&camera->globalCtx->colCtx, b, c, &sp40, &sp34, 1, 1, 1, 0, &sp38) != 0) { if (func_8003DD6C(&camera->globalCtx->colCtx, b, c, &sp40, &sp34, 1, 1, 1, 0, &sp38) != 0) {
if (func_80038B7C(sp34, b) < 0.0f) if (func_80038B7C(sp34, b) < 0.0f) {
return 1; return 1;
}
} }
return 0; return 0;
} }
@ -461,18 +462,20 @@ s32 func_800458D4(Camera* camera, struct_80045714* b, f32 c, f32* d, s16 e) {
sp60.z = 0.0f; sp60.z = 0.0f;
temp_s1 = &camera->unk_94; temp_s1 = &camera->unk_94;
if (e != 0) if (e != 0) {
sp60.y -= func_80045714(&camera->unk_108, temp_s1->rot.y, b->unk_06, OREG(9)); sp60.y -= func_80045714(&camera->unk_108, temp_s1->rot.y, b->unk_06, OREG(9));
}
sp48 = temp_s1->pos.y - *d; sp48 = temp_s1->pos.y - *d;
temp_ret = Math_atan2f(sp48, func_8007C028(&camera->unk_50, &camera->unk_5C)); // f2 and f14 are swapped temp_ret = Math_atan2f(sp48, func_8007C028(&camera->unk_50, &camera->unk_5C)); // f2 and f14 are swapped
if (OREG(32) * (M_PI / 180) < temp_ret) if (OREG(32) * (M_PI / 180) < temp_ret) {
phi_f2 = 1.0f - sinf(temp_ret - OREG(32) * (M_PI / 180)); phi_f2 = 1.0f - sinf(temp_ret - OREG(32) * (M_PI / 180));
else if (OREG(33) * (M_PI / 180) > temp_ret) } else if (OREG(33) * (M_PI / 180) > temp_ret) {
phi_f2 = 1.0f - sinf(OREG(33) * (M_PI / 180) - temp_ret); phi_f2 = 1.0f - sinf(OREG(33) * (M_PI / 180) - temp_ret);
else } else {
phi_f2 = 1.0f; phi_f2 = 1.0f;
}
sp60.y -= sp48 * phi_f2; sp60.y -= sp48 * phi_f2;
func_80043A3C(&sp60, &camera->unk_E4, OREG(29) * 0.01f, OREG(30) * 0.01f, 0.1f); func_80043A3C(&sp60, &camera->unk_E4, OREG(29) * 0.01f, OREG(30) * 0.01f, 0.1f);

View file

@ -44,8 +44,9 @@ void func_801109B0(GlobalContext* globalCtx) {
osSyncPrintf("parameter->parameterSegment=%x", interfaceCtx->parameterSegment); osSyncPrintf("parameter->parameterSegment=%x", interfaceCtx->parameterSegment);
if (interfaceCtx->parameterSegment == NULL) if (interfaceCtx->parameterSegment == NULL) {
__assert("parameter->parameterSegment != NULL", "../z_construct.c", 161); __assert("parameter->parameterSegment != NULL", "../z_construct.c", 161);
}
DmaMgr_SendRequest1(interfaceCtx->parameterSegment, parameterStart, parameterSize, "../z_construct.c", 162); DmaMgr_SendRequest1(interfaceCtx->parameterSegment, parameterStart, parameterSize, "../z_construct.c", 162);
@ -55,27 +56,30 @@ void func_801109B0(GlobalContext* globalCtx) {
osSyncPrintf("DOアクション テクスチャ初期=%x\n", 0x480); osSyncPrintf("DOアクション テクスチャ初期=%x\n", 0x480);
osSyncPrintf("parameter->do_actionSegment=%x", interfaceCtx->do_actionSegment); osSyncPrintf("parameter->do_actionSegment=%x", interfaceCtx->do_actionSegment);
if (interfaceCtx->do_actionSegment == NULL) if (interfaceCtx->do_actionSegment == NULL) {
__assert("parameter->do_actionSegment != NULL", "../z_construct.c", 169); __assert("parameter->do_actionSegment != NULL", "../z_construct.c", 169);
}
do_actionStart = _do_action_staticSegmentRomStart; do_actionStart = _do_action_staticSegmentRomStart;
if (gSaveContext.language == 0) if (gSaveContext.language == 0) {
do_actionOffset = 0; do_actionOffset = 0;
else if (gSaveContext.language == 1) } else if (gSaveContext.language == 1) {
do_actionOffset = 0x2B80; do_actionOffset = 0x2B80;
else } else {
do_actionOffset = 0x5700; do_actionOffset = 0x5700;
}
DmaMgr_SendRequest1(interfaceCtx->do_actionSegment, do_actionStart + do_actionOffset, 0x300, "../z_construct.c", DmaMgr_SendRequest1(interfaceCtx->do_actionSegment, do_actionStart + do_actionOffset, 0x300, "../z_construct.c",
174); 174);
if (gSaveContext.language == 0) if (gSaveContext.language == 0) {
do_actionOffset = 0x480; do_actionOffset = 0x480;
else if (gSaveContext.language == 1) } else if (gSaveContext.language == 1) {
do_actionOffset = 0x3000; do_actionOffset = 0x3000;
else } else {
do_actionOffset = 0x5B80; do_actionOffset = 0x5B80;
}
DmaMgr_SendRequest1((void*)((u32)interfaceCtx->do_actionSegment + 0x300), do_actionStart + do_actionOffset, 0x180, DmaMgr_SendRequest1((void*)((u32)interfaceCtx->do_actionSegment + 0x300), do_actionStart + do_actionOffset, 0x180,
"../z_construct.c", 178); "../z_construct.c", 178);
@ -86,36 +90,41 @@ void func_801109B0(GlobalContext* globalCtx) {
osSyncPrintf("アイコンアイテム テクスチャ初期=%x\n", 0x4000); osSyncPrintf("アイコンアイテム テクスチャ初期=%x\n", 0x4000);
osSyncPrintf("parameter->icon_itemSegment=%x\n", interfaceCtx->icon_itemSegment); osSyncPrintf("parameter->icon_itemSegment=%x\n", interfaceCtx->icon_itemSegment);
if (interfaceCtx->icon_itemSegment == NULL) if (interfaceCtx->icon_itemSegment == NULL) {
__assert("parameter->icon_itemSegment != NULL", "../z_construct.c", 193); __assert("parameter->icon_itemSegment != NULL", "../z_construct.c", 193);
}
osSyncPrintf("Register_Item[%x, %x, %x, %x]\n", gSaveContext.equips.button_items[0], osSyncPrintf("Register_Item[%x, %x, %x, %x]\n", gSaveContext.equips.button_items[0],
gSaveContext.equips.button_items[1], gSaveContext.equips.button_items[2], gSaveContext.equips.button_items[1], gSaveContext.equips.button_items[2],
gSaveContext.equips.button_items[3]); gSaveContext.equips.button_items[3]);
if (gSaveContext.equips.button_items[0] < 0xF0) if (gSaveContext.equips.button_items[0] < 0xF0) {
DmaMgr_SendRequest1(interfaceCtx->icon_itemSegment, DmaMgr_SendRequest1(interfaceCtx->icon_itemSegment,
_icon_item_staticSegmentRomStart + gSaveContext.equips.button_items[0] * 0x80, 0x1000, _icon_item_staticSegmentRomStart + gSaveContext.equips.button_items[0] * 0x80, 0x1000,
"../z_construct.c", 198); "../z_construct.c", 198);
else if (gSaveContext.equips.button_items[0] != 0xFF) } else if (gSaveContext.equips.button_items[0] != 0xFF) {
DmaMgr_SendRequest1(interfaceCtx->icon_itemSegment, DmaMgr_SendRequest1(interfaceCtx->icon_itemSegment,
_icon_item_staticSegmentRomStart + gSaveContext.equips.button_items[0] * 0x80, 0x1000, _icon_item_staticSegmentRomStart + gSaveContext.equips.button_items[0] * 0x80, 0x1000,
"../z_construct.c", 203); "../z_construct.c", 203);
}
if (gSaveContext.equips.button_items[1] < 0xF0) if (gSaveContext.equips.button_items[1] < 0xF0) {
DmaMgr_SendRequest1((void*)((u32)interfaceCtx->icon_itemSegment + 0x1000), DmaMgr_SendRequest1((void*)((u32)interfaceCtx->icon_itemSegment + 0x1000),
_icon_item_staticSegmentRomStart + gSaveContext.equips.button_items[1] * 0x80, 0x1000, _icon_item_staticSegmentRomStart + gSaveContext.equips.button_items[1] * 0x80, 0x1000,
"../z_construct.c", 209); "../z_construct.c", 209);
}
if (gSaveContext.equips.button_items[2] < 0xF0) if (gSaveContext.equips.button_items[2] < 0xF0) {
DmaMgr_SendRequest1((void*)((u32)interfaceCtx->icon_itemSegment + 0x2000), DmaMgr_SendRequest1((void*)((u32)interfaceCtx->icon_itemSegment + 0x2000),
_icon_item_staticSegmentRomStart + gSaveContext.equips.button_items[2] * 0x80, 0x1000, _icon_item_staticSegmentRomStart + gSaveContext.equips.button_items[2] * 0x80, 0x1000,
"../z_construct.c", 214); "../z_construct.c", 214);
}
if (gSaveContext.equips.button_items[3] < 0xF0) if (gSaveContext.equips.button_items[3] < 0xF0) {
DmaMgr_SendRequest1((void*)((u32)interfaceCtx->icon_itemSegment + 0x3000), DmaMgr_SendRequest1((void*)((u32)interfaceCtx->icon_itemSegment + 0x3000),
_icon_item_staticSegmentRomStart + gSaveContext.equips.button_items[3] * 0x80, 0x1000, _icon_item_staticSegmentRomStart + gSaveContext.equips.button_items[3] * 0x80, 0x1000,
"../z_construct.c", 219); "../z_construct.c", 219);
}
osSyncPrintf("%d\n", gSaveContext.timer_1_state); osSyncPrintf("%d\n", gSaveContext.timer_1_state);
@ -131,17 +140,19 @@ void func_801109B0(GlobalContext* globalCtx) {
} }
} }
if ((gSaveContext.timer_1_state == 4) || (gSaveContext.timer_1_state == 8)) if ((gSaveContext.timer_1_state == 4) || (gSaveContext.timer_1_state == 8)) {
temp = 0; temp = 0;
else } else {
temp = 1; temp = 1;
}
gSaveContext.timer_x[temp] = 26; gSaveContext.timer_x[temp] = 26;
if (gSaveContext.health_capacity > 0xA0) if (gSaveContext.health_capacity > 0xA0) {
gSaveContext.timer_y[temp] = 54; gSaveContext.timer_y[temp] = 54;
else } else {
gSaveContext.timer_y[temp] = 46; gSaveContext.timer_y[temp] = 46;
}
} }
if ((gSaveContext.timer_1_state >= 11) && (gSaveContext.timer_1_state < 16)) { if ((gSaveContext.timer_1_state >= 11) && (gSaveContext.timer_1_state < 16)) {

View file

@ -114,8 +114,9 @@ void func_800645A0(GlobalContext* globalCtx, CutsceneContext* csCtx) {
gSaveContext.cutscene_trigger = 1; gSaveContext.cutscene_trigger = 1;
} }
if ((gSaveContext.cutscene_trigger != 0) && (globalCtx->sceneLoadFlag == 0x14)) if ((gSaveContext.cutscene_trigger != 0) && (globalCtx->sceneLoadFlag == 0x14)) {
gSaveContext.cutscene_trigger = 0; gSaveContext.cutscene_trigger = 0;
}
if ((gSaveContext.cutscene_trigger != 0) && (csCtx->state == CS_STATE_IDLE)) { if ((gSaveContext.cutscene_trigger != 0) && (csCtx->state == CS_STATE_IDLE)) {
// Translates to: "CUTSCENE START REQUEST ANNOUNCEMENT!" // Translates to: "CUTSCENE START REQUEST ANNOUNCEMENT!"
@ -172,13 +173,15 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
sp3F = 0; sp3F = 0;
if ((csCtx->frames < cmd->startFrame) || (csCtx->frames >= cmd->endFrame) && (cmd->endFrame != cmd->startFrame)) if ((csCtx->frames < cmd->startFrame) || (csCtx->frames >= cmd->endFrame) && (cmd->endFrame != cmd->startFrame)) {
return; return;
}
temp = func_8006F93C(cmd->endFrame - 1, cmd->startFrame, csCtx->frames); temp = func_8006F93C(cmd->endFrame - 1, cmd->startFrame, csCtx->frames);
if (csCtx->frames == cmd->startFrame) if (csCtx->frames == cmd->startFrame) {
sp3F = 1; sp3F = 1;
}
switch (cmd->base) { switch (cmd->base) {
case 1: case 1:
@ -198,13 +201,15 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
case 3: case 3:
if (sp3F != 0) { if (sp3F != 0) {
func_8006C3D0(globalCtx, 0); func_8006C3D0(globalCtx, 0);
if (gSaveContext.entrance_index == 0x0053) if (gSaveContext.entrance_index == 0x0053) {
func_8006C3D0(globalCtx, 2); func_8006C3D0(globalCtx, 2);
}
} }
break; break;
case 6: case 6:
if (globalCtx->unk_10AC4 < 0x3200) if (globalCtx->unk_10AC4 < 0x3200) {
globalCtx->unk_10AC4 += 0x23; globalCtx->unk_10AC4 += 0x23;
}
break; break;
case 7: case 7:
if (sp3F != 0) { if (sp3F != 0) {
@ -219,8 +224,9 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
} }
break; break;
case 8: case 8:
if (globalCtx->unk_11D30[0] < 0x80) if (globalCtx->unk_11D30[0] < 0x80) {
globalCtx->unk_11D30[0] += 4; globalCtx->unk_11D30[0] += 4;
}
break; break;
case 9: case 9:
globalCtx->unk_10B12[3] = 0x10; globalCtx->unk_10B12[3] = 0x10;
@ -229,33 +235,40 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
func_8006C3D0(globalCtx, 1); func_8006C3D0(globalCtx, 1);
break; break;
case 11: case 11:
if (globalCtx->unk_11D30[0] < 0x672) if (globalCtx->unk_11D30[0] < 0x672) {
globalCtx->unk_11D30[0] += 0x14; globalCtx->unk_11D30[0] += 0x14;
if (csCtx->frames == 0x30F) }
if (csCtx->frames == 0x30F) {
func_80078884(NA_SE_EV_DEKU_DEATH); func_80078884(NA_SE_EV_DEKU_DEATH);
else if (csCtx->frames == 0x2CD) } else if (csCtx->frames == 0x2CD) {
globalCtx->unk_11D30[0] = 0; globalCtx->unk_11D30[0] = 0;
}
break; break;
case 12: case 12:
if (sp3F != 0) { if (sp3F != 0) {
if (csCtx->state != CS_STATE_UNSKIPPABLE_EXEC) if (csCtx->state != CS_STATE_UNSKIPPABLE_EXEC) {
csCtx->state = CS_STATE_UNSKIPPABLE_INIT; csCtx->state = CS_STATE_UNSKIPPABLE_INIT;
}
} }
break; break;
case 13: case 13:
if (globalCtx->unk_11D30[1] == 0) if (globalCtx->unk_11D30[1] == 0) {
func_80078884(NA_SE_EV_TRIFORCE_FLASH); func_80078884(NA_SE_EV_TRIFORCE_FLASH);
if (globalCtx->unk_11D30[1] < 0xFF) }
if (globalCtx->unk_11D30[1] < 0xFF) {
globalCtx->unk_11D30[1] += 5; globalCtx->unk_11D30[1] += 5;
}
break; break;
case 14: case 14:
if (sp3F != 0) if (sp3F != 0) {
func_800BC490(globalCtx, 1); func_800BC490(globalCtx, 1);
}
break; break;
case 15: case 15:
if (sp3F != 0) if (sp3F != 0) {
TitleCard_InitPlaceName(globalCtx, &globalCtx->actorCtx.titleCtx, player->unk_1B0, 0xA0, 0x78, 0x90, TitleCard_InitPlaceName(globalCtx, &globalCtx->actorCtx.titleCtx, player->unk_1B0, 0xA0, 0x78, 0x90,
0x18, 0x14); 0x18, 0x14);
}
break; break;
case 16: case 16:
if (sp3F != 0) { if (sp3F != 0) {
@ -266,14 +279,16 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
} }
break; break;
case 17: case 17:
if (sp3F != 0) if (sp3F != 0) {
func_80092FAC(D_8015FCCA); func_80092FAC(D_8015FCCA);
}
break; break;
case 18: case 18:
globalCtx->unk_10B12[0] = 0; globalCtx->unk_10B12[0] = 0;
globalCtx->gloomySkyEvent = 2; globalCtx->gloomySkyEvent = 2;
if (gSaveContext.day_time < 0x4AAB) if (gSaveContext.day_time < 0x4AAB) {
gSaveContext.day_time += 30; gSaveContext.day_time += 30;
}
if (globalCtx->unk_10B12[1] == 0) { if (globalCtx->unk_10B12[1] == 0) {
D_8011FB30 = 0; D_8011FB30 = 0;
func_800F6D58(14, 1, 0); func_800F6D58(14, 1, 0);
@ -305,17 +320,19 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
break; break;
case 25: case 25:
gSaveContext.day_time += 30; gSaveContext.day_time += 30;
if ((gSaveContext.day_time & 0xFFFF) > 0xCAAA) if ((gSaveContext.day_time & 0xFFFF) > 0xCAAA) {
gSaveContext.day_time = 0xCAAA; gSaveContext.day_time = 0xCAAA;
}
break; break;
case 26: case 26:
if ((gSaveContext.day_time < 0x3000) || (gSaveContext.day_time >= 0x4555)) { if ((gSaveContext.day_time < 0x3000) || (gSaveContext.day_time >= 0x4555)) {
if ((gSaveContext.day_time >= 0x4555) && (gSaveContext.day_time < 0xAAAB)) if ((gSaveContext.day_time >= 0x4555) && (gSaveContext.day_time < 0xAAAB)) {
globalCtx->unk_10AE3 = 1; globalCtx->unk_10AE3 = 1;
else if ((gSaveContext.day_time >= 0xAAAB) && (gSaveContext.day_time < 0xC556)) } else if ((gSaveContext.day_time >= 0xAAAB) && (gSaveContext.day_time < 0xC556)) {
globalCtx->unk_10AE3 = 2; globalCtx->unk_10AE3 = 2;
else } else {
globalCtx->unk_10AE3 = 3; globalCtx->unk_10AE3 = 3;
}
} }
break; break;
case 27: case 27:
@ -346,18 +363,20 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
func_8006C3D0(globalCtx, 4); func_8006C3D0(globalCtx, 4);
break; break;
case 32: case 32:
if (sp3F != 0) if (sp3F != 0) {
globalCtx->unk_10B0A = 1; globalCtx->unk_10B0A = 1;
}
func_800788CC(0x20C0); func_800788CC(0x20C0);
break; break;
case 33: case 33:
gSaveContext.unk_1422 = 1; gSaveContext.unk_1422 = 1;
break; break;
case 34: case 34:
if (!gSaveContext.night_flag) if (!gSaveContext.night_flag) {
gSaveContext.day_time -= D_8011FB40; gSaveContext.day_time -= D_8011FB40;
else } else {
gSaveContext.day_time -= D_8011FB40 * 2; gSaveContext.day_time -= D_8011FB40 * 2;
}
break; break;
case 35: case 35:
func_800EE824(csCtx); func_800EE824(csCtx);

View file

@ -94,8 +94,9 @@ void En_A_Obj_Init(ActorEnAObj* this, GlobalContext* globalCtx) {
break; break;
} }
if (this->actor.params >= 9) if (this->actor.params >= 9) {
sp28 = 12.0f; sp28 = 12.0f;
}
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawFunc_Circle, sp28); ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawFunc_Circle, sp28);
@ -154,8 +155,9 @@ void En_A_Obj_Init(ActorEnAObj* this, GlobalContext* globalCtx) {
break; break;
} }
if (this->actor.params < 5) if (this->actor.params < 5) {
this->actor.sub_98.mass = 0xFF; this->actor.sub_98.mass = 0xFF;
}
if (this->dynaPolyId != -1) { if (this->dynaPolyId != -1) {
DynaPolyInfo_Alloc(D_8011546C[this->dynaPolyId], &sp34); DynaPolyInfo_Alloc(D_8011546C[this->dynaPolyId], &sp34);

View file

@ -289,8 +289,9 @@ void En_Item00_Init(ActorEnItem00* this, GlobalContext* globalCtx) {
break; break;
} }
if ((sp2C != 0) && !func_8002F410(&this->actor, globalCtx)) if ((sp2C != 0) && !func_8002F410(&this->actor, globalCtx)) {
func_8002F554(&this->actor, globalCtx, sp2C); func_8002F554(&this->actor, globalCtx, sp2C);
}
En_Item00_SetNewUpdate(this, (ActorFunc)func_8001E5C8); En_Item00_SetNewUpdate(this, (ActorFunc)func_8001E5C8);
this->updateFunc(this, globalCtx); this->updateFunc(this, globalCtx);
@ -480,11 +481,13 @@ void En_Item00_Update(ActorEnItem00* this, GlobalContext* globalCtx) {
sp3C = 0; sp3C = 0;
sp3A = 0; sp3A = 0;
if (this->unk_15A > 0) if (this->unk_15A > 0) {
this->unk_15A--; this->unk_15A--;
}
if ((this->unk_15A > 0) && (this->unk_15A < 41) && (this->unk_154 <= 0)) if ((this->unk_15A > 0) && (this->unk_15A < 41) && (this->unk_154 <= 0)) {
this->unk_156 = this->unk_15A; this->unk_156 = this->unk_15A;
}
this->updateFunc(this, globalCtx); this->updateFunc(this, globalCtx);
@ -533,23 +536,28 @@ void En_Item00_Update(ActorEnItem00* this, GlobalContext* globalCtx) {
(this->actor.params == DROP_TUNIC_ZORA) || (this->actor.params == DROP_TUNIC_GORON)) { (this->actor.params == DROP_TUNIC_ZORA) || (this->actor.params == DROP_TUNIC_GORON)) {
f32 newUnkBC = Math_Coss(this->actor.shape.rot.x) * 37.0f; f32 newUnkBC = Math_Coss(this->actor.shape.rot.x) * 37.0f;
this->actor.shape.unk_08 = newUnkBC; this->actor.shape.unk_08 = newUnkBC;
if (newUnkBC >= 0.0f) if (newUnkBC >= 0.0f) {
this->actor.shape.unk_08 = this->actor.shape.unk_08; this->actor.shape.unk_08 = this->actor.shape.unk_08;
else } else {
this->actor.shape.unk_08 = -this->actor.shape.unk_08; this->actor.shape.unk_08 = -this->actor.shape.unk_08;
}
} }
if (this->unk_154 > 0) if (this->unk_154 > 0) {
return; return;
}
// MISMATCH: The first function argument is loaded too early here // MISMATCH: The first function argument is loaded too early here
if (!((this->actor.xzDistanceFromLink <= 30.0f) && (this->actor.yDistanceFromLink >= -50.0f) && if (!((this->actor.xzDistanceFromLink <= 30.0f) && (this->actor.yDistanceFromLink >= -50.0f) &&
(this->actor.yDistanceFromLink <= 50.0f))) (this->actor.yDistanceFromLink <= 50.0f))) {
if (!func_8002F410(&this->actor, globalCtx)) if (!func_8002F410(&this->actor, globalCtx)) {
return; return;
}
}
if (globalCtx->unk_10A20 != 0) if (globalCtx->unk_10A20 != 0) {
return; return;
}
switch (this->actor.params) { switch (this->actor.params) {
case DROP_RUPEE_GREEN: case DROP_RUPEE_GREEN:
@ -630,8 +638,9 @@ void En_Item00_Update(ActorEnItem00* this, GlobalContext* globalCtx) {
} }
// MISMATCH: The first function argument is also loaded too early here // MISMATCH: The first function argument is also loaded too early here
if ((sp3C != 0) && !func_8002F410(&this->actor, globalCtx)) if ((sp3C != 0) && !func_8002F410(&this->actor, globalCtx)) {
func_8002F554(&this->actor, globalCtx, sp3C); func_8002F554(&this->actor, globalCtx, sp3C);
}
switch (this->actor.params) { switch (this->actor.params) {
case DROP_HEART_PIECE: case DROP_HEART_PIECE:

View file

@ -159,19 +159,21 @@ void func_8006D684(GlobalContext* globalCtx, Player* player) {
{ 0xF6F7, 0x0139, 0x1766 }, { 0xF6F7, 0x0139, 0x1766 },
}; };
if (gSaveContext.entrance_index == 0x028A) if (gSaveContext.entrance_index == 0x028A) {
spawnPos = spawnPositions[0]; spawnPos = spawnPositions[0];
else if (gSaveContext.entrance_index == 0x028E) } else if (gSaveContext.entrance_index == 0x028E) {
spawnPos = spawnPositions[1]; spawnPos = spawnPositions[1];
else if (gSaveContext.entrance_index == 0x0292) } else if (gSaveContext.entrance_index == 0x0292) {
spawnPos = spawnPositions[2]; spawnPos = spawnPositions[2];
else } else {
spawnPos = spawnPositions[3]; spawnPos = spawnPositions[3];
}
player->rideActor = Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_HORSE, spawnPos.x, spawnPos.y, player->rideActor = Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_HORSE, spawnPos.x, spawnPos.y,
spawnPos.z, 0, player->actor.posRot.rot.y, 0, 7); spawnPos.z, 0, player->actor.posRot.rot.y, 0, 7);
if (player->rideActor == NULL) if (player->rideActor == NULL) {
__assert("player->ride.actor != NULL", "../z_horse.c", 561); __assert("player->ride.actor != NULL", "../z_horse.c", 561);
}
func_8002DECC(globalCtx, player, player->rideActor); func_8002DECC(globalCtx, player, player->rideActor);
func_8002DE74(globalCtx, player); func_8002DE74(globalCtx, player);
@ -180,15 +182,17 @@ void func_8006D684(GlobalContext* globalCtx, Player* player) {
(Flags_GetEventChkInf(0x18) == 0) && (DREG(1) == 0)) { (Flags_GetEventChkInf(0x18) == 0) && (DREG(1) == 0)) {
player->rideActor = player->rideActor =
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_HORSE, 894.0f, 0.0f, -2084.0f, 0, -0x7FFF, 0, 5); Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_HORSE, 894.0f, 0.0f, -2084.0f, 0, -0x7FFF, 0, 5);
if (player->rideActor == NULL) if (player->rideActor == NULL) {
__assert("player->ride.actor != NULL", "../z_horse.c", 582); __assert("player->ride.actor != NULL", "../z_horse.c", 582);
}
func_8002DECC(globalCtx, player, player->rideActor); func_8002DECC(globalCtx, player, player->rideActor);
func_8002DE74(globalCtx, player); func_8002DE74(globalCtx, player);
gSaveContext.horse_data.scene = globalCtx->sceneNum; gSaveContext.horse_data.scene = globalCtx->sceneNum;
if (globalCtx->sceneNum == SCENE_SPOT12) if (globalCtx->sceneNum == SCENE_SPOT12) {
player->rideActor->room = -1; player->rideActor->room = -1;
}
} else { } else {
static struct_8011F9B8 D_8011F9B8[] = { static struct_8011F9B8 D_8011F9B8[] = {
{ 93, 0xFFF0, 0x0E10, 0x0585, 0x0168, 0x8001, 8 }, { 99, 0xFFF0, 0xFF06, 0x0001, 0xF9D4, 0x4000, 6 }, { 93, 0xFFF0, 0x0E10, 0x0585, 0x0168, 0x8001, 8 }, { 99, 0xFFF0, 0xFF06, 0x0001, 0xF9D4, 0x4000, 6 },
@ -210,8 +214,9 @@ void func_8006D684(GlobalContext* globalCtx, Player* player) {
player->rideActor = Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_HORSE, player->rideActor = Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_HORSE,
D_8011F9B8[i].pos.x, D_8011F9B8[i].pos.y, D_8011F9B8[i].pos.z, 0, D_8011F9B8[i].pos.x, D_8011F9B8[i].pos.y, D_8011F9B8[i].pos.z, 0,
player->actor.posRot.rot.y, 0, D_8011F9B8[i].type); player->actor.posRot.rot.y, 0, D_8011F9B8[i].type);
if (player->rideActor == NULL) if (player->rideActor == NULL) {
__assert("player->ride.actor != NULL", "../z_horse.c", 628); __assert("player->ride.actor != NULL", "../z_horse.c", 628);
}
func_8002DECC(globalCtx, player, player->rideActor); func_8002DECC(globalCtx, player, player->rideActor);
func_8002DE74(globalCtx, player); func_8002DE74(globalCtx, player);
@ -221,14 +226,16 @@ void func_8006D684(GlobalContext* globalCtx, Player* player) {
s32 pad2; s32 pad2;
temp = 0; temp = 0;
if (((gSaveContext.event_inf[0] & 0x10) >> 4) && D_8011F9B8[i].type == 6) if (((gSaveContext.event_inf[0] & 0x10) >> 4) && D_8011F9B8[i].type == 6) {
temp = 0x8000; temp = 0x8000;
}
player->rideActor = Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_HORSE, player->rideActor = Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_HORSE,
D_8011F9B8[i].pos.x, D_8011F9B8[i].pos.y, D_8011F9B8[i].pos.z, 0, D_8011F9B8[i].pos.x, D_8011F9B8[i].pos.y, D_8011F9B8[i].pos.z, 0,
D_8011F9B8[i].angle, 0, D_8011F9B8[i].type | temp); D_8011F9B8[i].angle, 0, D_8011F9B8[i].type | temp);
if (player->rideActor == NULL) if (player->rideActor == NULL) {
__assert("player->ride.actor != NULL", "../z_horse.c", 667); __assert("player->ride.actor != NULL", "../z_horse.c", 667);
}
player->actor.posRot.pos.x = D_8011F9B8[i].pos.x; player->actor.posRot.pos.x = D_8011F9B8[i].pos.x;
player->actor.posRot.pos.y = D_8011F9B8[i].pos.y; player->actor.posRot.pos.y = D_8011F9B8[i].pos.y;

View file

@ -75,8 +75,9 @@ void KaleidoScopeCall_Update(GlobalContext* globalCtx) {
pauseCtx->state++; pauseCtx->state++;
} else if (pauseCtx->state == 2 || pauseCtx->state == 9) { } else if (pauseCtx->state == 2 || pauseCtx->state == 9) {
osSyncPrintf("R_PAUSE_MENU_MODE=%d\n", R_PAUSE_MENU_MODE); osSyncPrintf("R_PAUSE_MENU_MODE=%d\n", R_PAUSE_MENU_MODE);
if (R_PAUSE_MENU_MODE >= 3) if (R_PAUSE_MENU_MODE >= 3) {
pauseCtx->state++; pauseCtx->state++;
}
} else if (pauseCtx->state != 0) { } else if (pauseCtx->state != 0) {
if (&gKaleidoMgrOverlayTable[KALEIDO_OVL_KALEIDO_SCOPE] != gKaleidoMgrCurOvl) { if (&gKaleidoMgrOverlayTable[KALEIDO_OVL_KALEIDO_SCOPE] != gKaleidoMgrCurOvl) {
if (gKaleidoMgrCurOvl) { if (gKaleidoMgrCurOvl) {

View file

@ -1141,13 +1141,15 @@ void Inventory_SwapAgeEquipment(void) {
if (LINK_AGE_IN_YEARS == YEARS_CHILD) { if (LINK_AGE_IN_YEARS == YEARS_CHILD) {
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
if (i != 0) if (i != 0) {
gSaveContext.child_equips.button_items[i] = gSaveContext.equips.button_items[i]; gSaveContext.child_equips.button_items[i] = gSaveContext.equips.button_items[i];
else } else {
gSaveContext.child_equips.button_items[i] = ITEM_SWORD_KOKIRI; gSaveContext.child_equips.button_items[i] = ITEM_SWORD_KOKIRI;
}
if (i != 0) if (i != 0) {
gSaveContext.child_equips.c_button_slots[i - 1] = gSaveContext.equips.c_button_slots[i - 1]; gSaveContext.child_equips.c_button_slots[i - 1] = gSaveContext.equips.c_button_slots[i - 1];
}
} }
gSaveContext.child_equips.equipment = gSaveContext.equips.equipment; gSaveContext.child_equips.equipment = gSaveContext.equips.equipment;
@ -1172,8 +1174,9 @@ void Inventory_SwapAgeEquipment(void) {
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
gSaveContext.equips.button_items[i] = gSaveContext.adult_equips.button_items[i]; gSaveContext.equips.button_items[i] = gSaveContext.adult_equips.button_items[i];
if (i != 0) if (i != 0) {
gSaveContext.equips.c_button_slots[i - 1] = gSaveContext.adult_equips.c_button_slots[i - 1]; gSaveContext.equips.c_button_slots[i - 1] = gSaveContext.adult_equips.c_button_slots[i - 1];
}
if (((gSaveContext.equips.button_items[i] >= ITEM_BOTTLE) && if (((gSaveContext.equips.button_items[i] >= ITEM_BOTTLE) &&
(gSaveContext.equips.button_items[i] <= ITEM_POE)) || (gSaveContext.equips.button_items[i] <= ITEM_POE)) ||
@ -1190,8 +1193,9 @@ void Inventory_SwapAgeEquipment(void) {
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
gSaveContext.adult_equips.button_items[i] = gSaveContext.equips.button_items[i]; gSaveContext.adult_equips.button_items[i] = gSaveContext.equips.button_items[i];
if (i != 0) if (i != 0) {
gSaveContext.adult_equips.c_button_slots[i - 1] = gSaveContext.equips.c_button_slots[i - 1]; gSaveContext.adult_equips.c_button_slots[i - 1] = gSaveContext.equips.c_button_slots[i - 1];
}
} }
gSaveContext.adult_equips.equipment = gSaveContext.equips.equipment; gSaveContext.adult_equips.equipment = gSaveContext.equips.equipment;
@ -1200,8 +1204,9 @@ void Inventory_SwapAgeEquipment(void) {
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
gSaveContext.equips.button_items[i] = gSaveContext.child_equips.button_items[i]; gSaveContext.equips.button_items[i] = gSaveContext.child_equips.button_items[i];
if (i != 0) if (i != 0) {
gSaveContext.equips.c_button_slots[i - 1] = gSaveContext.child_equips.c_button_slots[i - 1]; gSaveContext.equips.c_button_slots[i - 1] = gSaveContext.child_equips.c_button_slots[i - 1];
}
if (((gSaveContext.equips.button_items[i] >= ITEM_BOTTLE) && if (((gSaveContext.equips.button_items[i] >= ITEM_BOTTLE) &&
(gSaveContext.equips.button_items[i] <= ITEM_POE)) || (gSaveContext.equips.button_items[i] <= ITEM_POE)) ||
@ -1221,8 +1226,9 @@ void Inventory_SwapAgeEquipment(void) {
temp = gEquipMasks[EQUIP_SHIELD] & gSaveContext.equips.equipment; temp = gEquipMasks[EQUIP_SHIELD] & gSaveContext.equips.equipment;
if (temp != 0) { if (temp != 0) {
temp >>= gEquipShifts[EQUIP_SHIELD]; temp >>= gEquipShifts[EQUIP_SHIELD];
if (!(gBitFlags[temp + 3] & gSaveContext.equipment)) if (!(gBitFlags[temp + 3] & gSaveContext.equipment)) {
gSaveContext.equips.equipment &= gEquipNegMasks[EQUIP_SHIELD]; gSaveContext.equips.equipment &= gEquipNegMasks[EQUIP_SHIELD];
}
} }
} }
#else #else
@ -1315,8 +1321,9 @@ u8 Item_Give(GlobalContext* globalCtx, u8 item) {
s8 bombCount; s8 bombCount;
slot = SLOT(item); slot = SLOT(item);
if (item >= ITEM_STICKS_5) if (item >= ITEM_STICKS_5) {
slot = SLOT(sExtraItemBases[item - ITEM_STICKS_5]); slot = SLOT(sExtraItemBases[item - ITEM_STICKS_5]);
}
osSyncPrintf(VT_FGCOL(YELLOW)); osSyncPrintf(VT_FGCOL(YELLOW));
osSyncPrintf("item_get_setting=%d pt=%d z=%x\n", item, slot, gSaveContext.items[slot]); osSyncPrintf("item_get_setting=%d pt=%d z=%x\n", item, slot, gSaveContext.items[slot]);
@ -1330,8 +1337,9 @@ u8 Item_Give(GlobalContext* globalCtx, u8 item) {
osSyncPrintf("封印 = %x\n", gSaveContext.quest_items); osSyncPrintf("封印 = %x\n", gSaveContext.quest_items);
osSyncPrintf(VT_RST); osSyncPrintf(VT_RST);
if (item == ITEM_MEDALLION_WATER) if (item == ITEM_MEDALLION_WATER) {
func_8006D0AC(globalCtx); func_8006D0AC(globalCtx);
}
return ITEM_NONE; return ITEM_NONE;
} else if ((item >= ITEM_SONG_MINUET) && (item <= ITEM_SONG_STORMS)) { } else if ((item >= ITEM_SONG_MINUET) && (item <= ITEM_SONG_STORMS)) {
@ -1423,8 +1431,9 @@ u8 Item_Give(GlobalContext* globalCtx, u8 item) {
return ITEM_NONE; return ITEM_NONE;
} else { } else {
AMMO(ITEM_BOW)++; AMMO(ITEM_BOW)++;
if (AMMO(ITEM_BOW) > CUR_CAPACITY(UPG_QUIVER)) if (AMMO(ITEM_BOW) > CUR_CAPACITY(UPG_QUIVER)) {
AMMO(ITEM_BOW) = CUR_CAPACITY(UPG_QUIVER); AMMO(ITEM_BOW) = CUR_CAPACITY(UPG_QUIVER);
}
} }
} else if (item == ITEM_QUIVER_40) { } else if (item == ITEM_QUIVER_40) {
Inventory_ChangeUpgrade(UPG_QUIVER, 2); Inventory_ChangeUpgrade(UPG_QUIVER, 2);
@ -1450,8 +1459,9 @@ u8 Item_Give(GlobalContext* globalCtx, u8 item) {
return ITEM_NONE; return ITEM_NONE;
} else { } else {
AMMO(ITEM_BOMB)++; AMMO(ITEM_BOMB)++;
if (AMMO(ITEM_BOMB) > CUR_CAPACITY(UPG_BOMB_BAG)) if (AMMO(ITEM_BOMB) > CUR_CAPACITY(UPG_BOMB_BAG)) {
AMMO(ITEM_BOMB) = CUR_CAPACITY(UPG_BOMB_BAG); AMMO(ITEM_BOMB) = CUR_CAPACITY(UPG_BOMB_BAG);
}
} }
} else if (item == ITEM_BOMB_BAG_30) { } else if (item == ITEM_BOMB_BAG_30) {
Inventory_ChangeUpgrade(UPG_BOMB_BAG, 2); Inventory_ChangeUpgrade(UPG_BOMB_BAG, 2);
@ -1483,26 +1493,30 @@ u8 Item_Give(GlobalContext* globalCtx, u8 item) {
Inventory_ChangeUpgrade(UPG_WALLET, 2); Inventory_ChangeUpgrade(UPG_WALLET, 2);
return ITEM_NONE; return ITEM_NONE;
} else if (item == ITEM_STICK_UPGRADE_20) { } else if (item == ITEM_STICK_UPGRADE_20) {
if (gSaveContext.items[slot] == ITEM_NONE) if (gSaveContext.items[slot] == ITEM_NONE) {
INV_CONTENT(ITEM_STICK) = ITEM_STICK; INV_CONTENT(ITEM_STICK) = ITEM_STICK;
}
Inventory_ChangeUpgrade(UPG_STICKS, 2); Inventory_ChangeUpgrade(UPG_STICKS, 2);
AMMO(ITEM_STICK) = CAPACITY(UPG_STICKS, 2); AMMO(ITEM_STICK) = CAPACITY(UPG_STICKS, 2);
return ITEM_NONE; return ITEM_NONE;
} else if (item == ITEM_STICK_UPGRADE_30) { } else if (item == ITEM_STICK_UPGRADE_30) {
if (gSaveContext.items[slot] == ITEM_NONE) if (gSaveContext.items[slot] == ITEM_NONE) {
INV_CONTENT(ITEM_STICK) = ITEM_STICK; INV_CONTENT(ITEM_STICK) = ITEM_STICK;
}
Inventory_ChangeUpgrade(UPG_STICKS, 3); Inventory_ChangeUpgrade(UPG_STICKS, 3);
AMMO(ITEM_STICK) = CAPACITY(UPG_STICKS, 3); AMMO(ITEM_STICK) = CAPACITY(UPG_STICKS, 3);
return ITEM_NONE; return ITEM_NONE;
} else if (item == ITEM_NUT_UPGRADE_30) { } else if (item == ITEM_NUT_UPGRADE_30) {
if (gSaveContext.items[slot] == ITEM_NONE) if (gSaveContext.items[slot] == ITEM_NONE) {
INV_CONTENT(ITEM_NUT) = ITEM_NUT; INV_CONTENT(ITEM_NUT) = ITEM_NUT;
}
Inventory_ChangeUpgrade(UPG_NUTS, 2); Inventory_ChangeUpgrade(UPG_NUTS, 2);
AMMO(ITEM_NUT) = CAPACITY(UPG_NUTS, 2); AMMO(ITEM_NUT) = CAPACITY(UPG_NUTS, 2);
return ITEM_NONE; return ITEM_NONE;
} else if (item == ITEM_NUT_UPGRADE_40) { } else if (item == ITEM_NUT_UPGRADE_40) {
if (gSaveContext.items[slot] == ITEM_NONE) if (gSaveContext.items[slot] == ITEM_NONE) {
INV_CONTENT(ITEM_NUT) = ITEM_NUT; INV_CONTENT(ITEM_NUT) = ITEM_NUT;
}
Inventory_ChangeUpgrade(UPG_NUTS, 3); Inventory_ChangeUpgrade(UPG_NUTS, 3);
AMMO(ITEM_NUT) = CAPACITY(UPG_NUTS, 3); AMMO(ITEM_NUT) = CAPACITY(UPG_NUTS, 3);
return ITEM_NONE; return ITEM_NONE;
@ -1521,8 +1535,9 @@ u8 Item_Give(GlobalContext* globalCtx, u8 item) {
AMMO(ITEM_STICK) = 1; AMMO(ITEM_STICK) = 1;
} else { } else {
AMMO(ITEM_STICK)++; AMMO(ITEM_STICK)++;
if (AMMO(ITEM_STICK) > CUR_CAPACITY(UPG_STICKS)) if (AMMO(ITEM_STICK) > CUR_CAPACITY(UPG_STICKS)) {
AMMO(ITEM_STICK) = CUR_CAPACITY(UPG_STICKS); AMMO(ITEM_STICK) = CUR_CAPACITY(UPG_STICKS);
}
} }
} else if ((item == ITEM_STICKS_5) || (item == ITEM_STICKS_10)) { } else if ((item == ITEM_STICKS_5) || (item == ITEM_STICKS_10)) {
if (gSaveContext.items[slot] == ITEM_NONE) { if (gSaveContext.items[slot] == ITEM_NONE) {
@ -1530,8 +1545,9 @@ u8 Item_Give(GlobalContext* globalCtx, u8 item) {
AMMO(ITEM_STICK) = sAmmoRefillCounts[item - ITEM_STICKS_5]; AMMO(ITEM_STICK) = sAmmoRefillCounts[item - ITEM_STICKS_5];
} else { } else {
AMMO(ITEM_STICK) += sAmmoRefillCounts[item - ITEM_STICKS_5]; AMMO(ITEM_STICK) += sAmmoRefillCounts[item - ITEM_STICKS_5];
if (AMMO(ITEM_STICK) > CUR_CAPACITY(UPG_STICKS)) if (AMMO(ITEM_STICK) > CUR_CAPACITY(UPG_STICKS)) {
AMMO(ITEM_STICK) = CUR_CAPACITY(UPG_STICKS); AMMO(ITEM_STICK) = CUR_CAPACITY(UPG_STICKS);
}
} }
item = ITEM_STICK; item = ITEM_STICK;
} else if (item == ITEM_NUT) { } else if (item == ITEM_NUT) {
@ -1540,8 +1556,9 @@ u8 Item_Give(GlobalContext* globalCtx, u8 item) {
AMMO(ITEM_NUT) = ITEM_NUT; AMMO(ITEM_NUT) = ITEM_NUT;
} else { } else {
AMMO(ITEM_NUT)++; AMMO(ITEM_NUT)++;
if (AMMO(ITEM_NUT) > CUR_CAPACITY(UPG_NUTS)) if (AMMO(ITEM_NUT) > CUR_CAPACITY(UPG_NUTS)) {
AMMO(ITEM_NUT) = CUR_CAPACITY(UPG_NUTS); AMMO(ITEM_NUT) = CUR_CAPACITY(UPG_NUTS);
}
} }
} else if ((item == ITEM_NUTS_5) || (item == ITEM_NUTS_10)) { } else if ((item == ITEM_NUTS_5) || (item == ITEM_NUTS_10)) {
if (gSaveContext.items[slot] == ITEM_NONE) { if (gSaveContext.items[slot] == ITEM_NONE) {
@ -1552,8 +1569,9 @@ u8 Item_Give(GlobalContext* globalCtx, u8 item) {
sAmmoRefillCounts[item - ITEM_NUTS_5]); sAmmoRefillCounts[item - ITEM_NUTS_5]);
} else { } else {
AMMO(ITEM_NUT) += sAmmoRefillCounts[item - ITEM_NUTS_5]; AMMO(ITEM_NUT) += sAmmoRefillCounts[item - ITEM_NUTS_5];
if (AMMO(ITEM_NUT) > CUR_CAPACITY(UPG_NUTS)) if (AMMO(ITEM_NUT) > CUR_CAPACITY(UPG_NUTS)) {
AMMO(ITEM_NUT) = CUR_CAPACITY(UPG_NUTS); AMMO(ITEM_NUT) = CUR_CAPACITY(UPG_NUTS);
}
} }
item = ITEM_NUT; item = ITEM_NUT;
} else if (item == ITEM_BOMB) { } else if (item == ITEM_BOMB) {
@ -1561,14 +1579,16 @@ u8 Item_Give(GlobalContext* globalCtx, u8 item) {
osSyncPrintf(" 爆弾 爆弾 爆弾 爆弾 爆弾 爆弾 爆弾 \n"); osSyncPrintf(" 爆弾 爆弾 爆弾 爆弾 爆弾 爆弾 爆弾 \n");
bombCount = AMMO(ITEM_BOMB) + 1; bombCount = AMMO(ITEM_BOMB) + 1;
AMMO(ITEM_BOMB) = bombCount; AMMO(ITEM_BOMB) = bombCount;
if (bombCount > CUR_CAPACITY(UPG_BOMB_BAG)) if (bombCount > CUR_CAPACITY(UPG_BOMB_BAG)) {
AMMO(ITEM_BOMB) = CUR_CAPACITY(UPG_BOMB_BAG); AMMO(ITEM_BOMB) = CUR_CAPACITY(UPG_BOMB_BAG);
}
return ITEM_NONE; return ITEM_NONE;
} else if ((item >= ITEM_BOMBS_5) && (item <= ITEM_BOMBS_30)) { } else if ((item >= ITEM_BOMBS_5) && (item <= ITEM_BOMBS_30)) {
bombCount = AMMO(ITEM_BOMB) + sAmmoRefillCounts[item - ITEM_BOMBS_5]; bombCount = AMMO(ITEM_BOMB) + sAmmoRefillCounts[item - ITEM_BOMBS_5];
AMMO(ITEM_BOMB) = bombCount; AMMO(ITEM_BOMB) = bombCount;
if (bombCount > CUR_CAPACITY(UPG_BOMB_BAG)) if (bombCount > CUR_CAPACITY(UPG_BOMB_BAG)) {
AMMO(ITEM_BOMB) = CUR_CAPACITY(UPG_BOMB_BAG); AMMO(ITEM_BOMB) = CUR_CAPACITY(UPG_BOMB_BAG);
}
return ITEM_NONE; return ITEM_NONE;
} else if (item == ITEM_BOMBCHU) { } else if (item == ITEM_BOMBCHU) {
if (gSaveContext.items[slot] == ITEM_NONE) { if (gSaveContext.items[slot] == ITEM_NONE) {
@ -1577,8 +1597,9 @@ u8 Item_Give(GlobalContext* globalCtx, u8 item) {
return ITEM_NONE; return ITEM_NONE;
} else { } else {
AMMO(ITEM_BOMBCHU) += 10; AMMO(ITEM_BOMBCHU) += 10;
if (AMMO(ITEM_BOMBCHU) > 50) if (AMMO(ITEM_BOMBCHU) > 50) {
AMMO(ITEM_BOMBCHU) = 50; AMMO(ITEM_BOMBCHU) = 50;
}
return ITEM_NONE; return ITEM_NONE;
} }
} else if ((item == ITEM_BOMBCHUS_5) || (item == ITEM_BOMBCHUS_20)) { } else if ((item == ITEM_BOMBCHUS_5) || (item == ITEM_BOMBCHUS_20)) {
@ -1588,15 +1609,17 @@ u8 Item_Give(GlobalContext* globalCtx, u8 item) {
return ITEM_NONE; return ITEM_NONE;
} else { } else {
AMMO(ITEM_BOMBCHU) += sAmmoRefillCounts[item - ITEM_BOMBCHUS_5 + 8]; AMMO(ITEM_BOMBCHU) += sAmmoRefillCounts[item - ITEM_BOMBCHUS_5 + 8];
if (AMMO(ITEM_BOMBCHU) > 50) if (AMMO(ITEM_BOMBCHU) > 50) {
AMMO(ITEM_BOMBCHU) = 50; AMMO(ITEM_BOMBCHU) = 50;
}
return ITEM_NONE; return ITEM_NONE;
} }
} else if ((item >= ITEM_ARROWS_SMALL) && (item <= ITEM_ARROWS_LARGE)) { } else if ((item >= ITEM_ARROWS_SMALL) && (item <= ITEM_ARROWS_LARGE)) {
AMMO(ITEM_BOW) += sAmmoRefillCounts[item - ITEM_ARROWS_SMALL + 4]; AMMO(ITEM_BOW) += sAmmoRefillCounts[item - ITEM_ARROWS_SMALL + 4];
if ((AMMO(ITEM_BOW) >= CUR_CAPACITY(UPG_QUIVER)) || (AMMO(ITEM_BOW) < 0)) if ((AMMO(ITEM_BOW) >= CUR_CAPACITY(UPG_QUIVER)) || (AMMO(ITEM_BOW) < 0)) {
AMMO(ITEM_BOW) = CUR_CAPACITY(UPG_QUIVER); AMMO(ITEM_BOW) = CUR_CAPACITY(UPG_QUIVER);
}
osSyncPrintf("%d本 Item_MaxGet=%d\n", AMMO(ITEM_BOW), CUR_CAPACITY(UPG_QUIVER)); osSyncPrintf("%d本 Item_MaxGet=%d\n", AMMO(ITEM_BOW), CUR_CAPACITY(UPG_QUIVER));
@ -1609,8 +1632,9 @@ u8 Item_Give(GlobalContext* globalCtx, u8 item) {
} else if (item == ITEM_SEEDS) { } else if (item == ITEM_SEEDS) {
AMMO(ITEM_SLINGSHOT) += 5; AMMO(ITEM_SLINGSHOT) += 5;
if (AMMO(ITEM_SLINGSHOT) >= CUR_CAPACITY(UPG_BULLET_BAG)) if (AMMO(ITEM_SLINGSHOT) >= CUR_CAPACITY(UPG_BULLET_BAG)) {
AMMO(ITEM_SLINGSHOT) = CUR_CAPACITY(UPG_BULLET_BAG); AMMO(ITEM_SLINGSHOT) = CUR_CAPACITY(UPG_BULLET_BAG);
}
if (!(gSaveContext.item_get_inf[1] & 8)) { if (!(gSaveContext.item_get_inf[1] & 8)) {
gSaveContext.item_get_inf[1] |= 8; gSaveContext.item_get_inf[1] |= 8;
@ -1621,8 +1645,9 @@ u8 Item_Give(GlobalContext* globalCtx, u8 item) {
} else if (item == ITEM_SEEDS_30) { } else if (item == ITEM_SEEDS_30) {
AMMO(ITEM_SLINGSHOT) += 30; AMMO(ITEM_SLINGSHOT) += 30;
if (AMMO(ITEM_SLINGSHOT) >= CUR_CAPACITY(UPG_BULLET_BAG)) if (AMMO(ITEM_SLINGSHOT) >= CUR_CAPACITY(UPG_BULLET_BAG)) {
AMMO(ITEM_SLINGSHOT) = CUR_CAPACITY(UPG_BULLET_BAG); AMMO(ITEM_SLINGSHOT) = CUR_CAPACITY(UPG_BULLET_BAG);
}
if (!(gSaveContext.item_get_inf[1] & 8)) { if (!(gSaveContext.item_get_inf[1] & 8)) {
gSaveContext.item_get_inf[1] |= 8; gSaveContext.item_get_inf[1] |= 8;
@ -1665,8 +1690,9 @@ u8 Item_Give(GlobalContext* globalCtx, u8 item) {
Health_ChangeBy(globalCtx, 0x10); Health_ChangeBy(globalCtx, 0x10);
return item; return item;
} else if (item == ITEM_MAGIC_SMALL) { } else if (item == ITEM_MAGIC_SMALL) {
if (gSaveContext.unk_13F0 != 10) if (gSaveContext.unk_13F0 != 10) {
func_80087680(globalCtx); func_80087680(globalCtx);
}
func_80087708(globalCtx, 12, 5); func_80087708(globalCtx, 12, 5);
@ -1677,8 +1703,9 @@ u8 Item_Give(GlobalContext* globalCtx, u8 item) {
return item; return item;
} else if (item == ITEM_MAGIC_LARGE) { } else if (item == ITEM_MAGIC_LARGE) {
if (gSaveContext.unk_13F0 != 10) if (gSaveContext.unk_13F0 != 10) {
func_80087680(globalCtx); func_80087680(globalCtx);
}
func_80087708(globalCtx, 24, 5); func_80087708(globalCtx, 24, 5);
@ -1741,8 +1768,9 @@ u8 Item_Give(GlobalContext* globalCtx, u8 item) {
} }
} }
} else if ((item >= ITEM_WEIRD_EGG) && (item <= ITEM_CLAIM_CHECK)) { } else if ((item >= ITEM_WEIRD_EGG) && (item <= ITEM_CLAIM_CHECK)) {
if (item == ITEM_SAW) if (item == ITEM_SAW) {
gSaveContext.item_get_inf[1] |= 0x8000; gSaveContext.item_get_inf[1] |= 0x8000;
}
prevTradeItem = INV_CONTENT(item); prevTradeItem = INV_CONTENT(item);
INV_CONTENT(item) = item; INV_CONTENT(item) = item;
@ -1990,8 +2018,9 @@ void Inventory_UpdateBottleItem(GlobalContext* globalCtx, u8 item, u8 cButton) {
// Special case to only empty half of a Lon Lon Milk Bottle // Special case to only empty half of a Lon Lon Milk Bottle
if ((gSaveContext.items[gSaveContext.equips.c_button_slots[cButton - 1]] == ITEM_MILK_BOTTLE) && if ((gSaveContext.items[gSaveContext.equips.c_button_slots[cButton - 1]] == ITEM_MILK_BOTTLE) &&
(item == ITEM_BOTTLE)) (item == ITEM_BOTTLE)) {
item = ITEM_MILK_HALF; item = ITEM_MILK_HALF;
}
gSaveContext.items[gSaveContext.equips.c_button_slots[cButton - 1]] = item; gSaveContext.items[gSaveContext.equips.c_button_slots[cButton - 1]] = item;
gSaveContext.equips.button_items[cButton] = item; gSaveContext.equips.button_items[cButton] = item;
@ -2052,14 +2081,17 @@ u32 sDoActionTextures[] = { 0x07000000, 0x07000180 };
#ifdef NON_MATCHING #ifdef NON_MATCHING
// 0x80000000 is reused in the 2 *_TO_VIRTUAL macros when it shouldn't // 0x80000000 is reused in the 2 *_TO_VIRTUAL macros when it shouldn't
void Interface_LoadActionLabel(InterfaceContext* interfaceCtx, u16 action, s16 arg2) { void Interface_LoadActionLabel(InterfaceContext* interfaceCtx, u16 action, s16 arg2) {
if (action >= 0x1D) if (action >= 0x1D) {
action = 0x0A; action = 0x0A;
}
if (gSaveContext.language != 0) if (gSaveContext.language != 0) {
action += 0x1D; action += 0x1D;
}
if (gSaveContext.language == 2) if (gSaveContext.language == 2) {
action += 0x1D; action += 0x1D;
}
if ((action != 0x0A) && (action != 0x27) && (action != 0x44)) { if ((action != 0x0A) && (action != 0x27) && (action != 0x44)) {
osCreateMesgQueue(&interfaceCtx->loadQueue, &interfaceCtx->loadMsg, OS_MESG_BLOCK); osCreateMesgQueue(&interfaceCtx->loadQueue, &interfaceCtx->loadMsg, OS_MESG_BLOCK);
@ -2375,12 +2407,14 @@ void Interface_UpdateMagicBar(GlobalContext* globalCtx) {
if (gSaveContext.unk_13F4 != maxMagic) { if (gSaveContext.unk_13F4 != maxMagic) {
if (gSaveContext.unk_13F4 < maxMagic) { if (gSaveContext.unk_13F4 < maxMagic) {
gSaveContext.unk_13F4 += 8; gSaveContext.unk_13F4 += 8;
if (gSaveContext.unk_13F4 > maxMagic) if (gSaveContext.unk_13F4 > maxMagic) {
gSaveContext.unk_13F4 = maxMagic; gSaveContext.unk_13F4 = maxMagic;
}
} else { } else {
gSaveContext.unk_13F4 -= 8; gSaveContext.unk_13F4 -= 8;
if (gSaveContext.unk_13F4 <= maxMagic) if (gSaveContext.unk_13F4 <= maxMagic) {
gSaveContext.unk_13F4 = maxMagic; gSaveContext.unk_13F4 = maxMagic;
}
} }
} else { } else {
gSaveContext.unk_13F0 = 9; gSaveContext.unk_13F0 = 9;
@ -2389,8 +2423,9 @@ void Interface_UpdateMagicBar(GlobalContext* globalCtx) {
case 9: case 9:
gSaveContext.magic += 4; gSaveContext.magic += 4;
if (gSaveContext.game_mode == 0 && gSaveContext.scene_setup_index < 4) if (gSaveContext.game_mode == 0 && gSaveContext.scene_setup_index < 4) {
Audio_PlaySoundGeneral(0x401F, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); Audio_PlaySoundGeneral(0x401F, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8);
}
// Translates to: "Storage MAGIC_NOW=%d (%d)" // Translates to: "Storage MAGIC_NOW=%d (%d)"
osSyncPrintf("蓄電 MAGIC_NOW=%d (%d)\n", gSaveContext.magic, gSaveContext.unk_13F6); osSyncPrintf("蓄電 MAGIC_NOW=%d (%d)\n", gSaveContext.magic, gSaveContext.unk_13F6);
@ -2423,20 +2458,23 @@ void Interface_UpdateMagicBar(GlobalContext* globalCtx) {
case 6: case 6:
color = sMagicBorderColors[sMagicBorderIndexes[sMagicBorderStep]]; color = sMagicBorderColors[sMagicBorderIndexes[sMagicBorderStep]];
if (sMagicBorderR >= color[0]) if (sMagicBorderR >= color[0]) {
sMagicBorderR -= ABS(sMagicBorderR - color[0]) / sMagicBorderRatio; sMagicBorderR -= ABS(sMagicBorderR - color[0]) / sMagicBorderRatio;
else } else {
sMagicBorderR += ABS(sMagicBorderR - color[0]) / sMagicBorderRatio; sMagicBorderR += ABS(sMagicBorderR - color[0]) / sMagicBorderRatio;
}
if (sMagicBorderG >= color[1]) if (sMagicBorderG >= color[1]) {
sMagicBorderG -= ABS(sMagicBorderG - color[1]) / sMagicBorderRatio; sMagicBorderG -= ABS(sMagicBorderG - color[1]) / sMagicBorderRatio;
else } else {
sMagicBorderG += ABS(sMagicBorderG - color[1]) / sMagicBorderRatio; sMagicBorderG += ABS(sMagicBorderG - color[1]) / sMagicBorderRatio;
}
if (sMagicBorderB >= color[2]) if (sMagicBorderB >= color[2]) {
sMagicBorderB -= ABS(sMagicBorderB - color[2]) / sMagicBorderRatio; sMagicBorderB -= ABS(sMagicBorderB - color[2]) / sMagicBorderRatio;
else } else {
sMagicBorderB += ABS(sMagicBorderB - color[2]) / sMagicBorderRatio; sMagicBorderB += ABS(sMagicBorderB - color[2]) / sMagicBorderRatio;
}
sMagicBorderRatio--; sMagicBorderRatio--;
if (sMagicBorderRatio == 0) { if (sMagicBorderRatio == 0) {
@ -2445,8 +2483,9 @@ void Interface_UpdateMagicBar(GlobalContext* globalCtx) {
sMagicBorderB = color[2]; sMagicBorderB = color[2];
sMagicBorderRatio = YREG(40 + sMagicBorderStep); sMagicBorderRatio = YREG(40 + sMagicBorderStep);
sMagicBorderStep++; sMagicBorderStep++;
if (sMagicBorderStep >= 4) if (sMagicBorderStep >= 4) {
sMagicBorderStep = 0; sMagicBorderStep = 0;
}
} }
break; break;
case 5: case 5:
@ -2481,20 +2520,23 @@ void Interface_UpdateMagicBar(GlobalContext* globalCtx) {
color = sMagicBorderColors[sMagicBorderIndexes[sMagicBorderStep]]; color = sMagicBorderColors[sMagicBorderIndexes[sMagicBorderStep]];
if (sMagicBorderR >= color[0]) if (sMagicBorderR >= color[0]) {
sMagicBorderR -= ABS(sMagicBorderR - color[0]) / sMagicBorderRatio; sMagicBorderR -= ABS(sMagicBorderR - color[0]) / sMagicBorderRatio;
else } else {
sMagicBorderR += ABS(sMagicBorderR - color[0]) / sMagicBorderRatio; sMagicBorderR += ABS(sMagicBorderR - color[0]) / sMagicBorderRatio;
}
if (sMagicBorderG >= color[1]) if (sMagicBorderG >= color[1]) {
sMagicBorderG -= ABS(sMagicBorderG - color[1]) / sMagicBorderRatio; sMagicBorderG -= ABS(sMagicBorderG - color[1]) / sMagicBorderRatio;
else } else {
sMagicBorderG += ABS(sMagicBorderG - color[1]) / sMagicBorderRatio; sMagicBorderG += ABS(sMagicBorderG - color[1]) / sMagicBorderRatio;
}
if (sMagicBorderB >= color[2]) if (sMagicBorderB >= color[2]) {
sMagicBorderB -= ABS(sMagicBorderB - color[2]) / sMagicBorderRatio; sMagicBorderB -= ABS(sMagicBorderB - color[2]) / sMagicBorderRatio;
else } else {
sMagicBorderB += ABS(sMagicBorderB - color[2]) / sMagicBorderRatio; sMagicBorderB += ABS(sMagicBorderB - color[2]) / sMagicBorderRatio;
}
sMagicBorderRatio--; sMagicBorderRatio--;
if (sMagicBorderRatio == 0) { if (sMagicBorderRatio == 0) {
@ -2503,8 +2545,9 @@ void Interface_UpdateMagicBar(GlobalContext* globalCtx) {
sMagicBorderB = color[2]; sMagicBorderB = color[2];
sMagicBorderRatio = YREG(40 + sMagicBorderStep); sMagicBorderRatio = YREG(40 + sMagicBorderStep);
sMagicBorderStep++; sMagicBorderStep++;
if (sMagicBorderStep >= 4) if (sMagicBorderStep >= 4) {
sMagicBorderStep = 0; sMagicBorderStep = 0;
}
} }
break; break;
case 10: case 10:
@ -2772,13 +2815,14 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
// C-Up Button Texture, Color & Label (Navi Text) // C-Up Button Texture, Color & Label (Navi Text)
gDPPipeSync(gfxCtx->overlay.p++); gDPPipeSync(gfxCtx->overlay.p++);
if ((gSaveContext.unk_13EA == 1) || (gSaveContext.unk_13EA == 2) || (gSaveContext.unk_13EA == 5)) if ((gSaveContext.unk_13EA == 1) || (gSaveContext.unk_13EA == 2) || (gSaveContext.unk_13EA == 5)) {
cUpAlpha = 0; cUpAlpha = 0;
else if ((player->stateFlags2 & 0x00200000) || (func_8008F2F8(globalCtx) == 4) || } else if ((player->stateFlags2 & 0x00200000) || (func_8008F2F8(globalCtx) == 4) ||
(player->stateFlags2 & 0x00040000)) (player->stateFlags2 & 0x00040000)) {
cUpAlpha = 0x46; cUpAlpha = 0x46;
else } else {
cUpAlpha = interfaceCtx->healthAlpha; cUpAlpha = interfaceCtx->healthAlpha;
}
gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2), cUpAlpha); gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2), cUpAlpha);
gDPSetCombineLERP(gfxCtx->overlay.p++, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, gDPSetCombineLERP(gfxCtx->overlay.p++, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0,
@ -2820,15 +2864,16 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
// Empty C Button Arrows // Empty C Button Arrows
for (i = 1; i < 4; i++) { for (i = 1; i < 4; i++) {
if (gSaveContext.equips.button_items[i] > 0xF0) { if (gSaveContext.equips.button_items[i] > 0xF0) {
if (i == 1) if (i == 1) {
gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2), gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2),
interfaceCtx->cLeftAlpha); interfaceCtx->cLeftAlpha);
else if (i == 2) } else if (i == 2) {
gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2), gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2),
interfaceCtx->cDownAlpha); interfaceCtx->cDownAlpha);
else } else {
gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2), gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2),
interfaceCtx->cRightAlpha); interfaceCtx->cRightAlpha);
}
gfxCtx->overlay.p = gfxCtx->overlay.p =
Draw_TextureIA8(gfxCtx->overlay.p, &D_02000A00[i + 1], 0x20, 0x20, R_ITEM_BTN_X(i), R_ITEM_BTN_Y(i), Draw_TextureIA8(gfxCtx->overlay.p, &D_02000A00[i + 1], 0x20, 0x20, R_ITEM_BTN_X(i), R_ITEM_BTN_Y(i),
@ -3188,12 +3233,13 @@ void Interface_Draw(GlobalContext* globalCtx) {
// Rupee Counter // Rupee Counter
gDPPipeSync(gfxCtx->overlay.p++); gDPPipeSync(gfxCtx->overlay.p++);
if (gSaveContext.rupees == CUR_CAPACITY(UPG_WALLET)) if (gSaveContext.rupees == CUR_CAPACITY(UPG_WALLET)) {
gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, 0x78, 0xFF, 0x00, interfaceCtx->magicAlpha); gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, 0x78, 0xFF, 0x00, interfaceCtx->magicAlpha);
else if (gSaveContext.rupees != 0) } else if (gSaveContext.rupees != 0) {
gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, 0xFF, 0xFF, 0xFF, interfaceCtx->magicAlpha); gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, 0xFF, 0xFF, 0xFF, interfaceCtx->magicAlpha);
else } else {
gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, 0x64, 0x64, 0x64, interfaceCtx->magicAlpha); gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, 0x64, 0x64, 0x64, interfaceCtx->magicAlpha);
}
gDPSetCombineLERP(gfxCtx->overlay.p++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, gDPSetCombineLERP(gfxCtx->overlay.p++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0,
0, PRIMITIVE, 0); 0, PRIMITIVE, 0);
@ -3201,8 +3247,9 @@ void Interface_Draw(GlobalContext* globalCtx) {
interfaceCtx->counterDigits[0] = interfaceCtx->counterDigits[1] = 0; interfaceCtx->counterDigits[0] = interfaceCtx->counterDigits[1] = 0;
interfaceCtx->counterDigits[2] = gSaveContext.rupees; interfaceCtx->counterDigits[2] = gSaveContext.rupees;
if ((interfaceCtx->counterDigits[2] >= 10000) || (interfaceCtx->counterDigits[2] < 0)) if ((interfaceCtx->counterDigits[2] >= 10000) || (interfaceCtx->counterDigits[2] < 0)) {
interfaceCtx->counterDigits[2] &= 0xDDD; interfaceCtx->counterDigits[2] &= 0xDDD;
}
while (interfaceCtx->counterDigits[2] >= 100) { while (interfaceCtx->counterDigits[2] >= 100) {
interfaceCtx->counterDigits[2] -= 100; interfaceCtx->counterDigits[2] -= 100;
@ -3225,8 +3272,9 @@ void Interface_Draw(GlobalContext* globalCtx) {
Interface_DrawMagicBar(globalCtx); Interface_DrawMagicBar(globalCtx);
Interface_DrawMinimap(globalCtx); Interface_DrawMinimap(globalCtx);
if ((R_PAUSE_MENU_MODE != 2) && (R_PAUSE_MENU_MODE != 3)) if ((R_PAUSE_MENU_MODE != 2) && (R_PAUSE_MENU_MODE != 3)) {
func_8002C124(&globalCtx->actorCtx.targetCtx, globalCtx); // Draw Z-Target func_8002C124(&globalCtx->actorCtx.targetCtx, globalCtx); // Draw Z-Target
}
func_80094520(globalCtx->state.gfxCtx); func_80094520(globalCtx->state.gfxCtx);
@ -3343,10 +3391,11 @@ void Interface_Draw(GlobalContext* globalCtx) {
G_MTX_MODELVIEW | G_MTX_LOAD); G_MTX_MODELVIEW | G_MTX_LOAD);
gSPVertex(gfxCtx->overlay.p++, &interfaceCtx->vtx_128[4], 4, 0); gSPVertex(gfxCtx->overlay.p++, &interfaceCtx->vtx_128[4], 4, 0);
if ((interfaceCtx->unk_1EC < 2) || (interfaceCtx->unk_1EC == 3)) if ((interfaceCtx->unk_1EC < 2) || (interfaceCtx->unk_1EC == 3)) {
Interface_DrawActionLabel(globalCtx->state.gfxCtx, (void*)(u32)interfaceCtx->do_actionSegment); Interface_DrawActionLabel(globalCtx->state.gfxCtx, (void*)(u32)interfaceCtx->do_actionSegment);
else } else {
Interface_DrawActionLabel(globalCtx->state.gfxCtx, (void*)((u32)interfaceCtx->do_actionSegment + 0x180)); Interface_DrawActionLabel(globalCtx->state.gfxCtx, (void*)((u32)interfaceCtx->do_actionSegment + 0x180));
}
gDPPipeSync(gfxCtx->overlay.p++); gDPPipeSync(gfxCtx->overlay.p++);
@ -3441,10 +3490,11 @@ void Interface_Draw(GlobalContext* globalCtx) {
phi_s1 = ZREG(14); phi_s1 = ZREG(14);
for (phi_s3 = 1; phi_s3 < 7; phi_s3++) { for (phi_s3 = 1; phi_s3 < 7; phi_s3++) {
// Carrot Color (based on availability) // Carrot Color (based on availability)
if ((interfaceCtx->unk_23A == 0) || (interfaceCtx->unk_23A < phi_s3)) if ((interfaceCtx->unk_23A == 0) || (interfaceCtx->unk_23A < phi_s3)) {
gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, 0x00, 0x96, 0xFF, interfaceCtx->aAlpha); gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, 0x00, 0x96, 0xFF, interfaceCtx->aAlpha);
else } else {
gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, 0xFF, 0xFF, 0xFF, interfaceCtx->aAlpha); gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, 0xFF, 0xFF, 0xFF, interfaceCtx->aAlpha);
}
gSPTextureRectangle(gfxCtx->overlay.p++, phi_s1 << 2, ZREG(15) << 2, (phi_s1 + 16) << 2, gSPTextureRectangle(gfxCtx->overlay.p++, phi_s1 << 2, ZREG(15) << 2, (phi_s1 + 16) << 2,
(ZREG(15) + 16) << 2, G_TX_RENDERTILE, 0, 0, 1024, 1024); (ZREG(15) + 16) << 2, G_TX_RENDERTILE, 0, 0, 1024, 1024);
@ -3507,10 +3557,11 @@ void Interface_Draw(GlobalContext* globalCtx) {
(gSaveContext.equips.button_items[0] != ITEM_SWORD_MASTER) && (gSaveContext.equips.button_items[0] != ITEM_SWORD_MASTER) &&
(gSaveContext.equips.button_items[0] != ITEM_SWORD_BGS) && (gSaveContext.equips.button_items[0] != ITEM_SWORD_BGS) &&
(gSaveContext.equips.button_items[0] != ITEM_SWORD_KNIFE)) { (gSaveContext.equips.button_items[0] != ITEM_SWORD_KNIFE)) {
if (gSaveContext.button_status[0] != BTN_ENABLED) if (gSaveContext.button_status[0] != BTN_ENABLED) {
gSaveContext.equips.button_items[0] = gSaveContext.button_status[0]; gSaveContext.equips.button_items[0] = gSaveContext.button_status[0];
else } else {
gSaveContext.equips.button_items[0] = ITEM_NONE; gSaveContext.equips.button_items[0] = ITEM_NONE;
}
} }
// Revert any spoiling trade quest items // Revert any spoiling trade quest items
@ -3553,20 +3604,22 @@ void Interface_Draw(GlobalContext* globalCtx) {
case 5: case 5:
case 11: case 11:
D_8015FFE0 = D_8015FFE2 = 20; D_8015FFE0 = D_8015FFE2 = 20;
if (gSaveContext.timer_1_state == 5) if (gSaveContext.timer_1_state == 5) {
gSaveContext.timer_1_state = 6; gSaveContext.timer_1_state = 6;
else } else {
gSaveContext.timer_1_state = 12; gSaveContext.timer_1_state = 12;
}
break; break;
case 6: case 6:
case 12: case 12:
D_8015FFE2--; D_8015FFE2--;
if (D_8015FFE2 == 0) { if (D_8015FFE2 == 0) {
D_8015FFE2 = 20; D_8015FFE2 = 20;
if (gSaveContext.timer_1_state == 6) if (gSaveContext.timer_1_state == 6) {
gSaveContext.timer_1_state = 7; gSaveContext.timer_1_state = 7;
else } else {
gSaveContext.timer_1_state = 13; gSaveContext.timer_1_state = 13;
}
} }
break; break;
case 3: case 3:
@ -3574,10 +3627,11 @@ void Interface_Draw(GlobalContext* globalCtx) {
phi_s3 = (gSaveContext.timer_x[0] - 26) / D_8015FFE2; phi_s3 = (gSaveContext.timer_x[0] - 26) / D_8015FFE2;
gSaveContext.timer_x[0] -= phi_s3; gSaveContext.timer_x[0] -= phi_s3;
if (gSaveContext.health_capacity > 0xA0) if (gSaveContext.health_capacity > 0xA0) {
phi_s3 = (gSaveContext.timer_y[0] - 54) / D_8015FFE2; phi_s3 = (gSaveContext.timer_y[0] - 54) / D_8015FFE2;
else } else {
phi_s3 = (gSaveContext.timer_y[0] - 46) / D_8015FFE2; phi_s3 = (gSaveContext.timer_y[0] - 46) / D_8015FFE2;
}
gSaveContext.timer_y[0] -= phi_s3; gSaveContext.timer_y[0] -= phi_s3;
D_8015FFE2--; D_8015FFE2--;
@ -3585,30 +3639,34 @@ void Interface_Draw(GlobalContext* globalCtx) {
gSaveContext.timer_x[0] = 26; gSaveContext.timer_x[0] = 26;
D_8015FFE2 = 20; D_8015FFE2 = 20;
if (gSaveContext.health_capacity > 0xA0) if (gSaveContext.health_capacity > 0xA0) {
gSaveContext.timer_y[0] = 54; gSaveContext.timer_y[0] = 54;
else } else {
gSaveContext.timer_y[0] = 46; gSaveContext.timer_y[0] = 46;
}
if (gSaveContext.timer_1_state == 3) if (gSaveContext.timer_1_state == 3) {
gSaveContext.timer_1_state = 4; gSaveContext.timer_1_state = 4;
else } else {
gSaveContext.timer_1_state = 8; gSaveContext.timer_1_state = 8;
}
} }
case 4: case 4:
case 8: case 8:
if ((gSaveContext.timer_1_state == 4) || (gSaveContext.timer_1_state == 8)) { if ((gSaveContext.timer_1_state == 4) || (gSaveContext.timer_1_state == 8)) {
if (gSaveContext.health_capacity > 0xA0) if (gSaveContext.health_capacity > 0xA0) {
gSaveContext.timer_y[0] = 54; gSaveContext.timer_y[0] = 54;
else } else {
gSaveContext.timer_y[0] = 46; gSaveContext.timer_y[0] = 46;
}
} }
if ((gSaveContext.timer_1_state >= 3) && (msgCtx->unk_E300 == 0)) { if ((gSaveContext.timer_1_state >= 3) && (msgCtx->unk_E300 == 0)) {
D_8015FFE0--; D_8015FFE0--;
if (D_8015FFE0 == 0) { if (D_8015FFE0 == 0) {
if (gSaveContext.timer_1_value != 0) if (gSaveContext.timer_1_value != 0) {
gSaveContext.timer_1_value--; gSaveContext.timer_1_value--;
}
D_8015FFE0 = 20; D_8015FFE0 = 20;
@ -3620,13 +3678,15 @@ void Interface_Draw(GlobalContext* globalCtx) {
} }
D_80125A5C = 0; D_80125A5C = 0;
} else if (gSaveContext.timer_1_value > 60) { } else if (gSaveContext.timer_1_value > 60) {
if (sTimerDigits[4] == 1) if (sTimerDigits[4] == 1) {
Audio_PlaySoundGeneral(NA_SE_SY_MESSAGE_WOMAN, &D_801333D4, 4, &D_801333E0, Audio_PlaySoundGeneral(NA_SE_SY_MESSAGE_WOMAN, &D_801333D4, 4, &D_801333E0,
&D_801333E0, &D_801333E8); &D_801333E0, &D_801333E8);
}
} else if (gSaveContext.timer_1_value >= 11) { } else if (gSaveContext.timer_1_value >= 11) {
if (sTimerDigits[4] & 1) if (sTimerDigits[4] & 1) {
Audio_PlaySoundGeneral(NA_SE_SY_WARNING_COUNT_N, &D_801333D4, 4, &D_801333E0, Audio_PlaySoundGeneral(NA_SE_SY_WARNING_COUNT_N, &D_801333D4, 4, &D_801333E0,
&D_801333E0, &D_801333E8); &D_801333E0, &D_801333E8);
}
} else { } else {
Audio_PlaySoundGeneral(NA_SE_SY_WARNING_COUNT_E, &D_801333D4, 4, &D_801333E0, Audio_PlaySoundGeneral(NA_SE_SY_WARNING_COUNT_E, &D_801333D4, 4, &D_801333E0,
&D_801333E0, &D_801333E8); &D_801333E0, &D_801333E8);
@ -3638,10 +3698,11 @@ void Interface_Draw(GlobalContext* globalCtx) {
phi_s3 = (gSaveContext.timer_x[0] - 26) / D_8015FFE2; phi_s3 = (gSaveContext.timer_x[0] - 26) / D_8015FFE2;
gSaveContext.timer_x[0] -= phi_s3; gSaveContext.timer_x[0] -= phi_s3;
if (gSaveContext.health_capacity > 0xA0) if (gSaveContext.health_capacity > 0xA0) {
phi_s3 = (gSaveContext.timer_y[0] - 54) / D_8015FFE2; phi_s3 = (gSaveContext.timer_y[0] - 54) / D_8015FFE2;
else } else {
phi_s3 = (gSaveContext.timer_y[0] - 46) / D_8015FFE2; phi_s3 = (gSaveContext.timer_y[0] - 46) / D_8015FFE2;
}
gSaveContext.timer_y[0] -= phi_s3; gSaveContext.timer_y[0] -= phi_s3;
D_8015FFE2--; D_8015FFE2--;
@ -3649,19 +3710,21 @@ void Interface_Draw(GlobalContext* globalCtx) {
gSaveContext.timer_x[0] = 26; gSaveContext.timer_x[0] = 26;
D_8015FFE2 = 20; D_8015FFE2 = 20;
if (gSaveContext.health_capacity > 0xA0) if (gSaveContext.health_capacity > 0xA0) {
gSaveContext.timer_y[0] = 54; gSaveContext.timer_y[0] = 54;
else } else {
gSaveContext.timer_y[0] = 46; gSaveContext.timer_y[0] = 46;
}
gSaveContext.timer_1_state = 14; gSaveContext.timer_1_state = 14;
} }
case 14: case 14:
if (gSaveContext.timer_1_state == 14) { if (gSaveContext.timer_1_state == 14) {
if (gSaveContext.health_capacity > 0xA0) if (gSaveContext.health_capacity > 0xA0) {
gSaveContext.timer_y[0] = 54; gSaveContext.timer_y[0] = 54;
else } else {
gSaveContext.timer_y[0] = 46; gSaveContext.timer_y[0] = 46;
}
} }
if (gSaveContext.timer_1_state >= 3) { if (gSaveContext.timer_1_state >= 3) {
@ -3686,10 +3749,11 @@ void Interface_Draw(GlobalContext* globalCtx) {
gSaveContext.timer_y[1] = 80; gSaveContext.timer_y[1] = 80;
D_8015FFE4 = D_8015FFE6 = 20; D_8015FFE4 = D_8015FFE6 = 20;
if (gSaveContext.timer_2_state < 7) if (gSaveContext.timer_2_state < 7) {
gSaveContext.timer_2_state = 2; gSaveContext.timer_2_state = 2;
else } else {
gSaveContext.timer_2_state = 8; gSaveContext.timer_2_state = 8;
}
gSaveContext.timer_1_state = 0; gSaveContext.timer_1_state = 0;
} else { } else {
@ -3706,20 +3770,22 @@ void Interface_Draw(GlobalContext* globalCtx) {
gSaveContext.timer_x[1] = 140; gSaveContext.timer_x[1] = 140;
gSaveContext.timer_y[1] = 80; gSaveContext.timer_y[1] = 80;
D_8015FFE4 = D_8015FFE6 = 20; D_8015FFE4 = D_8015FFE6 = 20;
if (gSaveContext.timer_2_state == 1) if (gSaveContext.timer_2_state == 1) {
gSaveContext.timer_2_state = 2; gSaveContext.timer_2_state = 2;
else } else {
gSaveContext.timer_2_state = 8; gSaveContext.timer_2_state = 8;
}
break; break;
case 2: case 2:
case 8: case 8:
D_8015FFE6--; D_8015FFE6--;
if (D_8015FFE6 == 0) { if (D_8015FFE6 == 0) {
D_8015FFE6 = 20; D_8015FFE6 = 20;
if (gSaveContext.timer_2_state == 2) if (gSaveContext.timer_2_state == 2) {
gSaveContext.timer_2_state = 3; gSaveContext.timer_2_state = 3;
else } else {
gSaveContext.timer_2_state = 9; gSaveContext.timer_2_state = 9;
}
} }
break; break;
case 3: case 3:
@ -3730,10 +3796,11 @@ void Interface_Draw(GlobalContext* globalCtx) {
phi_s3 = (gSaveContext.timer_x[1] - 26) / D_8015FFE2; phi_s3 = (gSaveContext.timer_x[1] - 26) / D_8015FFE2;
gSaveContext.timer_x[1] -= phi_s3; gSaveContext.timer_x[1] -= phi_s3;
if (gSaveContext.health_capacity > 0xA0) if (gSaveContext.health_capacity > 0xA0) {
phi_s3 = (gSaveContext.timer_y[1] - 54) / D_8015FFE6; phi_s3 = (gSaveContext.timer_y[1] - 54) / D_8015FFE6;
else } else {
phi_s3 = (gSaveContext.timer_y[1] - 46) / D_8015FFE6; phi_s3 = (gSaveContext.timer_y[1] - 46) / D_8015FFE6;
}
gSaveContext.timer_y[1] -= phi_s3; gSaveContext.timer_y[1] -= phi_s3;
D_8015FFE6--; D_8015FFE6--;
@ -3741,23 +3808,26 @@ void Interface_Draw(GlobalContext* globalCtx) {
gSaveContext.timer_x[1] = 26; gSaveContext.timer_x[1] = 26;
D_8015FFE6 = 20; D_8015FFE6 = 20;
if (gSaveContext.health_capacity > 0xA0) if (gSaveContext.health_capacity > 0xA0) {
gSaveContext.timer_y[1] = 54; gSaveContext.timer_y[1] = 54;
else } else {
gSaveContext.timer_y[1] = 46; gSaveContext.timer_y[1] = 46;
}
if (gSaveContext.timer_2_state == 3) if (gSaveContext.timer_2_state == 3) {
gSaveContext.timer_2_state = 4; gSaveContext.timer_2_state = 4;
else } else {
gSaveContext.timer_2_state = 10; gSaveContext.timer_2_state = 10;
}
} }
case 4: case 4:
case 10: case 10:
if ((gSaveContext.timer_2_state == 4) || (gSaveContext.timer_2_state == 10)) { if ((gSaveContext.timer_2_state == 4) || (gSaveContext.timer_2_state == 10)) {
if (gSaveContext.health_capacity > 0xA0) if (gSaveContext.health_capacity > 0xA0) {
gSaveContext.timer_y[1] = 54; gSaveContext.timer_y[1] = 54;
else } else {
gSaveContext.timer_y[1] = 46; gSaveContext.timer_y[1] = 46;
}
} }
if (gSaveContext.timer_2_state >= 3) { if (gSaveContext.timer_2_state >= 3) {
@ -3785,13 +3855,15 @@ void Interface_Draw(GlobalContext* globalCtx) {
} }
} else { } else {
if (gSaveContext.timer_2_value > 60) { if (gSaveContext.timer_2_value > 60) {
if (sTimerDigits[4] == 1) if (sTimerDigits[4] == 1) {
Audio_PlaySoundGeneral(NA_SE_SY_MESSAGE_WOMAN, &D_801333D4, 4, Audio_PlaySoundGeneral(NA_SE_SY_MESSAGE_WOMAN, &D_801333D4, 4,
&D_801333E0, &D_801333E0, &D_801333E8); &D_801333E0, &D_801333E0, &D_801333E8);
}
} else if (gSaveContext.timer_2_value > 10) { } else if (gSaveContext.timer_2_value > 10) {
if (sTimerDigits[4] & 1) if (sTimerDigits[4] & 1) {
Audio_PlaySoundGeneral(NA_SE_SY_WARNING_COUNT_N, &D_801333D4, 4, Audio_PlaySoundGeneral(NA_SE_SY_WARNING_COUNT_N, &D_801333D4, 4,
&D_801333E0, &D_801333E0, &D_801333E8); &D_801333E0, &D_801333E0, &D_801333E8);
}
} else { } else {
Audio_PlaySoundGeneral(NA_SE_SY_WARNING_COUNT_E, &D_801333D4, 4, Audio_PlaySoundGeneral(NA_SE_SY_WARNING_COUNT_E, &D_801333D4, 4,
&D_801333E0, &D_801333E0, &D_801333E8); &D_801333E0, &D_801333E0, &D_801333E8);
@ -3817,8 +3889,9 @@ void Interface_Draw(GlobalContext* globalCtx) {
break; break;
case 6: case 6:
D_8015FFE6--; D_8015FFE6--;
if (D_8015FFE6 == 0) if (D_8015FFE6 == 0) {
gSaveContext.timer_2_state = 0; gSaveContext.timer_2_state = 0;
}
break; break;
} }
} }
@ -3828,10 +3901,11 @@ void Interface_Draw(GlobalContext* globalCtx) {
sTimerDigits[0] = sTimerDigits[1] = sTimerDigits[3] = 0; sTimerDigits[0] = sTimerDigits[1] = sTimerDigits[3] = 0;
sTimerDigits[2] = 10; // digit 10 is used as ':' (colon) sTimerDigits[2] = 10; // digit 10 is used as ':' (colon)
if (gSaveContext.timer_1_state != 0) if (gSaveContext.timer_1_state != 0) {
sTimerDigits[4] = gSaveContext.timer_1_value; sTimerDigits[4] = gSaveContext.timer_1_value;
else } else {
sTimerDigits[4] = gSaveContext.timer_2_value; sTimerDigits[4] = gSaveContext.timer_2_value;
}
while (sTimerDigits[4] >= 60) { while (sTimerDigits[4] >= 60) {
sTimerDigits[1]++; sTimerDigits[1]++;
@ -3860,15 +3934,17 @@ void Interface_Draw(GlobalContext* globalCtx) {
TEXEL0, 0, PRIMITIVE, 0); TEXEL0, 0, PRIMITIVE, 0);
if (gSaveContext.timer_1_state != 0) { if (gSaveContext.timer_1_state != 0) {
if ((gSaveContext.timer_1_value < 10) && (gSaveContext.timer_1_state < 11)) if ((gSaveContext.timer_1_value < 10) && (gSaveContext.timer_1_state < 11)) {
gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, 0xFF, 0x32, 0x00, 0xFF); gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, 0xFF, 0x32, 0x00, 0xFF);
else } else {
gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF); gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF);
}
} else { } else {
if ((gSaveContext.timer_2_value < 10) && (gSaveContext.timer_2_state < 6)) if ((gSaveContext.timer_2_value < 10) && (gSaveContext.timer_2_state < 6)) {
gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, 0xFF, 0x32, 0x00, 0xFF); gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, 0xFF, 0x32, 0x00, 0xFF);
else } else {
gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, 0xFF, 0xFF, 0x00, 0xFF); gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, 0xFF, 0xFF, 0x00, 0xFF);
}
} }
for (phi_s3 = 0; phi_s3 < 5; phi_s3++) { for (phi_s3 = 0; phi_s3 < 5; phi_s3++) {
@ -3881,8 +3957,9 @@ void Interface_Draw(GlobalContext* globalCtx) {
} }
} }
if (pauseCtx->flag == 3) if (pauseCtx->flag == 3) {
func_8002AAB0(globalCtx); func_8002AAB0(globalCtx);
}
if (interfaceCtx->unk_244 != 0) { if (interfaceCtx->unk_244 != 0) {
gDPPipeSync(gfxCtx->overlay.p++); gDPPipeSync(gfxCtx->overlay.p++);
@ -3952,32 +4029,38 @@ void Interface_Update(GlobalContext* globalCtx) {
case 12: case 12:
case 13: case 13:
alpha = 0xFF - (gSaveContext.unk_13EC << 5); alpha = 0xFF - (gSaveContext.unk_13EC << 5);
if (alpha < 0) if (alpha < 0) {
alpha = 0; alpha = 0;
}
func_80082850(globalCtx, alpha); func_80082850(globalCtx, alpha);
gSaveContext.unk_13EC++; gSaveContext.unk_13EC++;
if (alpha == 0) if (alpha == 0) {
gSaveContext.unk_13E8 = 0; gSaveContext.unk_13E8 = 0;
}
break; break;
case 50: case 50:
alpha = 0xFF - (gSaveContext.unk_13EC << 5); alpha = 0xFF - (gSaveContext.unk_13EC << 5);
if (alpha < 0) if (alpha < 0) {
alpha = 0; alpha = 0;
}
alpha1 = 0xFF - alpha; alpha1 = 0xFF - alpha;
if (alpha1 >= 0xFF) if (alpha1 >= 0xFF) {
alpha1 = 0xFF; alpha1 = 0xFF;
}
osSyncPrintf("case 50 : alpha=%d alpha1=%d\n", alpha, alpha1); osSyncPrintf("case 50 : alpha=%d alpha1=%d\n", alpha, alpha1);
func_80082644(globalCtx, alpha1); func_80082644(globalCtx, alpha1);
if (interfaceCtx->healthAlpha != 0xFF) if (interfaceCtx->healthAlpha != 0xFF) {
interfaceCtx->healthAlpha = alpha1; interfaceCtx->healthAlpha = alpha1;
}
if (interfaceCtx->magicAlpha != 0xFF) if (interfaceCtx->magicAlpha != 0xFF) {
interfaceCtx->magicAlpha = alpha1; interfaceCtx->magicAlpha = alpha1;
}
switch (globalCtx->sceneNum) { switch (globalCtx->sceneNum) {
case SCENE_SPOT00: case SCENE_SPOT00:
@ -4000,20 +4083,23 @@ void Interface_Update(GlobalContext* globalCtx) {
case SCENE_SPOT18: case SCENE_SPOT18:
case SCENE_SPOT20: case SCENE_SPOT20:
case SCENE_GANON_TOU: case SCENE_GANON_TOU:
if (interfaceCtx->minimapAlpha < 0xAA) if (interfaceCtx->minimapAlpha < 0xAA) {
interfaceCtx->minimapAlpha = alpha1; interfaceCtx->minimapAlpha = alpha1;
else } else {
interfaceCtx->minimapAlpha = 0xAA; interfaceCtx->minimapAlpha = 0xAA;
}
break; break;
default: default:
if (interfaceCtx->minimapAlpha != 0xFF) if (interfaceCtx->minimapAlpha != 0xFF) {
interfaceCtx->minimapAlpha = alpha1; interfaceCtx->minimapAlpha = alpha1;
}
break; break;
} }
gSaveContext.unk_13EC++; gSaveContext.unk_13EC++;
if (alpha1 == 0xFF) if (alpha1 == 0xFF) {
gSaveContext.unk_13E8 = 0; gSaveContext.unk_13E8 = 0;
}
break; break;
case 52: case 52:
@ -4030,8 +4116,9 @@ void Interface_Update(GlobalContext* globalCtx) {
gSaveContext.health_accumulator -= 4; gSaveContext.health_accumulator -= 4;
gSaveContext.health += 4; gSaveContext.health += 4;
if ((gSaveContext.health & 0xF) < 4) if ((gSaveContext.health & 0xF) < 4) {
Audio_PlaySoundGeneral(NA_SE_SY_HP_RECOVER, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); Audio_PlaySoundGeneral(NA_SE_SY_HP_RECOVER, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8);
}
osSyncPrintf("now_life=%d max_life=%d\n", gSaveContext.health, gSaveContext.health_capacity); osSyncPrintf("now_life=%d max_life=%d\n", gSaveContext.health, gSaveContext.health_capacity);
@ -4079,8 +4166,9 @@ void Interface_Update(GlobalContext* globalCtx) {
gSaveContext.rupee_accumulator += 10; gSaveContext.rupee_accumulator += 10;
gSaveContext.rupees -= 10; gSaveContext.rupees -= 10;
if (gSaveContext.rupees < 0) if (gSaveContext.rupees < 0) {
gSaveContext.rupees = 0; gSaveContext.rupees = 0;
}
Audio_PlaySoundGeneral(NA_SE_SY_RUPY_COUNT, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); Audio_PlaySoundGeneral(NA_SE_SY_RUPY_COUNT, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8);
} else { } else {
@ -4108,8 +4196,9 @@ void Interface_Update(GlobalContext* globalCtx) {
interfaceCtx->unk_1EC = 0; interfaceCtx->unk_1EC = 0;
interfaceCtx->unk_1EE = interfaceCtx->unk_1F0; interfaceCtx->unk_1EE = interfaceCtx->unk_1F0;
action = interfaceCtx->unk_1EE; action = interfaceCtx->unk_1EE;
if ((action == 0x1D) || (action == 0x1E)) if ((action == 0x1D) || (action == 0x1E)) {
action = 0xA; action = 0xA;
}
Interface_LoadActionLabel(interfaceCtx, action, 0); Interface_LoadActionLabel(interfaceCtx, action, 0);
} }
break; break;
@ -4127,8 +4216,9 @@ void Interface_Update(GlobalContext* globalCtx) {
interfaceCtx->unk_1EC = 0; interfaceCtx->unk_1EC = 0;
interfaceCtx->unk_1EE = interfaceCtx->unk_1F0; interfaceCtx->unk_1EE = interfaceCtx->unk_1F0;
action = interfaceCtx->unk_1EE; action = interfaceCtx->unk_1EE;
if ((action == 0x1D) || (action == 0x1E)) if ((action == 0x1D) || (action == 0x1E)) {
action = 0xA; action = 0xA;
}
Interface_LoadActionLabel(interfaceCtx, action, 0); Interface_LoadActionLabel(interfaceCtx, action, 0);
} }
break; break;
@ -4173,11 +4263,13 @@ void Interface_Update(GlobalContext* globalCtx) {
interfaceCtx->unk_23C = 0; interfaceCtx->unk_23C = 0;
if (sHBAScoreTier == 0) { if (sHBAScoreTier == 0) {
if (gSaveContext.minigame_score >= 1000) if (gSaveContext.minigame_score >= 1000) {
sHBAScoreTier++; sHBAScoreTier++;
}
} else if (sHBAScoreTier == 1) { } else if (sHBAScoreTier == 1) {
if (gSaveContext.minigame_score >= 1500) if (gSaveContext.minigame_score >= 1500) {
sHBAScoreTier++; sHBAScoreTier++;
}
} }
sHBAScoreDigits[1] = 0; sHBAScoreDigits[1] = 0;
@ -4202,14 +4294,16 @@ void Interface_Update(GlobalContext* globalCtx) {
} }
if (gSaveContext.unk_1422 != 0) { if (gSaveContext.unk_1422 != 0) {
if ((msgCtx->unk_E3F0 != 0x31) && (gSaveContext.unk_1422 == 1)) if ((msgCtx->unk_E3F0 != 0x31) && (gSaveContext.unk_1422 == 1)) {
globalCtx->msgCtx.unk_E3EE = 4; globalCtx->msgCtx.unk_E3EE = 4;
}
if (globalCtx->unk_10A26 != 0) { if (globalCtx->unk_10A26 != 0) {
if (gSaveContext.unk_1422 != 2) { if (gSaveContext.unk_1422 != 2) {
D_80125B60 = 0; D_80125B60 = 0;
if ((gSaveContext.day_time >= 0x4555) && (gSaveContext.day_time <= 0xC001)) if ((gSaveContext.day_time >= 0x4555) && (gSaveContext.day_time <= 0xC001)) {
D_80125B60 = 1; D_80125B60 = 1;
}
gSaveContext.unk_1422 = 2; gSaveContext.unk_1422 = 2;
D_80125B64 = D_8011FB40; D_80125B64 = D_8011FB40;

View file

@ -129,8 +129,9 @@ void func_80095D04(GlobalContext* globalCtx, Room* room, u32 flags) {
spA4 = &spB8[0]; spA4 = &spB8[0];
polygonDlist = SEGMENTED_TO_VIRTUAL(room->mesh->polygon2.start); polygonDlist = SEGMENTED_TO_VIRTUAL(room->mesh->polygon2.start);
polygon2 = &room->mesh->polygon2; polygon2 = &room->mesh->polygon2;
if (polygon2->num > SHAPE_SORT_MAX) if (polygon2->num > SHAPE_SORT_MAX) {
__assert("polygon2->num <= SHAPE_SORT_MAX", "../z_room.c", 317); __assert("polygon2->num <= SHAPE_SORT_MAX", "../z_room.c", 317);
}
sp78 = polygonDlist; sp78 = polygonDlist;
for (sp9C = 0; sp9C < polygon2->num; sp9C++) { for (sp9C = 0; sp9C < polygon2->num; sp9C++) {
@ -152,8 +153,9 @@ void func_80095D04(GlobalContext* globalCtx, Room* room, u32 flags) {
spA4->unk_08 = NULL; spA4->unk_08 = NULL;
} else { } else {
do { do {
if (spA4->unk_04 < phi_v0->unk_04) if (spA4->unk_04 < phi_v0->unk_04) {
break; break;
}
phi_v0 = phi_v0->unk_0C; phi_v0 = phi_v0->unk_0C;
} while (phi_v0 != NULL); } while (phi_v0 != NULL);
@ -165,10 +167,11 @@ void func_80095D04(GlobalContext* globalCtx, Room* room, u32 flags) {
} else { } else {
phi_a0 = phi_v0->unk_08; phi_a0 = phi_v0->unk_08;
spA4->unk_08 = phi_a0; spA4->unk_08 = phi_a0;
if (phi_a0 == NULL) if (phi_a0 == NULL) {
spB4 = spA4; spB4 = spA4;
else } else {
phi_a0->unk_0C = spA4; phi_a0->unk_0C = spA4;
}
phi_v0->unk_08 = spA4; phi_v0->unk_08 = spA4;
spA4->unk_0C = (void*)phi_v0; spA4->unk_0C = (void*)phi_v0;
} }
@ -187,25 +190,30 @@ void func_80095D04(GlobalContext* globalCtx, Room* room, u32 flags) {
if (iREG(86) != 0) { if (iREG(86) != 0) {
phi_v1 = 0; phi_v1 = 0;
while (phi_v1 < polygon2->num) { while (phi_v1 < polygon2->num) {
if (phi_s0 == sp78) if (phi_s0 == sp78) {
break; break;
}
phi_v1++; phi_v1++;
sp78++; sp78++;
} }
if (((iREG(86) == 1) && (iREG(89) > sp9C)) || ((iREG(86) == 2) && (iREG(89) == sp9C))) { if (((iREG(86) == 1) && (iREG(89) > sp9C)) || ((iREG(86) == 2) && (iREG(89) == sp9C))) {
if ((flags & 1) && (phi_s0->opa != NULL)) if ((flags & 1) && (phi_s0->opa != NULL)) {
gSPDisplayList(gfxCtx->polyOpa.p++, phi_s0->opa); gSPDisplayList(gfxCtx->polyOpa.p++, phi_s0->opa);
}
if ((flags & 2) && (phi_s0->xlu != NULL)) if ((flags & 2) && (phi_s0->xlu != NULL)) {
gSPDisplayList(gfxCtx->polyXlu.p++, phi_s0->xlu); gSPDisplayList(gfxCtx->polyXlu.p++, phi_s0->xlu);
}
} }
} else { } else {
if ((flags & 1) && (phi_s0->opa != NULL)) if ((flags & 1) && (phi_s0->opa != NULL)) {
gSPDisplayList(gfxCtx->polyOpa.p++, phi_s0->opa); gSPDisplayList(gfxCtx->polyOpa.p++, phi_s0->opa);
}
if ((flags & 2) && (phi_s0->xlu != NULL)) if ((flags & 2) && (phi_s0->xlu != NULL)) {
gSPDisplayList(gfxCtx->polyXlu.p++, phi_s0->xlu); gSPDisplayList(gfxCtx->polyXlu.p++, phi_s0->xlu);
}
} }
spB4 = spB4->unk_0C; spB4 = spB4->unk_0C;
@ -541,8 +549,9 @@ u32 func_80096FE8(GlobalContext* globalCtx, RoomContext* roomCtx) {
for (i = 0; i < globalCtx->nbRooms; i++) { for (i = 0; i < globalCtx->nbRooms; i++) {
roomSize = roomList[i].vromEnd - roomList[i].vromStart; roomSize = roomList[i].vromEnd - roomList[i].vromStart;
osSyncPrintf("ROOM%d size=%d\n", i, roomSize); osSyncPrintf("ROOM%d size=%d\n", i, roomSize);
if (maxRoomSize < roomSize) if (maxRoomSize < roomSize) {
maxRoomSize = roomSize; maxRoomSize = roomSize;
}
} }
if (globalCtx->nbTransitionActors != 0) { if (globalCtx->nbTransitionActors != 0) {
@ -559,8 +568,9 @@ u32 func_80096FE8(GlobalContext* globalCtx, RoomContext* roomCtx) {
cumulRoomSize = (frontRoom != backRoom) ? frontRoomSize + backRoomSize : frontRoomSize; cumulRoomSize = (frontRoom != backRoom) ? frontRoomSize + backRoomSize : frontRoomSize;
osSyncPrintf("DOOR%d=<%d> ROOM1=<%d, %d> ROOM2=<%d, %d>\n", j, cumulRoomSize, frontRoom, frontRoomSize, osSyncPrintf("DOOR%d=<%d> ROOM1=<%d, %d> ROOM2=<%d, %d>\n", j, cumulRoomSize, frontRoom, frontRoomSize,
backRoom, backRoomSize); backRoom, backRoomSize);
if (maxRoomSize < cumulRoomSize) if (maxRoomSize < cumulRoomSize) {
maxRoomSize = cumulRoomSize; maxRoomSize = cumulRoomSize;
}
transitionActor++; transitionActor++;
} }
} }
@ -578,10 +588,11 @@ u32 func_80096FE8(GlobalContext* globalCtx, RoomContext* roomCtx) {
roomCtx->unk_30 = 0; roomCtx->unk_30 = 0;
roomCtx->status = 0; roomCtx->status = 0;
if (gSaveContext.respawn_flag > 0) if (gSaveContext.respawn_flag > 0) {
nextRoomNum = gSaveContext.respawn[gSaveContext.respawn_flag - 1].room_index; nextRoomNum = gSaveContext.respawn[gSaveContext.respawn_flag - 1].room_index;
else } else {
nextRoomNum = globalCtx->setupEntranceList[globalCtx->curSpawn].room; nextRoomNum = globalCtx->setupEntranceList[globalCtx->curSpawn].room;
}
func_8009728C(globalCtx, roomCtx, nextRoomNum); func_8009728C(globalCtx, roomCtx, nextRoomNum);
return maxRoomSize; return maxRoomSize;

View file

@ -312,13 +312,15 @@ void func_8009899C(GlobalContext* globalCtx, SceneCmd* cmd) {
} }
} }
if (cmd->objectList.num > OBJECT_EXCHANGE_BANK_MAX) if (cmd->objectList.num > OBJECT_EXCHANGE_BANK_MAX) {
__assert("scene_info->object_bank.num <= OBJECT_EXCHANGE_BANK_MAX", "../z_scene.c", 705); __assert("scene_info->object_bank.num <= OBJECT_EXCHANGE_BANK_MAX", "../z_scene.c", 705);
}
while (k < cmd->objectList.num) { while (k < cmd->objectList.num) {
nextPtr = func_800982FC(&globalCtx->objectCtx, i, *objectEntry); nextPtr = func_800982FC(&globalCtx->objectCtx, i, *objectEntry);
if (i < OBJECT_EXCHANGE_BANK_MAX - 1) if (i < OBJECT_EXCHANGE_BANK_MAX - 1) {
globalCtx->objectCtx.status[i + 1].segment = nextPtr; globalCtx->objectCtx.status[i + 1].segment = nextPtr;
}
k++; k++;
objectEntry++; objectEntry++;
status++; status++;

View file

@ -2271,10 +2271,11 @@ void func_8009FE58(GlobalContext* globalCtx) {
D_8012A398 += 0.15f + (globalCtx->unk_11D30[1] * 0.001f); D_8012A398 += 0.15f + (globalCtx->unk_11D30[1] * 0.001f);
} }
if (globalCtx->roomCtx.curRoom.num == 2) if (globalCtx->roomCtx.curRoom.num == 2) {
Matrix_Scale(1, sinf(D_8012A398) * 0.8f, 1, MTXMODE_NEW); Matrix_Scale(1, sinf(D_8012A398) * 0.8f, 1, MTXMODE_NEW);
else } else {
Matrix_Scale(1.005f, sinf(D_8012A398) * 0.8f, 1.005f, MTXMODE_NEW); Matrix_Scale(1.005f, sinf(D_8012A398) * 0.8f, 1.005f, MTXMODE_NEW);
}
gSPSegment(gfxCtx->polyOpa.p++, 0x0D, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_scene_table.c", 7809)); gSPSegment(gfxCtx->polyOpa.p++, 0x0D, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_scene_table.c", 7809));

View file

@ -70,12 +70,10 @@ static void func_8087828C(BgGateShutter* this, GlobalContext* globalCtx) {
if (this->unk_168 == 1 && !(gSaveContext.inf_table[7] & 0x40)) { if (this->unk_168 == 1 && !(gSaveContext.inf_table[7] & 0x40)) {
this->unk_178 = 2; this->unk_178 = 2;
this->actionFunc = (ActorFunc)func_80878300; this->actionFunc = (ActorFunc)func_80878300;
} } else if (this->unk_168 == 2) {
else if (this->unk_168 == 2) {
this->unk_178 = 2; this->unk_178 = 2;
this->actionFunc = (ActorFunc)func_80878300; this->actionFunc = (ActorFunc)func_80878300;
} } else if (this->unk_168 < 0) {
else if (this->unk_168 < 0) {
this->unk_178 = 2; this->unk_178 = 2;
this->actionFunc = (ActorFunc)func_808783D4; this->actionFunc = (ActorFunc)func_808783D4;
} }

View file

@ -20,11 +20,18 @@ static void func_808C0CD4(BgZg* this, GlobalContext* globalCtx);
static void func_808C0D08(BgZg* this, GlobalContext* globalCtx); static void func_808C0D08(BgZg* this, GlobalContext* globalCtx);
static void func_808C0EEC(BgZg* this, GlobalContext* globalCtx); static void func_808C0EEC(BgZg* this, GlobalContext* globalCtx);
static const ActorFunc actionFuncs[] = { (ActorFunc)func_808C0CD4, (ActorFunc)func_808C0D08, }; static const ActorFunc actionFuncs[] = {
(ActorFunc)func_808C0CD4,
(ActorFunc)func_808C0D08,
};
static InitChainEntry initChain[] = { ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP), }; static InitChainEntry initChain[] = {
ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP),
};
static const ActorFunc drawFuncs[] = { (ActorFunc)func_808C0EEC, }; static const ActorFunc drawFuncs[] = {
(ActorFunc)func_808C0EEC,
};
const ActorInit Bg_Zg_InitVars = { const ActorInit Bg_Zg_InitVars = {
ACTOR_BG_ZG, ACTOR_BG_ZG,

View file

@ -98,12 +98,13 @@ void EnTuboTrap_SpawnFragments(EnTuboTrap* this, GlobalContext* globalCtx) {
spC8.z += actorPos->z; spC8.z += actorPos->z;
rand = Math_Rand_ZeroOne(); rand = Math_Rand_ZeroOne();
if (rand < 0.2f) if (rand < 0.2f) {
temp = 96; temp = 96;
else if (rand < 0.6f) } else if (rand < 0.6f) {
temp = 64; temp = 64;
else } else {
temp = 32; temp = 32;
}
Effect_SpawnFragment(globalCtx, &spC8, &spBC, actorPos, -240, temp, 10, 10, 0, Effect_SpawnFragment(globalCtx, &spC8, &spBC, actorPos, -240, temp, 10, 10, 0,
(Math_Rand_ZeroOne() * 65.0f) + 15.0f, 0, 32, 60, -1, 3, addr); (Math_Rand_ZeroOne() * 65.0f) + 15.0f, 0, 32, 60, -1, 3, addr);
@ -153,10 +154,11 @@ void EnTuboTrap_SpawnWaterFragments(EnTuboTrap* this, GlobalContext* globalCtx)
spC8.z += actorPos->z; spC8.z += actorPos->z;
rand = Math_Rand_ZeroOne(); rand = Math_Rand_ZeroOne();
if (rand < 0.2f) if (rand < 0.2f) {
temp = 64; temp = 64;
else } else {
temp = 32; temp = 32;
}
Effect_SpawnFragment(globalCtx, &spC8, &spBC, actorPos, -180, temp, 30, 30, 0, Effect_SpawnFragment(globalCtx, &spC8, &spBC, actorPos, -180, temp, 30, 30, 0,
(Math_Rand_ZeroOne() * 65.0f) + 15.0f, 0, 32, 70, -1, 3, addr); (Math_Rand_ZeroOne() * 65.0f) + 15.0f, 0, 32, 70, -1, 3, addr);