yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::project::YazeProject Struct Reference

Modern project structure with comprehensive settings consolidation. More...

#include <project.h>

Classes

struct  AgentSettings
 
struct  MusicPersistence
 

Public Member Functions

absl::Status Create (const std::string &project_name, const std::string &base_path)
 
absl::Status Open (const std::string &project_path)
 
absl::Status LoadFromString (const std::string &content, const std::string &project_path)
 
absl::Status Save ()
 
absl::Status SaveNew ()
 
absl::Status SaveAs (const std::string &new_path)
 
absl::Status ImportZScreamProject (const std::string &zscream_project_path)
 
absl::Status ExportForZScream (const std::string &target_path)
 
absl::Status LoadAllSettings ()
 
absl::Status SaveAllSettings ()
 
absl::Status ResetToDefaults ()
 
absl::Status InitializeEmbeddedLabels (const std::unordered_map< std::string, std::unordered_map< std::string, std::string > > &labels)
 
std::string GetLabel (const std::string &resource_type, int id, const std::string &default_value="") const
 
absl::Status ImportLabelsFromZScream (const std::string &filepath)
 Import labels from a ZScream DefaultNames.txt file.
 
absl::Status ImportLabelsFromZScreamContent (const std::string &content)
 Import labels from ZScream format content directly.
 
void InitializeResourceLabelProvider ()
 Initialize the global ResourceLabelProvider with this project's labels.
 
absl::Status Validate () const
 
std::vector< std::string > GetMissingFiles () const
 
absl::Status RepairProject ()
 
void NormalizePathsToAbsolute ()
 
std::string GetDisplayName () const
 
std::string GetRelativePath (const std::string &absolute_path) const
 
std::string GetAbsolutePath (const std::string &relative_path) const
 
bool IsEmpty () const
 
std::string MakeStorageKey (absl::string_view suffix) const
 
bool project_opened () const
 
void ReloadHackManifest ()
 
void ReloadZ3dkSettings ()
 
bool HasZ3dkConfig () const
 
std::string GetZ3dkArtifactPath (absl::string_view artifact_name) const
 

Static Public Member Functions

static std::string ResolveBundleRoot (const std::string &path)
 

Public Attributes

ProjectMetadata metadata
 
std::string name
 
std::string filepath
 
ProjectFormat format = ProjectFormat::kYazeNative
 
std::string rom_filename
 
std::string rom_backup_folder
 
std::vector< std::string > additional_roms
 
RomMetadata rom_metadata
 
std::string code_folder
 
std::string assets_folder
 
std::string patches_folder
 
std::string labels_filename
 
std::string symbols_filename
 
std::string custom_objects_folder
 
std::string hack_manifest_file
 
std::unordered_map< int, std::vector< std::string > > custom_object_files
 
core::FeatureFlags::Flags feature_flags
 
WorkspaceSettings workspace_settings
 
DungeonOverlaySettings dungeon_overlay
 
core::RomAddressOverrides rom_address_overrides
 
std::unordered_map< std::string, std::unordered_map< std::string, std::string > > resource_labels
 
bool use_embedded_labels = true
 
core::HackManifest hack_manifest
 
Z3dkSettings z3dk_settings
 
std::string build_script
 
std::string output_folder
 
std::vector< std::string > build_configurations
 
std::string build_target
 
std::string asm_entry_point
 
std::vector< std::string > asm_sources
 
std::string git_repository
 
bool track_changes = true
 
std::string last_build_hash
 
int build_number = 0
 
struct yaze::project::YazeProject::AgentSettings agent_settings
 
std::string zscream_project_file
 
std::map< std::string, std::string > zscream_mappings
 
struct yaze::project::YazeProject::MusicPersistence music_persistence
 

Private Member Functions

absl::StatusOr< std::string > SerializeToString () const
 
absl::Status ParseFromString (const std::string &content)
 
absl::Status LoadFromYazeFormat (const std::string &project_path)
 
absl::Status SaveToYazeFormat (bool replace_existing=true)
 
absl::Status ImportFromZScreamFormat (const std::string &project_path)
 
void InitializeDefaults ()
 
void TryLoadZ3dkConfig ()
 
void TryLoadHackManifest ()
 
std::string GenerateProjectId () const
 

Detailed Description

Modern project structure with comprehensive settings consolidation.

Definition at line 172 of file project.h.

Member Function Documentation

◆ ResolveBundleRoot()

std::string yaze::project::YazeProject::ResolveBundleRoot ( const std::string & path)
static

◆ Create()

◆ Open()

absl::Status yaze::project::YazeProject::Open ( const std::string & project_path)

◆ LoadFromString()

absl::Status yaze::project::YazeProject::LoadFromString ( const std::string & content,
const std::string & project_path )

◆ Save()

◆ SaveNew()

absl::Status yaze::project::YazeProject::SaveNew ( )

Definition at line 591 of file project.cc.

References SaveToYazeFormat().

Referenced by yaze::editor::ProjectManager::FinalizeProjectCreation().

Here is the call graph for this function:

◆ SaveAs()

absl::Status yaze::project::YazeProject::SaveAs ( const std::string & new_path)

