Discover how frames are encoded, use that knowledge to (finally) get the viewport locked in
This commit is contained in:
@@ -26,7 +26,7 @@ const (
|
||||
|
||||
CellSize = 16 // seems to be
|
||||
|
||||
cellDataOffset = 0x120 // tentatively
|
||||
cellDataOffset = 0x110 // tentatively
|
||||
cellCount = MaxHeight * MaxLength * MaxWidth
|
||||
)
|
||||
|
||||
@@ -68,18 +68,28 @@ func (h Header) MapSetFilename() string {
|
||||
return string(h.SetName[0:idx:idx]) + ".set"
|
||||
}
|
||||
|
||||
type ObjRef struct {
|
||||
AreaByte byte
|
||||
FrameAndUnknownByte byte
|
||||
}
|
||||
|
||||
// The index into a set palette to retrieve the object
|
||||
func (o ObjRef) Index() int {
|
||||
return int(o.AreaByte)
|
||||
}
|
||||
|
||||
func (o ObjRef) Frame() int {
|
||||
return int(o.FrameAndUnknownByte - 0x80)
|
||||
}
|
||||
|
||||
type Cell struct {
|
||||
DoorAndCanisterRelated byte
|
||||
DoorLockAndReactorRelated byte
|
||||
Unknown2 byte
|
||||
Object0SurfaceArea byte
|
||||
Unknown4 byte
|
||||
Object1LeftArea byte
|
||||
Unknown6 byte
|
||||
Object2RightArea byte
|
||||
Unknown8 byte
|
||||
Object3CenterArea byte
|
||||
Unknown10 byte
|
||||
Surface ObjRef
|
||||
Left ObjRef
|
||||
Right ObjRef
|
||||
Center ObjRef
|
||||
Unknown11 byte
|
||||
Unknown12 byte
|
||||
Unknown13 byte
|
||||
@@ -96,21 +106,21 @@ func (c *Cell) At(n int) byte {
|
||||
case 2:
|
||||
return c.Unknown2
|
||||
case 3:
|
||||
return c.Object0SurfaceArea
|
||||
return c.Surface.AreaByte
|
||||
case 4:
|
||||
return c.Unknown4
|
||||
return c.Surface.FrameAndUnknownByte
|
||||
case 5:
|
||||
return c.Object1LeftArea
|
||||
return c.Left.AreaByte
|
||||
case 6:
|
||||
return c.Unknown6
|
||||
return c.Left.FrameAndUnknownByte
|
||||
case 7:
|
||||
return c.Object2RightArea
|
||||
return c.Right.AreaByte
|
||||
case 8:
|
||||
return c.Unknown8
|
||||
return c.Right.FrameAndUnknownByte
|
||||
case 9:
|
||||
return c.Object3CenterArea
|
||||
return c.Center.AreaByte
|
||||
case 10:
|
||||
return c.Unknown10
|
||||
return c.Center.FrameAndUnknownByte
|
||||
case 11:
|
||||
return c.Unknown11
|
||||
case 12:
|
||||
|
Reference in New Issue
Block a user