1#ifndef YAZE_APP_ZELDA3_OVERWORLD_ITEM_H_
2#define YAZE_APP_ZELDA3_OVERWORLD_ITEM_H_
11#include "absl/status/status.h"
12#include "absl/status/statusor.h"
52 int map_x = room_map_id - ((room_map_id / 8) * 8);
53 int map_y = room_map_id / 8;
55 game_x_ =
static_cast<uint8_t
>(std::abs(x - (map_x * 512)) / 16);
56 game_y_ =
static_cast<uint8_t
>(std::abs(y - (map_y * 512)) / 16);
69 game_x_ =
static_cast<uint8_t
>(std::abs(
x_ - (map_x * 512)) / 16);
70 game_y_ =
static_cast<uint8_t
>(std::abs(
y_ - (map_y * 512)) / 16);
83 const std::vector<OverworldItem>& items2) {
84 if (items1.size() != items2.size()) {
89 return a.
x_ == b.x_ && a.
y_ == b.y_ && a.
id_ == b.id_;
92 return std::all_of(items1.begin(), items1.end(),
94 return std::any_of(items2.begin(), items2.end(),
95 [&](const OverworldItem& other) {
96 return is_same_item(it, other);
102 std::vector<OverworldItem> item_array2) {
103 if (item_array1.size() != item_array2.size()) {
108 for (
size_t i = 0; i < item_array1.size(); i++) {
110 for (
size_t j = 0; j < item_array2.size(); j++) {
112 if (item_array1[i].x_ == item_array2[j].x_ &&
113 item_array1[i].y_ == item_array2[j].y_ &&
114 item_array1[i].id_ == item_array2[j].id_) {
128absl::StatusOr<std::vector<OverworldItem>> LoadItems(
Rom* rom, std::vector<OverworldMap>& overworld_maps);
129absl::Status SaveItems(
Rom* rom,
const std::vector<OverworldItem>& items);
The Rom class is used to load, save, and modify Rom data.
Base class for all overworld and dungeon entities.
enum yaze::zelda3::GameEntity::EntityType entity_type_
void UpdateMapProperties(uint16_t room_map_id) override
OverworldItem(uint8_t id, uint16_t room_map_id, int x, int y, bool bg2)
constexpr int kOverworldItemsBank
constexpr int overworldItemsPointersNew
bool CompareOverworldItems(const std::vector< OverworldItem > &items1, const std::vector< OverworldItem > &items2)
constexpr int overworldItemsAddressBank
constexpr int kNumOverworldMapItemPointers
constexpr int kOverworldItemsAddress
bool CompareItemsArrays(std::vector< OverworldItem > item_array1, std::vector< OverworldItem > item_array2)
constexpr int kOverworldItemsEndData
const std::vector< std::string > kSecretItemNames
constexpr int kOverworldItemsStartDataNew
constexpr int overworldItemsAddress
constexpr int overworldItemsEndData
constexpr int overworldItemsPointers
constexpr int kOverworldItemsPointers
constexpr int overworldItemsStartDataNew
constexpr int kOverworldBombDoorItemLocationsNew
constexpr int overworldBombDoorItemLocationsNew
constexpr int kOverworldItemsPointersNew
Main namespace for the application.