sub_814571C and associated graphics dump

This commit is contained in:
PikalaxALT
2018-12-02 11:42:45 -05:00
parent 993df493cd
commit 8f0f725039
22 changed files with 268 additions and 263 deletions
+84 -4
View File
@@ -1,13 +1,18 @@
#include "global.h"
#include "bg.h"
#include "palette.h"
#include "decompress.h"
#include "malloc.h"
#include "menu.h"
#include "pokemon_icon.h"
#include "mevent.h"
struct UnkStruct_8467FB8
{
u16 ident;
const void * unk_04;
const void * unk_08;
const void * unk_0C;
const u8 * tiles;
const u8 * map;
const u16 * pal;
};
struct UnkStruct_203F3C8
@@ -15,11 +20,22 @@ struct UnkStruct_203F3C8
/*0000*/ struct MEventBuffer_32E0_Sub unk_0000;
/*014c*/ struct MEventBuffer_3430_Sub unk_014c;
/*0170*/ const struct UnkStruct_8467FB8 * unk_0170;
/*0174*/ u8 filler_0174[0x12E8];
/*0174*/ u8 unk_0174;
/*0176*/ u16 unk_0176;
/*0178*/ u16 unk_0178;
/*017A*/ u16 unk_017A;
/*017C*/ u8 filler_0178[0x2E0];
/*045C*/ u8 buffer_045C[0x1000];
};
EWRAM_DATA struct UnkStruct_203F3C8 * gUnknown_203F3C8 = NULL;
void sub_8145A98(void);
void sub_8145D18(u8 bgId);
void sub_8146060(void);
extern const struct WindowTemplate gUnknown_8467074[3];
extern const struct UnkStruct_8467FB8 gUnknown_8467FB8[8];
bool32 sub_8145654(struct MEventBuffer_32E0_Sub * r5, struct MEventBuffer_3430_Sub * r6)
@@ -50,3 +66,67 @@ void sub_81456F0(void)
gUnknown_203F3C8 = NULL;
}
}
s32 sub_814571C(void)
{
if (gUnknown_203F3C8 == NULL)
return -1;
switch(gUnknown_203F3C8->unk_0174)
{
case 0:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
break;
case 1:
if (UpdatePaletteFade())
return 0;
break;
case 2:
FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 30, 20);
FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20);
FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 30, 20);
CopyBgTilemapBufferToVram(0);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(2);
decompress_and_copy_tile_data_to_vram(2, gUnknown_203F3C8->unk_0170->tiles, 0, 0x008, 0);
gUnknown_203F3C8->unk_0176 = AddWindow(&gUnknown_8467074[0]);
gUnknown_203F3C8->unk_0178 = AddWindow(&gUnknown_8467074[1]);
gUnknown_203F3C8->unk_017A = AddWindow(&gUnknown_8467074[2]);
break;
case 3:
if (free_temp_tile_data_buffers_if_possible())
return 0;
gPaletteFade.bufferTransferDisabled = TRUE;
LoadPalette(gUnknown_203F3C8->unk_0170->pal, 0x10, 0x20);
LZ77UnCompWram(gUnknown_203F3C8->unk_0170->map, gUnknown_203F3C8->buffer_045C);
CopyRectToBgTilemapBufferRect(2, gUnknown_203F3C8->buffer_045C, 0, 0, 30, 20, 0, 0, 30, 20, 1, 0x008, 0);
CopyBgTilemapBufferToVram(2);
break;
case 4:
sub_8145A98();
break;
case 5:
sub_8145D18(0);
sub_8145D18(1);
sub_8145D18(2);
CopyBgTilemapBufferToVram(1);
break;
case 6:
sub_809707C();
break;
case 7:
ShowBg(1);
ShowBg(2);
gPaletteFade.bufferTransferDisabled = FALSE;
sub_8146060();
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
UpdatePaletteFade();
break;
default:
if (UpdatePaletteFade())
return 0;
gUnknown_203F3C8->unk_0174 = 0;
return 1;
}
++gUnknown_203F3C8->unk_0174;
return 0;
}