mirror of
https://github.com/zeldaret/oot.git
synced 2024-12-28 15:56:51 +00:00
[ntsc-1.0/1.1] Match "game engine" files (#2244)
* [ntsc-1.0/1.1] Match "game engine" files * Use R_START_BTN_X/R_START_BTN_Y * Comment obvious bugs * Move Magic_Fill comments * Move EVENTINF_HORSES_INDEX printf inside #if * Replace "this function"
This commit is contained in:
parent
80ed596c56
commit
bdc11c2894
10 changed files with 174 additions and 25 deletions
|
@ -3561,7 +3561,12 @@ s32 BodyBreak_SpawnParts(Actor* actor, BodyBreak* bodyBreak, PlayState* play, s1
|
|||
mtx->zw, 0, 0, objectSlot, type);
|
||||
|
||||
if (spawnedEnPart != NULL) {
|
||||
#if OOT_VERSION < PAL_1_0
|
||||
//! @bug Wrong rotation order compared to Actor_Draw
|
||||
Matrix_MtxFToZYXRotS(&bodyBreak->matrices[bodyBreak->count], &spawnedEnPart->actor.shape.rot, 0);
|
||||
#else
|
||||
Matrix_MtxFToYXZRotS(&bodyBreak->matrices[bodyBreak->count], &spawnedEnPart->actor.shape.rot, 0);
|
||||
#endif
|
||||
spawnedEnPart->displayList = bodyBreak->dLists[bodyBreak->count];
|
||||
spawnedEnPart->actor.scale = actor->scale;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#include "global.h"
|
||||
#include "terminal.h"
|
||||
#include "versions.h"
|
||||
|
||||
#include "z64frame_advance.h"
|
||||
|
||||
|
@ -1830,7 +1831,6 @@ void CollisionCheck_ATJntSphVsACCyl(PlayState* play, CollisionCheckContext* colC
|
|||
Vec3f hitPos;
|
||||
Vec3f atPos;
|
||||
Vec3f acPos;
|
||||
f32 acToHit;
|
||||
|
||||
atPos.x = atJntSphElem->dim.worldSphere.center.x;
|
||||
atPos.y = atJntSphElem->dim.worldSphere.center.y;
|
||||
|
@ -1839,7 +1839,13 @@ void CollisionCheck_ATJntSphVsACCyl(PlayState* play, CollisionCheckContext* colC
|
|||
acPos.y = acCyl->dim.pos.y;
|
||||
acPos.z = acCyl->dim.pos.z;
|
||||
if (!IS_ZERO(centerDist)) {
|
||||
acToHit = acCyl->dim.radius / centerDist;
|
||||
f32 acToHit = acCyl->dim.radius / centerDist;
|
||||
|
||||
#if OOT_VERSION < PAL_1_0
|
||||
hitPos.x = ((atPos.x - acPos.x) * acToHit) + acPos.x;
|
||||
hitPos.y = ((atPos.y - acPos.y) * acToHit) + acPos.y;
|
||||
hitPos.z = ((atPos.z - acPos.z) * acToHit) + acPos.z;
|
||||
#else
|
||||
if (acToHit <= 1.0f) {
|
||||
hitPos.x = ((atPos.x - acPos.x) * acToHit) + acPos.x;
|
||||
hitPos.y = ((atPos.y - acPos.y) * acToHit) + acPos.y;
|
||||
|
@ -1847,6 +1853,7 @@ void CollisionCheck_ATJntSphVsACCyl(PlayState* play, CollisionCheckContext* colC
|
|||
} else {
|
||||
Math_Vec3f_Copy(&hitPos, &atPos);
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
Math_Vec3f_Copy(&hitPos, &atPos);
|
||||
}
|
||||
|
@ -1891,7 +1898,13 @@ void CollisionCheck_ATCylVsACJntSph(PlayState* play, CollisionCheckContext* colC
|
|||
acPos.y = acJntSphElem->dim.worldSphere.center.y;
|
||||
acPos.z = acJntSphElem->dim.worldSphere.center.z;
|
||||
if (!IS_ZERO(centerDist)) {
|
||||
acToHit = acJntSphElem->dim.worldSphere.radius / centerDist;
|
||||
f32 acToHit = acJntSphElem->dim.worldSphere.radius / centerDist;
|
||||
|
||||
#if OOT_VERSION < PAL_1_0
|
||||
hitPos.x = ((atPos.x - acPos.x) * acToHit) + acPos.x;
|
||||
hitPos.y = ((atPos.y - acPos.y) * acToHit) + acPos.y;
|
||||
hitPos.z = ((atPos.z - acPos.z) * acToHit) + acPos.z;
|
||||
#else
|
||||
if (acToHit <= 1.0f) {
|
||||
hitPos.x = ((atPos.x - acPos.x) * acToHit) + acPos.x;
|
||||
hitPos.y = ((atPos.y - acPos.y) * acToHit) + acPos.y;
|
||||
|
@ -1899,6 +1912,7 @@ void CollisionCheck_ATCylVsACJntSph(PlayState* play, CollisionCheckContext* colC
|
|||
} else {
|
||||
Math_Vec3f_Copy(&hitPos, &atPos);
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
Math_Vec3f_Copy(&hitPos, &atPos);
|
||||
}
|
||||
|
|
|
@ -162,8 +162,13 @@ void Interface_Init(PlayState* play) {
|
|||
gSaveContext.timerY[timerId] = 46; // one row of hearts
|
||||
}
|
||||
}
|
||||
|
||||
if ((gSaveContext.timerState >= TIMER_STATE_UP_INIT) && (gSaveContext.timerState <= TIMER_STATE_UP_FREEZE)) {
|
||||
#if OOT_VERSION < PAL_1_0
|
||||
else if ((gSaveContext.timerState >= TIMER_STATE_UP_INIT) && (gSaveContext.timerState <= TIMER_STATE_UP_FREEZE))
|
||||
#else
|
||||
// No "else"
|
||||
if ((gSaveContext.timerState >= TIMER_STATE_UP_INIT) && (gSaveContext.timerState <= TIMER_STATE_UP_FREEZE))
|
||||
#endif
|
||||
{
|
||||
gSaveContext.timerState = TIMER_STATE_OFF;
|
||||
PRINTF(T("タイマー停止!!!!!!!!!!!!!!!!!!!!! = %d\n",
|
||||
"Timer Stop!!!!!!!!!!!!!!!!!!!!! = %d\n"),
|
||||
|
@ -381,6 +386,10 @@ void Regs_InitDataImpl(void) {
|
|||
|
||||
ZREG(65) = 21;
|
||||
ZREG(66) = 122;
|
||||
#if OOT_VERSION < PAL_1_0
|
||||
R_START_BTN_X = 132;
|
||||
R_START_BTN_Y = 17;
|
||||
#endif
|
||||
R_ITEM_BTN_X(1) = C_LEFT_BUTTON_X;
|
||||
R_ITEM_BTN_X(2) = C_DOWN_BUTTON_X;
|
||||
R_ITEM_BTN_X(3) = C_RIGHT_BUTTON_X;
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#include "global.h"
|
||||
#include "ultra64.h"
|
||||
#include "terminal.h"
|
||||
#include "versions.h"
|
||||
|
||||
#include "z64frame_advance.h"
|
||||
|
||||
|
@ -957,9 +958,15 @@ void Environment_Update(PlayState* play, EnvironmentContext* envCtx, LightContex
|
|||
}
|
||||
|
||||
//! @bug `gTimeSpeed` is unsigned, it can't be negative
|
||||
#if OOT_VERSION < PAL_1_0
|
||||
if ((((void)0, gSaveContext.save.dayTime) > ((void)0, gSaveContext.skyboxTime)) ||
|
||||
(((void)0, gSaveContext.save.dayTime) < CLOCK_TIME(1, 0) || gTimeSpeed < 0))
|
||||
#else
|
||||
if (((((void)0, gSaveContext.sceneLayer) >= 5 || gTimeSpeed != 0) &&
|
||||
((void)0, gSaveContext.save.dayTime) > gSaveContext.skyboxTime) ||
|
||||
(((void)0, gSaveContext.save.dayTime) < CLOCK_TIME(1, 0) || gTimeSpeed < 0)) {
|
||||
((void)0, gSaveContext.save.dayTime) > ((void)0, gSaveContext.skyboxTime)) ||
|
||||
(((void)0, gSaveContext.save.dayTime) < CLOCK_TIME(1, 0) || gTimeSpeed < 0))
|
||||
#endif
|
||||
{
|
||||
|
||||
gSaveContext.skyboxTime = ((void)0, gSaveContext.save.dayTime);
|
||||
}
|
||||
|
@ -1724,8 +1731,13 @@ void Environment_DrawRain(PlayState* play, View* view, GraphicsContext* gfxCtx)
|
|||
Vec3f windDirection = { 0.0f, 0.0f, 0.0f };
|
||||
Player* player = GET_PLAYER(play);
|
||||
|
||||
#if OOT_VERSION < PAL_1_0
|
||||
if (!(play->cameraPtrs[CAM_ID_MAIN]->stateFlags & CAM_STATE_CAMERA_IN_WATER))
|
||||
#else
|
||||
if (!(play->cameraPtrs[CAM_ID_MAIN]->stateFlags & CAM_STATE_CAMERA_IN_WATER) &&
|
||||
(play->envCtx.precipitation[PRECIP_SNOW_CUR] == 0)) {
|
||||
(play->envCtx.precipitation[PRECIP_SNOW_CUR] == 0))
|
||||
#endif
|
||||
{
|
||||
OPEN_DISPS(gfxCtx, "../z_kankyo.c", 2799);
|
||||
|
||||
vec.x = view->at.x - view->eye.x;
|
||||
|
|
|
@ -2074,8 +2074,9 @@ void Message_Decode(PlayState* play) {
|
|||
decodedBufPos++;
|
||||
msgCtx->msgBufPos++;
|
||||
}
|
||||
} else {
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
// English text for NTSC, eng/ger/fra text for PAL
|
||||
while (true) {
|
||||
curChar = msgCtx->msgBufDecoded[decodedBufPos] = font->msgBuf[msgCtx->msgBufPos];
|
||||
|
@ -2397,8 +2398,15 @@ void Message_Decode(PlayState* play) {
|
|||
Message_LoadItemIcon(play, font->msgBuf[msgCtx->msgBufPos + 1], R_TEXTBOX_Y + 10);
|
||||
} else if (curChar == MESSAGE_BACKGROUND) {
|
||||
msgCtx->textboxBackgroundIdx = font->msgBuf[msgCtx->msgBufPos + 1] * 2;
|
||||
#if OOT_VERSION < PAL_1_0
|
||||
//! @bug Wrong shift amounts cause textboxBackgroundForeColorIdx and textboxBackgroundBackColorIdx
|
||||
//! to always be 0. Fortunately MESSAGE_BACKGROUND is only present in unused messages.
|
||||
msgCtx->textboxBackgroundForeColorIdx = (font->msgBuf[msgCtx->msgBufPos + 2] & 0xF0) >> 12;
|
||||
msgCtx->textboxBackgroundBackColorIdx = (font->msgBuf[msgCtx->msgBufPos + 2] & 0xF) >> 8;
|
||||
#else
|
||||
msgCtx->textboxBackgroundForeColorIdx = (font->msgBuf[msgCtx->msgBufPos + 2] & 0xF0) >> 4;
|
||||
msgCtx->textboxBackgroundBackColorIdx = font->msgBuf[msgCtx->msgBufPos + 2] & 0xF;
|
||||
#endif
|
||||
msgCtx->textboxBackgroundYOffsetIdx = (font->msgBuf[msgCtx->msgBufPos + 3] & 0xF0) >> 4;
|
||||
msgCtx->textboxBackgroundUnkArg = font->msgBuf[msgCtx->msgBufPos + 3] & 0xF;
|
||||
DMA_REQUEST_SYNC(msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE,
|
||||
|
@ -2448,9 +2456,7 @@ void Message_Decode(PlayState* play) {
|
|||
decodedBufPos++;
|
||||
msgCtx->msgBufPos++;
|
||||
}
|
||||
#if OOT_NTSC
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void Message_OpenText(PlayState* play, u16 textId) {
|
||||
|
@ -3062,9 +3068,11 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
|
|||
msgCtx->ocarinaStaff = AudioOcarina_GetPlayingStaff();
|
||||
if (msgCtx->ocarinaStaff->pos) {
|
||||
PRINTF("locate=%d onpu_pt=%d\n", msgCtx->ocarinaStaff->pos, sOcarinaButtonIndexBufPos);
|
||||
#if OOT_VERSION >= PAL_1_0
|
||||
if (msgCtx->ocarinaStaff->pos == 1 && sOcarinaButtonIndexBufPos == 8) {
|
||||
sOcarinaButtonIndexBufPos = 0;
|
||||
}
|
||||
#endif
|
||||
if (sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1) {
|
||||
msgCtx->lastOcarinaButtonIndex = sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos - 1] =
|
||||
msgCtx->ocarinaStaff->buttonIndex;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#include "global.h"
|
||||
#include "quake.h"
|
||||
#include "terminal.h"
|
||||
#include "versions.h"
|
||||
#include "overlays/actors/ovl_En_Sw/z_en_sw.h"
|
||||
|
||||
static s16 sDisableAttention = false;
|
||||
|
@ -1858,7 +1859,9 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
Play_RequestCameraSetting(play, subCamId, CAM_SET_CS_3);
|
||||
Player_SetCsActionWithHaltedActors(play, &player->actor, PLAYER_CSACTION_5);
|
||||
OnePointCutscene_SetCsCamPoints(subCam, D_80120304 | 0x2000, D_80120300, D_8012013C, D_8012021C);
|
||||
#if OOT_VERSION >= PAL_1_0
|
||||
Sfx_PlaySfxCentered(NA_SE_SY_CORRECT_CHIME);
|
||||
#endif
|
||||
OnePointCutscene_Vec3sToVec3f(&mainCam->at, &D_8012013C[D_801202FC - 2].pos);
|
||||
OnePointCutscene_Vec3sToVec3f(&mainCam->eye, &D_8012021C[D_801202FC - 2].pos);
|
||||
D_8012013C[D_801202FC - 3].pos.x +=
|
||||
|
@ -1874,10 +1877,22 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
|||
D_8012021C[D_801202FC - 3].pos.z +=
|
||||
(D_8012021C[D_801202FC - 2].pos.z - D_8012021C[D_801202FC - 3].pos.z) / 2;
|
||||
|
||||
#if OOT_VERSION < PAL_1_0
|
||||
i = Quake_Request(subCam, QUAKE_TYPE_1);
|
||||
Quake_SetSpeed(i, 30000);
|
||||
Quake_SetPerturbations(i, 3, 1, 1, 0);
|
||||
Quake_SetDuration(i, D_80120300);
|
||||
|
||||
i = Quake_Request(mainCam, QUAKE_TYPE_3);
|
||||
Quake_SetSpeed(i, 30000);
|
||||
Quake_SetPerturbations(i, 3, 1, 1, 0);
|
||||
Quake_SetDuration(i, D_80120300 + 50);
|
||||
#else
|
||||
i = Quake_Request(mainCam, QUAKE_TYPE_3);
|
||||
Quake_SetSpeed(i, 30000);
|
||||
Quake_SetPerturbations(i, 2, 1, 1, 0);
|
||||
Quake_SetDuration(i, 200);
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -1733,12 +1733,16 @@ u8 Item_Give(PlayState* play, u8 item) {
|
|||
Health_ChangeBy(play, 0x10);
|
||||
return item;
|
||||
} else if (item == ITEM_MAGIC_JAR_SMALL) {
|
||||
if (gSaveContext.magicState != MAGIC_STATE_ADD) {
|
||||
// This function is only used to store the magicState.
|
||||
// Magic_Fill is only used to store the magicState.
|
||||
// Setting the state to FILL gets immediately overwritten in Magic_RequestChange.
|
||||
// I.e. magic is added not filled
|
||||
// I.e. magic is added not filled.
|
||||
#if OOT_VERSION < PAL_1_0
|
||||
Magic_Fill(play);
|
||||
#else
|
||||
if (gSaveContext.magicState != MAGIC_STATE_ADD) {
|
||||
Magic_Fill(play);
|
||||
}
|
||||
#endif
|
||||
|
||||
Magic_RequestChange(play, 12, MAGIC_ADD);
|
||||
|
||||
|
@ -1749,12 +1753,16 @@ u8 Item_Give(PlayState* play, u8 item) {
|
|||
|
||||
return item;
|
||||
} else if (item == ITEM_MAGIC_JAR_BIG) {
|
||||
if (gSaveContext.magicState != MAGIC_STATE_ADD) {
|
||||
// This function is only used to store the magicState.
|
||||
// Magic_Fill is only used to store the magicState.
|
||||
// Setting the state to FILL gets immediately overwritten in Magic_RequestChange.
|
||||
// I.e. magic is added not filled.
|
||||
#if OOT_VERSION < PAL_1_0
|
||||
Magic_Fill(play);
|
||||
#else
|
||||
if (gSaveContext.magicState != MAGIC_STATE_ADD) {
|
||||
Magic_Fill(play);
|
||||
}
|
||||
#endif
|
||||
|
||||
Magic_RequestChange(play, 24, MAGIC_ADD);
|
||||
|
||||
|
@ -2110,12 +2118,19 @@ void Interface_LoadActionLabel(InterfaceContext* interfaceCtx, u16 action, s16 l
|
|||
action += DO_ACTION_MAX;
|
||||
}
|
||||
|
||||
#if OOT_VERSION >= PAL_1_0
|
||||
if (gSaveContext.language == 2) { // LANGUAGE_FRA for PAL versions
|
||||
action += DO_ACTION_MAX;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if OOT_VERSION < PAL_1_0
|
||||
if ((action != DO_ACTION_NONE) && (action != DO_ACTION_MAX + DO_ACTION_NONE))
|
||||
#else
|
||||
if ((action != DO_ACTION_NONE) && (action != DO_ACTION_MAX + DO_ACTION_NONE) &&
|
||||
(action != 2 * DO_ACTION_MAX + DO_ACTION_NONE)) {
|
||||
(action != 2 * DO_ACTION_MAX + DO_ACTION_NONE))
|
||||
#endif
|
||||
{
|
||||
osCreateMesgQueue(&interfaceCtx->loadQueue, &interfaceCtx->loadMsg, 1);
|
||||
DMA_REQUEST_ASYNC(&interfaceCtx->dmaRequest_160,
|
||||
interfaceCtx->doActionSegment + (loadOffset * DO_ACTION_TEX_SIZE),
|
||||
|
@ -2174,9 +2189,11 @@ void Interface_LoadActionLabelB(PlayState* play, u16 action) {
|
|||
action += DO_ACTION_MAX;
|
||||
}
|
||||
|
||||
#if OOT_VERSION >= PAL_1_0
|
||||
if (gSaveContext.language == 2) { // LANGUAGE_FRA for PAL versions
|
||||
action += DO_ACTION_MAX;
|
||||
}
|
||||
#endif
|
||||
|
||||
interfaceCtx->unk_1FC = action;
|
||||
|
||||
|
@ -2765,7 +2782,9 @@ void Interface_DrawActionLabel(GraphicsContext* gfxCtx, void* texture) {
|
|||
|
||||
void Interface_DrawItemButtons(PlayState* play) {
|
||||
static void* cUpLabelTextures[] = LANGUAGE_ARRAY(gNaviCUpJPNTex, gNaviCUpENGTex, gNaviCUpENGTex, gNaviCUpENGTex);
|
||||
#if OOT_VERSION >= PAL_1_0
|
||||
static s16 startButtonLeftPos[] = { 132, 130, 130 };
|
||||
#endif
|
||||
InterfaceContext* interfaceCtx = &play->interfaceCtx;
|
||||
Player* player = GET_PLAYER(play);
|
||||
PauseContext* pauseCtx = &play->pauseCtx;
|
||||
|
@ -2817,13 +2836,17 @@ void Interface_DrawItemButtons(PlayState* play) {
|
|||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, START_BUTTON_R, START_BUTTON_G, START_BUTTON_B,
|
||||
interfaceCtx->startAlpha);
|
||||
|
||||
#if OOT_NTSC
|
||||
gSPTextureRectangle(OVERLAY_DISP++, 132 << 2, 17 << 2, (132 + 22) << 2, 39 << 2, G_TX_RENDERTILE, 0, 0,
|
||||
(s32)(1.4277344 * (1 << 10)), (s32)(1.4277344 * (1 << 10)));
|
||||
#if OOT_VERSION < PAL_1_0
|
||||
gSPTextureRectangle(OVERLAY_DISP++, R_START_BTN_X << 2, R_START_BTN_Y << 2, (R_START_BTN_X + 22) << 2,
|
||||
(R_START_BTN_Y + 22) << 2, G_TX_RENDERTILE, 0, 0, (s32)(1.4277344 * (1 << 10)),
|
||||
(s32)(1.4277344 * (1 << 10)));
|
||||
#elif OOT_NTSC
|
||||
gSPTextureRectangle(OVERLAY_DISP++, 132 << 2, 17 << 2, (132 + 22) << 2, (17 + 22) << 2, G_TX_RENDERTILE, 0,
|
||||
0, (s32)(1.4277344 * (1 << 10)), (s32)(1.4277344 * (1 << 10)));
|
||||
#else
|
||||
gSPTextureRectangle(OVERLAY_DISP++, startButtonLeftPos[gSaveContext.language] << 2, 17 << 2,
|
||||
(startButtonLeftPos[gSaveContext.language] + 22) << 2, 39 << 2, G_TX_RENDERTILE, 0, 0,
|
||||
(s32)(1.4277344 * (1 << 10)), (s32)(1.4277344 * (1 << 10)));
|
||||
(startButtonLeftPos[gSaveContext.language] + 22) << 2, (17 + 22) << 2, G_TX_RENDERTILE,
|
||||
0, 0, (s32)(1.4277344 * (1 << 10)), (s32)(1.4277344 * (1 << 10)));
|
||||
#endif
|
||||
|
||||
gDPPipeSync(OVERLAY_DISP++);
|
||||
|
@ -3519,10 +3542,12 @@ void Interface_Draw(PlayState* play) {
|
|||
// Revert any spoiling trade quest items
|
||||
for (svar1 = 0; svar1 < ARRAY_COUNT(gSpoilingItems); svar1++) {
|
||||
if (INV_CONTENT(ITEM_TRADE_ADULT) == gSpoilingItems[svar1]) {
|
||||
#if OOT_VERSION >= NTSC_1_1
|
||||
gSaveContext.eventInf[EVENTINF_HORSES_INDEX] &=
|
||||
(u16) ~(EVENTINF_HORSES_STATE_MASK | EVENTINF_HORSES_HORSETYPE_MASK | EVENTINF_HORSES_05_MASK |
|
||||
EVENTINF_HORSES_06_MASK | EVENTINF_HORSES_0F_MASK);
|
||||
PRINTF("EVENT_INF=%x\n", gSaveContext.eventInf[EVENTINF_HORSES_INDEX]);
|
||||
#endif
|
||||
play->nextEntranceIndex = spoilingItemEntrances[svar1];
|
||||
INV_CONTENT(gSpoilingItemReverts[svar1]) = gSpoilingItemReverts[svar1];
|
||||
|
||||
|
@ -3822,7 +3847,12 @@ void Interface_Draw(PlayState* play) {
|
|||
gSaveContext.subTimerSeconds--;
|
||||
PRINTF("TOTAL_EVENT_TM=%d\n", gSaveContext.subTimerSeconds);
|
||||
|
||||
if (gSaveContext.subTimerSeconds <= 0) {
|
||||
#if OOT_VERSION < PAL_1_0
|
||||
if (gSaveContext.subTimerSeconds == 0)
|
||||
#else
|
||||
if (gSaveContext.subTimerSeconds <= 0)
|
||||
#endif
|
||||
{
|
||||
// Out of time
|
||||
if (!Flags_GetSwitch(play, 0x37) ||
|
||||
((play->sceneId != SCENE_GANON_BOSS) &&
|
||||
|
@ -4362,9 +4392,11 @@ void Interface_Update(PlayState* play) {
|
|||
play->nextEntranceIndex = gSaveContext.save.entranceIndex;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.sunsSongState = SUNSSONG_INACTIVE;
|
||||
#if OOT_VERSION >= PAL_1_0
|
||||
func_800F6964(30);
|
||||
gSaveContext.seqId = (u8)NA_BGM_DISABLED;
|
||||
gSaveContext.natureAmbienceId = NATURE_ID_DISABLED;
|
||||
#endif
|
||||
} else {
|
||||
gSaveContext.sunsSongState = SUNSSONG_SPECIAL;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#include "global.h"
|
||||
#include "fault.h"
|
||||
#include "terminal.h"
|
||||
#include "versions.h"
|
||||
#if PLATFORM_N64
|
||||
#include "n64dd.h"
|
||||
#endif
|
||||
|
@ -350,6 +351,14 @@ void Room_DrawBackground2D(Gfx** gfxP, void* tex, void* tlut, u16 width, u16 hei
|
|||
*gfxP = gfx;
|
||||
}
|
||||
|
||||
#if OOT_VERSION < PAL_1_0
|
||||
void func_8007FF50(Gfx** gfxP, void* tex, void* tlut, u16 width, u16 height, u8 fmt, u8 siz, u16 tlutMode,
|
||||
u16 tlutCount) {
|
||||
if (1) {}
|
||||
Room_DrawBackground2D(gfxP, tex, tlut, width, height, fmt, siz, tlutMode, tlutCount, 0.0f, 0.0f);
|
||||
}
|
||||
#endif
|
||||
|
||||
#define ROOM_IMAGE_NODRAW_BACKGROUND (1 << 0)
|
||||
#define ROOM_IMAGE_NODRAW_OPA (1 << 1)
|
||||
#define ROOM_IMAGE_NODRAW_XLU (1 << 2)
|
||||
|
@ -389,6 +398,9 @@ void Room_DrawImageSingle(PlayState* play, Room* room, u32 flags) {
|
|||
|
||||
gfx = POLY_OPA_DISP;
|
||||
|
||||
#if OOT_VERSION < PAL_1_0
|
||||
if (1)
|
||||
#endif
|
||||
{
|
||||
Vec3f quakeOffset;
|
||||
|
||||
|
@ -494,6 +506,9 @@ void Room_DrawImageMulti(PlayState* play, Room* room, u32 flags) {
|
|||
|
||||
gfx = POLY_OPA_DISP;
|
||||
|
||||
#if OOT_VERSION < PAL_1_0
|
||||
if (1)
|
||||
#endif
|
||||
{
|
||||
Vec3f quakeOffset;
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#include "global.h"
|
||||
#include "terminal.h"
|
||||
#include "versions.h"
|
||||
|
||||
RomFile sNaviQuestHintFiles[];
|
||||
|
||||
|
@ -382,12 +383,21 @@ BAD_RETURN(s32) Scene_CommandTimeSettings(PlayState* play, SceneCmd* cmd) {
|
|||
|
||||
if (((play->envCtx.sceneTimeSpeed == 0) && (gSaveContext.save.cutsceneIndex < 0xFFF0)) ||
|
||||
(gSaveContext.save.entranceIndex == ENTR_LAKE_HYLIA_8)) {
|
||||
#if OOT_VERSION >= PAL_1_0
|
||||
gSaveContext.skyboxTime = ((void)0, gSaveContext.save.dayTime);
|
||||
#endif
|
||||
|
||||
#if OOT_VERSION < PAL_1_0
|
||||
if ((gSaveContext.skyboxTime > CLOCK_TIME(4, 0)) && (gSaveContext.skyboxTime <= CLOCK_TIME(5, 0))) {
|
||||
gSaveContext.skyboxTime = CLOCK_TIME(5, 0) + 1;
|
||||
} else if ((gSaveContext.skyboxTime >= CLOCK_TIME(6, 0)) && (gSaveContext.skyboxTime <= CLOCK_TIME(8, 0))) {
|
||||
gSaveContext.skyboxTime = CLOCK_TIME(8, 0) + 1;
|
||||
#else
|
||||
if ((gSaveContext.skyboxTime > CLOCK_TIME(4, 0)) && (gSaveContext.skyboxTime < CLOCK_TIME(6, 30))) {
|
||||
gSaveContext.skyboxTime = CLOCK_TIME(5, 0) + 1;
|
||||
} else if ((gSaveContext.skyboxTime >= CLOCK_TIME(6, 30)) && (gSaveContext.skyboxTime <= CLOCK_TIME(8, 0))) {
|
||||
gSaveContext.skyboxTime = CLOCK_TIME(8, 0) + 1;
|
||||
#endif
|
||||
} else if ((gSaveContext.skyboxTime >= CLOCK_TIME(16, 0)) && (gSaveContext.skyboxTime <= CLOCK_TIME(17, 0))) {
|
||||
gSaveContext.skyboxTime = CLOCK_TIME(17, 0) + 1;
|
||||
} else if ((gSaveContext.skyboxTime >= CLOCK_TIME(18, 0) + 1) &&
|
||||
|
|
|
@ -169,6 +169,18 @@ void Sram_InitNewSave(void) {
|
|||
static SavePlayerData sDebugSavePlayerData = {
|
||||
{ 'Z', 'E', 'L', 'D', 'A', 'Z' }, // newf
|
||||
0, // deaths
|
||||
#if OOT_VERSION < PAL_1_0
|
||||
{
|
||||
0x81, // リ
|
||||
0x87, // ン
|
||||
0x61, // ク
|
||||
FILENAME_SPACE,
|
||||
FILENAME_SPACE,
|
||||
FILENAME_SPACE,
|
||||
FILENAME_SPACE,
|
||||
FILENAME_SPACE,
|
||||
}, // playerName
|
||||
#else
|
||||
{
|
||||
FILENAME_UPPERCASE('L'),
|
||||
FILENAME_UPPERCASE('I'),
|
||||
|
@ -179,6 +191,7 @@ static SavePlayerData sDebugSavePlayerData = {
|
|||
FILENAME_SPACE,
|
||||
FILENAME_SPACE,
|
||||
}, // playerName
|
||||
#endif
|
||||
0, // n64ddFlag
|
||||
0xE0, // healthCapacity
|
||||
0xE0, // health
|
||||
|
@ -499,9 +512,11 @@ void Sram_OpenSave(SramContext* sramCtx) {
|
|||
|
||||
if (LINK_AGE_IN_YEARS == YEARS_ADULT && !CHECK_OWNED_EQUIP(EQUIP_TYPE_SWORD, EQUIP_INV_SWORD_MASTER)) {
|
||||
gSaveContext.save.info.inventory.equipment |= OWNED_EQUIP_FLAG(EQUIP_TYPE_SWORD, EQUIP_INV_SWORD_MASTER);
|
||||
#if OOT_VERSION >= NTSC_1_1
|
||||
gSaveContext.save.info.equips.buttonItems[0] = ITEM_SWORD_MASTER;
|
||||
gSaveContext.save.info.equips.equipment &= ~(0xF << (EQUIP_TYPE_SWORD * 4));
|
||||
gSaveContext.save.info.equips.equipment |= EQUIP_VALUE_SWORD_MASTER << (EQUIP_TYPE_SWORD * 4);
|
||||
#endif
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(gSpoilingItems); i++) {
|
||||
|
@ -604,6 +619,13 @@ void Sram_VerifyAndLoadAllSaves(FileSelectState* fileSelect, SramContext* sramCt
|
|||
PRINTF("\n============= S(%d) =============\n", slotNum);
|
||||
|
||||
for (i = newChecksum = j = 0; i < CHECKSUM_SIZE; i++, offset += 2) {
|
||||
#if OOT_VERSION < PAL_1_0
|
||||
if (j) {}
|
||||
j += 2;
|
||||
if (j == 0x20) {
|
||||
j = 0;
|
||||
}
|
||||
#endif
|
||||
newChecksum += *ptr++;
|
||||
}
|
||||
|
||||
|
@ -622,6 +644,13 @@ void Sram_VerifyAndLoadAllSaves(FileSelectState* fileSelect, SramContext* sramCt
|
|||
PRINTF("================= BACK─UP ========================\n");
|
||||
|
||||
for (i = newChecksum = j = 0; i < CHECKSUM_SIZE; i++, offset += 2) {
|
||||
#if OOT_VERSION < PAL_1_0
|
||||
if (j) {}
|
||||
j += 2;
|
||||
if (j == 0x20) {
|
||||
j = 0;
|
||||
}
|
||||
#endif
|
||||
newChecksum += *ptr++;
|
||||
}
|
||||
PRINTF(T("\n(B)SAVEチェックサム計算 j=%x mmm=%x ",
|
||||
|
|
Loading…
Reference in a new issue