546 Commits
Author SHA1 Message Date
Gleb Mazovetskiy 068fdac7c1 Do not use PKWare with no MPQs + NONET
Reduces RG99 binary size by 12 KiB
2023-01-23 01:51:16 +00:00
c99f7cf644 Floating numbers (#5639)
Co-authored-by: qndel <[email protected]>
Co-authored-by: Stephen C. Wills <[email protected]>
2023-01-22 07:20:10 +01:00
KPhoenix 8db521727d enum missile_id -> enum class MissileID
Changes `enum missile_id` to `enum class MissileID`
2023-01-18 17:17:25 +00:00
staphen 0c4015869c Remove unused _mdir variable from monster deltas 2023-01-01 22:22:20 +01:00
obligaron 0c3b434d76 Make debug command restart compatible with multiplayer 2022-12-17 19:37:52 +01:00
Gleb Mazovetskiy bf2e6cd262 Fix disappearing portal
Fixes a regression introduced in ca69237d59.

Fixes #5609
2022-12-17 12:06:22 +01:00
Gleb Mazovetskiy ca69237d59 Big-endian support for multiplayer
Not sure if this works but it's a start
2022-12-15 05:59:17 +01:00
Gleb Mazovetskiy ef4a547954 msg.cpp: Log received commands debug define 2022-12-15 05:59:17 +01:00
obligaron b3b62800b5 Initial sync qvar2 2022-11-27 18:27:06 +01:00
obligaron 911ba21e0e Set player old position on level join to prevent a crash when leaving the game 2022-11-24 06:15:48 +01:00
obligaron 50cea20687 Show portal opening animation in town 2022-11-23 03:08:52 +01:00
obligaron 31141ffb4d DeltaLoadLevel: Sync objects before items so that closed areas get opened 2022-11-14 06:58:56 +01:00
obligaron 1999280c7a Fix assert in delta_sync_monster 2022-11-11 03:27:37 +01:00
obligaron 57a3ede76a Introduce UseMultiplayerQuests 2022-11-11 03:27:37 +01:00
obligaron 17712562c8 Sync Quest._qvar2 2022-11-11 03:27:37 +01:00
obligaron 0de0894ad5 Enable sync of all quests 2022-11-11 03:27:37 +01:00
Gleb Mazovetskiy 680ab5ec40 Overhaul backbuffer state handling
When rendering directly to the output buffer, we need to maintain the
state of what has been drawn and what needs redrawing per-buffer.

We previously tried to do it implicitly by checking `SDL_DOUBLEBUF` and
other flags. The previous implementation was broken in several
ways, resulting in rendering issues on devices that support 8-bit output
directly.

Changes this mechanism to explicitly maintain buffer state per output
buffer. The new mechanism doesn't require knowledge of the number of
buffers, and thus also works correctly with triple-buffering.

Fixes #5447
2022-11-01 02:43:24 +00:00
Gleb Mazovetskiy 0498d7d3a7 Fix compilation warnings 2022-10-29 13:41:23 +01:00
staphen 21bd760bfa Bypass CMD_PUTITEM when triggering CMD_OPENHIVE or CMD_OPENGRAVE 2022-10-25 07:14:03 +02:00
obligaron d59a7e2794 Combine SyncDropItem and SyncPutItem 2022-10-23 10:09:54 +02:00
obligaron ba65d5fbff SyncPutItem: Always use passed coordinates for item position 2022-10-23 10:09:54 +02:00
obligaron d0c1aba463 Don't process get request item commands after start changing level 2022-10-23 01:32:53 +02:00
Gleb Mazovetskiy ec12d7ce44 Player: Optimize to save 40 bytes 2022-10-11 10:17:01 +01:00
qndel c05c4c0f55 fix typos 2022-09-17 20:19:05 +02:00
staphen 13db52f4e1 Clean up calls to SyncPutItem() and SyncDropItem() 2022-09-08 06:11:36 +02:00
staphen 116fc6fa40 Add logic to handle ears in DeltaAddItem() and DeltaGetItem() 2022-09-08 06:11:36 +02:00
staphen bfa3ccd90c Clean up code to prep items for the network 2022-09-08 06:11:36 +02:00
staphen 147a13d66c Synchronize gold in player's inventories 2022-09-08 06:11:36 +02:00
staphen 36985295e9 Clean up calls to RecreateItem() in msg.cpp 2022-09-08 06:11:36 +02:00
staphen e28a8065e9 Sync more item data with TCmdChItem 2022-09-08 06:11:36 +02:00
staphen 73028ec04a Define network struct for ears 2022-09-08 06:11:36 +02:00
obligaron 5b6beac375 Introduce Player::getAnimationFramesAndTicksPerFrame 2022-09-04 17:58:18 +02:00
Anders Jenbo f8dca40427 Merge branch 'master' of https://github.com/diasurgical/devilution 2022-08-27 02:41:28 +02:00
obligaron b3aa08589b Don't use MyPlayer in UnPackItem and dependend methods 2022-08-26 18:18:40 +02:00
Anders Jenbo 872456ae5d Use size_t for a select few pnum variables 2022-08-26 13:22:04 +09:00
Gleb Mazovetskiy 188dc79f6e Make Players a vector 2022-08-26 13:22:04 +09:00
staphen 8503efc1db Remove pragma pack from DLevel struct 2022-08-21 05:45:31 +02:00
staphen 40546c9f9d Avoid DLevel copy constructor in GetDeltaLevel() 2022-08-21 00:49:58 +02:00
Stephen C. Wills a06dd25d17 Synchronize player inventories (#5217)
* Synchronize item placement in player's backpack

* Synchronize item remove from player's backpack

* Synchronize item placement and removal from player's belt

* Set up loopback network provider for failing tests
2022-08-20 16:30:40 +00:00
ephphatha 81fa45d9d8 Update multiplayer delta when parsing close door command 2022-08-07 02:46:24 +02:00
ephphatha b4839dadcc Dedupe operate object network commands 2022-08-07 02:46:24 +02:00
Vladimir Olteanu 9a55b13340 Avoid defensive warning in DeltaImportObjects (#5181)
GCC emits -Wsequence-point even with c++20 as the language level, apparently just in case the code gets compiled under an older standard.
2022-08-03 21:57:11 +10:00
staphen 748bb1f84d Split delta trap operation from realtime trap operation 2022-08-03 07:39:25 +02:00
Vladimir Olteanu 74232f13bf Get rid of dthread 2022-08-03 02:18:54 +02:00
2121d8dc67 Use position for object delta messages
Co-authored-by: Stephen C. Wills <[email protected]>
Co-authored-by: Anders Jenbo <[email protected]>
2022-08-02 16:35:40 +02:00
obligaron 6804221199 Store scroll/rune location in SpellCastInfo.spellFrom and remove the scroll/rune only after the spell is casted 2022-08-02 03:05:46 +02:00
obligaron 1cfd1ca99d Fix double casting bug - use separated info for casted and queued spells 2022-08-02 03:05:46 +02:00
Anders Jenbo b9aa2959a6 Split deleta sync from operate door 2022-08-01 12:09:26 +02:00
Anders Jenbo e83c55d444 Clean up object references 2022-07-31 06:19:20 +02:00
Stephen C. Wills e364b7488c HitMonster() cleanup (#5147) 2022-07-30 14:39:24 +02:00