CreateTiles return StatusOr
This commit is contained in:
@@ -5,6 +5,7 @@
|
|||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
|
|
||||||
|
#include "absl/status/statusor.h"
|
||||||
#include "app/gfx/bitmap.h"
|
#include "app/gfx/bitmap.h"
|
||||||
#include "app/gfx/snes_palette.h"
|
#include "app/gfx/snes_palette.h"
|
||||||
#include "app/gfx/snes_tile.h"
|
#include "app/gfx/snes_tile.h"
|
||||||
@@ -318,6 +319,12 @@ void OverworldEditor::LoadGraphics() {
|
|||||||
|
|
||||||
rom_.LoadAllGraphicsData();
|
rom_.LoadAllGraphicsData();
|
||||||
graphics_bin_ = rom_.GetGraphicsBin();
|
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);
|
tile16_blockset_bmp_.Create(128 * 2, 8192 * 2, 8, 1048576);
|
||||||
current_gfx_bmp_.Create(128 * 2, 512 * 2, 8, 32768);
|
current_gfx_bmp_.Create(128 * 2, 512 * 2, 8, 32768);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
|
|
||||||
|
#include "absl/status/statusor.h"
|
||||||
#include "app/gfx/bitmap.h"
|
#include "app/gfx/bitmap.h"
|
||||||
#include "app/gfx/snes_palette.h"
|
#include "app/gfx/snes_palette.h"
|
||||||
#include "app/gfx/snes_tile.h"
|
#include "app/gfx/snes_tile.h"
|
||||||
@@ -38,7 +39,6 @@ class OverworldEditor {
|
|||||||
void DrawTile8Selector();
|
void DrawTile8Selector();
|
||||||
void DrawAreaGraphics();
|
void DrawAreaGraphics();
|
||||||
|
|
||||||
void LoadBlockset();
|
|
||||||
void LoadGraphics();
|
void LoadGraphics();
|
||||||
|
|
||||||
int current_world_ = 0;
|
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; }
|
void Bitmap::ApplyPalette(const SNESPalette &palette) { palette_ = palette; }
|
||||||
|
|
||||||
std::vector<Bitmap> Bitmap::CreateTiles() {
|
absl::StatusOr<std::vector<Bitmap>> Bitmap::CreateTiles() {
|
||||||
std::vector<Bitmap> tiles;
|
std::vector<Bitmap> tiles;
|
||||||
for (int i = 0; i < 16; ++i) {
|
for (int i = 0; i < 16; ++i) {
|
||||||
for (int j = 0; j < 4; ++j) {
|
for (int j = 0; j < 4; ++j) {
|
||||||
@@ -100,7 +100,10 @@ std::vector<Bitmap> Bitmap::CreateTiles() {
|
|||||||
bmp.Create(8, 8, 8, 32);
|
bmp.Create(8, 8, 8, 32);
|
||||||
auto surface = bmp.GetSurface();
|
auto surface = bmp.GetSurface();
|
||||||
SDL_Rect src_rect = {i, j, 8, 8};
|
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);
|
tiles.push_back(bmp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
|
#include "absl/status/statusor.h"
|
||||||
#include "app/core/constants.h"
|
#include "app/core/constants.h"
|
||||||
#include "app/gfx/snes_palette.h"
|
#include "app/gfx/snes_palette.h"
|
||||||
|
|
||||||
@@ -26,7 +27,7 @@ class Bitmap {
|
|||||||
|
|
||||||
void ApplyPalette(const SNESPalette &palette);
|
void ApplyPalette(const SNESPalette &palette);
|
||||||
|
|
||||||
std::vector<Bitmap> CreateTiles();
|
absl::StatusOr<std::vector<Bitmap>> CreateTiles();
|
||||||
|
|
||||||
int GetWidth() const { return width_; }
|
int GetWidth() const { return width_; }
|
||||||
int GetHeight() const { return height_; }
|
int GetHeight() const { return height_; }
|
||||||
|
|||||||
Reference in New Issue
Block a user