68 lines
1.6 KiB
C++
68 lines
1.6 KiB
C++
#pragma once
|
|
|
|
#include "res/gfx/tilesets/cavern.4bpp.h"
|
|
#include "res/gfx/tilesets/cemetery.4bpp.h"
|
|
#include "res/gfx/tilesets/club.4bpp.h"
|
|
#include "res/gfx/tilesets/facility.4bpp.h"
|
|
#include "res/gfx/tilesets/forest.4bpp.h"
|
|
#include "res/gfx/tilesets/gate.4bpp.h"
|
|
#include "res/gfx/tilesets/gym.4bpp.h"
|
|
#include "res/gfx/tilesets/house.4bpp.h"
|
|
#include "res/gfx/tilesets/interior.4bpp.h"
|
|
#include "res/gfx/tilesets/lab.4bpp.h"
|
|
#include "res/gfx/tilesets/lobby.4bpp.h"
|
|
#include "res/gfx/tilesets/mansion.4bpp.h"
|
|
#include "res/gfx/tilesets/overworld.4bpp.h"
|
|
#include "res/gfx/tilesets/plateau.4bpp.h"
|
|
#include "res/gfx/tilesets/pokecenter.4bpp.h"
|
|
#include "res/gfx/tilesets/reds_house.4bpp.h"
|
|
#include "res/gfx/tilesets/ship.4bpp.h"
|
|
#include "res/gfx/tilesets/ship_port.4bpp.h"
|
|
#include "res/gfx/tilesets/underground.4bpp.h"
|
|
|
|
struct tileset {
|
|
enum {
|
|
cavern,
|
|
cemetery,
|
|
club,
|
|
facility,
|
|
forest,
|
|
gate,
|
|
gym,
|
|
house,
|
|
interior,
|
|
lab,
|
|
lobby,
|
|
mansion,
|
|
overworld,
|
|
plateau,
|
|
pokecenter,
|
|
reds_house,
|
|
ship,
|
|
ship_port,
|
|
underground,
|
|
};
|
|
|
|
static uint32_t pattern_name(uint32_t graphics_ix);
|
|
static uint32_t load(uint32_t top, uint32_t i);
|
|
};
|
|
|
|
struct buf_t {
|
|
uint32_t * buf;
|
|
uint32_t size;
|
|
uint32_t base_address;
|
|
};
|
|
|
|
extern uint32_t cell_data(const buf_t& buf, const uint32_t top);
|
|
|
|
uint32_t tileset::pattern_name(uint32_t graphics_ix)
|
|
{
|
|
return tilesets[graphics_ix].base_address / 32;
|
|
}
|
|
|
|
uint32_t tileset::load(uint32_t top, uint32_t i)
|
|
{
|
|
tilesets[i].base_address = top = cell_data(tilesets[i], top);
|
|
return top;
|
|
}
|