Definition at line 626 of file project.cc.

References filepath, and Save().

Referenced by yaze::editor::ProjectManager::SaveProjectToFile().

Here is the call graph for this function:

◆ ImportZScreamProject()

absl::Status yaze::project::YazeProject::ImportZScreamProject ( const std::string & zscream_project_path)
Todo
Implement actual ZScream format parsing when format is known

Definition at line 1294 of file project.cc.

References format, InitializeDefaults(), yaze::project::kZScreamCompat, name, zscream_mappings, and zscream_project_file.

Referenced by yaze::editor::ProjectManager::ImportProject().

Here is the call graph for this function:

◆ ExportForZScream()

absl::Status yaze::project::YazeProject::ExportForZScream ( const std::string & target_path)

◆ LoadAllSettings()

absl::Status yaze::project::YazeProject::LoadAllSettings ( )

Definition at line 1339 of file project.cc.

References filepath, and LoadFromYazeFormat().

Here is the call graph for this function:

◆ SaveAllSettings()

absl::Status yaze::project::YazeProject::SaveAllSettings ( )

Definition at line 1345 of file project.cc.

References SaveToYazeFormat().

Here is the call graph for this function:

◆ ResetToDefaults()

absl::Status yaze::project::YazeProject::ResetToDefaults ( )

Definition at line 1350 of file project.cc.

References InitializeDefaults(), and Save().

Here is the call graph for this function:

◆ InitializeEmbeddedLabels()

absl::Status yaze::project::YazeProject::InitializeEmbeddedLabels ( const std::unordered_map< std::string, std::unordered_map< std::string, std::string > > & labels)

◆ GetLabel()

std::string yaze::project::YazeProject::GetLabel ( const std::string & resource_type,
int id,
const std::string & default_value = "" ) const

Definition at line 2439 of file project.cc.

References resource_labels.

◆ ImportLabelsFromZScream()

absl::Status yaze::project::YazeProject::ImportLabelsFromZScream ( const std::string & filepath)

Import labels from a ZScream DefaultNames.txt file.

Parameters
filepathPath to the DefaultNames.txt file
Returns
Status indicating success or parse errors

Definition at line 2454 of file project.cc.

References filepath, and ImportLabelsFromZScreamContent().

Here is the call graph for this function:

◆ ImportLabelsFromZScreamContent()

absl::Status yaze::project::YazeProject::ImportLabelsFromZScreamContent ( const std::string & content)

Import labels from ZScream format content directly.

Parameters
contentThe file content to parse
Returns
Status indicating success or parse errors

Definition at line 2474 of file project.cc.

References yaze::zelda3::GetResourceLabels(), LOG_DEBUG, yaze::project::WorkspaceSettings::prefer_hmagic_names, resource_labels, and workspace_settings.

Referenced by ImportLabelsFromZScream().

Here is the call graph for this function:

◆ InitializeResourceLabelProvider()

void yaze::project::YazeProject::InitializeResourceLabelProvider ( )

Initialize the global ResourceLabelProvider with this project's labels.

Definition at line 2498 of file project.cc.

References yaze::zelda3::GetResourceLabels(), hack_manifest, yaze::core::HackManifest::loaded(), LOG_DEBUG, yaze::project::WorkspaceSettings::prefer_hmagic_names, resource_labels, and workspace_settings.

Referenced by yaze::editor::RenameProjectResourceLabel().

Here is the call graph for this function:

◆ Validate()

◆ GetMissingFiles()

std::vector< std::string > yaze::project::YazeProject::GetMissingFiles ( ) const

Definition at line 1400 of file project.cc.

References GetAbsolutePath(), hack_manifest_file, labels_filename, rom_filename, and symbols_filename.

Referenced by yaze::project::ProjectManager::GetRecommendedFixesForProject().

Here is the call graph for this function:

◆ RepairProject()

absl::Status yaze::project::YazeProject::RepairProject ( )

Definition at line 1425 of file project.cc.

References assets_folder, code_folder, GetAbsolutePath(), labels_filename, output_folder, patches_folder, and rom_backup_folder.

Referenced by yaze::editor::EditorManager::RepairCurrentProject().

Here is the call graph for this function:

◆ NormalizePathsToAbsolute()

void yaze::project::YazeProject::NormalizePathsToAbsolute ( )

◆ GetDisplayName()

◆ GetRelativePath()

std::string yaze::project::YazeProject::GetRelativePath ( const std::string & absolute_path) const

◆ GetAbsolutePath()

◆ IsEmpty()

bool yaze::project::YazeProject::IsEmpty ( ) const

Definition at line 1539 of file project.cc.

References code_folder, name, and rom_filename.

◆ MakeStorageKey()

◆ project_opened()

bool yaze::project::YazeProject::project_opened ( ) const
inline

Definition at line 348 of file project.h.

References filepath, and name.

