Refactor dungeon background enum and update related usages for consistency
This commit is contained in:
@@ -31,12 +31,12 @@ void Room::LoadHeader() {
|
|||||||
|
|
||||||
auto header_location = core::SnesToPc(address);
|
auto header_location = core::SnesToPc(address);
|
||||||
|
|
||||||
bg2_ = (Background2)((rom()->data()[header_location] >> 5) & 0x07);
|
bg2_ = (z3_dungeon_background2)((rom()->data()[header_location] >> 5) & 0x07);
|
||||||
// collision = (CollisionKey)((rom()->data()[header_location] >> 2) & 0x07);
|
// collision = (CollisionKey)((rom()->data()[header_location] >> 2) & 0x07);
|
||||||
is_light_ = ((rom()->data()[header_location]) & 0x01) == 1;
|
is_light_ = ((rom()->data()[header_location]) & 0x01) == 1;
|
||||||
|
|
||||||
if (is_light_) {
|
if (is_light_) {
|
||||||
bg2_ = Background2::DarkRoom;
|
bg2_ = z3_dungeon_background2::DarkRoom;
|
||||||
}
|
}
|
||||||
|
|
||||||
palette = ((rom()->data()[header_location + 1] & 0x3F));
|
palette = ((rom()->data()[header_location + 1] & 0x3F));
|
||||||
|
|||||||
@@ -159,19 +159,19 @@ class Room : public SharedRom {
|
|||||||
int64_t room_size_pointer_;
|
int64_t room_size_pointer_;
|
||||||
|
|
||||||
std::array<uint8_t, 16> blocks_;
|
std::array<uint8_t, 16> blocks_;
|
||||||
std::array<uchar, 16> chest_list_;
|
|
||||||
|
|
||||||
std::array<gfx::Bitmap, 3> background_bmps_;
|
std::array<gfx::Bitmap, 3> background_bmps_;
|
||||||
std::vector<zelda3::Sprite> sprites_;
|
std::vector<zelda3::Sprite> sprites_;
|
||||||
std::vector<z3_staircase> staircase_rooms_vec_;
|
std::vector<z3_staircase> staircase_rooms_vec_;
|
||||||
|
|
||||||
Background2 bg2_;
|
z3_dungeon_background2 bg2_;
|
||||||
z3_dungeon_destination pits_;
|
z3_dungeon_destination pits_;
|
||||||
z3_dungeon_destination stair1_;
|
z3_dungeon_destination stair1_;
|
||||||
z3_dungeon_destination stair2_;
|
z3_dungeon_destination stair2_;
|
||||||
z3_dungeon_destination stair3_;
|
z3_dungeon_destination stair3_;
|
||||||
z3_dungeon_destination stair4_;
|
z3_dungeon_destination stair4_;
|
||||||
|
|
||||||
|
std::array<uchar, 16> chest_list_;
|
||||||
std::vector<z3_chest_data> chests_in_room_;
|
std::vector<z3_chest_data> chests_in_room_;
|
||||||
std::vector<RoomObject> tile_objects_;
|
std::vector<RoomObject> tile_objects_;
|
||||||
|
|
||||||
|
|||||||
@@ -28,18 +28,6 @@ SubtypeInfo FetchSubtypeInfo(uint16_t object_id);
|
|||||||
|
|
||||||
enum class SpecialObjectType { Chest, BigChest, InterroomStairs };
|
enum class SpecialObjectType { Chest, BigChest, InterroomStairs };
|
||||||
|
|
||||||
enum Background2 {
|
|
||||||
Off,
|
|
||||||
Parallax,
|
|
||||||
Dark,
|
|
||||||
OnTop,
|
|
||||||
Translucent,
|
|
||||||
Addition,
|
|
||||||
Normal,
|
|
||||||
Transparent,
|
|
||||||
DarkRoom
|
|
||||||
};
|
|
||||||
|
|
||||||
enum Sorting {
|
enum Sorting {
|
||||||
All = 0,
|
All = 0,
|
||||||
Wall = 1,
|
Wall = 1,
|
||||||
@@ -87,34 +75,7 @@ class RoomObject : public SharedRom {
|
|||||||
ox_(x),
|
ox_(x),
|
||||||
oy_(y),
|
oy_(y),
|
||||||
width_(16),
|
width_(16),
|
||||||
height_(16),
|
height_(16) {}
|
||||||
unique_id_(0) {}
|
|
||||||
|
|
||||||
void GetObjectSize() {
|
|
||||||
previous_size_ = size_;
|
|
||||||
size_ = 1;
|
|
||||||
GetBaseSize();
|
|
||||||
UpdateSize();
|
|
||||||
size_ = 2;
|
|
||||||
GetSizeSized();
|
|
||||||
UpdateSize();
|
|
||||||
size_ = previous_size_;
|
|
||||||
}
|
|
||||||
|
|
||||||
void GetBaseSize() {
|
|
||||||
base_width_ = width_;
|
|
||||||
base_height_ = height_;
|
|
||||||
}
|
|
||||||
|
|
||||||
void GetSizeSized() {
|
|
||||||
size_height_ = height_ - base_height_;
|
|
||||||
size_width_ = width_ - base_width_;
|
|
||||||
}
|
|
||||||
|
|
||||||
void UpdateSize() {
|
|
||||||
width_ = 8;
|
|
||||||
height_ = 8;
|
|
||||||
}
|
|
||||||
|
|
||||||
void AddTiles(int nbr, int pos) {
|
void AddTiles(int nbr, int pos) {
|
||||||
for (int i = 0; i < nbr; i++) {
|
for (int i = 0; i < nbr; i++) {
|
||||||
@@ -135,10 +96,6 @@ class RoomObject : public SharedRom {
|
|||||||
protected:
|
protected:
|
||||||
bool all_bgs_ = false;
|
bool all_bgs_ = false;
|
||||||
bool lit_ = false;
|
bool lit_ = false;
|
||||||
bool deleted_ = false;
|
|
||||||
bool show_rectangle_ = false;
|
|
||||||
bool diagonal_fix_ = false;
|
|
||||||
bool selected_ = false;
|
|
||||||
|
|
||||||
int16_t id_;
|
int16_t id_;
|
||||||
uint8_t x_;
|
uint8_t x_;
|
||||||
@@ -153,15 +110,8 @@ class RoomObject : public SharedRom {
|
|||||||
|
|
||||||
int width_;
|
int width_;
|
||||||
int height_;
|
int height_;
|
||||||
int base_width_;
|
|
||||||
int base_height_;
|
|
||||||
int size_width_;
|
|
||||||
int size_height_;
|
|
||||||
int tile_index_ = 0;
|
|
||||||
int offset_x_ = 0;
|
int offset_x_ = 0;
|
||||||
int offset_y_ = 0;
|
int offset_y_ = 0;
|
||||||
int preview_id_ = 0;
|
|
||||||
int unique_id_ = 0;
|
|
||||||
|
|
||||||
std::string name_;
|
std::string name_;
|
||||||
|
|
||||||
|
|||||||
@@ -18,8 +18,8 @@ struct z3_object_door {
|
|||||||
|
|
||||||
struct z3_dungeon_destination {
|
struct z3_dungeon_destination {
|
||||||
uint8_t index;
|
uint8_t index;
|
||||||
uint8_t target = 0;
|
uint8_t target;
|
||||||
uint8_t target_layer = 0;
|
uint8_t target_layer;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct z3_staircase {
|
struct z3_staircase {
|
||||||
@@ -29,18 +29,30 @@ struct z3_staircase {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct z3_chest {
|
struct z3_chest {
|
||||||
uint8_t x = 0;
|
uint8_t x;
|
||||||
uint8_t y = 0;
|
uint8_t y;
|
||||||
uint8_t item = 0;
|
uint8_t item;
|
||||||
bool picker = false;
|
bool picker;
|
||||||
bool big_chest = false;
|
bool big_chest;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct z3_chest_data {
|
struct z3_chest_data {
|
||||||
uchar id;
|
uint8_t id;
|
||||||
bool size;
|
bool size;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum z3_dungeon_background2 {
|
||||||
|
Off,
|
||||||
|
Parallax,
|
||||||
|
Dark,
|
||||||
|
OnTop,
|
||||||
|
Translucent,
|
||||||
|
Addition,
|
||||||
|
Normal,
|
||||||
|
Transparent,
|
||||||
|
DarkRoom
|
||||||
|
};
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user