diff --git a/src/app/editor/overworld_editor.cc b/src/app/editor/overworld_editor.cc index 458de3ed..5d9db1a9 100644 --- a/src/app/editor/overworld_editor.cc +++ b/src/app/editor/overworld_editor.cc @@ -5,6 +5,7 @@ #include #include +#include "absl/status/statusor.h" #include "app/gfx/bitmap.h" #include "app/gfx/snes_palette.h" #include "app/gfx/snes_tile.h" @@ -318,6 +319,12 @@ void OverworldEditor::LoadGraphics() { rom_.LoadAllGraphicsData(); graphics_bin_ = rom_.GetGraphicsBin(); + for (auto &[key, value] : graphics_bin_) { + auto tilesheet = value.CreateTiles(); + if (!tilesheet.ok()) { + std::cout << "Error loading" << std::endl; + } + } tile16_blockset_bmp_.Create(128 * 2, 8192 * 2, 8, 1048576); current_gfx_bmp_.Create(128 * 2, 512 * 2, 8, 32768); } diff --git a/src/app/editor/overworld_editor.h b/src/app/editor/overworld_editor.h index 6e86d815..6d14d08f 100644 --- a/src/app/editor/overworld_editor.h +++ b/src/app/editor/overworld_editor.h @@ -6,6 +6,7 @@ #include #include +#include "absl/status/statusor.h" #include "app/gfx/bitmap.h" #include "app/gfx/snes_palette.h" #include "app/gfx/snes_tile.h" @@ -38,7 +39,6 @@ class OverworldEditor { void DrawTile8Selector(); void DrawAreaGraphics(); - void LoadBlockset(); void LoadGraphics(); int current_world_ = 0; diff --git a/src/app/gfx/bitmap.cc b/src/app/gfx/bitmap.cc index 2d0e8a1e..c57427f1 100644 --- a/src/app/gfx/bitmap.cc +++ b/src/app/gfx/bitmap.cc @@ -92,7 +92,7 @@ void Bitmap::CreateTexture(std::shared_ptr renderer) { void Bitmap::ApplyPalette(const SNESPalette &palette) { palette_ = palette; } -std::vector Bitmap::CreateTiles() { +absl::StatusOr> Bitmap::CreateTiles() { std::vector tiles; for (int i = 0; i < 16; ++i) { for (int j = 0; j < 4; ++j) { @@ -100,7 +100,10 @@ std::vector Bitmap::CreateTiles() { bmp.Create(8, 8, 8, 32); auto surface = bmp.GetSurface(); SDL_Rect src_rect = {i, j, 8, 8}; - SDL_BlitSurface(surface_, &src_rect, surface, nullptr); + if (SDL_BlitSurface(surface_, &src_rect, surface, nullptr) != 0) { + return absl::InvalidArgumentError( + "Failed to blit surface for Bitmap Tilesheet"); + } tiles.push_back(bmp); } } diff --git a/src/app/gfx/bitmap.h b/src/app/gfx/bitmap.h index 59959512..b6c602ad 100644 --- a/src/app/gfx/bitmap.h +++ b/src/app/gfx/bitmap.h @@ -5,6 +5,7 @@ #include +#include "absl/status/statusor.h" #include "app/core/constants.h" #include "app/gfx/snes_palette.h" @@ -26,7 +27,7 @@ class Bitmap { void ApplyPalette(const SNESPalette &palette); - std::vector CreateTiles(); + absl::StatusOr> CreateTiles(); int GetWidth() const { return width_; } int GetHeight() const { return height_; }