Referenced by yaze::editor::EditorManager::ApplyCurrentProjectRuntimeContext(), yaze::editor::anonymous_namespace{dungeon_canvas_issue_report.cc}::BuildReportSessionSummary(), yaze::editor::RomLifecycleManager::CheckOracleRomSafetyPreSave(), yaze::editor::RomLifecycleManager::CheckRomOpenPolicy(), yaze::editor::RomLifecycleManager::CheckRomWritePolicy(), yaze::editor::EditorManager::CreateNewProjectFromRom(), yaze::editor::MinecartTrackEditorPanel::Draw(), yaze::editor::EditorManager::DrawInterface(), yaze::editor::dungeon_project_labels::FindDungeonForRoom(), yaze::editor::EditorManager::HandleSessionCreated(), yaze::editor::EditorManager::InitializeSubsystems(), yaze::editor::RomLifecycleManager::IsRomHashMismatch(), yaze::editor::EditorManager::PrepareRawProjectFileSave(), yaze::editor::EditorManager::RefreshResourceLabelProvider(), yaze::editor::UICoordinator::RefreshWorkflowActions(), yaze::editor::EditorManager::ReloadProjectRom(), yaze::editor::RenameProjectResourceLabel(), yaze::editor::EditorManager::RepairCurrentProject(), yaze::editor::EditorManager::ResolveProjectBuildCommand(), yaze::editor::EditorManager::ResolveProjectRunTarget(), yaze::editor::EditorManager::SaveActiveProjectEditingWork(), yaze::editor::EditorManager::SaveProject(), yaze::editor::EditorManager::SaveProjectAs(), yaze::editor::EditorManager::SaveRomInternal(), yaze::editor::EditorManager::SwapProjectRom(), yaze::editor::EditorManager::SyncLayoutScopeFromCurrentProject(), and yaze::editor::EditorManager::UpdateSystemUIs().

◆ ReloadHackManifest()

void yaze::project::YazeProject::ReloadHackManifest ( )

Definition at line 1557 of file project.cc.

References TryLoadHackManifest().

Referenced by yaze::editor::ManifestPanel::DrawManifestStatus(), and yaze::editor::SettingsPanel::DrawProjectSettings().

Here is the call graph for this function:

◆ ReloadZ3dkSettings()

void yaze::project::YazeProject::ReloadZ3dkSettings ( )

Definition at line 1561 of file project.cc.

References TryLoadZ3dkConfig().

Here is the call graph for this function:

◆ HasZ3dkConfig()

bool yaze::project::YazeProject::HasZ3dkConfig ( ) const
inline

Definition at line 353 of file project.h.

References yaze::project::Z3dkSettings::loaded, and z3dk_settings.

◆ GetZ3dkArtifactPath()

◆ SerializeToString()

absl::StatusOr< std::string > yaze::project::YazeProject::SerializeToString ( ) const
private

Definition at line 654 of file project.cc.

