yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
minecart_collision_tool.h
Go to the documentation of this file.
1#ifndef YAZE_APP_EDITOR_DUNGEON_UI_MINECART_MINECART_COLLISION_TOOL_H_
2#define YAZE_APP_EDITOR_DUNGEON_UI_MINECART_MINECART_COLLISION_TOOL_H_
3
4#include <functional>
5#include <string>
6
7#include "absl/status/statusor.h"
9
10namespace yaze::gui {
11struct CanvasRuntime;
12}
13
14namespace yaze::editor {
15
16// Explicit behavior stamps, never inferred from a rail object's artwork.
18 int x = 0;
19 int y = 0;
20 int size = 2; // 1 or 2 cells on the 8 pixel collision grid.
21 uint8_t value = 0xB1;
22};
23
24absl::StatusOr<zelda3::CustomCollisionMap> PreviewMinecartCollisionStamp(
25 const zelda3::CustomCollisionMap& before,
26 const MinecartCollisionStamp& stamp);
27
28using MinecartCollisionApply = std::function<absl::Status(
30
31// A hover preview followed by one click / one shared dungeon undo action.
32// No draft survives navigation, a source reload, or a mode change.
34 public:
35 void Draw(const gui::CanvasRuntime& rt,
36 const zelda3::CustomCollisionMap& collision, int room_id,
37 uint8_t value, int size, const MinecartCollisionApply& apply);
38 const std::string& message() const { return message_; }
39
40 private:
41 std::string message_;
42};
43
44} // namespace yaze::editor
45
46#endif
void Draw(const gui::CanvasRuntime &rt, const zelda3::CustomCollisionMap &collision, int room_id, uint8_t value, int size, const MinecartCollisionApply &apply)
Editors are the view controllers for the application.
std::function< absl::Status( int, const zelda3::CustomCollisionMap &, const MinecartCollisionStamp &)> MinecartCollisionApply
absl::StatusOr< zelda3::CustomCollisionMap > PreviewMinecartCollisionStamp(const zelda3::CustomCollisionMap &before, const MinecartCollisionStamp &stamp)
Graphical User Interface (GUI) components for the application.