Trihedraf
7baaa3c35e
Fix monster health to +100 for NM and +200 for Hell instead of +1 and +3 ( #5987 )
2023-04-16 19:26:16 +02:00
Eric Robinson
81e3c7abaa
Remove fixed bugfix comments, apply golem fix
2023-04-13 21:18:04 +02:00
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.
2023-03-12 19:29:35 +01:00
obligaron
63b04045f2
MP: Send delta message for lachdanans death
2023-03-04 12:37:25 +01:00
obligaron
6a5210e14a
Multiplayer: Enable Lachdanan Quest
2023-02-25 02:48:58 +01:00
obligaron and qndel
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
obligaron
76528246d7
Multiplayer: Enable Zhar the Mad Quest ( #5823 )
2023-02-19 22:06:08 +01:00
obligaron
31b0f2147a
Multiplayer: Enable Gharbad the Week Quest
2023-02-19 14:13:06 +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
Gleb Mazovetskiy
98294e0ad5
Optimize MissileData: 32 bytes -> 24
...
23 bytes used, 1 spare byte in the padding.
2023-02-07 08:08:04 +01:00
KPhoenix
d813f13700
enum spell_id -> enum class SpellID
2023-02-05 10:24:58 +00:00
Gleb Mazovetskiy
0a6a8e8aa0
Clean up missile data access
...
Replace enum static casts with `GetMissile(Sprite)Data`.
2023-02-03 14:37:44 +00:00
KPhoenix
7947b99511
Implement new enum class
2023-02-03 05:05:12 +01:00
staphen
620a86b007
Change default monster missile damage to zero
2023-02-03 02:38:50 +01:00
Eric Robinson
30c1991039
enum _mai_id -> enum class MonsterAIID (#5683 )
2023-01-28 00:10:15 +01: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
Anders Jenbo
0c5fd01067
Change missile_resistance into class DamageType
2023-01-12 11:03:07 +01:00
ephphatha
9da76e0003
Update CheckReflect to return applied damage
...
Instead of modifying the damage value by reference
2022-12-31 22:42:58 +01:00
KPhoenix
a22389613d
Remove No Monster Heal from Fire Arrows
2022-12-31 22:13:58 +01:00
Gleb Mazovetskiy
36c4a89f3e
Clean up a few position types
2022-12-16 10:22:19 +01:00
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.
2022-12-16 10:22:19 +01:00
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.
2022-12-16 10:22:19 +01:00
Gleb Mazovetskiy
9a1587060d
Use real CalculateSoundPosition with NOSOUND
...
Fixes big-endian tests, which currently build with `-DNOSOUND`
to reduce build time.
2022-12-09 11:09:05 +00:00
Gleb Mazovetskiy
09d7f99c32
Optimize IsTileSafe
...
Add dungeon flags for Fire/Lightning Wall and use them to check if the
monster considers the tile safe.
2022-12-09 05:00:14 +01:00
Gleb Mazovetskiy
38e37e0d53
Fix warnings/errors with -funsigned-char
2022-12-05 07:52:13 +01:00
KPhoenix
e7ffa882e6
Minor cleanup for MonsterAttackPlayer() ( #5444 )
2022-11-23 03:26:42 +01:00
obligaron
0aa3831e32
Multiplayer: Enable Ogden's Sign Quest
2022-11-22 15:29:04 +01:00
obligaron
d2d96f988c
Make TalktoMonster multiplayer compatible
2022-11-22 15:29:04 +01:00
obligaron
f8705c51a2
Make skeleton king's lair multiplayer compatible
2022-11-14 06:58:56 +01:00
obligaron
5fe20e3d32
Make Lazarus quest map multiplayer compatible
2022-11-11 03:27:37 +01:00
obligaron
5f63060c28
Add FindUniqueMonster
2022-11-11 03:27:37 +01:00
Gleb Mazovetskiy
6dca019de2
Use function_ref instead of function
...
`function_ref` is a lightweight function pointer,
whereas `std::function` always involves a heap allocation.
2022-11-02 11:46:15 +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
Gleb Mazovetskiy
d1e9f51c68
monster.{h,cpp}: Minor refactor
...
1. Extract some common code into functions.
2. Avoid some overly long lines.
2022-10-03 06:46:16 +02:00
Mikołaj Piróg
4cff046ba9
Replace toHitSpecial member with a function & fix wrong arguments being passed ( #5337 )
2022-09-18 17:26:23 +02:00
Mikołaj Piróg
5e340d3261
Replace level member with a member function in monster ( #5336 )
2022-09-17 11:39:44 +02:00
qndel
21f67eaadd
use array size instead of sizeof math
2022-09-13 19:59:29 +02:00
qndel
f132d4a13a
fix golem detection ( #5342 )
2022-09-13 18:45:52 +02:00
obligaron
a2ec22667f
Use AnimationInfo::isLastFrame in more places
2022-09-04 18:00:16 +02:00
zaid-ismail031
b0c9a8024e
Refactor missiles.cpp to use Direction enum instead of magic Point/Displacement constants.
2022-08-30 21:25:44 +02:00
Mikołaj Piróg
32b3333bfb
Exp overflow fix ( #5070 )
2022-08-28 17:35:58 +02:00
Anders Jenbo
f8dca40427
Merge branch 'master' of https://github.com/diasurgical/devilution
2022-08-27 02:41:28 +02:00
Gleb Mazovetskiy
188dc79f6e
Make Players a vector
2022-08-26 13:22:04 +09: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
qndel
aa65d27e5c
break hidden invis on death
2022-08-18 20:33:14 +02:00
qndel
2c6bd410c2
increase pDiabloKillLevel variable in singleplayer on diablo kill
2022-08-08 20:14:19 +02:00
qndel
ef5a4de227
typos + code cleanup
2022-08-07 20:28:43 +02:00
staphen
f9e01f25c4
Consistently send network messages when monsters are damaged
2022-08-07 03:34:57 +02:00