References additional_roms, yaze::core::RomAddressOverrides::addresses, agent_settings, yaze::project::YazeProject::AgentSettings::ai_model, yaze::project::YazeProject::AgentSettings::ai_provider, asm_entry_point, asm_sources, assets_folder, yaze::project::ProjectMetadata::author, yaze::project::WorkspaceSettings::autosave_enabled, yaze::project::WorkspaceSettings::autosave_interval_secs, yaze::project::WorkspaceSettings::backup_keep_daily, yaze::project::WorkspaceSettings::backup_keep_daily_days, yaze::project::WorkspaceSettings::backup_on_save, yaze::project::WorkspaceSettings::backup_retention_count, build_configurations, build_number, build_script, build_target, yaze::project::YazeProject::AgentSettings::builder_blueprint_path, yaze::project::YazeProject::AgentSettings::chain_mode, code_folder, yaze::project::ProjectMetadata::created_by, yaze::project::ProjectMetadata::created_date, yaze::project::WorkspaceSettings::custom_keybindings, custom_object_files, custom_objects_folder, yaze::project::YazeProject::AgentSettings::custom_system_prompt, yaze::project::WorkspaceSettings::dark_mode, yaze::project::ProjectMetadata::description, yaze::core::FeatureFlags::Flags::dungeon, dungeon_overlay, yaze::project::WorkspaceSettings::editor_visibility, yaze::project::YazeProject::AgentSettings::enable_tool_dialogue, yaze::project::YazeProject::AgentSettings::enable_tool_dungeon, yaze::project::YazeProject::AgentSettings::enable_tool_emulator, yaze::project::YazeProject::AgentSettings::enable_tool_gui, yaze::project::YazeProject::AgentSettings::enable_tool_memory_inspector, yaze::project::YazeProject::AgentSettings::enable_tool_messages, yaze::project::YazeProject::AgentSettings::enable_tool_music, yaze::project::YazeProject::AgentSettings::enable_tool_overworld, yaze::project::YazeProject::AgentSettings::enable_tool_resources, yaze::project::YazeProject::AgentSettings::enable_tool_sprite, yaze::project::RomMetadata::expected_hash, yaze::project::YazeProject::AgentSettings::favorite_models, feature_flags, yaze::project::WorkspaceSettings::font_global_scale, yaze::project::YazeProject::AgentSettings::gemini_api_key, GetRelativePath(), git_repository, hack_manifest_file, yaze::core::FeatureFlags::Flags::Overworld::kApplyZSCustomOverworldASM, yaze::core::FeatureFlags::Flags::kEnableCustomObjects, yaze::core::FeatureFlags::Flags::Overworld::kLoadCustomOverworld, yaze::core::FeatureFlags::Flags::kSaveAllPalettes, yaze::core::FeatureFlags::Flags::Dungeon::kSaveBlocks, yaze::core::FeatureFlags::Flags::Dungeon::kSaveChests, yaze::core::FeatureFlags::Flags::Dungeon::kSaveCollision, yaze::core::FeatureFlags::Flags::kSaveDungeonMaps, yaze::core::FeatureFlags::Flags::Dungeon::kSaveEntrances, yaze::core::FeatureFlags::Flags::kSaveGfxGroups, yaze::core::FeatureFlags::Flags::kSaveGraphicsSheet, yaze::core::FeatureFlags::Flags::kSaveMessages, yaze::core::FeatureFlags::Flags::Dungeon::kSaveObjects, yaze::core::FeatureFlags::Flags::Overworld::kSaveOverworldEntrances, yaze::core::FeatureFlags::Flags::Overworld::kSaveOverworldExits, yaze::core::FeatureFlags::Flags::Overworld::kSaveOverworldItems, yaze::core::FeatureFlags::Flags::Overworld::kSaveOverworldMaps, yaze::core::FeatureFlags::Flags::Overworld::kSaveOverworldProperties, yaze::core::FeatureFlags::Flags::Dungeon::kSavePalettes, yaze::core::FeatureFlags::Flags::Dungeon::kSavePits, yaze::core::FeatureFlags::Flags::Dungeon::kSavePotItems, yaze::core::FeatureFlags::Flags::Dungeon::kSaveRoomHeaders, yaze::core::FeatureFlags::Flags::Dungeon::kSaveSprites, yaze::core::FeatureFlags::Flags::Dungeon::kSaveTorches, labels_filename, last_build_hash, yaze::project::WorkspaceSettings::last_layout_preset, yaze::project::ProjectMetadata::last_modified, yaze::project::YazeProject::MusicPersistence::last_saved_at, yaze::project::ProjectMetadata::license, yaze::project::YazeProject::AgentSettings::max_output_tokens, yaze::project::YazeProject::AgentSettings::max_retry_attempts, yaze::project::YazeProject::AgentSettings::max_tool_iterations, metadata, yaze::project::DungeonOverlaySettings::minecart_sprite_ids, yaze::project::YazeProject::AgentSettings::model_chain, music_persistence, name, yaze::project::YazeProject::AgentSettings::ollama_host, output_folder, yaze::core::FeatureFlags::Flags::overworld, patches_folder, yaze::project::YazeProject::MusicPersistence::persist_custom_music, yaze::project::WorkspaceSettings::prefer_hmagic_names, yaze::project::ProjectMetadata::project_id, yaze::project::WorkspaceSettings::recent_files, resource_labels, yaze::project::RomMetadata::role, rom_address_overrides, rom_backup_folder, rom_filename, rom_metadata, yaze::project::RomRoleToString(), yaze::project::RomWritePolicyToString(), yaze::project::WorkspaceSettings::saved_layouts, yaze::project::WorkspaceSettings::show_collision, yaze::project::WorkspaceSettings::show_grid, yaze::project::YazeProject::AgentSettings::show_reasoning, yaze::project::YazeProject::MusicPersistence::storage_key, yaze::project::YazeProject::AgentSettings::stream_responses, symbols_filename, yaze::project::ProjectMetadata::tags, yaze::project::YazeProject::AgentSettings::temperature, yaze::project::YazeProject::AgentSettings::top_p, track_changes, yaze::project::DungeonOverlaySettings::track_object_ids, yaze::project::DungeonOverlaySettings::track_stop_tiles, yaze::project::DungeonOverlaySettings::track_switch_tiles, yaze::project::DungeonOverlaySettings::track_tiles, yaze::project::WorkspaceSettings::ui_theme, yaze::project::YazeProject::AgentSettings::use_custom_prompt, yaze::project::YazeProject::AgentSettings::verbose, yaze::project::ProjectMetadata::version, workspace_settings, yaze::project::RomMetadata::write_policy, yaze::project::ProjectMetadata::yaze_version, zscream_mappings, and zscream_project_file.

Referenced by SaveToYazeFormat().

Here is the call graph for this function:

◆ ParseFromString()

absl::Status yaze::project::YazeProject::ParseFromString ( const std::string & content)
private

Definition at line 951 of file project.cc.

