DakkJaniels
d683039bdd
stop shaking camera if dead diablo loaded from save. ( #4149 )
3 years ago
staphen
c857b7c7e4
Update frame skip logic for attacks after movement to match vanilla behavior
3 years ago
Gleb Mazovetskiy
7c53a5d5b3
Reduce `ObjectData` size: 24 bytes -> 11 bytes
...
1. Reduces sizes of integral fields.
2. Merges boolean flags into a single field.
3 years ago
Gleb Mazovetskiy
2bc4aaebae
Format tables in Source/objdat.cpp
3 years ago
Gleb Mazovetskiy
5d35b289bb
Skip creating half-size sprites for 1x1 items
...
We never use these anyway
3 years ago
Gleb Mazovetskiy
37f4d0cb97
`CreateHalfSizeItemSprites`: Reuse surfaces
...
Rather than allocating surfaces on every loop iteration, reuse the same
2 surfaces.
3 years ago
Eric Robinson
3642904a4c
Fix Resurrect Crash ( #5718 )
3 years ago
Bubio
81c7d0618d
Fixed spelling errors ( #5714 )
...
Corrected a spelling error in the "Show Item Graphics in Stores" description
(desription -> description)
3 years ago
Gleb Mazovetskiy
f9f61fcb0c
Do not try to create Hellfire sprites in Diablo
...
Fixes #5709
3 years ago
Gleb Mazovetskiy
1401e130ce
Store items: Render 1x1 items at full size
3 years ago
Gleb Mazovetskiy
67bb0e10fd
Store items: Draw unusable items in red
...
We generate separate downscaled sprites for the red versions
because simply applying TRN after downscaling leads to some
non-red pixels (because of blending during downscaling).
3 years ago
Gleb Mazovetskiy
068fdac7c1
Do not use PKWare with no MPQs + NONET
...
Reduces RG99 binary size by 12 KiB
3 years ago
Gleb Mazovetskiy
0fb9599e66
`StaticVector`: Replace `std::aligned_storage_t`
...
`std::aligned_*` are deprecated in C++23 per
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1413r3.pdf
3 years ago
Gleb Mazovetskiy
beb6fc2aaf
`CreateAulibResampler`: Check the real sample rate
...
The requested sample rate is merely preferred and the actual rate may be
different.
3 years ago
Gleb Mazovetskiy
16f7d7e9d6
Support mouse back button in stores/dialogues
3 years ago
Gleb Mazovetskiy
0e0cc9d1b0
Reduce to just `STREAM_ALL_AUDIO_MIN_FILE_SIZE`
...
This does result in a bit more code and RAM usage for soundsample when
`STREAM_ALL_AUDIO` is on, but not by much.
3 years ago
Gleb Mazovetskiy
0dd95adcd1
Add a minimum threshold for STREAM_ALL_AUDIO
3 years ago
Gleb Mazovetskiy
527e876fff
Disable item labels when in store
...
Also disable ground item outlines on hover when in store.
3 years ago
Gleb Mazovetskiy
c5369f4b2b
Store graphics: Scale sprites only once
...
Prepare downscaled sprites once instead of doing it on every frame.
Note that we do this lazily in `StartStore` rather than
`SetupTownStores` because we need the palette blending table to be
available when downscaling.
3 years ago
obligaron
b7e2c649cf
Recalculate cursor position after level change
3 years ago
obligaron
c3a2fd07c0
Add used acids2.wav back to game
3 years ago
Anders Jenbo
c99f7cf644
Floating numbers ( #5639 )
...
Co-authored-by: qndel <stefan551@o2.pl>
Co-authored-by: Stephen C. Wills <staphen@gmail.com>
3 years ago
staphen
3e916d4c1f
Align item graphics with the center of the store text
3 years ago
staphen
d707f07e8f
Make item graphics in stores optional
3 years ago
staphen
af5dc9ccb6
Add item graphics to store menus
3 years ago
Gleb Mazovetskiy
55dc2315bc
Completely remove unused sfx_MISC sounds
3 years ago
Gleb Mazovetskiy
b48d4b2900
Remove uses of blank.wav
...
blank.wav is a 22 KiB 1-second silence that is not needed with
our sound engine.
3 years ago
Gleb Mazovetskiy
27348b49b8
Do not load unused sfx_MISC sound effects
...
There are 40 unused sfx_MISC sound effects.
All sfx_MISC sound effects are loaded into RAM by default.
Avoid loading these unused ones.
3 years ago
Gleb Mazovetskiy
a596c8223d
Reformat sound effects table
3 years ago
Gleb Mazovetskiy
3ab2f49a92
Audio: Avoid creating same-rate resamplers
...
Each resampler allocates an input buffer and an output buffer.
Since we create ~100 audio stream objects (1 per `sfx_MISC` effect),
the memory cost of these buffers adds up.
Avoids creating a resampler when the audio sampler rate matches the
output sample rate. This is mostly the case when the output sample
rate is 22050.
3 years ago
Gleb Mazovetskiy
6b338eac9f
Display path in `LoadAudioFile` error dialog
3 years ago
Gleb Mazovetskiy
6d274c9547
`UNPACKED_SAVES`: Saves without MPQs
...
Reduces rg99 binary size by ~70 KiB.
3 years ago
KPhoenix
8db521727d
`enum missile_id` -> `enum class MissileID`
...
Changes `enum missile_id` to `enum class MissileID`
3 years ago
Gleb Mazovetskiy
f20c58c8a0
SoundSample::SetChunkStream: Log filename on error
3 years ago
Gleb Mazovetskiy
590e354030
Reduce the size of SpellData
...
56 bytes -> 40 bytes
Can be optimized further by reordering the fields and merging some
flags.
3 years ago
KPhoenix
3eed9228ab
Fix alignment
3 years ago
KPhoenix
f52b2cb71f
Enum Class: MagicType
...
Changes enum magic_type to enum class MagicType
3 years ago
KPhoenix
12fc02f7f5
Fix redundancy in AddBoneSpirit function
3 years ago
Gleb Mazovetskiy
b281f0afac
Run tools/cpp_format_struct_table.py
3 years ago
Gleb Mazovetskiy
ae0297006e
A tool to format a struct table
...
Does not support subobjects, i.e. it treats them as a single value.
3 years ago
staphen
0d43f468e5
Improve missile collision interpolation logic
3 years ago
DakkJaniels
e5d96b2242
Removed ability to try and join incompatible ZeroTier games ( #5648 )
3 years ago
Anders Jenbo
e50e21e0e4
Use outline for spell icon texts
3 years ago
Anders Jenbo
0c5fd01067
Change missile_resistance into class DamageType
3 years ago
Anders Jenbo
bb2463862c
Use Position in AddItemToLabelQueue()
3 years ago
Anders Jenbo
a29fc3a074
Correct casing for Player::isWalking()
3 years ago
Anders Jenbo
1a633c5627
Reject games info of unexpected size ( #5646 )
3 years ago
Gleb Mazovetskiy
f085af70ca
Add `paths::ConfigPath` to the MPQ search list
...
This mitigates the situation where providing `--save-dir`
result in no ~/.local/share/diasurgical/devilutionx in the search path
3 years ago
Gleb Mazovetskiy
5bf9dfd7ee
Demo mode: Force resolution to that of the demo
3 years ago
Gleb Mazovetskiy
8fe8023542
Create save and config directories
...
If a config directory did not exist, the ini file was
not saved at all.
Only implemented for targets that support `std::filesystem` or `std::experimental::filesystem`.
These are all the targets except nxdk and iOS (only supported on iOS 13+).
3 years ago