// - if no frame-skipping is required and so we have exactly one Animationframe per game tick
// or
// - if we load from a savegame where the new variables are not stored (we don't want to break savegame compatiblity because of smoother rendering of one animation)
// - if we load from a savegame where the new variables are not stored (we don't want to break savegame compatibility because of smoother rendering of one animation)
// In some cases this calculcated position is invalid.
// In some cases this calculated position is invalid.
// For example a missile shouldn't move inside a wall.
// In this case the game logic don't advance the missile position and removes the missile or shows an explosion animation at the old position.
// For the animation distribution logic this means we are not allowed to move to a tile where the missile could collide, cause this could be a invalid position.
// For the animation distribution logic this means we are not allowed to move to a tile where the missile could collide, because this could be a invalid position.
// If we are still at the current tile, this tile was already checked and is a valid tile
if(m.position.tileForRendering==m.position.tile)
@ -918,7 +918,7 @@ void DrawTileContent(const Surface &out, Point tilePosition, Point targetBufferP
// Render objects behind walls first to prevent sprites, that are moving
// between tiles, from poking through the walls as they exceed the tile bounds.
// A proper fix for this would probably be to layout the sceen and render by
// A proper fix for this would probably be to layout the scene and render by
// sprite screen position rather than tile position.
if(IsWall(tilePosition)&&(IsWall(tilePosition+Displacement{1,0})||(tilePosition.x>0&&IsWall(tilePosition+Displacement{-1,0})))){// Part of a wall aligned on the x-axis
if(IsTileNotSolid(tilePosition+Displacement{1,-1})&&IsTileNotSolid(tilePosition+Displacement{0,-1})){// Has walkable area behind it
,gameMode("Game",OptionEntryFlags::NeedHellfireMpq|OptionEntryFlags::RecreateUI,N_("Game Mode"),N_("Play Diablo or Hellfire."),StartUpGameMode::Ask,
{
{StartUpGameMode::Diablo,N_("Diablo")},
// Ask is missing, cause we want to hide it from UI-Settings.
// Ask is missing, because we want to hide it from UI-Settings.
{StartUpGameMode::Hellfire,N_("Hellfire")},
})
,shareware("Shareware",OptionEntryFlags::NeedDiabloMpq|OptionEntryFlags::RecreateUI,N_("Restrict to Shareware"),N_("Makes the game compatible with the demo. Enables multiplayer with friends who don't own a full copy of Diablo."),false)
{N_(/* TRANSLATORS: Neutral dialog spoken by Farnham (Gossip) */"I know you gots your own ideas, and I know you're not gonna believe this, but that weapon you got there - it just ain't no good against those big brutes! Oh, I don't care what Griswold says, they can't make anything like they used to in the old days..."),
true,SfxID::Farnham25},
{N_(/* TRANSLATORS: Neutral dialog spoken by Farnham (Gossip) */"If I was you... and I ain't... but if I was, I'd sell all that stuff you got and get out of here. That boy out there... He's always got somethin good, but you gotta give him some gold or he won't even show you what he's got."),
{N_(/* TRANSLATORS: Neutral dialog spoken by Farnham (Gossip) */"If I was you... and I ain't... but if I was, I'd sell all that stuff you got and get out of here. That boy out there... He's always got somethin' good, but you gotta give him some gold or he won't even show you what he's got."),
true,SfxID::Farnham26},
{N_(/* TRANSLATORS: Neutral dialog spoken by Adria */"I sense a soul in search of answers..."),false,SfxID::Adria38},
{N_(/* TRANSLATORS: Neutral dialog spoken by Adria (Gossip) */"Wisdom is earned, not given. If you discover a tome of knowledge, devour its words. Should you already have knowledge of the arcane mysteries scribed within a book, remember - that level of mastery can always increase."),
@ -544,7 +544,7 @@ const Speech Speeches[] = {
true,SfxID::Cain19},
{N_(/* TRANSLATORS: Quest text spoken by Farnham */"Listen here. Come close. I don't know if you know what I know, but you've have really got something here. That's a map."),
true,SfxID::Farnham21},
{N_(/* TRANSLATORS: Quest text spoken by Gillian */"My grandmother often tells me stories about the strange forces that inhabit the graveyard outside of the church. And it may well interest you to hear one of them. She said that if you were to leave the proper offering in the cemetary, enter the cathedral to pray for the dead, and then return, the offering would be altered in some strange way. I don't know if this is just the talk of an old sick woman, but anything seems possible these days."),
{N_(/* TRANSLATORS: Quest text spoken by Gillian */"My grandmother often tells me stories about the strange forces that inhabit the graveyard outside of the church. And it may well interest you to hear one of them. She said that if you were to leave the proper offering in the cemetery, enter the cathedral to pray for the dead, and then return, the offering would be altered in some strange way. I don't know if this is just the talk of an old sick woman, but anything seems possible these days."),
true,SfxID::Gillian27},
{N_(/* TRANSLATORS: Quest text spoken by Wirt */"Hmmm. A vast and mysterious treasure you say. Mmmm. Maybe I could be interested in picking up a few things from you. Or better yet, don't you need some rare and expensive supplies to get you through this ordeal?"),