fix for day/night textures (#2853)

* hacky fix for deku tree entrance

* lonlon windows

* only hack in one place instead of everywhere

* dehack deku

* goron city entrance

* gerudo cell, zd entrance

* kak windows

* fix pot house

* back to the hacks

* back back

* space

* globals

* just hack it together to fix em all

---------

Co-authored-by: briaguya <briaguya@alice>
This commit is contained in:
briaguya 2023-05-09 23:33:27 -04:00 committed by GitHub
parent b887d38f5f
commit 72358eb4d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 277 additions and 18 deletions

195
soh/soh/mq_asset_hacks.h Normal file
View File

@ -0,0 +1,195 @@
#ifndef MQ_ASSET_HACKS_H
#define MQ_ASSET_HACKS_H
#include "align_asset_macro.h"
#define dgYdanTex_00BA18_MQ "__OTR__scenes/mq/ydan_scene/gYdanTex_00BA18"
static const ALIGN_ASSET(2) char gYdanTex_00BA18_MQ[] = dgYdanTex_00BA18_MQ;
#define dgYdanTex_00CA18_MQ "__OTR__scenes/mq/ydan_scene/gYdanTex_00CA18"
static const ALIGN_ASSET(2) char gYdanTex_00CA18_MQ[] = dgYdanTex_00CA18_MQ;
void* D_8012A2F8_MQ[] = {
gYdanTex_00BA18_MQ,
gYdanTex_00CA18_MQ,
};
#define dgGoronCityNightEntranceTex_MQ "__OTR__scenes/mq/spot18_scene/gGoronCityNightEntranceTex"
static const ALIGN_ASSET(2) char gGoronCityNightEntranceTex_MQ[] = dgGoronCityNightEntranceTex_MQ;
#define dgGoronCityDayEntranceTex_MQ "__OTR__scenes/mq/spot18_scene/gGoronCityDayEntranceTex"
static const ALIGN_ASSET(2) char gGoronCityDayEntranceTex_MQ[] = dgGoronCityDayEntranceTex_MQ;
void* sGoronCityEntranceTextures_MQ[] = {
gGoronCityDayEntranceTex_MQ,
gGoronCityNightEntranceTex_MQ,
};
#define dgLonLonRanchDayWindowTex_MQ "__OTR__scenes/mq/spot20_scene/gLonLonRanchDayWindowTex"
static const ALIGN_ASSET(2) char gLonLonRanchDayWindowTex_MQ[] = dgLonLonRanchDayWindowTex_MQ;
#define dgLonLonRangeNightWindowsTex_MQ "__OTR__scenes/mq/spot20_scene/gLonLonRangeNightWindowsTex"
static const ALIGN_ASSET(2) char gLonLonRangeNightWindowsTex_MQ[] = dgLonLonRangeNightWindowsTex_MQ;
void* sLonLonRanchWindowTextures_MQ[] = {
gLonLonRanchDayWindowTex_MQ,
gLonLonRangeNightWindowsTex_MQ,
};
// walls of GF room where they throw you when you get caught
#define dgSpot12_009678Tex_MQ "__OTR__scenes/mq/spot12_scene/gSpot12_009678Tex"
static const ALIGN_ASSET(2) char gSpot12_009678Tex_MQ[] = dgSpot12_009678Tex_MQ;
#define dgSpot12_00DE78Tex_MQ "__OTR__scenes/mq/spot12_scene/gSpot12_00DE78Tex"
static const ALIGN_ASSET(2) char gSpot12_00DE78Tex_MQ[] = dgSpot12_00DE78Tex_MQ;
void* D_8012A380_MQ[] = {
gSpot12_009678Tex_MQ,
gSpot12_00DE78Tex_MQ,
};
#define dgZorasDomainDayEntranceTex_MQ "__OTR__scenes/mq/spot07_scene/gZorasDomainDayEntranceTex"
static const ALIGN_ASSET(2) char gZorasDomainDayEntranceTex_MQ[] = dgZorasDomainDayEntranceTex_MQ;
#define dgZorasDomainNightEntranceTex_MQ "__OTR__scenes/mq/spot07_scene/gZorasDomainNightEntranceTex"
static const ALIGN_ASSET(2) char gZorasDomainNightEntranceTex_MQ[] = dgZorasDomainNightEntranceTex_MQ;
void* sZorasDomainEntranceTextures_MQ[] = {
gZorasDomainDayEntranceTex_MQ,
gZorasDomainNightEntranceTex_MQ,
};
#define dgKakarikoVillageDayWindowTex_MQ "__OTR__scenes/mq/spot01_scene/gKakarikoVillageDayWindowTex"
static const ALIGN_ASSET(2) char gKakarikoVillageDayWindowTex_MQ[] = dgKakarikoVillageDayWindowTex_MQ;
#define dgKakarikoVillageNightWindowTex_MQ "__OTR__scenes/mq/spot01_scene/gKakarikoVillageNightWindowTex"
static const ALIGN_ASSET(2) char gKakarikoVillageNightWindowTex_MQ[] = dgKakarikoVillageNightWindowTex_MQ;
void* sKakarikoWindowTextures_MQ[] = {
gKakarikoVillageDayWindowTex_MQ,
gKakarikoVillageNightWindowTex_MQ,
};
#define dgGuardHouseOutSideView2NightTex_MQ "__OTR__scenes/mq/miharigoya_scene/gGuardHouseOutSideView2NightTex"
static const ALIGN_ASSET(2) char gGuardHouseOutSideView2NightTex_MQ[] = dgGuardHouseOutSideView2NightTex_MQ;
#define dgGuardHouseOutSideView2DayTex_MQ "__OTR__scenes/mq/miharigoya_scene/gGuardHouseOutSideView2DayTex"
static const ALIGN_ASSET(2) char gGuardHouseOutSideView2DayTex_MQ[] = dgGuardHouseOutSideView2DayTex_MQ;
#define dgGuardHouseOutSideView1NightTex_MQ "__OTR__scenes/mq/miharigoya_scene/gGuardHouseOutSideView1NightTex"
static const ALIGN_ASSET(2) char gGuardHouseOutSideView1NightTex_MQ[] = dgGuardHouseOutSideView1NightTex_MQ;
#define dgGuardHouseOutSideView1DayTex_MQ "__OTR__scenes/mq/miharigoya_scene/gGuardHouseOutSideView1DayTex"
static const ALIGN_ASSET(2) char gGuardHouseOutSideView1DayTex_MQ[] = dgGuardHouseOutSideView1DayTex_MQ;
void* sGuardHouseView2Textures_MQ[] = {
gGuardHouseOutSideView1DayTex_MQ,
gGuardHouseOutSideView1NightTex_MQ,
};
void* sGuardHouseView1Textures_MQ[] = {
gGuardHouseOutSideView2DayTex_MQ,
gGuardHouseOutSideView2NightTex_MQ,
};
#define dgLonLonHouseDayEntranceTex_MQ "__OTR__scenes/mq/souko_scene/gLonLonHouseDayEntranceTex"
static const ALIGN_ASSET(2) char gLonLonHouseDayEntranceTex_MQ[] = dgLonLonHouseDayEntranceTex_MQ;
#define dgLonLonHouseNightEntranceTex_MQ "__OTR__scenes/mq/souko_scene/gLonLonHouseNightEntranceTex"
static const ALIGN_ASSET(2) char gLonLonHouseNightEntranceTex_MQ[] = dgLonLonHouseNightEntranceTex_MQ;
void* sLonLonHouseEntranceTextures_MQ[] = {
gLonLonHouseDayEntranceTex_MQ,
gLonLonHouseNightEntranceTex_MQ,
};
#define dgThievesHideoutNightEntranceTex_MQ "__OTR__scenes/mq/gerudoway_scene/gThievesHideoutNightEntranceTex"
static const ALIGN_ASSET(2) char gThievesHideoutNightEntranceTex_MQ[] = dgThievesHideoutNightEntranceTex_MQ;
#define dgThievesHideoutDayEntranceTex_MQ "__OTR__scenes/mq/gerudoway_scene/gThievesHideoutDayEntranceTex"
static const ALIGN_ASSET(2) char gThievesHideoutDayEntranceTex_MQ[] = dgThievesHideoutDayEntranceTex_MQ;
void* sThievesHideoutEntranceTextures_MQ[] = {
gThievesHideoutDayEntranceTex_MQ,
gThievesHideoutNightEntranceTex_MQ,
};
#define dgDCDayEntranceTex_MQ "__OTR__scenes/mq/ddan_scene/gDCDayEntranceTex"
static const ALIGN_ASSET(2) char gDCDayEntranceTex_MQ[] = dgDCDayEntranceTex_MQ;
#define dgDCNightEntranceTex_MQ "__OTR__scenes/mq/ddan_scene/gDCNightEntranceTex"
static const ALIGN_ASSET(2) char gDCNightEntranceTex_MQ[] = dgDCNightEntranceTex_MQ;
void* gDCEntranceTextures_MQ[] = {
gDCDayEntranceTex_MQ,
gDCNightEntranceTex_MQ,
};
#define dgDCLavaFloor1Tex_MQ "__OTR__scenes/mq/ddan_scene/gDCLavaFloor1Tex"
static const ALIGN_ASSET(2) char gDCLavaFloor1Tex_MQ[] = dgDCLavaFloor1Tex_MQ;
#define dgDCLavaFloor2Tex_MQ "__OTR__scenes/mq/ddan_scene/gDCLavaFloor2Tex"
static const ALIGN_ASSET(2) char gDCLavaFloor2Tex_MQ[] = dgDCLavaFloor2Tex_MQ;
#define dgDCLavaFloor3Tex_MQ "__OTR__scenes/mq/ddan_scene/gDCLavaFloor3Tex"
static const ALIGN_ASSET(2) char gDCLavaFloor3Tex_MQ[] = dgDCLavaFloor3Tex_MQ;
#define dgDCLavaFloor4Tex_MQ "__OTR__scenes/mq/ddan_scene/gDCLavaFloor4Tex"
static const ALIGN_ASSET(2) char gDCLavaFloor4Tex_MQ[] = dgDCLavaFloor4Tex_MQ;
#define dgDCLavaFloor5Tex_MQ "__OTR__scenes/mq/ddan_scene/gDCLavaFloor5Tex"
static const ALIGN_ASSET(2) char gDCLavaFloor5Tex_MQ[] = dgDCLavaFloor5Tex_MQ;
#define dgDCLavaFloor6Tex_MQ "__OTR__scenes/mq/ddan_scene/gDCLavaFloor6Tex"
static const ALIGN_ASSET(2) char gDCLavaFloor6Tex_MQ[] = dgDCLavaFloor6Tex_MQ;
#define dgDCLavaFloor7Tex_MQ "__OTR__scenes/mq/ddan_scene/gDCLavaFloor7Tex"
static const ALIGN_ASSET(2) char gDCLavaFloor7Tex_MQ[] = dgDCLavaFloor7Tex_MQ;
#define dgDCLavaFloor8Tex_MQ "__OTR__scenes/mq/ddan_scene/gDCLavaFloor8Tex"
static const ALIGN_ASSET(2) char gDCLavaFloor8Tex_MQ[] = dgDCLavaFloor8Tex_MQ;
void* sDCLavaFloorTextures_MQ[] = {
gDCLavaFloor1Tex_MQ, gDCLavaFloor2Tex_MQ, gDCLavaFloor3Tex_MQ, gDCLavaFloor4Tex_MQ,
gDCLavaFloor5Tex_MQ, gDCLavaFloor6Tex_MQ, gDCLavaFloor7Tex_MQ, gDCLavaFloor8Tex_MQ,
};
#define dgWaterTempleDayEntranceTex_MQ "__OTR__scenes/mq/MIZUsin_scene/gWaterTempleDayEntranceTex"
static const ALIGN_ASSET(2) char gWaterTempleDayEntranceTex_MQ[] = dgWaterTempleDayEntranceTex_MQ;
#define dgWaterTempleNightEntranceTex_MQ "__OTR__scenes/mq/MIZUsin_scene/gWaterTempleNightEntranceTex"
static const ALIGN_ASSET(2) char gWaterTempleNightEntranceTex_MQ[] = dgWaterTempleNightEntranceTex_MQ;
void* D_8012A330_MQ[] = {
gWaterTempleDayEntranceTex_MQ,
gWaterTempleNightEntranceTex_MQ,
};
#define dgIceCavernNightEntranceTex_MQ "__OTR__scenes/mq/ice_doukutu_scene/gIceCavernNightEntranceTex"
static const ALIGN_ASSET(2) char gIceCavernNightEntranceTex_MQ[] = dgIceCavernNightEntranceTex_MQ;
#define dgIceCavernDayEntranceTex_MQ "__OTR__scenes/mq/ice_doukutu_scene/gIceCavernDayEntranceTex"
static const ALIGN_ASSET(2) char gIceCavernDayEntranceTex_MQ[] = dgIceCavernDayEntranceTex_MQ;
void* sIceCavernEntranceTextures_MQ[] = {
gIceCavernDayEntranceTex_MQ,
gIceCavernNightEntranceTex_MQ,
};
#define dgGTGDayEntranceTex_MQ "__OTR__scenes/mq/men_scene/gGTGDayEntranceTex"
static const ALIGN_ASSET(2) char gGTGDayEntranceTex_MQ[] = dgGTGDayEntranceTex_MQ;
#define dgGTGNightEntranceTex_MQ "__OTR__scenes/mq/men_scene/gGTGNightEntranceTex"
static const ALIGN_ASSET(2) char gGTGNightEntranceTex_MQ[] = dgGTGNightEntranceTex_MQ;
void* sGTGEntranceTextures_MQ[] = {
gGTGDayEntranceTex_MQ,
gGTGNightEntranceTex_MQ,
};
#define dgForestTempleDayEntranceTex_MQ "__OTR__scenes/mq/Bmori1_scene/gForestTempleDayEntranceTex"
static const ALIGN_ASSET(2) char gForestTempleDayEntranceTex_MQ[] = dgForestTempleDayEntranceTex_MQ;
#define dgForestTempleNightEntranceTex_MQ "__OTR__scenes/mq/Bmori1_scene/gForestTempleNightEntranceTex"
static const ALIGN_ASSET(2) char gForestTempleNightEntranceTex_MQ[] = dgForestTempleNightEntranceTex_MQ;
void* sForestTempleEntranceTextures_MQ[] = {
gForestTempleDayEntranceTex_MQ,
gForestTempleNightEntranceTex_MQ,
};
#define dgSpiritTempleDayEntranceTex_MQ "__OTR__scenes/mq/jyasinzou_scene/gSpiritTempleDayEntranceTex"
static const ALIGN_ASSET(2) char gSpiritTempleDayEntranceTex_MQ[] = dgSpiritTempleDayEntranceTex_MQ;
#define dgSpiritTempleNightEntranceTex_MQ "__OTR__scenes/mq/jyasinzou_scene/gSpiritTempleNightEntranceTex"
static const ALIGN_ASSET(2) char gSpiritTempleNightEntranceTex_MQ[] = dgSpiritTempleNightEntranceTex_MQ;
void* sSpiritTempleEntranceTextures_MQ[] = {
gSpiritTempleDayEntranceTex_MQ,
gSpiritTempleNightEntranceTex_MQ,
};
#endif

View File

@ -23,6 +23,7 @@
#include "overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.h"
#include "soh/mq_asset_hacks.h"
#include "soh/Enhancements/randomizer/adult_trade_shuffle.h"
#define ENTRANCE(scene, spawn, continueBgm, displayTitleCard, fadeIn, fadeOut) \
@ -1006,7 +1007,11 @@ void func_800995DC(PlayState* play) {
{ s32 pad; }
gSPSegmentLoadRes(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A2F8[gSaveContext.nightFlag]));
if (ResourceMgr_IsGameMasterQuest()) {
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A2F8_MQ[gSaveContext.nightFlag]));
} else {
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A2F8[gSaveContext.nightFlag]));
}
CLOSE_DISPS(play->state.gfxCtx);
}
@ -1046,8 +1051,13 @@ void func_80099878(PlayState* play) {
OPEN_DISPS(play->state.gfxCtx);
gameplayFrames = play->gameplayFrames;
gSPSegmentLoadRes(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(gDCEntranceTextures[gSaveContext.nightFlag]));
gSPSegmentLoadRes(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(sDCLavaFloorTextures[(s32)(gameplayFrames & 14) >> 1]));
if (ResourceMgr_IsGameMasterQuest()) {
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(gDCEntranceTextures_MQ[gSaveContext.nightFlag]));
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(sDCLavaFloorTextures_MQ[(s32)(gameplayFrames & 14) >> 1]));
} else {
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(gDCEntranceTextures[gSaveContext.nightFlag]));
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(sDCLavaFloorTextures[(s32)(gameplayFrames & 14) >> 1]));
}
gSPSegment(POLY_XLU_DISP++, 0x09,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, (gameplayFrames * 1) % 256, 0, 64, 32, 1, 0,
(gameplayFrames * 1) % 128, 64, 32));
@ -1301,7 +1311,11 @@ void func_8009AFE0(PlayState* play) {
{ s32 pad[2]; }
gSPSegmentLoadRes(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sThievesHideoutEntranceTextures[gSaveContext.nightFlag]));
if (ResourceMgr_IsGameMasterQuest()) {
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sThievesHideoutEntranceTextures_MQ[gSaveContext.nightFlag]));
} else {
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sThievesHideoutEntranceTextures[gSaveContext.nightFlag]));
}
CLOSE_DISPS(play->state.gfxCtx);
}
@ -1323,7 +1337,11 @@ void func_8009B0FC(PlayState* play) {
spAC = play->roomCtx.unk_74[1] & 0xFF;
gameplayFrames = play->gameplayFrames;
gSPSegmentLoadRes(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A330[gSaveContext.nightFlag]));
if (ResourceMgr_IsGameMasterQuest()) {
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A330_MQ[gSaveContext.nightFlag]));
} else {
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A330[gSaveContext.nightFlag]));
}
if (spB0 == 1) {
gSPSegment(POLY_OPA_DISP++, 0x08,
@ -1548,7 +1566,11 @@ void func_8009C3EC(PlayState* play) {
OPEN_DISPS(play->state.gfxCtx);
gameplayFrames = play->gameplayFrames;
gSPSegmentLoadRes(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sIceCavernEntranceTextures[gSaveContext.nightFlag]));
if (ResourceMgr_IsGameMasterQuest()) {
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sIceCavernEntranceTextures_MQ[gSaveContext.nightFlag]));
} else {
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sIceCavernEntranceTextures[gSaveContext.nightFlag]));
}
gSPSegment(POLY_OPA_DISP++, 0x09,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128, 32,
32, 1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
@ -1650,7 +1672,11 @@ void func_8009CC00(PlayState* play) {
OPEN_DISPS(play->state.gfxCtx);
gameplayFrames = play->gameplayFrames;
gSPSegmentLoadRes(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sGTGEntranceTextures[gSaveContext.nightFlag]));
if (ResourceMgr_IsGameMasterQuest()) {
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sGTGEntranceTextures_MQ[gSaveContext.nightFlag]));
} else {
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sGTGEntranceTextures[gSaveContext.nightFlag]));
}
gSPSegment(POLY_OPA_DISP++, 0x09,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128, 32,
32, 1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
@ -1746,7 +1772,11 @@ void func_8009D31C(PlayState* play) {
{ s32 pad[2]; }
gSPSegmentLoadRes(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sLonLonHouseEntranceTextures[gSaveContext.nightFlag]));
if (ResourceMgr_IsGameMasterQuest()) {
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sLonLonHouseEntranceTextures_MQ[gSaveContext.nightFlag]));
} else {
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sLonLonHouseEntranceTextures[gSaveContext.nightFlag]));
}
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
@ -1778,8 +1808,13 @@ void func_8009D438(PlayState* play) {
var = gSaveContext.nightFlag;
}
gSPSegmentLoadRes(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sGuardHouseView1Textures[var]));
gSPSegmentLoadRes(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(sGuardHouseView2Textures[var]));
if (ResourceMgr_IsGameMasterQuest()) {
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sGuardHouseView1Textures_MQ[var]));
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(sGuardHouseView2Textures_MQ[var]));
} else {
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sGuardHouseView1Textures[var]));
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(sGuardHouseView2Textures[var]));
}
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
@ -1823,7 +1858,11 @@ void func_8009D758(PlayState* play) {
OPEN_DISPS(play->state.gfxCtx);
gameplayFrames = play->gameplayFrames;
gSPSegmentLoadRes(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sForestTempleEntranceTextures[gSaveContext.nightFlag]));
if (ResourceMgr_IsGameMasterQuest()) {
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sForestTempleEntranceTextures_MQ[gSaveContext.nightFlag]));
} else {
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sForestTempleEntranceTextures[gSaveContext.nightFlag]));
}
gSPSegment(POLY_XLU_DISP++, 0x09,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128, 32,
32, 1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
@ -1853,7 +1892,11 @@ void func_8009D974(PlayState* play) {
{ s32 pad[2]; }
gSPSegmentLoadRes(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sSpiritTempleEntranceTextures[gSaveContext.nightFlag]));
if (ResourceMgr_IsGameMasterQuest()) {
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sSpiritTempleEntranceTextures_MQ[gSaveContext.nightFlag]));
} else {
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sSpiritTempleEntranceTextures[gSaveContext.nightFlag]));
}
CLOSE_DISPS(play->state.gfxCtx);
}
@ -1915,7 +1958,11 @@ void func_8009DD5C(PlayState* play) {
{ s32 pad[2]; }
gSPSegmentLoadRes(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sKakarikoWindowTextures[gSaveContext.nightFlag]));
if (ResourceMgr_IsGameMasterQuest()) {
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sKakarikoWindowTextures_MQ[gSaveContext.nightFlag]));
} else {
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sKakarikoWindowTextures[gSaveContext.nightFlag]));
}
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
@ -2050,8 +2097,12 @@ void func_8009E730(PlayState* play) {
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
gSPSegmentLoadRes(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sZorasDomainEntranceTextures[gSaveContext.nightFlag]));
if (ResourceMgr_IsGameMasterQuest()) {
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sZorasDomainEntranceTextures_MQ[gSaveContext.nightFlag]));
} else {
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sZorasDomainEntranceTextures[gSaveContext.nightFlag]));
}
{ s32 pad[2]; }
@ -2172,6 +2223,7 @@ void func_8009F074(PlayState* play) {
CLOSE_DISPS(play->state.gfxCtx);
}
// walls of GF room where they throw you when you get caught
void* D_8012A380[] = {
gSpot12_009678Tex,
gSpot12_00DE78Tex,
@ -2183,7 +2235,11 @@ void func_8009F1B4(PlayState* play) {
{ s32 pad[2]; }
gSPSegmentLoadRes(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A380[gSaveContext.nightFlag]));
if (ResourceMgr_IsGameMasterQuest()) {
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A380_MQ[gSaveContext.nightFlag]));
} else {
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A380[gSaveContext.nightFlag]));
}
CLOSE_DISPS(play->state.gfxCtx);
}
@ -2316,7 +2372,11 @@ void func_8009F9D0(PlayState* play) {
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
gSPSegmentLoadRes(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sGoronCityEntranceTextures[gSaveContext.nightFlag]));
if (ResourceMgr_IsGameMasterQuest()) {
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sGoronCityEntranceTextures_MQ[gSaveContext.nightFlag]));
} else {
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sGoronCityEntranceTextures[gSaveContext.nightFlag]));
}
{ s32 pad[2]; }
@ -2334,7 +2394,11 @@ void func_8009FB74(PlayState* play) {
{ s32 pad[2]; }
gSPSegmentLoadRes(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sLonLonRanchWindowTextures[gSaveContext.nightFlag]));
if (ResourceMgr_IsGameMasterQuest()) {
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sLonLonRanchWindowTextures_MQ[gSaveContext.nightFlag]));
} else {
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sLonLonRanchWindowTextures[gSaveContext.nightFlag]));
}
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);