yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
room.cc File Reference
#include "room.h"
#include <yaze.h>
#include <algorithm>
#include <cstdint>
#include <optional>
#include <unordered_set>
#include <vector>
#include "absl/strings/str_cat.h"
#include "absl/strings/str_format.h"
#include "app/gfx/resource/arena.h"
#include "app/gfx/types/snes_palette.h"
#include "app/platform/sdl_compat.h"
#include "rom/rom.h"
#include "rom/snes.h"
#include "rom/write_fence.h"
#include "util/log.h"
#include "zelda3/dungeon/editor_dungeon_state.h"
#include "zelda3/dungeon/object_drawer.h"
#include "zelda3/dungeon/palette_debug.h"
#include "zelda3/dungeon/room_layer_manager.h"
#include "zelda3/dungeon/room_object.h"
#include "zelda3/dungeon/track_collision_generator.h"
#include "zelda3/sprite/sprite.h"

Go to the source code of this file.

Namespaces

namespace  yaze
 
namespace  yaze::zelda3
 Zelda 3 specific classes and functions.
 
namespace  yaze::zelda3::anonymous_namespace{room.cc}
 

Functions

bool yaze::zelda3::anonymous_namespace{room.cc}::RoomUsesTrackCornerAliases (const std::vector< RoomObject > &objects)
 
template<typename WriteColor >
void yaze::zelda3::anonymous_namespace{room.cc}::PopulateDungeonRenderPaletteRows (const gfx::SnesPalette &dungeon_palette, const gfx::SnesPalette *hud_palette, WriteColor write_color)
 
std::vector< SDL_Color > yaze::zelda3::BuildDungeonRenderPalette (const gfx::SnesPalette &dungeon_palette, const gfx::SnesPalette *hud_palette)
 
void yaze::zelda3::LoadDungeonRenderPaletteToCgram (std::span< uint16_t > cgram, const gfx::SnesPalette &dungeon_palette, const gfx::SnesPalette *hud_palette)
 
absl::Status yaze::zelda3::anonymous_namespace{room.cc}::GetSpritePointerTablePc (const std::vector< uint8_t > &rom_data, int *table_pc)
 
int yaze::zelda3::anonymous_namespace{room.cc}::ReadRoomSpriteAddressPc (const std::vector< uint8_t > &rom_data, int table_pc, int room_id)
 
int yaze::zelda3::anonymous_namespace{room.cc}::MeasureSpriteStreamSize (const std::vector< uint8_t > &rom_data, int sprite_address, int hard_end)
 
bool yaze::zelda3::anonymous_namespace{room.cc}::IsSpritePointerShared (const std::vector< uint8_t > &rom_data, int table_pc, int room_id, int sprite_address)
 
RoomSize yaze::zelda3::CalculateRoomSize (Rom *rom, int room_id)
 
Room yaze::zelda3::LoadRoomFromRom (Rom *rom, int room_id)
 
Room yaze::zelda3::LoadRoomHeaderFromRom (Rom *rom, int room_id)
 
int yaze::zelda3::FindMaxUsedSpriteAddress (Rom *rom)
 
absl::Status yaze::zelda3::RelocateSpriteData (Rom *rom, int room_id, const std::vector< uint8_t > &encoded_bytes)
 
std::vector< std::vector< uint8_t > > yaze::zelda3::anonymous_namespace{room.cc}::ParseRomTorchSegments (const std::vector< uint8_t > &rom_data, int bytes_count)
 
template<typename RoomLookup >
absl::Status yaze::zelda3::SaveAllTorchesImpl (Rom *rom, int room_count, RoomLookup &&room_lookup)
 
absl::Status yaze::zelda3::SaveAllTorches (Rom *rom, absl::Span< const Room > rooms)
 
absl::Status yaze::zelda3::SaveAllTorches (Rom *rom, int room_count, const std::function< const Room *(int)> &room_lookup)
 
absl::Status yaze::zelda3::SaveAllPits (Rom *rom)
 
absl::Status yaze::zelda3::SaveAllBlocks (Rom *rom)
 
template<typename RoomLookup >
absl::Status yaze::zelda3::SaveAllCollisionImpl (Rom *rom, int room_count, RoomLookup &&room_lookup)
 
absl::Status yaze::zelda3::SaveAllCollision (Rom *rom, absl::Span< Room > rooms)
 
absl::Status yaze::zelda3::SaveAllCollision (Rom *rom, int room_count, const std::function< Room *(int)> &room_lookup)
 
std::vector< std::vector< std::pair< uint8_t, bool > > > yaze::zelda3::anonymous_namespace{room.cc}::ParseRomChests (const std::vector< uint8_t > &rom_data, int cpos, int clength)
 
std::vector< std::vector< uint8_t > > yaze::zelda3::anonymous_namespace{room.cc}::ParseRomPotItems (const std::vector< uint8_t > &rom_data)
 
template<typename RoomLookup >
absl::Status yaze::zelda3::SaveAllChestsImpl (Rom *rom, int room_count, RoomLookup &&room_lookup)
 
absl::Status yaze::zelda3::SaveAllChests (Rom *rom, absl::Span< const Room > rooms)
 
absl::Status yaze::zelda3::SaveAllChests (Rom *rom, int room_count, const std::function< const Room *(int)> &room_lookup)
 
template<typename RoomLookup >
absl::Status yaze::zelda3::SaveAllPotItemsImpl (Rom *rom, int room_count, RoomLookup &&room_lookup)
 
absl::Status yaze::zelda3::SaveAllPotItems (Rom *rom, absl::Span< const Room > rooms)
 
absl::Status yaze::zelda3::SaveAllPotItems (Rom *rom, int room_count, const std::function< const Room *(int)> &room_lookup)
 

Variables

const std::string yaze::zelda3::RoomEffect [8]
 
const std::string yaze::zelda3::RoomTag [65]
 
constexpr int yaze::zelda3::kGfxBufferOffset = 92 * 2048
 
constexpr int yaze::zelda3::kGfxBufferStride = 1024
 
constexpr int yaze::zelda3::kGfxBufferAnimatedFrameOffset = 7 * 4096
 
constexpr int yaze::zelda3::kGfxBufferAnimatedFrameStride = 1024
 
constexpr int yaze::zelda3::kGfxBufferRoomOffset = 4096
 
constexpr int yaze::zelda3::kGfxBufferRoomSpriteOffset = 1024
 
constexpr int yaze::zelda3::kGfxBufferRoomSpriteStride = 4096
 
constexpr int yaze::zelda3::kGfxBufferRoomSpriteLastLineOffset = 0x110
 
constexpr int yaze::zelda3::anonymous_namespace{room.cc}::kTorchesMaxSize = 0x120