summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortustin2121 <tustin2121@gmail.com>2019-09-10 13:40:28 -0400
committertustin2121 <tustin2121@gmail.com>2019-09-10 13:43:33 -0400
commit711e7d884c481bf5d048716a71da81ef033a9d6c (patch)
treebbd69abebf81003ae1e4ceb959a1a9d282eca4a5
parent258784f263d7834696db552a1b47cf6bd1dfd6b4 (diff)
Document cave transition code.
-rw-r--r--include/fldeff.h2
-rw-r--r--src/fldeff_flash.c151
-rw-r--r--src/overworld.c2
3 files changed, 78 insertions, 77 deletions
diff --git a/include/fldeff.h b/include/fldeff.h
index ff6c9823f..0a2bad629 100644
--- a/include/fldeff.h
+++ b/include/fldeff.h
@@ -33,7 +33,7 @@ void sub_8161560(u8 taskId);
// flash
bool8 SetUpFieldMove_Flash(void);
-void c2_change_map(void);
+void CB2_DoChangeMap(void);
bool8 GetMapPairFadeToType(u8 a1, u8 a2);
bool8 GetMapPairFadeFromType(u8 a1, u8 a2);
diff --git a/src/fldeff_flash.c b/src/fldeff_flash.c
index a2457307b..665e11deb 100644
--- a/src/fldeff_flash.c
+++ b/src/fldeff_flash.c
@@ -14,12 +14,13 @@
#include "sprite.h"
#include "task.h"
#include "constants/songs.h"
+#include "constants/map_types.h"
// structures
struct FlashStruct
{
- u8 unk0;
- u8 unk1;
+ u8 fromType;
+ u8 toType;
bool8 unk2;
bool8 unk3;
void (*func)(void);
@@ -28,38 +29,38 @@ struct FlashStruct
// static functions
static void hm2_flash(void);
static void sub_81371B4(void);
-static bool8 sub_8137304(void);
-static void sub_81373F0(void);
-static void sub_8137404(u8 taskId);
-static void sub_8137420(u8 taskId);
-static void sub_81374C4(u8 taskId);
-static void sub_813750C(u8 taskId);
-static void sub_8137574(u8 taskId);
-static void sub_81375A8(void);
-static void sub_81375BC(u8 taskId);
-static void sub_81375D8(u8 taskId);
-static void sub_8137678(u8 taskId);
-static void sub_81376DC(u8 taskId);
+static bool8 MaybeDoMapTransition(void);
+static void DoExitCaveTransition(void);
+static void Task_ExitCaveTransition1(u8 taskId);
+static void Task_ExitCaveTransition2(u8 taskId);
+static void Task_ExitCaveTransition3(u8 taskId);
+static void Task_ExitCaveTransition4(u8 taskId);
+static void Task_ExitCaveTransition5(u8 taskId);
+static void DoEnterCaveTransition(void);
+static void Task_EnterCaveTransition1(u8 taskId);
+static void Task_EnterCaveTransition2(u8 taskId);
+static void Task_EnterCaveTransition3(u8 taskId);
+static void Task_EnterCaveTransition4(u8 taskId);
// rodata
-static const struct FlashStruct gUnknown_085B27C8[] =
+static const struct FlashStruct sTransitionTypes[] =
{
- {1, 4, 1, 0, sub_81375A8},
- {2, 4, 1, 0, sub_81375A8},
- {3, 4, 1, 0, sub_81375A8},
- {5, 4, 1, 0, sub_81375A8},
- {6, 4, 1, 0, sub_81375A8},
- {7, 4, 1, 0, sub_81375A8},
- {8, 4, 1, 0, sub_81375A8},
- {9, 4, 1, 0, sub_81375A8},
- {4, 1, 0, 1, sub_81373F0},
- {4, 2, 0, 1, sub_81373F0},
- {4, 3, 0, 1, sub_81373F0},
- {4, 5, 0, 1, sub_81373F0},
- {4, 6, 0, 1, sub_81373F0},
- {4, 7, 0, 1, sub_81373F0},
- {4, 8, 0, 1, sub_81373F0},
- {4, 9, 0, 1, sub_81373F0},
+ {MAP_TYPE_TOWN, MAP_TYPE_UNDERGROUND, 1, 0, DoEnterCaveTransition},
+ {MAP_TYPE_CITY, MAP_TYPE_UNDERGROUND, 1, 0, DoEnterCaveTransition},
+ {MAP_TYPE_ROUTE, MAP_TYPE_UNDERGROUND, 1, 0, DoEnterCaveTransition},
+ {MAP_TYPE_UNDERWATER, MAP_TYPE_UNDERGROUND, 1, 0, DoEnterCaveTransition},
+ {MAP_TYPE_OCEAN_ROUTE, MAP_TYPE_UNDERGROUND, 1, 0, DoEnterCaveTransition},
+ {MAP_TYPE_UNUSED_2, MAP_TYPE_UNDERGROUND, 1, 0, DoEnterCaveTransition},
+ {MAP_TYPE_INDOOR, MAP_TYPE_UNDERGROUND, 1, 0, DoEnterCaveTransition},
+ {MAP_TYPE_SECRET_BASE, MAP_TYPE_UNDERGROUND, 1, 0, DoEnterCaveTransition},
+ {MAP_TYPE_UNDERGROUND, MAP_TYPE_TOWN, 0, 1, DoExitCaveTransition},
+ {MAP_TYPE_UNDERGROUND, MAP_TYPE_CITY, 0, 1, DoExitCaveTransition},
+ {MAP_TYPE_UNDERGROUND, MAP_TYPE_ROUTE, 0, 1, DoExitCaveTransition},
+ {MAP_TYPE_UNDERGROUND, MAP_TYPE_UNDERWATER, 0, 1, DoExitCaveTransition},
+ {MAP_TYPE_UNDERGROUND, MAP_TYPE_OCEAN_ROUTE, 0, 1, DoExitCaveTransition},
+ {MAP_TYPE_UNDERGROUND, MAP_TYPE_UNUSED_2, 0, 1, DoExitCaveTransition},
+ {MAP_TYPE_UNDERGROUND, MAP_TYPE_INDOOR, 0, 1, DoExitCaveTransition},
+ {MAP_TYPE_UNDERGROUND, MAP_TYPE_SECRET_BASE, 0, 1, DoExitCaveTransition},
{0, 0, 0, 0, NULL},
};
@@ -108,7 +109,7 @@ static void sub_81371B4(void)
ScriptContext1_SetupScript(EventScript_2926F8);
}
-static void sub_81371D4(void)
+static void CB2_ChangeMapMain(void)
{
RunTasks();
AnimateSprites();
@@ -116,14 +117,14 @@ static void sub_81371D4(void)
UpdatePaletteFade();
}
-static void sub_81371EC(void)
+static void VBC_ChangeMapVBlank(void)
{
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
}
-void c2_change_map(void)
+void CB2_DoChangeMap(void)
{
u16 ime;
@@ -148,23 +149,23 @@ void c2_change_map(void)
REG_IME = 0;
REG_IE |= INTR_FLAG_VBLANK;
REG_IME = ime;
- SetVBlankCallback(sub_81371EC);
- SetMainCallback2(sub_81371D4);
- if (!sub_8137304())
+ SetVBlankCallback(VBC_ChangeMapVBlank);
+ SetMainCallback2(CB2_ChangeMapMain);
+ if (!MaybeDoMapTransition())
SetMainCallback2(gMain.savedCallback);
}
-static bool8 sub_8137304(void)
+static bool8 MaybeDoMapTransition(void)
{
u8 i;
- u8 v0 = GetLastUsedWarpMapType();
- u8 v1 = GetCurrentMapType();
+ u8 fromType = GetLastUsedWarpMapType();
+ u8 toType = GetCurrentMapType();
- for (i = 0; gUnknown_085B27C8[i].unk0; i++)
+ for (i = 0; sTransitionTypes[i].fromType; i++)
{
- if (gUnknown_085B27C8[i].unk0 == v0 && gUnknown_085B27C8[i].unk1 == v1)
+ if (sTransitionTypes[i].fromType == fromType && sTransitionTypes[i].toType == toType)
{
- gUnknown_085B27C8[i].func();
+ sTransitionTypes[i].func();
return TRUE;
}
}
@@ -172,51 +173,51 @@ static bool8 sub_8137304(void)
return FALSE;
}
-bool8 GetMapPairFadeToType(u8 a1, u8 a2)
+bool8 GetMapPairFadeToType(u8 _fromType, u8 _toType)
{
u8 i;
- u8 v0 = a1;
- u8 v1 = a2;
+ u8 fromType = _fromType;
+ u8 toType = _toType;
- for (i = 0; gUnknown_085B27C8[i].unk0; i++)
+ for (i = 0; sTransitionTypes[i].fromType; i++)
{
- if (gUnknown_085B27C8[i].unk0 == v0 && gUnknown_085B27C8[i].unk1 == v1)
+ if (sTransitionTypes[i].fromType == fromType && sTransitionTypes[i].toType == toType)
{
- return gUnknown_085B27C8[i].unk2;
+ return sTransitionTypes[i].unk2;
}
}
return FALSE;
}
-bool8 GetMapPairFadeFromType(u8 a1, u8 a2)
+bool8 GetMapPairFadeFromType(u8 _fromType, u8 _toType)
{
u8 i;
- u8 v0 = a1;
- u8 v1 = a2;
+ u8 fromType = _fromType;
+ u8 toType = _toType;
- for (i = 0; gUnknown_085B27C8[i].unk0; i++)
+ for (i = 0; sTransitionTypes[i].fromType; i++)
{
- if (gUnknown_085B27C8[i].unk0 == v0 && gUnknown_085B27C8[i].unk1 == v1)
+ if (sTransitionTypes[i].fromType == fromType && sTransitionTypes[i].toType == toType)
{
- return gUnknown_085B27C8[i].unk3;
+ return sTransitionTypes[i].unk3;
}
}
return FALSE;
}
-static void sub_81373F0(void)
+static void DoExitCaveTransition(void)
{
- CreateTask(sub_8137404, 0);
+ CreateTask(Task_ExitCaveTransition1, 0);
}
-static void sub_8137404(u8 taskId)
+static void Task_ExitCaveTransition1(u8 taskId)
{
- gTasks[taskId].func = sub_8137420;
+ gTasks[taskId].func = Task_ExitCaveTransition2;
}
-static void sub_8137420(u8 taskId)
+static void Task_ExitCaveTransition2(u8 taskId)
{
SetGpuReg(REG_OFFSET_DISPCNT, 0);
LZ77UnCompVram(gCaveTransitionTiles, (void *)(VRAM + 0xC000));
@@ -241,12 +242,12 @@ static void sub_8137420(u8 taskId)
| DISPCNT_OBJ_1D_MAP
| DISPCNT_BG0_ON
| DISPCNT_OBJ_ON);
- gTasks[taskId].func = sub_81374C4;
+ gTasks[taskId].func = Task_ExitCaveTransition3;
gTasks[taskId].data[0] = 16;
gTasks[taskId].data[1] = 0;
}
-static void sub_81374C4(u8 taskId)
+static void Task_ExitCaveTransition3(u8 taskId)
{
u16 count = gTasks[taskId].data[1];
u16 blend = count + 0x1000;
@@ -259,11 +260,11 @@ static void sub_81374C4(u8 taskId)
else
{
gTasks[taskId].data[2] = 0;
- gTasks[taskId].func = sub_813750C;
+ gTasks[taskId].func = Task_ExitCaveTransition4;
}
}
-static void sub_813750C(u8 taskId)
+static void Task_ExitCaveTransition4(u8 taskId)
{
u16 count;
@@ -278,12 +279,12 @@ static void sub_813750C(u8 taskId)
else
{
LoadPalette(gCaveTransitionPalette_White, 0, 0x20);
- gTasks[taskId].func = sub_8137574;
+ gTasks[taskId].func = Task_ExitCaveTransition5;
gTasks[taskId].data[2] = 8;
}
}
-static void sub_8137574(u8 taskId)
+static void Task_ExitCaveTransition5(u8 taskId)
{
if (gTasks[taskId].data[2])
gTasks[taskId].data[2]--;
@@ -291,17 +292,17 @@ static void sub_8137574(u8 taskId)
SetMainCallback2(gMain.savedCallback);
}
-static void sub_81375A8(void)
+static void DoEnterCaveTransition(void)
{
- CreateTask(sub_81375BC, 0);
+ CreateTask(Task_EnterCaveTransition1, 0);
}
-static void sub_81375BC(u8 taskId)
+static void Task_EnterCaveTransition1(u8 taskId)
{
- gTasks[taskId].func = sub_81375D8;
+ gTasks[taskId].func = Task_EnterCaveTransition2;
}
-static void sub_81375D8(u8 taskId)
+static void Task_EnterCaveTransition2(u8 taskId)
{
SetGpuReg(REG_OFFSET_DISPCNT, 0);
LZ77UnCompVram(gCaveTransitionTiles, (void *)(VRAM + 0xC000));
@@ -320,13 +321,13 @@ static void sub_81375D8(u8 taskId)
| DISPCNT_OBJ_ON);
LoadPalette(gCaveTransitionPalette_White, 0xE0, 0x20);
LoadPalette(gCaveTransitionPalette_Black, 0, 0x20);
- gTasks[taskId].func = sub_8137678;
+ gTasks[taskId].func = Task_EnterCaveTransition3;
gTasks[taskId].data[0] = 16;
gTasks[taskId].data[1] = 0;
gTasks[taskId].data[2] = 0;
}
-static void sub_8137678(u8 taskId)
+static void Task_EnterCaveTransition3(u8 taskId)
{
u16 count = gTasks[taskId].data[2];
@@ -346,11 +347,11 @@ static void sub_8137678(u8 taskId)
| BLDCNT_TGT2_BG3
| BLDCNT_TGT2_OBJ
| BLDCNT_TGT2_BD);
- gTasks[taskId].func = sub_81376DC;
+ gTasks[taskId].func = Task_EnterCaveTransition4;
}
}
-static void sub_81376DC(u8 taskId)
+static void Task_EnterCaveTransition4(u8 taskId)
{
u16 count = 16 - gTasks[taskId].data[1];
u16 blend = count + 0x1000;
diff --git a/src/overworld.c b/src/overworld.c
index cefbd8159..819f9ac4e 100644
--- a/src/overworld.c
+++ b/src/overworld.c
@@ -1579,7 +1579,7 @@ void CB2_LoadMap(void)
ScriptContext1_Init();
ScriptContext2_Disable();
SetMainCallback1(NULL);
- SetMainCallback2(c2_change_map);
+ SetMainCallback2(CB2_DoChangeMap);
gMain.savedCallback = CB2_LoadMap2;
}