1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-11-13 04:39:36 +00:00

Scene cleanups (#1002)

* remove fake match

* u32 segment -> void* and add symbols to sEntranceCutsceneTable

* rename some symbols

* remove if1

* add the last missing symbol

* add symbols for almost all extrence textures

* finish adding the symbols

* Remove comment

* spelling fix

* Fig's and Dragorn's fixes

* add symbols to unkknown array

* format

* romans fixes
This commit is contained in:
louist103 2021-11-08 21:15:37 -05:00 committed by GitHub
parent 781d497264
commit 0b18419489
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
44 changed files with 281 additions and 107 deletions

View file

@ -1,5 +1,7 @@
<Root>
<File Name="Bmori1_scene" Segment="2">
<Texture Name="gForestTempleDayEntranceTex" OutName="day_entrance" Format="ia16" Width="8" Height="128" Offset="0x14D90"/>
<Texture Name="gForestTempleNightEntranceTex" OutName="night_entrance" Format="ia16" Width="8" Height="128" Offset="0x14590"/>
<Scene Name="Bmori1_scene" Offset="0x0"/>
</File>
<File Name="Bmori1_room_0" Segment="3">

View file

@ -1,5 +1,7 @@
<Root>
<File Name="MIZUsin_scene" Segment="2">
<Texture Name="gWaterTempleDayEntranceTex" OutName="day_entrance" Format="ia16" Width="8" Height="64" Offset="0x14C30"/>
<Texture Name="gWaterTempleNightEntranceTex" OutName="night_entrance" Format="ia16" Width="8" Height="64" Offset="0x15830"/>
<Scene Name="MIZUsin_scene" Offset="0x0"/>
</File>
<File Name="MIZUsin_room_0" Segment="3">

View file

@ -1,5 +1,6 @@
<Root>
<File Name="bdan_scene" Segment="2">
<Cutscene Name="gJabuJabuIntroCs" Offset="0x15600"/>
<Scene Name="bdan_scene" Offset="0x0"/>
</File>
<File Name="bdan_room_0" Segment="3">

View file

@ -1,5 +1,18 @@
<Root>
<File Name="ddan_scene" Segment="2">
<Texture Name="gDCDayEntranceTex" OutName="day_entrance" Format="ci8" Width="32" Height="64" Offset="0x12378" TlutOffset="0x11D70"/>
<Texture Name="gDCNightEntranceTex" OutName="night_entrance" Format="ci8" Width="32" Height="64" Offset="0x13378" TlutOffset="0x11D70"/>
<!-- these need to have TLUTs extract from room 0 at 0x11290-->
<Texture Name="gDCLavaFloor1Tex" OutName="Lava_floor_1" Format="ci8" Width="32" Height="32" Offset="0x11F78" />
<Texture Name="gDCLavaFloor2Tex" OutName="Lava_floor_2" Format="ci8" Width="32" Height="32" Offset="0x14778" />
<Texture Name="gDCLavaFloor3Tex" OutName="Lava_floor_3" Format="ci8" Width="32" Height="32" Offset="0x14378" />
<Texture Name="gDCLavaFloor4Tex" OutName="Lava_floor_4" Format="ci8" Width="32" Height="32" Offset="0x13F78" />
<Texture Name="gDCLavaFloor5Tex" OutName="Lava_floor_5" Format="ci8" Width="32" Height="32" Offset="0x14B78" />
<Texture Name="gDCLavaFloor6Tex" OutName="Lava_floor_6" Format="ci8" Width="32" Height="32" Offset="0x13B78" />
<Texture Name="gDCLavaFloor7Tex" OutName="Lava_floor_7" Format="ci8" Width="32" Height="32" Offset="0x12F78" />
<Texture Name="gDCLavaFloor8Tex" OutName="Lava_floor_8" Format="ci8" Width="32" Height="32" Offset="0x12B78" />
<Cutscene Name="gDcOpeningCs" Offset="0x14F80"/>
<Scene Name="ddan_scene" Offset="0x0"/>
</File>

View file

@ -1,6 +1,7 @@
<Root>
<File Name="ganon_tou_scene" Segment="2">
<Cutscene Name="gRainbowBridgeCs" Offset="0x2640"/>
<Cutscene Name="gGanonsCastleIntroCs" Offset="0x4280"/>
<Scene Name="ganon_tou_scene" Offset="0x0"/>
</File>
<File Name="ganon_tou_room_0" Segment="3">

View file

@ -1,5 +1,7 @@
<Root>
<File Name="gerudoway_scene" Segment="2">
<Texture Name="gThievesHideoutNightEntranceTex" OutName="night_entrance" Format="ia16" Width="128" Height="4" Offset="0xB920"/>
<Texture Name="gThievesHideoutDayEntranceTex" OutName="day_entrance" Format="ia16" Width="128" Height="4" Offset="0xBD20"/>
<Scene Name="gerudoway_scene" Offset="0x0"/>
</File>
<File Name="gerudoway_room_0" Segment="3">

View file

@ -1,7 +1,8 @@
<Root>
<File Name="ice_doukutu_scene" Segment="2">
<Cutscene Name="gIceCavernSerenadeCs" Offset="0x330"/>
<Texture Name="gIceCavernNightEntranceTex" OutName="night_entrance" Format="ia16" Width="64" Height="4" Offset="0xF8C0"/>
<Texture Name="gIceCavernDayEntranceTex" OutName="day_entrance" Format="ia16" Width="64" Height="4" Offset="0xFAC0"/>
<Scene Name="ice_doukutu_scene" Offset="0x0"/>
</File>
<File Name="ice_doukutu_room_0" Segment="3">

View file

@ -1,6 +1,7 @@
<Root>
<File Name="jyasinboss_scene" Segment="2">
<Cutscene Name="gNabooruKnuckleDefeatCs" Offset="0x3F80"/>
<Cutscene Name="gSpiritBossNabooruKnuckleIntroCs" Offset="0x2BB0"/>
<Cutscene Name="gSpiritBossNabooruKnuckleDefeatCs" Offset="0x3F80"/>
<Scene Name="jyasinboss_scene" Offset="0x0"/>
</File>
<File Name="jyasinboss_room_0" Segment="3">

View file

@ -1,5 +1,7 @@
<Root>
<File Name="jyasinzou_scene" Segment="2">
<Texture Name="gSpiritTempleDayEntranceTex" OutName="day_entrance" Format="ia16" Width="8" Height="128" Offset="0x18920"/>
<Texture Name="gSpiritTempleNightEntranceTex" OutName="night_entrance" Format="ia16" Width="8" Height="128" Offset="0x18020"/>
<Scene Name="jyasinzou_scene" Offset="0x0"/>
</File>
<File Name="jyasinzou_room_0" Segment="3">

View file

@ -1,5 +1,7 @@
<Root>
<File Name="men_scene" Segment="2">
<Texture Name="gGTGDayEntranceTex" OutName="day_entrance" Format="ia16" Width="8" Height="128" Offset="0xF8C0"/>
<Texture Name="gGTGNightEntranceTex" OutName="night_entrance" Format="ia16" Width="8" Height="128" Offset="0x100C0"/>
<Scene Name="men_scene" Offset="0x0"/>
</File>
<File Name="men_room_0" Segment="3">

View file

@ -1,5 +1,9 @@
<Root>
<File Name="ydan_scene" Segment="2">
<Cutscene Name="gDekuTreeIntroCs" Offset="0xB650"/>
<Texture Name="gYdanTex_00BA18" Format="rgba16" Width="32" Height="64" Offset="0xBA18"/>
<Texture Name="gYdanTex_00CA18" Format="rgba16" Width="32" Height="64" Offset="0xCA18"/>
<Scene Name="ydan_scene" Offset="0x0"/>
</File>
<File Name="ydan_room_0" Segment="3">

View file

@ -1,8 +1,9 @@
<Root>
<File Name="miharigoya_scene" Segment="2">
<Blob Name="gMiharigoyaBlob_001350" Offset="0x1350" Size="0x2000"/>
<Blob Name="gMiharigoyaBlob_003550" Offset="0x3550" Size="0x1000"/>
<Blob Name="gMiharigoyaBlob_006550" Offset="0x6550" Size="0x1000"/>
<Texture Name="gGuardHouseOutSideView2NightTex" OutName="view_2_night" Format="rgba16" Width="64" Height="32" Offset="0x1350" />
<Texture Name="gGuardHouseOutSideView2DayTex" OutName="view_2_day" Format="rgba16" Width="64" Height="32" Offset="0x2350" />
<Texture Name="gGuardHouseOutSideView1NightTex" OutName="view_1_night" Format="rgba16" Width="64" Height="32" Offset="0x3550" />
<Texture Name="gGuardHouseOutSideView1DayTex" OutName="view_1_day" Format="rgba16" Width="64" Height="32" Offset="0x6550" />
<Scene Name="miharigoya_scene" Offset="0x0"/>
</File>
<File Name="miharigoya_room_0" Segment="3">

View file

@ -1,7 +1,8 @@
<Root>
<File Name="tokinoma_scene" Segment="2">
<Cutscene Name="gFirstAdultCs" Offset="0x46F0"/>
<Cutscene Name="gPreludeCs" Offset="0x6D20"/>
<Cutscene Name="gTempleOfTimeFirstAdultCs" Offset="0x46F0"/>
<Cutscene Name="gTempleOfTimePreludeCs" Offset="0x6D20"/>
<Cutscene Name="gTempleOfTimeIntroCs" Offset="0xCE00"/>
<Scene Name="tokinoma_scene" Offset="0x0"/>
</File>
<File Name="tokinoma_room_0" Segment="3">

View file

@ -1,6 +1,7 @@
<Root>
<File Name="hakaana_ouke_scene" Segment="2">
<Cutscene Name="gSunSongTeachCs" Offset="0x24A0"/>
<Cutscene Name="gSunSongGraveSunSongTeachCs" Offset="0x24A0"/>
<Cutscene Name="gSunSongGraveSunSongTeachPart2Cs" Offset="0x28E0"/>
<Scene Name="hakaana_ouke_scene" Offset="0x0"/>
</File>
<File Name="hakaana_ouke_room_0" Segment="3">

View file

@ -1,5 +1,7 @@
<Root>
<File Name="souko_scene" Segment="2">
<Texture Name="gLonLonHouseDayEntranceTex" OutName="day_entrance" Format="ia16" Width="64" Height="4" Offset="0x5210"/>
<Texture Name="gLonLonHouseNightEntranceTex" OutName="night_entrance" Format="ia16" Width="64" Height="4" Offset="0x5010"/>
<Scene Name="souko_scene" Offset="0x0"/>
</File>
<File Name="souko_room_0" Segment="3">

View file

@ -1,6 +1,12 @@
<Root>
<File Name="spot00_scene" Segment="2">
<Cutscene Name="gZeldaSongOfTimeCs" Offset="0xF870"/>
<Cutscene Name="gHyruleFieldGetOoTCs" Offset="0xBB80"/>
<Cutscene Name="gHyruleFieldZeldaSongOfTimeCs" Offset="0xF870"/>
<Cutscene Name="gHyruleFieldEastEponaJumpCs" Offset="0xFF00"/>
<Cutscene Name="gHyruleFieldIntroCs" Offset="0x13AA0"/>
<Cutscene Name="gHyruleFieldSouthEponaJumpCs" Offset="0xF9E0"/>
<Cutscene Name="gHyruleFieldWestEponaJumpCs" Offset="0x10550"/>
<Cutscene Name="gHyruleFieldGateEponaJumpCs" Offset="0x10B30"/>
<Scene Name="spot00_scene" Offset="0x0"/>
<Texture Name="spot00_scene_Tex_02A198" Format="ia8" Width="8" Height="16" Offset="0x2A198"/>
</File>

View file

@ -1,5 +1,8 @@
<Root>
<File Name="spot01_scene" Segment="2">
<Cutscene Name="gKakarikoVillageIntroCs" Offset="0xA540"/>
<Texture Name="gKakarikoVillageDayWindowTex" OutName="day_window" Format="rgba16" Width="32" Height="64" Offset="0x15B50"/>
<Texture Name="gKakarikoVillageNightWindowTex" OutName="night_window" Format="rgba16" Width="32" Height="64" Offset="0x16B50"/>
<Scene Name="spot01_scene" Offset="0x0"/>
</File>
<File Name="spot01_room_0" Segment="3">

View file

@ -6,6 +6,7 @@
<Cutscene Name="spot02_sceneCutsceneData0x003C80" Offset="0x3C80"/>
<Cutscene Name="spot02_scene_Cs_005020" Offset="0x5020"/>
<Cutscene Name="gGraveyardIntroCs" Offset="0x70C0"/>
</File>
<File Name="spot02_room_0" Segment="3">
<DList Name="gSpot02DL_0026D0" Offset="0x26D0"/>

View file

@ -3,7 +3,7 @@
<Path Name="gSpot04Path_000314" Offset="0x314"/>
<Path Name="gSpot04Path_00031C" Offset="0x31C"/>
<Path Name="gSpot04Path_00D730" Offset="0xD730"/>
<Cutscene Name="gKokiriForestDekuSproutCs" Offset="0xC9D0"/>
<Cutscene Name="gSpot04Cs_10E20" Offset="0x10E20"/>
<Scene Name="spot04_scene" Offset="0x0"/>

View file

@ -1,8 +1,9 @@
<Root>
<File Name="spot06_scene" Segment="2">
<Cutscene Name="gFireArrowsCS" Offset="0x7020"/>
<Cutscene Name="gLakeHyliaFireArrowsCS" Offset="0x7020"/>
<Cutscene Name="gLakeHyliaOwlCs" Offset="0x1B0C0"/>
<Path Name="gSpot06Path_00776C" Offset="0x776C"/>
<Cutscene Name="gLakeHyliaIntroCs" Offset="0x7A30"/>
<Scene Name="spot06_scene" Offset="0x0"/>
</File>
<File Name="spot06_room_0" Segment="3">

View file

@ -1,5 +1,8 @@
<Root>
<File Name="spot07_scene" Segment="2">
<Cutscene Name="gZorasDomainIntroCs" Offset="0x3D70"/>
<Texture Name="gZorasDomainDayEntranceTex" OutName="day_entrance" Format="ia8" Width="8" Height="8" Offset="0x8F98"/>
<Texture Name="gZorasDomainNightEntranceTex" OutName="night_entrance" Format="ia8" Width="8" Height="8" Offset="0x8FD8"/>
<Scene Name="spot07_scene" Offset="0x0"/>
</File>
<File Name="spot07_room_0" Segment="3">

View file

@ -1,5 +1,6 @@
<Root>
<File Name="spot08_scene" Segment="2">
<Cutscene Name="gZorasFountainIntroCs" Offset="0x4A80"/>
<Scene Name="spot08_scene" Offset="0x0"/>
</File>
<File Name="spot08_room_0" Segment="3">

View file

@ -2,7 +2,7 @@
<File Name="spot09_scene" Segment="2">
<Cutscene Name="gGerudoValleyBridgeJumpFieldFortressCs" Offset="0x2AC0"/>
<Cutscene Name="gGerudoValleyBridgeJumpFortressToFieldCs" Offset="0x230"/>
<Cutscene Name="gGerudoValleyIntroCs" Offset="0x31E0"/>
<Path Name="gSpot09Path_002F60" Offset="0x2F60"/>
<Path Name="gSpot09Path_002F68" Offset="0x2F68"/>

View file

@ -1,5 +1,6 @@
<Root>
<File Name="spot11_scene" Segment="2">
<Cutscene Name="gDesertColossusIntroCs" Offset="0x7990"/>
<Scene Name="spot11_scene" Offset="0x0"/>
</File>
<File Name="spot11_room_0" Segment="3">

View file

@ -1,7 +1,9 @@
<Root>
<File Name="spot12_scene" Segment="2">
<Cutscene Name="gSpot12Cs_006490" Offset="0x6490"/>
<Cutscene Name="gGerudoFortressFirstCaptureCs" Offset="0x55C0"/>
<Cutscene Name="gGerudoFortressIntroCs" Offset="0x6490"/>
<Texture Name="gSpot12_009678Tex" Format="rgba16" Width="64" Height="32" Offset="0x9678"/>
<Texture Name="gSpot12_00DE78Tex" Format="rgba16" Width="64" Height="32" Offset="0xDE78"/>
<Scene Name="spot12_scene" Offset="0x0"/>
</File>
<File Name="spot12_room_0" Segment="3">

View file

@ -1,5 +1,6 @@
<Root>
<File Name="spot15_scene" Segment="2">
<Cutscene Name="gHyruleCastleIntroCs" Offset="0x3F40"/>
<Scene Name="spot15_scene" Offset="0x0"/>
</File>
<File Name="spot15_room_0" Segment="3">

View file

@ -1,6 +1,7 @@
<Root>
<File Name="spot16_scene" Segment="2">
<Cutscene Name="gDmtOwlCs" Offset="0x1E6A0"/>
<Cutscene Name="gDMTOwlCs" Offset="0x1E6A0"/>
<Cutscene Name="gDMTIntroCs" Offset="0x7EA0"/>
<Scene Name="spot16_scene" Offset="0x0"/>
<Texture Name="spot16_scene_Tex_01AE98" Format="i4" Width="64" Height="64" Offset="0x1AE98"/>
</File>

View file

@ -1,6 +1,7 @@
<Root>
<File Name="spot17_scene" Segment="2">
<Cutscene Name="gBoleroCs" Offset="0x45D0"/>
<Cutscene Name="gDeathMountainCraterBoleroCs" Offset="0x45D0"/>
<Cutscene Name="gDeathMountainCraterIntroCs" Offset="0x76D0"/>
<Scene Name="spot17_scene" Offset="0x0"/>
</File>
<File Name="spot17_room_0" Segment="3">

View file

@ -3,7 +3,9 @@
<Cutscene Name="gGoronCityDaruniaCorrectCs" Offset="0x59E0"/>
<Cutscene Name="gGoronCityDarunia01Cs" Offset="0x6930"/>
<Cutscene Name="gGoronCityDaruniaWrongCs" Offset="0x7DE0"/>
<Cutscene Name="gGoronCityIntroCs" Offset="0x8400"/>
<Texture Name="gGoronCityNightEntranceTex" OutName="night_entrance" Format="ia8" Width="8" Height="8" Offset="0x8FC8"/>
<Texture Name="gGoronCityDayEntranceTex" OutName="day_entrance" Format="ia8" Width="8" Height="8" Offset="0x9808"/>
<Scene Name="spot18_scene" Offset="0x0"/>
</File>
<File Name="spot18_room_0" Segment="3">

View file

@ -1,5 +1,8 @@
<Root>
<File Name="spot20_scene" Segment="2">
<Cutscene Name="gLonLonRanchIntroCs" Offset="0x5BD0"/>
<Texture Name="gLonLonRanchDayWindowTex" OutName="day_window" Format="rgba16" Width="32" Height="64" Offset="0x81E0"/>
<Texture Name="gLonLonRangeNightWindowsTex" OutName="night_window" Format="rgba16" Width="32" Height="64" Offset="0xFBE0"/>
<Scene Name="spot20_scene" Offset="0x0"/>
</File>
<File Name="spot20_room_0" Segment="3">

View file

@ -831,7 +831,7 @@ void func_80064558(GlobalContext* globalCtx, CutsceneContext* csCtx);
void func_800645A0(GlobalContext* globalCtx, CutsceneContext* csCtx);
void Cutscene_HandleEntranceTriggers(GlobalContext* globalCtx);
void Cutscene_HandleConditionalTriggers(GlobalContext* globalCtx);
void Cutscene_SetSegment(GlobalContext* globalCtx, u32 segment);
void Cutscene_SetSegment(GlobalContext* globalCtx, void* segment);
void* MemCopy(void* dest, void* src, s32 size);
void GetItem_Draw(GlobalContext* globalCtx, s16 drawId);
void func_8006BA00(GlobalContext* globalCtx);

View file

@ -2927,15 +2927,10 @@ extern u64 gJpegUCodeData[];
//extern ? D_8015E648;
extern SaveContext gSaveContext; // 0x8015E660
extern GameInfo* gGameInfo; // 0x8015FA90
//extern ? D_8015FA98;
//extern ? D_8015FA9B;
//extern ? D_8015FC18;
extern u16 D_8015FCC0;
extern u16 D_8015FCC2;
extern u16 D_8015FCC4;
//extern ? D_8015FCC6;
extern u8 D_8015FCC8;
//extern ? D_8015FCCA;
extern u8 gCustomLensFlareOn;
extern Vec3f gCustomLensFlarePos;
extern s16 D_8015FD06;

View file

@ -1553,7 +1553,7 @@ typedef struct {
typedef struct {
/* 0x00 */ u32 segments[NUM_SEGMENTS];
/* 0x40 */ u32 dlStack[18];
/* 0x40 */ Gfx* dlStack[18];
/* 0x88 */ s32 dlDepth;
/* 0x8C */ u32 dlCnt;
/* 0x90 */ u32 vtxCnt;

View file

@ -87,7 +87,7 @@ typedef struct {
typedef struct {
/* 0x00 */ AnimationHeaderCommon common;
/* 0x04 */ u32 segment;
/* 0x04 */ void* segment;
} LinkAnimationHeader; // size = 0x8
typedef struct {

View file

@ -7,7 +7,7 @@ typedef struct {
/* 0x00 */ u16 entrance; // entrance index upon which the cutscene should trigger
/* 0x02 */ u8 ageRestriction; // 0 for adult only, 1 for child only, 2 for both ages
/* 0x03 */ u8 flag; // eventChkInf flag bound to the entrance cutscene
/* 0x04 */ u32 segAddr; // segment offset location of the cutscene
/* 0x04 */ void* segAddr; // segment offset location of the cutscene
} EntranceCutscene; // size = 0x8
typedef struct {

View file

@ -26,31 +26,31 @@ typedef struct {
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ u32 segment;
/* 0x04 */ void* segment;
} SCmdSpawnList;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 num;
/* 0x04 */ u32 segment;
/* 0x04 */ void* segment;
} SCmdActorList;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ u32 segment;
/* 0x04 */ void* segment;
} SCmdUnused02;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ u32 segment;
/* 0x04 */ void* segment;
} SCmdColHeader;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 num;
/* 0x04 */ u32 segment;
/* 0x04 */ void* segment;
} SCmdRoomList;
typedef struct {
@ -66,7 +66,7 @@ typedef struct {
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ u32 segment;
/* 0x04 */ void* segment;
} SCmdEntranceList;
typedef struct {
@ -84,37 +84,37 @@ typedef struct {
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ u32 segment;
/* 0x04 */ void* segment;
} SCmdMesh;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 num;
/* 0x04 */ u32 segment;
/* 0x04 */ void* segment;
} SCmdObjectList;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 num;
/* 0x04 */ u32 segment;
/* 0x04 */ void* segment;
} SCmdLightList;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ u32 segment;
/* 0x04 */ void* segment;
} SCmdPathList;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 num;
/* 0x04 */ u32 segment;
/* 0x04 */ void* segment;
} SCmdTransiActorList;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 num;
/* 0x04 */ u32 segment;
/* 0x04 */ void* segment;
} SCmdLightSettingList;
typedef struct {
@ -152,7 +152,7 @@ typedef struct {
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ u32 segment;
/* 0x04 */ void* segment;
} SCmdExitList;
typedef struct {
@ -173,13 +173,13 @@ typedef struct {
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ u32 segment;
/* 0x04 */ void* segment;
} SCmdCutsceneData;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ u32 segment;
/* 0x04 */ void* segment;
} SCmdAltHeaders;
typedef struct {

View file

@ -1,6 +1,33 @@
#include "global.h"
#include "z64camera.h"
#include "scenes/indoors/tokinoma/tokinoma_scene.h"
#include "scenes/overworld/spot00/spot00_scene.h"
#include "scenes/overworld/spot01/spot01_scene.h"
#include "scenes/overworld/spot02/spot02_scene.h"
#include "scenes/overworld/spot04/spot04_scene.h"
#include "scenes/overworld/spot05/spot05_scene.h"
#include "scenes/overworld/spot06/spot06_scene.h"
#include "scenes/overworld/spot07/spot07_scene.h"
#include "scenes/overworld/spot08/spot08_scene.h"
#include "scenes/overworld/spot09/spot09_scene.h"
#include "scenes/overworld/spot11/spot11_scene.h"
#include "scenes/overworld/spot12/spot12_scene.h"
#include "scenes/overworld/spot15/spot15_scene.h"
#include "scenes/overworld/spot16/spot16_scene.h"
#include "scenes/overworld/spot17/spot17_scene.h"
#include "scenes/overworld/spot18/spot18_scene.h"
#include "scenes/overworld/spot20/spot20_scene.h"
#include "scenes/dungeons/bdan/bdan_scene.h"
#include "scenes/dungeons/ddan/ddan_scene.h"
#include "scenes/dungeons/ydan/ydan_scene.h"
#include "scenes/dungeons/ganontika/ganontika_scene.h"
#include "scenes/dungeons/ganon_tou/ganon_tou_scene.h"
#include "scenes/dungeons/jyasinboss/jyasinboss_scene.h"
#include "scenes/dungeons/ice_doukutu/ice_doukutu_scene.h"
#include "scenes/misc/hakaana_ouke/hakaana_ouke_scene.h"
u16 D_8011E1C0 = 0;
u16 D_8011E1C4 = 0;
@ -24,31 +51,54 @@ CutsceneStateHandler sCsStateHandlers2[] = {
u8 sTitleCsState = 0;
// TODO: use symbols for these cutscene locations once scenes and rooms are in C
EntranceCutscene sEntranceCutsceneTable[] = {
{ 0x0185, 2, 0xA0, 0x02013AA0 }, { 0x013D, 2, 0xA1, 0x02007EA0 }, { 0x00DB, 2, 0xA3, 0x0200A540 },
{ 0x0108, 2, 0xA4, 0x02003D70 }, { 0x0138, 1, 0xA5, 0x02003F40 }, { 0x014D, 2, 0xA6, 0x02008400 },
{ 0x0053, 2, 0xA7, 0x0200CE00 }, { 0x0000, 2, 0xA8, 0x0200B650 }, { 0x028A, 0, 0x18, 0x0200F9E0 },
{ 0x0292, 0, 0x18, 0x0200FF00 }, { 0x028E, 0, 0x18, 0x02010550 }, { 0x0476, 0, 0x18, 0x02010B30 },
{ 0x050F, 1, 0xA9, 0x0200BB80 }, { 0x0102, 2, 0xB1, 0x02007A30 }, { 0x0117, 2, 0xB2, 0x020031E0 },
{ 0x0129, 2, 0xB3, 0x02006490 }, { 0x0157, 2, 0xB4, 0x02005BD0 }, { 0x0028, 2, 0xB5, 0x02015600 },
{ 0x00E4, 2, 0xB6, 0x020070C0 }, { 0x0225, 2, 0xB7, 0x02004A80 }, { 0x0123, 2, 0xB8, 0x02007990 },
{ 0x0147, 2, 0xB9, 0x020076D0 }, { 0x0138, 0, 0xBA, 0x02004280 }, { 0x0574, 2, 0x5A, 0x020028E0 },
{ 0x0538, 2, 0xBB, gForestBarrierCs }, { 0x053C, 2, 0xBC, gWaterBarrierCs }, { 0x0540, 2, 0xBD, gShadowBarrierCs },
{ 0x0544, 2, 0xBE, gFireBarrierCs }, { 0x0548, 2, 0xBF, gLightBarrierCs }, { 0x054C, 2, 0xAD, gSpiritBarrierCs },
{ 0x008D, 0, 0xC0, 0x02002BB0 }, { 0x03B4, 0, 0xC7, 0x020055C0 }, { 0x0246, 2, 0xB9, 0x020076D0 },
{ 0x05E8, 2, 0xC6, 0x0200C9D0 },
{ 0x0185, 2, 0xA0, gHyruleFieldIntroCs },
{ 0x013D, 2, 0xA1, gDMTIntroCs },
{ 0x00DB, 2, 0xA3, gKakarikoVillageIntroCs },
{ 0x0108, 2, 0xA4, gZorasDomainIntroCs },
{ 0x0138, 1, 0xA5, gHyruleCastleIntroCs },
{ 0x014D, 2, 0xA6, gGoronCityIntroCs },
{ 0x0053, 2, 0xA7, gTempleOfTimeIntroCs },
{ 0x0000, 2, 0xA8, gDekuTreeIntroCs },
{ 0x028A, 0, 0x18, gHyruleFieldSouthEponaJumpCs },
{ 0x0292, 0, 0x18, gHyruleFieldEastEponaJumpCs },
{ 0x028E, 0, 0x18, gHyruleFieldWestEponaJumpCs },
{ 0x0476, 0, 0x18, gHyruleFieldGateEponaJumpCs },
{ 0x050F, 1, 0xA9, gHyruleFieldGetOoTCs },
{ 0x0102, 2, 0xB1, gLakeHyliaIntroCs },
{ 0x0117, 2, 0xB2, gGerudoValleyIntroCs },
{ 0x0129, 2, 0xB3, gGerudoFortressIntroCs },
{ 0x0157, 2, 0xB4, gLonLonRanchIntroCs },
{ 0x0028, 2, 0xB5, gJabuJabuIntroCs },
{ 0x00E4, 2, 0xB6, gGraveyardIntroCs },
{ 0x0225, 2, 0xB7, gZorasFountainIntroCs },
{ 0x0123, 2, 0xB8, gDesertColossusIntroCs },
{ 0x0147, 2, 0xB9, gDeathMountainCraterIntroCs },
{ 0x0138, 0, 0xBA, gGanonsCastleIntroCs },
{ 0x0574, 2, 0x5A, gSunSongGraveSunSongTeachPart2Cs },
{ 0x0538, 2, 0xBB, gForestBarrierCs },
{ 0x053C, 2, 0xBC, gWaterBarrierCs },
{ 0x0540, 2, 0xBD, gShadowBarrierCs },
{ 0x0544, 2, 0xBE, gFireBarrierCs },
{ 0x0548, 2, 0xBF, gLightBarrierCs },
{ 0x054C, 2, 0xAD, gSpiritBarrierCs },
{ 0x008D, 0, 0xC0, gSpiritBossNabooruKnuckleIntroCs },
{ 0x03B4, 0, 0xC7, gGerudoFortressFirstCaptureCs },
{ 0x0246, 2, 0xB9, gDeathMountainCraterIntroCs },
{ 0x05E8, 2, 0xC6, gKokiriForestDekuSproutCs },
};
// Unused, seems to be an early list of dungeon entrance cutscene locations
u32 D_8011E304[] = { 0x0200B650, 0x02015600, 0x02014F80, 0x02003F80, 0x02000330, gTowerBarrierCs };
void* D_8011E304[] = {
gDekuTreeIntroCs, gJabuJabuIntroCs, gDcOpeningCs, gMinuetCs, gIceCavernSerenadeCs, gTowerBarrierCs,
};
u16 D_8015FCC0;
u16 D_8015FCC2;
u16 D_8015FCC4;
s16 D_8015FCC6;
u8 D_8015FCC8;
s16 D_8015FCCA;
s16 sQuakeIndex;
u16 D_8015FCCC; // only written to, never read
char D_8015FCD0[20]; // unreferenced
u8 D_8015FCE4; // only written to, never read
@ -162,9 +212,7 @@ void func_800647C0(GlobalContext* globalCtx, CutsceneContext* csCtx) {
void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase* cmd) {
Player* player = GET_PLAYER(globalCtx);
f32 temp;
u8 sp3F;
sp3F = 0;
u8 sp3F = 0;
if ((csCtx->frames < cmd->startFrame) || ((csCtx->frames >= cmd->endFrame) && (cmd->endFrame != cmd->startFrame))) {
return;
@ -188,7 +236,6 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
if (sp3F != 0) {
func_800F6D58(0xF, 0, 0);
Environment_AddLightningBolts(globalCtx, 3);
if (1) {}
gLightningStrike.state = LIGHTNING_STRIKE_START;
}
break;
@ -266,15 +313,15 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
break;
case 16:
if (sp3F != 0) {
D_8015FCCA = Quake_Add(GET_ACTIVE_CAM(globalCtx), 6);
Quake_SetSpeed(D_8015FCCA, 0x7FFF);
Quake_SetQuakeValues(D_8015FCCA, 4, 0, 1000, 0);
Quake_SetCountdown(D_8015FCCA, 800);
sQuakeIndex = Quake_Add(GET_ACTIVE_CAM(globalCtx), 6);
Quake_SetSpeed(sQuakeIndex, 0x7FFF);
Quake_SetQuakeValues(sQuakeIndex, 4, 0, 1000, 0);
Quake_SetCountdown(sQuakeIndex, 800);
}
break;
case 17:
if (sp3F != 0) {
Quake_RemoveFromIdx(D_8015FCCA);
Quake_RemoveFromIdx(sQuakeIndex);
}
break;
case 18:
@ -2049,10 +2096,10 @@ void Cutscene_HandleConditionalTriggers(GlobalContext* globalCtx) {
}
}
void Cutscene_SetSegment(GlobalContext* globalCtx, u32 segment) {
void Cutscene_SetSegment(GlobalContext* globalCtx, void* segment) {
if (SEGMENT_NUMBER(segment) != 0) {
globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(segment);
} else {
globalCtx->csCtx.segment = (void*)segment;
globalCtx->csCtx.segment = segment;
}
}

View file

@ -1,7 +1,25 @@
#include "global.h"
#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"
#define ENTRANCE(scene, spawn, continueBgm, displayTitleCard, fadeIn, fadeOut) \
{ \
@ -956,7 +974,10 @@ void func_80099550(GlobalContext* globalCtx) {
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 4735);
}
u32 D_8012A2F8[] = { 0x0200BA18, 0x0200CA18 };
void* D_8012A2F8[] = {
gYdanTex_00BA18,
gYdanTex_00CA18,
};
// Scene Draw Config 19
void func_800995DC(GlobalContext* globalCtx) {
@ -995,8 +1016,14 @@ void func_80099760(GlobalContext* globalCtx) {
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 4859);
}
u32 D_8012A300[] = { 0x02012378, 0x02013378 };
u32 D_8012A308[] = { 0x02011F78, 0x02014778, 0x02014378, 0x02013F78, 0x02014B78, 0x02013B78, 0x02012F78, 0x02012B78 };
void* gDCEntranceTextures[] = {
gDCDayEntranceTex,
gDCNightEntranceTex,
};
void* sDCLavaFloorTextures[] = {
gDCLavaFloor1Tex, gDCLavaFloor2Tex, gDCLavaFloor3Tex, gDCLavaFloor4Tex,
gDCLavaFloor5Tex, gDCLavaFloor6Tex, gDCLavaFloor7Tex, gDCLavaFloor8Tex,
};
// Scene Draw Config 20
void func_80099878(GlobalContext* globalCtx) {
@ -1007,8 +1034,8 @@ void func_80099878(GlobalContext* globalCtx) {
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 4905);
gameplayFrames = globalCtx->gameplayFrames;
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A300[gSaveContext.nightFlag]));
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(D_8012A308[(s32)(gameplayFrames & 14) >> 1]));
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(gDCEntranceTextures[gSaveContext.nightFlag]));
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(sDCLavaFloorTextures[(s32)(gameplayFrames & 14) >> 1]));
gSPSegment(POLY_XLU_DISP++, 0x09,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, (gameplayFrames * 1) % 256, 0, 64, 32, 1, 0,
(gameplayFrames * 1) % 128, 64, 32));
@ -1245,7 +1272,10 @@ void func_8009AE30(GlobalContext* globalCtx) {
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5416);
}
u32 D_8012A328[] = { 0x0200BD20, 0x0200B920 };
void* sThievesHideoutEntranceTextures[] = {
gThievesHideoutDayEntranceTex,
gThievesHideoutNightEntranceTex,
};
// Scene Draw Config 40
void func_8009AFE0(GlobalContext* globalCtx) {
@ -1258,14 +1288,17 @@ void func_8009AFE0(GlobalContext* globalCtx) {
{ s32 pad[2]; }
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A328[gSaveContext.nightFlag]));
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sThievesHideoutEntranceTextures[gSaveContext.nightFlag]));
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5507);
}
u32 D_8012A330[] = { 0x02014C30, 0x02015830 };
void* D_8012A330[] = {
gWaterTempleDayEntranceTex,
gWaterTempleNightEntranceTex,
};
// Scene Draw Config 23
// Scene Draw Config 23 (Water Temple)
void func_8009B0FC(GlobalContext* globalCtx) {
u32 gameplayFrames;
s32 spB0;
@ -1496,7 +1529,10 @@ void func_8009C0AC(GlobalContext* globalCtx) {
}
}
u32 D_8012A338[] = { 0x0200FAC0, 0x0200F8C0 };
void* sIceCavernEntranceTextures[] = {
gIceCavernDayEntranceTex,
gIceCavernNightEntranceTex,
};
// Scene Draw Config 37
void func_8009C3EC(GlobalContext* globalCtx) {
@ -1507,7 +1543,7 @@ void func_8009C3EC(GlobalContext* globalCtx) {
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6042);
gameplayFrames = globalCtx->gameplayFrames;
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A338[gSaveContext.nightFlag]));
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sIceCavernEntranceTextures[gSaveContext.nightFlag]));
gSPSegment(POLY_OPA_DISP++, 0x09,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128, 32,
32, 1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
@ -1597,7 +1633,10 @@ void func_8009CAC0(GlobalContext* globalCtx) {
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6264);
}
u32 D_8012A340[] = { 0x0200F8C0, 0x020100C0 };
void* sGTGEntranceTextures[] = {
gGTGDayEntranceTex,
gGTGNightEntranceTex,
};
// Scene Draw Config 27
void func_8009CC00(GlobalContext* globalCtx) {
@ -1608,7 +1647,7 @@ void func_8009CC00(GlobalContext* globalCtx) {
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6290);
gameplayFrames = globalCtx->gameplayFrames;
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A340[gSaveContext.nightFlag]));
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sGTGEntranceTextures[gSaveContext.nightFlag]));
gSPSegment(POLY_OPA_DISP++, 0x09,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128, 32,
32, 1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
@ -1693,7 +1732,10 @@ void func_8009D0E8(GlobalContext* globalCtx) {
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6491);
}
u32 D_8012A348[] = { 0x02005210, 0x02005010 };
void* sLonLonHouseEntranceTextures[] = {
gLonLonHouseDayEntranceTex,
gLonLonHouseNightEntranceTex,
};
// Scene Draw Config 44
void func_8009D31C(GlobalContext* globalCtx) {
@ -1701,7 +1743,7 @@ void func_8009D31C(GlobalContext* globalCtx) {
{ s32 pad[2]; }
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A348[gSaveContext.nightFlag]));
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sLonLonHouseEntranceTextures[gSaveContext.nightFlag]));
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
@ -1712,8 +1754,14 @@ void func_8009D31C(GlobalContext* globalCtx) {
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6528);
}
u32 D_8012A350[] = { 0x02006550, 0x02003550 };
u32 D_8012A358[] = { 0x02002350, 0x02001350 };
void* sGuardHouseView2Textures[] = {
gGuardHouseOutSideView1DayTex,
gGuardHouseOutSideView1NightTex,
};
void* sGuardHouseView1Textures[] = {
gGuardHouseOutSideView2DayTex,
gGuardHouseOutSideView2NightTex,
};
// Scene Draw Config 45
void func_8009D438(GlobalContext* globalCtx) {
@ -1727,8 +1775,8 @@ void func_8009D438(GlobalContext* globalCtx) {
var = gSaveContext.nightFlag;
}
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A358[var]));
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(D_8012A350[var]));
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sGuardHouseView1Textures[var]));
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(sGuardHouseView2Textures[var]));
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
@ -1760,7 +1808,10 @@ void func_8009D5B4(GlobalContext* globalCtx) {
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6615);
}
u32 D_8012A360[] = { 0x02014D90, 0x02014590 };
void* sForestTempleEntranceTextures[] = {
gForestTempleDayEntranceTex,
gForestTempleNightEntranceTex,
};
// Scene Draw Config 22
void func_8009D758(GlobalContext* globalCtx) {
@ -1771,7 +1822,7 @@ void func_8009D758(GlobalContext* globalCtx) {
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6640);
gameplayFrames = globalCtx->gameplayFrames;
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A360[gSaveContext.nightFlag]));
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sForestTempleEntranceTextures[gSaveContext.nightFlag]));
gSPSegment(POLY_XLU_DISP++, 0x09,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - gameplayFrames % 128, (gameplayFrames * 1) % 128, 32,
32, 1, gameplayFrames % 128, (gameplayFrames * 1) % 128, 32, 32));
@ -1790,7 +1841,10 @@ void func_8009D758(GlobalContext* globalCtx) {
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6671);
}
u32 D_8012A368[] = { 0x02018920, 0x02018020 };
void* sSpiritTempleEntranceTextures[] = {
gSpiritTempleDayEntranceTex,
gSpiritTempleNightEntranceTex,
};
// Scene Draw Config 25
void func_8009D974(GlobalContext* globalCtx) {
@ -1798,7 +1852,7 @@ void func_8009D974(GlobalContext* globalCtx) {
{ s32 pad[2]; }
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A368[gSaveContext.nightFlag]));
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sSpiritTempleEntranceTextures[gSaveContext.nightFlag]));
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6762);
}
@ -1849,7 +1903,10 @@ void func_8009DA30(GlobalContext* globalCtx) {
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 6866);
}
u32 D_8012A370[] = { 0x02015B50, 0x02016B50 };
void* sKakarikoWindowTextures[] = {
gKakarikoVillageDayWindowTex,
gKakarikoVillageNightWindowTex,
};
// Scene Draw Config 2
void func_8009DD5C(GlobalContext* globalCtx) {
@ -1857,7 +1914,7 @@ void func_8009DD5C(GlobalContext* globalCtx) {
{ s32 pad[2]; }
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A370[gSaveContext.nightFlag]));
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sKakarikoWindowTextures[gSaveContext.nightFlag]));
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
@ -1974,7 +2031,10 @@ void func_8009E54C(GlobalContext* globalCtx) {
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7097);
}
u32 D_8012A378[] = { 0x02008F98, 0x02008FD8 };
void* sZorasDomainEntranceTextures[] = {
gZorasDomainDayEntranceTex,
gZorasDomainNightEntranceTex,
};
// Scene Draw Config 6
void func_8009E730(GlobalContext* globalCtx) {
@ -1993,7 +2053,7 @@ void func_8009E730(GlobalContext* globalCtx) {
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A378[gSaveContext.nightFlag]));
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sZorasDomainEntranceTextures[gSaveContext.nightFlag]));
{ s32 pad[2]; }
@ -2112,7 +2172,10 @@ void func_8009F074(GlobalContext* globalCtx) {
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7339);
}
u32 D_8012A380[] = { 0x02009678, 0x0200DE78 };
void* D_8012A380[] = {
gSpot12_009678Tex,
gSpot12_00DE78Tex,
};
// Scene Draw Config 11
void func_8009F1B4(GlobalContext* globalCtx) {
@ -2231,7 +2294,10 @@ void func_8009F7D4(GlobalContext* globalCtx) {
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7530);
}
u32 D_8012A388[] = { 0x02009808, 0x02008FC8 };
void* sGoronCityEntranceTextures[] = {
gGoronCityDayEntranceTex,
gGoronCityNightEntranceTex,
};
// Scene Draw Config 16
void func_8009F9D0(GlobalContext* globalCtx) {
@ -2250,14 +2316,17 @@ void func_8009F9D0(GlobalContext* globalCtx) {
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A388[gSaveContext.nightFlag]));
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sGoronCityEntranceTextures[gSaveContext.nightFlag]));
{ s32 pad[2]; }
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 7578);
}
u32 D_8012A390[] = { 0x020081E0, 0x0200FBE0 };
void* sLonLonRanchWindowTextures[] = {
gLonLonRanchDayWindowTex,
gLonLonRangeNightWindowsTex,
};
// Scene Draw Config 17
void func_8009FB74(GlobalContext* globalCtx) {
@ -2265,7 +2334,7 @@ void func_8009FB74(GlobalContext* globalCtx) {
{ s32 pad[2]; }
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A390[gSaveContext.nightFlag]));
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sLonLonRanchWindowTextures[gSaveContext.nightFlag]));
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, 128);
@ -2331,6 +2400,7 @@ void func_8009FE58(GlobalContext* globalCtx) {
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
if (FrameAdvance_IsEnabled(globalCtx) != true) {
D_8012A39C += 1820;
D_8012A3A0 += 1820;

View file

@ -1426,7 +1426,7 @@ void func_80A781CC(Actor* thisx, GlobalContext* globalCtx) {
if (!Gameplay_InCsMode(globalCtx)) {
this->actor.update = EnIk_Update;
this->actor.draw = EnIk_Draw;
Cutscene_SetSegment(globalCtx, gNabooruKnuckleDefeatCs);
Cutscene_SetSegment(globalCtx, gSpiritBossNabooruKnuckleDefeatCs);
gSaveContext.cutsceneTrigger = 1;
Actor_SetScale(&this->actor, 0.01f);
gSaveContext.eventChkInf[3] |= 0x1000;

View file

@ -305,7 +305,7 @@ void func_80ABF7CC(EnOkarinaTag* this, GlobalContext* globalCtx) {
if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) {
func_80106CCC(globalCtx);
if (!CHECK_QUEST_ITEM(QUEST_SONG_SUN)) {
globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(&gSunSongTeachCs);
globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(&gSunSongGraveSunSongTeachCs);
gSaveContext.cutsceneTrigger = 1;
}
this->actionFunc = func_80ABF708;

View file

@ -944,7 +944,7 @@ void func_80ACC00C(EnOwl* this, GlobalContext* globalCtx) {
break;
case 8:
case 9:
globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gDmtOwlCs);
globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gDMTOwlCs);
this->actor.draw = NULL;
break;
default:

View file

@ -321,7 +321,7 @@ s32 EnXc_BoleroCS(EnXc* this, GlobalContext* globalCtx) {
if ((posRot->pos.x > -784.0f) && (posRot->pos.x < -584.0f) && (posRot->pos.y > 447.0f) &&
(posRot->pos.y < 647.0f) && (posRot->pos.z > -446.0f) && (posRot->pos.z < -246.0f) &&
!Gameplay_InCsMode(globalCtx)) {
globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(&gBoleroCs);
globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(&gDeathMountainCraterBoleroCs);
gSaveContext.cutsceneTrigger = 1;
gSaveContext.eventChkInf[5] |= 2;
Item_Give(globalCtx, ITEM_SONG_BOLERO);
@ -2142,13 +2142,13 @@ void EnXc_InitTempleOfTime(EnXc* this, GlobalContext* globalCtx) {
if (LINK_IS_ADULT) {
if (!(gSaveContext.eventChkInf[12] & 0x20)) {
gSaveContext.eventChkInf[12] |= 0x20;
globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gFirstAdultCs);
globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gTempleOfTimeFirstAdultCs);
gSaveContext.cutsceneTrigger = 1;
func_80B3EBF0(this, globalCtx);
} else if (!(gSaveContext.eventChkInf[5] & 0x20) && (gSaveContext.eventChkInf[4] & 0x100)) {
gSaveContext.eventChkInf[5] |= 0x20;
Item_Give(globalCtx, ITEM_SONG_PRELUDE);
globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gPreludeCs);
globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gTempleOfTimePreludeCs);
gSaveContext.cutsceneTrigger = 1;
this->action = SHEIK_ACTION_30;
} else if (!(gSaveContext.eventChkInf[5] & 0x20)) {

View file

@ -170,7 +170,7 @@ void ItemOcarina_DoNothing(ItemOcarina* this, GlobalContext* globalCtx) {
void ItemOcarina_StartSoTCutscene(ItemOcarina* this, GlobalContext* globalCtx) {
if (func_8002F334(&this->actor, globalCtx)) {
globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gZeldaSongOfTimeCs);
globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gHyruleFieldZeldaSongOfTimeCs);
gSaveContext.cutsceneTrigger = 1;
}
}

View file

@ -165,7 +165,7 @@ void ShotSun_UpdateHyliaSun(ShotSun* this, GlobalContext* globalCtx) {
osSyncPrintf(VT_FGCOL(CYAN) "SHOT_SUN HIT!!!!!!!\n" VT_RST);
if (INV_CONTENT(ITEM_ARROW_FIRE) == ITEM_NONE) {
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_ITEM_ETCETERA, 700.0f, -800.0f, 7261.0f, 0, 0, 0, 7);
globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gFireArrowsCS);
globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gLakeHyliaFireArrowsCS);
if (1) {}
gSaveContext.cutsceneTrigger = 1;
} else {