fileio

package
v0.0.0-...-a03d70d Latest Latest
Warning

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

Go to latest
Published: Mar 5, 2024 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ExportCiv5MapFile

func ExportCiv5MapFile(mapData *Civ5MapData, outputFilename string)

func ExportCiv5ReplayFile

func ExportCiv5ReplayFile(replayData *Civ5ReplayData, outputFilename string)

func ExportCiv5SaveFile

func ExportCiv5SaveFile(saveData *Civ5SaveData, outputFilename string)

func GroupEventsByTurn

func GroupEventsByTurn(replayEvents []Civ5ReplayEvent) map[int][]Civ5ReplayEvent

func ParseMapTileProperties

func ParseMapTileProperties(inputData []byte, height int, width int) ([][]*Civ5MapTileImprovement, error)

Types

type Civ5CityData

type Civ5CityData struct {
	Name            string
	Owner           int
	OwnerAdjusted   int
	IsNameLocalized bool
	IsPuppetState   bool
	IsOccupied      bool
	Population      int
	Health          int
	BuildingInfo    []byte
}

func ParseCityData

func ParseCityData(cityData []byte, version int, maxCityId int) ([]*Civ5CityData, error)

type Civ5CityHeader

type Civ5CityHeader struct {
	Name       [64]byte
	Owner      uint8
	Flags      uint8
	Population uint16
	Health     uint32
}

type Civ5GameDescriptionHeader

type Civ5GameDescriptionHeader struct {
	Unknown1              [68]byte
	MaxTurns              uint32
	Unknown2              [4]byte
	StartYear             int32
	PlayerCount           uint8
	CityStateCount        uint8
	TeamCount             uint8
	Unknown3              byte
	ImprovementDataSize   uint32
	UnitTypeDataSize      uint32
	TechTypeDataSize      uint32
	PolicyTypeDataSize    uint32
	BuildingTypeDataSize  uint32
	PromotionTypeDataSize uint32
	UnitDataSize          uint32
	UnitNameDataSize      uint32
	CityDataSize          uint32
}

type Civ5MapData

type Civ5MapData struct {
	MapHeader           Civ5MapHeader
	TerrainList         []string
	FeatureTerrainList  []string
	ResourceList        []string
	TileImprovementList []string
	MapTiles            [][]*Civ5MapTilePhysical
	MapTileImprovements [][]*Civ5MapTileImprovement
	Civ5PlayerData      []*Civ5PlayerData
	CityOwnerIndexMap   map[int]int
	CivColorOverrides   []CivColorOverride
}

func ImportCiv5MapFileFromJson

func ImportCiv5MapFileFromJson(inputFilename string) *Civ5MapData

func ReadCiv5MapFile

func ReadCiv5MapFile(filename string) (*Civ5MapData, error)

type Civ5MapHeader

type Civ5MapHeader struct {
	ScenarioVersion        uint8
	Width                  uint32
	Height                 uint32
	Players                uint8
	Settings               [4]uint8
	TerrainDataSize        uint32
	FeatureTerrainDataSize uint32
	FeatureWonderDataSize  uint32
	ResourceDataSize       uint32
	ModDataSize            uint32
	MapNameLength          uint32
	MapDescriptionLength   uint32
}

type Civ5MapJson

type Civ5MapJson struct {
	GameName   string
	FileFormat string
	MapData    *Civ5MapData
}

type Civ5MapTile

type Civ5MapTile struct {
	TerrainType        uint8
	ResourceType       uint8
	FeatureTerrainType uint8
	RiverData          uint8
	Elevation          uint8
	Continent          uint8
	FeatureWonderType  uint8
	ResourceAmount     uint8
}

type Civ5MapTileHeader

type Civ5MapTileHeader struct {
	CityId      uint16
	Unknown     [2]byte // seems to be unused
	Owner       uint8
	Improvement uint8
	RouteType   uint8
	RouteOwner  uint8
}

type Civ5MapTileImprovement

type Civ5MapTileImprovement struct {
	X           int
	Y           int
	CityId      int
	CityName    string
	Owner       int
	Improvement int
	RouteType   int
	RouteOwner  int
}

type Civ5MapTilePhysical

type Civ5MapTilePhysical struct {
	X                  int
	Y                  int
	TerrainType        int
	ResourceType       int
	FeatureTerrainType int
	RiverData          int
	Elevation          int
	Continent          int
	FeatureWonderType  int
	ResourceAmount     int
}

