originaldata

package
v0.1.0-preview.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 16, 2026 License: MIT Imports: 17 Imported by: 0

Documentation

Overview

Package originaldata discovers and validates locally installed original Ultima V data.

Index

Constants

View Source
const (
	// GOGGameID is the verified GOG catalogue identifier for Ultima V.
	GOGGameID = "1207662443"
)

Variables

This section is empty.

Functions

func RecommendedDirectory

func RecommendedDirectory(host HostProfile) string

RecommendedDirectory returns the simple personal folder shown when managed installation discovery does not find a usable copy.

func StableCandidatePaths

func StableCandidatePaths(report Report) []string

StableCandidatePaths returns sorted paths for diagnostics and tests.

func ValidateInstallation

func ValidateInstallation(ctx context.Context, directory string) error

ValidateInstallation verifies an exact data directory without creating GPU resources or active gameplay state.

Types

type Candidate

type Candidate struct {
	Path   string
	Source Source
	Label  string
}

Candidate is a verified playable original-data directory.

type Detail

type Detail struct {
	Path   string
	Source Source
	Reason string
}

Detail records an existing candidate that could not be used.

type DiscoveryOptions

type DiscoveryOptions struct {
	Host                  HostProfile
	ConfiguredDirectory   string
	PreviousDataDirectory string
	AdditionalSeeds       []Seed
	Validate              ValidateFunc
}

DiscoveryOptions configures a deterministic bounded search.

type HostProfile

type HostProfile struct {
	GOOS          string
	HomeDirectory string
	Environment   map[string]string
	ProviderSeeds []Seed
}

HostProfile contains the host paths used to produce a finite discovery catalogue.

func CurrentHostProfile

func CurrentHostProfile() (HostProfile, error)

CurrentHostProfile resolves host directories once for production discovery.

type Report

type Report struct {
	Candidates           []Candidate
	Details              []Detail
	CheckedRoots         []Seed
	RecommendedDirectory string
	Cancelled            bool
}

Report is the complete stable result of one bounded search.

func Discover

func Discover(ctx context.Context, options DiscoveryOptions) Report

Discover completes the finite catalogue before returning stable verified results.

type Seed

type Seed struct {
	Path   string
	Source Source
	Label  string
}

Seed is one bounded root or installation path to inspect.

func WindowsGOGSeeds

func WindowsGOGSeeds(records []WindowsGOGRegistryRecord) []Seed

WindowsGOGSeeds converts verified registry values into discovery seeds.

type Source

type Source string

Source identifies how a candidate path was discovered.

const (
	SourceConfigured  Source = "Configured location"
	SourcePrevious    Source = "Previously used location"
	SourceGOG         Source = "GOG installation"
	SourceHeroic      Source = "Heroic installation"
	SourceCommon      Source = "Common installation location"
	SourceRecommended Source = "Recommended personal folder"
)

Discovery sources identify the finite catalogue category that produced a candidate.

type ValidateFunc

type ValidateFunc func(context.Context, string) error

ValidateFunc validates one exact original-data directory.

type WindowsGOGRegistryRecord

type WindowsGOGRegistryRecord struct {
	GamePath           string
	UninstallPath      string
	UninstallPublisher string
}

WindowsGOGRegistryRecord is the platform-neutral result of one registry-view query.

Directories

Path Synopsis
Package doom extracts deterministic semantic evidence for Doom and the finale from original Ultima V data files.
Package doom extracts deterministic semantic evidence for Doom and the finale from original Ultima V data files.
Package dungeonarchive validates original first-person dungeon graphics without allocating Ebitengine resources.
Package dungeonarchive validates original first-person dungeon graphics without allocating Ebitengine resources.
Package graphicsarchive performs bounded, cancellable CPU-only loading of original graphics archives.
Package graphicsarchive performs bounded, cancellable CPU-only loading of original graphics archives.
Package introarchive validates original title archives without allocating Ebitengine resources.
Package introarchive validates original title archives without allocating Ebitengine resources.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL