overworld editor cleanup

This commit is contained in:
scawful
2025-10-17 10:50:56 -04:00
parent b27cff9642
commit 3cf2b89926
10 changed files with 906 additions and 782 deletions

View File

@@ -4,13 +4,11 @@
#include <cstdint>
#include <string>
namespace yaze {
/**
* @namespace yaze::zelda3
* @brief Zelda 3 specific classes and functions.
*/
namespace zelda3 {
namespace yaze::zelda3{
/**
* @class GameEntity
@@ -40,6 +38,7 @@ class GameEntity {
auto set_y(int y) { y_ = y; }
GameEntity() = default;
virtual ~GameEntity() {}
virtual void UpdateMapProperties(uint16_t map_id) = 0;
};
@@ -443,7 +442,6 @@ static const std::string TileTypeNames[] = {
"$FE Door X top? (unused?)",
"$FF Door X top? (unused?)"};
} // namespace zelda3
} // namespace yaze
} // namespace yaze::zelda3
#endif // YAZE_APP_ZELDA3_COMMON_H

View File

@@ -676,7 +676,6 @@ absl::Status Overworld::EnsureMapBuilt(int map_index) {
world_type = 2;
}
util::logf("Building map %d on-demand", map_index);
return overworld_maps_[map_index].BuildMap(size, game_state_, world_type,
tiles16_, GetMapTiles(world_type));
}

View File

@@ -2,20 +2,23 @@
#define YAZE_APP_DATA_OVERWORLD_H
#include <array>
#include <cstdint>
#include <vector>
#include <mutex>
#include "absl/status/status.h"
#include "absl/status/statusor.h"
#include "app/gfx/types/snes_tile.h"
#include "app/rom.h"
#include "imgui.h"
#include "zelda3/common.h"
#include "zelda3/overworld/overworld_entrance.h"
#include "zelda3/overworld/overworld_exit.h"
#include "zelda3/overworld/overworld_item.h"
#include "zelda3/overworld/overworld_map.h"
#include "zelda3/sprite/sprite.h"
namespace yaze {
namespace zelda3 {
namespace yaze::zelda3 {
constexpr int GravesYTilePos = 0x49968; // short (0x0F entries)
constexpr int GravesXTilePos = 0x49986; // short (0x0F entries)
@@ -130,7 +133,6 @@ class Overworld {
absl::Status LoadOverworldMaps();
void LoadTileTypes();
// absl::Status LoadItems();
absl::Status LoadSprites();
absl::Status LoadSpritesFromMap(int sprite_start, int sprite_count,
int sprite_index);
@@ -365,7 +367,6 @@ class Overworld {
std::array<int, kNumOverworldMaps> map_pointers2;
};
} // namespace zelda3
} // namespace yaze
} // namespace yaze::zelda3
#endif

View File

@@ -3,9 +3,9 @@
#include "absl/status/statusor.h"
#include "app/rom.h"
#include "util/macro.h"
#include "zelda3/common.h"
#include <cstdint>
#include <vector>
#include "zelda3/overworld/overworld_map.h"
namespace yaze::zelda3 {

View File

@@ -46,7 +46,7 @@ absl::Status OverworldMap::BuildMap(int count, int game_state, int world,
// For large maps in vanilla ROMs, we need to handle special world graphics
// This ensures proper rendering of special overworld areas like Zora's Domain
if (large_map_ && asm_version == 0xFF) {
if (large_map_ && (asm_version == 0xFF || asm_version == 0x00)) {
if (parent_ != index_ && !initialized_) {
if (index_ >= kSpecialWorldMapIdStart && index_ <= 0x8A &&
index_ != 0x88) {