Commit Graph
820 Commits
Author SHA1 Message Date
Anders Jenbo c3fafa1aff Move list of lightemitting objects to AddObjectLight() 2023-04-24 17:20:17 +02:00
Anders Jenbo 2f908277a8 Apply pre calculated lighting for quest levels 2023-04-24 17:20:17 +02:00
Anders Jenbo d8b5c3a970 Fix light brightness pop on load 2023-04-22 11:32:26 -04:00
Anders Jenbo 0f7713bad8 Fix lighting when debugging 2023-04-22 11:32:26 -04:00
Anders Jenbo 828a52dc6d Clean up ProcessLightsList() 2023-04-22 17:14:19 +02:00
Anders Jenbo e969a8ad01 Invert player to vision relation 2023-04-21 21:25:19 +02:00
Anders Jenbo 382212b98c Remove DisableLighting from release builds 2023-04-21 21:25:19 +02:00
obligaron 2e7125fe65 Multiplayer: Sync Lazarus stand 2023-04-20 22:34:49 +02:00
Anders Jenbo ec9d1b5550 Rename _oLight to applyLighting 2023-04-19 19:41:10 +02:00
obligaron 40bb3aeb45 Replace earflag with DeathReason 2023-04-14 23:34:54 +02:00
obligaron 0e663a8d64 Multiplayer: Sync circles in Lazarus' Lair 2023-04-10 15:07:43 +02:00
obligaron cb5e2b252c Multiplayer: Enable Slain Hero 2023-04-08 12:46:13 +02:00
Łukasz 2ec0603896 use Points instead of x, ys in GetRndObjLoc (objects.cpp) and portal-related functions (portal.cpp) (#5897)
Nice cleanup, thanks.
2023-03-18 21:46:00 +01:00
Gleb Mazovetskiy f34dbf2aa9 Fix a libfmt compilation error on master
`InfoString` is a `StringOrView` and libfmt does not know how to print
that. Pass it a `string_view` instead.
2023-03-12 14:54:14 +00:00
staphen 9af5bf84ba Arkaine's Valor: Don't check player inventory when processing CMD_OPERATEOBJ 2023-03-05 17:55:26 +01:00
obligaron 55bf5348c4 Multiplayer: Prevent trapped doors to fire twice 2023-02-27 05:03:57 +01:00
obligaron cd89372512 Introduce Object::name() 2023-02-26 04:40:31 +01:00
staphen f6fd519561 Remove references to Bard-specific speech IDs 2023-02-25 07:54:11 +01:00
obligaronandqndel 3a31539c7e Multiplayer: Enable Warlord of Blood Quest
Update Source/quests.h

Co-authored-by: qndel <[email protected]>
2023-02-20 21:30:50 +01:00
Gleb Mazovetskiy e67ea9b006 Make MissilesData const
Instead of temporarily modifying `MissileData` around certain calls,
pass the arguments from the outside.
2023-02-15 10:47:08 +00:00
obligaron 023134ef91 Multiplayer: Enable The Chamber of Bone Quest 2023-02-11 18:22:05 +01:00
obligaron 2d4e84c561 Multiplayer: Enable Black Mushroom Quest 2023-02-07 08:02:38 +01:00
KPhoenix d813f13700 enum spell_id -> enum class SpellID 2023-02-05 10:24:58 +00:00
Gleb Mazovetskiy 7c53a5d5b3 Reduce ObjectData size: 24 bytes -> 11 bytes
1. Reduces sizes of integral fields.
2. Merges boolean flags into a single field.
2023-01-25 09:32:50 +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
obligaron a935066180 Multiplayer: Enable Halls of the Blind Quest 2022-12-28 10:05:45 +01:00
obligaron 600cb656fb Multiplayer: Enable Arkaine's Valor Quest 2022-11-27 18:27:06 +01:00
obligaron f34cfeb565 Sync sign chest 2022-11-22 15:29:04 +01:00
obligaron 610e80f098 Sync break crux 2022-11-14 06:58:56 +01:00
obligaron 0711e6af4d Sync SpawnQuestItem (multiplayer quest items) 2022-11-12 19:27:36 +01:00
obligaron 5fe20e3d32 Make Lazarus quest map multiplayer compatible 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 759ca7f055 WorldTileRectangle/Size
Adds a custom sized type for the world tile rectagle.

This allows us to better express intent.
It also allows us to make certain globals smaller, e.g. `THEME_LOC`.
2022-10-16 03:53:26 +01:00
Gleb Mazovetskiy 41f43ea3f5 Support unpacked MPQs from devilutionx-mpq-tools
https://github.com/diasurgical/devilutionx-mpq-tools produces an unpacked MPQ
with all the graphics converted to CLX and the unused files removed.
This is primarily useful on RAM-constrained platforms, such as PS2,
because it eliminates the MPQ overhead.

Adds a build option to load from such unpacked directories instead of the MPQ.

These directories are searched for in the same locations
where the MPQs would be searched for otherwise.

Example directory layout:

* /usr/local/share/diasurgical/devilutionx/diabdat/ -- unpacked and converted diabdat.mpq
* /usr/local/share/diasurgical/devilutionx/hellfire/ -- unpacked and converted hellfire MPQs (all of them merged into 1 directory)
* /usr/local/share/diasurgical/devilutionx/fonts/ -- unpacked fonts.mpq
* /usr/local/share/diasurgical/devilutionx/pl/ -- unpacked pl.mpq

These directory structure is produced by calling `unpack_and_minify_mpq`
2022-10-11 18:00:57 +01:00
ephphatha ea3ecbd619 Use _item_indexes type where appropriate 2022-10-11 18:51:13 +02:00
ephphatha a5b5441794 Restore item seed when converting potions to rejuvenation potions 2022-10-11 11:39:47 +02:00
Gleb Mazovetskiy 6327e713e0 Lowercase all file paths
We want to be able to use unpacked MPQs on low-end platforms
(PS2/rg99/etc).

This is tricky on case-sensitive filesystems. Avoids case issues by
lowercasing all paths in the code (then we'll just need lowercased
listfiles).
2022-08-20 23:49:23 +01:00
obligaron 37de526cb8 DeltaSyncOpObject: Add handling for shrine 2022-08-10 21:23:26 +02:00
ephphatha b4839dadcc Dedupe operate object network commands 2022-08-07 02:46:24 +02:00
ephphatha 8132d6a033 Take object by reference in OperateObject 2022-08-07 02:46:24 +02:00
Anders Jenbo 52780a3712 Do not count closed doors as blocked 2022-08-05 19:48:30 +02:00
qndel 3736b5c8fd fix interacting with lazarus books while not on circles 2022-08-04 14:01:24 +02:00
Anders Jenbo 2d9531f692 Remove redundant check for distance when operating doors
IsPlayerAdjacentToObject() is checked before calling OperateObject().
Previously teleFlag would ignore sendmsg which was likely a bug causing
the event to fire multiple times.
2022-08-04 01:37:03 +02:00
Anders Jenbo acab00652e Unify operate door logic 2022-08-04 01:37:03 +02:00
Anders Jenbo 3589744ed1 Fix crypt doors looking wrong after closing them 2022-08-04 01:37:03 +02:00
Anders Jenbo 37ad8a438a Remove some redundant door logic 2022-08-04 01:37:03 +02:00
Anders Jenbo 8dd8203a39 Add missing check to IsDoorClear 2022-08-04 01:37:03 +02:00
Anders Jenbo e1417be472 Reuse code for opening and closing doors 2022-08-04 01:37:03 +02:00
Anders Jenbo 6fdd756023 [hellfire] Fix blocked crypt door sound
Clean up blocked check in OperateL??Door
2022-08-04 01:37:03 +02:00