yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
hack_workflow_backend.h
Go to the documentation of this file.
1#ifndef YAZE_APP_EDITOR_HACK_WORKFLOW_HACK_WORKFLOW_BACKEND_H_
2#define YAZE_APP_EDITOR_HACK_WORKFLOW_HACK_WORKFLOW_BACKEND_H_
3
4#include <optional>
5#include <string>
6
7#include "absl/status/statusor.h"
10
11namespace yaze {
12class Rom;
13
14namespace core {
15class HackManifest;
16class StoryEventGraph;
17} // namespace core
18
19namespace emu::mesen {
21} // namespace emu::mesen
22
23namespace project {
24struct YazeProject;
25} // namespace project
26
27namespace editor::workflow {
28
30 public:
31 virtual ~ValidationCapability() = default;
32
35 const oracle_validation::SmokeOptions& smoke_options,
36 const oracle_validation::PreflightOptions& preflight_options,
37 Rom* rom_context) const = 0;
38};
39
41 public:
42 virtual ~ProgressionCapability() = default;
43
44 virtual std::optional<core::OracleProgressionState> GetProgressionState(
45 const core::HackManifest& manifest) const = 0;
46 virtual void SetProgressionState(
47 core::HackManifest& manifest,
48 const core::OracleProgressionState& state) const = 0;
49 virtual void ClearProgressionState(core::HackManifest& manifest) const = 0;
50
51 virtual absl::StatusOr<core::OracleProgressionState>
52 LoadProgressionStateFromFile(const std::string& filepath) const = 0;
53 virtual absl::StatusOr<core::OracleProgressionState>
55 emu::mesen::MesenSocketClient& client) const = 0;
56};
57
59 public:
60 virtual ~PlanningCapability() = default;
61
63 const core::HackManifest& manifest) const = 0;
64};
65
67 public:
68 virtual ~HackWorkflowBackend() = default;
69
70 virtual std::string GetBackendId() const = 0;
71
73 project::YazeProject* project) const = 0;
74};
75
76} // namespace editor::workflow
77} // namespace yaze
78
79#endif // YAZE_APP_EDITOR_HACK_WORKFLOW_HACK_WORKFLOW_BACKEND_H_
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Definition rom.h:28
Loads and queries the hack manifest JSON for yaze-ASM integration.
The complete Oracle narrative progression graph.
virtual std::string GetBackendId() const =0
virtual core::HackManifest * ResolveManifest(project::YazeProject *project) const =0
virtual const core::StoryEventGraph * GetStoryGraph(const core::HackManifest &manifest) const =0
virtual absl::StatusOr< core::OracleProgressionState > ReadProgressionStateFromLiveSram(emu::mesen::MesenSocketClient &client) const =0
virtual std::optional< core::OracleProgressionState > GetProgressionState(const core::HackManifest &manifest) const =0
virtual void ClearProgressionState(core::HackManifest &manifest) const =0
virtual void SetProgressionState(core::HackManifest &manifest, const core::OracleProgressionState &state) const =0
virtual absl::StatusOr< core::OracleProgressionState > LoadProgressionStateFromFile(const std::string &filepath) const =0
virtual oracle_validation::OracleRunResult RunValidation(oracle_validation::RunMode mode, const oracle_validation::SmokeOptions &smoke_options, const oracle_validation::PreflightOptions &preflight_options, Rom *rom_context) const =0
Unix socket client for Mesen2-OoS fork.
Oracle of Secrets game progression state parsed from SRAM.
Modern project structure with comprehensive settings consolidation.
Definition project.h:164