Files
yaze/src/application/Editor/overworld_editor.h
2022-06-15 20:56:15 -04:00

76 lines
1.8 KiB
C++

#ifndef YAZE_APPLICATION_EDITOR_OVERWORLDEDITOR_H
#define YAZE_APPLICATION_EDITOR_OVERWORLDEDITOR_H
#include <imgui/imgui.h>
#include "Data/OW/overworld.h"
#include "Graphics/icons.h"
#include "Graphics/palette.h"
#include "Graphics/scene.h"
#include "Graphics/tile.h"
namespace yaze {
namespace application {
namespace Editor {
static constexpr unsigned int k4BPP = 4;
class OverworldEditor {
public:
void Update();
void SetRom(Data::ROM &rom) { rom_ = rom; }
private:
void DrawToolset();
void DrawOverworldMapSettings();
void DrawOverworldCanvas();
void DrawTileSelector();
void DrawChangelist();
bool show_changelist_ = false;
Data::ROM rom_;
Data::Overworld overworld;
Graphics::Scene current_scene_;
Graphics::Bitmap allgfxBitmap;
Graphics::SNESPalette palette_;
Graphics::TilePreset current_set_;
SDL_Texture *gfx_texture = nullptr;
int allgfx_width = 0;
int allgfx_height = 0;
uchar *allGfx16Ptr = new uchar[(128 * 7136) / 2];
ImGuiTableFlags toolset_table_flags = ImGuiTableFlags_SizingFixedFit;
ImGuiTableFlags ow_map_settings_flags = ImGuiTableFlags_Borders;
ImGuiTableFlags ow_edit_flags = ImGuiTableFlags_Reorderable |
ImGuiTableFlags_Resizable |
ImGuiTableFlags_SizingStretchSame;
float canvas_table_ratio = 30.f;
char map_gfx_[3] = "";
char map_palette_[3] = "";
char spr_gfx_[3] = "";
char spr_palette_[3] = "";
char message_id_[5] = "";
int current_world_ = 0;
bool isLoaded = false;
bool doneLoaded = false;
constexpr static int kByteSize = 3;
constexpr static int kMessageIdSize = 5;
constexpr static float kInputFieldSize = 30.f;
bool opt_enable_grid = true;
};
} // namespace Editor
} // namespace application
} // namespace yaze
#endif