Begin porting/decompiling field_specials
This commit is contained in:
@@ -900,7 +900,7 @@ static void CB2_GiveStarter(void)
|
||||
{
|
||||
u16 starterMon;
|
||||
|
||||
*GetVarPointer(VAR_FIRST_POKE) = gSpecialVar_Result;
|
||||
*GetVarPointer(VAR_STARTER_MON) = gSpecialVar_Result;
|
||||
starterMon = GetStarterPokemon(gSpecialVar_Result);
|
||||
ScriptGiveMon(starterMon, 5, 0, 0, 0, 0);
|
||||
ResetTasks();
|
||||
|
||||
@@ -88,6 +88,6 @@ static void ReturnFromStartWallClock(void)
|
||||
|
||||
void StartWallClock(void)
|
||||
{
|
||||
SetMainCallback2(Cb2_StartWallClock);
|
||||
SetMainCallback2(CB2_StartWallClock);
|
||||
gMain.savedCallback = ReturnFromStartWallClock;
|
||||
}
|
||||
|
||||
@@ -2285,7 +2285,7 @@ static void sub_81772B8(struct Sprite *sprite)
|
||||
|
||||
static void sub_8177388(void)
|
||||
{
|
||||
u16 starter = SpeciesToNationalPokedexNum(GetStarterPokemon(VarGet(VAR_FIRST_POKE)));
|
||||
u16 starter = SpeciesToNationalPokedexNum(GetStarterPokemon(VarGet(VAR_STARTER_MON)));
|
||||
u16 page;
|
||||
u16 dexNum;
|
||||
u16 j;
|
||||
|
||||
@@ -63,7 +63,7 @@ static const struct WindowTemplate gUnknown_085E5070[] = {
|
||||
|
||||
// .text
|
||||
|
||||
void sub_817018C(MainCallback callback)
|
||||
void FieldInitRegionMap(MainCallback callback)
|
||||
{
|
||||
SetVBlankCallback(NULL);
|
||||
sFieldRegionMapHandler = malloc(sizeof(*sFieldRegionMapHandler));
|
||||
|
||||
@@ -272,7 +272,7 @@ bool8 sub_80FB59C(void)
|
||||
void Task_HandlePorthole(u8 taskId)
|
||||
{
|
||||
s16 *data = gTasks[taskId].data;
|
||||
u16 *var = GetVarPointer(VAR_PORTHOLE);
|
||||
u16 *var = GetVarPointer(VAR_PORTHOLE_STATE);
|
||||
struct WarpData *location = &gSaveBlock1Ptr->location;
|
||||
|
||||
switch (data[0])
|
||||
|
||||
1657
src/field_specials.c
Normal file
1657
src/field_specials.c
Normal file
File diff suppressed because it is too large
Load Diff
@@ -360,7 +360,7 @@ MATCHCALLDEF(sMomMatchCallHeader, 0, 0, FLAG_0x0D8, gMomMatchCallDesc, gMomMatch
|
||||
|
||||
static const match_call_text_data_t sStevenTextScripts[] = {
|
||||
{ gText_Steven_Pokenav_2B5B95, 0xffff, 0xffff },
|
||||
{ gText_Steven_Pokenav_2B5C53, FLAG_0x0C7, 0xffff },
|
||||
{ gText_Steven_Pokenav_2B5C53, FLAG_RUSTURF_TUNNEL_OPENED, 0xffff },
|
||||
{ gText_Steven_Pokenav_2B5CC9, FLAG_0x0D4, 0xffff },
|
||||
{ gText_Steven_Pokenav_2B5DB4, FLAG_0x070, 0xffff },
|
||||
{ gText_Steven_Pokenav_2B5E26, FLAG_0x4F6, 0xffff },
|
||||
@@ -415,7 +415,7 @@ MATCHCALLDEF(sBrendanMatchCallHeader, 4, FEMALE, FLAG_0x0FD, gMayBrendanMatchCal
|
||||
|
||||
static const match_call_text_data_t sWallyTextScripts[] = {
|
||||
{ gText_Wally_Pokenav_2B4DE2, 0xFFFF, 0xFFFF },
|
||||
{ gText_Wally_Pokenav_2B4E57, FLAG_0x0C7, 0xFFFF },
|
||||
{ gText_Wally_Pokenav_2B4E57, FLAG_RUSTURF_TUNNEL_OPENED, 0xFFFF },
|
||||
{ gText_Wally_Pokenav_2B4EA5, FLAG_0x4F3, 0xFFFF },
|
||||
{ gText_Wally_Pokenav_2B4F41, FLAG_0x097, 0xFFFF },
|
||||
{ gText_Wally_Pokenav_2B4FF3, FLAG_0x06F, 0xFFFF },
|
||||
|
||||
@@ -52,7 +52,7 @@ static EWRAM_DATA struct {
|
||||
/*0x88c*/ u8 unk_88c[0x1c0];
|
||||
/*0xa4c*/ u8 unk_a4c[0x26];
|
||||
/*0xa72*/ bool8 unk_a72;
|
||||
} *gUnknown_0203A148 = NULL; // a74
|
||||
} *sFlyMap = NULL; // a74
|
||||
|
||||
static bool32 gUnknown_03001180;
|
||||
static bool32 gUnknown_03001184;
|
||||
@@ -1578,8 +1578,8 @@ void MCB2_FlyMap(void)
|
||||
SetGpuReg(REG_OFFSET_BG2HOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_BG3HOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_BG3VOFS, 0);
|
||||
gUnknown_0203A148 = malloc(sizeof(*gUnknown_0203A148));
|
||||
if (gUnknown_0203A148 == NULL)
|
||||
sFlyMap = malloc(sizeof(*sFlyMap));
|
||||
if (sFlyMap == NULL)
|
||||
{
|
||||
SetMainCallback2(CB2_ReturnToFieldWithOpenMenu);
|
||||
}
|
||||
@@ -1608,11 +1608,11 @@ void MCB2_FlyMap(void)
|
||||
gMain.state++;
|
||||
break;
|
||||
case 4:
|
||||
InitRegionMap(&gUnknown_0203A148->regionMap, FALSE);
|
||||
InitRegionMap(&sFlyMap->regionMap, FALSE);
|
||||
CreateRegionMapCursor(0, 0);
|
||||
CreateRegionMapPlayerIcon(1, 1);
|
||||
gUnknown_0203A148->mapSecId = gUnknown_0203A148->regionMap.mapSecId;
|
||||
StringFill(gUnknown_0203A148->unk_a4c, CHAR_SPACE, 16);
|
||||
sFlyMap->mapSecId = sFlyMap->regionMap.mapSecId;
|
||||
StringFill(sFlyMap->unk_a4c, CHAR_SPACE, 16);
|
||||
gUnknown_03001180 = TRUE;
|
||||
sub_8124904();
|
||||
gMain.state++;
|
||||
@@ -1664,7 +1664,7 @@ static void sub_81248C0(void)
|
||||
|
||||
static void sub_81248D4(void)
|
||||
{
|
||||
gUnknown_0203A148->unk_000();
|
||||
sFlyMap->unk_000();
|
||||
AnimateSprites();
|
||||
BuildOamBuffer();
|
||||
do_scheduled_bg_tilemap_copies_to_vram();
|
||||
@@ -1672,8 +1672,8 @@ static void sub_81248D4(void)
|
||||
|
||||
static void sub_81248F4(void callback(void))
|
||||
{
|
||||
gUnknown_0203A148->unk_000 = callback;
|
||||
gUnknown_0203A148->unk_004 = 0;
|
||||
sFlyMap->unk_000 = callback;
|
||||
sFlyMap->unk_004 = 0;
|
||||
}
|
||||
|
||||
static void sub_8124904(void)
|
||||
@@ -1682,21 +1682,21 @@ static void sub_8124904(void)
|
||||
bool32 flag;
|
||||
const u8 *name;
|
||||
|
||||
if (gUnknown_0203A148->regionMap.iconDrawType > MAPSECTYPE_NONE && gUnknown_0203A148->regionMap.iconDrawType <= MAPSECTYPE_BATTLE_FRONTIER)
|
||||
if (sFlyMap->regionMap.iconDrawType > MAPSECTYPE_NONE && sFlyMap->regionMap.iconDrawType <= MAPSECTYPE_BATTLE_FRONTIER)
|
||||
{
|
||||
flag = FALSE;
|
||||
for (i = 0; i < 1; i++)
|
||||
{
|
||||
if (gUnknown_0203A148->regionMap.mapSecId == gUnknown_085A1EDC[i].mapSecId)
|
||||
if (sFlyMap->regionMap.mapSecId == gUnknown_085A1EDC[i].mapSecId)
|
||||
{
|
||||
if (FlagGet(gUnknown_085A1EDC[i].flag))
|
||||
{
|
||||
StringLength(gUnknown_085A1EDC[i].name[gUnknown_0203A148->regionMap.posWithinMapSec]);
|
||||
StringLength(gUnknown_085A1EDC[i].name[sFlyMap->regionMap.posWithinMapSec]);
|
||||
flag = TRUE;
|
||||
sub_8198070(0, FALSE);
|
||||
SetWindowBorderStyle(1, FALSE, 0x65, 0x0d);
|
||||
PrintTextOnWindow(1, 1, gUnknown_0203A148->regionMap.mapSecName, 0, 1, 0, NULL);
|
||||
name = gUnknown_085A1EDC[i].name[gUnknown_0203A148->regionMap.posWithinMapSec];
|
||||
PrintTextOnWindow(1, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL);
|
||||
name = gUnknown_085A1EDC[i].name[sFlyMap->regionMap.posWithinMapSec];
|
||||
PrintTextOnWindow(1, 1, name, GetStringRightAlignXOffset(1, name, 0x60), 0x11, 0, NULL);
|
||||
schedule_bg_copy_tilemap_to_vram(0);
|
||||
gUnknown_03001180 = TRUE;
|
||||
@@ -1715,7 +1715,7 @@ static void sub_8124904(void)
|
||||
{
|
||||
FillWindowPixelBuffer(0, 0x11);
|
||||
}
|
||||
PrintTextOnWindow(0, 1, gUnknown_0203A148->regionMap.mapSecName, 0, 1, 0, NULL);
|
||||
PrintTextOnWindow(0, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL);
|
||||
schedule_bg_copy_tilemap_to_vram(0);
|
||||
gUnknown_03001180 = FALSE;
|
||||
}
|
||||
@@ -1739,8 +1739,8 @@ static void sub_8124A70(void)
|
||||
{
|
||||
struct SpriteSheet sheet;
|
||||
|
||||
LZ77UnCompWram(sUnknown_085A1D68, gUnknown_0203A148->unk_88c);
|
||||
sheet.data = gUnknown_0203A148->unk_88c;
|
||||
LZ77UnCompWram(sUnknown_085A1D68, sFlyMap->unk_88c);
|
||||
sheet.data = sFlyMap->unk_88c;
|
||||
sheet.size = 0x1c0;
|
||||
sheet.tag = 2;
|
||||
LoadSpriteSheet(&sheet);
|
||||
@@ -1829,7 +1829,7 @@ static void sub_8124BE4(void)
|
||||
|
||||
static void sub_8124CBC(struct Sprite *sprite)
|
||||
{
|
||||
if (gUnknown_0203A148->regionMap.mapSecId == sprite->data[0])
|
||||
if (sFlyMap->regionMap.mapSecId == sprite->data[0])
|
||||
{
|
||||
if (++sprite->data[1] > 16)
|
||||
{
|
||||
@@ -1846,11 +1846,11 @@ static void sub_8124CBC(struct Sprite *sprite)
|
||||
|
||||
static void sub_8124D14(void)
|
||||
{
|
||||
switch (gUnknown_0203A148->unk_004)
|
||||
switch (sFlyMap->unk_004)
|
||||
{
|
||||
case 0:
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
|
||||
gUnknown_0203A148->unk_004++;
|
||||
sFlyMap->unk_004++;
|
||||
break;
|
||||
case 1:
|
||||
if (!UpdatePaletteFade())
|
||||
@@ -1863,7 +1863,7 @@ static void sub_8124D14(void)
|
||||
|
||||
static void sub_8124D64(void)
|
||||
{
|
||||
if (gUnknown_0203A148->unk_004 == 0)
|
||||
if (sFlyMap->unk_004 == 0)
|
||||
{
|
||||
switch (sub_81230AC())
|
||||
{
|
||||
@@ -1875,16 +1875,16 @@ static void sub_8124D64(void)
|
||||
sub_8124904();
|
||||
break;
|
||||
case INPUT_EVENT_A_BUTTON:
|
||||
if (gUnknown_0203A148->regionMap.iconDrawType == MAPSECTYPE_CITY_CANFLY || gUnknown_0203A148->regionMap.iconDrawType == MAPSECTYPE_BATTLE_FRONTIER)
|
||||
if (sFlyMap->regionMap.iconDrawType == MAPSECTYPE_CITY_CANFLY || sFlyMap->regionMap.iconDrawType == MAPSECTYPE_BATTLE_FRONTIER)
|
||||
{
|
||||
m4aSongNumStart(SE_SELECT);
|
||||
gUnknown_0203A148->unk_a72 = TRUE;
|
||||
sFlyMap->unk_a72 = TRUE;
|
||||
sub_81248F4(sub_8124E0C);
|
||||
}
|
||||
break;
|
||||
case INPUT_EVENT_B_BUTTON:
|
||||
m4aSongNumStart(SE_SELECT);
|
||||
gUnknown_0203A148->unk_a72 = FALSE;
|
||||
sFlyMap->unk_a72 = FALSE;
|
||||
sub_81248F4(sub_8124E0C);
|
||||
break;
|
||||
}
|
||||
@@ -1893,19 +1893,19 @@ static void sub_8124D64(void)
|
||||
|
||||
static void sub_8124E0C(void)
|
||||
{
|
||||
switch (gUnknown_0203A148->unk_004)
|
||||
switch (sFlyMap->unk_004)
|
||||
{
|
||||
case 0:
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
|
||||
gUnknown_0203A148->unk_004++;
|
||||
sFlyMap->unk_004++;
|
||||
break;
|
||||
case 1:
|
||||
if (!UpdatePaletteFade())
|
||||
{
|
||||
FreeRegionMapIconResources();
|
||||
if (gUnknown_0203A148->unk_a72)
|
||||
if (sFlyMap->unk_a72)
|
||||
{
|
||||
switch (gUnknown_0203A148->regionMap.mapSecId)
|
||||
switch (sFlyMap->regionMap.mapSecId)
|
||||
{
|
||||
case MAPSEC_SOUTHERN_ISLAND:
|
||||
sub_8084CCC(0x15);
|
||||
@@ -1917,16 +1917,16 @@ static void sub_8124E0C(void)
|
||||
sub_8084CCC(gSaveBlock2Ptr->playerGender == MALE ? 0x0C : 0x0D);
|
||||
break;
|
||||
case MAPSEC_EVER_GRANDE_CITY:
|
||||
sub_8084CCC(FlagGet(FLAG_LANDMARK_POKEMON_LEAGUE) && gUnknown_0203A148->regionMap.posWithinMapSec == 0 ? 0x14 : 0x0B);
|
||||
sub_8084CCC(FlagGet(FLAG_LANDMARK_POKEMON_LEAGUE) && sFlyMap->regionMap.posWithinMapSec == 0 ? 0x14 : 0x0B);
|
||||
break;
|
||||
default:
|
||||
if (sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][2] != 0)
|
||||
if (sUnknown_085A1E3C[sFlyMap->regionMap.mapSecId][2] != 0)
|
||||
{
|
||||
sub_8084CCC(sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][2]);
|
||||
sub_8084CCC(sUnknown_085A1E3C[sFlyMap->regionMap.mapSecId][2]);
|
||||
}
|
||||
else
|
||||
{
|
||||
warp1_set_2(sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][0], sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][1], -1);
|
||||
warp1_set_2(sUnknown_085A1E3C[sFlyMap->regionMap.mapSecId][0], sUnknown_085A1E3C[sFlyMap->regionMap.mapSecId][1], -1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -1936,10 +1936,10 @@ static void sub_8124E0C(void)
|
||||
{
|
||||
SetMainCallback2(sub_81B58A8);
|
||||
}
|
||||
if (gUnknown_0203A148 != NULL)
|
||||
if (sFlyMap != NULL)
|
||||
{
|
||||
free(gUnknown_0203A148);
|
||||
gUnknown_0203A148 = NULL;
|
||||
free(sFlyMap);
|
||||
sFlyMap = NULL;
|
||||
}
|
||||
FreeAllWindowBuffers();
|
||||
}
|
||||
|
||||
@@ -602,7 +602,7 @@ static void WallClockInit(void)
|
||||
ShowBg(3);
|
||||
}
|
||||
|
||||
void Cb2_StartWallClock(void)
|
||||
void CB2_StartWallClock(void)
|
||||
{
|
||||
u8 taskId;
|
||||
u8 spriteId;
|
||||
@@ -644,7 +644,7 @@ void Cb2_StartWallClock(void)
|
||||
schedule_bg_copy_tilemap_to_vram(2);
|
||||
}
|
||||
|
||||
void Cb2_ViewWallClock(void)
|
||||
void CB2_ViewWallClock(void)
|
||||
{
|
||||
u8 taskId;
|
||||
u8 spriteId;
|
||||
|
||||
Reference in New Issue
Block a user