1#ifndef YAZE_APP_EDITOR_DUNGEON_OBJECT_COVERAGE_MODEL_H_
2#define YAZE_APP_EDITOR_DUNGEON_OBJECT_COVERAGE_MODEL_H_
14#include "absl/status/status.h"
15#include "absl/status/statusor.h"
46 std::string_view key);
70 std::string
ToJson()
const;
71 static absl::StatusOr<ObjectEvidenceStore>
FromJson(std::string_view json);
75 const std::filesystem::path& path);
77 absl::Status
SaveToFile(
const std::filesystem::path& path)
const;
97 void AddRoom(
int room_id,
const std::vector<zelda3::RoomObject>& objects);
99 const std::vector<ObjectOccurrence>*
Find(
int object_id)
const;
128 std::optional<int> after_object_id);
138 const std::filesystem::path& dir);
156 void Record(
int room_id,
size_t object_index,
int object_id,
191 const std::string& rom_sha1);
215 const std::vector<zelda3::ObjectDrawCode>& draw_code,
216 const std::vector<core::ProtectedRegion>& hooks);
int rooms_compared() const
void Record(int room_id, size_t object_index, int object_id, const PlacementAutoResult &result)
const PlacementAutoResult * Find(int room_id, size_t object_index) const
const std::map< int, ObjectSummary > & summaries() const
std::map< std::pair< int, size_t >, PlacementAutoResult > placements_
std::map< int, ObjectSummary > summaries_
void RecordRoom(bool exact)
const ObjectSummary * Summary(int object_id) const
const std::string & capture_dir() const
const ObjectEvidence * Find(int object_id) const
absl::Status SaveToFile(const std::filesystem::path &path) const
static absl::StatusOr< ObjectEvidenceStore > FromJson(std::string_view json)
const std::map< int, ObjectEvidence > & entries() const
ObjectEvidenceState StateOf(int object_id) const
std::string ToJson() const
static absl::StatusOr< ObjectEvidenceStore > LoadFromFile(const std::filesystem::path &path)
std::map< int, ObjectEvidence > entries_
void set_capture_dir(std::string dir)
void Set(int object_id, ObjectEvidence evidence)
int RoomCountFor(int object_id) const
int rooms_scanned() const
const std::vector< ObjectOccurrence > * Find(int object_id) const
void AddRoom(int room_id, const std::vector< zelda3::RoomObject > &objects)
std::map< int, std::vector< ObjectOccurrence > > by_object_
Editors are the view controllers for the application.
std::optional< ObjectEvidenceState > ParseObjectEvidenceState(std::string_view key)
int ReleaseFocusGroupFor(int object_id)
absl::StatusOr< GameCaptureManifest > LoadGameCaptureManifest(const std::filesystem::path &dir)
const char * ObjectEvidenceStateLabel(ObjectEvidenceState state)
std::filesystem::path GameCaptureRoomPath(const std::filesystem::path &dir, int room_id)
bool IsPlainCaptureDir(const std::filesystem::path &dir)
const char * ObjectEvidenceStateKey(ObjectEvidenceState state)
std::string FormatObjectId(int object_id)
@ kIntentionalPreviewLimit
const std::vector< ReleaseFocusGroup > & ReleaseFocusGroups()
std::map< int, ObjectEvidence > ProposeAutomaticVerdicts(const ObjectAutoCheckResults &results, const ObjectEvidenceStore &evidence, const std::string &rom_sha1)
std::map< int, ObjectCustomDrawCode > FindObjectsWithCustomDrawCode(const std::vector< zelda3::ObjectDrawCode > &draw_code, const std::vector< core::ProtectedRegion > &hooks)
std::vector< int > OrderObjectsForReview(const std::vector< int16_t > &object_ids)
std::string SafeEvidenceFileName(std::string_view name)
std::optional< int > NextObjectToCheck(const std::vector< int > &review_order, const ObjectEvidenceStore &evidence, const ObjectUsageIndex &usage, std::optional< int > after_object_id)
constexpr ObjectEvidenceState kAllObjectEvidenceStates[]
std::vector< int > captured_rooms
std::vector< int > rooms_checked
ObjectEvidenceState state
const char * what_to_check