References additional_roms, yaze::core::RomAddressOverrides::addresses, agent_settings, yaze::project::YazeProject::AgentSettings::ai_model, yaze::project::YazeProject::AgentSettings::ai_provider, asm_entry_point, asm_sources, assets_folder, yaze::project::ProjectMetadata::author, yaze::project::WorkspaceSettings::autosave_enabled, yaze::project::WorkspaceSettings::autosave_interval_secs, yaze::project::WorkspaceSettings::backup_keep_daily, yaze::project::WorkspaceSettings::backup_keep_daily_days, yaze::project::WorkspaceSettings::backup_on_save, yaze::project::WorkspaceSettings::backup_retention_count, build_configurations, build_number, build_script, build_target, yaze::project::YazeProject::AgentSettings::builder_blueprint_path, yaze::project::YazeProject::AgentSettings::chain_mode, code_folder, yaze::project::ProjectMetadata::created_by, yaze::project::ProjectMetadata::created_date, yaze::project::WorkspaceSettings::custom_keybindings, custom_object_files, custom_objects_folder, yaze::project::YazeProject::AgentSettings::custom_system_prompt, yaze::project::WorkspaceSettings::dark_mode, yaze::project::ProjectMetadata::description, yaze::core::FeatureFlags::Flags::dungeon, dungeon_overlay, yaze::project::WorkspaceSettings::editor_visibility, yaze::project::YazeProject::AgentSettings::enable_tool_dialogue, yaze::project::YazeProject::AgentSettings::enable_tool_dungeon, yaze::project::YazeProject::AgentSettings::enable_tool_emulator, yaze::project::YazeProject::AgentSettings::enable_tool_gui, yaze::project::YazeProject::AgentSettings::enable_tool_memory_inspector, yaze::project::YazeProject::AgentSettings::enable_tool_messages, yaze::project::YazeProject::AgentSettings::enable_tool_music, yaze::project::YazeProject::AgentSettings::enable_tool_overworld, yaze::project::YazeProject::AgentSettings::enable_tool_resources, yaze::project::YazeProject::AgentSettings::enable_tool_sprite, yaze::project::RomMetadata::expected_hash, yaze::project::YazeProject::AgentSettings::favorite_models, feature_flags, yaze::project::WorkspaceSettings::font_global_scale, yaze::project::YazeProject::AgentSettings::gemini_api_key, GenerateProjectId(), git_repository, hack_manifest_file, yaze::core::FeatureFlags::Flags::Overworld::kApplyZSCustomOverworldASM, yaze::core::FeatureFlags::Flags::kEnableCustomObjects, yaze::core::FeatureFlags::Flags::Overworld::kLoadCustomOverworld, yaze::core::FeatureFlags::Flags::kSaveAllPalettes, yaze::core::FeatureFlags::Flags::Dungeon::kSaveBlocks, yaze::core::FeatureFlags::Flags::Dungeon::kSaveChests, yaze::core::FeatureFlags::Flags::Dungeon::kSaveCollision, yaze::core::FeatureFlags::Flags::kSaveDungeonMaps, yaze::core::FeatureFlags::Flags::Dungeon::kSaveEntrances, yaze::core::FeatureFlags::Flags::kSaveGfxGroups, yaze::core::FeatureFlags::Flags::kSaveGraphicsSheet, yaze::core::FeatureFlags::Flags::kSaveMessages, yaze::core::FeatureFlags::Flags::Dungeon::kSaveObjects, yaze::core::FeatureFlags::Flags::Overworld::kSaveOverworldEntrances, yaze::core::FeatureFlags::Flags::Overworld::kSaveOverworldExits, yaze::core::FeatureFlags::Flags::Overworld::kSaveOverworldItems, yaze::core::FeatureFlags::Flags::Overworld::kSaveOverworldMaps, yaze::core::FeatureFlags::Flags::Overworld::kSaveOverworldProperties, yaze::core::FeatureFlags::Flags::Dungeon::kSavePalettes, yaze::core::FeatureFlags::Flags::Dungeon::kSavePits, yaze::core::FeatureFlags::Flags::Dungeon::kSavePotItems, yaze::core::FeatureFlags::Flags::Dungeon::kSaveRoomHeaders, yaze::core::FeatureFlags::Flags::Dungeon::kSaveSprites, yaze::core::FeatureFlags::Flags::Dungeon::kSaveTorches, labels_filename, last_build_hash, yaze::project::WorkspaceSettings::last_layout_preset, yaze::project::ProjectMetadata::last_modified, yaze::project::YazeProject::MusicPersistence::last_saved_at, yaze::project::ProjectMetadata::license, MakeStorageKey(), yaze::project::YazeProject::AgentSettings::max_output_tokens, yaze::project::YazeProject::AgentSettings::max_retry_attempts, yaze::project::YazeProject::AgentSettings::max_tool_iterations, metadata, yaze::project::DungeonOverlaySettings::minecart_sprite_ids, yaze::project::YazeProject::AgentSettings::model_chain, music_persistence, name, yaze::project::YazeProject::AgentSettings::ollama_host, output_folder, yaze::core::FeatureFlags::Flags::overworld, yaze::project::ParseRomRole(), yaze::project::ParseRomWritePolicy(), patches_folder, yaze::project::YazeProject::MusicPersistence::persist_custom_music, yaze::project::WorkspaceSettings::prefer_hmagic_names, yaze::project::ProjectMetadata::project_id, yaze::project::WorkspaceSettings::recent_files, resource_labels, yaze::project::RomMetadata::role, rom_address_overrides, rom_backup_folder, rom_filename, rom_metadata, yaze::project::WorkspaceSettings::saved_layouts, yaze::project::WorkspaceSettings::show_collision, yaze::project::WorkspaceSettings::show_grid, yaze::project::YazeProject::AgentSettings::show_reasoning, yaze::project::YazeProject::MusicPersistence::storage_key, yaze::project::YazeProject::AgentSettings::stream_responses, symbols_filename, yaze::project::ProjectMetadata::tags, yaze::project::YazeProject::AgentSettings::temperature, yaze::project::YazeProject::AgentSettings::top_p, track_changes, yaze::project::DungeonOverlaySettings::track_object_ids, yaze::project::DungeonOverlaySettings::track_stop_tiles, yaze::project::DungeonOverlaySettings::track_switch_tiles, yaze::project::DungeonOverlaySettings::track_tiles, yaze::project::WorkspaceSettings::ui_theme, yaze::project::YazeProject::AgentSettings::use_custom_prompt, yaze::project::YazeProject::AgentSettings::verbose, yaze::project::ProjectMetadata::version, workspace_settings, yaze::project::RomMetadata::write_policy, yaze::project::ProjectMetadata::yaze_version, zscream_mappings, and zscream_project_file.

