yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
entity_mutation_service.h
Go to the documentation of this file.
1#ifndef YAZE_APP_EDITOR_OVERWORLD_ENTITY_ENTITY_MUTATION_SERVICE_H
2#define YAZE_APP_EDITOR_OVERWORLD_ENTITY_ENTITY_MUTATION_SERVICE_H
3
4#include <cstdint>
5#include <string>
6
7#include "absl/status/status.h"
8#include "absl/status/statusor.h"
10#include "imgui/imgui.h"
12
13namespace yaze {
14
15namespace zelda3 {
16class Overworld;
17class GameEntity;
18class OverworldEntrance;
19class OverworldExit;
20class Sprite;
21} // namespace zelda3
22
23namespace editor {
24
32 public:
34 absl::Status status;
36 std::string error_message;
37
38 bool ok() const { return status.ok(); }
39 };
40
41 explicit EntityMutationService(zelda3::Overworld& overworld);
42
46 MutationResult InsertEntity(const std::string& type, ImVec2 pos, int map_id,
47 int game_state, uint8_t item_id = 0);
48 MutationResult InsertEntity(const std::string& type,
49 const OverworldContextTarget& target,
50 uint8_t item_id = 0);
51
52 MutationResult DeleteItem(const zelda3::OverworldItem& item_identity);
53 MutationResult DeleteSprite(zelda3::Sprite* sprite, int game_state);
54 MutationResult DeleteEntrance(zelda3::OverworldEntrance* entrance);
55 MutationResult DeleteExit(zelda3::OverworldExit* exit);
56
57 MutationResult DuplicateItem(const zelda3::OverworldItem& source,
58 int offset_x, int offset_y);
59
64 const zelda3::OverworldItem& anchor_identity);
65
66 private:
68};
69
70} // namespace editor
71} // namespace yaze
72
73#endif // YAZE_APP_EDITOR_OVERWORLD_ENTITY_ENTITY_MUTATION_SERVICE_H
Editor-level service responsible for overworld entity mutations.
EntityMutationService(zelda3::Overworld &overworld)
MutationResult DuplicateItem(const zelda3::OverworldItem &source, int offset_x, int offset_y)
MutationResult InsertEntity(const std::string &type, ImVec2 pos, int map_id, int game_state, uint8_t item_id=0)
Dispatches entity insertion based on type string.
MutationResult DeleteEntrance(zelda3::OverworldEntrance *entrance)
MutationResult DeleteItem(const zelda3::OverworldItem &item_identity)
zelda3::OverworldItem * ResolveNextSelection(const zelda3::OverworldItem &anchor_identity)
Resolves the best next item to select after a deletion.
MutationResult DeleteExit(zelda3::OverworldExit *exit)
MutationResult DeleteSprite(zelda3::Sprite *sprite, int game_state)
Base class for all overworld and dungeon entities.
Definition common.h:31
Represents an overworld exit that transitions from dungeon to overworld.
A class for managing sprites in the overworld and underworld.
Definition sprite.h:39