[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));
|
||||
// load external palette if available
|
||||
if (paletteAddr) {
|
||||
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));
|
||||
paletteAddr = target.defaultPalette;
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -75,8 +75,7 @@ ox::Error shutdownGfx(Context *ctx) {
|
||||
|
||||
ox::Error initConsole(Context *ctx) {
|
||||
constexpr auto TilesheetAddr = "/TileSheets/Charset.ng";
|
||||
constexpr auto PaletteAddr = "/Palettes/Charset.npal";
|
||||
return loadTileSheet(ctx, TileSheetSpace::Background, 0, TilesheetAddr, PaletteAddr);
|
||||
return loadTileSheet(ctx, TileSheetSpace::Background, 0, TilesheetAddr);
|
||||
}
|
||||
|
||||
SDL_Color createSDL_Color(Color16 nc) {
|
||||
@ -106,11 +105,10 @@ ox::Error loadTileSheet(Context *ctx,
|
||||
auto [tilesheet, tserr] = readMC<NostalgiaGraphic>(ctx, tilesheetPath);
|
||||
oxReturnError(tserr);
|
||||
NostalgiaPalette palette;
|
||||
if (palettePath) {
|
||||
oxReturnError(readMC<NostalgiaPalette>(ctx, palettePath).get(&palette));
|
||||
} else {
|
||||
palette = tilesheet.pal;
|
||||
if (!palettePath) {
|
||||
palettePath = tilesheet.defaultPalette;
|
||||
}
|
||||
oxReturnError(readMC<NostalgiaPalette>(ctx, palettePath).get(&palette));
|
||||
|
||||
const auto bytesPerTile = tilesheet.bpp == 8 ? 64 : 32;
|
||||
const auto tiles = tilesheet.tiles.size() / bytesPerTile;
|
||||
@ -125,7 +123,7 @@ ox::Error loadTileSheet(Context *ctx,
|
||||
} else {
|
||||
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 + 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