1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-27 03:35:27 +00:00

321 Commits

Author SHA1 Message Date
psi29a
c0dca5371b Merge branch 'recalc_mana' into 'master'
Don't wait a frame to recalculate magicka

Closes #3792

See merge request OpenMW/openmw!1323
2021-10-26 08:58:04 +00:00
Evil Eye
289e1544d2 Don't wait a frame to recalculate magicka 2021-10-25 16:54:50 +02:00
Andrei Kortunov
107a9ecb17 Fix variables hiding 2021-10-24 18:45:04 +04:00
psi29a
a4899d72f4 Merge branch 'deduplicate_swim_speed' into 'master'
Deduplicate swim speed formula implementation

See merge request OpenMW/openmw!1310
2021-10-22 12:34:19 +00:00
elsid
68ed8487b5
Use lambda instead of bool to make sure GMST initialized once
This is less expensive than having 2 static variables and thread-safe.
2021-10-21 03:19:12 +02:00
elsid
2a0e1697b6
Deduplicate swim speed formula implementation 2021-10-21 01:25:09 +02:00
Bo Svensson
ef906cbfa8
improves MWClass mapping (#3166)
Currently, we use a peculiar mapping of ESM classes by their std::type_info::name. This mapping is an undefined behaviour because std::type_info::name is strictly implementation defined. It could return a non-unique value on some platforms. With this PR we use the unsigned int sRecordId of the ESM class as a more efficient lookup type that does not build on undefined behaviour. We can expect marginally faster save-game loading with these changes as well.
2021-10-11 13:46:21 +02:00
Evil Eye
60298cd66d Reset rotation when respawning actors 2021-09-14 16:53:57 +02:00
cc9cii
b1fb3e2313 Add missing includes. 2021-08-17 13:53:14 +10:00
cc9cii
47a841d3b7 Fix/workaround for Issue #3246
OpenMW save file assumes the presence of NPC/Creature data but the vanilla save file provides only the delta changes in most situations.  The base data are not available without loading all the relevant dependency content files.  Duplicating that code in the ESSImporter is not desirable.

Ideally a flag should be set but that will mean a change in the save file format.  For a minor change such as this doing so seems like an overkill.  So a temporary workaround is introduced where the gold carried by the NPC/Creature is used as an indicator as the lack of ACDT data.
2021-08-17 12:29:28 +10:00
fredzio
88a5ca440b Change moveObject() to take a osg::Vec3f argument instead of 3 floats
for readability.
2021-07-30 23:24:49 +02:00
Evil Eye
087e933326 Close windows using Ptrs that are about to be deleted 2021-07-15 22:31:26 +02:00
cc9cii
4b3de46bfa Use enums in place of magic numbers. Ensure Creature and NPC cell references are always saved as persistent. 2021-07-06 12:37:02 +10:00
cc9cii
f2a301653c Remove redundant mPersistent member from ESM::NPC and ESM::Creature, replaced by mRecordFlags. Fixed the editing of the persistence flag value. 2021-06-30 08:20:29 +10:00
jvoisin
04edb1c817 Trim down some internal includes 2021-04-30 19:39:26 +02:00
elsid
e1d955d92b
Remove noexcept specifier from CreatureCustomData move ctor
C++17 doesn't allow to declare defaulted move ctor with not matching
exception specification to the calculated one:
/Users/eddie/Downloads/BUILD/openmw-master/apps/openmw/mwclass/creature.cpp:63:9: error:
      exception specification of explicitly defaulted move constructor does not
      match the calculated one
        CreatureCustomData(CreatureCustomData&& other) noexcept = default;
        ^

http://wg21.link/p1286r2 makes this possible in C++20 and newer compilers
already have it working even with -std=c++17 but older onces give an error.
2021-04-24 00:32:22 +02:00
elsid
bd33fa76b6
Use CRTP to define CustomData clone function 2021-04-05 11:53:07 +02:00
elsid
045bb7cbd7
Store CustomData and ContainerStore as unique_ptr 2021-04-05 11:52:52 +02:00
Andrei Kortunov
8084a336b5 Replace zeroes and nulls by nullptrs 2020-11-29 11:14:07 +04:00
Andrei Kortunov
8ca3c3b123 Mark overrided methods by override keyword 2020-10-16 22:18:54 +04:00
Assumeru
72549651e0
Rework container resolution (#3006)
* Rework container resolution

* add optional argument to getCount

* remove now-redundant changes

* undo worldimp changes

* move save-fixing code to InventoryState

* replace Rng instances with Seeds
2020-10-13 17:46:32 +02:00
psi29a
f90a049702 Merge branch 'movement_refactoring' into 'master'
Refactoring related to "smooth movement"

See merge request OpenMW/openmw!285

(cherry picked from commit 6eaf0a389d5aed3b74ab1a7cf89574612f964bdf)

e847b4c8 Split getSpeed() to getMaxSpeed() and getCurrentSpeed()
a96c46bc Refactor calculation of movement.mSpeedFactor
03ee9090 Use getMaxSpeed instead of getCurrentSpeed where it makes sense.
a178af5c Create helper functions `normalizeAngle` and `rotateVec2f`
2020-08-27 11:54:30 +00:00
Evil Eye
6ad20ec9c7 Mutate base records when adding/removing spells 2020-07-28 08:33:28 +02:00
Evil Eye
040a92c373 implement additem/removeitem for non-unique actors 2020-07-26 11:07:18 +02:00
Petr Mikheev
b4c699348f Improved strafe movement 2020-06-22 15:22:34 +02:00
elsid
374b85a00d
Add Class methods to get walk, run, swim speed 2020-06-13 02:24:51 +02:00
elsid
a35497de0c
Remove redundant runSpeed as always equal to walkSpeed 2020-06-13 02:24:45 +02:00
Bret Curtis
6bc04507ef
Merge pull request #2715 from akortunov/cleanup
Remove custom data for disposed actors
2020-06-08 12:29:28 +02:00
Andrei Kortunov
5468fcb29f Store attributes and skills values as floats (bug #4021) 2020-06-03 17:34:15 +04:00
Evil Eye
4d7947d27c Mutate base records when editing AI settings (#2798) 2020-06-02 21:59:37 +02:00
Andrei Kortunov
dea2018d9f Do not use dynamic casts when using ObjectState 2020-03-17 15:18:40 +04:00
Andrei Kortunov
ae65b0228a Do not write custom data for disposed actors 2020-03-07 13:01:14 +04:00
Andrei Kortunov
61ab7f3c1e Implement actors movement deceleration (feature #4544) 2019-10-31 14:41:12 +04:00
Andrei Kortunov
649a14dfae
Merge branch 'master' into activation 2019-09-16 10:52:16 +04:00
Capostrophic
480000da07 Use Open action as fallback for companion activation (bug #5161) 2019-09-15 23:17:36 +03:00
Capostrophic
718dbd3f9a Use object ID as the substitution for their name (bug #5158) 2019-09-11 00:06:50 +03:00
Capostrophic
6b74630f6e Preparation work
Phase out canBeActivated() to unify activation checks
Use getName() for the name caption in tooltips
Always use tooltips for non-activator objects
Invert hasTooltip default value
2019-09-10 23:38:16 +03:00
capostrophic
e5331aab28 Escape number signs in object names for tooltips 2019-08-17 21:53:52 +03:00
unknown
6baa5da6c9 Fix scripts not executing on respawn 2019-08-06 21:30:21 +02:00
Capostrophic
144b1b9b06 Magic armor mitigation for creatures (feature #5033) 2019-05-11 19:21:49 +03:00
Capostrophic
7814bd1b76 Support eight possible blood types (feature #4958) 2019-04-14 18:48:31 +03:00
Capostrophic
424716977b Only play miss sound for player attacks (bug #4969) 2019-04-10 22:28:22 +03:00
Capostrophic
1424399118 Disable any footstep sounds when flying (bug #4948) 2019-04-04 17:22:24 +03:00
Capostrophic
594ea39f5d Revise AI data handling
Make Hello 16-bit unsigned as it's intended to be
Get rid of redundant mHasAI boolean
Always save AI data subrecord
Adjust creature and NPC default rating values to Morrowind defaults
2019-02-23 21:00:47 +03:00
Capostrophic
b738cc0383 Make normal weapon resistance behavior closer to vanilla (bug #4384)
Check both the ranged weapon and the projectile before modifying the damage
Don't attempt to apply NPC-specific werewolf damage mult to damage to creatures
2019-02-22 00:01:21 +03:00
Capostrophic
64d5cd17d6 Move werewolf silver damage mult applying into a new function 2019-02-22 00:01:21 +03:00
Capostrophic
808b8ce8db Refactor normal weapon resistance 2019-02-22 00:01:21 +03:00
Capostrophic
5c889f7359 Add creature-with-the-same-model soundgen fallback (bug #4813)
Creatures will use sounds of the first creature that has the same model in the record store when possible.
2019-01-29 16:29:47 +03:00
Andrei Kortunov
92e45507d8 Weapon sheathing support, including quivers and scabbards (feature #4673) 2018-11-05 11:18:20 +04:00
Capostrophic
4b1d287eda Clean up redundant getClass calls in classes 2018-10-28 17:03:38 +03:00