1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-12-02 15:55:59 +00:00
oot/src/code/z_scene_table.c

1651 lines
61 KiB
C
Raw Normal View History

#include "global.h"
2020-03-17 04:31:30 +00:00
#include "scenes/overworld/spot00/spot00_scene.h"
#include "scenes/overworld/spot00/spot00_room_0.h"
#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"
#include "scenes/overworld/spot16/spot16_room_0.h"
#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"
#include "overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.h"
// 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-03-22 21:19:43 +00:00
EntranceInfo gEntranceTable[] = {
#include "tables/entrance_table.h"
2020-03-17 04:31:30 +00:00
};
#undef DEFINE_ENTRANCE
// 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
// 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
SceneTableEntry gSceneTable[] = {
#include "tables/scene_table.h"
2020-03-17 04:31:30 +00:00
};
#undef _noneSegmentRomStart
#undef _noneSegmentRomEnd
#undef DEFINE_SCENE
2020-03-22 21:19:43 +00:00
Gfx sDefaultDisplayList[] = {
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(),
gsDPSetPrimColor(0, 0, 128, 128, 128, 128),
gsDPSetEnvColor(128, 128, 128, 128),
2020-03-17 04:31:30 +00:00
gsSPEndDisplayList(),
};
void Scene_SetTransitionForNextEntrance(PlayState* play) {
s16 entranceIndex;
2020-03-17 04:31:30 +00:00
if (!IS_DAY) {
if (!LINK_IS_ADULT) {
entranceIndex = play->nextEntranceIndex + 1;
2020-03-22 21:19:43 +00:00
} else {
entranceIndex = play->nextEntranceIndex + 3;
2020-03-22 21:19:43 +00:00
}
} else {
if (!LINK_IS_ADULT) {
entranceIndex = play->nextEntranceIndex;
2020-03-22 21:19:43 +00:00
} else {
entranceIndex = play->nextEntranceIndex + 2;
2020-03-22 21:19:43 +00:00
}
2020-03-17 04:31:30 +00:00
}
play->transitionType = gEntranceTable[entranceIndex].field & 0x7F; // Fade out
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 0
void func_80099550(PlayState* play) {
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 4725);
2020-03-17 04:31:30 +00:00
gSPDisplayList(POLY_OPA_DISP++, sDefaultDisplayList);
gSPDisplayList(POLY_XLU_DISP++, sDefaultDisplayList);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 4735);
2020-03-17 04:31:30 +00:00
}
void* D_8012A2F8[] = {
gYdanTex_00BA18,
gYdanTex_00CA18,
};
2020-03-17 04:31:30 +00:00
// Scene Draw Config 19
void func_800995DC(PlayState* play) {
u32 gameplayFrames = play->gameplayFrames;
2020-03-17 04:31:30 +00:00
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 4763);
2020-03-17 04:31:30 +00:00
gSPSegment(POLY_XLU_DISP++, 0x09,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 127 - (gameplayFrames % 128), (gameplayFrames * 1) % 128, 32, 32,
1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A2F8[((void)0, gSaveContext.nightFlag)]));
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 4783);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 28
void func_80099760(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 4845);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, (gameplayFrames * 2) % 256, 0, 64, 32, 1, 0,
(gameplayFrames * 2) % 128, 64, 32));
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 4859);
2020-03-17 04:31:30 +00:00
}
void* gDCEntranceTextures[] = {
gDCDayEntranceTex,
gDCNightEntranceTex,
};
void* sDCLavaFloorTextures[] = {
gDCLavaFloor1Tex, gDCLavaFloor2Tex, gDCLavaFloor3Tex, gDCLavaFloor4Tex,
gDCLavaFloor5Tex, gDCLavaFloor6Tex, gDCLavaFloor7Tex, gDCLavaFloor8Tex,
};
2020-03-17 04:31:30 +00:00
// Scene Draw Config 20 - Dodongo's Cavern
void func_80099878(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
s32 pad;
Gfx* displayListHead = Graph_Alloc(play->state.gfxCtx, 2 * sizeof(Gfx[3]));
2020-03-17 04:31:30 +00:00
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 4905);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(gDCEntranceTextures[((void)0, gSaveContext.nightFlag)]));
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(sDCLavaFloorTextures[(s32)(gameplayFrames & 14) >> 1]));
gSPSegment(POLY_XLU_DISP++, 0x09,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, (gameplayFrames * 1) % 256, 0, 64, 32, 1, 0,
(gameplayFrames * 1) % 128, 64, 32));
gSPSegment(POLY_OPA_DISP++, 0x0A,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, (gameplayFrames * 1) % 128, 32, 32, 1, 0,
(gameplayFrames * 2) % 128, 32, 32));
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gSPSegment(POLY_OPA_DISP++, 0x0B, displayListHead);
2020-03-17 04:31:30 +00:00
gDPPipeSync(displayListHead++);
gDPSetEnvColor(displayListHead++, 255, 255, 255, play->roomCtx.unk_74[BGDODOAGO_EYE_LEFT]);
2020-03-17 04:31:30 +00:00
gSPEndDisplayList(displayListHead++);
gSPSegment(POLY_OPA_DISP++, 0x0C, displayListHead);
2020-03-17 04:31:30 +00:00
gDPPipeSync(displayListHead++);
gDPSetEnvColor(displayListHead++, 255, 255, 255, play->roomCtx.unk_74[BGDODOAGO_EYE_RIGHT]);
2020-03-17 04:31:30 +00:00
gSPEndDisplayList(displayListHead);
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 4956);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 30
void func_80099BD8(PlayState* play) {
2020-03-17 04:31:30 +00:00
f32 temp;
Gfx* displayListHead = Graph_Alloc(play->state.gfxCtx, 18 * sizeof(Gfx));
2020-03-17 04:31:30 +00:00
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5069);
2020-03-17 04:31:30 +00:00
temp = play->roomCtx.unk_74[0] / 255.0f;
2020-03-17 04:31:30 +00:00
gSPSegment(POLY_XLU_DISP++, 0x08, displayListHead);
gSPSegment(POLY_OPA_DISP++, 0x08, displayListHead);
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++);
gSPSegment(POLY_XLU_DISP++, 0x09, displayListHead);
gSPSegment(POLY_OPA_DISP++, 0x09, displayListHead);
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++);
gSPSegment(POLY_OPA_DISP++, 0x0A, displayListHead);
gSPSegment(POLY_XLU_DISP++, 0x0A, displayListHead);
2020-03-17 04:31:30 +00:00
gDPPipeSync(displayListHead++);
gDPSetEnvColor(displayListHead++, 0, 0, 0, play->roomCtx.unk_74[0]);
2020-03-17 04:31:30 +00:00
gSPEndDisplayList(displayListHead++);
gSPSegment(POLY_OPA_DISP++, 0x0B, displayListHead);
gSPSegment(POLY_XLU_DISP++, 0x0B, displayListHead);
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++);
gDPSetEnvColor(displayListHead++, 0, 0, 0, play->roomCtx.unk_74[0]);
2020-03-17 04:31:30 +00:00
gSPEndDisplayList(displayListHead++);
gSPSegment(POLY_OPA_DISP++, 0x0C, displayListHead);
gSPSegment(POLY_XLU_DISP++, 0x0C, displayListHead);
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++);
gDPSetEnvColor(displayListHead++, 0, 0, 0, play->roomCtx.unk_74[0]);
2020-03-17 04:31:30 +00:00
gSPEndDisplayList(displayListHead++);
gSPSegment(POLY_OPA_DISP++, 0x0D, displayListHead);
gSPSegment(POLY_XLU_DISP++, 0x0D, displayListHead);
2020-03-17 04:31:30 +00:00
gDPPipeSync(displayListHead++);
gDPSetEnvColor(displayListHead++, 0, 0, 0, play->roomCtx.unk_74[1]);
2020-03-17 04:31:30 +00:00
gSPEndDisplayList(displayListHead);
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5145);
2020-03-17 04:31:30 +00:00
if (gSaveContext.sceneSetupIndex == 5) {
gCustomLensFlareOn = true;
gCustomLensFlarePos.x = -20.0f;
gCustomLensFlarePos.y = 1220.0f;
gCustomLensFlarePos.z = -684.0f;
gLensFlareScale = 10;
gLensFlareColorIntensity = 8.0f;
gLensFlareGlareStrength = 200;
2020-03-17 04:31:30 +00:00
}
}
// Scene Draw Config 31
void func_8009A45C(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5171);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TexScroll(play->state.gfxCtx, 0, (gameplayFrames * 1) % 64, 256, 16));
gSPSegment(POLY_XLU_DISP++, 0x09,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 127 - (gameplayFrames % 128), (gameplayFrames * 1) % 128, 32, 32,
1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
gSPSegment(POLY_OPA_DISP++, 0x0A,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, 0, 32, 32, 1, 0, 127 - (gameplayFrames * 1) % 128, 32, 32));
gSPSegment(POLY_OPA_DISP++, 0x0B, Gfx_TexScroll(play->state.gfxCtx, 0, (gameplayFrames * 1) % 128, 32, 32));
gSPSegment(POLY_XLU_DISP++, 0x0C,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, (gameplayFrames * 50) % 2048, 8, 512, 1, 0,
(gameplayFrames * 60) % 2048, 8, 512));
gSPSegment(POLY_OPA_DISP++, 0x0D,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, 0, 32, 64, 1, 0, (gameplayFrames * 1) % 128, 32, 32));
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5212);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 32
void func_8009A798(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5226);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TexScroll(play->state.gfxCtx, 0, (gameplayFrames * 2) % 256, 64, 64));
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gSPSegment(POLY_OPA_DISP++, 0x0A,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32,
1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
gSPSegment(POLY_XLU_DISP++, 0x09,
Gfx_TwoTexScroll(play->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
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5264);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 33
void func_8009A9DC(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5278);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 3) % 256, 32, 64,
1, gameplayFrames % 128, (gameplayFrames * 3) % 256, 32, 64));
gSPSegment(POLY_XLU_DISP++, 0x09,
Gfx_TwoTexScroll(play->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
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5301);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 48
void func_8009AB98(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5317);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TexScroll(play->state.gfxCtx, 0, gameplayFrames % 64, 256, 16));
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5330);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 39
void func_8009ACA8(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5346);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 3) % 128, 32, 32,
1, gameplayFrames % 128, (gameplayFrames * 3) % 128, 32, 32));
gSPSegment(POLY_XLU_DISP++, 0x09, Gfx_TexScroll(play->state.gfxCtx, 0, gameplayFrames % 64, 256, 16));
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5367);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 24
void func_8009AE30(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5384);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
2020-03-17 04:31:30 +00:00
if (play->sceneNum == SCENE_HAKADAN_BS) {
gSPSegment(POLY_OPA_DISP++, 0x08,
Gfx_TwoTexScroll(play->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 {
gSPSegment(POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScroll(play->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
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5416);
2020-03-17 04:31:30 +00:00
}
void* sThievesHideoutEntranceTextures[] = {
gThievesHideoutDayEntranceTex,
gThievesHideoutNightEntranceTex,
};
2020-03-17 04:31:30 +00:00
// Scene Draw Config 40
void func_8009AFE0(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5490);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_OPA_DISP++, 0x09, Gfx_TexScroll(play->state.gfxCtx, 0, (gameplayFrames * 3) % 128, 32, 32));
2020-03-17 04:31:30 +00:00
gSPSegment(POLY_XLU_DISP++, 0x08,
SEGMENTED_TO_VIRTUAL(sThievesHideoutEntranceTextures[((void)0, gSaveContext.nightFlag)]));
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5507);
2020-03-17 04:31:30 +00:00
}
void* D_8012A330[] = {
gWaterTempleDayEntranceTex,
gWaterTempleNightEntranceTex,
};
2020-03-17 04:31:30 +00:00
// Scene Draw Config 23 (Water Temple)
void func_8009B0FC(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
s32 spB0;
s32 spAC;
OPEN_DISPS(play->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
spB0 = (play->roomCtx.unk_74[1] >> 8) & 0xFF;
spAC = play->roomCtx.unk_74[1] & 0xFF;
gameplayFrames = play->gameplayFrames;
2020-03-17 04:31:30 +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) {
gSPSegment(POLY_OPA_DISP++, 0x08,
Gfx_TwoTexScrollEnvColor(play->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) {
gSPSegment(POLY_OPA_DISP++, 0x08,
Gfx_TwoTexScrollEnvColor(play->state.gfxCtx, 0, gameplayFrames * 1, 0, 32, 32, 1, 0, 0, 32, 32, 0, 0,
0, 255));
2020-03-22 21:19:43 +00:00
} else {
gSPSegment(POLY_OPA_DISP++, 0x08,
Gfx_TwoTexScrollEnvColor(play->state.gfxCtx, 0, gameplayFrames * 1, 0, 32, 32, 1, 0, 0, 32, 32, 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) {
gSPSegment(POLY_OPA_DISP++, 0x09,
Gfx_TwoTexScrollEnvColor(play->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) {
gSPSegment(POLY_OPA_DISP++, 0x09,
Gfx_TwoTexScrollEnvColor(play->state.gfxCtx, 0, gameplayFrames * 1, 0, 32, 32, 1, 0, 0, 32, 32, 0, 0,
0, 255));
2020-03-22 21:19:43 +00:00
} else {
gSPSegment(POLY_OPA_DISP++, 0x09,
Gfx_TwoTexScrollEnvColor(play->state.gfxCtx, 0, gameplayFrames * 1, 0, 32, 32, 1, 0, 0, 32, 32, 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) {
gSPSegment(POLY_OPA_DISP++, 0x0A,
Gfx_TwoTexScrollEnvColor(play->state.gfxCtx, 0, gameplayFrames * 1, 0, 32, 32, 1, 0, 0, 32, 32, 0, 0,
0, 160));
gSPSegment(POLY_OPA_DISP++, 0x0B,
Gfx_TwoTexScrollEnvColor(play->state.gfxCtx, 0, gameplayFrames * 3, 0, 32, 32, 1, 0, 0, 32, 32, 0, 0,
0, 180));
2020-03-22 21:19:43 +00:00
} else {
gSPSegment(POLY_OPA_DISP++, 0x0A,
Gfx_TwoTexScrollEnvColor(play->state.gfxCtx, 0, (gameplayFrames * 1) % 128, 0, 32, 32, 1, 0, 0, 32,
32, 0, 0, 0, 160 + (s32)((spAC / 200.0f) * 95.0f)));
gSPSegment(POLY_OPA_DISP++, 0x0B,
Gfx_TwoTexScrollEnvColor(play->state.gfxCtx, 0, gameplayFrames * 3, 0, 32, 32, 1, 0, 0, 32, 32, 0, 0,
0, 185 + (s32)((spAC / 200.0f) * 70.0f)));
2020-03-17 04:31:30 +00:00
}
gSPSegment(POLY_XLU_DISP++, 0x0C,
Gfx_TwoTexScrollEnvColor(play->state.gfxCtx, 0, gameplayFrames * 1, gameplayFrames * 1, 32, 32, 1, 0,
127 - (gameplayFrames * 1), 32, 32, 0, 0, 0, 128));
gSPSegment(POLY_XLU_DISP++, 0x0D,
Gfx_TwoTexScrollEnvColor(play->state.gfxCtx, 0, gameplayFrames * 4, 0, 32, 32, 1, gameplayFrames * 4, 0,
32, 32, 0, 0, 0, 128));
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5644);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 29
void func_8009B86C(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5791);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_OPA_DISP++, 0x08,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, gameplayFrames * 1, 0, 32, 32, 1, 0, 0, 32, 32));
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, play->roomCtx.unk_74[0]);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 145);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5808);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 34
void func_8009B9BC(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5822);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_OPA_DISP++, 0x08, Gfx_TexScroll(play->state.gfxCtx, 0, gameplayFrames % 64, 4, 16));
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5836);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 35
void func_8009BAA4(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5850);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScroll(play->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
if (play->sceneNum == SCENE_HAIRAL_NIWA) {
gSPSegment(POLY_XLU_DISP++, 0x09, Gfx_TexScroll(play->state.gfxCtx, 0, (gameplayFrames * 10) % 256, 32, 64));
2020-03-22 21:19:43 +00:00
}
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5876);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 36
void func_8009BC44(PlayState* play) {
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((play->gameplayFrames * 1500) & 0xFFFF) >> 8;
2020-03-17 04:31:30 +00:00
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5894);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
2020-03-17 04:31:30 +00:00
if (play->sceneNum == SCENE_GANON_TOU) {
gSPSegment(POLY_XLU_DISP++, 0x09, Gfx_TexScroll(play->state.gfxCtx, 0, (gameplayFrames * 1) % 256, 64, 64));
gSPSegment(POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScroll(play->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
}
gSPSegment(POLY_OPA_DISP++, 0x0B,
Gfx_TwoTexScroll(play->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
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +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;
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, sp83, sp83, sp83, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5930);
2020-03-17 04:31:30 +00:00
}
// Screen Shake for Ganon's Tower Collapse
void func_8009BEEC(PlayState* play) {
2020-03-17 04:31:30 +00:00
s32 var;
if (play->gameplayFrames % 128 == 13) {
var = Quake_Add(GET_ACTIVE_CAM(play), 2);
Quake_SetSpeed(var, 10000);
Quake_SetQuakeValues(var, 4, 0, 0, 0);
Quake_SetCountdown(var, 127);
2020-03-17 04:31:30 +00:00
}
if ((play->gameplayFrames % 64 == 0) && (Rand_ZeroOne() > 0.6f)) {
var = Quake_Add(GET_ACTIVE_CAM(play), 3);
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
void func_8009C0AC(PlayState* play) {
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((play->gameplayFrames * 1500) & 0xFFFF) >> 8;
2020-03-17 04:31:30 +00:00
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5968);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_OPA_DISP++, 0x08,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, (gameplayFrames * 1) % 512, 64, 128, 1, 0,
511 - (gameplayFrames * 1) % 512, 64, 128));
gSPSegment(POLY_OPA_DISP++, 0x09,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, (gameplayFrames * 1) % 256, 32, 64, 1, 0,
255 - (gameplayFrames * 1) % 256, 32, 64));
gSPSegment(POLY_XLU_DISP++, 0x0A,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, (gameplayFrames * 20) % 2048, 16, 512, 1, 0,
(gameplayFrames * 30) % 2048, 16, 512));
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +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;
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, sp7B, sp7B, sp7B, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6004);
2020-03-17 04:31:30 +00:00
if (Flags_GetSwitch(play, 0x37)) {
if ((play->sceneNum == SCENE_GANON_DEMO) || (play->sceneNum == SCENE_GANON_FINAL) ||
(play->sceneNum == SCENE_GANON_SONOGO) || (play->sceneNum == SCENE_GANONTIKA_SONOGO)) {
func_8009BEEC(play);
2020-03-17 04:31:30 +00:00
}
}
}
void* sIceCavernEntranceTextures[] = {
gIceCavernDayEntranceTex,
gIceCavernNightEntranceTex,
};
2020-03-17 04:31:30 +00:00
// Scene Draw Config 37
void func_8009C3EC(PlayState* play) {
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
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6042);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_XLU_DISP++, 0x08,
SEGMENTED_TO_VIRTUAL(sIceCavernEntranceTextures[((void)0, gSaveContext.nightFlag)]));
gSPSegment(POLY_OPA_DISP++, 0x09,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32,
1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
gSPSegment(POLY_XLU_DISP++, 0x0A,
Gfx_TwoTexScroll(play->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
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6076);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 42
void func_8009C608(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6151);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TexScroll(play->state.gfxCtx, 0, (gameplayFrames * 1) % 64, 256, 16));
gSPSegment(POLY_XLU_DISP++, 0x09,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, (gameplayFrames * 60) % 2048, 8, 512, 1, 0,
(gameplayFrames * 50) % 2048, 8, 512));
gSPSegment(POLY_OPA_DISP++, 0x0A,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 127 - (gameplayFrames * 1) % 128, 0, 32, 32, 1,
(gameplayFrames * 1) % 128, 0, 32, 32));
gSPSegment(POLY_XLU_DISP++, 0x0B,
Gfx_TwoTexScroll(play->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
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6187);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 43
void func_8009C8B8(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6201);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_OPA_DISP++, 0x08,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, 0, 32, 32, 1, 0, (gameplayFrames * 1) % 128, 32, 32));
gSPSegment(POLY_XLU_DISP++, 0x0A,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32,
1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
gSPSegment(POLY_XLU_DISP++, 0x09, Gfx_TexScroll(play->state.gfxCtx, 0, 255 - (gameplayFrames * 10) % 256, 32, 64));
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6232);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 47
void func_8009CAC0(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6249);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScroll(play->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
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6264);
2020-03-17 04:31:30 +00:00
}
void* sGTGEntranceTextures[] = {
gGTGDayEntranceTex,
gGTGNightEntranceTex,
};
2020-03-17 04:31:30 +00:00
// Scene Draw Config 27
void func_8009CC00(PlayState* play) {
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
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6290);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sGTGEntranceTextures[((void)0, gSaveContext.nightFlag)]));
gSPSegment(POLY_OPA_DISP++, 0x09,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32,
1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
gSPSegment(POLY_XLU_DISP++, 0x0A,
Gfx_TwoTexScroll(play->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
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6320);
2020-03-17 04:31:30 +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)));
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
void func_8009CF84(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6433);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScrollPrimColor(play->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128,
32, 32, 1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32, 255, 255,
255, play->roomCtx.unk_74[0] + 127));
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6449);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 41
void func_8009D0E8(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6463);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TexScroll(play->state.gfxCtx, 127 - (gameplayFrames * 4) % 128, 0, 32, 32));
gSPSegment(POLY_OPA_DISP++, 0x09, Gfx_TexScroll(play->state.gfxCtx, 0, (gameplayFrames * 5) % 64, 16, 16));
gSPSegment(POLY_OPA_DISP++, 0x0A, Gfx_TexScroll(play->state.gfxCtx, 0, 63 - (gameplayFrames * 2) % 64, 16, 16));
gSPSegment(POLY_XLU_DISP++, 0x0B,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, 127 - (gameplayFrames * 3) % 128, 32, 32, 1, 0, 0, 32, 32));
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6491);
2020-03-17 04:31:30 +00:00
}
void* sLonLonHouseEntranceTextures[] = {
gLonLonHouseDayEntranceTex,
gLonLonHouseNightEntranceTex,
};
2020-03-17 04:31:30 +00:00
// Scene Draw Config 44
void func_8009D31C(PlayState* play) {
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6515);
2020-03-17 04:31:30 +00:00
gSPSegment(POLY_XLU_DISP++, 0x08,
SEGMENTED_TO_VIRTUAL(sLonLonHouseEntranceTextures[((void)0, gSaveContext.nightFlag)]));
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6528);
2020-03-17 04:31:30 +00:00
}
void* sGuardHouseView2Textures[] = {
gGuardHouseOutSideView1DayTex,
gGuardHouseOutSideView1NightTex,
};
void* sGuardHouseView1Textures[] = {
gGuardHouseOutSideView2DayTex,
gGuardHouseOutSideView2NightTex,
};
2020-03-17 04:31:30 +00:00
// Scene Draw Config 45
void func_8009D438(PlayState* play) {
2020-03-17 04:31:30 +00:00
s32 var;
OPEN_DISPS(play->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 {
var = gSaveContext.nightFlag;
2020-03-22 21:19:43 +00:00
}
2020-03-17 04:31:30 +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
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6581);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 46
void func_8009D5B4(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6595);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_OPA_DISP++, 0x08, Gfx_TexScroll(play->state.gfxCtx, 0, (gameplayFrames * 3) % 128, 32, 32));
gSPSegment(POLY_XLU_DISP++, 0x09,
Gfx_TwoTexScroll(play->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
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6615);
2020-03-17 04:31:30 +00:00
}
void* sForestTempleEntranceTextures[] = {
gForestTempleDayEntranceTex,
gForestTempleNightEntranceTex,
};
2020-03-17 04:31:30 +00:00
// Scene Draw Config 22
void func_8009D758(PlayState* play) {
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
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6640);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_XLU_DISP++, 0x08,
SEGMENTED_TO_VIRTUAL(sForestTempleEntranceTextures[((void)0, gSaveContext.nightFlag)]));
gSPSegment(POLY_XLU_DISP++, 0x09,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32,
1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
gSPSegment(POLY_OPA_DISP++, 0x0A,
Gfx_TwoTexScroll(play->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
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6671);
2020-03-17 04:31:30 +00:00
}
void* sSpiritTempleEntranceTextures[] = {
gSpiritTempleDayEntranceTex,
gSpiritTempleNightEntranceTex,
};
2020-03-17 04:31:30 +00:00
// Scene Draw Config 25
void func_8009D974(PlayState* play) {
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6752);
2020-03-17 04:31:30 +00:00
gSPSegment(POLY_XLU_DISP++, 0x08,
SEGMENTED_TO_VIRTUAL(sSpiritTempleEntranceTextures[((void)0, gSaveContext.nightFlag)]));
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6762);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 1
void func_8009DA30(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
Gfx* displayListHead;
displayListHead = Graph_Alloc(play->state.gfxCtx, 3 * sizeof(Gfx));
2020-03-17 04:31:30 +00:00
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6814);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 3) % 128, 32, 32,
1, gameplayFrames % 128, (gameplayFrames * 3) % 128, 32, 32));
gSPSegment(POLY_XLU_DISP++, 0x09,
Gfx_TwoTexScroll(play->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
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gSPSegment(POLY_XLU_DISP++, 0x0A, displayListHead);
2020-03-17 04:31:30 +00:00
if ((gSaveContext.dayTime > CLOCK_TIME(7, 0)) && (gSaveContext.dayTime <= CLOCK_TIME(18, 30))) {
2020-03-17 04:31:30 +00:00
gSPEndDisplayList(displayListHead);
2020-03-22 21:19:43 +00:00
} else {
if (gSaveContext.dayTime > CLOCK_TIME(18, 30)) {
if (play->roomCtx.unk_74[0] != 255) {
Math_StepToS(&play->roomCtx.unk_74[0], 255, 5);
2020-03-22 21:19:43 +00:00
}
} else if (gSaveContext.dayTime >= CLOCK_TIME(6, 0)) {
if (play->roomCtx.unk_74[0] != 0) {
Math_StepToS(&play->roomCtx.unk_74[0], 0, 10);
2020-03-22 21:19:43 +00:00
}
2020-03-17 04:31:30 +00:00
}
gDPSetPrimColor(displayListHead++, 0, 0, 255, 255, 255, play->roomCtx.unk_74[0]);
gSPDisplayList(displayListHead++, spot00_room_0DL_012B20);
2020-03-17 04:31:30 +00:00
gSPEndDisplayList(displayListHead);
}
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6866);
2020-03-17 04:31:30 +00:00
}
void* sKakarikoWindowTextures[] = {
gKakarikoVillageDayWindowTex,
gKakarikoVillageNightWindowTex,
};
2020-03-17 04:31:30 +00:00
// Scene Draw Config 2
void func_8009DD5C(PlayState* play) {
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6890);
2020-03-17 04:31:30 +00:00
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sKakarikoWindowTextures[((void)0, gSaveContext.nightFlag)]));
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6903);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 3
void func_8009DE78(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6917);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 6) % 128, 32, 32,
1, gameplayFrames % 128, (gameplayFrames * 6) % 128, 32, 32));
gSPSegment(POLY_XLU_DISP++, 0x09,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 3) % 128, 32, 32,
1, gameplayFrames % 128, (gameplayFrames * 3) % 128, 32, 32));
gSPSegment(POLY_XLU_DISP++, 0x0A,
Gfx_TwoTexScroll(play->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
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6948);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 4
void func_8009E0B8(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
u8 spA3;
u16 spA0;
Gfx* displayListHead;
spA3 = 128;
spA0 = 500;
displayListHead = Graph_Alloc(play->state.gfxCtx, 6 * sizeof(Gfx));
2020-03-17 04:31:30 +00:00
if (1) {}
if (1) {}
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6965);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_XLU_DISP++, 0x09,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32,
1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
gSPSegment(POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScroll(play->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
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
if (gSaveContext.sceneSetupIndex == 4) {
spA3 = 255 - (u8)play->roomCtx.unk_74[0];
} else if (gSaveContext.sceneSetupIndex == 6) {
spA0 = play->roomCtx.unk_74[0] + 500;
} 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
gSPSegment(POLY_OPA_DISP++, 0x0A, displayListHead);
2020-03-17 04:31:30 +00:00
gDPPipeSync(displayListHead++);
gDPSetEnvColor(displayListHead++, 128, 128, 128, spA3);
2020-03-17 04:31:30 +00:00
gSPEndDisplayList(displayListHead++);
gSPSegment(POLY_XLU_DISP++, 0x0B, displayListHead);
gSPSegment(POLY_OPA_DISP++, 0x0B, displayListHead);
2020-03-17 04:31:30 +00:00
gDPPipeSync(displayListHead++);
gDPSetEnvColor(displayListHead++, 128, 128, 128, spA0 * 0.1f);
2020-03-17 04:31:30 +00:00
gSPEndDisplayList(displayListHead);
gSPSegment(POLY_OPA_DISP++, 0x0C,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, (s16)(-play->roomCtx.unk_74[0] * 0.02f), 32, 16, 1, 0,
(s16)(-play->roomCtx.unk_74[0] * 0.02f), 32, 16));
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7044);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 5
void func_8009E54C(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7058);
2020-03-17 04:31:30 +00:00
if ((gSaveContext.sceneSetupIndex > 3) || (LINK_IS_ADULT && !GET_EVENTCHKINF(EVENTCHKINF_69))) {
play->roomCtx.unk_74[0] = 87;
2020-03-22 21:19:43 +00:00
}
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_OPA_DISP++, 0x08,
Gfx_TwoTexScrollEnvColor(play->state.gfxCtx, 0, gameplayFrames, gameplayFrames, 32, 32, 1, 0, 0, 32, 32,
0, 0, 0, play->roomCtx.unk_74[0] + 168));
gSPSegment(POLY_OPA_DISP++, 0x09,
Gfx_TwoTexScrollEnvColor(play->state.gfxCtx, 0, -gameplayFrames, -gameplayFrames, 32, 32, 1, 0, 0, 16,
64, 0, 0, 0, play->roomCtx.unk_74[0] + 168));
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 255, 255, 255, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7097);
2020-03-17 04:31:30 +00:00
}
void* sZorasDomainEntranceTextures[] = {
gZorasDomainDayEntranceTex,
gZorasDomainNightEntranceTex,
};
2020-03-17 04:31:30 +00:00
// Scene Draw Config 6
void func_8009E730(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
u32 var;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7123);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
2020-03-17 04:31:30 +00:00
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
}
gSPSegment(POLY_OPA_DISP++, 0x0C, Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, 0, 64, 32, 1, 0, var, 64, 32));
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gSPSegment(POLY_XLU_DISP++, 0x08,
SEGMENTED_TO_VIRTUAL(sZorasDomainEntranceTextures[((void)0, gSaveContext.nightFlag)]));
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7147);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 7
void func_8009E8C0(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7161);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_OPA_DISP++, 0x08,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, (gameplayFrames * 1) % 128, 0, 32, 32, 1, 0, 0, 32, 32));
gSPSegment(POLY_XLU_DISP++, 0x09,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, 255 - (gameplayFrames * 2) % 256, 64, 64, 1, 0,
255 - (gameplayFrames * 2) % 256, 64, 64));
gSPSegment(POLY_XLU_DISP++, 0x0A,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, (gameplayFrames * 1) % 128, 32, 32, 1, 0,
(gameplayFrames * 1) % 128, 32, 32));
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7192);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 8
void func_8009EAD8(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7206);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, (gameplayFrames * 3) % 1024, 32, 256, 1, 0,
(gameplayFrames * 3) % 1024, 32, 256));
gSPSegment(POLY_XLU_DISP++, 0x09,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, (gameplayFrames * 1) % 256, 64, 64, 1, 0,
(gameplayFrames * 1) % 256, 64, 64));
gSPSegment(POLY_XLU_DISP++, 0x0A,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, (gameplayFrames * 2) % 128, 32, 32, 1, 0,
(gameplayFrames * 2) % 128, 32, 32));
gSPSegment(POLY_OPA_DISP++, 0x0B,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, 0, 32, 32, 1, 0, 127 - (gameplayFrames * 3) % 128, 32, 32));
gSPSegment(POLY_XLU_DISP++, 0x0C,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, (gameplayFrames * 1) % 128, 32, 32, 1, 0,
(gameplayFrames * 1) % 128, 32, 32));
gSPSegment(POLY_XLU_DISP++, 0x0D,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, (gameplayFrames * 1) % 64, 16, 16, 1, 0,
(gameplayFrames * 1) % 64, 16, 16));
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7260);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 9
void func_8009EE44(PlayState* play) {
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
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7274);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(
POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, gameplayFrames % 128, 0, 32, 16, 1, gameplayFrames % 128, 0, 32, 16));
gSPSegment(POLY_XLU_DISP++, 0x09,
Gfx_TwoTexScroll(play->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
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
if ((play->roomCtx.unk_74[0] == 0) && (INV_CONTENT(ITEM_COJIRO) == ITEM_COJIRO)) {
if (play->roomCtx.unk_74[1] == 50) {
func_8002F7DC(&GET_PLAYER(play)->actor, NA_SE_EV_CHICKEN_CRY_M);
play->roomCtx.unk_74[0] = 1;
2020-03-17 04:31:30 +00:00
}
play->roomCtx.unk_74[1]++;
2020-03-17 04:31:30 +00:00
}
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7309);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 10
void func_8009F074(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7323);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_OPA_DISP++, 0x08,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, 0, 32, 32, 1, 0, 127 - gameplayFrames % 128, 32, 32));
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7339);
2020-03-17 04:31:30 +00:00
}
void* D_8012A380[] = {
gSpot12_009678Tex,
gSpot12_00DE78Tex,
};
2020-03-17 04:31:30 +00:00
// Scene Draw Config 11
void func_8009F1B4(PlayState* play) {
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7363);
2020-03-17 04:31:30 +00:00
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A380[((void)0, gSaveContext.nightFlag)]));
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7371);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 12
void func_8009F270(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7385);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(
POLY_OPA_DISP++, 0x08,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, gameplayFrames % 128, 32, 32, 1, 0, gameplayFrames % 128, 32, 32));
gSPSegment(
POLY_XLU_DISP++, 0x09,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, gameplayFrames % 128, 32, 32, 1, 0, gameplayFrames % 128, 32, 32));
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7409);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 13
void func_8009F40C(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7423);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 10) % 128, 32, 32,
1, gameplayFrames % 128, (gameplayFrames * 10) % 128, 32, 32));
gSPSegment(POLY_XLU_DISP++, 0x09,
Gfx_TwoTexScroll(play->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
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7443);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 14
void func_8009F5D4(PlayState* play) {
Gfx* displayListHead = Graph_Alloc(play->state.gfxCtx, 3 * sizeof(Gfx));
2020-03-17 04:31:30 +00:00
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7461);
2020-03-17 04:31:30 +00:00
gSPSegment(POLY_XLU_DISP++, 0x08, displayListHead);
2020-03-17 04:31:30 +00:00
if ((gSaveContext.dayTime > CLOCK_TIME(7, 0)) && (gSaveContext.dayTime <= CLOCK_TIME(18, 0))) {
2020-03-17 04:31:30 +00:00
gSPEndDisplayList(displayListHead);
2020-03-22 21:19:43 +00:00
} else {
if (gSaveContext.dayTime > CLOCK_TIME(18, 0)) {
if (play->roomCtx.unk_74[0] != 255) {
Math_StepToS(&play->roomCtx.unk_74[0], 255, 5);
2020-03-22 21:19:43 +00:00
}
} else if (gSaveContext.dayTime >= CLOCK_TIME(6, 0)) {
if (play->roomCtx.unk_74[0] != 0) {
Math_StepToS(&play->roomCtx.unk_74[0], 0, 10);
2020-03-22 21:19:43 +00:00
}
2020-03-17 04:31:30 +00:00
}
gDPSetPrimColor(displayListHead++, 0, 0, 255, 255, 255, play->roomCtx.unk_74[0]);
gSPDisplayList(displayListHead++, spot16_room_0DL_00AA48);
2020-03-17 04:31:30 +00:00
gSPEndDisplayList(displayListHead);
}
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7495);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 15
void func_8009F7D4(PlayState* play) {
s8 sp6F = coss((play->gameplayFrames * 1500) & 0xFFFF) >> 8;
s8 sp6E = coss((play->gameplayFrames * 1500) & 0xFFFF) >> 8;
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7512);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
2020-03-17 04:31:30 +00:00
sp6F = (sp6F >> 1) + 192;
sp6E = (sp6E >> 1) + 192;
gSPSegment(
POLY_OPA_DISP++, 0x08,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, gameplayFrames % 128, 32, 32, 1, 0, gameplayFrames % 128, 32, 32));
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, sp6F, sp6E, 255, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7530);
2020-03-17 04:31:30 +00:00
}
void* sGoronCityEntranceTextures[] = {
gGoronCityDayEntranceTex,
gGoronCityNightEntranceTex,
};
2020-03-17 04:31:30 +00:00
// Scene Draw Config 16
void func_8009F9D0(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7555);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_OPA_DISP++, 0x08,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, 127 - gameplayFrames % 128, 32, 32, 1, gameplayFrames % 128,
0, 32, 32));
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gSPSegment(POLY_XLU_DISP++, 0x08,
SEGMENTED_TO_VIRTUAL(sGoronCityEntranceTextures[((void)0, gSaveContext.nightFlag)]));
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7578);
2020-03-17 04:31:30 +00:00
}
void* sLonLonRanchWindowTextures[] = {
gLonLonRanchDayWindowTex,
gLonLonRangeNightWindowsTex,
};
2020-03-17 04:31:30 +00:00
// Scene Draw Config 17
void func_8009FB74(PlayState* play) {
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7602);
2020-03-17 04:31:30 +00:00
gSPSegment(POLY_OPA_DISP++, 0x08,
SEGMENTED_TO_VIRTUAL(sLonLonRanchWindowTextures[((void)0, gSaveContext.nightFlag)]));
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7615);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 18
void func_8009FC90(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7630);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_OPA_DISP++, 0x08,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, 127 - gameplayFrames % 128, 32, 32, 1,
127 - gameplayFrames % 128, 0, 32, 32));
gSPSegment(POLY_OPA_DISP++, 0x09,
Gfx_TwoTexScroll(play->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
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 64);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 64);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7653);
2020-03-17 04:31:30 +00:00
}
f32 D_8012A398 = 0.0f;
void func_8009FE58(PlayState* play) {
2020-03-17 04:31:30 +00:00
static s16 D_8012A39C = 538;
static s16 D_8012A3A0 = 4272;
u32 gameplayFrames;
f32 temp;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7712);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
if (play->sceneNum == SCENE_BDAN) {
gSPSegment(POLY_OPA_DISP++, 0x08,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, gameplayFrames % 128, (gameplayFrames * 2) % 128, 32, 32, 1,
127 - gameplayFrames % 128, (gameplayFrames * 2) % 128, 32, 32));
gSPSegment(POLY_OPA_DISP++, 0x0B,
Gfx_TwoTexScroll(play->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 {
gSPSegment(
POLY_OPA_DISP++, 0x08,
Gfx_TexScroll(play->state.gfxCtx, (127 - (gameplayFrames * 1)) % 128, (gameplayFrames * 1) % 128, 32, 32));
2020-03-17 04:31:30 +00:00
}
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
if (FrameAdvance_IsEnabled(play) != true) {
2020-03-17 04:31:30 +00:00
D_8012A39C += 1820;
D_8012A3A0 += 1820;
temp = 0.020000001f;
View_SetDistortionOrientation(&play->view,
((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));
View_SetDistortionScale(&play->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(&play->view, 0.95f);
2020-03-17 04:31:30 +00:00
switch (play->roomCtx.unk_74[0]) {
2020-03-17 04:31:30 +00:00
case 0:
break;
case 1:
if (play->roomCtx.unk_74[1] < 1200) {
play->roomCtx.unk_74[1] += 200;
2020-03-22 21:19:43 +00:00
} else {
play->roomCtx.unk_74[0]++;
2020-03-17 04:31:30 +00:00
}
break;
case 2:
if (play->roomCtx.unk_74[1] > 0) {
play->roomCtx.unk_74[1] -= 30;
2020-03-22 21:19:43 +00:00
} else {
play->roomCtx.unk_74[1] = 0;
play->roomCtx.unk_74[0] = 0;
2020-03-17 04:31:30 +00:00
}
break;
}
D_8012A398 += 0.15f + (play->roomCtx.unk_74[1] * 0.001f);
2020-03-17 04:31:30 +00:00
}
if (play->roomCtx.curRoom.num == 2) {
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
gSPSegment(POLY_OPA_DISP++, 0x0D, Matrix_NewMtx(play->state.gfxCtx, "../z_scene_table.c", 7809));
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7811);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 26
void func_800A0334(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7825);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 512, 32, 128,
1, gameplayFrames % 128, (gameplayFrames * 1) % 512, 32, 128));
gSPSegment(POLY_XLU_DISP++, 0x09,
Gfx_TwoTexScroll(play->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32,
1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
gSPSegment(POLY_OPA_DISP++, 0x0A,
Gfx_TwoTexScroll(play->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
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7852);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 52
void func_800A055C(PlayState* play) {
func_8009BEEC(play);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 51
void func_800A057C(PlayState* play) {
func_8009BEEC(play);
2020-03-17 04:31:30 +00:00
}
// Scene Draw Config 49
void func_800A059C(PlayState* play) {
2020-03-17 04:31:30 +00:00
u32 gameplayFrames;
OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7893);
2020-03-17 04:31:30 +00:00
gameplayFrames = play->gameplayFrames;
gSPSegment(POLY_OPA_DISP++, 0x08, Gfx_TexScroll(play->state.gfxCtx, 127 - (gameplayFrames * 2) % 128, 0, 32, 64));
gSPSegment(POLY_OPA_DISP++, 0x09, Gfx_TexScroll(play->state.gfxCtx, 0, (gameplayFrames * 2) % 512, 128, 128));
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
2020-03-17 04:31:30 +00:00
CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7910);
2020-03-17 04:31:30 +00:00
}
void (*sSceneDrawHandlers[])(PlayState*) = {
2020-03-22 21:19:43 +00:00
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
};
void Scene_Draw(PlayState* play) {
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;
}
OPEN_DISPS(play->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) {
gSPDisplayList(POLY_OPA_DISP++, sDefaultDisplayList);
gSPDisplayList(POLY_XLU_DISP++, sDefaultDisplayList);
2020-03-17 04:31:30 +00:00
}
CLOSE_DISPS(play->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) {
sSceneDrawHandlers[play->sceneConfig](play);
2020-03-22 21:19:43 +00:00
}
} else {
sSceneDrawHandlers[play->sceneConfig](play);
2020-03-22 21:19:43 +00:00
}
2020-03-17 04:31:30 +00:00
}