yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
dungeon_edit_commands.cc File Reference
#include "cli/handlers/game/dungeon_edit_commands.h"
#include <algorithm>
#include <cstdint>
#include <limits>
#include <optional>
#include <string>
#include <utility>
#include <vector>
#include "absl/strings/numbers.h"
#include "absl/strings/str_format.h"
#include "absl/strings/str_split.h"
#include "app/gfx/types/snes_palette.h"
#include "cli/util/hex_util.h"
#include "core/dungeon_stream_layout_adapter.h"
#include "core/hack_manifest.h"
#include "core/project.h"
#include "rom/rom.h"
#include "rom/snes.h"
#include "rom/transaction.h"
#include "rom/write_fence.h"
#include "util/macro.h"
#include "zelda3/dungeon/dungeon_stream_allocator.h"
#include "zelda3/dungeon/room.h"
#include "zelda3/dungeon/room_object.h"
#include "zelda3/dungeon/track_collision_generator.h"
#include "zelda3/game_data.h"
#include "zelda3/resource_labels.h"
#include "zelda3/sprite/sprite.h"

Go to the source code of this file.

Classes

struct  yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::ObjectSaveManifestContext
 
struct  yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::DungeonPaletteRoomMapping
 
struct  yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::DungeonPaletteSelection
 
struct  yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::DoorTypeTarget
 
struct  yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::PotItemManifestContext
 
struct  yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::PotItemEntryView
 
struct  yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::PotItemStreamView
 
struct  yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::PotItemTarget
 

Namespaces

namespace  yaze
 
namespace  yaze::cli
 Namespace for the command line interface.
 
namespace  yaze::cli::handlers
 
namespace  yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}
 

Functions

absl::StatusOr< std::string > yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::GetRequiredString (const resources::ArgumentParser &parser, const char *name)
 
absl::StatusOr< int > yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::GetRequiredInt (const resources::ArgumentParser &parser, const char *name)
 
absl::StatusOr< int > yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::GetOptionalInt (const resources::ArgumentParser &parser, const char *name, int default_value)
 
absl::Status yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::ValidateRoomId (int room_id)
 
absl::Status yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::ValidateSpriteCoord (int value, char axis)
 
absl::Status yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::SaveRomWithBackup (Rom *rom, resources::OutputFormatter &formatter)
 
template<typename Mutation >
absl::Status yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::MutateAndSaveRomWithBackup (Rom *rom, resources::OutputFormatter &formatter, Mutation &&mutation)
 
absl::StatusOr< std::optional< ObjectSaveManifestContext > > yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::LoadObjectSaveManifestContext (const resources::ArgumentParser &parser)
 
absl::Status yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::ValidateObjectSaveManifestConflicts (const Rom &source_rom, int room_id, const zelda3::Room &pending_room, const ObjectSaveManifestContext &context)
 
absl::Status yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::PreflightObjectSave (const Rom &source_rom, int room_id, const zelda3::RoomObject &object, const zelda3::Room &pending_room, const ObjectSaveManifestContext *manifest_context)
 
absl::StatusOr< int > yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::GetRequiredHex (const resources::ArgumentParser &parser, const char *name)
 
absl::Status yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::ValidateDoorType (int type, const char *argument_name)
 
bool yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::ContainsRoomId (const std::vector< uint32_t > &room_ids, int room_id)
 
bool yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::IsLoRomDataPointer (uint32_t snes_address)
 
bool yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::IsValidRomRange (const Rom &rom, uint64_t start, uint64_t length)
 
absl::Status yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::ValidateSupportedDungeonPaletteRom (const Rom &rom)
 
absl::StatusOr< uint32_t > yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::ResolveRoomHeaderPcStrict (const Rom &rom, int room_id)
 
absl::StatusOr< DungeonPaletteRoomMappingyaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::ResolveDungeonPaletteRoomMapping (const Rom &rom, int room_id)
 
absl::StatusOr< DungeonPaletteSelectionyaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::ResolveDungeonPaletteSelection (const Rom &rom, int room_id)
 
absl::Status yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::ValidateDungeonPaletteColorIndex (int color_index)
 
absl::Status yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::ValidateSnes15BitColor (int color, const char *argument_name)
 
uint32_t yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::DungeonPaletteColorPc (const DungeonPaletteRoomMapping &mapping, int color_index)
 
absl::StatusOr< uint16_t > yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::ReadDungeonPaletteColor (const Rom &rom, const DungeonPaletteRoomMapping &mapping, int color_index)
 
void yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::AddDungeonPaletteScope (resources::OutputFormatter &formatter, const DungeonPaletteSelection &selection)
 
absl::Status yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::ValidateDungeonPaletteManifestRange (const core::HackManifest &manifest, uint32_t color_pc)
 
absl::StatusOr< std::vector< uint32_t > > yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::ValidateDungeonPaletteWholeRomDiff (const std::vector< uint8_t > &before, const Rom &after, uint32_t color_pc)
 
absl::Status yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::ValidateDungeonPaletteWriteBaseline (const Rom &rom)
 
absl::Status yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::VerifyDungeonPaletteExternalReadback (const Rom &saved_rom, int room_id, int expected_palette_set, int expected_palette_index, int color_index, uint16_t expected_color)
 
absl::StatusOr< DoorTypeTargetyaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::ResolveDoorTypeTarget (Rom *rom, int room_id, int x, int y, const ObjectSaveManifestContext &manifest_context)
 
absl::StatusOr< PotItemManifestContextyaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::LoadPotItemManifestContext (const resources::ArgumentParser &parser)
 
absl::StatusOr< PotItemStreamViewyaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::ResolveRuntimePotItemStream (Rom *rom, int room_id)
 
absl::StatusOr< PotItemTargetyaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::ResolvePotItemTarget (Rom *rom, int room_id, int index, const PotItemManifestContext &manifest_context)
 

Variables

constexpr int yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::kDungeonPaletteColorCount = 90
 
constexpr int yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::kDungeonPaletteCount = gfx::DungeonsMainPalettesMax
 
constexpr uint32_t yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::kDungeonPaletteDataStart = gfx::kDungeonMainPalettes
 
constexpr uint32_t yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::kSnesDestinationCodePc = 0x7FD9
 
constexpr uint32_t yaze::cli::handlers::anonymous_namespace{dungeon_edit_commands.cc}::kDungeonPaletteDataEnd