mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-28 04:34:28 +01:00
67 lines
2.2 KiB
C
67 lines
2.2 KiB
C
#include "global.h"
|
|
#include "main.h"
|
|
#include "menu.h"
|
|
#include "bg.h"
|
|
#include "malloc.h"
|
|
#include "palette.h"
|
|
#include "pokedex_area_region_map.h"
|
|
|
|
static EWRAM_DATA u8 *sPokedexAreaMapBgNum = NULL;
|
|
|
|
static const u16 sPokedexAreaMap_Pal[] = INCBIN_U16("graphics/interface/region_map.gbapal");
|
|
static const u32 sPokedexAreaMap_Gfx[] = INCBIN_U32("graphics/interface/region_map.8bpp.lz");
|
|
static const u32 sPokedexAreaMap_Tilemap[] = INCBIN_U32("graphics/interface/region_map.bin.lz");
|
|
static const u32 sPokedexAreaMapAffine_Gfx[] = INCBIN_U32("graphics/interface/region_map_affine.8bpp.lz");
|
|
static const u32 sPokedexAreaMapAffine_Tilemap[] = INCBIN_U32("graphics/interface/region_map_affine.bin.lz");
|
|
|
|
void LoadPokedexAreaMapGfx(const struct PokedexAreaMapTemplate *template)
|
|
{
|
|
u8 mode;
|
|
sPokedexAreaMapBgNum = Alloc(4);
|
|
mode = template->mode;
|
|
|
|
if (mode == 0)
|
|
{
|
|
SetBgAttribute(template->bg, BG_ATTR_METRIC, 0);
|
|
decompress_and_copy_tile_data_to_vram(template->bg, sPokedexAreaMap_Gfx, 0, template->offset, 0);
|
|
sub_8199D3C(decompress_and_copy_tile_data_to_vram(template->bg, sPokedexAreaMap_Tilemap, 0, 0, 1), template->offset, 32, 32, FALSE);
|
|
}
|
|
else
|
|
{
|
|
SetBgAttribute(template->bg, BG_ATTR_METRIC, 2);
|
|
SetBgAttribute(template->bg, BG_ATTR_TYPE, 1);
|
|
decompress_and_copy_tile_data_to_vram(template->bg, sPokedexAreaMapAffine_Gfx, 0, template->offset, 0);
|
|
sub_8199D3C(decompress_and_copy_tile_data_to_vram(template->bg, sPokedexAreaMapAffine_Tilemap, 0, 0, 1), template->offset, 64, 64, TRUE);
|
|
}
|
|
|
|
ChangeBgX(template->bg, 0, 0);
|
|
ChangeBgY(template->bg, 0, 0);
|
|
SetBgAttribute(template->bg, BG_ATTR_PALETTEMODE, 1);
|
|
CpuCopy32(sPokedexAreaMap_Pal, &gPlttBufferUnfaded[0x70], 0x60);
|
|
*sPokedexAreaMapBgNum = template->bg;
|
|
}
|
|
|
|
bool32 sub_81C4E90(void)
|
|
{
|
|
if (!free_temp_tile_data_buffers_if_possible())
|
|
{
|
|
ShowBg(*sPokedexAreaMapBgNum);
|
|
return FALSE;
|
|
}
|
|
else
|
|
{
|
|
return TRUE;
|
|
}
|
|
}
|
|
|
|
void FreePokedexAreaMapBgNum(void)
|
|
{
|
|
if (sPokedexAreaMapBgNum != NULL)
|
|
FREE_AND_SET_NULL(sPokedexAreaMapBgNum);
|
|
}
|
|
|
|
void PokedexAreaMapChangeBgY(u32 a0)
|
|
{
|
|
ChangeBgY(*sPokedexAreaMapBgNum, a0 * 0x100, 0);
|
|
}
|