84 Commits
Author SHA1 Message Date
Eric Robinson 5937734b85 Move *dat files to tables dir 2026-01-05 20:14:23 +01:00
Gleb Mazovetskiy a7651f15d9 Extract HeadlessMode from diablo.h
Untangles some dependencies.
Many places that use `HeadlessMode` do not need all of `diablo.h`.
2025-01-09 12:21:26 +00:00
Gleb Mazovetskiy 5bf0b8bc96 Add more missing <cstdint> includes
https://github.com/diasurgical/devilutionX/pull/6095 only added includes
for `uint32_t`, this PR also adds the includes for the remaining
integral types.
2023-05-10 16:29:27 +01:00
staphen 45da8b2295 Remove unique monster's light when no corpse is left behind 2023-04-25 19:16:44 +02: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
Gleb Mazovetskiy 961866e1c4 CLX: A new graphics format
The format is almost identical to CL2, except it uses the frame header
to store frame width and height instead of 5 32-line offsets.

This means we always have access to frame dimensions, so we can use it
as an on-disk format for our graphics as well.

Additionally, we may be able to optimize the rendering even more
in the future now that we have guaranteed knowledge of frame dimensions.
2022-08-03 02:38:55 +02:00
Anders Jenbo 16b65120ea Clean up LevelMonsterTypes related code 2022-07-15 19:36:47 +02:00
ephphatha 1337ff6ea2 Add check if a monster potentially has leashed minions 2022-07-13 07:13:34 +02:00
Gleb Mazovetskiy 33ac2cca8e ♻️ Make Monster counters size_t 2022-07-12 03:04:53 +01:00
Mikołaj Piróg 15989609a8 Members' name changes and comments in Monster struct (#4861) 2022-07-06 10:21:22 +02:00
Gleb Mazovetskiy 6949a6f418 Monster: Remove MType/MData pointers
These pointers are redundant, replaces them with methods.
2022-07-03 13:21:11 +01:00
Mikołaj Piróg 7cab074aa5 Correct members' names in monster.h (#4850)
* Fix case in AnimStruct
* Rename CMonster members
2022-07-01 23:34:32 +02:00
Mikołaj Piróg 2e7ff45fbf Monster global constants cleanup (#4827)
* Change #defines to constexpr const, add constexpr where applicable, fix typos
2022-07-01 00:43:03 +02:00
Anders Jenbo 6d56058708 Move level generation to subfolder 2022-06-23 09:21:58 +02:00
Gleb Mazovetskiy a66ca44695 Zero-based frame indexing
Index frames starting at 0 instead of 1.
2022-04-14 04:39:26 +01:00
Gleb Mazovetskiy 7fede6c4cb Clean up owned/unowned CelSprite ambiguity
Makes `CelSprite` unowned and adds a new `OwnedCelSprite` class for
owned sprites.

This clarifies ownership and makes the code cleaner in a number of
places.

Additionally, because the `CelSprite` class is now tiny (1 less
pointer), we can pass it by-value instead of by-reference, removing a
pointer indirection in the rendering functions.
2022-03-06 04:49:13 +01:00
qndel 9ba64ad08b TRN rewrite + bugfix (#4056)
* working new TRN system
* apply TRNs to all unique missiles
2022-02-20 14:28:51 +01:00
Gleb Mazovetskiy a5e1fa5bbe Load missile frames into a single buffer
Previously, the memory for each frame was allocated separately.

Changes it to allocate a single buffer for all the frames.

This has the following advantages:

1. Less bookkeeping overhead in the allocator.
2. Less alignment overhead (allocator results are max-aligned by default).

We can follow this up with a similar treatment for other multi-file
animations.
2022-02-01 04:04:59 +00:00
ephphathaandAnders Jenbo 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 <[email protected]>

Fix alignment of WalkSettings array
2021-09-12 02:27:47 +02:00
Juliano Leal Goncalves 0d3d4c14f6 🚚 Rename 'Dead' concept to 'Corpse' everywhere (#2808) 2021-09-06 12:49:00 +02:00
qndel e355d03019 Rename SetDead 2021-08-21 02:11:41 +02:00
vlad a07ea153ae load animation into correct Dead slot - fixes crash on killing petrified monsters -
fixes https://github.com/diasurgical/devilutionX/issues/2633
2021-08-20 00:47:45 +02:00
Anders Jenbo e9f1d6ad88 Fix crash on monster death with existing saves
fixes #2603
2021-08-15 04:08:05 +02:00
Anders Jenbo f289fbcec5 Remove dead missile code 2021-08-13 03:59:29 +02:00
Vladimir Olteanu 040ca7b1e9 Remove logic related to unused MFLAG_ALLOW_SPECIAL 2021-08-12 00:19:09 +02:00
Vladimir Olteanu 3364a4e00c Refactor MisFileData
MisFileData: make pinnedMem private
2021-08-12 00:19:09 +02:00
Anders Jenbo 77b72da276 ♻️Use monster by reference when possible 2021-07-14 20:22:35 -07:00
Anders Jenbo ef6275caac Clean up private function names 2021-07-12 17:59:22 -07:00
obligaron 54d63e2edd Change AnimationInfo.pCelSprite to const 2021-07-12 07:40:38 -07:00
obligaron 3e57d0d69b Introduce MonsterGraphic enum class 2021-07-12 07:40:38 -07:00
obligaron 5f7a2803fc Introduce CMonster::GetAnimData 2021-07-12 07:40:38 -07:00
Anders Jenbo 9ae908f947 Rename missile globals 2021-07-08 02:01:14 -07:00
Anders Jenbo 07ad083fda Rename monster globals 2021-07-08 02:01:14 -07:00
Anders Jenbo cb564a2d54 Clean up A-D 2021-07-04 05:25:37 -07:00
Anders Jenbo 4eabc6024b Apply various cleanups via Android Studio 2021-07-03 18:27:17 -07:00
Anders Jenbo e11b86b6f1 Clang-tidy: llvm-namespace-comment 2021-06-27 01:44:20 +02:00
Anders Jenbo de4ced7e4f Clang-tidy: readability-qualified-auto 2021-06-27 00:56:08 +02:00
obligaron b5ad92eb2c Convert _mAnimData to CelSprite 2021-06-18 21:47:19 +02:00
obligaron ceda0b46ce Introduce InitDeadAnimationFromMonster 2021-06-18 21:47:19 +02:00
Juliano Leal Goncalves b3ec79af4f Leverage 'Point' in Lighting and Player functions (#2048) 2021-05-24 17:28:52 +02:00
Juliano Leal Goncalves d55cd99dd5 🚚 Rename 'direction' enum to 'Direction' 2021-05-24 04:46:08 +02:00
Gleb Mazovetskiy 28182ca5e3 🧹 Fix a couple more compilation warnings 2021-05-01 23:55:45 +02:00
Vladimir Olteanu 4d5b9ac023 Coding style changes for dead.h, dead.cpp 2021-04-28 12:56:00 +02:00
Vladimir Olteanu 2a3cf98850 Slight cleanup of dead{.h,.cpp} 2021-04-28 12:56:00 +02:00
obligaron 239a43cc1c Remove "AnimWidth2" expect for missiles (#1680) 2021-04-25 13:32:33 +02:00
Anders Jenbo 61d15e23db 🎨 Apply direction enum to monsters and relations
Missiles _mimfnum is being used for a lot more then just directions and
can also be a 16 degree direction so can't apply enum verbs and
restricitons to it in most cases. This in turns also affects SetMissDir
and some other functions that have to stay int.
2021-04-18 23:13:03 +02:00
Anders Jenbo b238d320c2 🎨 Clean up dead.cpp 2021-04-18 21:21:51 +02:00
Anders Jenbo 01afe7c997 🎨 clang-tidy iterators 2021-04-18 21:21:51 +02:00
Anders Jenbo d9c2108513 🎨 clang-tidy type definition 2021-04-18 21:21:51 +02:00