housekeeping
This commit is contained in:
@@ -82,18 +82,7 @@ class OverworldEditor {
|
||||
bool selected_tile_loaded_ = false;
|
||||
bool update_selected_tile_ = true;
|
||||
|
||||
ImGuiTableFlags toolset_table_flags = ImGuiTableFlags_SizingFixedFit;
|
||||
ImGuiTableFlags ow_map_flags = ImGuiTableFlags_Borders;
|
||||
ImGuiTableFlags ow_edit_flags = ImGuiTableFlags_Reorderable |
|
||||
ImGuiTableFlags_Resizable |
|
||||
ImGuiTableFlags_SizingStretchSame;
|
||||
|
||||
Bytes selected_tile_data_;
|
||||
std::unordered_map<int, gfx::Bitmap> graphics_bin_;
|
||||
std::unordered_map<int, gfx::Bitmap> current_graphics_set_;
|
||||
std::unordered_map<int, gfx::Bitmap> maps_bmp_;
|
||||
std::unordered_map<int, gfx::Bitmap> sprite_previews_;
|
||||
|
||||
std::vector<Bytes> tile16_individual_data_;
|
||||
std::vector<gfx::Bitmap> tile16_individual_;
|
||||
|
||||
@@ -101,16 +90,27 @@ class OverworldEditor {
|
||||
PaletteEditor palette_editor_;
|
||||
zelda3::Overworld overworld_;
|
||||
|
||||
gui::Canvas ow_map_canvas_;
|
||||
gui::Canvas current_gfx_canvas_;
|
||||
gui::Canvas blockset_canvas_;
|
||||
gui::Canvas graphics_bin_canvas_;
|
||||
|
||||
gfx::SNESPalette palette_;
|
||||
gfx::Bitmap selected_tile_bmp_;
|
||||
gfx::Bitmap tile16_blockset_bmp_;
|
||||
gfx::Bitmap current_gfx_bmp_;
|
||||
gfx::Bitmap all_gfx_bmp;
|
||||
|
||||
gui::Canvas ow_map_canvas_;
|
||||
gui::Canvas current_gfx_canvas_;
|
||||
gui::Canvas blockset_canvas_;
|
||||
gui::Canvas graphics_bin_canvas_;
|
||||
gfx::BitmapTable maps_bmp_;
|
||||
gfx::BitmapTable graphics_bin_;
|
||||
gfx::BitmapTable current_graphics_set_;
|
||||
gfx::BitmapTable sprite_previews_;
|
||||
|
||||
ImGuiTableFlags toolset_table_flags = ImGuiTableFlags_SizingFixedFit;
|
||||
ImGuiTableFlags ow_map_flags = ImGuiTableFlags_Borders;
|
||||
ImGuiTableFlags ow_edit_flags = ImGuiTableFlags_Reorderable |
|
||||
ImGuiTableFlags_Resizable |
|
||||
ImGuiTableFlags_SizingStretchSame;
|
||||
};
|
||||
} // namespace editor
|
||||
} // namespace app
|
||||
|
||||
@@ -484,6 +484,8 @@ absl::StatusOr<Bytes> ROM::CompressOverworld(const int pos, const int length) {
|
||||
return Compress(pos, length, kNintendoMode1);
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
|
||||
absl::StatusOr<Bytes> ROM::Decompress(int offset, int size, int mode) {
|
||||
Bytes buffer(size, 0);
|
||||
uint length = 0;
|
||||
@@ -577,6 +579,8 @@ absl::StatusOr<Bytes> ROM::DecompressOverworld(int pos, int size) {
|
||||
return Decompress(pos, size, kNintendoMode1);
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
|
||||
absl::StatusOr<Bytes> ROM::Load2bppGraphics() {
|
||||
Bytes sheet;
|
||||
const uint8_t sheets[] = {113, 114, 218, 219, 220, 221};
|
||||
@@ -636,6 +640,8 @@ absl::Status ROM::LoadAllGraphicsData() {
|
||||
return absl::OkStatus();
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
|
||||
absl::Status ROM::LoadFromFile(const absl::string_view& filename) {
|
||||
filename_ = filename;
|
||||
std::ifstream file(filename.data(), std::ios::binary);
|
||||
@@ -661,6 +667,8 @@ absl::Status ROM::LoadFromFile(const absl::string_view& filename) {
|
||||
return absl::OkStatus();
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
|
||||
absl::Status ROM::LoadFromPointer(uchar* data, size_t length) {
|
||||
if (!data)
|
||||
return absl::InvalidArgumentError(
|
||||
@@ -671,6 +679,8 @@ absl::Status ROM::LoadFromPointer(uchar* data, size_t length) {
|
||||
return absl::OkStatus();
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
|
||||
absl::Status ROM::LoadFromBytes(const Bytes& data) {
|
||||
if (data.empty()) {
|
||||
return absl::InvalidArgumentError(
|
||||
@@ -680,6 +690,8 @@ absl::Status ROM::LoadFromBytes(const Bytes& data) {
|
||||
return absl::OkStatus();
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
|
||||
absl::Status ROM::SaveToFile() {
|
||||
std::fstream file(filename_.data(), std::ios::binary | std::ios::out);
|
||||
if (!file.is_open()) {
|
||||
@@ -692,9 +704,7 @@ absl::Status ROM::SaveToFile() {
|
||||
return absl::OkStatus();
|
||||
}
|
||||
|
||||
void ROM::RenderBitmap(gfx::Bitmap* bitmap) const {
|
||||
bitmap->CreateTexture(renderer_);
|
||||
}
|
||||
// ============================================================================
|
||||
|
||||
gfx::SNESColor ROM::ReadColor(int offset) {
|
||||
short color = toint16(offset);
|
||||
@@ -706,6 +716,8 @@ gfx::SNESColor ROM::ReadColor(int offset) {
|
||||
return snes_color;
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
|
||||
gfx::SNESPalette ROM::ReadPalette(int offset, int num_colors) {
|
||||
int color_offset = 0;
|
||||
std::vector<gfx::SNESColor> colors(num_colors);
|
||||
@@ -732,6 +744,8 @@ void ROM::WriteShort(int addr, int value) {
|
||||
rom_data_[addr + 1] = (uchar)((value >> 8) & 0xFF);
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
|
||||
void ROM::LoadAllPalettes() {
|
||||
// 35 colors each, 7x5 (0,2 on grid)
|
||||
for (int i = 0; i < 6; i++) {
|
||||
@@ -802,6 +816,8 @@ void ROM::LoadAllPalettes() {
|
||||
}
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
|
||||
absl::Status ROM::ApplyAssembly(const absl::string_view& filename,
|
||||
size_t patch_size) {
|
||||
int count = 0;
|
||||
@@ -815,6 +831,8 @@ absl::Status ROM::ApplyAssembly(const absl::string_view& filename,
|
||||
return absl::OkStatus();
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
|
||||
// TODO(scawful): Test me!
|
||||
absl::Status ROM::PatchOverworldMosaic(
|
||||
char mosaic_tiles[core::kNumOverworldMaps], int routine_offset) {
|
||||
|
||||
Reference in New Issue
Block a user