X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmap%2FMapState.cpp;h=3be5a4592f5d16b636c3fb2d8a33d1df7a8277f6;hb=c055b357c50dd871b49c38191a9d867ff42ea420;hp=ec714d0588c646360746cad27003c96203c59634;hpb=9302f6869530e5492c73ef6f12f9cea348e8b2a6;p=l2e.git diff --git a/src/map/MapState.cpp b/src/map/MapState.cpp index ec714d0..3be5a45 100644 --- a/src/map/MapState.cpp +++ b/src/map/MapState.cpp @@ -20,7 +20,7 @@ using geometry::Vector; namespace map { -MapState::MapState(const Map *map) +MapState::MapState(Map *map) : map(map) , controlled(0) , tempTarget(20, 20) @@ -102,8 +102,12 @@ void MapState::UpdateWorld(float deltaT) { } else { controlled->SetSpeed(0.0f); } + if (!controlled->AnimationRunning()) { + controlled->StartAnimation(*this); + } } else { controlled->SetSpeed(0.0f); + controlled->StopAnimation(); } if (nowLock != lastLock) { lastLock = nowLock; @@ -116,7 +120,11 @@ void MapState::UpdateWorld(float deltaT) { } void MapState::OnGridLock() { - // TODO: check for adjacent monsters and triggers on the current tile + Trigger *trigger(map->TriggerAt(Vector(controlled->Position()))); + if (trigger) { + // TODO: run trigger + } + // TODO: check for adjacent monsters // TODO: force all entities into their grid positions? }