Commit Graph
168 Commits
Author SHA1 Message Date
Gleb Mazovetskiy 91f8267db9 🧹 SDL1.2: Remove unimplemented SDL_*Window backports
Guard around SDL version at call site instead.
2021-04-18 20:07:37 +02:00
Gleb Mazovetskiy 2c924e1ab1 🐞 pfile: Fix stale tables after leaving a game
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 https://github.com/diasurgical/devilutionX/commit/135f5e03c796f7184b52abf1abfba5ac0d525379,
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.
2021-04-16 15:50:13 +02:00
Gleb Mazovetskiy d4ca1e30ce Log MPQs on load (with --verbose)
The log looks like this:

    VERBOSE: MPQ search paths
         1. '/home/gleb/devilutionX/build/'
         2. '/home/gleb/.local/share/diasurgical/devilution/'
         3. '/usr/share/diasurgical/devilutionx/'
         4. '/usr/local/share/diasurgical/devilutionx/'
         5. ''
    VERBOSE: Missing: DIABDAT.MPQ
    VERBOSE:   Found: diabdat.mpq in /home/gleb/.local/share/diasurgical/devilution/
    VERBOSE: Missing: patch_rt.mpq
    VERBOSE: Missing: patch_sh.mpq
    VERBOSE:   Found: hellfire.mpq in /home/gleb/.local/share/diasurgical/devilution/
    VERBOSE:   Found: hfmonk.mpq in /home/gleb/.local/share/diasurgical/devilution/
    VERBOSE: Missing: hfbard.mpq
    VERBOSE: Missing: hfbarb.mpq
    VERBOSE:   Found: hfmusic.mpq in /home/gleb/.local/share/diasurgical/devilution/
    VERBOSE:   Found: hfvoice.mpq in /home/gleb/.local/share/diasurgical/devilution/
    VERBOSE: Missing: hfopt1.mpq
    VERBOSE: Missing: hfopt2.mpq
    VERBOSE:   Found: devilutionx.mpq in /home/gleb/devilutionX/build/
