mirror of
https://github.com/zeldaret/tmc
synced 2026-08-15 04:50:38 -04:00
Decompile Subtask_FadeIn/Out
This commit is contained in:
@@ -89,7 +89,7 @@ void sub_0804AB70(void) {
|
||||
gScreen.bg1.yOffset = 0;
|
||||
controls->scroll_y = 0;
|
||||
portalId = gArea.portal_type;
|
||||
if ((portalId == 2) && (gUI.unk_1c.area != 2)) {
|
||||
if ((portalId == 2) && (gUI.roomControls.area != 2)) {
|
||||
portalId = 3;
|
||||
}
|
||||
ptr = &gUnk_080D4138[portalId * 2];
|
||||
@@ -142,7 +142,7 @@ bool32 sub_0804ACA8(void) {
|
||||
void sub_0804ACC8(void) {
|
||||
if (gFadeControl.active == 0) {
|
||||
SetGlobalFlag(gArea.portal_type + ENTRANCE_0);
|
||||
sub_0804AD6C((RoomControls*)&gUI.unk_1c);
|
||||
sub_0804AD6C(&gUI.roomControls);
|
||||
sub_080A71F4(0);
|
||||
}
|
||||
}
|
||||
|
||||
+4
-4
@@ -1828,11 +1828,11 @@ void sub_0805368C(void) {
|
||||
}
|
||||
|
||||
void sub_080536A8(void) {
|
||||
sub_080A71C4(5, 5, 4, 0x10);
|
||||
sub_080A71C4(5, 5, FADE_INSTANT, 0x10);
|
||||
}
|
||||
|
||||
void sub_080536B8(void) {
|
||||
sub_080A71C4(5, 3, 4, 4);
|
||||
sub_080A71C4(5, 3, FADE_INSTANT, 4);
|
||||
SetFade(FADE_IN_OUT | FADE_INSTANT, 0x100);
|
||||
}
|
||||
|
||||
@@ -1972,7 +1972,7 @@ void sub_08053B10(void) {
|
||||
}
|
||||
|
||||
void sub_08053B3C(void) {
|
||||
sub_080A71C4(5, 4, 5, 0x100);
|
||||
sub_080A71C4(5, 4, FADE_IN_OUT | FADE_INSTANT, 0x100);
|
||||
SetFade(FADE_IN_OUT | FADE_INSTANT, 0x100);
|
||||
}
|
||||
|
||||
@@ -2002,7 +2002,7 @@ void sub_08053BBC(void) {
|
||||
}
|
||||
|
||||
void sub_08053BE8(void) {
|
||||
sub_080A71C4(5, 2, 5, 0x100);
|
||||
sub_080A71C4(5, 2, FADE_IN_OUT | FADE_INSTANT, 0x100);
|
||||
SetFade(FADE_IN_OUT | FADE_INSTANT, 0x100);
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -4974,7 +4974,7 @@ extern u32 script_PlayerIntro;
|
||||
|
||||
void sub_StateChange_HouseInteriors2_LinksHouseBedroom(void) {
|
||||
if (!CheckGlobalFlag(START) && !CheckLocalFlag(0x46)) {
|
||||
sub_080A71C4(5, 1, 4, 4);
|
||||
sub_080A71C4(5, 1, FADE_INSTANT, 4);
|
||||
gUpdateVisibleTiles = 0;
|
||||
SetFade(FADE_IN_OUT | FADE_INSTANT, 256);
|
||||
sub_080751E8(0, 6, &script_PlayerIntro);
|
||||
|
||||
+54
-7
@@ -30,6 +30,9 @@ extern u8 gUnk_08128C00[];
|
||||
extern Frame* gSpriteAnimations_322[];
|
||||
extern u32 gUnk_085C4620[];
|
||||
extern u16* gMoreSpritePtrs[];
|
||||
extern Screen gUnk_03001020;
|
||||
extern u8 gUnk_02024090[];
|
||||
extern u8 gUnk_03000420[];
|
||||
|
||||
void sub_080A5CFC(u32, void*, u32);
|
||||
void sub_080A6FB4(u32, u32);
|
||||
@@ -1262,7 +1265,7 @@ void MenuFadeIn(u32 param_1, u32 param_2) {
|
||||
gUI.nextToLoad = 1;
|
||||
}
|
||||
gUI.field_0x6 = 0;
|
||||
gUI.isLoading = -1;
|
||||
gUI.fadeType = -1;
|
||||
gUI.fadeInTime = 0x20;
|
||||
gMain.substate = GAMEMAIN_SUBTASK;
|
||||
SetFade(FADE_IN_OUT | FADE_INSTANT, 0x20);
|
||||
@@ -1272,16 +1275,16 @@ void MenuFadeIn(u32 param_1, u32 param_2) {
|
||||
|
||||
void sub_080A71A4(u32 param_1, u32 param_2, u32 param_3) {
|
||||
if (gUI.nextToLoad == 0) {
|
||||
gUI.fillerC[2] = param_3;
|
||||
gUI.unk_e = param_3;
|
||||
} else {
|
||||
gUI.fillerC[3] = param_3;
|
||||
gUI.unk_f = param_3;
|
||||
}
|
||||
MenuFadeIn(param_1, param_2);
|
||||
}
|
||||
|
||||
void sub_080A71C4(u32 param_1, u32 param_2, u32 param_3, u32 param_4) {
|
||||
void sub_080A71C4(u32 param_1, u32 param_2, u32 fadeType, u32 param_4) {
|
||||
MenuFadeIn(param_1, param_2);
|
||||
gUI.isLoading = param_3;
|
||||
gUI.fadeType = fadeType;
|
||||
gUI.fadeInTime = param_4;
|
||||
}
|
||||
|
||||
@@ -1312,7 +1315,24 @@ void GameMain_Subtask(void) {
|
||||
gUnk_0812901C[gUI.nextToLoad]();
|
||||
}
|
||||
|
||||
ASM_FUNC("asm/non_matching/subtask2/Subtask_FadeIn.inc", void Subtask_FadeIn())
|
||||
void Subtask_FadeIn(void) {
|
||||
if (!gFadeControl.active) {
|
||||
MemCopy(&gScreen, &gUnk_03001020, sizeof(Screen));
|
||||
MemCopy(gPaletteBuffer, gUnk_02024090, 0x400);
|
||||
MemCopy(&gGFXSlots, &gUI.gfxSlotList, sizeof(GfxSlotList));
|
||||
MemCopy(gPaletteList, gUI.palettes, sizeof(gUI.palettes));
|
||||
MemCopy(&gRoomControls, &gUI.roomControls, sizeof(RoomControls));
|
||||
MemCopy(gUnk_03000420, gUI.unk_2a8, sizeof(gUI.unk_2a8));
|
||||
MemCopy(&gActiveScriptInfo, &gUI.activeScriptInfo, sizeof(ActiveScriptInfo));
|
||||
sub_0805E958();
|
||||
gUI.unk_d = gRoomTransition.field_0x2c[2];
|
||||
gUI.controlMode = gPlayerState.controlMode;
|
||||
gUI.currentRoomProperties = gCurrentRoomProperties;
|
||||
gUI.mapBottomBgControlPtr = gMapBottom.bgControlPtr;
|
||||
gUI.mapTopBgControlPtr = gMapTop.bgControlPtr;
|
||||
gUI.nextToLoad = 1;
|
||||
}
|
||||
}
|
||||
|
||||
void Subtask_Init(void) {
|
||||
if (gFadeControl.active == 0) {
|
||||
@@ -1332,7 +1352,34 @@ void Subtask_Init(void) {
|
||||
}
|
||||
}
|
||||
|
||||
ASM_FUNC("asm/non_matching/subtask2/Subtask_FadeOut.inc", void Subtask_FadeOut())
|
||||
void Subtask_FadeOut(void) {
|
||||
if (!gFadeControl.active) {
|
||||
DeleteAllEntities();
|
||||
sub_0805E974();
|
||||
gCurrentRoomProperties = gUI.currentRoomProperties;
|
||||
gPlayerState.controlMode = gUI.controlMode;
|
||||
gMapBottom.bgControlPtr = gUI.mapBottomBgControlPtr;
|
||||
gMapTop.bgControlPtr = gUI.mapTopBgControlPtr;
|
||||
MemCopy(&gUI.activeScriptInfo, &gActiveScriptInfo, sizeof(ActiveScriptInfo));
|
||||
MemCopy(gUI.unk_2a8, gUnk_03000420, sizeof(gUI.unk_2a8));
|
||||
MemCopy(gUI.palettes, gPaletteList, sizeof(gUI.palettes));
|
||||
MemCopy(&gUI.gfxSlotList, &gGFXSlots, sizeof(gGFXSlots));
|
||||
MemCopy(&gUI.roomControls, &gRoomControls, sizeof(RoomControls));
|
||||
MemCopy(&gUnk_03001020, &gScreen, sizeof(Screen));
|
||||
gArea.localFlagOffset = GetFlagBankOffset(gRoomControls.area);
|
||||
gArea.pCurrentRoomInfo = GetCurrentRoomInfo();
|
||||
RestoreGameTask(gUI.field_0x6);
|
||||
sub_0801D000(gUI.unk_d != 0);
|
||||
sub_080A74F4();
|
||||
if (gUI.fadeType != 0xffff) {
|
||||
SetFade(gUI.fadeType, gUI.fadeInTime);
|
||||
} else {
|
||||
SetFadeInverted(gUI.fadeInTime);
|
||||
}
|
||||
gUI.nextToLoad = 4;
|
||||
gRoomTransition.field_0x2c[3] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void Subtask_Die(void) {
|
||||
sub_080A74F4();
|
||||
|
||||
Reference in New Issue
Block a user