Document map_name_popup task fields
This commit is contained in:
@@ -1437,7 +1437,7 @@
|
|||||||
// SPECIAL FLAGS (unknown purpose)
|
// SPECIAL FLAGS (unknown purpose)
|
||||||
#define SPECIAL_FLAGS_START 0x4000
|
#define SPECIAL_FLAGS_START 0x4000
|
||||||
#define SPECIAL_FLAGS_COUNT 16
|
#define SPECIAL_FLAGS_COUNT 16
|
||||||
#define FLAG_SPECIAL_FLAG_0x4000 0x4000
|
#define FLAG_DONT_SHOW_MAP_NAME_POPUP 0x4000
|
||||||
#define FLAG_DONT_TRANSITION_MUSIC 0x4001
|
#define FLAG_DONT_TRANSITION_MUSIC 0x4001
|
||||||
#define FLAG_SPECIAL_FLAG_0x4002 0x4002
|
#define FLAG_SPECIAL_FLAG_0x4002 0x4002
|
||||||
#define FLAG_SPECIAL_FLAG_0x4003 0x4003
|
#define FLAG_SPECIAL_FLAG_0x4003 0x4003
|
||||||
|
|||||||
+1
-1
@@ -916,7 +916,7 @@ extern const u8 gText_GiveUpTryingToTeachNewMove[];
|
|||||||
extern const u8 gText_DecimalPoint[];
|
extern const u8 gText_DecimalPoint[];
|
||||||
|
|
||||||
// map_name_popup
|
// map_name_popup
|
||||||
extern const u8 gUnknown_841D18D[];
|
extern const u8 gText_Rooftop2[];
|
||||||
|
|
||||||
// option menu
|
// option menu
|
||||||
extern const u8 gText_TextSpeed[];
|
extern const u8 gText_TextSpeed[];
|
||||||
|
|||||||
+2
-2
@@ -738,7 +738,7 @@ static void CB2_Credits(void)
|
|||||||
sCreditsMgr->unk_1D++;
|
sCreditsMgr->unk_1D++;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
FlagClear(FLAG_SPECIAL_FLAG_0x4000);
|
FlagClear(FLAG_DONT_SHOW_MAP_NAME_POPUP);
|
||||||
gDisableMapMusicChangeOnMapLoad = MUSIC_DISABLE_OFF;
|
gDisableMapMusicChangeOnMapLoad = MUSIC_DISABLE_OFF;
|
||||||
Free(sCreditsMgr);
|
Free(sCreditsMgr);
|
||||||
SoftReset(RESET_ALL);
|
SoftReset(RESET_ALL);
|
||||||
@@ -785,7 +785,7 @@ static bool32 DoOverworldMapScrollScene(UNUSED u8 unused)
|
|||||||
switch (sCreditsMgr->subseqno)
|
switch (sCreditsMgr->subseqno)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
FlagSet(FLAG_SPECIAL_FLAG_0x4000);
|
FlagSet(FLAG_DONT_SHOW_MAP_NAME_POPUP);
|
||||||
gDisableMapMusicChangeOnMapLoad = MUSIC_DISABLE_KEEP;
|
gDisableMapMusicChangeOnMapLoad = MUSIC_DISABLE_KEEP;
|
||||||
sCreditsMgr->ovwldseqno = 0;
|
sCreditsMgr->ovwldseqno = 0;
|
||||||
sCreditsMgr->subseqno++;
|
sCreditsMgr->subseqno++;
|
||||||
|
|||||||
+1
-1
@@ -706,7 +706,7 @@ static void Task_Hof_HandleExit(u8 taskId)
|
|||||||
static void SetWarpsToRollCredits(void)
|
static void SetWarpsToRollCredits(void)
|
||||||
{
|
{
|
||||||
VarSet(VAR_MAP_SCENE_INDIGO_PLATEAU_EXTERIOR, 1);
|
VarSet(VAR_MAP_SCENE_INDIGO_PLATEAU_EXTERIOR, 1);
|
||||||
FlagSet(FLAG_SPECIAL_FLAG_0x4000);
|
FlagSet(FLAG_DONT_SHOW_MAP_NAME_POPUP);
|
||||||
gDisableMapMusicChangeOnMapLoad = 2;
|
gDisableMapMusicChangeOnMapLoad = 2;
|
||||||
SetWarpDestination(MAP_GROUP(INDIGO_PLATEAU_EXTERIOR), MAP_NUM(INDIGO_PLATEAU_EXTERIOR), -1, 11, 6);
|
SetWarpDestination(MAP_GROUP(INDIGO_PLATEAU_EXTERIOR), MAP_NUM(INDIGO_PLATEAU_EXTERIOR), -1, 11, 6);
|
||||||
DoWarp();
|
DoWarp();
|
||||||
|
|||||||
+65
-44
@@ -18,26 +18,36 @@ static u16 MapNamePopupCreateWindow(bool32 palIntoFadedBuffer);
|
|||||||
static void MapNamePopupPrintMapNameOnWindow(u16 windowId);
|
static void MapNamePopupPrintMapNameOnWindow(u16 windowId);
|
||||||
static u8 *MapNamePopupAppendFloorNum(u8 *dest, s8 flags);
|
static u8 *MapNamePopupAppendFloorNum(u8 *dest, s8 flags);
|
||||||
|
|
||||||
|
#define tState data[0]
|
||||||
|
#define tTimer data[1]
|
||||||
|
#define tPos data[2]
|
||||||
|
#define tReshow data[3]
|
||||||
|
#define tWindowId data[4]
|
||||||
|
#define tWindowExists data[5]
|
||||||
|
#define tWindowCleared data[6]
|
||||||
|
#define tWindowDestroyed data[7]
|
||||||
|
#define tPalIntoFadedBuffer data[8]
|
||||||
|
|
||||||
void ShowMapNamePopup(bool32 palIntoFadedBuffer)
|
void ShowMapNamePopup(bool32 palIntoFadedBuffer)
|
||||||
{
|
{
|
||||||
u8 taskId;
|
u8 taskId;
|
||||||
if (FlagGet(FLAG_SPECIAL_FLAG_0x4000) != TRUE && !(gQuestLogState == 2 || gQuestLogState == 3))
|
if (FlagGet(FLAG_DONT_SHOW_MAP_NAME_POPUP) != TRUE && !(gQuestLogState == QL_STATE_2 || gQuestLogState == QL_STATE_3))
|
||||||
{
|
{
|
||||||
taskId = FindTaskIdByFunc(Task_MapNamePopup);
|
taskId = FindTaskIdByFunc(Task_MapNamePopup);
|
||||||
if (taskId == 0xFF)
|
if (taskId == 0xFF)
|
||||||
{
|
{
|
||||||
taskId = CreateTask(Task_MapNamePopup, 90);
|
taskId = CreateTask(Task_MapNamePopup, 90);
|
||||||
ChangeBgX(0, 0x00000000, 0);
|
ChangeBgX(0, 0x0000, 0);
|
||||||
ChangeBgY(0, 0xFFFFEF7F, 0);
|
ChangeBgY(0, -0x1081, 0);
|
||||||
gTasks[taskId].data[0] = 0;
|
gTasks[taskId].tState = 0;
|
||||||
gTasks[taskId].data[2] = 0;
|
gTasks[taskId].tPos = 0;
|
||||||
gTasks[taskId].data[8] = palIntoFadedBuffer;
|
gTasks[taskId].tPalIntoFadedBuffer = palIntoFadedBuffer;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (gTasks[taskId].data[0] != 4)
|
if (gTasks[taskId].tState != 4)
|
||||||
gTasks[taskId].data[0] = 4;
|
gTasks[taskId].tState = 4;
|
||||||
gTasks[taskId].data[3] = 1;
|
gTasks[taskId].tReshow = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -45,71 +55,71 @@ void ShowMapNamePopup(bool32 palIntoFadedBuffer)
|
|||||||
static void Task_MapNamePopup(u8 taskId)
|
static void Task_MapNamePopup(u8 taskId)
|
||||||
{
|
{
|
||||||
struct Task * task = &gTasks[taskId];
|
struct Task * task = &gTasks[taskId];
|
||||||
switch (task->data[0])
|
switch (task->tState)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
task->data[4] = MapNamePopupCreateWindow(task->data[8]);
|
task->tWindowId = MapNamePopupCreateWindow(task->tPalIntoFadedBuffer);
|
||||||
task->data[5] = 1;
|
task->tWindowExists = 1;
|
||||||
task->data[0] = 1;
|
task->tState = 1;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
if (IsDma3ManagerBusyWithBgCopy())
|
if (IsDma3ManagerBusyWithBgCopy())
|
||||||
break;
|
break;
|
||||||
// fallthrough
|
// fallthrough
|
||||||
case 2:
|
case 2:
|
||||||
task->data[2] -= 2;
|
task->tPos -= 2;
|
||||||
if (task->data[2] <= -24)
|
if (task->tPos <= -24)
|
||||||
{
|
{
|
||||||
task->data[0] = 3;
|
task->tState = 3;
|
||||||
task->data[1] = 0;
|
task->tTimer = 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
task->data[1]++;
|
task->tTimer++;
|
||||||
if (task->data[1] > 120)
|
if (task->tTimer > 120)
|
||||||
{
|
{
|
||||||
task->data[1] = 0;
|
task->tTimer = 0;
|
||||||
task->data[0] = 4;
|
task->tState = 4;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
task->data[2] += 2;
|
task->tPos += 2;
|
||||||
if (task->data[2] >= 0)
|
if (task->tPos >= 0)
|
||||||
{
|
{
|
||||||
if (task->data[3])
|
if (task->tReshow)
|
||||||
{
|
{
|
||||||
MapNamePopupPrintMapNameOnWindow(task->data[4]);
|
MapNamePopupPrintMapNameOnWindow(task->tWindowId);
|
||||||
CopyWindowToVram(task->data[4], 2);
|
CopyWindowToVram(task->tWindowId, 2);
|
||||||
task->data[0] = 1;
|
task->tState = 1;
|
||||||
task->data[3] = 0;
|
task->tReshow = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
task->data[0] = 6;
|
task->tState = 6;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case 5:
|
case 5:
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
if (task->data[5] && !task->data[6])
|
if (task->tWindowExists && !task->tWindowCleared)
|
||||||
{
|
{
|
||||||
rbox_fill_rectangle(task->data[4]);
|
rbox_fill_rectangle(task->tWindowId);
|
||||||
CopyWindowToVram(task->data[4], 1);
|
CopyWindowToVram(task->tWindowId, 1);
|
||||||
task->data[6] = 1;
|
task->tWindowCleared = TRUE;
|
||||||
}
|
}
|
||||||
task->data[0] = 7;
|
task->tState = 7;
|
||||||
return;
|
return;
|
||||||
case 7:
|
case 7:
|
||||||
if (!IsDma3ManagerBusyWithBgCopy())
|
if (!IsDma3ManagerBusyWithBgCopy())
|
||||||
{
|
{
|
||||||
if (task->data[5])
|
if (task->tWindowExists)
|
||||||
{
|
{
|
||||||
RemoveWindow(task->data[4]);
|
RemoveWindow(task->tWindowId);
|
||||||
task->data[5] = 0;
|
task->tWindowExists = FALSE;
|
||||||
task->data[7] = 1;
|
task->tWindowDestroyed = 1;
|
||||||
}
|
}
|
||||||
task->data[0] = 8;
|
task->tState = 8;
|
||||||
ChangeBgY(0, 0x00000000, 0);
|
ChangeBgY(0, 0x00000000, 0);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@@ -117,7 +127,7 @@ static void Task_MapNamePopup(u8 taskId)
|
|||||||
DestroyTask(taskId);
|
DestroyTask(taskId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
SetGpuReg(REG_OFFSET_BG0VOFS, task->data[2]);
|
SetGpuReg(REG_OFFSET_BG0VOFS, task->tPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DismissMapNamePopup(void)
|
void DismissMapNamePopup(void)
|
||||||
@@ -128,8 +138,8 @@ void DismissMapNamePopup(void)
|
|||||||
if (taskId != 0xFF)
|
if (taskId != 0xFF)
|
||||||
{
|
{
|
||||||
data = gTasks[taskId].data;
|
data = gTasks[taskId].data;
|
||||||
if (data[0] < 6)
|
if (tState < 6)
|
||||||
data[0] = 6;
|
tState = 6;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -160,6 +170,7 @@ static u16 MapNamePopupCreateWindow(bool32 palintoFadedBuffer)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// ROOFTOP
|
||||||
windowTemplate.width += 8;
|
windowTemplate.width += 8;
|
||||||
r6 = 0x02D;
|
r6 = 0x02D;
|
||||||
}
|
}
|
||||||
@@ -194,7 +205,7 @@ static void MapNamePopupPrintMapNameOnWindow(u16 windowId)
|
|||||||
}
|
}
|
||||||
xpos = (maxWidth - GetStringWidth(2, mapName, -1)) / 2;
|
xpos = (maxWidth - GetStringWidth(2, mapName, -1)) / 2;
|
||||||
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
|
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
|
||||||
AddTextPrinterParameterized(windowId, 2, mapName, xpos, 2, 0xFF, NULL);
|
AddTextPrinterParameterized(windowId, 2, mapName, xpos, 2, TEXT_SPEED_FF, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static u8 *MapNamePopupAppendFloorNum(u8 *dest, s8 floorNum)
|
static u8 *MapNamePopupAppendFloorNum(u8 *dest, s8 floorNum)
|
||||||
@@ -203,7 +214,7 @@ static u8 *MapNamePopupAppendFloorNum(u8 *dest, s8 floorNum)
|
|||||||
return dest;
|
return dest;
|
||||||
*dest++ = CHAR_SPACE;
|
*dest++ = CHAR_SPACE;
|
||||||
if (floorNum == 0x7F)
|
if (floorNum == 0x7F)
|
||||||
return StringCopy(dest, gUnknown_841D18D);
|
return StringCopy(dest, gText_Rooftop2);
|
||||||
if (floorNum < 0)
|
if (floorNum < 0)
|
||||||
{
|
{
|
||||||
*dest++ = CHAR_B;
|
*dest++ = CHAR_B;
|
||||||
@@ -214,3 +225,13 @@ static u8 *MapNamePopupAppendFloorNum(u8 *dest, s8 floorNum)
|
|||||||
*dest = EOS;
|
*dest = EOS;
|
||||||
return dest;
|
return dest;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#undef tPalIntoFadedBuffer
|
||||||
|
#undef tWindowDestroyed
|
||||||
|
#undef tWindowCleared
|
||||||
|
#undef tWindowExists
|
||||||
|
#undef tWindowId
|
||||||
|
#undef tReshow
|
||||||
|
#undef tPos
|
||||||
|
#undef tTimer
|
||||||
|
#undef tState
|
||||||
|
|||||||
+1
-1
@@ -1313,7 +1313,7 @@ static void Task_EndQuestLog(u8 taskId)
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (gUnknown_203AE94.unk_0_6 == 1)
|
if (gUnknown_203AE94.unk_0_6 == 1)
|
||||||
ShowMapNamePopup(1);
|
ShowMapNamePopup(TRUE);
|
||||||
CpuCopy16(gUnknown_203AE90, gPlttBufferUnfaded, 0x400);
|
CpuCopy16(gUnknown_203AE90, gPlttBufferUnfaded, 0x400);
|
||||||
Free(gUnknown_203AE90);
|
Free(gUnknown_203AE90);
|
||||||
gUnknown_203AE94 = (struct UnkStruct_203AE94){};
|
gUnknown_203AE94 = (struct UnkStruct_203AE94){};
|
||||||
|
|||||||
+1
-1
@@ -1059,7 +1059,7 @@ ALIGNED(4) const u8 gText_Ghost[] = _("GHOST");
|
|||||||
const u8 gText_PokemonOnHook[] = _("A POKéMON's on the hook!{PAUSE_UNTIL_PRESS}");
|
const u8 gText_PokemonOnHook[] = _("A POKéMON's on the hook!{PAUSE_UNTIL_PRESS}");
|
||||||
const u8 gText_NotEvenANibble[] = _("Not even a nibble‥{PAUSE_UNTIL_PRESS}");
|
const u8 gText_NotEvenANibble[] = _("Not even a nibble‥{PAUSE_UNTIL_PRESS}");
|
||||||
const u8 gText_ItGotAway[] = _("It got away‥{PAUSE_UNTIL_PRESS}");
|
const u8 gText_ItGotAway[] = _("It got away‥{PAUSE_UNTIL_PRESS}");
|
||||||
const u8 gUnknown_841D18D[] = _("ROOFTOP");
|
const u8 gText_Rooftop2[] = _("ROOFTOP");
|
||||||
ALIGNED(4) const u8 gString_PokemonFireRed_Staff[] = _("Pokémon FireRed Version\nStaff");
|
ALIGNED(4) const u8 gString_PokemonFireRed_Staff[] = _("Pokémon FireRed Version\nStaff");
|
||||||
ALIGNED(4) const u8 gString_PokemonLeafGreen_Staff[] = _("Pokémon LeafGreen Version\nStaff");
|
ALIGNED(4) const u8 gString_PokemonLeafGreen_Staff[] = _("Pokémon LeafGreen Version\nStaff");
|
||||||
ALIGNED(4) const u8 gCreditsString_Director[] = _("\n\nDirector\n\n\n\n");
|
ALIGNED(4) const u8 gCreditsString_Director[] = _("\n\nDirector\n\n\n\n");
|
||||||
|
|||||||
Reference in New Issue
Block a user