Referenced by LoadFromString(), LoadFromYazeFormat(), and Open().

Here is the call graph for this function:

◆ LoadFromYazeFormat()

absl::Status yaze::project::YazeProject::LoadFromYazeFormat ( const std::string & project_path)
private

Definition at line 1240 of file project.cc.

References MakeStorageKey(), and ParseFromString().

Referenced by LoadAllSettings(), and Open().

Here is the call graph for this function:

◆ SaveToYazeFormat()

absl::Status yaze::project::YazeProject::SaveToYazeFormat ( bool replace_existing = true)
private

◆ ImportFromZScreamFormat()

absl::Status yaze::project::YazeProject::ImportFromZScreamFormat ( const std::string & project_path)
private
Todo
Implement ZScream format parsing when format specification is

Definition at line 1543 of file project.cc.

References InitializeDefaults(), name, and zscream_project_file.

Referenced by Open().

Here is the call graph for this function:

◆ InitializeDefaults()

void yaze::project::YazeProject::InitializeDefaults ( )
private

Definition at line 1881 of file project.cc.

References asm_entry_point, asm_sources, yaze::project::WorkspaceSettings::autosave_enabled, yaze::project::WorkspaceSettings::autosave_interval_secs, yaze::project::WorkspaceSettings::backup_keep_daily, yaze::project::WorkspaceSettings::backup_keep_daily_days, yaze::project::WorkspaceSettings::backup_on_save, yaze::project::WorkspaceSettings::backup_retention_count, build_configurations, build_number, build_target, yaze::project::ProjectMetadata::created_by, yaze::project::WorkspaceSettings::dark_mode, yaze::core::FeatureFlags::Flags::dungeon, dungeon_overlay, yaze::project::RomMetadata::expected_hash, feature_flags, yaze::project::WorkspaceSettings::font_global_scale, GenerateProjectId(), yaze::core::FeatureFlags::Flags::Overworld::kApplyZSCustomOverworldASM, yaze::project::kDev, yaze::core::FeatureFlags::Flags::Overworld::kLoadCustomOverworld, yaze::core::FeatureFlags::Flags::Dungeon::kSaveBlocks, yaze::core::FeatureFlags::Flags::Dungeon::kSaveChests, yaze::core::FeatureFlags::Flags::Dungeon::kSaveCollision, yaze::core::FeatureFlags::Flags::kSaveDungeonMaps, yaze::core::FeatureFlags::Flags::Dungeon::kSaveEntrances, yaze::core::FeatureFlags::Flags::kSaveGraphicsSheet, yaze::core::FeatureFlags::Flags::Dungeon::kSaveObjects, yaze::core::FeatureFlags::Flags::Dungeon::kSavePalettes, yaze::core::FeatureFlags::Flags::Dungeon::kSavePits, yaze::core::FeatureFlags::Flags::Dungeon::kSavePotItems, yaze::core::FeatureFlags::Flags::Dungeon::kSaveRoomHeaders, yaze::core::FeatureFlags::Flags::Dungeon::kSaveSprites, yaze::core::FeatureFlags::Flags::Dungeon::kSaveTorches, yaze::project::kWarn, last_build_hash, yaze::project::YazeProject::MusicPersistence::last_saved_at, MakeStorageKey(), metadata, yaze::project::DungeonOverlaySettings::minecart_sprite_ids, music_persistence, yaze::core::FeatureFlags::Flags::overworld, yaze::project::YazeProject::MusicPersistence::persist_custom_music, yaze::project::ProjectMetadata::project_id, yaze::project::RomMetadata::role, rom_metadata, yaze::project::WorkspaceSettings::show_collision, yaze::project::WorkspaceSettings::show_grid, yaze::project::YazeProject::MusicPersistence::storage_key, track_changes, yaze::project::DungeonOverlaySettings::track_object_ids, yaze::project::DungeonOverlaySettings::track_stop_tiles, yaze::project::DungeonOverlaySettings::track_switch_tiles, yaze::project::DungeonOverlaySettings::track_tiles, yaze::project::WorkspaceSettings::ui_theme, workspace_settings, and yaze::project::RomMetadata::write_policy.

