Commit graph

712 commits

Author SHA1 Message Date
staphen
bd0470994a Initialize golems before objects 2021-12-12 19:16:59 +01:00
obligaron
f2f764ed68 Fix Knockback checks wrong position when a monster is moving 2021-12-12 00:02:05 +01:00
obligaron
f58a42ca97 Check that monsters aren't placed in doors 2021-12-12 00:01:01 +01:00
Anders Jenbo
ffae6d805b Clean up check for borken monster position in DirOK 2021-12-11 04:55:24 +01:00
obligaron
ff5de056fa
Add all (boolean) Game Settings to Settingsmenu (#3616) 2021-11-26 23:43:46 +01:00
qndel
7b82c52da9 add _mai_id enums in comment 2021-11-24 12:51:56 +01:00
Gleb Mazovetskiy
3aa8149d3e PrintMonstHistory: Fix string manipulation
The code previously assumed that there is an ASCII separator after each
resistance type.

Different languages may use something else entirely. Relaxes the
assumption to any single code point to avoid producing malformed
UTF-8.
2021-11-14 07:35:10 +00:00
qndel
1110927057 make berserked monsters fight each other 2021-11-10 20:43:22 +01:00
Andrew James
796e2813cf
Use scoped enums for DungeonFlags/BFLAG (#3135) 2021-11-07 03:11:16 +01:00
Gleb Mazovetskiy
3d308983a8 Migrate to libmpq
libmpq is a much simpler alternative to StormLib for reading MPQ archives.

We use our own fork of libmpq: https://github.com/diasurgical/libmpq

Impact:

* DevilutionX is now a lot more portable. Unlike StormLib, libmpq only
  needs platform-specific code for Windows.
* Locks around file access **removed** (instead we duplicate the file descriptor for streamed audio only).
* RAM usage is **300 KiB** lower than StormLib.
* Stripped release linux_x86_64 binary is **32 KiB** smaller.
* Amiga build now hangs instead of crashing.
2021-11-06 23:51:42 +00:00
Anders Jenbo
160c0fc2e4 Fix OOB when monsters attack monsters 2021-10-26 19:17:12 +02:00
qndel
e567953bc9 Sharing automap exploration in multiplayer 2021-10-25 02:58:41 +02:00
qndel
0ccdf940f7
fix bounds checks (#3237) 2021-10-24 17:20:04 +02:00
Anders Jenbo
0e3c1321fb 🐛 Fix scavenger groups getting stuck 2021-10-21 23:55:02 +02:00
Thomas Christlieb
e5f5c4ef0c Make variable a const reference
Co-authored-by: Juliano Leal Goncalves <julealgon@gmail.com>
2021-10-14 01:34:02 +02:00
ThomasChr
b473a33496 remove light source when killing a berserk monster 2021-10-14 01:34:02 +02:00
Anders Jenbo
aa90229821 🐛 Make monsters follow the leader 2021-10-13 16:59:57 +02:00
qndel
f8cda02456 apply bounds check function 2021-10-12 01:18:28 +02:00
qndel
2d81357069
fix anvil monsters placement (#3035) 2021-10-05 20:00:38 +02:00
Anders Jenbo
2708b16c05
Validate CMD_SYNCDATA (#2968) 2021-09-30 15:38:10 +02:00
Anders Jenbo
671fdbd125 Implement contextural translation (pgettext)
Fixes #2369
Fixes #2790
2021-09-20 04:18:35 +02:00
obligaron
0acaec710c Remove -m debug command line 2021-09-17 21:05:31 +02:00
obligaron
74a1810576 Remove most uses of BFLAG_MONSTLR 2021-09-17 21:03:41 +02:00
obligaron
e62aaa562f Fix missiles don't hit horizontal walking players/monsters 2021-09-17 21:03:41 +02:00
qndel
a5ea763567 fix saves bricked by spawn command 2021-09-17 08:46:11 +02:00
staphen
60492ef954 Add proper graphics for gamepad 2021-09-16 19:25:31 +02:00
Siddharth singh chouhan
ba161f623e
Move documentation from implementations to declarations. (#2858) 2021-09-13 15:45:38 +02:00
Juliano Leal Goncalves
379a27b64a ♻️ Convert 'ItemType' enum to enum class
🎨 Rename 'ItemType' elements to enum class standards
2021-09-13 00:25:49 +02:00
ephphatha
8e155e011f Rename helpers on Monster to match AnimationInfo 2021-09-12 02:27:47 +02:00
ephphatha
b12de6fe12 Use scoped enum for Direction
Identified and removed an instance of Direction being used as an argument for a bool parameter

Removed a single-use temporary variable being cast from sprite frame to direction to size_t

Co-authored-by: Anders Jenbo <anders@jenbo.dk>

Fix alignment of WalkSettings array
2021-09-12 02:27:47 +02:00
Anders Jenbo
cd79f0204d 🚨 Fix compiler warnings 2021-09-12 01:37:28 +02:00
qndel
90eb35d718 fix golems on maps with set pieces 2021-09-07 16:52:36 +02:00
ephphatha
6fa3018f05 Move Init/FreeMissileGFX functions alongside MissileSpriteData array definition
Also combined the two free missile graphics functions as they were always called together (just slightly out of order previously).
2021-09-07 01:09:51 +02:00
qndel
22ff664dee golem assert fix 2021-09-06 21:02:45 +02:00
Juliano Leal Goncalves
5430672477
🚚 Rename 'UniqMonstStruct' struct to 'UniqueMonsterData' (#2814) 2021-09-06 17:50:41 +02:00
Juliano Leal Goncalves
9f4438fa22
🚚 Rename 'TextDataStruct' struct to 'Speech' (#2805) 2021-09-06 17:47:07 +02:00
Juliano Leal Goncalves
32e22a16b3 ♻️ Leverage conversion constructor for 'Direction' to 'Displacement'
This makes code more consistent overall as we use the same pattern for dealing with Sizes.
2021-09-06 12:57:59 +02:00
Juliano Leal Goncalves
0d3d4c14f6
🚚 Rename 'Dead' concept to 'Corpse' everywhere (#2808) 2021-09-06 12:49:00 +02:00
Juliano Leal Goncalves
940a120bf9 ♻️ Replace 'ViewX' and 'ViewY' globals with single 'ViewPosition' 2021-09-04 18:06:28 -04:00
Juliano Leal Goncalves
d225202c34 🚚 Rename 'MonsterClass' members for consistency 2021-09-04 23:37:19 +02:00
Juliano Leal Goncalves
21b481bb46 ♻️ Convert 'MonsterClass' enum to enum class 2021-09-04 23:37:19 +02:00
Juliano Leal Goncalves
db1026fa39 🚚 Rename 'MonsterDataStruct' to 'MonsterData' 2021-09-02 21:57:50 +02:00
Juliano Leal Goncalves
6146b828e9 🚚 Rename 'MonsterData' global to 'MonstersData'
This avoids conflicts with the struct name as we'll be renaming that next.
2021-09-02 21:57:50 +02:00
qndel
0323b46e40 fix quest unique monster level 2021-09-02 17:08:09 +02:00
Juliano Leal Goncalves
6e1d05187e 🚚 Rename 'MissileStruct' to 'Missile' 2021-09-02 05:46:44 +02:00
Juliano Leal Goncalves
20db8d1a11 🚚 Rename 'MonsterStruct' to 'Monster' 2021-09-01 22:26:37 +02:00
Juliano Leal Goncalves
fe95e36d90 🎨 Leverage 'IsAnyOf' on monster mode checks 2021-09-01 19:15:08 +02:00
Juliano Leal Goncalves
1cd62bbc64 🚚 Rename 'MonsterMode' members for semantic and consistency 2021-09-01 19:15:08 +02:00
Juliano Leal Goncalves
69a7cb66d4 ♻️ Convert 'MON_MODE' enum to 'MonsterMode' enum class 2021-09-01 19:15:08 +02:00
Juliano Leal Goncalves
314ae59828 ♻️ Leverage 'IsWalking' function for monster walking checks 2021-09-01 19:15:08 +02:00