type Civ5PlayerData

type Civ5PlayerData struct {
	Index     int
	CivType   string
	TeamColor string
}

func ParseCivData

func ParseCivData(inputData []byte) ([]*Civ5PlayerData, error)

type Civ5PlayerHeader

type Civ5PlayerHeader struct {
	Policies       [32]byte
	LeaderName     [64]byte
	CivName        [64]byte
	CivType        [64]byte
	TeamColor      [64]byte
	Era            [64]byte
	Handicap       [64]byte
	Culture        uint32
	Gold           uint32
	StartPositionX uint32
	StartPositionY uint32
	Team           uint8
	Playable       uint8
	Unknown1       [2]byte
}

type Civ5ReplayCiv

type Civ5ReplayCiv struct {
	UnknownVariables [4]int
	Leader           string
	LongName         string
	Name             string
	Demonym          string
}

type Civ5ReplayCivDataset

type Civ5ReplayCivDataset struct {
	CivIndex      int
	DatasetValues map[string][]Civ5ReplayDataEntry
}

type Civ5ReplayData

type Civ5ReplayData struct {
	PlayerCiv       string
	IsReplayFile    bool
	AllCivs         []Civ5ReplayCiv
	AllReplayEvents []Civ5ReplayEvent
	DatasetNames    []string
	DatasetValues   []Civ5ReplayCivDataset
}

func ImportCiv5ReplayFileFromJson

func ImportCiv5ReplayFileFromJson(inputFilename string) *Civ5ReplayData

func ReadCiv5ReplayFile

func ReadCiv5ReplayFile(filename string) (*Civ5ReplayData, error)

type Civ5ReplayDataEntry

type Civ5ReplayDataEntry struct {
	Turn  int
	Value int
}

type Civ5ReplayEvent

type Civ5ReplayEvent struct {
	Turn   int
	TypeId int
	Tiles  []Civ5ReplayEventTile
	CivId  int
	Text   string
}

type Civ5ReplayEventTile

type Civ5ReplayEventTile struct {
	X int
	Y int
}

type Civ5ReplayFileConfigEntry

type Civ5ReplayFileConfigEntry struct {
	VariableType string
	VariableName string
}

type Civ5ReplayJson

type Civ5ReplayJson struct {
	GameName   string
	FileFormat string
	ReplayData *Civ5ReplayData
}

type Civ5SaveData

type Civ5SaveData struct {
	PlayerCiv       string
	IsReplayFile    bool
	AllCivs         []Civ5ReplayCiv
	AllReplayEvents []Civ5ReplayEvent
}

func ReadCiv5SaveFile

func ReadCiv5SaveFile(filename string, outputFilename string) (*Civ5SaveData, error)

type Civ5SaveJson

type Civ5SaveJson struct {
	GameName   string
	FileFormat string
	ReplayData *Civ5SaveData
}

type Civ5UnitData

type Civ5UnitData struct {
	Name            string
	Experience      int
	Health          int
	UnitType        int
	Owner           int
	FacingDirection int
	Status          int
	PromotionInfo   []byte
}

func ParseUnitData

func ParseUnitData(unitData []byte, version int) ([]*Civ5UnitData, error)

type Civ5UnitHeaderV11

type Civ5UnitHeaderV11 struct {
	Unknown1        [2]byte
	NameIndex       uint16
	Experience      uint32
	Health          uint32
	UnitType        uint8
	Owner           uint8
	FacingDirection uint8
	Status          uint8
	Promotion       [32]byte
}

type Civ5UnitHeaderV12

type Civ5UnitHeaderV12 struct {
	Unknown1        [2]byte
	NameIndex       uint16
	Experience      uint32
	Health          uint32
	UnitType        uint32
	Owner           uint8
	FacingDirection uint8
	Status          uint8
	Unknown2        byte
	Promotion       [64]byte
}

type CivColorInfo

type CivColorInfo struct {
	Model         string
	ColorConstant string
	Red           float64
	Green         float64
	Blue          float64
}

type CivColorOverride

type CivColorOverride struct {
	CivKey     string
	OuterColor CivColorInfo
	InnerColor CivColorInfo
}

Jump to

Keyboard shortcuts

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