Commit graph

509 commits

Author SHA1 Message Date
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
qndel
9536927301
Display hp/mana values on life/mana orbs (#4006) 2022-01-27 12:19:32 +01:00
obligaron
234a053863 Change Missiles Array to std::list 2022-01-20 23:12:48 +01:00
obligaron
35dc64312e Show preview CelSprite for player actions (Introduce PlayerStruct.pPreviewCelSprite and UpdatePreviewFrame) 2022-01-12 12:26:39 +01:00
obligaron
ac0bd7bb58 DrawPlayer: Calculate Width2 later 2022-01-12 12:26:39 +01:00
Gleb Mazovetskiy
e12adf689e Fix windows build 2022-01-06 13:43:01 +00:00
Anders Jenbo
6b2481a76c Touch support on all SDL2 platforms 2022-01-02 11:37:38 +01:00
Trihedraf
bb68c800bc move FPS display down due to new display of difficulty 2022-01-01 09:34:56 +01:00
ephphatha
279fbe32b3 Tidy up checks for missile collision with objects/tiles
This was repeated in multiple places with essentially identical logic. Can expose the existing missiles.cpp function to capture the use in scrollrt.cpp
2021-12-28 16:01:37 +01:00
ephphatha
01ffc2c501 Use ObjectAtPosition helper in DrawObject 2021-12-28 16:01:37 +01:00
Gleb Mazovetskiy
c57644970f Move UiFlags and UiPanels into their own files
The first breaks circular dependency between `DiabloUI` and `text_render`.
The latter one moves `UiPanels` to a more appropriate place.
2021-11-25 12:22:27 +01:00
Gleb Mazovetskiy
7e1fea6f76 clang-format all files in {Source,test}/
Also includes a few manual tweaks to comments and newlines for better results.

Co-authored-by: Anders Jenbo <anders@jenbo.dk>
2021-11-24 23:44:12 +01:00
obligaron
677303cba9
Reduce use of view globals in game menu 2021-11-20 21:57:32 +01:00
qndel
4072bd351f fix debug display in town 2021-11-14 19:49:31 +01:00
Anders Jenbo
56170b3372 Clean up id normalization 2021-11-07 23:15:10 +01:00
qndel
53f89fb9d9
debug fps command (#3418) 2021-11-07 11:23:31 +00:00
Andrew James
796e2813cf
Use scoped enums for DungeonFlags/BFLAG (#3135) 2021-11-07 03:11:16 +01:00
qndel
46ed79ad42
add megatiles to tiledata (#3211) 2021-11-06 18:53:53 +01:00
ephphatha
782e07d967 Refactor DrawObject to avoid repeated Objects lookup
The check if the object position is offset is not strictly necessary as a displacement of {0, 0} remains the same after the world/screen transform.
2021-10-30 09:08:11 +02:00
Anders Jenbo
609414fd69 [touch] Indicate level up in a touch friendly way 2021-10-26 07:52:06 +02:00
qndel
0ccdf940f7
fix bounds checks (#3237) 2021-10-24 17:20:04 +02:00
Anders Jenbo
1ba7e07b29 Do not show the cursor when using a touch device 2021-10-20 05:08:45 +02:00
obligaron
f9b306d24f Change EnableFrameCount() from toggle to enable only 2021-10-14 19:34:59 +02:00
qndel
f8cda02456 apply bounds check function 2021-10-12 01:18:28 +02:00
staphen
1142d2ee7b Hardware rendering for the virtual gamepad 2021-09-22 00:32:17 +02:00
obligaron
e62aaa562f Fix missiles don't hit horizontal walking players/monsters 2021-09-17 21:03:41 +02:00
staphen
599b29d825 Add renderer for displaying virtual gamepad on screen 2021-09-16 19:25:31 +02:00
obligaron
9678d002d3 Reduce exported functions in debug.h 2021-09-16 19:18:06 +02:00
Vladimir Olteanu
d4d89077cd Don't free PalSurface when it was obtained from SDL_GetVideoSurface 2021-09-13 23:07:04 +02:00
qndel
a0461bd1c0 stop displaying 0's in tiledata debug command 2021-09-12 18:15:45 +02:00
qndel
d05316c67d tiledata debug command 2021-09-12 15:20:27 +02:00
ephphatha
87a33097a0 Rename ScrollDirection enum to follow convention
Pretty sure the backing type can be left to the default as well but I haven't had the time to investigate where it's used fully.
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
7169882b1f Implement new font rendering 2021-09-12 01:37:28 +02:00
Siddharth singh chouhan
ec1850e295
Move documentation from implementations to declarations #2735 (#2836) 2021-09-10 21:54:22 +02:00
Juliano Leal Goncalves
d82b3b542f
🚚 Rename 'MissileDataStruct' struct to 'MissileData' (#2803)
* 🚚 Rename 'MissileDataStruct' struct to 'MissileData'
* 🚚 Rename 'MissileData' global array to 'MissilesData'
2021-09-06 12:59:43 +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
84ede906a0 ♻️ Replace usages of 'ShiftGrid' against 'Point' values with direct offset/direction-based increments 2021-09-06 00:31:25 +02:00
Juliano Leal Goncalves
f5e88b0d9e ♻️ Leverage 'Point' in 'DrawTileContent' function 2021-09-06 00:31:25 +02:00
Juliano Leal Goncalves
5985bf10a0 ♻️ Leverage 'Point' in 'DrawDeadPlayer' function 2021-09-06 00:31:25 +02:00
Juliano Leal Goncalves
184adcefea ♻️ Leverage 'Point' in 'DrawMonster' function 2021-09-06 00:31:25 +02:00
Juliano Leal Goncalves
322d8b340e ♻️ Leverage 'Point' in 'DrawMonsterHelper' function 2021-09-06 00:31:25 +02:00
Juliano Leal Goncalves
11a6be073c ♻️ Leverage 'Point' in 'DrawPlayerIconHelper' function 2021-09-06 00:31:25 +02:00
Juliano Leal Goncalves
66c8bb68af ♻️ Leverage 'Point' in 'DrawPlayerIcons' function 2021-09-06 00:31:25 +02:00
Juliano Leal Goncalves
1f264f7eb4 ♻️ Leverage 'Point' in 'DrawPlayer' function 2021-09-06 00:31:25 +02:00
Juliano Leal Goncalves
3a9b4c02c1 ♻️ Leverage 'Point' in 'DrawPlayerHelper' function 2021-09-06 00:31:25 +02:00
Juliano Leal Goncalves
bb093ff3a2 ♻️ Leverage 'Point' in 'DrawItem' function 2021-09-06 00:31:25 +02:00
Juliano Leal Goncalves
db3ec3f329 ♻️ Leverage 'Point' in 'DrawObject' function 2021-09-06 00:31:25 +02:00
Juliano Leal Goncalves
0b2f443d97 ♻️ Leverage 'Point' in 'DrawMissile' function 2021-09-06 00:31:25 +02:00