diff --git a/src/app/editor/overworld/entity.cc b/src/app/editor/overworld/entity.cc index 09990c44..77152b43 100644 --- a/src/app/editor/overworld/entity.cc +++ b/src/app/editor/overworld/entity.cc @@ -16,7 +16,7 @@ using ImGui::SameLine; using ImGui::Selectable; using ImGui::Text; -bool IsMouseHoveringOverEntity(const zelda3::OverworldEntity &entity, +bool IsMouseHoveringOverEntity(const zelda3::GameEntity &entity, ImVec2 canvas_p0, ImVec2 scrolling) { // Get the mouse position relative to the canvas const ImGuiIO &io = ImGui::GetIO(); @@ -31,7 +31,7 @@ bool IsMouseHoveringOverEntity(const zelda3::OverworldEntity &entity, return false; } -void MoveEntityOnGrid(zelda3::OverworldEntity *entity, ImVec2 canvas_p0, +void MoveEntityOnGrid(zelda3::GameEntity *entity, ImVec2 canvas_p0, ImVec2 scrolling, bool free_movement) { // Get the mouse position relative to the canvas const ImGuiIO &io = ImGui::GetIO(); @@ -51,19 +51,19 @@ void MoveEntityOnGrid(zelda3::OverworldEntity *entity, ImVec2 canvas_p0, entity->set_y(new_y); } -void HandleEntityDragging(zelda3::OverworldEntity *entity, ImVec2 canvas_p0, +void HandleEntityDragging(zelda3::GameEntity *entity, ImVec2 canvas_p0, ImVec2 scrolling, bool &is_dragging_entity, - zelda3::OverworldEntity *&dragged_entity, - zelda3::OverworldEntity *¤t_entity, + zelda3::GameEntity *&dragged_entity, + zelda3::GameEntity *¤t_entity, bool free_movement) { std::string entity_type = "Entity"; - if (entity->type_ == zelda3::OverworldEntity::EntityType::kExit) { + if (entity->entity_type_ == zelda3::GameEntity::EntityType::kExit) { entity_type = "Exit"; - } else if (entity->type_ == zelda3::OverworldEntity::EntityType::kEntrance) { + } else if (entity->entity_type_ == zelda3::GameEntity::EntityType::kEntrance) { entity_type = "Entrance"; - } else if (entity->type_ == zelda3::OverworldEntity::EntityType::kSprite) { + } else if (entity->entity_type_ == zelda3::GameEntity::EntityType::kSprite) { entity_type = "Sprite"; - } else if (entity->type_ == zelda3::OverworldEntity::EntityType::kItem) { + } else if (entity->entity_type_ == zelda3::GameEntity::EntityType::kItem) { entity_type = "Item"; } const auto is_hovering = @@ -87,7 +87,7 @@ void HandleEntityDragging(zelda3::OverworldEntity *entity, ImVec2 canvas_p0, } else if (is_dragging_entity && dragged_entity == entity) { if (ImGui::BeginDragDropSource()) { ImGui::SetDragDropPayload("ENTITY_PAYLOAD", &entity, - sizeof(zelda3::OverworldEntity)); + sizeof(zelda3::GameEntity)); Text("Moving %s ID: %s", entity_type.c_str(), core::UppercaseHexByte(entity->entity_id_).c_str()); ImGui::EndDragDropSource(); diff --git a/src/app/editor/overworld/entity.h b/src/app/editor/overworld/entity.h index 244a7a0a..168058bd 100644 --- a/src/app/editor/overworld/entity.h +++ b/src/app/editor/overworld/entity.h @@ -11,16 +11,16 @@ namespace yaze { namespace app { namespace editor { -bool IsMouseHoveringOverEntity(const zelda3::OverworldEntity &entity, +bool IsMouseHoveringOverEntity(const zelda3::GameEntity &entity, ImVec2 canvas_p0, ImVec2 scrolling); -void MoveEntityOnGrid(zelda3::OverworldEntity *entity, ImVec2 canvas_p0, +void MoveEntityOnGrid(zelda3::GameEntity *entity, ImVec2 canvas_p0, ImVec2 scrolling, bool free_movement = false); -void HandleEntityDragging(zelda3::OverworldEntity *entity, ImVec2 canvas_p0, +void HandleEntityDragging(zelda3::GameEntity *entity, ImVec2 canvas_p0, ImVec2 scrolling, bool &is_dragging_entity, - zelda3::OverworldEntity *&dragged_entity, - zelda3::OverworldEntity *¤t_entity, + zelda3::GameEntity *&dragged_entity, + zelda3::GameEntity *¤t_entity, bool free_movement = false); bool DrawEntranceInserterPopup(); diff --git a/src/app/editor/overworld/overworld_editor.cc b/src/app/editor/overworld/overworld_editor.cc index 7374f11c..361a1e01 100644 --- a/src/app/editor/overworld/overworld_editor.cc +++ b/src/app/editor/overworld/overworld_editor.cc @@ -898,8 +898,8 @@ void OverworldEditor::DrawOverworldSprites() { // So we need to check if the map is large or small then add the offset // Calculate the superX and superY values - int superY = map_id / 8; - int superX = map_id % 8; + // int superY = map_id / 8; + // int superX = map_id % 8; // Calculate the map_x and map_y values int map_x = sprite.map_x(); diff --git a/src/app/editor/overworld/overworld_editor.h b/src/app/editor/overworld/overworld_editor.h index b7d2de71..0f015d45 100644 --- a/src/app/editor/overworld/overworld_editor.h +++ b/src/app/editor/overworld/overworld_editor.h @@ -282,8 +282,8 @@ class OverworldEditor : public Editor, zelda3::overworld::OverworldExit current_exit_; zelda3::overworld::OverworldItem current_item_; - zelda3::OverworldEntity* current_entity_; - zelda3::OverworldEntity* dragged_entity_; + zelda3::GameEntity* current_entity_; + zelda3::GameEntity* dragged_entity_; gui::Canvas ow_map_canvas_{"OwMap", kOverworldCanvasSize, gui::CanvasGridSize::k64x64}; diff --git a/src/app/zelda3/overworld/overworld.h b/src/app/zelda3/overworld/overworld.h index 7c6ffdd7..e0a6c8e2 100644 --- a/src/app/zelda3/overworld/overworld.h +++ b/src/app/zelda3/overworld/overworld.h @@ -77,7 +77,7 @@ constexpr int kOverworldItemsAddress = 0xDC8B9; // 1BC2F9 constexpr int overworldItemsBank = 0xDC8BF; constexpr int overworldItemsEndData = 0xDC89C; // 0DC89E -class OverworldItem : public OverworldEntity { +class OverworldItem : public GameEntity { public: bool bg2_ = false; uint8_t id_; @@ -96,7 +96,7 @@ class OverworldItem : public OverworldEntity { this->room_map_id_ = room_map_id; this->map_id_ = room_map_id; this->entity_id_ = id; - this->type_ = kItem; + this->entity_type_ = kItem; int map_x = room_map_id - ((room_map_id / 8) * 8); int map_y = room_map_id / 8; @@ -155,7 +155,7 @@ constexpr int OWExitUnk1Whirlpool = 0x16BF5; // JP = ;016E91 constexpr int OWExitUnk2Whirlpool = 0x16C17; // JP = ;016EB3 constexpr int OWWhirlpoolPosition = 0x16CF8; // JP = ;016F94 -class OverworldExit : public OverworldEntity { +class OverworldExit : public GameEntity { public: uint16_t y_scroll_; uint16_t x_scroll_; @@ -204,7 +204,7 @@ class OverworldExit : public OverworldEntity { x_ = player_x; y_ = player_y; map_id_ = map_id; - type_ = kExit; + entity_type_ = kExit; int mapX = (map_id_ - ((map_id_ / 8) * 8)); int mapY = (map_id_ / 8); @@ -331,7 +331,7 @@ constexpr int OWHoleArea = 0xDB826; //(0x13 entries, 1 byte each) corresponding entrance numbers constexpr int OWHoleEntrance = 0xDB84C; -class OverworldEntrance : public OverworldEntity { +class OverworldEntrance : public GameEntity { public: uint16_t map_pos_; uchar entrance_id_; @@ -348,7 +348,7 @@ class OverworldEntrance : public OverworldEntity { y_ = y; map_id_ = map_id; entity_id_ = entrance_id; - type_ = kEntrance; + entity_type_ = kEntrance; int mapX = (map_id_ - ((map_id_ / 8) * 8)); int mapY = (map_id_ / 8); diff --git a/src/app/zelda3/sprite/sprite.cc b/src/app/zelda3/sprite/sprite.cc index 358e24c1..74f13665 100644 --- a/src/app/zelda3/sprite/sprite.cc +++ b/src/app/zelda3/sprite/sprite.cc @@ -17,7 +17,7 @@ void Sprite::UpdateCoordinates(int map_x, int map_y) { map_y_ = map_y; } -void Sprite::updateBBox() { +void Sprite::UpdateBoundaryBox() { lowerX_ = 1; lowerY_ = 1; higherX_ = 15; diff --git a/src/app/zelda3/sprite/sprite.h b/src/app/zelda3/sprite/sprite.h index 1ef50dfd..c3fd8e4f 100644 --- a/src/app/zelda3/sprite/sprite.h +++ b/src/app/zelda3/sprite/sprite.h @@ -282,35 +282,34 @@ static const std::string kSpriteDefaultNames[]{ * @class Sprite * @brief A class for managing sprites in the overworld and underworld. */ -class Sprite : public OverworldEntity { +class Sprite : public GameEntity { public: Sprite() = default; - Sprite(std::vector src, uint8_t mapid, uint8_t id, uint8_t x, - uint8_t y, int map_x, int map_y) - : current_gfx_(src), - map_id_(static_cast(mapid)), + Sprite(std::vector src, uint8_t overworld_map_id, uint8_t id, + uint8_t x, uint8_t y, int map_x, int map_y) + : map_id_(static_cast(overworld_map_id)), id_(id), nx_(x), ny_(y), map_x_(map_x), - map_y_(map_y) { - type_ = zelda3::OverworldEntity::EntityType::kSprite; + map_y_(map_y), + current_gfx_(src) { + entity_type_ = zelda3::GameEntity::EntityType::kSprite; entity_id_ = id; x_ = map_x_; y_ = map_y_; - current_gfx_ = src; overworld_ = true; name_ = kSpriteDefaultNames[id]; preview_gfx_.resize(64 * 64, 0xFF); } - void InitSprite(const std::vector& src, uint8_t mapid, uint8_t id, - uint8_t x, uint8_t y, int map_x, int map_y) { + void InitSprite(const std::vector& src, uint8_t overworld_map_id, + uint8_t id, uint8_t x, uint8_t y, int map_x, int map_y) { current_gfx_ = src; overworld_ = true; - map_id_ = static_cast(mapid); + map_id_ = static_cast(overworld_map_id); id_ = id; - type_ = zelda3::OverworldEntity::EntityType::kSprite; + entity_type_ = zelda3::GameEntity::EntityType::kSprite; entity_id_ = id; x_ = map_x_; y_ = map_y_; @@ -321,7 +320,7 @@ class Sprite : public OverworldEntity { map_y_ = map_y; preview_gfx_.resize(64 * 64, 0xFF); } - void updateBBox(); + void UpdateBoundaryBox(); void Draw(); void DrawSpriteTile(int x, int y, int srcx, int srcy, int pal, @@ -347,7 +346,6 @@ class Sprite : public OverworldEntity { auto layer() const { return layer_; } auto subtype() const { return subtype_; } - auto& keyDrop() const { return key_drop_; } auto Width() const { return bounding_box_.w; } auto Height() const { return bounding_box_.h; }