54 Commits
Author SHA1 Message Date
Anders Jenbo 15ed246239 Merge branch 'master' of github.com:diasurgical/devilutionX into development 2023-08-26 01:09:03 +02:00
staphen ab1af87bc9 Fix issues with light offset calculation 2023-08-17 11:07:28 +02:00
Gleb Mazovetskiy c19bfe87fa Remove utils/stdcompat/algorithm.hpp 2023-08-14 01:54:29 +01: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
qndel efaf334965 typos and code cleanup 2022-12-19 17:34:15 +01:00
KPhoenix 75d785a5f0 Bugfix: AnimationInfo integer division by 0 2022-12-19 01:32:37 +00:00
obligaron 5b11dfa2ed Fix preview frame shown fragment overflow 2022-12-17 10:30:36 +00:00
obligaron eca1a68bec AnimationInfo: Use fixed point math for fractions 2022-11-06 12:31:40 +00: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
obligaron 3c571bf64b Avoid overflow of tickCounterOfCurrentFrame (#4893)
* When MFLAG_ALLOW_SPECIAL is set, don't call processAnimation (avoid overflow of tickCounterOfCurrentFrame)
2022-07-05 19:23:32 +02:00
k-bar 26de74f4a2 AnimationInfo class correct style (#4870)
* AnimationInfo class correct case-style for private members

clang-tidy warnings:
readability-identifier-naming    invalid case style for private member

* AnimationInfo class correct case-style for members

clang-tidy warnings:
readability-identifier-naming    invalid case style for member

* AnimationInfo class correct case-style for methods

clang-tidy warnings:
readability-identifier-naming    invalid case style for method

* AnimationInfo class use nodiscard

clang-tidy warnings:
modernize-use-nodiscard    function  should be marked [[nodiscard]]
2022-07-03 16:55:37 +02:00
Gleb Mazovetskiy 21dc7f553d Add OptionalCelSprite: smaller than std::optional
`CelSprite` data pointer can never be `nullptr`.

We implement a smaller `optional` for it by taking advantage of that.
2022-07-03 12:26:39 +01:00
obligaron e87aca38bb Change animation frames and tick per frame to int8_t 2022-07-03 10:20:42 +01: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
obligaron 2843d99485 Fix walk stuttering with Preview Frame 2022-01-15 14:40:35 +01:00
obligaron 75760382ef Regard preview frame in AnimationInfo 2022-01-12 12:26:39 +01:00
obligaron a7f361de41 AnimationInfo: Change TicksSinceSequenceStarted and relevantAnimationTicksWithSkipping to float 2022-01-12 12:26:39 +01:00
Andrew James 949206424e Enable clang-tidy in Visual Studio projects (#3101) 2021-10-12 00:32:57 +00:00
ephphatha b15e08fc3f Deduplicate logic in GetAnimationProgress 2021-10-11 18:59:02 +02:00
obligaron e67ea3639f Fix AnimationInfo::GetAnimationProgress() when normal animation logic is used (for example loaded save games) 2021-09-16 19:22:24 +02:00
ephphatha 67ecea1a42 Always set the monster animation when ChangeAnimationData is called
Required updating AnimationInfo to handle being passed 0 for the total framecount, previously it would call clamp with min > max which was invalid.
2021-09-12 02:27:47 +02:00
ephphatha 8e155e011f Rename helpers on Monster to match AnimationInfo 2021-09-12 02:27:47 +02:00
Anders Jenbo d523fc1e81 Cleanups 2021-08-02 10:12:40 +02:00
obligaron 551645060b Fix item swapping and AnimationInfo::ChangeAnimationData 2021-07-26 22:46:16 +02:00
obligaron 54d63e2edd Change AnimationInfo.pCelSprite to const 2021-07-12 07:40:38 -07:00
Anders Jenbo 2ca6e37c46 Clean up sub folders using clang-tidy/Android Studio 2021-07-08 03:30:25 -07:00
ephphatha 3520dc4201 Update numeric literals to use appropriate suffix
Mainly things like .F for floats instead of doubles in float context.
2021-07-05 08:52:05 -07:00
obligaron 3a9cc631c7 Rename DelayLen -> TicksPerFrame
Rename DelayCounter -> TickCounterOfCurrentFrame
2021-06-27 01:26:49 -07:00
obligaron 3ba4bac5e2 Harmonize DelayLen for Player and Monster (was 1-based on monseter (>= DelayLen) and 0-based on player (> DelayLen). Now both are 1-based (>= DelayLen) 2021-06-27 01:26:49 -07:00
Anders Jenbo fa54499aeb Clang-tidy: readability-uppercase-literal-suffix
Strip suffixes
2021-06-27 03:17:36 +02:00
Anders Jenbo ec8d7bebe2 Clang-tidy: modernize-use-auto 2021-06-27 01:18:31 +02:00
obligaron d4bda3c13e ADL: correct comment typo 2021-06-26 13:30:36 -07:00
obligaron 801207a8ac ADL: Handle incorrect TicksSinceSequenceStarted better 2021-06-26 13:30:36 -07:00
obligaron fb23521288 Introduce AnimationInfo.IsPetrified to handle Stone Curse Spell 2021-06-25 11:52:12 -07:00
obligaron a4cacfbcbe Enable ADL for Monsters 2021-06-25 11:52:12 -07:00
Anders Jenbo af254601d6 ♻️ Apply clang-tidy to engine 2021-06-25 13:22:08 +02:00
qndel 6931c438d3 fix typo (#2150) 2021-06-13 20:15:23 +02:00
obligaron 61ba5009ac Convert to CelSprite 2021-05-24 20:12:43 +02:00
qndel 69b903743a fix typos 2021-05-23 05:52:52 +02:00
obligaron a295586636 Support changing animation data on-the-fly even if the number of frames differ 2021-05-19 21:16:19 +02:00
obligaron 19615c6976 AnimationInfo: Add GetAnimationProgress() 2021-05-16 21:24:36 +02:00
obligaron b94e599f5e ADL: Advance skipped Frames in SetNewAnimation and remove logic from PM_XYZ 2021-05-09 09:53:53 +02:00
Anders Jenbo c11945e62b 🎨 Fix line endings 2021-05-07 23:22:51 +02:00
Anders Jenbo f579b2f287 Handle cel/cl2 files as byte arrays 2021-05-06 13:17:54 +02:00
obligaron cb7819a75c Introduce AnimationDistributionFlags::RepeatedAction 2021-05-06 07:52:17 +02:00
obligaron b5954eb34b Change AnimationDistributionParams to AnimationDistributionFlags 2021-05-06 07:52:17 +02:00
obligaron b08e0c20dc In repeated Animations show skipped Frames from previous Animation (repeated Attack/RangeAttack/Spell) 2021-05-06 07:52:17 +02:00
obligaron 401a820998 Rename GameTick to Tick (for variables) 2021-04-29 04:33:51 +02:00
obligaron 26601c98dc Simplify GetFrameToUseForRendering (remove local variables and use member variables) 2021-04-29 04:33:51 +02:00