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 <string>
5
6#include "absl/status/status.h"
7#include "absl/status/statusor.h"
8#include "imgui/imgui.h"
10
11namespace yaze {
12
13namespace zelda3 {
14class Overworld;
15class GameEntity;
16class OverworldEntrance;
17class OverworldExit;
18class Sprite;
19} // namespace zelda3
20
21namespace editor {
22
30 public:
32 absl::Status status;
34 std::string error_message;
35
36 bool ok() const { return status.ok(); }
37 };
38
39 explicit EntityMutationService(zelda3::Overworld& overworld);
40
44 MutationResult InsertEntity(const std::string& type, ImVec2 pos, int map_id,
45 int game_state);
46
47 MutationResult DeleteItem(const zelda3::OverworldItem& item_identity);
48 MutationResult DeleteSprite(zelda3::Sprite* sprite, int game_state);
49 MutationResult DeleteEntrance(zelda3::OverworldEntrance* entrance);
50 MutationResult DeleteExit(zelda3::OverworldExit* exit);
51
52 MutationResult DuplicateItem(const zelda3::OverworldItem& source,
53 int offset_x, int offset_y);
54
59 const zelda3::OverworldItem& anchor_identity);
60
61 private:
63};
64
65} // namespace editor
66} // namespace yaze
67
68#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 DeleteEntrance(zelda3::OverworldEntrance *entrance)
MutationResult DeleteItem(const zelda3::OverworldItem &item_identity)
MutationResult InsertEntity(const std::string &type, ImVec2 pos, int map_id, int game_state)
Dispatches entity insertion based on type string.
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.
Represents the full Overworld data, light and dark world.
Definition overworld.h:261
A class for managing sprites in the overworld and underworld.
Definition sprite.h:35