Interactive dungeon object editor with scroll wheel support. More...
#include <dungeon_object_editor.h>
Classes | |
struct | EditingState |
struct | EditorConfig |
struct | SelectionState |
struct | UndoPoint |
Public Types | |
enum class | Mode { kSelect , kInsert , kDelete , kEdit , kLayer , kPreview } |
using | ObjectChangedCallback = std::function< void(size_t object_index, const RoomObject &object)> |
using | RoomChangedCallback = std::function< void()> |
using | SelectionChangedCallback = std::function< void(const SelectionState &)> |
Public Member Functions | |
DungeonObjectEditor (Rom *rom) | |
~DungeonObjectEditor ()=default | |
absl::Status | LoadRoom (int room_id) |
absl::Status | SaveRoom () |
absl::Status | ClearRoom () |
absl::Status | InsertObject (int x, int y, int object_type, int size=0x12, int layer=0) |
absl::Status | DeleteObject (size_t object_index) |
absl::Status | DeleteSelectedObjects () |
absl::Status | MoveObject (size_t object_index, int new_x, int new_y) |
absl::Status | ResizeObject (size_t object_index, int new_size) |
absl::Status | ChangeObjectType (size_t object_index, int new_type) |
absl::Status | ChangeObjectLayer (size_t object_index, int new_layer) |
absl::Status | SelectObject (int screen_x, int screen_y) |
absl::Status | SelectObjects (int start_x, int start_y, int end_x, int end_y) |
absl::Status | ClearSelection () |
absl::Status | AddToSelection (size_t object_index) |
absl::Status | RemoveFromSelection (size_t object_index) |
absl::Status | HandleMouseClick (int x, int y, bool left_button, bool right_button, bool shift_pressed) |
absl::Status | HandleMouseDrag (int start_x, int start_y, int current_x, int current_y) |
absl::Status | HandleMouseRelease (int x, int y) |
absl::Status | HandleScrollWheel (int delta, int x, int y, bool ctrl_pressed) |
absl::Status | HandleKeyPress (int key_code, bool ctrl_pressed, bool shift_pressed) |
void | SetMode (Mode mode) |
Mode | GetMode () const |
void | SetCurrentLayer (int layer) |
int | GetCurrentLayer () const |
absl::StatusOr< std::vector< RoomObject > > | GetObjectsByLayer (int layer) |
absl::Status | MoveObjectToLayer (size_t object_index, int layer) |
void | SetCurrentObjectType (int object_type) |
int | GetCurrentObjectType () const |
absl::StatusOr< std::vector< int > > | GetAvailableObjectTypes () |
absl::Status | ValidateObjectType (int object_type) |
absl::StatusOr< gfx::Bitmap > | RenderPreview (int x, int y) |
void | SetPreviewPosition (int x, int y) |
void | UpdatePreview () |
void | RenderSelectionHighlight (gfx::Bitmap &canvas) |
void | RenderLayerVisualization (gfx::Bitmap &canvas) |
void | RenderObjectPropertyPanel () |
void | RenderLayerControls () |
absl::Status | HandleDragOperation (int current_x, int current_y) |
absl::Status | Undo () |
absl::Status | Redo () |
bool | CanUndo () const |
bool | CanRedo () const |
void | ClearHistory () |
void | SetROM (Rom *rom) |
void | SetConfig (const EditorConfig &config) |
EditorConfig | GetConfig () const |
void | SetSnapToGrid (bool enabled) |
void | SetGridSize (int size) |
void | SetShowGrid (bool enabled) |
absl::Status | ValidateRoom () |
absl::Status | ValidateObject (const RoomObject &object) |
std::vector< std::string > | GetValidationErrors () |
void | SetObjectChangedCallback (ObjectChangedCallback callback) |
void | SetRoomChangedCallback (RoomChangedCallback callback) |
void | SetSelectionChangedCallback (SelectionChangedCallback callback) |
const Room & | GetRoom () const |
Room * | GetMutableRoom () |
const SelectionState & | GetSelection () const |
const EditingState & | GetEditingState () const |
size_t | GetObjectCount () const |
const std::vector< RoomObject > & | GetObjects () const |
Private Member Functions | |
absl::Status | InitializeEditor () |
absl::Status | CreateUndoPoint () |
absl::Status | ApplyUndoPoint (const UndoPoint &undo_point) |
std::pair< int, int > | ScreenToRoomCoordinates (int screen_x, int screen_y) |
std::pair< int, int > | RoomToScreenCoordinates (int room_x, int room_y) |
int | SnapToGrid (int coordinate) |
std::optional< size_t > | FindObjectAt (int room_x, int room_y) |
std::vector< size_t > | FindObjectsInArea (int start_x, int start_y, int end_x, int end_y) |
bool | IsObjectAtPosition (const RoomObject &object, int x, int y) |
bool | ObjectsCollide (const RoomObject &obj1, const RoomObject &obj2) |
absl::StatusOr< gfx::Bitmap > | RenderObjectPreview (int object_type, int x, int y, int size) |
void | UpdatePreviewObject () |
absl::Status | ValidatePreviewPosition (int x, int y) |
absl::Status | HandleSizeEdit (int delta, int x, int y) |
int | GetNextSize (int current_size, int delta) |
int | GetPreviousSize (int current_size, int delta) |
bool | IsValidSize (int size) |
Private Attributes | |
Rom * | rom_ |
std::unique_ptr< Room > | current_room_ |
SelectionState | selection_state_ |
EditingState | editing_state_ |
EditorConfig | config_ |
std::vector< UndoPoint > | undo_history_ |
std::vector< UndoPoint > | redo_history_ |
std::optional< RoomObject > | preview_object_ |
bool | preview_visible_ = false |
ObjectChangedCallback | object_changed_callback_ |
RoomChangedCallback | room_changed_callback_ |
SelectionChangedCallback | selection_changed_callback_ |
std::vector< RoomObject > | empty_objects_ |
Static Private Attributes | |
static constexpr size_t | kMaxUndoHistory = 50 |
static constexpr int | kMinObjectSize = 0x00 |
static constexpr int | kMaxObjectSize = 0xFF |
static constexpr int | kDefaultObjectSize = 0x12 |
static constexpr int | kMinLayer = 0 |
static constexpr int | kMaxLayer = 2 |
Interactive dungeon object editor with scroll wheel support.
This class provides a comprehensive object editing system for dungeon rooms, including:
Definition at line 35 of file dungeon_object_editor.h.
using yaze::zelda3::DungeonObjectEditor::ObjectChangedCallback = std::function<void(size_t object_index, const RoomObject& object)> |
Definition at line 184 of file dungeon_object_editor.h.
using yaze::zelda3::DungeonObjectEditor::RoomChangedCallback = std::function<void()> |
Definition at line 186 of file dungeon_object_editor.h.
using yaze::zelda3::DungeonObjectEditor::SelectionChangedCallback = std::function<void(const SelectionState&)> |
Definition at line 187 of file dungeon_object_editor.h.
|
strong |
Enumerator | |
---|---|
kSelect | |
kInsert | |
kDelete | |
kEdit | |
kLayer | |
kPreview |
Definition at line 38 of file dungeon_object_editor.h.
|
explicit |
Definition at line 16 of file dungeon_object_editor.cc.
|
default |
absl::Status yaze::zelda3::DungeonObjectEditor::LoadRoom | ( | int | room_id | ) |
Definition at line 46 of file dungeon_object_editor.cc.
References ClearSelection(), CreateUndoPoint(), yaze::zelda3::DungeonObjectEditor::EditingState::current_layer, current_room_, editing_state_, yaze::zelda3::DungeonObjectEditor::EditingState::is_editing_position, yaze::zelda3::DungeonObjectEditor::EditingState::is_editing_size, yaze::zelda3::NumberOfRooms, rom_, and room_changed_callback_.
absl::Status yaze::zelda3::DungeonObjectEditor::SaveRoom | ( | ) |
Definition at line 80 of file dungeon_object_editor.cc.
References config_, current_room_, yaze::zelda3::DungeonObjectEditor::EditorConfig::validate_objects, and ValidateRoom().
absl::Status yaze::zelda3::DungeonObjectEditor::ClearRoom | ( | ) |
Definition at line 97 of file dungeon_object_editor.cc.
References ClearSelection(), CreateUndoPoint(), current_room_, and room_changed_callback_.
absl::Status yaze::zelda3::DungeonObjectEditor::InsertObject | ( | int | x, |
int | y, | ||
int | object_type, | ||
int | size = 0x12 , |
||
int | layer = 0 |
||
) |
Definition at line 122 of file dungeon_object_editor.cc.
References ClearSelection(), config_, CreateUndoPoint(), current_room_, yaze::zelda3::RoomObject::EnsureTilesLoaded(), kMaxLayer, kMaxObjectSize, object_changed_callback_, ObjectsCollide(), rom_, room_changed_callback_, yaze::zelda3::DungeonObjectEditor::SelectionState::selected_objects, selection_changed_callback_, selection_state_, yaze::zelda3::RoomObject::set_rom(), yaze::zelda3::DungeonObjectEditor::EditorConfig::snap_to_grid, SnapToGrid(), and yaze::zelda3::DungeonObjectEditor::EditorConfig::validate_objects.
Referenced by HandleMouseClick().
absl::Status yaze::zelda3::DungeonObjectEditor::DeleteObject | ( | size_t | object_index | ) |
Definition at line 192 of file dungeon_object_editor.cc.
References CreateUndoPoint(), current_room_, room_changed_callback_, yaze::zelda3::DungeonObjectEditor::SelectionState::selected_objects, selection_changed_callback_, and selection_state_.
Referenced by HandleMouseClick(), and RenderObjectPropertyPanel().
absl::Status yaze::zelda3::DungeonObjectEditor::DeleteSelectedObjects | ( | ) |
Definition at line 238 of file dungeon_object_editor.cc.
References ClearSelection(), CreateUndoPoint(), current_room_, room_changed_callback_, yaze::zelda3::DungeonObjectEditor::SelectionState::selected_objects, and selection_state_.
Referenced by RenderObjectPropertyPanel().
absl::Status yaze::zelda3::DungeonObjectEditor::MoveObject | ( | size_t | object_index, |
int | new_x, | ||
int | new_y | ||
) |
Definition at line 275 of file dungeon_object_editor.cc.
References config_, CreateUndoPoint(), current_room_, object_changed_callback_, ObjectsCollide(), room_changed_callback_, yaze::zelda3::RoomObject::set_x(), yaze::zelda3::RoomObject::set_y(), yaze::zelda3::DungeonObjectEditor::EditorConfig::snap_to_grid, SnapToGrid(), and yaze::zelda3::DungeonObjectEditor::EditorConfig::validate_objects.
absl::Status yaze::zelda3::DungeonObjectEditor::ResizeObject | ( | size_t | object_index, |
int | new_size | ||
) |
Definition at line 328 of file dungeon_object_editor.cc.
References CreateUndoPoint(), current_room_, kMaxObjectSize, object_changed_callback_, and room_changed_callback_.
Referenced by HandleSizeEdit().
absl::Status yaze::zelda3::DungeonObjectEditor::ChangeObjectType | ( | size_t | object_index, |
int | new_type | ||
) |
absl::Status yaze::zelda3::DungeonObjectEditor::ChangeObjectLayer | ( | size_t | object_index, |
int | new_layer | ||
) |
absl::Status yaze::zelda3::DungeonObjectEditor::SelectObject | ( | int | screen_x, |
int | screen_y | ||
) |
Definition at line 563 of file dungeon_object_editor.cc.
References ClearSelection(), current_room_, FindObjectAt(), ScreenToRoomCoordinates(), yaze::zelda3::DungeonObjectEditor::SelectionState::selected_objects, selection_changed_callback_, and selection_state_.
Referenced by HandleMouseClick().
absl::Status yaze::zelda3::DungeonObjectEditor::SelectObjects | ( | int | start_x, |
int | start_y, | ||
int | end_x, | ||
int | end_y | ||
) |
absl::Status yaze::zelda3::DungeonObjectEditor::ClearSelection | ( | ) |
Definition at line 591 of file dungeon_object_editor.cc.
References yaze::zelda3::DungeonObjectEditor::SelectionState::is_dragging, yaze::zelda3::DungeonObjectEditor::SelectionState::is_multi_select, yaze::zelda3::DungeonObjectEditor::SelectionState::selected_objects, selection_changed_callback_, and selection_state_.
Referenced by ClearRoom(), DeleteSelectedObjects(), InsertObject(), LoadRoom(), RenderObjectPropertyPanel(), and SelectObject().
absl::Status yaze::zelda3::DungeonObjectEditor::AddToSelection | ( | size_t | object_index | ) |
Definition at line 604 of file dungeon_object_editor.cc.
References current_room_, yaze::zelda3::DungeonObjectEditor::SelectionState::is_multi_select, yaze::zelda3::DungeonObjectEditor::SelectionState::selected_objects, selection_changed_callback_, and selection_state_.
Referenced by HandleMouseClick().
absl::Status yaze::zelda3::DungeonObjectEditor::RemoveFromSelection | ( | size_t | object_index | ) |
absl::Status yaze::zelda3::DungeonObjectEditor::HandleMouseClick | ( | int | x, |
int | y, | ||
bool | left_button, | ||
bool | right_button, | ||
bool | shift_pressed | ||
) |
Definition at line 455 of file dungeon_object_editor.cc.
References AddToSelection(), yaze::zelda3::DungeonObjectEditor::EditingState::current_layer, yaze::zelda3::DungeonObjectEditor::EditingState::current_mode, yaze::zelda3::DungeonObjectEditor::EditingState::current_object_type, current_room_, DeleteObject(), editing_state_, FindObjectAt(), InsertObject(), kDelete, kEdit, kInsert, kSelect, yaze::zelda3::DungeonObjectEditor::EditingState::preview_size, ScreenToRoomCoordinates(), and SelectObject().
absl::Status yaze::zelda3::DungeonObjectEditor::HandleMouseDrag | ( | int | start_x, |
int | start_y, | ||
int | current_x, | ||
int | current_y | ||
) |
Definition at line 523 of file dungeon_object_editor.cc.
References CreateUndoPoint(), current_room_, yaze::zelda3::DungeonObjectEditor::SelectionState::drag_start_x, yaze::zelda3::DungeonObjectEditor::SelectionState::drag_start_y, HandleDragOperation(), yaze::zelda3::DungeonObjectEditor::SelectionState::is_dragging, yaze::zelda3::DungeonObjectEditor::SelectionState::selected_objects, and selection_state_.
absl::Status yaze::zelda3::DungeonObjectEditor::HandleMouseRelease | ( | int | x, |
int | y | ||
) |
Definition at line 545 of file dungeon_object_editor.cc.
References current_room_, yaze::zelda3::DungeonObjectEditor::SelectionState::is_dragging, room_changed_callback_, and selection_state_.
absl::Status yaze::zelda3::DungeonObjectEditor::HandleScrollWheel | ( | int | delta, |
int | x, | ||
int | y, | ||
bool | ctrl_pressed | ||
) |
Definition at line 363 of file dungeon_object_editor.cc.
References yaze::zelda3::DungeonObjectEditor::EditingState::current_layer, yaze::zelda3::DungeonObjectEditor::EditingState::current_mode, current_room_, editing_state_, HandleSizeEdit(), kEdit, kInsert, kMaxLayer, kMinLayer, ScreenToRoomCoordinates(), yaze::zelda3::DungeonObjectEditor::SelectionState::selected_objects, selection_state_, and SetCurrentLayer().
absl::Status yaze::zelda3::DungeonObjectEditor::HandleKeyPress | ( | int | key_code, |
bool | ctrl_pressed, | ||
bool | shift_pressed | ||
) |
void yaze::zelda3::DungeonObjectEditor::SetMode | ( | Mode | mode | ) |
Definition at line 630 of file dungeon_object_editor.cc.
References yaze::zelda3::DungeonObjectEditor::EditingState::current_mode, editing_state_, and UpdatePreviewObject().
|
inline |
Definition at line 135 of file dungeon_object_editor.h.
References yaze::zelda3::DungeonObjectEditor::EditingState::current_mode, and editing_state_.
void yaze::zelda3::DungeonObjectEditor::SetCurrentLayer | ( | int | layer | ) |
Definition at line 637 of file dungeon_object_editor.cc.
References yaze::zelda3::DungeonObjectEditor::EditingState::current_layer, editing_state_, kMaxLayer, kMinLayer, and UpdatePreviewObject().
Referenced by HandleScrollWheel().
|
inline |
Definition at line 139 of file dungeon_object_editor.h.
References yaze::zelda3::DungeonObjectEditor::EditingState::current_layer, and editing_state_.
absl::StatusOr< std::vector< RoomObject > > yaze::zelda3::DungeonObjectEditor::GetObjectsByLayer | ( | int | layer | ) |
absl::Status yaze::zelda3::DungeonObjectEditor::MoveObjectToLayer | ( | size_t | object_index, |
int | layer | ||
) |
void yaze::zelda3::DungeonObjectEditor::SetCurrentObjectType | ( | int | object_type | ) |
Definition at line 644 of file dungeon_object_editor.cc.
References yaze::zelda3::DungeonObjectEditor::EditingState::current_object_type, editing_state_, and UpdatePreviewObject().
|
inline |
Definition at line 145 of file dungeon_object_editor.h.
References yaze::zelda3::DungeonObjectEditor::EditingState::current_object_type, and editing_state_.
absl::StatusOr< std::vector< int > > yaze::zelda3::DungeonObjectEditor::GetAvailableObjectTypes | ( | ) |
absl::Status yaze::zelda3::DungeonObjectEditor::ValidateObjectType | ( | int | object_type | ) |
absl::StatusOr< gfx::Bitmap > yaze::zelda3::DungeonObjectEditor::RenderPreview | ( | int | x, |
int | y | ||
) |
void yaze::zelda3::DungeonObjectEditor::SetPreviewPosition | ( | int | x, |
int | y | ||
) |
void yaze::zelda3::DungeonObjectEditor::UpdatePreview | ( | ) |
void yaze::zelda3::DungeonObjectEditor::RenderSelectionHighlight | ( | gfx::Bitmap & | canvas | ) |
Definition at line 894 of file dungeon_object_editor.cc.
References config_, current_room_, yaze::gfx::Bitmap::height(), yaze::zelda3::DungeonObjectEditor::SelectionState::selected_objects, yaze::zelda3::DungeonObjectEditor::EditorConfig::selection_color, selection_state_, yaze::gfx::Bitmap::SetPixel(), yaze::zelda3::DungeonObjectEditor::EditorConfig::show_selection_highlight, and yaze::gfx::Bitmap::width().
void yaze::zelda3::DungeonObjectEditor::RenderLayerVisualization | ( | gfx::Bitmap & | canvas | ) |
Definition at line 926 of file dungeon_object_editor.cc.
References config_, current_room_, yaze::gfx::Bitmap::height(), yaze::zelda3::DungeonObjectEditor::EditorConfig::layer0_color, yaze::zelda3::DungeonObjectEditor::EditorConfig::layer1_color, yaze::zelda3::DungeonObjectEditor::EditorConfig::layer2_color, yaze::gfx::Bitmap::SetPixel(), yaze::zelda3::DungeonObjectEditor::EditorConfig::show_layer_colors, and yaze::gfx::Bitmap::width().
void yaze::zelda3::DungeonObjectEditor::RenderObjectPropertyPanel | ( | ) |
Definition at line 961 of file dungeon_object_editor.cc.
References ClearSelection(), config_, current_room_, DeleteObject(), DeleteSelectedObjects(), object_changed_callback_, yaze::zelda3::DungeonObjectEditor::SelectionState::selected_objects, selection_state_, yaze::zelda3::RoomObject::set_x(), and yaze::zelda3::DungeonObjectEditor::EditorConfig::show_property_panel.
void yaze::zelda3::DungeonObjectEditor::RenderLayerControls | ( | ) |
Definition at line 1061 of file dungeon_object_editor.cc.
References config_, yaze::zelda3::DungeonObjectEditor::EditingState::current_layer, current_room_, editing_state_, yaze::zelda3::DungeonObjectEditor::EditorConfig::layer0_color, yaze::zelda3::DungeonObjectEditor::EditorConfig::layer1_color, yaze::zelda3::DungeonObjectEditor::EditorConfig::layer2_color, and yaze::zelda3::DungeonObjectEditor::EditorConfig::show_layer_colors.
absl::Status yaze::zelda3::DungeonObjectEditor::HandleDragOperation | ( | int | current_x, |
int | current_y | ||
) |
Definition at line 1111 of file dungeon_object_editor.cc.
References config_, current_room_, yaze::zelda3::DungeonObjectEditor::SelectionState::drag_start_x, yaze::zelda3::DungeonObjectEditor::SelectionState::drag_start_y, yaze::zelda3::DungeonObjectEditor::EditorConfig::grid_size, yaze::zelda3::DungeonObjectEditor::SelectionState::is_dragging, object_changed_callback_, yaze::zelda3::DungeonObjectEditor::SelectionState::selected_objects, and selection_state_.
Referenced by HandleMouseDrag().
absl::Status yaze::zelda3::DungeonObjectEditor::Undo | ( | ) |
Definition at line 787 of file dungeon_object_editor.cc.
References ApplyUndoPoint(), CanUndo(), current_room_, yaze::zelda3::DungeonObjectEditor::UndoPoint::editing, editing_state_, yaze::zelda3::DungeonObjectEditor::UndoPoint::objects, redo_history_, yaze::zelda3::DungeonObjectEditor::UndoPoint::selection, selection_state_, yaze::zelda3::DungeonObjectEditor::UndoPoint::timestamp, and undo_history_.
absl::Status yaze::zelda3::DungeonObjectEditor::Redo | ( | ) |
Definition at line 808 of file dungeon_object_editor.cc.
References ApplyUndoPoint(), CanRedo(), current_room_, yaze::zelda3::DungeonObjectEditor::UndoPoint::editing, editing_state_, yaze::zelda3::DungeonObjectEditor::UndoPoint::objects, redo_history_, yaze::zelda3::DungeonObjectEditor::UndoPoint::selection, selection_state_, yaze::zelda3::DungeonObjectEditor::UndoPoint::timestamp, and undo_history_.
bool yaze::zelda3::DungeonObjectEditor::CanUndo | ( | ) | const |
Definition at line 856 of file dungeon_object_editor.cc.
References undo_history_.
Referenced by Undo().
bool yaze::zelda3::DungeonObjectEditor::CanRedo | ( | ) | const |
Definition at line 860 of file dungeon_object_editor.cc.
References redo_history_.
Referenced by Redo().
void yaze::zelda3::DungeonObjectEditor::ClearHistory | ( | ) |
Definition at line 864 of file dungeon_object_editor.cc.
References redo_history_, and undo_history_.
void yaze::zelda3::DungeonObjectEditor::SetROM | ( | Rom * | rom | ) |
Definition at line 1192 of file dungeon_object_editor.cc.
References InitializeEditor(), and rom_.
void yaze::zelda3::DungeonObjectEditor::SetConfig | ( | const EditorConfig & | config | ) |
Definition at line 1188 of file dungeon_object_editor.cc.
References config_.
|
inline |
Definition at line 173 of file dungeon_object_editor.h.
References config_.
void yaze::zelda3::DungeonObjectEditor::SetSnapToGrid | ( | bool | enabled | ) |
void yaze::zelda3::DungeonObjectEditor::SetGridSize | ( | int | size | ) |
void yaze::zelda3::DungeonObjectEditor::SetShowGrid | ( | bool | enabled | ) |
absl::Status yaze::zelda3::DungeonObjectEditor::ValidateRoom | ( | ) |
Definition at line 1155 of file dungeon_object_editor.cc.
References config_, current_room_, ObjectsCollide(), and yaze::zelda3::DungeonObjectEditor::EditorConfig::validate_objects.
Referenced by SaveRoom().
absl::Status yaze::zelda3::DungeonObjectEditor::ValidateObject | ( | const RoomObject & | object | ) |
std::vector< std::string > yaze::zelda3::DungeonObjectEditor::GetValidationErrors | ( | ) |
void yaze::zelda3::DungeonObjectEditor::SetObjectChangedCallback | ( | ObjectChangedCallback | callback | ) |
Definition at line 1176 of file dungeon_object_editor.cc.
References object_changed_callback_.
void yaze::zelda3::DungeonObjectEditor::SetRoomChangedCallback | ( | RoomChangedCallback | callback | ) |
Definition at line 1180 of file dungeon_object_editor.cc.
References room_changed_callback_.
void yaze::zelda3::DungeonObjectEditor::SetSelectionChangedCallback | ( | SelectionChangedCallback | callback | ) |
Definition at line 1184 of file dungeon_object_editor.cc.
References selection_changed_callback_.
|
inline |
Definition at line 194 of file dungeon_object_editor.h.
References current_room_.
|
inline |
Definition at line 195 of file dungeon_object_editor.h.
References current_room_.
|
inline |
Definition at line 196 of file dungeon_object_editor.h.
References selection_state_.
|
inline |
Definition at line 197 of file dungeon_object_editor.h.
References editing_state_.
|
inline |
Definition at line 198 of file dungeon_object_editor.h.
References current_room_.
|
inline |
Definition at line 201 of file dungeon_object_editor.h.
References current_room_, and empty_objects_.
|
private |
Definition at line 19 of file dungeon_object_editor.cc.
References yaze::zelda3::DungeonObjectEditor::EditorConfig::auto_save, yaze::zelda3::DungeonObjectEditor::EditorConfig::auto_save_interval, config_, yaze::zelda3::DungeonObjectEditor::EditingState::current_layer, yaze::zelda3::DungeonObjectEditor::EditingState::current_mode, yaze::zelda3::DungeonObjectEditor::EditingState::current_object_type, current_room_, editing_state_, yaze::zelda3::DungeonObjectEditor::EditorConfig::grid_size, kDefaultObjectSize, kSelect, yaze::zelda3::DungeonObjectEditor::EditingState::preview_size, rom_, yaze::zelda3::DungeonObjectEditor::EditorConfig::show_collision_bounds, yaze::zelda3::DungeonObjectEditor::EditorConfig::show_grid, yaze::zelda3::DungeonObjectEditor::EditorConfig::show_preview, yaze::zelda3::DungeonObjectEditor::EditorConfig::snap_to_grid, and yaze::zelda3::DungeonObjectEditor::EditorConfig::validate_objects.
Referenced by SetROM().
|
private |
Definition at line 761 of file dungeon_object_editor.cc.
References current_room_, yaze::zelda3::DungeonObjectEditor::UndoPoint::editing, editing_state_, kMaxUndoHistory, yaze::zelda3::DungeonObjectEditor::UndoPoint::objects, redo_history_, yaze::zelda3::DungeonObjectEditor::UndoPoint::selection, selection_state_, yaze::zelda3::DungeonObjectEditor::UndoPoint::timestamp, and undo_history_.
Referenced by ClearRoom(), DeleteObject(), DeleteSelectedObjects(), HandleMouseDrag(), InsertObject(), LoadRoom(), MoveObject(), and ResizeObject().
|
private |
Definition at line 829 of file dungeon_object_editor.cc.
References current_room_, yaze::zelda3::DungeonObjectEditor::UndoPoint::editing, editing_state_, yaze::zelda3::DungeonObjectEditor::UndoPoint::objects, room_changed_callback_, yaze::zelda3::DungeonObjectEditor::UndoPoint::selection, selection_changed_callback_, selection_state_, and UpdatePreviewObject().
Referenced by Redo(), and Undo().
|
private |
Definition at line 719 of file dungeon_object_editor.cc.
Referenced by HandleMouseClick(), HandleScrollWheel(), and SelectObject().
|
private |
Definition at line 730 of file dungeon_object_editor.cc.
|
private |
Definition at line 738 of file dungeon_object_editor.cc.
References config_, yaze::zelda3::DungeonObjectEditor::EditorConfig::grid_size, and yaze::zelda3::DungeonObjectEditor::EditorConfig::snap_to_grid.
Referenced by InsertObject(), and MoveObject().
|
private |
Definition at line 651 of file dungeon_object_editor.cc.
References current_room_, and IsObjectAtPosition().
Referenced by HandleMouseClick(), and SelectObject().
|
private |
|
private |
Definition at line 666 of file dungeon_object_editor.cc.
Referenced by FindObjectAt().
|
private |
Definition at line 688 of file dungeon_object_editor.cc.
References yaze::zelda3::RoomObject::size_, yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.
Referenced by InsertObject(), MoveObject(), and ValidateRoom().
|
private |
|
private |
Definition at line 746 of file dungeon_object_editor.cc.
References yaze::zelda3::DungeonObjectEditor::EditingState::current_layer, yaze::zelda3::DungeonObjectEditor::EditingState::current_mode, yaze::zelda3::DungeonObjectEditor::EditingState::current_object_type, editing_state_, kInsert, preview_object_, yaze::zelda3::DungeonObjectEditor::EditingState::preview_size, preview_visible_, yaze::zelda3::DungeonObjectEditor::EditingState::preview_x, yaze::zelda3::DungeonObjectEditor::EditingState::preview_y, and rom_.
Referenced by ApplyUndoPoint(), HandleSizeEdit(), SetCurrentLayer(), SetCurrentObjectType(), and SetMode().
|
private |
|
private |
Definition at line 394 of file dungeon_object_editor.cc.
References yaze::zelda3::DungeonObjectEditor::EditingState::current_mode, current_room_, editing_state_, GetNextSize(), IsValidSize(), kEdit, kInsert, yaze::zelda3::DungeonObjectEditor::EditingState::preview_size, ResizeObject(), yaze::zelda3::DungeonObjectEditor::SelectionState::selected_objects, selection_state_, and UpdatePreviewObject().
Referenced by HandleScrollWheel().
|
private |
Definition at line 425 of file dungeon_object_editor.cc.
Referenced by HandleSizeEdit().
|
private |
|
private |
Definition at line 451 of file dungeon_object_editor.cc.
References kMaxObjectSize, and kMinObjectSize.
Referenced by HandleSizeEdit().
|
private |
Definition at line 236 of file dungeon_object_editor.h.
Referenced by InitializeEditor(), InsertObject(), LoadRoom(), SetROM(), and UpdatePreviewObject().
|
private |
Definition at line 237 of file dungeon_object_editor.h.
Referenced by AddToSelection(), ApplyUndoPoint(), ClearRoom(), CreateUndoPoint(), DeleteObject(), DeleteSelectedObjects(), FindObjectAt(), GetMutableRoom(), GetObjectCount(), GetObjects(), GetRoom(), HandleDragOperation(), HandleMouseClick(), HandleMouseDrag(), HandleMouseRelease(), HandleScrollWheel(), HandleSizeEdit(), InitializeEditor(), InsertObject(), LoadRoom(), MoveObject(), Redo(), RenderLayerControls(), RenderLayerVisualization(), RenderObjectPropertyPanel(), RenderSelectionHighlight(), ResizeObject(), SaveRoom(), SelectObject(), Undo(), and ValidateRoom().
|
private |
Definition at line 239 of file dungeon_object_editor.h.
Referenced by AddToSelection(), ApplyUndoPoint(), ClearSelection(), CreateUndoPoint(), DeleteObject(), DeleteSelectedObjects(), GetSelection(), HandleDragOperation(), HandleMouseDrag(), HandleMouseRelease(), HandleScrollWheel(), HandleSizeEdit(), InsertObject(), Redo(), RenderObjectPropertyPanel(), RenderSelectionHighlight(), SelectObject(), and Undo().
|
private |
Definition at line 240 of file dungeon_object_editor.h.
Referenced by ApplyUndoPoint(), CreateUndoPoint(), GetCurrentLayer(), GetCurrentObjectType(), GetEditingState(), GetMode(), HandleMouseClick(), HandleScrollWheel(), HandleSizeEdit(), InitializeEditor(), LoadRoom(), Redo(), RenderLayerControls(), SetCurrentLayer(), SetCurrentObjectType(), SetMode(), Undo(), and UpdatePreviewObject().
|
private |
Definition at line 241 of file dungeon_object_editor.h.
Referenced by GetConfig(), HandleDragOperation(), InitializeEditor(), InsertObject(), MoveObject(), RenderLayerControls(), RenderLayerVisualization(), RenderObjectPropertyPanel(), RenderSelectionHighlight(), SaveRoom(), SetConfig(), SnapToGrid(), and ValidateRoom().
|
private |
Definition at line 243 of file dungeon_object_editor.h.
Referenced by CanUndo(), ClearHistory(), CreateUndoPoint(), Redo(), and Undo().
|
private |
Definition at line 244 of file dungeon_object_editor.h.
Referenced by CanRedo(), ClearHistory(), CreateUndoPoint(), Redo(), and Undo().
|
staticconstexprprivate |
Definition at line 245 of file dungeon_object_editor.h.
Referenced by CreateUndoPoint().
|
private |
Definition at line 248 of file dungeon_object_editor.h.
Referenced by UpdatePreviewObject().
|
private |
Definition at line 249 of file dungeon_object_editor.h.
Referenced by UpdatePreviewObject().
|
private |
Definition at line 252 of file dungeon_object_editor.h.
Referenced by HandleDragOperation(), InsertObject(), MoveObject(), RenderObjectPropertyPanel(), ResizeObject(), and SetObjectChangedCallback().
|
private |
Definition at line 253 of file dungeon_object_editor.h.
Referenced by ApplyUndoPoint(), ClearRoom(), DeleteObject(), DeleteSelectedObjects(), HandleMouseRelease(), InsertObject(), LoadRoom(), MoveObject(), ResizeObject(), and SetRoomChangedCallback().
|
private |
Definition at line 254 of file dungeon_object_editor.h.
Referenced by AddToSelection(), ApplyUndoPoint(), ClearSelection(), DeleteObject(), InsertObject(), SelectObject(), and SetSelectionChangedCallback().
|
staticconstexprprivate |
Definition at line 257 of file dungeon_object_editor.h.
Referenced by IsValidSize().
|
staticconstexprprivate |
Definition at line 258 of file dungeon_object_editor.h.
Referenced by InsertObject(), IsValidSize(), and ResizeObject().
|
staticconstexprprivate |
Definition at line 259 of file dungeon_object_editor.h.
Referenced by InitializeEditor().
|
staticconstexprprivate |
Definition at line 260 of file dungeon_object_editor.h.
Referenced by HandleScrollWheel(), and SetCurrentLayer().
|
staticconstexprprivate |
Definition at line 261 of file dungeon_object_editor.h.
Referenced by HandleScrollWheel(), InsertObject(), and SetCurrentLayer().
|
private |
Definition at line 264 of file dungeon_object_editor.h.
Referenced by GetObjects().