obligaron
d4a70a2bc5
Fix MSVC warnings in monster.cpp/monsterdat.cpp
2023-11-28 22:18:51 +01:00
Gleb Mazovetskiy
7cb24054a3
DataFile: Add a couple of helper methods
2023-11-18 17:33:14 +00:00
Gleb Mazovetskiy
cfdade5f37
Simplify txtdata parsing with a helper class
2023-11-14 00:20:17 +00:00
Gleb Mazovetskiy
99fea0d1c5
Migrate unique monsters to data files
2023-11-10 17:44:45 +00:00
Gleb Mazovetskiy
2eae121931
Migrate monstdat to a data file
...
We may want to migrate this to 1 file per monster but for now the
migration is as close to the hard-coded version as possible.
Sprites that are used by multiple monsters are only loaded from disk
once.
2023-11-10 06:01:40 +00:00
Gleb Mazovetskiy
0d19c1b773
Slightly optimize loading same-sprite monsters
...
For monsters with the same sprite, load the sprite from the file system only once.
Example:
```
VERBOSE: Loaded monster graphics: falspear\phall 452 KiB x1
VERBOSE: Loaded monster graphics: skelbow\sklbw 618 KiB x1
VERBOSE: Loaded monster graphics: skelsd\sklsr 610 KiB x1
VERBOSE: Loaded monster graphics: goatbow\goatb 832 KiB x1
VERBOSE: Loaded monster graphics: bat\bat 282 KiB x2 <-- here we only load the sprite once
VERBOSE: Loaded monster graphics: rhino\rhino 1306 KiB x1
VERBOSE: Loaded monster graphics: golem\golem 298 KiB x1
VERBOSE: Total monster graphics: 4401 KiB 4684 KiB
```
Here, the bat sprite will be loaded from the MPQ only once.
For the second sprite, we simply clone the first sprite before applying TRNs.
This also reduces the size of `MonsterData` from 88 bytes to 80.
When we migrate monster data to a TSV, the sprite IDs can be generated automatically at load time.
2023-11-10 06:01:40 +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
82cf475b05
Change Na-Krul's animation rates from 0 to 1
2023-04-25 19:08:17 +02:00
Eric Robinson
d7b6c7dca8
Refactor Missile Function Names ( #5733 )
2023-02-03 03:27:57 +01:00
Eric Robinson
30c1991039
enum _mai_id -> enum class MonsterAIID (#5683 )
2023-01-28 00:10:15 +01:00
Gleb Mazovetskiy
7c53a5d5b3
Reduce ObjectData size: 24 bytes -> 11 bytes
...
1. Reduces sizes of integral fields.
2. Merges boolean flags into a single field.
2023-01-25 09:32:50 +00:00
Gleb Mazovetskiy
b281f0afac
Run tools/cpp_format_struct_table.py
2023-01-15 14:57:17 +01:00
staphen
6199019d5a
Fix alignment of values and field names in monster data
2022-11-26 20:20:37 -05: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
Vladimir Olteanu
33f4289634
Get rid of unused immunity
2022-08-03 02:36:01 +02:00
Anders Jenbo
16b65120ea
Clean up LevelMonsterTypes related code
2022-07-15 19:36:47 +02:00
Mikołaj Piróg
262fa9ac2d
Rename MonsterData members ( #5000 )
2022-07-15 16:20:13 +02:00
Gleb Mazovetskiy
9928d691e4
Remove MonsterData#has_trans
...
1. Removes the field because it is redundant, checks for
`TransFile != nullptr` instead.
2. Fixes the missing TRN on Bone Demon, a stronger variant of Skullwing.
2022-07-10 20:08:11 +02:00
Gleb Mazovetskiy
53975d9264
monstdat: Simplify paths
...
1. Remove `Monsters\` from `sndfile` and `TransFile`.
2. Where `sndfile` is the same as `GraphicType`, set `sndfile` to
`nullptr`.
2022-07-10 06:14:58 +02:00
Mikołaj Piróg
15989609a8
Members' name changes and comments in Monster struct ( #4861 )
2022-07-06 10:21:22 +02: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
Gleb Mazovetskiy
3178dd5158
Replace most uses of sprintf with fmt ( #4837 )
2022-07-01 17:02:56 +02:00
Gleb Mazovetskiy
a939b12f97
monstdat: Fix incompatible enum warning
2022-06-18 10:35:56 +01:00
Anders Jenbo
8e334ada77
[hellfire] Fix incorrecct monster ids in dun tabel
2022-06-03 08:37:37 +02:00
Anders Jenbo
d6b258926e
Apply type checking on monster type
2022-05-23 07:31:50 +02:00
Anders Jenbo
134791af3f
Remove pointless math related to finding monsters for levels
2022-05-11 11:28:05 +02:00
ikonomov
c09751b388
minor alignment adjustment ( #4534 )
...
* minor header alignment adjustment in monstdat.cpp
2022-05-04 07:59:33 +02:00
Gleb Mazovetskiy
48ff656dc0
Load monster graphics into a single buffer
...
Follow-up to a5e1fa5bbe , which loaded
the missiles into a single buffer.
2022-02-17 22:02:41 +00:00
DakkJaniels
0790416781
Unique Monster Variable Rename ( #4060 )
...
* fix variable name to reflect what it is modifying (unique monster custom to hit, not custom hit points)
* align UniqueMonstersData table
2022-02-14 13:38:31 +01:00
Gleb Mazovetskiy and Anders Jenbo
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 <[email protected] >
2021-11-24 23:44:12 +01:00
Anders Jenbo
f13e66ad04
Mark all names as translatable
2021-09-20 15:48:39 +02:00
Anders Jenbo
671fdbd125
Implement contextural translation (pgettext)
...
Fixes #2369
Fixes #2790
2021-09-20 04:18:35 +02:00
Juliano Leal Goncalves
5430672477
🚚 Rename 'UniqMonstStruct' struct to 'UniqueMonsterData' (#2814 )
2021-09-06 17:50:41 +02: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
a14a3ba455
add enums to monsters
2021-09-02 17:22:27 +02:00
qndel
0530fcb969
apply enums to mTreasure
2021-08-21 19:23:11 +02:00
obligaron
d63fcded76
Refactor PlaceGroup ( #2425 )
...
* Rename MonstPlace -> CanPlaceMonster
* Refactor custom hitpoints and armorclass out of mUnqAttr
* Introduce enum UniqueMonsterPack
2021-07-19 03:55:31 +00:00
Anders Jenbo
ef6275caac
Clean up private function names
2021-07-12 17:59:22 -07:00
Anders Jenbo
bc0d1f7ac0
clang-tidy/Android Stuidio cleanups 3
2021-07-04 16:09:32 -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
arcas
6502a3ca4d
Adding resources for translation ( #1973 )
2021-05-15 14:12:28 +02:00
Anders Jenbo
4b577329f4
♻️ Refactor towner initialization
2021-05-07 00:30:23 +02:00
M0Rf30
570372331b
🐞 Fix typo for Maelstrom monster
2021-05-04 19:27:10 +02:00
Anders Jenbo
5517bb05bd
✏️ Correct name of Black Jade
2021-04-28 01:58:00 +02:00
Anders Jenbo
187d547fb8
🌐 Remove unused string from the translation list
2021-04-28 01:58:00 +02:00
Anders Jenbo
b69d18f12d
🌐 Enable translation of all remaning strings
2021-04-25 21:32:41 +02:00
Anders Jenbo
bb4e1960e7
🎨 modernize-use-nullptr
2021-04-19 16:02:05 +02:00