CreateTiles return StatusOr
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
#include <cmath>
|
||||
#include <unordered_map>
|
||||
|
||||
#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);
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include <cmath>
|
||||
#include <unordered_map>
|
||||
|
||||
#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;
|
||||
|
||||
@@ -92,7 +92,7 @@ void Bitmap::CreateTexture(std::shared_ptr<SDL_Renderer> renderer) {
|
||||
|
||||
void Bitmap::ApplyPalette(const SNESPalette &palette) { palette_ = palette; }
|
||||
|
||||
std::vector<Bitmap> Bitmap::CreateTiles() {
|
||||
absl::StatusOr<std::vector<Bitmap>> Bitmap::CreateTiles() {
|
||||
std::vector<Bitmap> tiles;
|
||||
for (int i = 0; i < 16; ++i) {
|
||||
for (int j = 0; j < 4; ++j) {
|
||||
@@ -100,7 +100,10 @@ std::vector<Bitmap> 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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#include <memory>
|
||||
|
||||
#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<Bitmap> CreateTiles();
|
||||
absl::StatusOr<std::vector<Bitmap>> CreateTiles();
|
||||
|
||||
int GetWidth() const { return width_; }
|
||||
int GetHeight() const { return height_; }
|
||||
|
||||
Reference in New Issue
Block a user