obligaron
f34cfeb565
Sync sign chest
3 years ago
Gleb Mazovetskiy
5ac54027dc
Text rendering: Clip text to the given rect
...
Previously, we only clipped to the given surface, without clipping to the given rect.
3 years ago
Gleb Mazovetskiy
a7324a15c0
Item labels: Clip to viewport
...
Instead of redrawing the panel to avoid item label clipping, clip the labels themselves.
3 years ago
Gleb Mazovetskiy
f9da4e1f66
assets.cpp: Avoid allocs in UNPACKED_MPQS FindFile
3 years ago
Gleb Mazovetskiy
dc3908e360
assets.cpp: Switch to C FILE for UNPACKED_MPQS
...
Eliminates some of the (minor) overhead of fstream.
3 years ago
Gleb Mazovetskiy
9db80ef5d7
Assets: Load files directly for UNPACKED_MPQS
...
When using `UNPACKED_MPQS`, avoid all the SDL machinery for reading
files.
This is beneficial not only due to reduced indirection but also because
we can test for the file's existence and get the file size without
opening it, which is much faster.
3 years ago
Gleb Mazovetskiy
46e755f680
Simplify spell icon handling
...
Hide the internals of spell icon rendering behind simple functions.
3 years ago
Gleb Mazovetskiy
74ca2ab0db
Use no-background spell icons with UNPACKED_MPQS
...
Spell icons size: 200 KiB -> 81 KiB
Fixes #5470
3 years ago
Gleb Mazovetskiy
972ee091a1
qol/itemlabels: Use a flat set for used X coords
...
The set only contains a handful of elements.
It is faster and more space-efficient to store it as a vector.
3 years ago
Gleb Mazovetskiy
3cb24c15f3
Remove SDL_image dep from SDL1 build
...
Fixes #5504
3 years ago
Gleb Mazovetskiy
ba56673d55
Only load stash graphics in town
...
Saves 69 KiB in the dungeon
3 years ago
Gleb Mazovetskiy
4c0b43508a
DoBlitScreen: Fix update rects
...
Fixes chat input at 640x480.
Also fixes the other rects, they were slightly off.
3 years ago
Artur Jarosik
8bee40dca4
Fix amiga build ( #5479 )
3 years ago
obligaron
d912babc91
Multiplayer: Enable Magic Rock Quest
3 years ago
obligaron
c95d7617c8
Gillian: play grave quest text only once
3 years ago
Gleb Mazovetskiy
23f7feba69
BackBufferState: `unordered_map` -> `vector`
...
A vector is a lot more efficient here as we generally
only have a handful (1-3) backbuffers.
Additionally, this avoids a lot of temporary allocations every frame,
which were apparently triggered by `emplace` even if the element
already existed.
3 years ago
obligaron
c8c3f9366c
Play skeleton kings speech only once and also in multiplayer
3 years ago
obligaron
f8705c51a2
Make skeleton king's lair multiplayer compatible
3 years ago
obligaron
610e80f098
Sync break crux
3 years ago
obligaron
31141ffb4d
DeltaLoadLevel: Sync objects before items so that closed areas get opened
3 years ago
Gleb Mazovetskiy
b382700ba8
help.cpp: Fix unused variable warning
3 years ago
obligaron
c18380c2e7
Sync SpawnUnique
3 years ago
obligaron
1b1ea50cba
Refactor SpawnItem
3 years ago
obligaron
0711e6af4d
Sync SpawnQuestItem (multiplayer quest items)
3 years ago
Gleb Mazovetskiy
4f21264a98
Fix compilation error in help.cpp
...
Also fixes a warning in the same function
3 years ago
Raphaël Colin
9ed249bdb9
Add scrollbar to help window ( #5481 )
...
* Add scrollbar to help window. Also reduced the help window's text width to make space for the scrollbar.
3 years ago
obligaron
dc3d797269
GetOffsetForWalking: use uint8_t for animation fraction
3 years ago
obligaron
d0978672e9
Make Poisoned Water Supply quest multiplayer compatible
3 years ago
obligaron
5a45ee4eba
Update diablo pentagram when quest state changes
3 years ago
obligaron
9a1bf42519
Always set lazarus portal position
3 years ago
obligaron
1999280c7a
Fix assert in delta_sync_monster
3 years ago
obligaron
0c13f88694
Ensure questmap changes are synced between clients
3 years ago
obligaron
7980a5a890
Make debug god mode damage multiplayer compatible
3 years ago
obligaron
5fe20e3d32
Make Lazarus quest map multiplayer compatible
3 years ago
obligaron
5f63060c28
Add FindUniqueMonster
3 years ago
obligaron
57a3ede76a
Introduce UseMultiplayerQuests
3 years ago
obligaron
17712562c8
Sync Quest._qvar2
3 years ago
obligaron
0de0894ad5
Enable sync of all quests
3 years ago
Gleb Mazovetskiy
a2a8b1c706
Padmapper: Simplify `buttonTo*` data structures
...
Use an `std::array` instead of `std::unordered_map`.
3 years ago
obligaron
eca1a68bec
AnimationInfo: Use fixed point math for fractions
3 years ago
staphen
f60f704ecc
Reverse A and B in pad button to key translation functions
3 years ago
Gleb Mazovetskiy
e7c0d2943f
KeyMapper: Use forward_list instead of vector
...
Similar to how we do this for Padmapper.
3 years ago
Gleb Mazovetskiy
6dca019de2
Use `function_ref` instead of `function`
...
`function_ref` is a lightweight function pointer,
whereas `std::function` always involves a heap allocation.
3 years ago
Gleb Mazovetskiy
1da4be3839
Fix chat
...
Accidentally broken by #5453
3 years ago
KPhoenix
8c3ced3cb6
Display correct Armor Class in Char Panel ( #5443 )
...
In the hit calculation for a monster hitting a player, the player level is used, which equates to the player always having a 2 * clvl increase to what is displayed in the character panel. This adds it in.
3 years ago
staphen
e1167350a2
Clean up handling for gamepad IGNORE/NONE buttons
3 years ago
Gleb Mazovetskiy
37ec8d030f
Fix loading screen glitches
3 years ago
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
3 years ago
KPhoenix
069ba7f1d4
[QOL] Colored slot backs ( #5266 )
3 years ago
staphen
6a565d3755
Further improve simulated mouse interaction
3 years ago