From c99a4b0bc4dcee67cb3b1724bbe844e0bbec6706 Mon Sep 17 00:00:00 2001 From: scawful Date: Sun, 2 Mar 2025 17:06:46 -0500 Subject: [PATCH] rename ApplyPalette with SetPalette --- src/app/core/platform/renderer.h | 2 +- src/app/editor/dungeon/dungeon_editor.cc | 4 +- src/app/editor/graphics/graphics_editor.cc | 67 ++++++++++++-------- src/app/editor/graphics/screen_editor.cc | 19 +++--- src/app/editor/overworld/overworld_editor.cc | 17 +++-- src/app/gfx/bitmap.cc | 14 ++-- src/app/gfx/bitmap.h | 16 ++--- src/app/gfx/snes_tile.cc | 47 +++++--------- src/app/rom.cc | 7 +- src/app/zelda3/screen/dungeon_map.cc | 7 +- src/app/zelda3/screen/inventory.cc | 18 +++--- 11 files changed, 106 insertions(+), 112 deletions(-) diff --git a/src/app/core/platform/renderer.h b/src/app/core/platform/renderer.h index 20ce4824..0397f375 100644 --- a/src/app/core/platform/renderer.h +++ b/src/app/core/platform/renderer.h @@ -61,7 +61,7 @@ class Renderer { gfx::Bitmap &bitmap, gfx::SnesPalette &palette) { bitmap.Create(width, height, depth, data); - RETURN_IF_ERROR(bitmap.ApplyPalette(palette)); + RETURN_IF_ERROR(bitmap.SetPalette(palette)); RenderBitmap(&bitmap); return absl::OkStatus(); } diff --git a/src/app/editor/dungeon/dungeon_editor.cc b/src/app/editor/dungeon/dungeon_editor.cc index 0ed24654..53af92ee 100644 --- a/src/app/editor/dungeon/dungeon_editor.cc +++ b/src/app/editor/dungeon/dungeon_editor.cc @@ -123,7 +123,7 @@ absl::Status DungeonEditor::RefreshGraphics() { std::for_each_n( rooms_[current_room_id_].blocks().begin(), 8, [this](int block) -> absl::Status { - RETURN_IF_ERROR(graphics_bin_[block].ApplyPaletteWithTransparent( + RETURN_IF_ERROR(graphics_bin_[block].SetPaletteWithTransparent( current_palette_group_[current_palette_id_], 0)); Renderer::GetInstance().UpdateBitmap(&graphics_bin_[block]); return absl::OkStatus(); @@ -133,7 +133,7 @@ absl::Status DungeonEditor::RefreshGraphics() { std::for_each_n( rooms_[current_room_id_].blocks().begin() + 8, 8, [this, &sprites_aux1_pal_group](int block) -> absl::Status { - RETURN_IF_ERROR(graphics_bin_[block].ApplyPaletteWithTransparent( + RETURN_IF_ERROR(graphics_bin_[block].SetPaletteWithTransparent( sprites_aux1_pal_group[current_palette_id_], 0)); Renderer::GetInstance().UpdateBitmap(&graphics_bin_[block]); return absl::OkStatus(); diff --git a/src/app/editor/graphics/graphics_editor.cc b/src/app/editor/graphics/graphics_editor.cc index 92939438..975ffdac 100644 --- a/src/app/editor/graphics/graphics_editor.cc +++ b/src/app/editor/graphics/graphics_editor.cc @@ -45,7 +45,8 @@ absl::Status GraphicsEditor::Update() { status_ = UpdateGfxEdit(); TAB_ITEM("Sheet Browser") if (asset_browser_.Initialized == false) { - asset_browser_.Initialize(GraphicsSheetManager::GetInstance().gfx_sheets()); + asset_browser_.Initialize( + GraphicsSheetManager::GetInstance().gfx_sheets()); } asset_browser_.Draw(GraphicsSheetManager::GetInstance().gfx_sheets()); END_TAB_ITEM() @@ -115,8 +116,10 @@ void GraphicsEditor::DrawGfxEditToolset() { TableNextColumn(); if (Button(ICON_MD_CONTENT_COPY)) { - std::vector png_data = - GraphicsSheetManager::GetInstance().gfx_sheets().at(current_sheet_).GetPngData(); + std::vector png_data = GraphicsSheetManager::GetInstance() + .gfx_sheets() + .at(current_sheet_) + .GetPngData(); core::CopyImageToClipboard(png_data); } HOVER_HINT("Copy to Clipboard"); @@ -127,11 +130,13 @@ void GraphicsEditor::DrawGfxEditToolset() { int width, height; core::GetImageFromClipboard(png_data, width, height); if (png_data.size() > 0) { - GraphicsSheetManager::GetInstance().mutable_gfx_sheets() + GraphicsSheetManager::GetInstance() + .mutable_gfx_sheets() ->at(current_sheet_) .Create(width, height, 8, png_data); Renderer::GetInstance().UpdateBitmap( - &GraphicsSheetManager::GetInstance().mutable_gfx_sheets()->at(current_sheet_)); + &GraphicsSheetManager::GetInstance().mutable_gfx_sheets()->at( + current_sheet_)); } } HOVER_HINT("Paste from Clipboard"); @@ -151,7 +156,8 @@ void GraphicsEditor::DrawGfxEditToolset() { } TableNextColumn(); - auto bitmap = GraphicsSheetManager::GetInstance().gfx_sheets()[current_sheet_]; + auto bitmap = + GraphicsSheetManager::GetInstance().gfx_sheets()[current_sheet_]; auto palette = bitmap.palette(); for (int i = 0; i < palette.size(); i++) { ImGui::SameLine(); @@ -279,7 +285,9 @@ absl::Status GraphicsEditor::UpdateGfxTabView() { ImGuiWindowFlags_AlwaysVerticalScrollbar | ImGuiWindowFlags_AlwaysHorizontalScrollbar); - gfx::Bitmap& current_bitmap = GraphicsSheetManager::GetInstance().mutable_gfx_sheets()->at(sheet_id); + gfx::Bitmap& current_bitmap = + GraphicsSheetManager::GetInstance().mutable_gfx_sheets()->at( + sheet_id); auto draw_tile_event = [&]() { current_sheet_canvas_.DrawTileOnBitmap(tile_size_, ¤t_bitmap, @@ -288,8 +296,9 @@ absl::Status GraphicsEditor::UpdateGfxTabView() { }; current_sheet_canvas_.UpdateColorPainter( - GraphicsSheetManager::GetInstance().mutable_gfx_sheets()->at(sheet_id), current_color_, - draw_tile_event, tile_size_, current_scale_); + GraphicsSheetManager::GetInstance().mutable_gfx_sheets()->at( + sheet_id), + current_color_, draw_tile_event, tile_size_, current_scale_); ImGui::EndChild(); ImGui::EndTabItem(); @@ -321,7 +330,8 @@ absl::Status GraphicsEditor::UpdateGfxTabView() { current_sheet_ = id; // ImVec2(0x100, 0x40), current_sheet_canvas_.UpdateColorPainter( - GraphicsSheetManager::GetInstance().mutable_gfx_sheets()->at(id), current_color_, + GraphicsSheetManager::GetInstance().mutable_gfx_sheets()->at(id), + current_color_, [&]() { }, @@ -358,11 +368,13 @@ absl::Status GraphicsEditor::UpdatePaletteColumn() { if (refresh_graphics_ && !open_sheets_.empty()) { RETURN_IF_ERROR( - GraphicsSheetManager::GetInstance().mutable_gfx_sheets() + GraphicsSheetManager::GetInstance() + .mutable_gfx_sheets() ->data()[current_sheet_] - .ApplyPaletteWithTransparent(palette, edit_palette_sub_index_)); - Renderer::GetInstance().UpdateBitmap( - &GraphicsSheetManager::GetInstance().mutable_gfx_sheets()->data()[current_sheet_]); + .SetPaletteWithTransparent(palette, edit_palette_sub_index_)); + Renderer::GetInstance().UpdateBitmap(&GraphicsSheetManager::GetInstance() + .mutable_gfx_sheets() + ->data()[current_sheet_]); refresh_graphics_ = false; } } @@ -458,7 +470,7 @@ absl::Status GraphicsEditor::UpdateScadView() { // TODO: Implement the Super Donkey 1 graphics decompression // if (refresh_graphics_) { // for (int i = 0; i < kNumGfxSheets; i++) { - // status_ = graphics_bin_[i].ApplyPalette( + // status_ = graphics_bin_[i].SetPalette( // col_file_palette_group_[current_palette_index_]); // Renderer::GetInstance().UpdateBitmap(&graphics_bin_[i]); // } @@ -530,11 +542,11 @@ absl::Status GraphicsEditor::DrawCgxImport() { if (ImGui::Button("Load CGX Data")) { status_ = gfx::LoadCgx(current_bpp_, cgx_file_path_, cgx_data_, - decoded_cgx_, extra_cgx_data_); + decoded_cgx_, extra_cgx_data_); cgx_bitmap_.Create(0x80, 0x200, 8, decoded_cgx_); if (col_file_) { - cgx_bitmap_.ApplyPalette(decoded_col_); + cgx_bitmap_.SetPalette(decoded_col_); Renderer::GetInstance().RenderBitmap(&cgx_bitmap_); } } @@ -556,16 +568,15 @@ absl::Status GraphicsEditor::DrawScrImport() { InputInt("SCR Mod", &scr_mod_value_); if (ImGui::Button("Load Scr Data")) { - status_ = - gfx::LoadScr(scr_file_path_, scr_mod_value_, scr_data_); + status_ = gfx::LoadScr(scr_file_path_, scr_mod_value_, scr_data_); decoded_scr_data_.resize(0x100 * 0x100); - status_ = gfx::DrawScrWithCgx(current_bpp_, scr_data_, - decoded_scr_data_, decoded_cgx_); + status_ = gfx::DrawScrWithCgx(current_bpp_, scr_data_, decoded_scr_data_, + decoded_cgx_); scr_bitmap_.Create(0x100, 0x100, 8, decoded_scr_data_); if (scr_loaded_) { - scr_bitmap_.ApplyPalette(decoded_col_); + scr_bitmap_.SetPalette(decoded_col_); Renderer::GetInstance().RenderBitmap(&scr_bitmap_); } } @@ -762,9 +773,9 @@ absl::Status GraphicsEditor::DecompressImportData(int size) { auto palette_group = rom()->palette_group().overworld_animated; z3_rom_palette_ = palette_group[current_palette_]; if (col_file_) { - status_ = bin_bitmap_.ApplyPalette(col_file_palette_); + status_ = bin_bitmap_.SetPalette(col_file_palette_); } else { - status_ = bin_bitmap_.ApplyPalette(z3_rom_palette_); + status_ = bin_bitmap_.SetPalette(z3_rom_palette_); } } @@ -786,7 +797,7 @@ absl::Status GraphicsEditor::DecompressSuperDonkey() { gfx_sheets_[i] = gfx::Bitmap(gfx::kTilesheetWidth, gfx::kTilesheetHeight, gfx::kTilesheetDepth, converted_sheet); if (col_file_) { - status_ = gfx_sheets_[i].ApplyPalette( + status_ = gfx_sheets_[i].SetPalette( col_file_palette_group_[current_palette_index_]); } else { // ROM palette @@ -794,7 +805,7 @@ absl::Status GraphicsEditor::DecompressSuperDonkey() { auto palette_group = rom()->palette_group().get_group( kPaletteGroupAddressesKeys[current_palette_]); z3_rom_palette_ = *palette_group->mutable_palette(current_palette_index_); - status_ = gfx_sheets_[i].ApplyPalette(z3_rom_palette_); + status_ = gfx_sheets_[i].SetPalette(z3_rom_palette_); } Renderer::GetInstance().RenderBitmap(&gfx_sheets_[i]); @@ -811,14 +822,14 @@ absl::Status GraphicsEditor::DecompressSuperDonkey() { gfx_sheets_[i] = gfx::Bitmap(gfx::kTilesheetWidth, gfx::kTilesheetHeight, gfx::kTilesheetDepth, converted_sheet); if (col_file_) { - status_ = gfx_sheets_[i].ApplyPalette( + status_ = gfx_sheets_[i].SetPalette( col_file_palette_group_[current_palette_index_]); } else { // ROM palette auto palette_group = rom()->palette_group().get_group( kPaletteGroupAddressesKeys[current_palette_]); z3_rom_palette_ = *palette_group->mutable_palette(current_palette_index_); - status_ = gfx_sheets_[i].ApplyPalette(z3_rom_palette_); + status_ = gfx_sheets_[i].SetPalette(z3_rom_palette_); } Renderer::GetInstance().RenderBitmap(&gfx_sheets_[i]); diff --git a/src/app/editor/graphics/screen_editor.cc b/src/app/editor/graphics/screen_editor.cc index c6cf839b..2f5c87b3 100644 --- a/src/app/editor/graphics/screen_editor.cc +++ b/src/app/editor/graphics/screen_editor.cc @@ -123,11 +123,10 @@ absl::Status ScreenEditor::LoadDungeonMaps() { rom()->ReadWord(zelda3::kDungeonMapRoomsPtr + (d * 2))); ASSIGN_OR_RETURN(int ptr_gfx, rom()->ReadWord(zelda3::kDungeonMapGfxPtr + (d * 2))); - ptr |= 0x0A0000; // Add bank to the short ptr - ptr_gfx |= 0x0A0000; // Add bank to the short ptr - int pc_ptr = SnesToPc(ptr); // Contains data for the next 25 rooms - int pc_ptr_gfx = - SnesToPc(ptr_gfx); // Contains data for the next 25 rooms + ptr |= 0x0A0000; // Add bank to the short ptr + ptr_gfx |= 0x0A0000; // Add bank to the short ptr + int pc_ptr = SnesToPc(ptr); // Contains data for the next 25 rooms + int pc_ptr_gfx = SnesToPc(ptr_gfx); // Contains data for the next 25 rooms ASSIGN_OR_RETURN(uint16_t boss_room_d, rom()->ReadWord(zelda3::kDungeonMapBossRooms + (d * 2))); @@ -230,7 +229,7 @@ absl::Status ScreenEditor::LoadDungeonMapTile16( tile16_sheet_.ComposeTile16(gfx_data, t1, t2, t3, t4, sheet_offset); } - RETURN_IF_ERROR(tile16_sheet_.mutable_bitmap()->ApplyPalette( + RETURN_IF_ERROR(tile16_sheet_.mutable_bitmap()->SetPalette( *rom()->mutable_dungeon_palette(3))); Renderer::GetInstance().RenderBitmap(&*tile16_sheet_.mutable_bitmap().get()); @@ -238,7 +237,7 @@ absl::Status ScreenEditor::LoadDungeonMapTile16( auto tile = tile16_sheet_.GetTile16(i); tile16_individual_[i] = tile; RETURN_IF_ERROR( - tile16_individual_[i].ApplyPalette(*rom()->mutable_dungeon_palette(3))); + tile16_individual_[i].SetPalette(*rom()->mutable_dungeon_palette(3))); Renderer::GetInstance().RenderBitmap(&tile16_individual_[i]); } @@ -424,7 +423,7 @@ void ScreenEditor::DrawDungeonMapsRoomGfx() { current_tile16_info.tiles[3], selected_tile16_, 212); tile16_individual_[selected_tile16_] = tile16_sheet_.GetTile16(selected_tile16_); - RETURN_VOID_IF_ERROR(tile16_individual_[selected_tile16_].ApplyPalette( + RETURN_VOID_IF_ERROR(tile16_individual_[selected_tile16_].SetPalette( *rom()->mutable_dungeon_palette(3))); Renderer::GetInstance().RenderBitmap( &tile16_individual_[selected_tile16_]); @@ -455,7 +454,7 @@ void ScreenEditor::DrawDungeonMapsEditor() { int y = (j / 8) * 8; sheets_[i].Get8x8Tile(tile_index, 0, 0, tile_data, tile_data_offset); tile8_individual_.emplace_back(gfx::Bitmap(8, 8, 4, tile_data)); - RETURN_VOID_IF_ERROR(tile8_individual_.back().ApplyPalette( + RETURN_VOID_IF_ERROR(tile8_individual_.back().SetPalette( *rom()->mutable_dungeon_palette(3))); Renderer::GetInstance().RenderBitmap(&tile8_individual_.back()); } @@ -556,7 +555,7 @@ void ScreenEditor::LoadBinaryGfx() { gfx_sheets.emplace_back(converted_bin.begin() + (i * 0x1000), converted_bin.begin() + ((i + 1) * 0x1000)); sheets_.emplace(i, gfx::Bitmap(128, 32, 8, gfx_sheets[i])); - status_ = sheets_[i].ApplyPalette(*rom()->mutable_dungeon_palette(3)); + status_ = sheets_[i].SetPalette(*rom()->mutable_dungeon_palette(3)); if (status_.ok()) { Renderer::GetInstance().RenderBitmap(&sheets_[i]); } diff --git a/src/app/editor/overworld/overworld_editor.cc b/src/app/editor/overworld/overworld_editor.cc index dd86076b..b05424ff 100644 --- a/src/app/editor/overworld/overworld_editor.cc +++ b/src/app/editor/overworld/overworld_editor.cc @@ -63,8 +63,8 @@ absl::Status OverworldEditor::Update() { status_ = absl::OkStatus(); if (rom_.is_loaded() && !all_gfx_loaded_) { RETURN_IF_ERROR( - tile16_editor_.InitBlockset(tile16_blockset_bmp_, current_gfx_bmp_, - *overworld_.mutable_all_tiles_types())); + tile16_editor_.Initialize(tile16_blockset_bmp_, current_gfx_bmp_, + *overworld_.mutable_all_tiles_types())); ASSIGN_OR_RETURN(entrance_tiletypes_, zelda3::LoadEntranceTileTypes(rom_)); all_gfx_loaded_ = true; } @@ -1059,7 +1059,7 @@ absl::Status OverworldEditor::LoadGraphics() { } } - RETURN_IF_ERROR(tile16_individual_[i].ApplyPalette(palette_)); + RETURN_IF_ERROR(tile16_individual_[i].SetPalette(palette_)); Renderer::GetInstance().RenderBitmap(&tile16_individual_[i]); } @@ -1100,7 +1100,7 @@ absl::Status OverworldEditor::LoadSpriteGraphics() { } sprite_previews_[sprite.id()].Create(width, height, depth, *sprite.preview_graphics()); - RETURN_IF_ERROR(sprite_previews_[sprite.id()].ApplyPalette(palette_)); + RETURN_IF_ERROR(sprite_previews_[sprite.id()].SetPalette(palette_)); Renderer::GetInstance().RenderBitmap(&(sprite_previews_[sprite.id()])); } return absl::OkStatus(); @@ -1169,12 +1169,11 @@ absl::Status OverworldEditor::RefreshMapPalette() { if (i >= 2) sibling_index += 6; RETURN_IF_ERROR( overworld_.mutable_overworld_map(sibling_index)->LoadPalette()); - RETURN_IF_ERROR( - maps_bmp_[sibling_index].ApplyPalette(current_map_palette)); + RETURN_IF_ERROR(maps_bmp_[sibling_index].SetPalette(current_map_palette)); } } - RETURN_IF_ERROR(maps_bmp_[current_map_].ApplyPalette(current_map_palette)); + RETURN_IF_ERROR(maps_bmp_[current_map_].SetPalette(current_map_palette)); return absl::OkStatus(); } @@ -1210,7 +1209,7 @@ absl::Status OverworldEditor::RefreshTile16Blockset() { palette_ = overworld_.current_area_palette(); // Create the tile16 blockset image Renderer::GetInstance().UpdateBitmap(&tile16_blockset_bmp_); - RETURN_IF_ERROR(tile16_blockset_bmp_.ApplyPalette(palette_)); + RETURN_IF_ERROR(tile16_blockset_bmp_.SetPalette(palette_)); // Copy the tile16 data into individual tiles. const auto tile16_data = overworld_.tile16_blockset_data(); @@ -1232,7 +1231,7 @@ absl::Status OverworldEditor::RefreshTile16Blockset() { } } tile16_individual_[index].set_data(tile_data); - RETURN_IF_ERROR(tile16_individual_[index].ApplyPalette(palette_)); + RETURN_IF_ERROR(tile16_individual_[index].SetPalette(palette_)); return absl::OkStatus(); }, i)); diff --git a/src/app/gfx/bitmap.cc b/src/app/gfx/bitmap.cc index 942ab43a..84d0db9a 100644 --- a/src/app/gfx/bitmap.cc +++ b/src/app/gfx/bitmap.cc @@ -271,7 +271,7 @@ void Bitmap::Reformat(int format) { SDL_Surface_Deleter()); surface_->pixels = pixel_data_; active_ = true; - auto apply_palette = ApplyPalette(palette_); + auto apply_palette = SetPalette(palette_); if (!apply_palette.ok()) { SDL_Log("Failed to apply palette: %s\n", apply_palette.message().data()); active_ = false; @@ -326,7 +326,7 @@ void Bitmap::UpdateTexture(SDL_Renderer *renderer) { SDL_UnlockTexture(texture_.get()); } -absl::Status Bitmap::ApplyPalette(const SnesPalette &palette) { +absl::Status Bitmap::SetPalette(const SnesPalette &palette) { if (surface_ == nullptr) { return absl::FailedPreconditionError( "Surface is null. Palette not applied"); @@ -355,8 +355,8 @@ absl::Status Bitmap::ApplyPalette(const SnesPalette &palette) { return absl::OkStatus(); } -absl::Status Bitmap::ApplyPaletteFromPaletteGroup(const SnesPalette &palette, - int palette_id) { +absl::Status Bitmap::SetPaletteFromPaletteGroup(const SnesPalette &palette, + int palette_id) { auto start_index = palette_id * 8; palette_ = palette.sub_palette(start_index, start_index + 8); SDL_UnlockSurface(surface_.get()); @@ -379,8 +379,8 @@ absl::Status Bitmap::ApplyPaletteFromPaletteGroup(const SnesPalette &palette, return absl::OkStatus(); } -absl::Status Bitmap::ApplyPaletteWithTransparent(const SnesPalette &palette, - size_t index, int length) { +absl::Status Bitmap::SetPaletteWithTransparent(const SnesPalette &palette, + size_t index, int length) { if (index < 0 || index >= palette.size()) { return absl::InvalidArgumentError("Invalid palette index"); } @@ -421,7 +421,7 @@ absl::Status Bitmap::ApplyPaletteWithTransparent(const SnesPalette &palette, return absl::OkStatus(); } -void Bitmap::ApplyPalette(const std::vector &palette) { +void Bitmap::SetPalette(const std::vector &palette) { SDL_UnlockSurface(surface_.get()); for (size_t i = 0; i < palette.size(); ++i) { surface_->format->palette->colors[i].r = palette[i].r; diff --git a/src/app/gfx/bitmap.h b/src/app/gfx/bitmap.h index 5081e8eb..af9dd990 100644 --- a/src/app/gfx/bitmap.h +++ b/src/app/gfx/bitmap.h @@ -3,9 +3,9 @@ #include -#include #include #include +#include #include "absl/status/status.h" #include "app/core/platform/sdl_deleter.h" @@ -81,7 +81,7 @@ class Bitmap { data_(data), palette_(palette) { Create(width, height, depth, data); - if (!ApplyPalette(palette).ok()) { + if (!SetPalette(palette).ok()) { std::cerr << "Error applying palette in bitmap constructor." << std::endl; } } @@ -121,12 +121,12 @@ class Bitmap { /** * @brief Copy color data from the SnesPalette into the SDL_Palette */ - absl::Status ApplyPalette(const SnesPalette &palette); - absl::Status ApplyPaletteWithTransparent(const SnesPalette &palette, - size_t index, int length = 7); - void ApplyPalette(const std::vector &palette); - absl::Status ApplyPaletteFromPaletteGroup(const SnesPalette &palette, - int palette_id); + absl::Status SetPalette(const SnesPalette &palette); + absl::Status SetPaletteWithTransparent(const SnesPalette &palette, + size_t index, int length = 7); + void SetPalette(const std::vector &palette); + absl::Status SetPaletteFromPaletteGroup(const SnesPalette &palette, + int palette_id); void Get8x8Tile(int tile_index, int x, int y, std::vector &tile_data, int &tile_data_offset); diff --git a/src/app/gfx/snes_tile.cc b/src/app/gfx/snes_tile.cc index 0363d729..4e8fab7f 100644 --- a/src/app/gfx/snes_tile.cc +++ b/src/app/gfx/snes_tile.cc @@ -41,38 +41,30 @@ snes_tile8 UnpackBppTile(const std::vector& data, bpp_pos[1] = offset + col * 2 + 1; char mask = 1 << (7 - row); tile.data[col * 8 + row] = (data[bpp_pos[0]] & mask) == mask; - tile.data[col * 8 + row] |= (uint8_t)((data[bpp_pos[1]] & mask) == mask) - << 1; + tile.data[col * 8 + row] |= ((data[bpp_pos[1]] & mask) == mask) << 1; if (bpp == 3) { // When we have 3 bitplanes, the bytes for the third bitplane are after // the 16 bytes of the 2 bitplanes. bpp_pos[2] = offset + 16 + col; - tile.data[col * 8 + row] |= (uint8_t)((data[bpp_pos[2]] & mask) == mask) - << 2; + tile.data[col * 8 + row] |= ((data[bpp_pos[2]] & mask) == mask) << 2; } if (bpp >= 4) { // For 4 bitplanes, the 2 added bitplanes are interlaced like the first // two. bpp_pos[2] = offset + 16 + col * 2; bpp_pos[3] = offset + 16 + col * 2 + 1; - tile.data[col * 8 + row] |= (uint8_t)((data[bpp_pos[2]] & mask) == mask) - << 2; - tile.data[col * 8 + row] |= (uint8_t)((data[bpp_pos[3]] & mask) == mask) - << 3; + tile.data[col * 8 + row] |= ((data[bpp_pos[2]] & mask) == mask) << 2; + tile.data[col * 8 + row] |= ((data[bpp_pos[3]] & mask) == mask) << 3; } if (bpp == 8) { bpp_pos[4] = offset + 32 + col * 2; bpp_pos[5] = offset + 32 + col * 2 + 1; bpp_pos[6] = offset + 48 + col * 2; bpp_pos[7] = offset + 48 + col * 2 + 1; - tile.data[col * 8 + row] |= (uint8_t)((data[bpp_pos[4]] & mask) == mask) - << 4; - tile.data[col * 8 + row] |= (uint8_t)((data[bpp_pos[5]] & mask) == mask) - << 5; - tile.data[col * 8 + row] |= (uint8_t)((data[bpp_pos[6]] & mask) == mask) - << 6; - tile.data[col * 8 + row] |= (uint8_t)((data[bpp_pos[7]] & mask) == mask) - << 7; + tile.data[col * 8 + row] |= ((data[bpp_pos[4]] & mask) == mask) << 4; + tile.data[col * 8 + row] |= ((data[bpp_pos[5]] & mask) == mask) << 5; + tile.data[col * 8 + row] |= ((data[bpp_pos[6]] & mask) == mask) << 6; + tile.data[col * 8 + row] |= ((data[bpp_pos[7]] & mask) == mask) << 7; } } } @@ -97,29 +89,25 @@ std::vector PackBppTile(const snes_tile8& tile, const uint32_t bpp) { // 2bpp format if (bpp >= 2) { - output[col * 2] += (uint8_t)((color & 1) << (7 - row)); - output[col * 2 + 1] += - (uint8_t)((uint8_t)((color & 2) == 2) << (7 - row)); + output[col * 2] += ((color & 1) << (7 - row)); + output[col * 2 + 1] += (((color & 2) == 2) << (7 - row)); } // 3bpp format - if (bpp == 3) - output[16 + col] += (uint8_t)(((color & 4) == 4) << (7 - row)); + if (bpp == 3) output[16 + col] += (((color & 4) == 4) << (7 - row)); // 4bpp format if (bpp >= 4) { - output[16 + col * 2] += (uint8_t)(((color & 4) == 4) << (7 - row)); - output[16 + col * 2 + 1] += (uint8_t)(((color & 8) == 8) << (7 - row)); + output[16 + col * 2] += (((color & 4) == 4) << (7 - row)); + output[16 + col * 2 + 1] += (((color & 8) == 8) << (7 - row)); } // 8bpp format if (bpp == 8) { - output[32 + col * 2] += (uint8_t)(((color & 16) == 16) << (7 - row)); - output[32 + col * 2 + 1] += - (uint8_t)(((color & 32) == 32) << (7 - row)); - output[48 + col * 2] += (uint8_t)(((color & 64) == 64) << (7 - row)); - output[48 + col * 2 + 1] += - (uint8_t)(((color & 128) == 128) << (7 - row)); + output[32 + col * 2] += (((color & 16) == 16) << (7 - row)); + output[32 + col * 2 + 1] += (((color & 32) == 32) << (7 - row)); + output[48 + col * 2] += (((color & 64) == 64) << (7 - row)); + output[48 + col * 2 + 1] += (((color & 128) == 128) << (7 - row)); } } } @@ -399,5 +387,4 @@ void CopyTile8bpp16(int x, int y, int tile, std::vector& bitmap, } } // namespace gfx - } // namespace yaze diff --git a/src/app/rom.cc b/src/app/rom.cc index 289843e6..35a12aa2 100644 --- a/src/app/rom.cc +++ b/src/app/rom.cc @@ -68,8 +68,7 @@ absl::StatusOr> LoadLinkGraphics( auto link_sheet_8bpp = gfx::SnesTo8bppSheet(link_sheet_data, /*bpp=*/4); link_graphics[i].Create(gfx::kTilesheetWidth, gfx::kTilesheetHeight, gfx::kTilesheetDepth, link_sheet_8bpp); - RETURN_IF_ERROR( - link_graphics[i].ApplyPalette(rom.palette_group().armors[0]);) + RETURN_IF_ERROR(link_graphics[i].SetPalette(rom.palette_group().armors[0]);) Renderer::GetInstance().RenderBitmap(&link_graphics[i]); } return link_graphics; @@ -109,10 +108,10 @@ absl::StatusOr> LoadAllGraphicsData( if (graphics_sheets[i].is_active()) { if (i > 115) { // Apply sprites palette - RETURN_IF_ERROR(graphics_sheets[i].ApplyPaletteWithTransparent( + RETURN_IF_ERROR(graphics_sheets[i].SetPaletteWithTransparent( rom.palette_group().global_sprites[0], 0)); } else { - RETURN_IF_ERROR(graphics_sheets[i].ApplyPaletteWithTransparent( + RETURN_IF_ERROR(graphics_sheets[i].SetPaletteWithTransparent( rom.palette_group().dungeon_main[0], 0)); } } diff --git a/src/app/zelda3/screen/dungeon_map.cc b/src/app/zelda3/screen/dungeon_map.cc index 648929c0..39ed3a58 100644 --- a/src/app/zelda3/screen/dungeon_map.cc +++ b/src/app/zelda3/screen/dungeon_map.cc @@ -34,8 +34,7 @@ absl::Status LoadDungeonMapGfxFromBinary(Rom &rom, gfx_sheets.emplace_back(converted_bin.begin() + (i * 0x1000), converted_bin.begin() + ((i + 1) * 0x1000)); sheets[i] = gfx::Bitmap(128, 32, 8, gfx_sheets[i]); - RETURN_IF_ERROR( - sheets[i].ApplyPalette(*rom.mutable_dungeon_palette(3))); + RETURN_IF_ERROR(sheets[i].SetPalette(*rom.mutable_dungeon_palette(3))); core::Renderer::GetInstance().RenderBitmap(&sheets[i]); } } else { @@ -47,5 +46,5 @@ absl::Status LoadDungeonMapGfxFromBinary(Rom &rom, return absl::OkStatus(); } -} // namespace zelda3 -} // namespace yaze +} // namespace zelda3 +} // namespace yaze diff --git a/src/app/zelda3/screen/inventory.cc b/src/app/zelda3/screen/inventory.cc index 868fa755..7e56dc5d 100644 --- a/src/app/zelda3/screen/inventory.cc +++ b/src/app/zelda3/screen/inventory.cc @@ -18,13 +18,13 @@ absl::Status Inventory::Create() { RETURN_IF_ERROR(BuildTileset()) for (int i = 0; i < 0x500; i += 0x08) { ASSIGN_OR_RETURN(auto t1, rom()->ReadWord(i + kBowItemPos)); - ASSIGN_OR_RETURN(auto t2, rom()->ReadWord(i + kBowItemPos + 0x02)); - ASSIGN_OR_RETURN(auto t3, rom()->ReadWord(i + kBowItemPos + 0x04)); - ASSIGN_OR_RETURN(auto t4, rom()->ReadWord(i + kBowItemPos + 0x06)); - tiles_.push_back(gfx::GetTilesInfo(t1)); - tiles_.push_back(gfx::GetTilesInfo(t2)); - tiles_.push_back(gfx::GetTilesInfo(t3)); - tiles_.push_back(gfx::GetTilesInfo(t4)); + ASSIGN_OR_RETURN(auto t2, rom()->ReadWord(i + kBowItemPos + 0x02)); + ASSIGN_OR_RETURN(auto t3, rom()->ReadWord(i + kBowItemPos + 0x04)); + ASSIGN_OR_RETURN(auto t4, rom()->ReadWord(i + kBowItemPos + 0x06)); + tiles_.push_back(gfx::GetTilesInfo(t1)); + tiles_.push_back(gfx::GetTilesInfo(t2)); + tiles_.push_back(gfx::GetTilesInfo(t3)); + tiles_.push_back(gfx::GetTilesInfo(t4)); } const int offsets[] = {0x00, 0x08, 0x800, 0x808}; auto xx = 0; @@ -68,7 +68,7 @@ absl::Status Inventory::Create() { } bitmap_.Create(256, 256, 8, data_); - RETURN_IF_ERROR(bitmap_.ApplyPalette(palette_)); + RETURN_IF_ERROR(bitmap_.SetPalette(palette_)); Renderer::GetInstance().RenderBitmap(&bitmap_); return absl::OkStatus(); } @@ -87,7 +87,7 @@ absl::Status Inventory::BuildTileset() { tilesheets_bmp_.Create(128, 0x130, 64, test_); auto hud_pal_group = rom()->palette_group().hud; palette_ = hud_pal_group[0]; - RETURN_IF_ERROR(tilesheets_bmp_.ApplyPalette(palette_)) + RETURN_IF_ERROR(tilesheets_bmp_.SetPalette(palette_)) Renderer::GetInstance().RenderBitmap(&tilesheets_bmp_); return absl::OkStatus(); }