2020-10-03 15:22:44 +00:00
|
|
|
#include "global.h"
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2021-11-09 02:15:37 +00:00
|
|
|
#include "scenes/overworld/spot00/spot00_scene.h"
|
2021-08-31 23:00:55 +00:00
|
|
|
#include "scenes/overworld/spot00/spot00_room_0.h"
|
2021-11-09 02:15:37 +00:00
|
|
|
#include "scenes/overworld/spot01/spot01_scene.h"
|
|
|
|
#include "scenes/overworld/spot07/spot07_scene.h"
|
|
|
|
#include "scenes/overworld/spot12/spot12_scene.h"
|
|
|
|
#include "scenes/overworld/spot16/spot16_scene.h"
|
2021-08-31 23:00:55 +00:00
|
|
|
#include "scenes/overworld/spot16/spot16_room_0.h"
|
2021-11-09 02:15:37 +00:00
|
|
|
#include "scenes/overworld/spot18/spot18_scene.h"
|
|
|
|
#include "scenes/overworld/spot20/spot20_scene.h"
|
|
|
|
#include "scenes/overworld/souko/souko_scene.h"
|
|
|
|
|
|
|
|
#include "scenes/dungeons/men/men_scene.h"
|
|
|
|
#include "scenes/dungeons/ddan/ddan_scene.h"
|
|
|
|
#include "scenes/dungeons/ydan/ydan_scene.h"
|
|
|
|
#include "scenes/dungeons/Bmori1/Bmori1_scene.h"
|
|
|
|
#include "scenes/dungeons/MIZUsin/MIZUsin_scene.h"
|
|
|
|
#include "scenes/dungeons/gerudoway/gerudoway_scene.h"
|
|
|
|
#include "scenes/dungeons/jyasinzou/jyasinzou_scene.h"
|
|
|
|
#include "scenes/indoors/miharigoya/miharigoya_scene.h"
|
|
|
|
#include "scenes/dungeons/ice_doukutu/ice_doukutu_scene.h"
|
2021-08-31 23:00:55 +00:00
|
|
|
|
2021-12-11 01:21:19 +00:00
|
|
|
#include "overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.h"
|
|
|
|
|
2022-05-09 17:45:53 +00:00
|
|
|
// Entrance Table definition
|
|
|
|
#define DEFINE_ENTRANCE(_0, scene, spawn, continueBgm, displayTitleCard, fadeIn, fadeOut) \
|
|
|
|
{ scene, spawn, \
|
|
|
|
((continueBgm & 1) << 15) | ((displayTitleCard & 1) << 14) | ((fadeIn & 0x7F) << 7) | (fadeOut & 0x7F) },
|
2020-04-16 21:36:12 +00:00
|
|
|
|
2020-03-22 21:19:43 +00:00
|
|
|
EntranceInfo gEntranceTable[] = {
|
2022-05-09 17:45:53 +00:00
|
|
|
#include "tables/entrance_table.h"
|
2020-03-17 04:31:30 +00:00
|
|
|
};
|
|
|
|
|
2022-05-09 17:45:53 +00:00
|
|
|
#undef DEFINE_ENTRANCE
|
|
|
|
|
2022-02-01 19:36:09 +00:00
|
|
|
// Linker symbol declarations (used in the table below)
|
|
|
|
#define DEFINE_SCENE(name, title, _2, _3, _4, _5) \
|
|
|
|
DECLARE_ROM_SEGMENT(name) \
|
|
|
|
DECLARE_ROM_SEGMENT(title)
|
|
|
|
|
|
|
|
#include "tables/scene_table.h"
|
|
|
|
|
|
|
|
#undef DEFINE_SCENE
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2022-02-01 19:36:09 +00:00
|
|
|
// Scene Table definition
|
|
|
|
#define DEFINE_SCENE(name, title, _2, config, unk_10, unk_12) \
|
|
|
|
{ ROM_FILE(name), ROM_FILE(title), unk_10, config, unk_12, 0 },
|
|
|
|
|
|
|
|
// Handle `none` as a special case for scenes without a title card
|
|
|
|
#define _noneSegmentRomStart NULL
|
|
|
|
#define _noneSegmentRomEnd NULL
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2021-08-15 23:15:58 +00:00
|
|
|
SceneTableEntry gSceneTable[] = {
|
2022-02-01 19:36:09 +00:00
|
|
|
#include "tables/scene_table.h"
|
2020-03-17 04:31:30 +00:00
|
|
|
};
|
|
|
|
|
2022-02-01 19:36:09 +00:00
|
|
|
#undef _noneSegmentRomStart
|
|
|
|
#undef _noneSegmentRomEnd
|
|
|
|
|
|
|
|
#undef DEFINE_SCENE
|
|
|
|
|
2020-03-22 21:19:43 +00:00
|
|
|
Gfx sDefaultDisplayList[] = {
|
2020-03-29 16:43:45 +00:00
|
|
|
gsSPSegment(0x08, gEmptyDL),
|
|
|
|
gsSPSegment(0x09, gEmptyDL),
|
|
|
|
gsSPSegment(0x0A, gEmptyDL),
|
|
|
|
gsSPSegment(0x0B, gEmptyDL),
|
|
|
|
gsSPSegment(0x0C, gEmptyDL),
|
|
|
|
gsSPSegment(0x0D, gEmptyDL),
|
2020-03-17 04:31:30 +00:00
|
|
|
gsDPPipeSync(),
|
2020-07-17 01:37:53 +00:00
|
|
|
gsDPSetPrimColor(0, 0, 128, 128, 128, 128),
|
|
|
|
gsDPSetEnvColor(128, 128, 128, 128),
|
2020-03-17 04:31:30 +00:00
|
|
|
gsSPEndDisplayList(),
|
|
|
|
};
|
|
|
|
|
2022-05-09 17:45:53 +00:00
|
|
|
void Scene_SetTransitionForNextEntrance(GlobalContext* globalCtx) {
|
|
|
|
s16 entranceIndex;
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2021-08-21 23:12:57 +00:00
|
|
|
if (!IS_DAY) {
|
|
|
|
if (!LINK_IS_ADULT) {
|
2022-05-09 17:45:53 +00:00
|
|
|
entranceIndex = globalCtx->nextEntranceIndex + 1;
|
2020-03-22 21:19:43 +00:00
|
|
|
} else {
|
2022-05-09 17:45:53 +00:00
|
|
|
entranceIndex = globalCtx->nextEntranceIndex + 3;
|
2020-03-22 21:19:43 +00:00
|
|
|
}
|
|
|
|
} else {
|
2021-08-21 23:12:57 +00:00
|
|
|
if (!LINK_IS_ADULT) {
|
2022-05-09 17:45:53 +00:00
|
|
|
entranceIndex = globalCtx->nextEntranceIndex;
|
2020-03-22 21:19:43 +00:00
|
|
|
} else {
|
2022-05-09 17:45:53 +00:00
|
|
|
entranceIndex = globalCtx->nextEntranceIndex + 2;
|
2020-03-22 21:19:43 +00:00
|
|
|
}
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
2022-05-09 17:45:53 +00:00
|
|
|
globalCtx->transitionType = gEntranceTable[entranceIndex].field & 0x7F; // Fade out
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 0
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_80099550(GlobalContext* globalCtx) {
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 4725);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPDisplayList(POLY_OPA_DISP++, sDefaultDisplayList);
|
|
|
|
gSPDisplayList(POLY_XLU_DISP++, sDefaultDisplayList);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 4735);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
2021-11-09 02:15:37 +00:00
|
|
|
void* D_8012A2F8[] = {
|
|
|
|
gYdanTex_00BA18,
|
|
|
|
gYdanTex_00CA18,
|
|
|
|
};
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
// Scene Draw Config 19
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_800995DC(GlobalContext* globalCtx) {
|
2021-02-14 00:49:40 +00:00
|
|
|
u32 gameplayFrames = globalCtx->gameplayFrames;
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 4763);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - (gameplayFrames % 128), (gameplayFrames * 1) % 128,
|
|
|
|
32, 32, 1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2022-05-07 14:10:06 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A2F8[((void)0, gSaveContext.nightFlag)]));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 4783);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 28
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_80099760(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 4845);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, (gameplayFrames * 2) % 256, 0, 64, 32, 1, 0,
|
|
|
|
(gameplayFrames * 2) % 128, 64, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 4859);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
2021-11-09 02:15:37 +00:00
|
|
|
void* gDCEntranceTextures[] = {
|
|
|
|
gDCDayEntranceTex,
|
|
|
|
gDCNightEntranceTex,
|
|
|
|
};
|
|
|
|
void* sDCLavaFloorTextures[] = {
|
|
|
|
gDCLavaFloor1Tex, gDCLavaFloor2Tex, gDCLavaFloor3Tex, gDCLavaFloor4Tex,
|
|
|
|
gDCLavaFloor5Tex, gDCLavaFloor6Tex, gDCLavaFloor7Tex, gDCLavaFloor8Tex,
|
|
|
|
};
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2021-12-11 01:21:19 +00:00
|
|
|
// Scene Draw Config 20 - Dodongo's Cavern
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_80099878(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
s32 pad;
|
2021-12-11 01:21:19 +00:00
|
|
|
Gfx* displayListHead = Graph_Alloc(globalCtx->state.gfxCtx, 2 * sizeof(Gfx[3]));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 4905);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2022-05-07 14:10:06 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(gDCEntranceTextures[((void)0, gSaveContext.nightFlag)]));
|
2021-11-09 02:15:37 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(sDCLavaFloorTextures[(s32)(gameplayFrames & 14) >> 1]));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, (gameplayFrames * 1) % 256, 0, 64, 32, 1, 0,
|
|
|
|
(gameplayFrames * 1) % 128, 64, 32));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x0A,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, (gameplayFrames * 1) % 128, 32, 32, 1, 0,
|
|
|
|
(gameplayFrames * 2) % 128, 32, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x0B, displayListHead);
|
2020-03-17 04:31:30 +00:00
|
|
|
gDPPipeSync(displayListHead++);
|
2021-12-11 01:21:19 +00:00
|
|
|
gDPSetEnvColor(displayListHead++, 255, 255, 255, globalCtx->roomCtx.unk_74[BGDODOAGO_EYE_LEFT]);
|
2020-03-17 04:31:30 +00:00
|
|
|
gSPEndDisplayList(displayListHead++);
|
2021-12-11 01:21:19 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x0C, displayListHead);
|
2020-03-17 04:31:30 +00:00
|
|
|
gDPPipeSync(displayListHead++);
|
2021-12-11 01:21:19 +00:00
|
|
|
gDPSetEnvColor(displayListHead++, 255, 255, 255, globalCtx->roomCtx.unk_74[BGDODOAGO_EYE_RIGHT]);
|
2020-03-17 04:31:30 +00:00
|
|
|
gSPEndDisplayList(displayListHead);
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 4956);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 30
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_80099BD8(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
f32 temp;
|
2021-02-14 00:49:40 +00:00
|
|
|
Gfx* displayListHead = Graph_Alloc(globalCtx->state.gfxCtx, 18 * sizeof(Gfx));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5069);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2021-08-15 23:15:58 +00:00
|
|
|
temp = globalCtx->roomCtx.unk_74[0] / 255.0f;
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08, displayListHead);
|
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x08, displayListHead);
|
2020-07-17 01:37:53 +00:00
|
|
|
gDPSetPrimColor(displayListHead++, 0, 0, 255 - (u8)(185.0f * temp), 255 - (u8)(145.0f * temp),
|
|
|
|
255 - (u8)(105.0f * temp), 255);
|
2020-03-17 04:31:30 +00:00
|
|
|
gSPEndDisplayList(displayListHead++);
|
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x09, displayListHead);
|
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x09, displayListHead);
|
2020-07-17 01:37:53 +00:00
|
|
|
gDPSetPrimColor(displayListHead++, 0, 0, 76 + (u8)(6.0f * temp), 76 + (u8)(34.0f * temp), 76 + (u8)(74.0f * temp),
|
|
|
|
255);
|
2020-03-17 04:31:30 +00:00
|
|
|
gSPEndDisplayList(displayListHead++);
|
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x0A, displayListHead);
|
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x0A, displayListHead);
|
2020-03-17 04:31:30 +00:00
|
|
|
gDPPipeSync(displayListHead++);
|
2021-08-15 23:15:58 +00:00
|
|
|
gDPSetEnvColor(displayListHead++, 0, 0, 0, globalCtx->roomCtx.unk_74[0]);
|
2020-03-17 04:31:30 +00:00
|
|
|
gSPEndDisplayList(displayListHead++);
|
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x0B, displayListHead);
|
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x0B, displayListHead);
|
2020-07-17 01:37:53 +00:00
|
|
|
gDPSetPrimColor(displayListHead++, 0, 0, 89 + (u8)(166.0f * temp), 89 + (u8)(166.0f * temp),
|
|
|
|
89 + (u8)(166.0f * temp), 255);
|
2020-03-17 04:31:30 +00:00
|
|
|
gDPPipeSync(displayListHead++);
|
2021-08-15 23:15:58 +00:00
|
|
|
gDPSetEnvColor(displayListHead++, 0, 0, 0, globalCtx->roomCtx.unk_74[0]);
|
2020-03-17 04:31:30 +00:00
|
|
|
gSPEndDisplayList(displayListHead++);
|
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x0C, displayListHead);
|
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x0C, displayListHead);
|
2020-07-17 01:37:53 +00:00
|
|
|
gDPSetPrimColor(displayListHead++, 0, 0, 255 + (u8)(179.0f * temp), 255 + (u8)(179.0f * temp),
|
|
|
|
255 + (u8)(179.0f * temp), 255);
|
2020-03-17 04:31:30 +00:00
|
|
|
gDPPipeSync(displayListHead++);
|
2021-08-15 23:15:58 +00:00
|
|
|
gDPSetEnvColor(displayListHead++, 0, 0, 0, globalCtx->roomCtx.unk_74[0]);
|
2020-03-17 04:31:30 +00:00
|
|
|
gSPEndDisplayList(displayListHead++);
|
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x0D, displayListHead);
|
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x0D, displayListHead);
|
2020-03-17 04:31:30 +00:00
|
|
|
gDPPipeSync(displayListHead++);
|
2021-08-15 23:15:58 +00:00
|
|
|
gDPSetEnvColor(displayListHead++, 0, 0, 0, globalCtx->roomCtx.unk_74[1]);
|
2020-03-17 04:31:30 +00:00
|
|
|
gSPEndDisplayList(displayListHead);
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5145);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-04-16 21:36:12 +00:00
|
|
|
if (gSaveContext.sceneSetupIndex == 5) {
|
2021-09-20 16:51:35 +00:00
|
|
|
gCustomLensFlareOn = true;
|
|
|
|
gCustomLensFlarePos.x = -20.0f;
|
|
|
|
gCustomLensFlarePos.y = 1220.0f;
|
|
|
|
gCustomLensFlarePos.z = -684.0f;
|
2021-12-02 22:31:39 +00:00
|
|
|
gLensFlareScale = 10;
|
|
|
|
gLensFlareColorIntensity = 8.0f;
|
|
|
|
gLensFlareScreenFillAlpha = 200;
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 31
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009A45C(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5171);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-11-19 21:49:08 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TexScroll(globalCtx->state.gfxCtx, 0, (gameplayFrames * 1) % 64, 256, 16));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - (gameplayFrames % 128), (gameplayFrames * 1) % 128,
|
|
|
|
32, 32, 1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
|
2020-03-22 21:19:43 +00:00
|
|
|
gSPSegment(
|
2020-10-29 21:31:09 +00:00
|
|
|
POLY_OPA_DISP++, 0x0A,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, 0, 32, 32, 1, 0, 127 - (gameplayFrames * 1) % 128, 32, 32));
|
2020-11-19 21:49:08 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x0B, Gfx_TexScroll(globalCtx->state.gfxCtx, 0, (gameplayFrames * 1) % 128, 32, 32));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x0C,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, (gameplayFrames * 50) % 2048, 8, 512, 1, 0,
|
|
|
|
(gameplayFrames * 60) % 2048, 8, 512));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x0D,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, 0, 32, 64, 1, 0, (gameplayFrames * 1) % 128, 32, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5212);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 32
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009A798(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5226);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-11-19 21:49:08 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TexScroll(globalCtx->state.gfxCtx, 0, (gameplayFrames * 2) % 256, 64, 64));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x0A,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128, 32,
|
|
|
|
32, 1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - (gameplayFrames * 1) % 128,
|
|
|
|
(gameplayFrames * 1) % 256, 32, 64, 1, 0, 0, 32, 128));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5264);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 33
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009A9DC(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5278);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 3) % 256, 32,
|
|
|
|
64, 1, gameplayFrames % 128, (gameplayFrames * 3) % 256, 32, 64));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 3) % 128, 32,
|
|
|
|
32, 1, gameplayFrames % 128, (gameplayFrames * 3) % 128, 32, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5301);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 48
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009AB98(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5317);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TexScroll(globalCtx->state.gfxCtx, 0, gameplayFrames % 64, 256, 16));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5330);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 39
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009ACA8(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5346);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 3) % 128, 32,
|
|
|
|
32, 1, gameplayFrames % 128, (gameplayFrames * 3) % 128, 32, 32));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x09, Gfx_TexScroll(globalCtx->state.gfxCtx, 0, gameplayFrames % 64, 256, 16));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5367);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 24
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009AE30(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5384);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
|
|
|
|
2020-03-22 21:19:43 +00:00
|
|
|
if (globalCtx->sceneNum == SCENE_HAKADAN_BS) {
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, (gameplayFrames * 2) % 128, 0, 32, 32, 1,
|
|
|
|
(gameplayFrames * 2) % 128, 0, 32, 32));
|
2020-03-22 21:19:43 +00:00
|
|
|
} else {
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, (gameplayFrames * 2) % 128, 0, 32, 32, 1,
|
|
|
|
(gameplayFrames * 2) % 128, 0, 32, 32));
|
2020-03-22 21:19:43 +00:00
|
|
|
}
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5416);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
2021-11-09 02:15:37 +00:00
|
|
|
void* sThievesHideoutEntranceTextures[] = {
|
|
|
|
gThievesHideoutDayEntranceTex,
|
|
|
|
gThievesHideoutNightEntranceTex,
|
|
|
|
};
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
// Scene Draw Config 40
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009AFE0(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5490);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-11-19 21:49:08 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x09, Gfx_TexScroll(globalCtx->state.gfxCtx, 0, (gameplayFrames * 3) % 128, 32, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2022-05-07 14:10:06 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08,
|
|
|
|
SEGMENTED_TO_VIRTUAL(sThievesHideoutEntranceTextures[((void)0, gSaveContext.nightFlag)]));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5507);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
2021-11-09 02:15:37 +00:00
|
|
|
void* D_8012A330[] = {
|
|
|
|
gWaterTempleDayEntranceTex,
|
|
|
|
gWaterTempleNightEntranceTex,
|
|
|
|
};
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2021-11-09 02:15:37 +00:00
|
|
|
// Scene Draw Config 23 (Water Temple)
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009B0FC(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
s32 spB0;
|
|
|
|
s32 spAC;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5535);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-03-22 21:19:43 +00:00
|
|
|
if (1) {} // Necessary to match
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2021-08-15 23:15:58 +00:00
|
|
|
spB0 = (globalCtx->roomCtx.unk_74[1] >> 8) & 0xFF;
|
|
|
|
spAC = globalCtx->roomCtx.unk_74[1] & 0xFF;
|
2020-03-17 04:31:30 +00:00
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
|
|
|
|
2022-05-07 14:10:06 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A330[((void)0, gSaveContext.nightFlag)]));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-03-22 21:19:43 +00:00
|
|
|
if (spB0 == 1) {
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScrollEnvColor(globalCtx->state.gfxCtx, 0, gameplayFrames * 1, 0, 32, 32, 1, 0, 0, 32, 32,
|
|
|
|
0, 0, 0, spAC));
|
2020-03-22 21:19:43 +00:00
|
|
|
} else if (spB0 < 1) {
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScrollEnvColor(globalCtx->state.gfxCtx, 0, gameplayFrames * 1, 0, 32, 32, 1, 0, 0, 32, 32,
|
2020-07-17 01:37:53 +00:00
|
|
|
0, 0, 0, 255));
|
2020-03-22 21:19:43 +00:00
|
|
|
} else {
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScrollEnvColor(globalCtx->state.gfxCtx, 0, gameplayFrames * 1, 0, 32, 32, 1, 0, 0, 32, 32,
|
2020-07-17 01:37:53 +00:00
|
|
|
0, 0, 0, 160));
|
2020-03-22 21:19:43 +00:00
|
|
|
}
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-03-22 21:19:43 +00:00
|
|
|
if (spB0 == 2) {
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScrollEnvColor(globalCtx->state.gfxCtx, 0, gameplayFrames * 1, 0, 32, 32, 1, 0, 0, 32, 32,
|
|
|
|
0, 0, 0, spAC));
|
2020-03-22 21:19:43 +00:00
|
|
|
} else if (spB0 < 2) {
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScrollEnvColor(globalCtx->state.gfxCtx, 0, gameplayFrames * 1, 0, 32, 32, 1, 0, 0, 32, 32,
|
2020-07-17 01:37:53 +00:00
|
|
|
0, 0, 0, 255));
|
2020-03-22 21:19:43 +00:00
|
|
|
} else {
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScrollEnvColor(globalCtx->state.gfxCtx, 0, gameplayFrames * 1, 0, 32, 32, 1, 0, 0, 32, 32,
|
2020-07-17 01:37:53 +00:00
|
|
|
0, 0, 0, 160));
|
2020-03-22 21:19:43 +00:00
|
|
|
}
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-03-22 21:19:43 +00:00
|
|
|
if (spB0 != 0) {
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x0A,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScrollEnvColor(globalCtx->state.gfxCtx, 0, gameplayFrames * 1, 0, 32, 32, 1, 0, 0, 32, 32,
|
2020-07-17 01:37:53 +00:00
|
|
|
0, 0, 0, 160));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x0B,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScrollEnvColor(globalCtx->state.gfxCtx, 0, gameplayFrames * 3, 0, 32, 32, 1, 0, 0, 32, 32,
|
2020-07-17 01:37:53 +00:00
|
|
|
0, 0, 0, 180));
|
2020-03-22 21:19:43 +00:00
|
|
|
} else {
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x0A,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScrollEnvColor(globalCtx->state.gfxCtx, 0, (gameplayFrames * 1) % 128, 0, 32, 32, 1, 0, 0,
|
2020-07-17 01:37:53 +00:00
|
|
|
32, 32, 0, 0, 0, 160 + (s32)((spAC / 200.0f) * 95.0f)));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x0B,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScrollEnvColor(globalCtx->state.gfxCtx, 0, gameplayFrames * 3, 0, 32, 32, 1, 0, 0, 32, 32,
|
2020-07-17 01:37:53 +00:00
|
|
|
0, 0, 0, 185 + (s32)((spAC / 200.0f) * 70.0f)));
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x0C,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScrollEnvColor(globalCtx->state.gfxCtx, 0, gameplayFrames * 1, gameplayFrames * 1, 32, 32, 1,
|
2020-07-17 01:37:53 +00:00
|
|
|
0, 127 - (gameplayFrames * 1), 32, 32, 0, 0, 0, 128));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x0D,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScrollEnvColor(globalCtx->state.gfxCtx, 0, gameplayFrames * 4, 0, 32, 32, 1,
|
2020-07-17 01:37:53 +00:00
|
|
|
gameplayFrames * 4, 0, 32, 32, 0, 0, 0, 128));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5644);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 29
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009B86C(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5791);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, gameplayFrames * 1, 0, 32, 32, 1, 0, 0, 32, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
2021-08-15 23:15:58 +00:00
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, globalCtx->roomCtx.unk_74[0]);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 145);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5808);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 34
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009B9BC(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5822);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x08, Gfx_TexScroll(globalCtx->state.gfxCtx, 0, gameplayFrames % 64, 4, 16));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5836);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 35
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009BAA4(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5850);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 3) % 128, 32,
|
|
|
|
32, 1, gameplayFrames % 128, (gameplayFrames * 3) % 128, 32, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-03-22 21:19:43 +00:00
|
|
|
if (globalCtx->sceneNum == SCENE_HAIRAL_NIWA) {
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TexScroll(globalCtx->state.gfxCtx, 0, (gameplayFrames * 10) % 256, 32, 64));
|
2020-03-22 21:19:43 +00:00
|
|
|
}
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5876);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 36
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009BC44(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
s8 sp83;
|
|
|
|
|
2020-03-22 21:19:43 +00:00
|
|
|
if (1) {} // Necessary to match
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
sp83 = coss((globalCtx->gameplayFrames * 1500) & 0xFFFF) >> 8;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5894);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
|
|
|
|
2020-03-22 21:19:43 +00:00
|
|
|
if (globalCtx->sceneNum == SCENE_GANON_TOU) {
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TexScroll(globalCtx->state.gfxCtx, 0, (gameplayFrames * 1) % 256, 64, 64));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, 255 - (gameplayFrames * 1) % 256, 64, 64, 1, 0,
|
|
|
|
(gameplayFrames * 1) % 256, 64, 64));
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x0B,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 255 - (gameplayFrames * 1) % 128,
|
|
|
|
(gameplayFrames * 1) % 128, 32, 32, 1, (gameplayFrames * 1) % 128,
|
|
|
|
(gameplayFrames * 1) % 128, 32, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
sp83 = (sp83 >> 1) + 192;
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, sp83, sp83, sp83, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5930);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Screen Shake for Ganon's Tower Collapse
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009BEEC(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
s32 var;
|
|
|
|
|
2020-03-22 21:19:43 +00:00
|
|
|
if (globalCtx->gameplayFrames % 128 == 13) {
|
2021-08-31 10:22:03 +00:00
|
|
|
var = Quake_Add(GET_ACTIVE_CAM(globalCtx), 2);
|
2020-03-29 01:24:39 +00:00
|
|
|
Quake_SetSpeed(var, 10000);
|
|
|
|
Quake_SetQuakeValues(var, 4, 0, 0, 0);
|
|
|
|
Quake_SetCountdown(var, 127);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
2020-12-26 10:44:53 +00:00
|
|
|
if ((globalCtx->gameplayFrames % 64 == 0) && (Rand_ZeroOne() > 0.6f)) {
|
2021-08-31 10:22:03 +00:00
|
|
|
var = Quake_Add(GET_ACTIVE_CAM(globalCtx), 3);
|
2020-12-26 10:44:53 +00:00
|
|
|
Quake_SetSpeed(var, 32000.0f + (Rand_ZeroOne() * 3000.0f));
|
|
|
|
Quake_SetQuakeValues(var, 10.0f - (Rand_ZeroOne() * 9.0f), 0, 0, 0);
|
|
|
|
Quake_SetCountdown(var, 48.0f - (Rand_ZeroOne() * 15.0f));
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 38
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009C0AC(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
s8 sp7B;
|
|
|
|
|
2020-03-22 21:19:43 +00:00
|
|
|
if (1) {} // Necessary to match
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
sp7B = coss((globalCtx->gameplayFrames * 1500) & 0xFFFF) >> 8;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5968);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, (gameplayFrames * 1) % 512, 64, 128, 1, 0,
|
|
|
|
511 - (gameplayFrames * 1) % 512, 64, 128));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, (gameplayFrames * 1) % 256, 32, 64, 1, 0,
|
|
|
|
255 - (gameplayFrames * 1) % 256, 32, 64));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x0A,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, (gameplayFrames * 20) % 2048, 16, 512, 1, 0,
|
|
|
|
(gameplayFrames * 30) % 2048, 16, 512));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
sp7B = (sp7B >> 1) + 192;
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, sp7B, sp7B, sp7B, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6004);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-03-22 21:19:43 +00:00
|
|
|
if (Flags_GetSwitch(globalCtx, 0x37)) {
|
|
|
|
if ((globalCtx->sceneNum == SCENE_GANON_DEMO) || (globalCtx->sceneNum == SCENE_GANON_FINAL) ||
|
|
|
|
(globalCtx->sceneNum == SCENE_GANON_SONOGO) || (globalCtx->sceneNum == SCENE_GANONTIKA_SONOGO)) {
|
2020-03-17 04:31:30 +00:00
|
|
|
func_8009BEEC(globalCtx);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-11-09 02:15:37 +00:00
|
|
|
void* sIceCavernEntranceTextures[] = {
|
|
|
|
gIceCavernDayEntranceTex,
|
|
|
|
gIceCavernNightEntranceTex,
|
|
|
|
};
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
// Scene Draw Config 37
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009C3EC(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-03-22 21:19:43 +00:00
|
|
|
if (0) {} // Necessary to match
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6042);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2022-05-07 14:10:06 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08,
|
|
|
|
SEGMENTED_TO_VIRTUAL(sIceCavernEntranceTextures[((void)0, gSaveContext.nightFlag)]));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128, 32,
|
|
|
|
32, 1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x0A,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128, 32,
|
|
|
|
32, 1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6076);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 42
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009C608(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6151);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-11-19 21:49:08 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TexScroll(globalCtx->state.gfxCtx, 0, (gameplayFrames * 1) % 64, 256, 16));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, (gameplayFrames * 60) % 2048, 8, 512, 1, 0,
|
|
|
|
(gameplayFrames * 50) % 2048, 8, 512));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x0A,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - (gameplayFrames * 1) % 128, 0, 32, 32, 1,
|
|
|
|
(gameplayFrames * 1) % 128, 0, 32, 32));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x0B,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, 1023 - (gameplayFrames * 6) % 1024, 16, 256, 1, 0,
|
|
|
|
1023 - (gameplayFrames * 3) % 1024, 16, 256));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6187);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 43
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009C8B8(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6201);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, 0, 32, 32, 1, 0, (gameplayFrames * 1) % 128, 32, 32));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x0A,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128, 32,
|
|
|
|
32, 1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TexScroll(globalCtx->state.gfxCtx, 0, 255 - (gameplayFrames * 10) % 256, 32, 64));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6232);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 47
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009CAC0(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6249);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128, 32,
|
|
|
|
32, 1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6264);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
2021-11-09 02:15:37 +00:00
|
|
|
void* sGTGEntranceTextures[] = {
|
|
|
|
gGTGDayEntranceTex,
|
|
|
|
gGTGNightEntranceTex,
|
|
|
|
};
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
// Scene Draw Config 27
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009CC00(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-03-22 21:19:43 +00:00
|
|
|
if (0) {} // Necessary to match
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6290);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2022-05-07 14:10:06 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sGTGEntranceTextures[((void)0, gSaveContext.nightFlag)]));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128, 32,
|
|
|
|
32, 1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x0A,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128, 32,
|
|
|
|
32, 1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6320);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx* Gfx_TwoTexScrollPrimColor(GraphicsContext* gfxCtx, s32 tile1, u32 x1, u32 y1, s32 width1, s32 height1, s32 tile2,
|
|
|
|
u32 x2, u32 y2, s32 width2, s32 height2, s32 r, s32 g, s32 b, s32 a) {
|
2020-03-17 04:31:30 +00:00
|
|
|
Gfx* displayList = Graph_Alloc(gfxCtx, 10 * sizeof(Gfx));
|
|
|
|
|
|
|
|
x1 %= 2048;
|
|
|
|
y1 %= 2048;
|
|
|
|
x2 %= 2048;
|
|
|
|
y2 %= 2048;
|
|
|
|
|
|
|
|
gDPTileSync(displayList);
|
2020-03-22 21:19:43 +00:00
|
|
|
gDPSetTileSize(displayList + 1, tile1, x1, y1, (x1 + ((width1 - 1) << 2)), (y1 + ((height1 - 1) << 2)));
|
|
|
|
gDPTileSync(displayList + 2);
|
|
|
|
gDPSetTileSize(displayList + 3, tile2, x2, y2, (x2 + ((width2 - 1) << 2)), (y2 + ((height2 - 1) << 2)));
|
2020-03-29 16:43:45 +00:00
|
|
|
gDPSetPrimColor(displayList + 4, 0, 0, r, g, b, a);
|
2020-03-22 21:19:43 +00:00
|
|
|
gSPEndDisplayList(displayList + 5);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
return displayList;
|
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 50
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009CF84(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6433);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScrollPrimColor(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128,
|
|
|
|
(gameplayFrames * 1) % 128, 32, 32, 1, gameplayFrames % 128,
|
2020-07-17 01:37:53 +00:00
|
|
|
(gameplayFrames * 1) % 128, 32, 32, 255, 255, 255,
|
2021-08-15 23:15:58 +00:00
|
|
|
globalCtx->roomCtx.unk_74[0] + 127));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6449);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 41
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009D0E8(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6463);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TexScroll(globalCtx->state.gfxCtx, 127 - (gameplayFrames * 4) % 128, 0, 32, 32));
|
2020-11-19 21:49:08 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x09, Gfx_TexScroll(globalCtx->state.gfxCtx, 0, (gameplayFrames * 5) % 64, 16, 16));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x0A,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TexScroll(globalCtx->state.gfxCtx, 0, 63 - (gameplayFrames * 2) % 64, 16, 16));
|
2020-03-22 21:19:43 +00:00
|
|
|
gSPSegment(
|
2020-10-29 21:31:09 +00:00
|
|
|
POLY_XLU_DISP++, 0x0B,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, 127 - (gameplayFrames * 3) % 128, 32, 32, 1, 0, 0, 32, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6491);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
2021-11-09 02:15:37 +00:00
|
|
|
void* sLonLonHouseEntranceTextures[] = {
|
|
|
|
gLonLonHouseDayEntranceTex,
|
|
|
|
gLonLonHouseNightEntranceTex,
|
|
|
|
};
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
// Scene Draw Config 44
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009D31C(GlobalContext* globalCtx) {
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6515);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2022-05-07 14:10:06 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08,
|
|
|
|
SEGMENTED_TO_VIRTUAL(sLonLonHouseEntranceTextures[((void)0, gSaveContext.nightFlag)]));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6528);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
2021-11-09 02:15:37 +00:00
|
|
|
void* sGuardHouseView2Textures[] = {
|
|
|
|
gGuardHouseOutSideView1DayTex,
|
|
|
|
gGuardHouseOutSideView1NightTex,
|
|
|
|
};
|
|
|
|
void* sGuardHouseView1Textures[] = {
|
|
|
|
gGuardHouseOutSideView2DayTex,
|
|
|
|
gGuardHouseOutSideView2NightTex,
|
|
|
|
};
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
// Scene Draw Config 45
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009D438(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
s32 var;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6560);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-03-22 21:19:43 +00:00
|
|
|
if (LINK_IS_ADULT) {
|
2020-03-17 04:31:30 +00:00
|
|
|
var = 1;
|
2020-03-22 21:19:43 +00:00
|
|
|
} else {
|
2020-04-16 21:36:12 +00:00
|
|
|
var = gSaveContext.nightFlag;
|
2020-03-22 21:19:43 +00:00
|
|
|
}
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2021-11-09 02:15:37 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sGuardHouseView1Textures[var]));
|
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(sGuardHouseView2Textures[var]));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6581);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 46
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009D5B4(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6595);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-11-19 21:49:08 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x08, Gfx_TexScroll(globalCtx->state.gfxCtx, 0, (gameplayFrames * 3) % 128, 32, 32));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, 1023 - (gameplayFrames * 3) % 1024, 16, 256, 1, 0,
|
|
|
|
1023 - (gameplayFrames * 6) % 1024, 16, 256));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6615);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
2021-11-09 02:15:37 +00:00
|
|
|
void* sForestTempleEntranceTextures[] = {
|
|
|
|
gForestTempleDayEntranceTex,
|
|
|
|
gForestTempleNightEntranceTex,
|
|
|
|
};
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
// Scene Draw Config 22
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009D758(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-03-22 21:19:43 +00:00
|
|
|
if (0) {} // Necessary to match
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6640);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2022-05-07 14:10:06 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08,
|
|
|
|
SEGMENTED_TO_VIRTUAL(sForestTempleEntranceTextures[((void)0, gSaveContext.nightFlag)]));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128, 32,
|
|
|
|
32, 1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x0A,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128, 32,
|
|
|
|
32, 1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6671);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
2021-11-09 02:15:37 +00:00
|
|
|
void* sSpiritTempleEntranceTextures[] = {
|
|
|
|
gSpiritTempleDayEntranceTex,
|
|
|
|
gSpiritTempleNightEntranceTex,
|
|
|
|
};
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
// Scene Draw Config 25
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009D974(GlobalContext* globalCtx) {
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6752);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2022-05-07 14:10:06 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08,
|
|
|
|
SEGMENTED_TO_VIRTUAL(sSpiritTempleEntranceTextures[((void)0, gSaveContext.nightFlag)]));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6762);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 1
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009DA30(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
Gfx* displayListHead;
|
|
|
|
|
|
|
|
displayListHead = Graph_Alloc(globalCtx->state.gfxCtx, 3 * sizeof(Gfx));
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6814);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 3) % 128, 32,
|
|
|
|
32, 1, gameplayFrames % 128, (gameplayFrames * 3) % 128, 32, 32));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 10) % 128, 32,
|
|
|
|
32, 1, gameplayFrames % 128, (gameplayFrames * 10) % 128, 32, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x0A, displayListHead);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-04-16 21:36:12 +00:00
|
|
|
if ((gSaveContext.dayTime >= 0x4AAC) && (gSaveContext.dayTime <= 0xC555)) {
|
2020-03-17 04:31:30 +00:00
|
|
|
gSPEndDisplayList(displayListHead);
|
2020-03-22 21:19:43 +00:00
|
|
|
} else {
|
2020-04-16 21:36:12 +00:00
|
|
|
if (gSaveContext.dayTime > 0xC555) {
|
2021-08-15 23:15:58 +00:00
|
|
|
if (globalCtx->roomCtx.unk_74[0] != 255) {
|
|
|
|
Math_StepToS(&globalCtx->roomCtx.unk_74[0], 255, 5);
|
2020-03-22 21:19:43 +00:00
|
|
|
}
|
2020-04-16 21:36:12 +00:00
|
|
|
} else if (gSaveContext.dayTime >= 0x4000) {
|
2021-08-15 23:15:58 +00:00
|
|
|
if (globalCtx->roomCtx.unk_74[0] != 0) {
|
|
|
|
Math_StepToS(&globalCtx->roomCtx.unk_74[0], 0, 10);
|
2020-03-22 21:19:43 +00:00
|
|
|
}
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
2021-08-15 23:15:58 +00:00
|
|
|
gDPSetPrimColor(displayListHead++, 0, 0, 255, 255, 255, globalCtx->roomCtx.unk_74[0]);
|
2021-08-31 23:00:55 +00:00
|
|
|
gSPDisplayList(displayListHead++, spot00_room_0DL_012B20);
|
2020-03-17 04:31:30 +00:00
|
|
|
gSPEndDisplayList(displayListHead);
|
|
|
|
}
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6866);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
2021-11-09 02:15:37 +00:00
|
|
|
void* sKakarikoWindowTextures[] = {
|
|
|
|
gKakarikoVillageDayWindowTex,
|
|
|
|
gKakarikoVillageNightWindowTex,
|
|
|
|
};
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
// Scene Draw Config 2
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009DD5C(GlobalContext* globalCtx) {
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6890);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2022-05-07 14:10:06 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sKakarikoWindowTextures[((void)0, gSaveContext.nightFlag)]));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6903);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 3
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009DE78(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6917);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 6) % 128, 32,
|
|
|
|
32, 1, gameplayFrames % 128, (gameplayFrames * 6) % 128, 32, 32));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 3) % 128, 32,
|
|
|
|
32, 1, gameplayFrames % 128, (gameplayFrames * 3) % 128, 32, 32));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x0A,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128, 32,
|
|
|
|
32, 1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6948);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 4
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009E0B8(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
u8 spA3;
|
|
|
|
u16 spA0;
|
|
|
|
Gfx* displayListHead;
|
|
|
|
|
|
|
|
spA3 = 128;
|
|
|
|
spA0 = 500;
|
|
|
|
displayListHead = Graph_Alloc(globalCtx->state.gfxCtx, 6 * sizeof(Gfx));
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
if (1) {}
|
|
|
|
if (1) {}
|
|
|
|
|
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6965);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128, 32,
|
|
|
|
32, 1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 10) % 128, 32,
|
|
|
|
32, 1, gameplayFrames % 128, (gameplayFrames * 10) % 128, 32, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-04-16 21:36:12 +00:00
|
|
|
if (gSaveContext.sceneSetupIndex == 4) {
|
2021-08-15 23:15:58 +00:00
|
|
|
spA3 = 255 - (u8)globalCtx->roomCtx.unk_74[0];
|
2020-04-16 21:36:12 +00:00
|
|
|
} else if (gSaveContext.sceneSetupIndex == 6) {
|
2021-08-15 23:15:58 +00:00
|
|
|
spA0 = globalCtx->roomCtx.unk_74[0] + 500;
|
2022-04-29 18:19:48 +00:00
|
|
|
} else if (((gSaveContext.sceneSetupIndex < 4) || LINK_IS_ADULT) && GET_EVENTCHKINF(EVENTCHKINF_07)) {
|
2020-03-17 04:31:30 +00:00
|
|
|
spA0 = 2150;
|
2020-03-22 21:19:43 +00:00
|
|
|
}
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x0A, displayListHead);
|
2020-03-17 04:31:30 +00:00
|
|
|
gDPPipeSync(displayListHead++);
|
2020-07-17 01:37:53 +00:00
|
|
|
gDPSetEnvColor(displayListHead++, 128, 128, 128, spA3);
|
2020-03-17 04:31:30 +00:00
|
|
|
gSPEndDisplayList(displayListHead++);
|
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x0B, displayListHead);
|
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x0B, displayListHead);
|
2020-03-17 04:31:30 +00:00
|
|
|
gDPPipeSync(displayListHead++);
|
2020-07-17 01:37:53 +00:00
|
|
|
gDPSetEnvColor(displayListHead++, 128, 128, 128, spA0 * 0.1f);
|
2020-03-17 04:31:30 +00:00
|
|
|
gSPEndDisplayList(displayListHead);
|
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x0C,
|
2021-08-15 23:15:58 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, (s16)(-globalCtx->roomCtx.unk_74[0] * 0.02f), 32, 16, 1,
|
|
|
|
0, (s16)(-globalCtx->roomCtx.unk_74[0] * 0.02f), 32, 16));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7044);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 5
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009E54C(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7058);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2022-04-29 18:19:48 +00:00
|
|
|
if ((gSaveContext.sceneSetupIndex > 3) || (LINK_IS_ADULT && !GET_EVENTCHKINF(EVENTCHKINF_69))) {
|
2021-08-15 23:15:58 +00:00
|
|
|
globalCtx->roomCtx.unk_74[0] = 87;
|
2020-03-22 21:19:43 +00:00
|
|
|
}
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScrollEnvColor(globalCtx->state.gfxCtx, 0, gameplayFrames, gameplayFrames, 32, 32, 1, 0, 0, 32,
|
2021-08-15 23:15:58 +00:00
|
|
|
32, 0, 0, 0, globalCtx->roomCtx.unk_74[0] + 168));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScrollEnvColor(globalCtx->state.gfxCtx, 0, -gameplayFrames, -gameplayFrames, 32, 32, 1, 0, 0,
|
2021-08-15 23:15:58 +00:00
|
|
|
16, 64, 0, 0, 0, globalCtx->roomCtx.unk_74[0] + 168));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 255, 255, 255, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7097);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
2021-11-09 02:15:37 +00:00
|
|
|
void* sZorasDomainEntranceTextures[] = {
|
|
|
|
gZorasDomainDayEntranceTex,
|
|
|
|
gZorasDomainNightEntranceTex,
|
|
|
|
};
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
// Scene Draw Config 6
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009E730(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
u32 var;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7123);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
|
|
|
var = 127 - (gameplayFrames * 1) % 128;
|
2020-03-22 21:19:43 +00:00
|
|
|
if (LINK_IS_ADULT) {
|
2020-03-17 04:31:30 +00:00
|
|
|
var = 0;
|
2020-03-22 21:19:43 +00:00
|
|
|
}
|
2020-11-19 21:49:08 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x0C, Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, 0, 64, 32, 1, 0, var, 64, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2022-05-07 14:10:06 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08,
|
|
|
|
SEGMENTED_TO_VIRTUAL(sZorasDomainEntranceTextures[((void)0, gSaveContext.nightFlag)]));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7147);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 7
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009E8C0(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7161);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, (gameplayFrames * 1) % 128, 0, 32, 32, 1, 0, 0, 32, 32));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, 255 - (gameplayFrames * 2) % 256, 64, 64, 1, 0,
|
|
|
|
255 - (gameplayFrames * 2) % 256, 64, 64));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x0A,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, (gameplayFrames * 1) % 128, 32, 32, 1, 0,
|
|
|
|
(gameplayFrames * 1) % 128, 32, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7192);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 8
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009EAD8(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7206);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, (gameplayFrames * 3) % 1024, 32, 256, 1, 0,
|
|
|
|
(gameplayFrames * 3) % 1024, 32, 256));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, (gameplayFrames * 1) % 256, 64, 64, 1, 0,
|
|
|
|
(gameplayFrames * 1) % 256, 64, 64));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x0A,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, (gameplayFrames * 2) % 128, 32, 32, 1, 0,
|
|
|
|
(gameplayFrames * 2) % 128, 32, 32));
|
2020-03-22 21:19:43 +00:00
|
|
|
gSPSegment(
|
2020-10-29 21:31:09 +00:00
|
|
|
POLY_OPA_DISP++, 0x0B,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, 0, 32, 32, 1, 0, 127 - (gameplayFrames * 3) % 128, 32, 32));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x0C,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, (gameplayFrames * 1) % 128, 32, 32, 1, 0,
|
|
|
|
(gameplayFrames * 1) % 128, 32, 32));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x0D,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, (gameplayFrames * 1) % 64, 16, 16, 1, 0,
|
|
|
|
(gameplayFrames * 1) % 64, 16, 16));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7260);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 9
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009EE44(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-03-22 21:19:43 +00:00
|
|
|
if (0) {} // Necessary to match
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7274);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, gameplayFrames % 128, 0, 32, 16, 1, gameplayFrames % 128, 0,
|
|
|
|
32, 16));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, gameplayFrames % 128, 32, 32, 1,
|
|
|
|
gameplayFrames % 128, gameplayFrames % 128, 32, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2021-08-15 23:15:58 +00:00
|
|
|
if ((globalCtx->roomCtx.unk_74[0] == 0) && (INV_CONTENT(ITEM_COJIRO) == ITEM_COJIRO)) {
|
|
|
|
if (globalCtx->roomCtx.unk_74[1] == 50) {
|
2021-08-31 10:22:03 +00:00
|
|
|
func_8002F7DC(&GET_PLAYER(globalCtx)->actor, NA_SE_EV_CHICKEN_CRY_M);
|
2021-08-15 23:15:58 +00:00
|
|
|
globalCtx->roomCtx.unk_74[0] = 1;
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
2021-08-15 23:15:58 +00:00
|
|
|
globalCtx->roomCtx.unk_74[1]++;
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7309);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 10
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009F074(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7323);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, 0, 32, 32, 1, 0, 127 - gameplayFrames % 128, 32, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7339);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
2021-11-09 02:15:37 +00:00
|
|
|
void* D_8012A380[] = {
|
|
|
|
gSpot12_009678Tex,
|
|
|
|
gSpot12_00DE78Tex,
|
|
|
|
};
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
// Scene Draw Config 11
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009F1B4(GlobalContext* globalCtx) {
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7363);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2022-05-07 14:10:06 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A380[((void)0, gSaveContext.nightFlag)]));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7371);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 12
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009F270(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7385);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, gameplayFrames % 128, 32, 32, 1, 0, gameplayFrames % 128,
|
|
|
|
32, 32));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, gameplayFrames % 128, 32, 32, 1, 0, gameplayFrames % 128,
|
|
|
|
32, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7409);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 13
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009F40C(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7423);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 10) % 128, 32,
|
|
|
|
32, 1, gameplayFrames % 128, (gameplayFrames * 10) % 128, 32, 32));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 3) % 128, 32,
|
|
|
|
32, 1, gameplayFrames % 128, (gameplayFrames * 3) % 128, 32, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7443);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 14
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009F5D4(GlobalContext* globalCtx) {
|
2021-02-14 00:49:40 +00:00
|
|
|
Gfx* displayListHead = Graph_Alloc(globalCtx->state.gfxCtx, 3 * sizeof(Gfx));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7461);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08, displayListHead);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-04-16 21:36:12 +00:00
|
|
|
if ((gSaveContext.dayTime >= 0x4AAC) && (gSaveContext.dayTime <= 0xC000)) {
|
2020-03-17 04:31:30 +00:00
|
|
|
gSPEndDisplayList(displayListHead);
|
2020-03-22 21:19:43 +00:00
|
|
|
} else {
|
2020-04-16 21:36:12 +00:00
|
|
|
if (gSaveContext.dayTime > 0xC000) {
|
2021-08-15 23:15:58 +00:00
|
|
|
if (globalCtx->roomCtx.unk_74[0] != 255) {
|
|
|
|
Math_StepToS(&globalCtx->roomCtx.unk_74[0], 255, 5);
|
2020-03-22 21:19:43 +00:00
|
|
|
}
|
2020-04-16 21:36:12 +00:00
|
|
|
} else if (gSaveContext.dayTime >= 0x4000) {
|
2021-08-15 23:15:58 +00:00
|
|
|
if (globalCtx->roomCtx.unk_74[0] != 0) {
|
|
|
|
Math_StepToS(&globalCtx->roomCtx.unk_74[0], 0, 10);
|
2020-03-22 21:19:43 +00:00
|
|
|
}
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
2021-08-15 23:15:58 +00:00
|
|
|
gDPSetPrimColor(displayListHead++, 0, 0, 255, 255, 255, globalCtx->roomCtx.unk_74[0]);
|
2021-08-31 23:00:55 +00:00
|
|
|
gSPDisplayList(displayListHead++, spot16_room_0DL_00AA48);
|
2020-03-17 04:31:30 +00:00
|
|
|
gSPEndDisplayList(displayListHead);
|
|
|
|
}
|
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7495);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 15
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009F7D4(GlobalContext* globalCtx) {
|
2021-02-14 00:49:40 +00:00
|
|
|
s8 sp6F = coss((globalCtx->gameplayFrames * 1500) & 0xFFFF) >> 8;
|
|
|
|
s8 sp6E = coss((globalCtx->gameplayFrames * 1500) & 0xFFFF) >> 8;
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7512);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
|
|
|
sp6F = (sp6F >> 1) + 192;
|
|
|
|
sp6E = (sp6E >> 1) + 192;
|
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, gameplayFrames % 128, 32, 32, 1, 0, gameplayFrames % 128,
|
|
|
|
32, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, sp6F, sp6E, 255, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7530);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
2021-11-09 02:15:37 +00:00
|
|
|
void* sGoronCityEntranceTextures[] = {
|
|
|
|
gGoronCityDayEntranceTex,
|
|
|
|
gGoronCityNightEntranceTex,
|
|
|
|
};
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
// Scene Draw Config 16
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009F9D0(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7555);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, 127 - gameplayFrames % 128, 32, 32, 1,
|
|
|
|
gameplayFrames % 128, 0, 32, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2022-05-07 14:10:06 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08,
|
|
|
|
SEGMENTED_TO_VIRTUAL(sGoronCityEntranceTextures[((void)0, gSaveContext.nightFlag)]));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7578);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
2021-11-09 02:15:37 +00:00
|
|
|
void* sLonLonRanchWindowTextures[] = {
|
|
|
|
gLonLonRanchDayWindowTex,
|
|
|
|
gLonLonRangeNightWindowsTex,
|
|
|
|
};
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
// Scene Draw Config 17
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009FB74(GlobalContext* globalCtx) {
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7602);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2022-05-07 14:10:06 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x08,
|
|
|
|
SEGMENTED_TO_VIRTUAL(sLonLonRanchWindowTextures[((void)0, gSaveContext.nightFlag)]));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7615);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 18
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009FC90(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7630);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, 127 - gameplayFrames % 128, 32, 32, 1,
|
|
|
|
127 - gameplayFrames % 128, 0, 32, 32));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, (gameplayFrames * 3) % 128,
|
|
|
|
127 - (gameplayFrames * 6) % 128, 32, 32, 1, (gameplayFrames * 6) % 128,
|
|
|
|
127 - (gameplayFrames * 3) % 128, 32, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 64);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 64);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7653);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
f32 D_8012A398 = 0.0f;
|
|
|
|
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_8009FE58(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
static s16 D_8012A39C = 538;
|
|
|
|
static s16 D_8012A3A0 = 4272;
|
|
|
|
u32 gameplayFrames;
|
|
|
|
f32 temp;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7712);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-03-22 21:19:43 +00:00
|
|
|
if (globalCtx->sceneNum == SCENE_BDAN) {
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, gameplayFrames % 128, (gameplayFrames * 2) % 128, 32,
|
|
|
|
32, 1, 127 - gameplayFrames % 128, (gameplayFrames * 2) % 128, 32, 32));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x0B,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, 255 - (gameplayFrames * 4) % 256, 32, 64, 1, 0,
|
|
|
|
255 - (gameplayFrames * 4) % 256, 32, 64));
|
2020-03-22 21:19:43 +00:00
|
|
|
} else {
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TexScroll(globalCtx->state.gfxCtx, (127 - (gameplayFrames * 1)) % 128,
|
|
|
|
(gameplayFrames * 1) % 128, 32, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2021-03-28 23:35:16 +00:00
|
|
|
if (FrameAdvance_IsEnabled(globalCtx) != true) {
|
2021-11-09 02:15:37 +00:00
|
|
|
|
2020-03-17 04:31:30 +00:00
|
|
|
D_8012A39C += 1820;
|
|
|
|
D_8012A3A0 += 1820;
|
|
|
|
|
|
|
|
temp = 0.020000001f;
|
2022-02-20 23:35:53 +00:00
|
|
|
View_SetDistortionOrientation(&globalCtx->view,
|
2022-02-27 21:32:05 +00:00
|
|
|
((360.00018f / 65535.0f) * (M_PI / 180.0f)) * temp * Math_CosS(D_8012A39C),
|
|
|
|
((360.00018f / 65535.0f) * (M_PI / 180.0f)) * temp * Math_SinS(D_8012A39C),
|
|
|
|
((360.00018f / 65535.0f) * (M_PI / 180.0f)) * temp * Math_SinS(D_8012A3A0));
|
2022-02-20 23:35:53 +00:00
|
|
|
View_SetDistortionScale(&globalCtx->view, 1.f + (0.79999995f * temp * Math_SinS(D_8012A3A0)),
|
|
|
|
1.f + (0.39999998f * temp * Math_CosS(D_8012A3A0)),
|
|
|
|
1.f + (1 * temp * Math_CosS(D_8012A39C)));
|
|
|
|
View_SetDistortionSpeed(&globalCtx->view, 0.95f);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2021-08-15 23:15:58 +00:00
|
|
|
switch (globalCtx->roomCtx.unk_74[0]) {
|
2020-03-17 04:31:30 +00:00
|
|
|
case 0:
|
|
|
|
break;
|
|
|
|
case 1:
|
2021-08-15 23:15:58 +00:00
|
|
|
if (globalCtx->roomCtx.unk_74[1] < 1200) {
|
|
|
|
globalCtx->roomCtx.unk_74[1] += 200;
|
2020-03-22 21:19:43 +00:00
|
|
|
} else {
|
2021-08-15 23:15:58 +00:00
|
|
|
globalCtx->roomCtx.unk_74[0]++;
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 2:
|
2021-08-15 23:15:58 +00:00
|
|
|
if (globalCtx->roomCtx.unk_74[1] > 0) {
|
|
|
|
globalCtx->roomCtx.unk_74[1] -= 30;
|
2020-03-22 21:19:43 +00:00
|
|
|
} else {
|
2021-08-15 23:15:58 +00:00
|
|
|
globalCtx->roomCtx.unk_74[1] = 0;
|
|
|
|
globalCtx->roomCtx.unk_74[0] = 0;
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
2021-08-15 23:15:58 +00:00
|
|
|
D_8012A398 += 0.15f + (globalCtx->roomCtx.unk_74[1] * 0.001f);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
2020-03-23 23:11:21 +00:00
|
|
|
if (globalCtx->roomCtx.curRoom.num == 2) {
|
2020-12-25 21:19:52 +00:00
|
|
|
Matrix_Scale(1.0f, sinf(D_8012A398) * 0.8f, 1.0f, MTXMODE_NEW);
|
2020-03-23 23:11:21 +00:00
|
|
|
} else {
|
2020-03-17 04:31:30 +00:00
|
|
|
Matrix_Scale(1.005f, sinf(D_8012A398) * 0.8f, 1.005f, MTXMODE_NEW);
|
2020-03-23 23:11:21 +00:00
|
|
|
}
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x0D, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_scene_table.c", 7809));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7811);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 26
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_800A0334(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7825);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 512, 32,
|
|
|
|
128, 1, gameplayFrames % 128, (gameplayFrames * 1) % 512, 32, 128));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_XLU_DISP++, 0x09,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128, 32,
|
|
|
|
32, 1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x0A,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128, 32,
|
|
|
|
32, 1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7852);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 52
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_800A055C(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
func_8009BEEC(globalCtx);
|
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 51
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_800A057C(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
func_8009BEEC(globalCtx);
|
|
|
|
}
|
|
|
|
|
|
|
|
// Scene Draw Config 49
|
2020-03-22 21:19:43 +00:00
|
|
|
void func_800A059C(GlobalContext* globalCtx) {
|
2020-03-17 04:31:30 +00:00
|
|
|
u32 gameplayFrames;
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7893);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
gameplayFrames = globalCtx->gameplayFrames;
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x08,
|
2020-03-29 16:43:45 +00:00
|
|
|
Gfx_TexScroll(globalCtx->state.gfxCtx, 127 - (gameplayFrames * 2) % 128, 0, 32, 64));
|
2020-11-19 21:49:08 +00:00
|
|
|
gSPSegment(POLY_OPA_DISP++, 0x09, Gfx_TexScroll(globalCtx->state.gfxCtx, 0, (gameplayFrames * 2) % 512, 128, 128));
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_OPA_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-10-29 21:31:09 +00:00
|
|
|
gDPPipeSync(POLY_XLU_DISP++);
|
|
|
|
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7910);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
2020-03-22 21:19:43 +00:00
|
|
|
void (*sSceneDrawHandlers[])(GlobalContext*) = {
|
|
|
|
func_80099550, func_8009DA30, func_8009DD5C, func_8009DE78, func_8009E0B8, func_8009E54C, func_8009E730,
|
|
|
|
func_8009E8C0, func_8009EAD8, func_8009EE44, func_8009F074, func_8009F1B4, func_8009F270, func_8009F40C,
|
|
|
|
func_8009F5D4, func_8009F7D4, func_8009F9D0, func_8009FB74, func_8009FC90, func_800995DC, func_80099878,
|
|
|
|
func_8009FE58, func_8009D758, func_8009B0FC, func_8009AE30, func_8009D974, func_800A0334, func_8009CC00,
|
|
|
|
func_80099760, func_8009B86C, func_80099BD8, func_8009A45C, func_8009A798, func_8009A9DC, func_8009B9BC,
|
|
|
|
func_8009BAA4, func_8009BC44, func_8009C3EC, func_8009C0AC, func_8009ACA8, func_8009AFE0, func_8009D0E8,
|
|
|
|
func_8009C608, func_8009C8B8, func_8009D31C, func_8009D438, func_8009D5B4, func_8009CAC0, func_8009AB98,
|
|
|
|
func_800A059C, func_8009CF84, func_800A057C, func_800A055C,
|
2020-03-17 04:31:30 +00:00
|
|
|
};
|
|
|
|
|
2020-03-22 21:19:43 +00:00
|
|
|
void Scene_Draw(GlobalContext* globalCtx) {
|
2020-04-16 21:36:12 +00:00
|
|
|
if (HREG(80) == 17) {
|
|
|
|
if (HREG(95) != 17) {
|
|
|
|
HREG(95) = 17;
|
2020-03-17 04:31:30 +00:00
|
|
|
HREG(81) = 1;
|
|
|
|
HREG(82) = 1;
|
|
|
|
HREG(83) = 0;
|
|
|
|
HREG(84) = 0;
|
|
|
|
HREG(85) = 0;
|
|
|
|
HREG(86) = 0;
|
|
|
|
HREG(87) = 0;
|
|
|
|
HREG(88) = 0;
|
|
|
|
HREG(89) = 0;
|
|
|
|
HREG(91) = 0;
|
|
|
|
HREG(92) = 0;
|
|
|
|
HREG(93) = 0;
|
|
|
|
HREG(94) = 0;
|
|
|
|
}
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 8104);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-03-22 21:19:43 +00:00
|
|
|
if (HREG(81) == 1) {
|
2020-10-29 21:31:09 +00:00
|
|
|
gSPDisplayList(POLY_OPA_DISP++, sDefaultDisplayList);
|
|
|
|
gSPDisplayList(POLY_XLU_DISP++, sDefaultDisplayList);
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|
|
|
|
|
2020-08-29 23:00:17 +00:00
|
|
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 8109);
|
2020-03-17 04:31:30 +00:00
|
|
|
|
2020-03-22 21:19:43 +00:00
|
|
|
if (HREG(82) == 1) {
|
2020-03-17 04:31:30 +00:00
|
|
|
sSceneDrawHandlers[globalCtx->sceneConfig](globalCtx);
|
2020-03-22 21:19:43 +00:00
|
|
|
}
|
|
|
|
} else {
|
2020-03-17 04:31:30 +00:00
|
|
|
sSceneDrawHandlers[globalCtx->sceneConfig](globalCtx);
|
2020-03-22 21:19:43 +00:00
|
|
|
}
|
2020-03-17 04:31:30 +00:00
|
|
|
}
|