Referenced by Create(), ImportFromZScreamFormat(), ImportZScreamProject(), Open(), and ResetToDefaults().

Here is the call graph for this function:

◆ TryLoadZ3dkConfig()

void yaze::project::YazeProject::TryLoadZ3dkConfig ( )
private

Definition at line 1584 of file project.cc.

References yaze::project::Z3dkArtifactPaths::annotations_json, yaze::project::Z3dkSettings::artifact_paths, code_folder, yaze::project::Z3dkSettings::config_path, yaze::project::Z3dkSettings::defines, yaze::project::Z3dkSettings::emits, filepath, GetZ3dkArtifactPath(), hack_manifest_file, yaze::project::Z3dkArtifactPaths::hooks_json, yaze::project::Z3dkSettings::include_paths, yaze::project::Z3dkArtifactPaths::lint_json, yaze::project::Z3dkSettings::loaded, LOG_INFO, LOG_WARN, yaze::project::Z3dkSettings::lsp_log_enabled, yaze::project::Z3dkSettings::lsp_log_path, yaze::project::Z3dkSettings::main_files, yaze::project::Z3dkSettings::mapper, yaze::project::Z3dkSettings::preset, yaze::project::Z3dkSettings::prohibited_memory_ranges, yaze::project::Z3dkSettings::rom_path, yaze::project::Z3dkSettings::rom_size, yaze::project::Z3dkArtifactPaths::sourcemap_json, yaze::project::Z3dkSettings::std_defines_path, yaze::project::Z3dkSettings::std_includes_path, yaze::project::Z3dkSettings::symbols_format, yaze::project::Z3dkArtifactPaths::symbols_mlb, yaze::project::Z3dkSettings::symbols_path, yaze::project::Z3dkSettings::warn_branch_outside_bank, yaze::project::Z3dkSettings::warn_hook_return, yaze::project::Z3dkSettings::warn_org_collision, yaze::project::Z3dkSettings::warn_stack_balance, yaze::project::Z3dkSettings::warn_unauthorized_hook, yaze::project::Z3dkSettings::warn_unknown_width, yaze::project::Z3dkSettings::warn_unused_symbols, and z3dk_settings.

Referenced by LoadFromString(), Open(), and ReloadZ3dkSettings().

Here is the call graph for this function:

◆ TryLoadHackManifest()

◆ GenerateProjectId()

std::string yaze::project::YazeProject::GenerateProjectId ( ) const
private

Definition at line 1950 of file project.cc.

Referenced by Create(), InitializeDefaults(), Open(), and ParseFromString().

Member Data Documentation

◆ metadata

◆ name

◆ filepath

std::string yaze::project::YazeProject::filepath

Definition at line 176 of file project.h.

Referenced by yaze::project::ProjectManager::BackupProject(), yaze::core::VersionManager::BackupRomArtifact(), yaze::editor::anonymous_namespace{dungeon_canvas_issue_report.cc}::BuildReportSessionSummary(), yaze::editor::EditorManager::CommitRawProjectFileSave(), Create(), yaze::editor::ProjectManager::CreateFromTemplate(), yaze::editor::ProjectManager::CreateNewProject(), yaze::editor::ProjectManagementPanel::DrawProjectOverview(), yaze::editor::SettingsPanel::DrawProjectSettings(), yaze::editor::EditorManager::FinalizeNewProject(), yaze::editor::ProjectManager::FinalizeProjectCreation(), GetAbsolutePath(), yaze::cli::agent::tools::ProjectGraphTool::GetProjectInfo(), yaze::editor::ProjectManager::GetProjectPath(), GetRelativePath(), GetZ3dkArtifactPath(), yaze::editor::ProjectManager::HasActiveProject(), ImportLabelsFromZScream(), LoadAllSettings(), LoadFromString(), yaze::editor::EditorManager::LoadProjectWithRom(), MakeStorageKey(), NormalizePathsToAbsolute(), Open(), yaze::editor::EditorManager::PrepareRawProjectFileSave(), project_opened(), yaze::editor::EditorManager::ProjectFileDraftTargetsCurrentProject(), yaze::editor::EditorManager::QueueBuildCurrentProject(), yaze::core::VersionManager::RunCommand(), yaze::core::VersionManager::RunCommandOutput(), yaze::editor::EditorManager::RunProjectBuildCommand(), yaze::editor::EditorManager::SaveActiveProjectEditingWork(), SaveAs(), yaze::editor::EditorManager::SaveProject(), yaze::editor::ProjectManager::SaveProject(), yaze::editor::EditorManager::SaveProjectAs(), SaveToYazeFormat(), yaze::editor::EditorManager::SetupWelcomeScreenCallbacks(), yaze::editor::EditorManager::ShowProjectFileEditor(), yaze::editor::EditorManager::SwapProjectRom(), TryLoadHackManifest(), TryLoadZ3dkConfig(), and Validate().

◆ format

◆ rom_filename

