1
1
mirror of https://github.com/OpenDiablo2/OpenDiablo2 synced 2024-06-21 14:45:24 +00:00
OpenDiablo2/d2common/d2fileformats/d2animdata/record.go
lord 65cce60eab
adding animdata loader (#718)
* adding animdata loader

* utility methods, more tests, export record struct

- added methods for fps and frame duration calculation to the AnimationDataRecord
- exported AnimationDataRecord
- split the various structs into their own files
- added getter methods for retrieving records by name
- added tests for the new utility methods
2020-09-08 15:59:38 -04:00

24 lines
672 B
Go

package d2animdata
// AnimationDataRecord represents a single record from the AnimData.d2 file
type AnimationDataRecord struct {
name string
framesPerDirection uint32
speed uint16
events map[int]AnimationEvent
}
// FPS returns the frames per second for this animation record
func (r *AnimationDataRecord) FPS() float64 {
speedf := float64(r.speed)
divisorf := float64(speedDivisor)
basef := float64(speedBaseFPS)
return basef * speedf / divisorf
}
// FrameDurationMS returns the duration in milliseconds that a frame is displayed
func (r *AnimationDataRecord) FrameDurationMS() float64 {
return milliseconds / r.FPS()
}