diff --git a/client/mapHandler.cpp b/client/mapHandler.cpp index 112cd7c7a..2f6b34b53 100644 --- a/client/mapHandler.cpp +++ b/client/mapHandler.cpp @@ -770,7 +770,15 @@ void CMapHandler::CMapBlitter::drawObjects(SDL_Surface * targetSurf, const Terra if (!canDrawObject(obj)) continue; - auto objData = findObjectBitmap(obj, info->anim); + uint8_t animationFrame = info->anim; + if(obj->ID == Obj::HERO) //non-generic animation frame pick for hero and boat + { + animationFrame = info->heroAnim; + const CGHeroInstance * hero = dynamic_cast(obj); + if(hero->boat) + animationFrame /= 2; + } + auto objData = findObjectBitmap(obj, animationFrame); if (objData.objBitmap) { Rect srcRect(object.rect.x, object.rect.y, tileSize, tileSize);