◆ rom_backup_folder

◆ additional_roms

std::vector<std::string> yaze::project::YazeProject::additional_roms

Definition at line 182 of file project.h.

Referenced by NormalizePathsToAbsolute(), ParseFromString(), and SerializeToString().

◆ rom_metadata

◆ code_folder

◆ assets_folder

◆ patches_folder

std::string yaze::project::YazeProject::patches_folder

◆ labels_filename

◆ symbols_filename

◆ custom_objects_folder

◆ hack_manifest_file

◆ custom_object_files

◆ feature_flags

◆ workspace_settings

◆ dungeon_overlay

◆ rom_address_overrides

◆ resource_labels

◆ use_embedded_labels

◆ hack_manifest

core::HackManifest yaze::project::YazeProject::hack_manifest

Definition at line 212 of file project.h.

Referenced by yaze::editor::RomLifecycleManager::CheckOracleRomSafetyPreSave(), yaze::editor::anonymous_namespace{dungeon_editor_v2_persistence.cc}::CollectDirtyPotItemWriteRanges(), yaze::editor::DungeonEditorV2::CollectWriteRanges(), yaze::editor::FeatureFlagEditorPanel::Draw(), yaze::editor::ManifestPanel::DrawManifestStatus(), yaze::editor::SettingsPanel::DrawProjectSettings(), yaze::editor::ManifestPanel::DrawProtectedRegions(), yaze::editor::RoomTagEditorPanel::DrawQuickAssign(), yaze::editor::RoomTagEditorPanel::DrawTagTable(), yaze::cli::handlers::ProjectBundleVerifyCommandHandler::Execute(), yaze::editor::dungeon_project_labels::FindDungeonForRoom(), yaze::editor::anonymous_namespace{rom_lifecycle_manager.cc}::GetBuildOutputProjectRomPath(), yaze::editor::anonymous_namespace{rom_lifecycle_manager.cc}::GetEditableProjectRomPath(), InitializeResourceLabelProvider(), yaze::editor::SramViewerPanel::LoadVariablesFromManifest(), yaze::editor::workflow::anonymous_namespace{hack_workflow_backend_factory.cc}::LooksLikeOracleProject(), yaze::cli::handlers::anonymous_namespace{message_commands.cc}::PreflightExpandedMutation(), yaze::editor::FeatureFlagEditorPanel::RefreshFromManifest(), yaze::editor::EditorManager::RefreshResourceLabelProvider(), yaze::editor::MessageEditor::ResolveExpandedMessageBaseId(), yaze::editor::OracleHackWorkflowBackend::ResolveManifest(), yaze::editor::workflow::ManifestOnlyHackWorkflowBackend::ResolveManifest(), yaze::editor::EditorManager::ResolveProjectBuildCommand(), yaze::editor::EditorManager::ResolveProjectRunTarget(), yaze::editor::OverworldEditor::Save(), yaze::editor::anonymous_namespace{dungeon_editor_v2_persistence.cc}::SaveAllPotItemsForProject(), yaze::editor::EditorManager::SaveRomInternal(), TryLoadHackManifest(), Validate(), yaze::editor::anonymous_namespace{dungeon_editor_v2_persistence.cc}::ValidateChestManifestConflicts(), yaze::editor::anonymous_namespace{dungeon_editor_v2_persistence.cc}::ValidateDungeonEntranceSavePreflight(), yaze::editor::anonymous_namespace{dungeon_editor_v2_persistence.cc}::ValidatePotItemManifestConflicts(), and yaze::editor::MessageEditor::ValidateSavePlan().

◆ z3dk_settings

◆ build_script

◆ output_folder

◆ build_configurations

std::vector<std::string> yaze::project::YazeProject::build_configurations

Definition at line 220 of file project.h.

Referenced by InitializeDefaults(), ParseFromString(), and SerializeToString().

◆ build_target

◆ asm_entry_point

std::string yaze::project::YazeProject::asm_entry_point

Definition at line 222 of file project.h.

Referenced by InitializeDefaults(), ParseFromString(), and SerializeToString().

◆ asm_sources

std::vector<std::string> yaze::project::YazeProject::asm_sources

Definition at line 223 of file project.h.

Referenced by InitializeDefaults(), ParseFromString(), and SerializeToString().

◆ git_repository

◆ track_changes

bool yaze::project::YazeProject::track_changes = true

◆ last_build_hash

std::string yaze::project::YazeProject::last_build_hash

◆ build_number

int yaze::project::YazeProject::build_number = 0

Definition at line 229 of file project.h.

Referenced by InitializeDefaults(), ParseFromString(), and SerializeToString().

◆ agent_settings

struct yaze::project::YazeProject::AgentSettings yaze::project::YazeProject::agent_settings

◆ zscream_project_file

std::string yaze::project::YazeProject::zscream_project_file

◆ zscream_mappings

std::map<std::string, std::string> yaze::project::YazeProject::zscream_mappings

Definition at line 267 of file project.h.

Referenced by ImportZScreamProject(), ParseFromString(), and SerializeToString().

◆ music_persistence


The documentation for this struct was generated from the following files: