[nostalgia/core] Add tileColumns and tileRows functions
This commit is contained in:
parent
f6a0ae2027
commit
76771e7bdd
@ -103,6 +103,12 @@ oxModelEnd()
|
|||||||
|
|
||||||
void addEntry(TileSheetSet &set, ox::FileAddress path, int32_t begin = 0, int32_t size = -1) noexcept;
|
void addEntry(TileSheetSet &set, ox::FileAddress path, int32_t begin = 0, int32_t size = -1) noexcept;
|
||||||
|
|
||||||
|
[[nodiscard]]
|
||||||
|
int tileColumns(Context&) noexcept;
|
||||||
|
|
||||||
|
[[nodiscard]]
|
||||||
|
int tileRows(Context&) noexcept;
|
||||||
|
|
||||||
ox::Error loadBgPalette(
|
ox::Error loadBgPalette(
|
||||||
Context &ctx,
|
Context &ctx,
|
||||||
size_t palBank,
|
size_t palBank,
|
||||||
|
@ -22,8 +22,6 @@
|
|||||||
|
|
||||||
namespace nostalgia::core {
|
namespace nostalgia::core {
|
||||||
|
|
||||||
constexpr auto GbaTileColumns = 32;
|
|
||||||
constexpr auto GbaTileRows = 32;
|
|
||||||
constexpr auto SpriteCount = 128;
|
constexpr auto SpriteCount = 128;
|
||||||
|
|
||||||
struct GbaTileMapTarget {
|
struct GbaTileMapTarget {
|
||||||
@ -285,7 +283,7 @@ ox::Error loadSpriteTileSheet(
|
|||||||
}
|
}
|
||||||
|
|
||||||
void setBgTile(Context&, uint_t bgIdx, int column, int row, BgTile const&tile) noexcept {
|
void setBgTile(Context&, uint_t bgIdx, int column, int row, BgTile const&tile) noexcept {
|
||||||
auto const tileIdx = static_cast<std::size_t>(row * GbaTileColumns + column);
|
auto const tileIdx = static_cast<std::size_t>(row * tileColumns() + column);
|
||||||
// see Tonc 9.3
|
// see Tonc 9.3
|
||||||
MEM_BG_MAP[bgIdx][tileIdx] =
|
MEM_BG_MAP[bgIdx][tileIdx] =
|
||||||
static_cast<uint16_t>(tile.tileIdx & 0b1'1111'1111) |
|
static_cast<uint16_t>(tile.tileIdx & 0b1'1111'1111) |
|
||||||
@ -294,8 +292,8 @@ void setBgTile(Context&, uint_t bgIdx, int column, int row, BgTile const&tile) n
|
|||||||
static_cast<uint16_t>(tile.palBank << 0xc);
|
static_cast<uint16_t>(tile.palBank << 0xc);
|
||||||
}
|
}
|
||||||
|
|
||||||
void clearBg(Context&, uint_t bgIdx) noexcept {
|
void clearBg(Context &ctx, uint_t bgIdx) noexcept {
|
||||||
memset(MEM_BG_MAP[bgIdx].data(), 0, GbaTileRows * GbaTileColumns);
|
memset(MEM_BG_MAP[bgIdx].data(), 0, static_cast<size_t>(tileRows(ctx) * tileColumns(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t bgStatus(Context&) noexcept {
|
uint8_t bgStatus(Context&) noexcept {
|
||||||
|
@ -6,6 +6,17 @@
|
|||||||
|
|
||||||
namespace nostalgia::core {
|
namespace nostalgia::core {
|
||||||
|
|
||||||
|
constexpr auto GbaTileColumns = 32;
|
||||||
|
constexpr auto GbaTileRows = 32;
|
||||||
|
|
||||||
|
int tileColumns(Context&) noexcept {
|
||||||
|
return GbaTileColumns;
|
||||||
|
}
|
||||||
|
|
||||||
|
int tileRows(Context&) noexcept {
|
||||||
|
return GbaTileRows;
|
||||||
|
}
|
||||||
|
|
||||||
// map ASCII values to the nostalgia charset
|
// map ASCII values to the nostalgia charset
|
||||||
constexpr ox::Array<char, 128> charMap = {
|
constexpr ox::Array<char, 128> charMap = {
|
||||||
0,
|
0,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user