74 lines
1.6 KiB
Modula-2
74 lines
1.6 KiB
Modula-2
type PuzPos
|
|
{
|
|
i8 X
|
|
i8 Y
|
|
}
|
|
|
|
type ElemPos
|
|
{
|
|
PuzPos Position
|
|
u8 ElemIdx
|
|
}
|
|
|
|
enum PuzzleElementType(u8)
|
|
{
|
|
None GameName("Empty") ShortName(" ")
|
|
WaterIn GameName("Water Source") ShortName("~+")
|
|
WaterGoal GameName("Water Goal") ShortName("~-")
|
|
WaterChannel GameName("Water Channel") ShortName("~")
|
|
ElectricIn GameName("Electricity Source") ShortName("e+")
|
|
ElectricGoal GameName("Electricity Goal") ShortName("e-")
|
|
Blocked GameName("Blocked") ShortName("B")
|
|
Bridge GameName("Bridge") ShortName("#")
|
|
}
|
|
|
|
type PuzzleNode
|
|
{
|
|
PuzzleElementType PlacedTypes Arr(4)
|
|
}
|
|
|
|
type StaticPuzzleCard
|
|
{
|
|
PuzzleNode Nodes Arr(4)
|
|
u16 ModelHandle
|
|
}
|
|
|
|
type StaticPuzzleCardHandle
|
|
{
|
|
u16 Idx Default("UINT16_MAX")
|
|
}
|
|
|
|
type StaticPuzzleData
|
|
{
|
|
StaticPuzzleCard Cards Arr(64)
|
|
}
|
|
|
|
type PuzzleCardStack
|
|
{
|
|
StaticPuzzleCardHandle RefCard
|
|
u8 MaxAvailableCount
|
|
u8 UsedCount
|
|
}
|
|
|
|
type PlacedPuzzleCard
|
|
{
|
|
StaticPuzzleCardHandle RefCard
|
|
PuzPos Position
|
|
u8 Rotation
|
|
b IsLocked
|
|
}
|
|
|
|
type PuzzleData
|
|
{
|
|
u8 WidthTiles
|
|
u8 HeightTiles
|
|
u32 AvailableCardCount
|
|
PuzzleCardStack AvailableCards Arr(16)
|
|
u32 PlacedCardCount
|
|
PlacedPuzzleCard PlacedCards Arr(256)
|
|
PuzzleNode PlacedNodes Arr(1024)
|
|
u32 GoalPositionCount
|
|
ElemPos GoalPositions Arr(16)
|
|
str PuzzleName Arr(64)
|
|
}
|