staphen
45da8b2295
Remove unique monster's light when no corpse is left behind
3 years ago
Trihedraf
7baaa3c35e
Fix monster health to +100 for NM and +200 for Hell instead of +1 and +3 ( #5987 )
3 years ago
Eric Robinson
81e3c7abaa
Remove fixed bugfix comments, apply golem fix
3 years ago
Gleb Mazovetskiy
957bd03b98
Remove `FMT_COMPILE` in "cold" places
...
Removes most `FMT_COMPILE` calls.
`FMT_COMPILE` results in better performance but larger code size.
Removes `FMT_COMPILE` calls for places that are called infrequently,
i.e. not on every frame.
RG-99 binary size reduced by ~4 KiB.
3 years ago
obligaron
63b04045f2
MP: Send delta message for lachdanans death
3 years ago
obligaron
6a5210e14a
Multiplayer: Enable Lachdanan Quest
3 years ago
obligaron
3a31539c7e
Multiplayer: Enable Warlord of Blood Quest
...
Update Source/quests.h
Co-authored-by: qndel <stefan551@o2.pl>
3 years ago
obligaron
76528246d7
Multiplayer: Enable Zhar the Mad Quest ( #5823 )
3 years ago
obligaron
31b0f2147a
Multiplayer: Enable Gharbad the Week Quest
3 years ago
Gleb Mazovetskiy
e67ea9b006
Make `MissilesData` const
...
Instead of temporarily modifying `MissileData` around certain calls,
pass the arguments from the outside.
3 years ago
Gleb Mazovetskiy
98294e0ad5
Optimize `MissileData`: 32 bytes -> 24
...
23 bytes used, 1 spare byte in the padding.
3 years ago
KPhoenix
d813f13700
`enum spell_id` -> `enum class SpellID`
3 years ago
Gleb Mazovetskiy
0a6a8e8aa0
Clean up missile data access
...
Replace enum static casts with `GetMissile(Sprite)Data`.
3 years ago
KPhoenix
7947b99511
Implement new enum class
3 years ago
staphen
620a86b007
Change default monster missile damage to zero
3 years ago
Eric Robinson
30c1991039
`enum _mai_id` -> `enum class MonsterAIID` ( #5683 )
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
KPhoenix
8db521727d
`enum missile_id` -> `enum class MissileID`
...
Changes `enum missile_id` to `enum class MissileID`
3 years ago
Anders Jenbo
0c5fd01067
Change missile_resistance into class DamageType
3 years ago
ephphatha
9da76e0003
Update CheckReflect to return applied damage
...
Instead of modifying the damage value by reference
3 years ago
KPhoenix
a22389613d
Remove No Monster Heal from Fire Arrows
3 years ago
Gleb Mazovetskiy
36c4a89f3e
Clean up a few position types
3 years ago
Gleb Mazovetskiy
6654a26345
IsPlayerMinion: Faster check
...
Debug profile cost: 2.5% -> 1.5%
This should be as robust as the other check. If not, we have a bug
elsewhere.
3 years ago
Gleb Mazovetskiy
3910c2e56a
UpdateEnemy: Swap the M_Talker check
...
The `otherMonster.talkMsg != TEXT_NONE` check is a lot cheaper and is
almost always false.
This eliminates the M_Talker cost from the debug profile.
3 years ago
Gleb Mazovetskiy
9a1587060d
Use real `CalculateSoundPosition` with NOSOUND
...
Fixes big-endian tests, which currently build with `-DNOSOUND`
to reduce build time.
3 years ago
Gleb Mazovetskiy
09d7f99c32
Optimize IsTileSafe
...
Add dungeon flags for Fire/Lightning Wall and use them to check if the
monster considers the tile safe.
3 years ago
Gleb Mazovetskiy
38e37e0d53
Fix warnings/errors with `-funsigned-char`
3 years ago
KPhoenix
e7ffa882e6
Minor cleanup for MonsterAttackPlayer() ( #5444 )
3 years ago
obligaron
0aa3831e32
Multiplayer: Enable Ogden's Sign Quest
3 years ago
obligaron
d2d96f988c
Make TalktoMonster multiplayer compatible
3 years ago
obligaron
f8705c51a2
Make skeleton king's lair multiplayer compatible
3 years ago
obligaron
5fe20e3d32
Make Lazarus quest map multiplayer compatible
3 years ago
obligaron
5f63060c28
Add FindUniqueMonster
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
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`.
3 years ago
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`
3 years ago
Gleb Mazovetskiy
d1e9f51c68
monster.{h,cpp}: Minor refactor
...
1. Extract some common code into functions.
2. Avoid some overly long lines.
4 years ago
Mikołaj Piróg
4cff046ba9
Replace toHitSpecial member with a function & fix wrong arguments being passed ( #5337 )
4 years ago
Mikołaj Piróg
5e340d3261
Replace level member with a member function in monster ( #5336 )
4 years ago
qndel
21f67eaadd
use array size instead of sizeof math
4 years ago
qndel
f132d4a13a
fix golem detection ( #5342 )
4 years ago
obligaron
a2ec22667f
Use AnimationInfo::isLastFrame in more places
4 years ago
zaid-ismail031
b0c9a8024e
Refactor missiles.cpp to use Direction enum instead of magic Point/Displacement constants.
4 years ago
Mikołaj Piróg
32b3333bfb
Exp overflow fix ( #5070 )
4 years ago
Gleb Mazovetskiy
188dc79f6e
Make `Players` a vector
4 years ago
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).
4 years ago
qndel
aa65d27e5c
break hidden invis on death
4 years ago
qndel
2c6bd410c2
increase pDiabloKillLevel variable in singleplayer on diablo kill
4 years ago
qndel
ef5a4de227
typos + code cleanup
4 years ago
staphen
f9e01f25c4
Consistently send network messages when monsters are damaged
4 years ago