Refactor OverworldEditor to use zelda3::GameEntity
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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<uint8_t> 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<int>(mapid)),
|
||||
Sprite(std::vector<uint8_t> 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<int>(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<uint8_t>& src, uint8_t mapid, uint8_t id,
|
||||
uint8_t x, uint8_t y, int map_x, int map_y) {
|
||||
void InitSprite(const std::vector<uint8_t>& 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<int>(mapid);
|
||||
map_id_ = static_cast<int>(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; }
|
||||
|
||||
Reference in New Issue
Block a user