2021-04-16 05:23:35 +02:00
Anders Jenbo 8c821e98d3 🚚 Restructure files 2021-04-16 03:57:22 +02:00
Anders Jenbo 997c1dba55 🚚 Split up all.h in to proper header relations 2021-04-16 01:04:54 +02:00
Anders Jenbo 6e1a106a38 🚚 Move header we implement into the project 2021-04-16 01:04:54 +02:00
Gleb Mazovetskiy 9382153228 init_test_access: Remove platform workarounds
No longer necessary as of https://github.com/diasurgical/devilutionX/pull/1314
2021-04-13 14:41:57 +02:00
Anders Jenbo ebc27082e7 🔥 remove unused parts of init_test_access 2021-04-08 19:20:55 +02:00
Anders Jenbo bfb3c11c2b 🎨 Change namespace to devilution 2021-04-06 15:21:25 +02:00
Anders Jenbo 630e507f63 🚚 Apply namespace 2021-04-06 15:21:25 +02:00
Anders Jenbo bc3dc545da 🔥 Remove unused parts of game creation logic 2021-04-06 12:41:00 +02:00
Anders Jenbo 70776b87c8 🐛 Only save when performing a direct exit from game 2021-04-04 06:18:39 +02:00
Anders Jenbo d526840fd5 🎨 Remove hardcoded version number 2021-04-01 04:43:16 +02:00
Anders Jenbo 7c2f96f668 🐛 Always save MP games when quitting 2021-04-01 04:04:07 +02:00
Anders Jenbo a2656637e4 🎨 Format source 2021-03-31 00:52:47 +02:00
Gleb Mazovetskiy 41f7162e98 Hellfire: Better error if some MPQs are missing
Makes the issue more obvious.
2021-03-20 17:10:19 +01:00
Gleb Mazovetskiy 415bea0efe Look for all MPQs in PWD and global share
Follow-up to #1196
2021-03-18 10:05:48 +01:00
Gleb Mazovetskiy c52505388b Install devilutionx.mpq on Linux
1. Installs devilutionx.mpq on Linux.
2. Falls back to finding it in the install location.
2021-03-15 10:49:22 +01:00
Gleb Mazovetskiy e4212a0de9 Try uppercase DIABDAT.MPQ (#1184)
It's uppercase in GOG and on the retail CD.
Other MPQs are not known to be uppercase.
2021-03-14 12:45:13 +01:00
Xadhoom 12c7b715cd Add test for vanilla pfile_write_hero() 2021-03-08 18:32:25 +01:00
Gleb Mazovetskiy 21bb021641 Clean up gpBufEnd initialization
Initialization of `gpBufEnd` was done in a convoluted way
that only happened to work.

Cleans up initialization and moves it to dx.cpp.
2021-03-01 12:08:37 +01:00
Anders Jenbo 39999791b3 Revamp ini options and sync in multiplayer
[NetMsg]
F12=Now you DIE!
F11=Here's something for you.
F10=Follow me.
F9=I need help! Come Here!

[Game]
Speed=50
Fast Walk=1
Grab Input=0
Theo Quest=0
Cow Quest=0

[Audio]
Sound Volume=0
Music Volume=0
Walking Sound=1

[Graphics]
Fullscreen=1
Fit to Screen=1
Scaling Quality=2
Integer Scaling=0
Vertical Sync=1
Blended Transparency=1
Gamma Correction=100
Color Cycling=1

[Diablo]
Intro=0

[Hellfire]
Intro=0
SItem=

[Phone Book]
Entry1=127.0.0.1

[Network]
Bind Address=0.0.0.0
2021-03-01 11:52:26 +01:00
Gleb Mazovetskiy 588458d500 Remove gpBufStart
Was only set once and used in one place since #964
2021-03-01 02:20:21 +01:00
Anders Jenbo b4e78c5e79 Remove some unused junk 2021-02-25 05:37:17 +01:00
Anders Jenbo 36a196389b Fix remaning basic compiler errors and warnings 2021-02-22 13:51:42 +01:00
Ivan Epifanov 1e53f32049 [vita] Initial port 2021-02-21 20:30:34 +01:00
pionere f5c1079d6f eliminate unused code 2021-02-19 22:04:11 +01:00
Anders Jenbo 47004ddd35 Add widescreen menus 2021-01-18 20:56:08 +01:00
Anders Jenbo 9b1568cc08 Startup issues with shareware version 2021-01-17 16:04:13 +01:00
Anders Jenbo d68c8c1cc8 Fix issues related to cross loading save games 2021-01-17 04:49:23 +01:00
Anders Jenbo a2a3729491 Enable loading hellfire games form main menu 2021-01-02 07:40:05 +01:00
Anders Jenbo d20eddf48e Unifcy a chunk of Hellfire's code pathts 2020-12-28 01:11:25 +01:00
Anders Jenbo 61b2d0de95 Merge branch 'master' of github.com:diasurgical/devilution 2020-12-16 02:24:39 +01:00
Anders Jenbo 43b5dea6e5 Merge branch 'master' of github.com:diasurgical/devilution 2020-11-03 00:56:51 +01:00
Anders Jenbo 1f1e689db0 Reorder init.cpp 2020-11-02 20:21:44 +01:00
Anders Jenbo e40653c1e0 fixup! Clean up unused return type 2020-10-29 21:39:58 +01:00
Anders Jenbo b7ca9a812a Clean up unused return type 2020-10-29 21:39:58 +01:00
Gleb Mazovetskiy a091a56e8e Remove MAX_PATH restriction (#898)
Do not limit filesystem paths to 259 chars for MPQs, save files, and diablo.ini.

The MAX_PATH constant remains but now only limits path lengths within the MPQs.
2020-10-26 13:39:27 +01:00
Anders Jenbo 72e2637061 Merge branch 'master' of github.com:diasurgical/devilution 2020-10-25 17:38:06 +01:00
Gleb Mazovetskiy ec329e645c Fix all "no-write-strings" warnings 2020-10-25 15:37:51 +01:00
Anders Jenbo 46e3216aac Remove unused code 2020-10-24 14:03:15 +02:00
Anders Jenbo e073422ce7 Unify executable for Spawn and Retail
The game will now autodetect if it should run in shareware mode or full
retail based on the found mpq file. Additionally it can beforced in the
shareware mode with --spawn even if the retail data is found.

This simplifies a lot of the spagetty code and lets us better refactor,
also worth noteing is that we won't have to setup a secound set of build
tests.
2020-10-20 19:42:01 +02:00
Anders Jenbo 2d6c1efeab Merge branch 'master' of github.com:diasurgical/devilution 2020-10-12 10:46:28 +02:00
Anders Jenbo 7e04c63977 Merge branch 'hellfire' of github.com:diasurgical/devilution 2020-10-11 23:53:07 +02:00
Anders Jenbo c53ca1a62a Adjust resolution to monitor default on startup 2020-09-28 07:03:22 +02:00
Anders Jenbo 893efd51ea Merge branch 'master' of github.com:diasurgical/devilution 2020-09-27 03:34:42 +02:00
Anders Jenbo 31ac716c3d 99 lines of documentation (#2058) 2020-07-07 19:36:18 +02:00
Anders Jenbo c1b4d3d8b5 Copy documentation from sanctuary/notes 2020-07-06 05:43:25 +02:00
Anders Jenbo dc8be6c0ab C++03 compatibility (#736)
* Use C++03 compatible constructors
* Remove conflicting definitions
2020-05-17 01:37:19 +02:00
Anders Jenbo 4b46361442 Remove some unused variables 2020-05-14 11:44:15 +02:00