Start displaying characters on maps

This commit is contained in:
2020-06-13 15:07:32 +01:00
parent eac6017c2c
commit 7677c30572
8 changed files with 173 additions and 50 deletions

View File

@@ -5,6 +5,7 @@ import (
"image"
"log"
"code.ur.gs/lupine/ordoor/internal/data"
"code.ur.gs/lupine/ordoor/internal/maps"
)
@@ -102,19 +103,15 @@ func (m *Map) SpritesForCell(x, y, z int) ([]*Sprite, error) {
sprites = append(sprites, sprite)
}
// FIXME: this just marks character positions with sprite 19 for now.
specialsObj, err := m.assets.Object("specials")
if err != nil {
return nil, err
}
chrSpr, err := specialsObj.Sprite(19)
if err != nil {
return nil, err
}
for _, chr := range m.raw.Characters {
if chr.XPos == x && chr.YPos == y && z == 1 { // FIXME: sort out ZPos
sprites = append(sprites, chrSpr)
// Look up the correct animation, get the frame, boom
anim, err := m.assets.CharacterAnimation(chr.Type, data.AnimActionNone)
if err != nil {
return nil, err
}
sprites = append(sprites, anim.Frames[0])
}
}