Ben Shealy
5085afa3d7
Moved mechanics code from MWGui::TradeWindow to MWMechanics::Trading
2016-06-04 12:28:47 -04:00
Allofich
bce66c629a
Change editor-placed AI packages to cycle
2016-05-29 17:34:40 +09:00
scrawl
496cb85b01
Do not cancel Ai packages when on loading ( Fixes #3409 )
...
This piece of code was an attempt to fix up save games made before commit d3b76b7006
, but ended up introducing a new bug.
2016-05-28 20:27:05 +02:00
scrawl
0efbdb25ee
Improve const-correctness in Animation
2016-05-19 22:30:14 +02:00
scrawl
3749821809
Choose a random death animation for actors that start the game as dead ( Fixes #3397 )
2016-05-19 21:40:05 +02:00
scrawl
3b31e8f66e
Do not set AiPackageDone flag for non-Aipackages ( Fixes #3392 )
2016-05-14 19:19:37 +02:00
Roman Proskuryakov
d7046878a8
Fix uninitialized values in MWMechanics::AiCombat
2016-05-07 20:41:47 +03:00
Michał Moroz
40cc6a4164
Changed AiSequence::stack to push_back lower priority packages instead of push_front (Bug #3384 )
2016-05-04 13:55:36 +02:00
scrawl
93b2f09224
Workaround for some AI functions being incorrectly handled as AI packages (Bug #3378 )
2016-04-29 18:07:35 +02:00
scrawl
5edfe8c41c
Reduce the wander fast forward overcrowding offset ( Fixes #3370 )
2016-04-23 22:47:42 +02:00
Austin Salgat
be16857f96
Fix wrong height being used for water detection
2016-04-17 10:46:09 -05:00
Austin Salgat
e9157e9200
Fix idle animation and Fix water creature manual wandering
2016-04-16 20:38:58 -05:00
Austin Salgat
3dec10c686
Update variable to prevent underflowing
...
While not an issue presently, the variable may be used in the future in a way that could create issues if it underflows.
2016-04-16 17:51:13 -05:00
Austin Salgat
84179c262f
Update manual wandering to prevent actor from leaving/entering water
...
Water creatures will stay in the water, while land creatures will stay on land when wandering.
2016-04-16 16:39:13 -05:00
Austin Salgat
fc03216d48
Refactor to reuse existing obstacle detection
2016-04-16 12:14:00 -05:00
Austin Salgat
34726c24d9
Fix mDistance being reset prematurely
...
This was causing wandering without pathgrids to become disabled for most wandering units. Additionally, wandering now behaves the same for both NPCs and creatures.
2016-04-15 21:56:41 -05:00
Austin Salgat
92b352989a
Add logic for NPC wandering without pathgrids
2016-04-13 20:48:08 -05:00
Austin Salgat
c02881a4f8
Fix creatures not wandering
2016-04-12 21:16:55 -05:00
Austin Salgat
38f5a225ea
Refactor PathFinder functions to be useable by AiWander
...
This avoids having to duplicate the distanceSquared and getClosestPoint functions.
2016-04-10 20:44:08 -05:00
Austin Salgat
96231e17f0
Fix wandering NPCs going off pathgrid
...
If multiple pathgrids exist in the same cell, sometimes an NPC would port to a different pathgrid that was nearby. This is an issue since it allowed them to do things like travel through walls to inaccessible areas. Now they will only wander along the closest connected pathgrid.
2016-04-10 20:21:18 -05:00
scrawl
79c8f69b24
Clear the class selected / race selected flags when starting a new game ( Fixes #3326 )
2016-04-03 20:23:28 +02:00
scrawl
e71aa53574
Don't allow playing a sound/soundgen key more than once at the same time on the same object ( Fixes #2689 )
2016-03-24 19:26:12 +01:00
scrawl
b332704df7
Switch hand-to-hand attack types randomly when "always use best attack" is turned on ( Fixes #3259 )
2016-03-19 18:03:59 +01:00
scrawl
a6e23d03d3
Don't clamp disposition twice, clamping is already done inside getDerivedDisposition
2016-03-18 00:42:22 +01:00
scrawl
102f9719f7
Remove some garbage
2016-03-18 00:39:27 +01:00
scrawl
79eb2d20e0
Cleanup
2016-03-18 00:39:19 +01:00
scrawl
12ec90f9e7
Change default argument, fix GetDisposition
2016-03-18 00:38:02 +01:00
scrawl
bc5adfa4fe
Merge pull request #913
2016-03-18 00:31:55 +01:00
scrawl
14e1911820
Fix memory leaks
2016-03-10 20:38:14 +01:00
ae-g-i-s
c9791c5c1a
Add addTemporaryDispositionChange parameter to MechanicsManager::getDerivedDisposition(), adjust callers that previously added temp disposition changes themselves ( fixes #3233 )
2016-03-08 21:30:28 +01:00
ae-g-i-s
2f1c6c740c
Revert "Fix incorrect handling of baseDisposition >= 100 in testDisposition(), enable unbounded getDerivedDisposition() ( Fixes #3233 )"
...
This reverts commit 000597236e
.
2016-03-08 20:41:39 +01:00
ae-g-i-s
000597236e
Fix incorrect handling of baseDisposition >= 100 in testDisposition(), enable unbounded getDerivedDisposition() ( Fixes #3233 )
2016-03-06 18:29:32 +01:00
scrawl
2821f46a18
Corpse clearing fix
2016-03-01 11:31:08 +01:00
scrawl
7485abe5c3
Use safePlaceObject for summoned creature spawning
2016-02-29 17:27:07 +01:00
scrawl
11f00e3aa9
Rename safePlaceObject to placeObject
2016-02-29 17:05:18 +01:00
scrawl
c3ef387208
Vanilla-compatible creature/NPC respawning ( Fixes #2369 , Fixes #2467 )
2016-02-27 12:53:07 +01:00
scrawl
a97eae864d
Fix the ObstacleCheck time step ( Fixes #3211 )
2016-02-26 13:15:41 +01:00
scrawl
d05603c7fe
Directly apply On Target 'When Strikes' enchantments instead of launching a projectile ( Fixes #3212 )
2016-02-22 19:42:54 +01:00
scrawl
90a99991d1
Use empty() instead of !size()
2016-02-22 19:06:12 +01:00
scrawl
8bd16e4d5a
Don't compute the world matrix multiple times
2016-02-22 18:58:19 +01:00
scrawl
c4d38bb42d
Fix clang analyzer warnings
2016-02-16 19:17:04 +01:00
scrawl
48ac0bef3e
Repair save games affected by bug #3080 ( Fixes #3160 )
2016-02-11 16:34:02 +01:00
scrawl
a7b217def2
AI: don't cast fortify effects ( Fixes #3184 )
2016-02-07 01:29:11 +01:00
scrawl
162287b82d
AI combat actions: rename 'target' to 'enemy'
2016-02-07 01:29:11 +01:00
scrawl
94c05c6baa
AI: don't cast useless resist spells ( Fixes #2760 )
2016-02-07 01:29:02 +01:00
scrawl
d3415387a5
AI: take into account success chance when rating a spell
2016-02-07 01:18:20 +01:00
scrawl
b9d1d6144a
Don't reveal unknown potion effects in alchemy window ( Fixes #3146 )
2016-02-02 22:50:11 +01:00
scrawl
d3b76b7006
Don't stack Ai packages ( Fixes #3101 , Fixes #3080 , Fixes #2697 )
2016-02-02 22:20:56 +01:00
scrawl
7aeafd3bb9
Revert "Apply the AiTravel maxRange to AiEscort as well ( Fixes #2697 )"
...
This reverts commit 1f543b4d79
.
2016-02-02 22:08:12 +01:00
scrawl
145756c0a1
Partly revert "Avoid directly iterating the actor map ( Fixes #3173 )"
...
Caused issues when a summoned creature is removed as part of the magic effect update.
Fixes #3178
2016-02-02 15:57:15 +01:00
scrawl
59d2de118f
Avoid directly iterating the actor map ( Fixes #3173 )
2016-02-02 00:50:21 +01:00
scrawl
50ed061154
AiWander: reset mAllowedNodes on cell change ( Fixes #3176 , Fixes #3130 )
2016-02-02 00:41:40 +01:00
scrawl
dda4273349
Actors that start the game as dead do not float to the surface ( Fixes #3177 )
...
This has a minor bug (can you spot it?) that affects the vanilla engine as well, unfortunately not so simple to fix.
2016-02-01 23:18:18 +01:00
scrawl
832eaae27b
Do not apply effects with CasterLinked flag when there is no valid caster
2016-02-01 22:57:08 +01:00
scrawl
c34314ae26
When an actor dies purge all spell effects cast by that actor ( Fixes #3175 )
2016-02-01 22:52:28 +01:00
Tobias Kortkamp
0659687bfb
Some fixes for building on FreeBSD
2016-01-25 14:13:16 +01:00
scrawl
b0431833a1
Fix some defects reported by Coverity CI
2016-01-21 16:08:04 +01:00
scrawl
4e6a60672d
When a spell explodes on an actor do not apply it to that actor twice ( Fixes #3142 )
2016-01-12 00:40:09 +01:00
scrawl
daa94cc50e
Fix cppcheck warnings
2016-01-03 20:19:38 +01:00
Poncho
b1020dcd42
Use correct direction multipliers during awareness check
2016-01-02 12:24:39 -06:00
scrawl
63b9b075aa
Do not allow soul trapping the same creature more than once ( Fixes #3102 )
2015-12-26 18:47:22 +01:00
scrawl
0bec6e5fbe
Fix 'failed to find animation' warnings when a spell was equipped before the werewolf transformation
2015-12-26 18:45:09 +01:00
scrawl
6b67911658
Unset DrawState_Spell when becoming a werewolf
2015-12-26 18:26:55 +01:00
scrawl
f052c05018
Move werewolf functions from World to MechanicsManager
2015-12-26 18:23:13 +01:00
scrawl
29d0f448b4
Add const version of World::getAnimation
2015-12-19 16:15:45 +01:00
scrawl
51c77c5045
Accept a ConstPtr in getDoorState
2015-12-19 16:15:45 +01:00
scrawl
53f4b92426
AiEscort do not follow target through doors
...
Testing revealed a problem where the guard on the prison ship would incorrectly follow the player outside. Upon further investigation in vanilla MW, it appears that with AiEscort the actor only follows the target through doors once the AiEscort package has completed, *and* no new AI package is running yet.
2015-12-19 15:15:44 +01:00
scrawl
04f7a8f8eb
Remove redundant getId function
2015-12-18 16:58:38 +01:00
scrawl
b2add6470b
Missing include fix
2015-12-18 02:58:38 +01:00
scrawl
1c8244276d
Exception handling improvements (Bug #3090 )
2015-12-18 02:36:34 +01:00
scrawl
689dea4cb3
Add instant spell effects to the actor's magic effect list
...
Via http://forum.openmw.org/viewtopic.php?f=2&t=3212&start=20#p36208
2015-12-17 19:49:37 +01:00
scrawl
375caf037d
Don't applyInstantEffect when magnitude is zero
2015-12-15 20:46:05 +01:00
scrawl
4af376133b
Don't tick effects when duration is zero
2015-12-15 20:41:00 +01:00
scrawl
572786bff2
Instant effects that were added by a permanent ability are applied every frame
...
Via http://forum.openmw.org/viewtopic.php?f=2&t=3212&p=36120#p36121
2015-12-14 03:27:49 +01:00
scrawl
a7e0562e1c
Fix improper handling of multiple AiFollow packages with the same target ( Fixes #3077 )
2015-12-13 17:42:11 +01:00
scrawl
f1f82af64e
Fix improper swimming animations in first person mode
2015-12-11 01:24:42 +01:00
scrawl
bdae572264
Merge pull request #840 from scrawl/movedrefs
...
Object movement between cells
2015-12-09 14:10:57 +01:00
scrawl
6f98982bc2
Make sure that health is >= 1 when resurrecting the player ( Fixes #2972 )
2015-12-09 01:52:20 +01:00
scrawl
34f48d63f3
Apply spell absorption once per effect ( Fixes #2942 )
2015-12-09 00:35:54 +01:00
scrawl
07b064f616
Rename to lowerCaseInPlace
2015-12-07 22:49:15 +01:00
scrawl
1875aa4a18
Restore getNearbyDoor
2015-12-07 03:53:46 +01:00
scrawl
1f543b4d79
Apply the AiTravel maxRange to AiEscort as well ( Fixes #2697 )
2015-12-07 00:26:17 +01:00
scrawl
965bea45c0
AiEscort makes the actor side with target in fights (Bug #2697 )
...
Also will follow the player through teleport doors.
2015-12-06 23:38:51 +01:00
scrawl
4e678ce6b3
Handle mCellId in AiEscort
2015-12-06 23:38:51 +01:00
scrawl
0975f60d59
Stub out CellStore::get<T> accessors in preparation of reference movement between cells
2015-12-04 18:29:41 +01:00
scrawl
14b143231c
Don't crash OpGetTarget when the target disappeared ( Fixes #3048 )
2015-11-30 15:26:43 +01:00
Marc Zinnschlag
ff5582e318
Merge remote-tracking branch 'scrawl/ltex'
2015-11-28 09:51:57 +01:00
scrawl
5b8fd79b4b
Fix crash when exception is thrown in startNewGame()
2015-11-27 21:38:57 +01:00
Chris Robinson
5f8a09df97
Play player sounds (except footsteps) local to the listener
2015-11-27 02:01:18 -08:00
Marc Zinnschlag
7cc950ed64
Merge remote-tracking branch 'origin/master'
2015-11-27 10:34:22 +01:00
scrawl
44dd62067e
Remove some unnecessary per-frame store searches
2015-11-27 02:13:56 +01:00
scrawl
783594033a
Optimize MWMechanics::Spells
...
Use pointers as map keys instead of string IDs. Resolves a nasty performance bottleneck on functions like hasCommonDisease() that previously had to look up all contained spells from the ESM store on every call. hasCommonDisease() is called hundreds of times per frame by the AI target update since it's used to calculate target disposition.
The total cost of hasCommonDisease() was 2.7% of the frame loop, now it's negligible.
2015-11-27 01:07:15 +01:00
Chris Robinson
73448c72f6
Replace Play_NoTrack with playManualSound3D, and rename the latter
2015-11-25 04:24:26 -08:00
scrawl
62169a7039
Use a single-precision PositionAttitudeTransform in speed critical places
2015-11-22 19:54:26 +01:00
scrawl
3453353091
AiCombat distance check takes into account collision box ( Fixes #1699 )
2015-11-18 19:00:43 +01:00
scrawl
666fbba1e0
Rotations: World::rotateObject takes radians instead of degrees
...
Cuts down on the amount of redundant degree<->radians conversions in the codebase.
2015-11-12 01:09:39 +01:00
scrawl
6405049add
Rotations: move doors via Rotation rather than LocalRotation
...
Now LocalRotation is unneeded, will remove in next commit.
2015-11-12 00:58:29 +01:00
scrawl
637cd3a628
Adjust the FirstPersonNeckController to follow the camera with a reduced factor ( Fixes #1784 )
2015-11-10 01:01:41 +01:00
scrawl
3c338b9da9
ObstacleCheck: tweak the stuck detection parameters
...
The netch_betty wander animation starts up so slowly that the creature thought it was stuck, even though it's not.
2015-11-09 20:35:31 +01:00
scrawl
d233bc483d
ObstacleCheck: fix evasion issue
...
The check if (samePosition... would not work as intended because actors do not move in every frame when the framerate is higher than the physics framerate. In that case the actor would change its evasion direction almost every frame.
2015-11-09 20:35:31 +01:00