1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-03 22:44:30 +00:00

Environment documentation pass (#1115)

* some docs, start introducing time macro

* most usages of CLOCK_TIME

* finish up clock time defines, format

* saving incase i need to revert

* more docs

* more docs progress

* some more docs

* format with 11

* change sos to storm

* update functions.h

* some depth stuff

* review 1 and 2

* whoops

* update zbuf stuff

* most of review 3

* enum name

* storm state enum

* review 4

* fix enum

* add comment to skyboxischanging

* review

* things dont match, committing so i can change branches

* revert struct changes

* define for override_full_control

* new clock_time macro

* fill alpha -> glare strength

* update comment

* remove indoor/outdoor, new name for underwater light variable

* remove copy pasted comment

* fix comments

* remove whitespave

* review
This commit is contained in:
fig02 2022-05-20 14:40:13 -04:00 committed by GitHub
parent d7bbe43ba7
commit 4f0018bf36
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
50 changed files with 1339 additions and 1087 deletions

View file

@ -4519,7 +4519,7 @@ u32 func_80035BFC(GlobalContext* globalCtx, s16 arg1) {
retTextId = 0x7002;
} else if (Flags_GetInfTable(INFTABLE_6A)) {
retTextId = 0x7004;
} else if ((gSaveContext.dayTime >= 0x4000) && (gSaveContext.dayTime < 0xC556)) {
} else if ((gSaveContext.dayTime >= CLOCK_TIME(6, 0)) && (gSaveContext.dayTime <= CLOCK_TIME(18, 30))) {
retTextId = 0x7002;
} else {
retTextId = 0x7003;

View file

@ -15,7 +15,7 @@ void SaveContext_Init(void) {
gSaveContext.nextCutsceneIndex = 0xFFEF;
gSaveContext.cutsceneTrigger = 0;
gSaveContext.chamberCutsceneNum = 0;
gSaveContext.nextDayTime = 0xFFFF;
gSaveContext.nextDayTime = NEXT_TIME_NONE;
gSaveContext.skyboxTime = 0;
gSaveContext.dogIsLost = true;
gSaveContext.nextTransitionType = TRANS_NEXT_TYPE_DEFAULT;

View file

@ -229,7 +229,7 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
if (sp3F != 0) {
Audio_SetNatureAmbienceChannelIO(NATURE_CHANNEL_RAIN, CHANNEL_IO_PORT_4, 0x3F);
Audio_SetNatureAmbienceChannelIO(NATURE_CHANNEL_RAIN, CHANNEL_IO_PORT_1, 1);
globalCtx->envCtx.unk_EE[0] = 20;
globalCtx->envCtx.precipitation[PRECIP_RAIN_MAX] = 20;
}
break;
case 2:
@ -254,14 +254,14 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
break;
case 7:
if (sp3F != 0) {
globalCtx->envCtx.unk_19 = 1;
globalCtx->envCtx.unk_17 = 1;
globalCtx->envCtx.unk_18 = 0;
globalCtx->envCtx.unk_1A = 0x3C;
globalCtx->envCtx.unk_21 = 1;
globalCtx->envCtx.unk_1F = 0;
globalCtx->envCtx.unk_20 = 1;
globalCtx->envCtx.unk_22 = globalCtx->envCtx.unk_24 = 0x3C;
globalCtx->envCtx.changeSkyboxState = CHANGE_SKYBOX_REQUESTED;
globalCtx->envCtx.skyboxConfig = 1;
globalCtx->envCtx.changeSkyboxNextConfig = 0;
globalCtx->envCtx.changeSkyboxTimer = 60;
globalCtx->envCtx.changeLightEnabled = true;
globalCtx->envCtx.lightConfig = 0;
globalCtx->envCtx.changeLightNextConfig = 1;
globalCtx->envCtx.changeLightTimer = globalCtx->envCtx.changeDuration = 60;
}
break;
case 8:
@ -270,7 +270,7 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
}
break;
case 9:
globalCtx->envCtx.unk_EE[3] = 16;
globalCtx->envCtx.precipitation[PRECIP_SNOW_MAX] = 16;
break;
case 10:
Flags_SetEnv(globalCtx, 1);
@ -325,13 +325,13 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
}
break;
case 18:
globalCtx->envCtx.unk_EE[0] = 0;
globalCtx->envCtx.gloomySkyMode = 2;
if (gSaveContext.dayTime < 0x4AAB) {
globalCtx->envCtx.precipitation[PRECIP_RAIN_MAX] = 0;
globalCtx->envCtx.stormRequest = STORM_REQUEST_STOP;
if (gSaveContext.dayTime < CLOCK_TIME(7, 0)) {
gSaveContext.dayTime += 30;
}
if (globalCtx->envCtx.unk_EE[1] == 0) {
gWeatherMode = 0;
if (globalCtx->envCtx.precipitation[PRECIP_RAIN_CUR] == 0) {
gWeatherMode = WEATHER_MODE_CLEAR;
Audio_SetNatureAmbienceChannelIO(NATURE_CHANNEL_RAIN, CHANNEL_IO_PORT_1, 0);
}
break;
@ -361,18 +361,19 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
break;
case 25:
gSaveContext.dayTime += 30;
if ((gSaveContext.dayTime) > 0xCAAA) {
gSaveContext.dayTime = 0xCAAA;
if ((gSaveContext.dayTime) >= CLOCK_TIME(19, 0)) {
gSaveContext.dayTime = CLOCK_TIME(19, 0) - 1;
}
break;
case 26:
if ((gSaveContext.dayTime < 0x3000) || (gSaveContext.dayTime >= 0x4555)) {
if ((gSaveContext.dayTime >= 0x4555) && (gSaveContext.dayTime < 0xAAAB)) {
globalCtx->envCtx.unk_BF = 1;
} else if ((gSaveContext.dayTime >= 0xAAAB) && (gSaveContext.dayTime < 0xC556)) {
globalCtx->envCtx.unk_BF = 2;
if ((gSaveContext.dayTime < CLOCK_TIME(4, 30)) || (gSaveContext.dayTime >= CLOCK_TIME(6, 30))) {
if ((gSaveContext.dayTime >= CLOCK_TIME(6, 30)) && (gSaveContext.dayTime < CLOCK_TIME(16, 0))) {
globalCtx->envCtx.lightSettingOverride = 1;
} else if ((gSaveContext.dayTime >= CLOCK_TIME(16, 0)) &&
(gSaveContext.dayTime <= CLOCK_TIME(18, 30))) {
globalCtx->envCtx.lightSettingOverride = 2;
} else {
globalCtx->envCtx.unk_BF = 3;
globalCtx->envCtx.lightSettingOverride = 3;
}
}
break;
@ -414,9 +415,9 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
break;
case 34:
if (IS_DAY) {
gSaveContext.dayTime -= gTimeIncrement;
gSaveContext.dayTime -= gTimeSpeed;
} else {
gSaveContext.dayTime -= gTimeIncrement * 2;
gSaveContext.dayTime -= gTimeSpeed * 2;
}
break;
case 35:
@ -429,8 +430,8 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
// Command 4: Set Environment Lighting
void Cutscene_Command_SetLighting(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdEnvLighting* cmd) {
if (csCtx->frames == cmd->startFrame) {
globalCtx->envCtx.unk_BF = cmd->setting - 1;
globalCtx->envCtx.unk_D8 = 1.0f;
globalCtx->envCtx.lightSettingOverride = cmd->setting - 1;
globalCtx->envCtx.lightBlend = 1.0f;
}
}
@ -1222,8 +1223,8 @@ void Cutscene_Command_Terminator(GlobalContext* globalCtx, CutsceneContext* csCt
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK;
break;
case 119:
gSaveContext.dayTime = 0x8000;
gSaveContext.skyboxTime = 0x8000;
gSaveContext.dayTime = CLOCK_TIME(12, 0);
gSaveContext.skyboxTime = CLOCK_TIME(12, 0);
globalCtx->nextEntranceIndex = ENTR_NAKANIWA_1;
globalCtx->transitionTrigger = TRANS_TRIGGER_START;
globalCtx->transitionType = TRANS_TYPE_FADE_WHITE;

File diff suppressed because it is too large Load diff

View file

@ -347,7 +347,7 @@ void Lights_GlowCheck(GlobalContext* globalCtx) {
if (1) {}
if (1) {}
if (wZ < (func_8006F0A0(zBuf) >> 3)) {
if (wZ < (Environment_ZBufValToFixedPoint(zBuf) >> 3)) {
params->drawGlow = true;
}
}

View file

@ -3829,7 +3829,7 @@ void Interface_Draw(GlobalContext* globalCtx) {
void Interface_Update(GlobalContext* globalCtx) {
static u8 D_80125B60 = false;
static s16 sPrevTimeIncrement = 0;
static s16 sPrevTimeSpeed = 0;
MessageContext* msgCtx = &globalCtx->msgCtx;
InterfaceContext* interfaceCtx = &globalCtx->interfaceCtx;
Player* player = GET_PLAYER(globalCtx);
@ -4152,35 +4152,35 @@ void Interface_Update(GlobalContext* globalCtx) {
}
// handle suns song in areas where time moves
if (globalCtx->envCtx.timeIncrement != 0) {
if (globalCtx->envCtx.sceneTimeSpeed != 0) {
if (gSaveContext.sunsSongState != SUNSSONG_SPEED_TIME) {
D_80125B60 = false;
if ((gSaveContext.dayTime >= 0x4555) && (gSaveContext.dayTime <= 0xC001)) {
if ((gSaveContext.dayTime >= CLOCK_TIME(6, 30)) && (gSaveContext.dayTime <= CLOCK_TIME(18, 0) + 1)) {
D_80125B60 = true;
}
gSaveContext.sunsSongState = SUNSSONG_SPEED_TIME;
sPrevTimeIncrement = gTimeIncrement;
gTimeIncrement = 400;
sPrevTimeSpeed = gTimeSpeed;
gTimeSpeed = 400;
} else if (!D_80125B60) {
if ((gSaveContext.dayTime >= 0x4555) && (gSaveContext.dayTime <= 0xC001)) {
if ((gSaveContext.dayTime >= CLOCK_TIME(6, 30)) && (gSaveContext.dayTime <= CLOCK_TIME(18, 0) + 1)) {
gSaveContext.sunsSongState = SUNSSONG_INACTIVE;
gTimeIncrement = sPrevTimeIncrement;
gTimeSpeed = sPrevTimeSpeed;
globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04;
}
} else if (gSaveContext.dayTime > 0xC001) {
} else if (gSaveContext.dayTime > CLOCK_TIME(18, 0) + 1) {
gSaveContext.sunsSongState = SUNSSONG_INACTIVE;
gTimeIncrement = sPrevTimeIncrement;
gTimeSpeed = sPrevTimeSpeed;
globalCtx->msgCtx.ocarinaMode = OCARINA_MODE_04;
}
} else if ((globalCtx->roomCtx.curRoom.unk_03 != 1) && (interfaceCtx->restrictions.sunsSong != 3)) {
if ((gSaveContext.dayTime >= 0x4555) && (gSaveContext.dayTime < 0xC001)) {
gSaveContext.nextDayTime = 0;
if ((gSaveContext.dayTime >= CLOCK_TIME(6, 30)) && (gSaveContext.dayTime < CLOCK_TIME(18, 0) + 1)) {
gSaveContext.nextDayTime = NEXT_TIME_NIGHT;
globalCtx->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK;
globalCtx->unk_11DE9 = true;
} else {
gSaveContext.nextDayTime = 0x8001;
gSaveContext.nextDayTime = NEXT_TIME_DAY;
globalCtx->transitionType = TRANS_TYPE_FADE_WHITE_FAST;
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE;
globalCtx->unk_11DE9 = true;

View file

@ -256,12 +256,12 @@ void Play_Init(GameState* thisx) {
gSaveContext.cutsceneIndex = 0;
}
if (gSaveContext.nextDayTime != 0xFFFF) {
if (gSaveContext.nextDayTime != NEXT_TIME_NONE) {
gSaveContext.dayTime = gSaveContext.nextDayTime;
gSaveContext.skyboxTime = gSaveContext.nextDayTime;
}
if (gSaveContext.dayTime > 0xC000 || gSaveContext.dayTime < 0x4555) {
if (gSaveContext.dayTime > CLOCK_TIME(18, 0) || gSaveContext.dayTime < CLOCK_TIME(6, 30)) {
gSaveContext.nightFlag = 1;
} else {
gSaveContext.nightFlag = 0;
@ -315,8 +315,8 @@ void Play_Init(GameState* thisx) {
KaleidoScopeCall_Init(this);
func_801109B0(this);
if (gSaveContext.nextDayTime != 0xFFFF) {
if (gSaveContext.nextDayTime == 0x8001) {
if (gSaveContext.nextDayTime != NEXT_TIME_NONE) {
if (gSaveContext.nextDayTime == NEXT_TIME_DAY) {
gSaveContext.totalDays++;
gSaveContext.bgsDayCount++;
gSaveContext.dogIsLost = true;
@ -324,9 +324,9 @@ void Play_Init(GameState* thisx) {
Inventory_ReplaceItem(this, ITEM_POCKET_EGG, ITEM_POCKET_CUCCO)) {
Message_StartTextbox(this, 0x3066, NULL);
}
gSaveContext.nextDayTime = 0xFFFE;
gSaveContext.nextDayTime = NEXT_TIME_DAY_SET;
} else {
gSaveContext.nextDayTime = 0xFFFD;
gSaveContext.nextDayTime = NEXT_TIME_NIGHT_SET;
}
}
@ -1256,7 +1256,7 @@ void Play_Draw(GlobalContext* this) {
}
}
if (this->envCtx.unk_EE[1] != 0) {
if (this->envCtx.precipitation[PRECIP_RAIN_CUR] != 0) {
Environment_DrawRain(this, &this->view, gfxCtx);
}
@ -1515,17 +1515,17 @@ void Play_SpawnScene(GlobalContext* this, s32 sceneNum, s32 spawn) {
osSyncPrintf("ROOM SIZE=%fK\n", func_80096FE8(this, &this->roomCtx) / 1024.0f);
}
void func_800C016C(GlobalContext* this, Vec3f* src, Vec3f* dest) {
f32 temp;
void Play_GetScreenPos(GlobalContext* this, Vec3f* src, Vec3f* dest) {
f32 w;
Matrix_Mult(&this->viewProjectionMtxF, MTXMODE_NEW);
Matrix_MultVec3f(src, dest);
temp = this->viewProjectionMtxF.ww + (this->viewProjectionMtxF.wx * src->x + this->viewProjectionMtxF.wy * src->y +
this->viewProjectionMtxF.wz * src->z);
w = this->viewProjectionMtxF.ww + (this->viewProjectionMtxF.wx * src->x + this->viewProjectionMtxF.wy * src->y +
this->viewProjectionMtxF.wz * src->z);
dest->x = 160.0f + ((dest->x / temp) * 160.0f);
dest->y = 120.0f - ((dest->y / temp) * 120.0f);
dest->x = (SCREEN_WIDTH / 2) + ((dest->x / w) * (SCREEN_WIDTH / 2));
dest->y = (SCREEN_HEIGHT / 2) - ((dest->y / w) * (SCREEN_HEIGHT / 2));
}
s16 Play_CreateSubCamera(GlobalContext* this) {

View file

@ -344,8 +344,8 @@ void func_80098CC8(GlobalContext* globalCtx, SceneCmd* cmd) {
// Scene Command 0x11: Skybox Settings
void func_80098D1C(GlobalContext* globalCtx, SceneCmd* cmd) {
globalCtx->skyboxId = cmd->skyboxSettings.skyboxId;
globalCtx->envCtx.unk_17 = globalCtx->envCtx.unk_18 = cmd->skyboxSettings.unk_05;
globalCtx->envCtx.indoors = cmd->skyboxSettings.unk_06;
globalCtx->envCtx.skyboxConfig = globalCtx->envCtx.changeSkyboxNextConfig = cmd->skyboxSettings.unk_05;
globalCtx->envCtx.lightMode = cmd->skyboxSettings.unk_06;
}
// Scene Command 0x12: Skybox Disables
@ -362,30 +362,31 @@ void func_80098D80(GlobalContext* globalCtx, SceneCmd* cmd) {
}
if (cmd->timeSettings.unk_06 != 0xFF) {
globalCtx->envCtx.timeIncrement = cmd->timeSettings.unk_06;
globalCtx->envCtx.sceneTimeSpeed = cmd->timeSettings.unk_06;
} else {
globalCtx->envCtx.timeIncrement = 0;
globalCtx->envCtx.sceneTimeSpeed = 0;
}
if (gSaveContext.sunsSongState == SUNSSONG_INACTIVE) {
gTimeIncrement = globalCtx->envCtx.timeIncrement;
gTimeSpeed = globalCtx->envCtx.sceneTimeSpeed;
}
globalCtx->envCtx.sunPos.x = -(Math_SinS(((void)0, gSaveContext.dayTime) - 0x8000) * 120.0f) * 25.0f;
globalCtx->envCtx.sunPos.y = (Math_CosS(((void)0, gSaveContext.dayTime) - 0x8000) * 120.0f) * 25.0f;
globalCtx->envCtx.sunPos.z = (Math_CosS(((void)0, gSaveContext.dayTime) - 0x8000) * 20.0f) * 25.0f;
globalCtx->envCtx.sunPos.x = -(Math_SinS(((void)0, gSaveContext.dayTime) - CLOCK_TIME(12, 0)) * 120.0f) * 25.0f;
globalCtx->envCtx.sunPos.y = (Math_CosS(((void)0, gSaveContext.dayTime) - CLOCK_TIME(12, 0)) * 120.0f) * 25.0f;
globalCtx->envCtx.sunPos.z = (Math_CosS(((void)0, gSaveContext.dayTime) - CLOCK_TIME(12, 0)) * 20.0f) * 25.0f;
if (((globalCtx->envCtx.timeIncrement == 0) && (gSaveContext.cutsceneIndex < 0xFFF0)) ||
if (((globalCtx->envCtx.sceneTimeSpeed == 0) && (gSaveContext.cutsceneIndex < 0xFFF0)) ||
(gSaveContext.entranceIndex == ENTR_SPOT06_8)) {
gSaveContext.skyboxTime = ((void)0, gSaveContext.dayTime);
if ((gSaveContext.skyboxTime >= 0x2AAC) && (gSaveContext.skyboxTime < 0x4555)) {
gSaveContext.skyboxTime = 0x3556;
} else if ((gSaveContext.skyboxTime >= 0x4555) && (gSaveContext.skyboxTime < 0x5556)) {
gSaveContext.skyboxTime = 0x5556;
} else if ((gSaveContext.skyboxTime >= 0xAAAB) && (gSaveContext.skyboxTime < 0xB556)) {
gSaveContext.skyboxTime = 0xB556;
} else if ((gSaveContext.skyboxTime >= 0xC001) && (gSaveContext.skyboxTime < 0xCAAC)) {
gSaveContext.skyboxTime = 0xCAAC;
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;
} 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) &&
(gSaveContext.skyboxTime <= CLOCK_TIME(19, 0))) {
gSaveContext.skyboxTime = CLOCK_TIME(19, 0) + 1;
}
}
}

View file

@ -247,7 +247,7 @@ void func_80099BD8(GlobalContext* globalCtx) {
gCustomLensFlarePos.z = -684.0f;
gLensFlareScale = 10;
gLensFlareColorIntensity = 8.0f;
gLensFlareScreenFillAlpha = 200;
gLensFlareGlareStrength = 200;
}
}
@ -999,14 +999,14 @@ void func_8009DA30(GlobalContext* globalCtx) {
gSPSegment(POLY_XLU_DISP++, 0x0A, displayListHead);
if ((gSaveContext.dayTime >= 0x4AAC) && (gSaveContext.dayTime <= 0xC555)) {
if ((gSaveContext.dayTime > CLOCK_TIME(7, 0)) && (gSaveContext.dayTime <= CLOCK_TIME(18, 30))) {
gSPEndDisplayList(displayListHead);
} else {
if (gSaveContext.dayTime > 0xC555) {
if (gSaveContext.dayTime > CLOCK_TIME(18, 30)) {
if (globalCtx->roomCtx.unk_74[0] != 255) {
Math_StepToS(&globalCtx->roomCtx.unk_74[0], 255, 5);
}
} else if (gSaveContext.dayTime >= 0x4000) {
} else if (gSaveContext.dayTime >= CLOCK_TIME(6, 0)) {
if (globalCtx->roomCtx.unk_74[0] != 0) {
Math_StepToS(&globalCtx->roomCtx.unk_74[0], 0, 10);
}
@ -1354,14 +1354,14 @@ void func_8009F5D4(GlobalContext* globalCtx) {
gSPSegment(POLY_XLU_DISP++, 0x08, displayListHead);
if ((gSaveContext.dayTime >= 0x4AAC) && (gSaveContext.dayTime <= 0xC000)) {
if ((gSaveContext.dayTime > CLOCK_TIME(7, 0)) && (gSaveContext.dayTime <= CLOCK_TIME(18, 0))) {
gSPEndDisplayList(displayListHead);
} else {
if (gSaveContext.dayTime > 0xC000) {
if (gSaveContext.dayTime > CLOCK_TIME(18, 0)) {
if (globalCtx->roomCtx.unk_74[0] != 255) {
Math_StepToS(&globalCtx->roomCtx.unk_74[0], 255, 5);
}
} else if (gSaveContext.dayTime >= 0x4000) {
} else if (gSaveContext.dayTime >= CLOCK_TIME(6, 0)) {
if (globalCtx->roomCtx.unk_74[0] != 0) {
Math_StepToS(&globalCtx->roomCtx.unk_74[0], 0, 10);
}

View file

@ -707,7 +707,7 @@ void Sram_InitSave(FileChooseContext* fileChooseCtx, SramContext* sramCtx) {
gSaveContext.entranceIndex = ENTR_LINK_HOME_0;
gSaveContext.linkAge = LINK_AGE_CHILD;
gSaveContext.dayTime = 0x6AAB;
gSaveContext.dayTime = CLOCK_TIME(10, 0);
gSaveContext.cutsceneIndex = 0xFFF1;
if (fileChooseCtx->buttonIndex == 0) {

View file

@ -376,25 +376,28 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
u8 skybox1Index;
u8 skybox2Index;
u32 start;
s32 phi_v1;
s32 skyboxConfig;
switch (skyboxId) {
case SKYBOX_NORMAL_SKY:
phi_v1 = 0;
if (gSaveContext.unk_13C3 != 0 && gSaveContext.sceneSetupIndex < 4 && gWeatherMode > 0 &&
gWeatherMode < 6) {
phi_v1 = 1;
skyboxConfig = 0;
if (gSaveContext.retainWeatherMode && gSaveContext.sceneSetupIndex < 4 &&
gWeatherMode > WEATHER_MODE_CLEAR && gWeatherMode <= WEATHER_MODE_HEAVY_RAIN) {
skyboxConfig = 1;
}
for (i = 0; i < 9; i++) {
if (gSaveContext.skyboxTime >= D_8011FC1C[phi_v1][i].startTime &&
(gSaveContext.skyboxTime < D_8011FC1C[phi_v1][i].endTime ||
D_8011FC1C[phi_v1][i].endTime == 0xFFFF)) {
globalCtx->envCtx.skybox1Index = skybox1Index = D_8011FC1C[phi_v1][i].skybox1Index;
globalCtx->envCtx.skybox2Index = skybox2Index = D_8011FC1C[phi_v1][i].skybox2Index;
if (D_8011FC1C[phi_v1][i].blend != 0) {
for (i = 0; i < ARRAY_COUNT(gTimeBasedSkyboxConfigs[skyboxConfig]); i++) {
if (gSaveContext.skyboxTime >= gTimeBasedSkyboxConfigs[skyboxConfig][i].startTime &&
(gSaveContext.skyboxTime < gTimeBasedSkyboxConfigs[skyboxConfig][i].endTime ||
gTimeBasedSkyboxConfigs[skyboxConfig][i].endTime == 0xFFFF)) {
globalCtx->envCtx.skybox1Index = skybox1Index =
gTimeBasedSkyboxConfigs[skyboxConfig][i].skybox1Index;
globalCtx->envCtx.skybox2Index = skybox2Index =
gTimeBasedSkyboxConfigs[skyboxConfig][i].skybox2Index;
if (gTimeBasedSkyboxConfigs[skyboxConfig][i].changeSkybox) {
globalCtx->envCtx.skyboxBlend =
Environment_LerpWeight(D_8011FC1C[phi_v1][i].endTime, D_8011FC1C[phi_v1][i].startTime,
Environment_LerpWeight(gTimeBasedSkyboxConfigs[skyboxConfig][i].endTime,
gTimeBasedSkyboxConfigs[skyboxConfig][i].startTime,
((void)0, gSaveContext.skyboxTime)) *
255.0f;
} else {
@ -404,44 +407,44 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
}
}
size = gSkyboxFiles[skybox1Index].file.vromEnd - gSkyboxFiles[skybox1Index].file.vromStart;
size = gNormalSkyFiles[skybox1Index].file.vromEnd - gNormalSkyFiles[skybox1Index].file.vromStart;
skyboxCtx->staticSegments[0] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1054);
ASSERT(skyboxCtx->staticSegments[0] != NULL, "vr_box->vr_box_staticSegment[0] != NULL", "../z_vr_box.c",
1055);
DmaMgr_SendRequest1(skyboxCtx->staticSegments[0], gSkyboxFiles[skybox1Index].file.vromStart, size,
DmaMgr_SendRequest1(skyboxCtx->staticSegments[0], gNormalSkyFiles[skybox1Index].file.vromStart, size,
"../z_vr_box.c", 1058);
size = gSkyboxFiles[skybox2Index].file.vromEnd - gSkyboxFiles[skybox2Index].file.vromStart;
size = gNormalSkyFiles[skybox2Index].file.vromEnd - gNormalSkyFiles[skybox2Index].file.vromStart;
skyboxCtx->staticSegments[1] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1060);
ASSERT(skyboxCtx->staticSegments[1] != NULL, "vr_box->vr_box_staticSegment[1] != NULL", "../z_vr_box.c",
1061);
DmaMgr_SendRequest1(skyboxCtx->staticSegments[1], gSkyboxFiles[skybox2Index].file.vromStart, size,
DmaMgr_SendRequest1(skyboxCtx->staticSegments[1], gNormalSkyFiles[skybox2Index].file.vromStart, size,
"../z_vr_box.c", 1064);
if ((skybox1Index & 1) ^ ((skybox1Index & 4) >> 2)) {
size = gSkyboxFiles[skybox1Index].palette.vromEnd - gSkyboxFiles[skybox1Index].palette.vromStart;
size = gNormalSkyFiles[skybox1Index].palette.vromEnd - gNormalSkyFiles[skybox1Index].palette.vromStart;
skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size * 2, "../z_vr_box.c", 1072);
ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c", 1073);
DmaMgr_SendRequest1(skyboxCtx->palettes, gSkyboxFiles[skybox1Index].palette.vromStart, size,
DmaMgr_SendRequest1(skyboxCtx->palettes, gNormalSkyFiles[skybox1Index].palette.vromStart, size,
"../z_vr_box.c", 1075);
DmaMgr_SendRequest1((u32)skyboxCtx->palettes + size, gSkyboxFiles[skybox2Index].palette.vromStart, size,
"../z_vr_box.c", 1077);
DmaMgr_SendRequest1((u32)skyboxCtx->palettes + size, gNormalSkyFiles[skybox2Index].palette.vromStart,
size, "../z_vr_box.c", 1077);
} else {
size = gSkyboxFiles[skybox1Index].palette.vromEnd - gSkyboxFiles[skybox1Index].palette.vromStart;
size = gNormalSkyFiles[skybox1Index].palette.vromEnd - gNormalSkyFiles[skybox1Index].palette.vromStart;
skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size * 2, "../z_vr_box.c", 1085);
ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c", 1086);
DmaMgr_SendRequest1(skyboxCtx->palettes, gSkyboxFiles[skybox2Index].palette.vromStart, size,
DmaMgr_SendRequest1(skyboxCtx->palettes, gNormalSkyFiles[skybox2Index].palette.vromStart, size,
"../z_vr_box.c", 1088);
DmaMgr_SendRequest1((u32)skyboxCtx->palettes + size, gSkyboxFiles[skybox1Index].palette.vromStart, size,
"../z_vr_box.c", 1090);
DmaMgr_SendRequest1((u32)skyboxCtx->palettes + size, gNormalSkyFiles[skybox1Index].palette.vromStart,
size, "../z_vr_box.c", 1090);
}
break;