In multiplayer, the hash and block tables are kept around between the
saves (presumably to improve performance).
When leaving the game, they should be cleared.
Clearing of the tables is handled by `Archive::Close` in `mpqapi.cpp`.
After 135f5e03c7,
which moved the archive closing inside `pfile_write_hero`, the tables
were no longer cleared on `pfile_flush_W` (because the archive was
already closed when it was called).
To fix the issue, this commit adds a `clear_tables` argument
to `pfile_write_hero` and removes the `pfile_flush_W` method.
Bug reported and root cause found by @Eider-McDuck:
> Example to reproduce: Have 2 vanilla savegames, join a game with the first,
> then leave, then join a game with the second, then drop an item on the floor.
`DVL_ERROR_HANDLE_EOF` was defined incorrectly on Windows.
These error codes are used and returned by Storm. Moves them
from `miniwin.h` to `storm.h`.
Also adds `STORM_ERROR_FILE_NOT_FOUND`, to be used in a follow-up PR.
SErrGet/SetLastError were not propagating errors from 3rdParty/StormLib
because StormLib uses native Windows functions on Windows and defines
its own on Linux.
Also removes storm_full.h
If cast by traps flash would look in memory a bit before the monster
array for what value to use as damage, no one knows what might have been
there waiting so could deal anything form -254 to 254 damage.
Fixes#1500
If cast by traps flash would look in memory a bit before the monster
array for what value to use as damage, no one knows what might have been
there waiting so could deal anything form -254 to 254 damage.
Fixes#1500
This eliminates the problem where the compiler complains we are not handling all enumeration values by moving the "hack" counting member into somewhere else external to the enum.
NewPlrAnim: Use default arguments instead of overloads
StartPlrHit: Fix skippedAnimationFrames - Frames starts with 1
Add missing comment for StartPlrHit
Fix GotHit-Animation: Skipping Frames corrected and adjusted _pAnimGameTicksSinceSequenceStarted for animations that don't start with a additional tick.
Thanks @StephenCWills for the gothit skipping frame calculation logic :-)
Update StartWalk: calculated numSkippedFrames in own line.
Co-authored-by: Anders Jenbo <anders@jenbo.dk>
StartPlrHit: always initialize skippedAnimationFrames
Co-authored-by: Anders Jenbo <anders@jenbo.dk>
Update nthread_GetProgressToNextGameTick comment
Co-authored-by: Anders Jenbo <anders@jenbo.dk>
fix spelling "lenght" instead of "length"
Update NewPlrAnim comment
Co-authored-by: Anders Jenbo <anders@jenbo.dk>
GetFrameToUseForPlayerRendering: avoid one "else"