[nostalgia/core] Make load tile sheet default to defaultPalette
This commit is contained in:
parent
6d2155d1ed
commit
43318acffa
@ -141,13 +141,13 @@ ox::Error loadTileSheet(Context *ctx,
|
|||||||
oxReturnError(ox::readMC(ts, tsStat.size, &target));
|
oxReturnError(ox::readMC(ts, tsStat.size, &target));
|
||||||
// load external palette if available
|
// load external palette if available
|
||||||
if (paletteAddr) {
|
if (paletteAddr) {
|
||||||
auto [palStat, palStatErr] = ctx->rom->stat(paletteAddr);
|
paletteAddr = target.defaultPalette;
|
||||||
oxReturnError(palStatErr);
|
|
||||||
auto [pal, palErr] = ctx->rom->read(paletteAddr);
|
|
||||||
oxReturnError(palErr);
|
|
||||||
oxReturnError(ox::readMC(pal, palStat.size, &target.pal));
|
|
||||||
}
|
}
|
||||||
|
auto [palStat, palStatErr] = ctx->rom->stat(paletteAddr);
|
||||||
|
oxReturnError(palStatErr);
|
||||||
|
auto [pal, palErr] = ctx->rom->read(paletteAddr);
|
||||||
|
oxReturnError(palErr);
|
||||||
|
oxReturnError(ox::readMC(pal, palStat.size, &target.pal));
|
||||||
return OxError(0);
|
return OxError(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -75,8 +75,7 @@ ox::Error shutdownGfx(Context *ctx) {
|
|||||||
|
|
||||||
ox::Error initConsole(Context *ctx) {
|
ox::Error initConsole(Context *ctx) {
|
||||||
constexpr auto TilesheetAddr = "/TileSheets/Charset.ng";
|
constexpr auto TilesheetAddr = "/TileSheets/Charset.ng";
|
||||||
constexpr auto PaletteAddr = "/Palettes/Charset.npal";
|
return loadTileSheet(ctx, TileSheetSpace::Background, 0, TilesheetAddr);
|
||||||
return loadTileSheet(ctx, TileSheetSpace::Background, 0, TilesheetAddr, PaletteAddr);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SDL_Color createSDL_Color(Color16 nc) {
|
SDL_Color createSDL_Color(Color16 nc) {
|
||||||
@ -106,11 +105,10 @@ ox::Error loadTileSheet(Context *ctx,
|
|||||||
auto [tilesheet, tserr] = readMC<NostalgiaGraphic>(ctx, tilesheetPath);
|
auto [tilesheet, tserr] = readMC<NostalgiaGraphic>(ctx, tilesheetPath);
|
||||||
oxReturnError(tserr);
|
oxReturnError(tserr);
|
||||||
NostalgiaPalette palette;
|
NostalgiaPalette palette;
|
||||||
if (palettePath) {
|
if (!palettePath) {
|
||||||
oxReturnError(readMC<NostalgiaPalette>(ctx, palettePath).get(&palette));
|
palettePath = tilesheet.defaultPalette;
|
||||||
} else {
|
|
||||||
palette = tilesheet.pal;
|
|
||||||
}
|
}
|
||||||
|
oxReturnError(readMC<NostalgiaPalette>(ctx, palettePath).get(&palette));
|
||||||
|
|
||||||
const auto bytesPerTile = tilesheet.bpp == 8 ? 64 : 32;
|
const auto bytesPerTile = tilesheet.bpp == 8 ? 64 : 32;
|
||||||
const auto tiles = tilesheet.tiles.size() / bytesPerTile;
|
const auto tiles = tilesheet.tiles.size() / bytesPerTile;
|
||||||
@ -125,7 +123,7 @@ ox::Error loadTileSheet(Context *ctx,
|
|||||||
} else {
|
} else {
|
||||||
for (std::size_t i = 0; i < tilesheet.tiles.size(); ++i) {
|
for (std::size_t i = 0; i < tilesheet.tiles.size(); ++i) {
|
||||||
static_cast<uint8_t*>(surface->pixels)[i * 2 + 0] = tilesheet.tiles[i] & 0xF;
|
static_cast<uint8_t*>(surface->pixels)[i * 2 + 0] = tilesheet.tiles[i] & 0xF;
|
||||||
static_cast<uint8_t*>(surface->pixels)[i * 2 + 1] = tilesheet.tiles[i] >> 4;
|
static_cast<uint8_t*>(surface->pixels)[i * 2 + 1] = tilesheet.tiles[i] >> 4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user