Create Script class

This commit is contained in:
Justin Scofield
2022-08-05 20:09:22 -04:00
parent 25ee0ff9cd
commit b6280bc051
4 changed files with 13 additions and 8 deletions

View File

@@ -14,8 +14,8 @@ namespace yaze {
namespace app { namespace app {
namespace snes_asm { namespace snes_asm {
absl::StatusOr<absl::string_view> GenerateMosaicChangeAssembly( absl::StatusOr<absl::string_view> Script::GenerateMosaicChangeAssembly(
MosaicArray mosaic_tiles) { std::array<int, core::kNumOverworldMaps> mosaic_tiles) {
std::fstream file("assets/asm/mosaic_change.asm", std::fstream file("assets/asm/mosaic_change.asm",
std::ios::out | std::ios::in); std::ios::out | std::ios::in);
if (!file.is_open()) { if (!file.is_open()) {

View File

@@ -15,11 +15,13 @@ namespace yaze {
namespace app { namespace app {
namespace snes_asm { namespace snes_asm {
using MosaicArray = std::array<int, core::kNumOverworldMaps>;
constexpr char kDefaultMosaicHook[] = "$02AADB"; constexpr char kDefaultMosaicHook[] = "$02AADB";
class Script {
public:
absl::StatusOr<absl::string_view> GenerateMosaicChangeAssembly( absl::StatusOr<absl::string_view> GenerateMosaicChangeAssembly(
MosaicArray mosaic_tiles); std::array<int, core::kNumOverworldMaps> mosaic_tiles);
};
} // namespace snes_asm } // namespace snes_asm
} // namespace app } // namespace app

View File

@@ -38,7 +38,7 @@ void ScreenEditor::Update() {
void ScreenEditor::DrawMosaicEditor() { void ScreenEditor::DrawMosaicEditor() {
TAB_ITEM("Mosaic Transitions") TAB_ITEM("Mosaic Transitions")
if (ImGui::Button("GenerateMosaicChangeAssembly")) { if (ImGui::Button("GenerateMosaicChangeAssembly")) {
auto mosaic = snes_asm::GenerateMosaicChangeAssembly(mosaic_tiles_); auto mosaic = mosaic_script_.GenerateMosaicChangeAssembly(mosaic_tiles_);
if (!mosaic.ok()) { if (!mosaic.ok()) {
std::cout << "Failed to generate mosaic change assembly"; std::cout << "Failed to generate mosaic change assembly";
} else { } else {

View File

@@ -3,7 +3,10 @@
#include <imgui/imgui.h> #include <imgui/imgui.h>
#include <array>
#include "app/asm/script.h" #include "app/asm/script.h"
#include "app/core/constants.h"
#include "app/gfx/bitmap.h" #include "app/gfx/bitmap.h"
#include "app/gfx/snes_tile.h" #include "app/gfx/snes_tile.h"
#include "app/zelda3/screen.h" #include "app/zelda3/screen.h"
@@ -32,8 +35,8 @@ class ScreenEditor {
void DrawCanvas(); void DrawCanvas();
void DrawToolset(); void DrawToolset();
snes_asm::MosaicArray mosaic_tiles_; std::array<int, core::kNumOverworldMaps> mosaic_tiles_;
snes_asm::Script mosaic_script_;
zelda3::Screen current_screen_; zelda3::Screen current_screen_;
gui::Canvas screen_canvas_; gui::Canvas screen_canvas_;
}; };