sub_8122DB0
This commit is contained in:
@@ -120,7 +120,7 @@ void sub_8170290(void)
|
||||
switch (gUnknown_0203BCD0->state)
|
||||
{
|
||||
case 0:
|
||||
sub_8122CDC(&gUnknown_0203BCD0->regionMap, FALSE);
|
||||
sub_8122CDC(&gUnknown_0203BCD0->regionMap, 0);
|
||||
sub_8124288(0, 0);
|
||||
sub_81240D4(1, 1);
|
||||
gUnknown_0203BCD0->state ++;
|
||||
@@ -181,7 +181,7 @@ void sub_8170290(void)
|
||||
|
||||
static void sub_8170428(void)
|
||||
{
|
||||
if (gUnknown_0203BCD0->regionMap.unk_02)
|
||||
if (gUnknown_0203BCD0->regionMap.unk_002 != 0)
|
||||
{
|
||||
FillWindowPixelBuffer(0, 0x11);
|
||||
PrintTextOnWindow(0, 1, gUnknown_0203BCD0->regionMap.mapSecName, 0, 1, 0, NULL);
|
||||
|
||||
+110
-2
@@ -2,6 +2,9 @@
|
||||
// Includes
|
||||
#include "global.h"
|
||||
#include "region_map.h"
|
||||
#include "menu.h"
|
||||
#include "palette.h"
|
||||
#include "bg.h"
|
||||
|
||||
// Static type declarations
|
||||
|
||||
@@ -20,18 +23,30 @@ void sub_8122CF8(struct RegionMap *regionMap, struct UnkStruct_8122CF8 *arg1, bo
|
||||
bool8 sub_8122DB0(void);
|
||||
u8 sub_8123254(void);
|
||||
u8 sub_81230C4(void);
|
||||
void sub_81238AC(void);
|
||||
u16 sub_8123EB4(u16 mapSecId);
|
||||
u8 get_flagnr_blue_points(u16 mapSecId);
|
||||
void sub_81236C4(s32 a0, s32 a1, s32 a2, s32 a3, u16 a4, u16 a5, u16 a6);
|
||||
void sub_8123FB0(void);
|
||||
void sub_81237B4(void);
|
||||
|
||||
// .rodata
|
||||
|
||||
extern const u8 gUnknown_0859F77C[];
|
||||
extern const u8 gUnknown_085A04E0[];
|
||||
extern const u16 gUnknown_0859F73C[];
|
||||
extern const u8 gUnknown_0859F60C[];
|
||||
extern const u8 gUnknown_0859F650[];
|
||||
|
||||
// .text
|
||||
|
||||
void sub_8122CDC(struct RegionMap *regionMap, bool8 argument)
|
||||
void sub_8122CDC(struct RegionMap *regionMap, u8 argument)
|
||||
{
|
||||
sub_8122CF8(regionMap, NULL, argument);
|
||||
while (sub_8122DB0());
|
||||
}
|
||||
|
||||
void sub_8122CF8(struct RegionMap *regionMap, struct UnkStruct_8122CF8 *arg1, bool8 arg2)
|
||||
void sub_8122CF8(struct RegionMap *regionMap, struct UnkStruct_8122CF8 *arg1, u8 arg2)
|
||||
{
|
||||
gUnknown_0203A144 = regionMap;
|
||||
gUnknown_0203A144->unk_079 = 0;
|
||||
@@ -52,3 +67,96 @@ void sub_8122CF8(struct RegionMap *regionMap, struct UnkStruct_8122CF8 *arg1, bo
|
||||
gUnknown_0203A144->unk_083 = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8122D88(struct RegionMap *regionMap)
|
||||
{
|
||||
gUnknown_0203A144 = regionMap;
|
||||
sub_81238AC();
|
||||
gUnknown_0203A144->unk_074 = gUnknown_0203A144->unk_054;
|
||||
gUnknown_0203A144->unk_076 = gUnknown_0203A144->unk_056;
|
||||
}
|
||||
|
||||
bool8 sub_8122DB0(void)
|
||||
{
|
||||
switch (gUnknown_0203A144->unk_079)
|
||||
{
|
||||
case 0:
|
||||
if (gUnknown_0203A144->unk_083)
|
||||
{
|
||||
decompress_and_copy_tile_data_to_vram(gUnknown_0203A144->unk_080, gUnknown_0859F77C, 0, 0, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
LZ77UnCompVram(gUnknown_0859F77C, (u16 *)BG_SCREEN_ADDR(16));
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (gUnknown_0203A144->unk_083)
|
||||
{
|
||||
if (!free_temp_tile_data_buffers_if_possible())
|
||||
{
|
||||
decompress_and_copy_tile_data_to_vram(gUnknown_0203A144->unk_080, gUnknown_085A04E0, 0, 0, 1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LZ77UnCompVram(gUnknown_085A04E0, (u16 *)BG_SCREEN_ADDR(28));
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (!free_temp_tile_data_buffers_if_possible())
|
||||
{
|
||||
LoadPalette(gUnknown_0859F73C, 0x70, 0x60);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
LZ77UnCompWram(gUnknown_0859F60C, gUnknown_0203A144->unk_184);
|
||||
break;
|
||||
case 4:
|
||||
LZ77UnCompWram(gUnknown_0859F650, gUnknown_0203A144->unk_284);
|
||||
break;
|
||||
case 5:
|
||||
sub_81238AC();
|
||||
gUnknown_0203A144->unk_074 = gUnknown_0203A144->unk_054;
|
||||
gUnknown_0203A144->unk_076 = gUnknown_0203A144->unk_056;
|
||||
gUnknown_0203A144->mapSecId = sub_8123EB4(gUnknown_0203A144->mapSecId);
|
||||
gUnknown_0203A144->unk_002 = get_flagnr_blue_points(gUnknown_0203A144->mapSecId);
|
||||
GetMapName(gUnknown_0203A144->mapSecName, gUnknown_0203A144->mapSecId, 16);
|
||||
break;
|
||||
case 6:
|
||||
if (gUnknown_0203A144->unk_078 == 0)
|
||||
{
|
||||
sub_81236C4(0, 0, 0, 0, 0x100, 0x100, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
gUnknown_0203A144->unk_05c = gUnknown_0203A144->unk_054 * 8 - 0x34;
|
||||
gUnknown_0203A144->unk_05e = gUnknown_0203A144->unk_056 * 8 - 0x44;
|
||||
gUnknown_0203A144->unk_064 = gUnknown_0203A144->unk_054;
|
||||
gUnknown_0203A144->unk_066 = gUnknown_0203A144->unk_056;
|
||||
sub_81236C4(gUnknown_0203A144->unk_05c, gUnknown_0203A144->unk_05e, 0x38, 0x48, 0x80, 0x80, 0);
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
sub_8123FB0();
|
||||
sub_81237B4();
|
||||
gUnknown_0203A144->unk_01c = 0;
|
||||
gUnknown_0203A144->unk_020 = 0;
|
||||
gUnknown_0203A144->unk_07a = 0;
|
||||
gUnknown_0203A144->unk_07e = 0;
|
||||
if (gUnknown_0203A144->unk_083)
|
||||
{
|
||||
SetBgAttribute(gUnknown_0203A144->unk_080, BG_CTRL_ATTR_MAPBASEINDEX, 2);
|
||||
SetBgAttribute(gUnknown_0203A144->unk_080, BG_CTRL_ATTR_VISIBLE, gUnknown_0203A144->unk_081);
|
||||
SetBgAttribute(gUnknown_0203A144->unk_080, BG_CTRL_ATTR_CHARBASEINDEX, gUnknown_0203A144->unk_082);
|
||||
SetBgAttribute(gUnknown_0203A144->unk_080, BG_CTRL_ATTR_PRIORITY, 1);
|
||||
SetBgAttribute(gUnknown_0203A144->unk_080, BG_CTRL_ATTR_SCREENSIZE, 1);
|
||||
}
|
||||
gUnknown_0203A144->unk_079 ++;
|
||||
return FALSE;
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
gUnknown_0203A144->unk_079 ++;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user