Evil Eye
58b888a38e
Preserve inventories when resurrecting actors while looting them
2021-12-02 20:36:42 +01:00
Evil Eye
893d569529
Force the loot UI open if it was open while resurrecting the lootee
2021-12-01 18:21:21 +01:00
Evil Eye
f1ec8db393
Make Set- and ModStat behave as they should
2021-11-30 19:39:15 +01:00
Evil Eye
d6f06fbf9a
Remove allies from combat when stopping combat
2021-11-25 22:00:52 +01:00
Evil Eye
231da19aa4
Load repeat flag and use reset argument
2021-11-20 11:02:58 +01:00
Evil Eye
c5de69f9c6
Merge branch 'faceyourfears' into 'master'
...
Make AiExtensions less toxic (bug #6429 )
Closes #6429
See merge request OpenMW/openmw!1411
2021-11-20 09:59:49 +00:00
Alexei Dobrohotov
fcef92e3ea
Make AiExtensions less toxic (bug #6429 )
2021-11-20 03:15:15 +03:00
Evil Eye
42020bc2c3
Ignore the axis argument when rotating the player
2021-11-20 00:02:48 +00:00
Alexei Dobrohotov
7a0c13fcf8
Make better use of std::clamp
2021-11-06 08:47:32 +03:00
fredzio
68f4c336ce
Rework again SetPos command to make more mods work.
...
Previous version skipped collision the frame immediately after a call to SetPos. It worked for one-off calls (teleports for instance) and continuous call along a pre-defined path (scenic travel). However, in the case of mod which uses SetPos to simulate a player-controlled movement, it is equivalent to using tcl.
Solution:
1/ skip update of mPosition and mPreviousPosition to avoid janky interpolation
2/ use back plain moveObject() instead of moveObjectBy() since we don't want physics simulation
3/ rework a little bit waterwalking influence on coordinate because of 1/
2021-10-29 23:20:17 +02:00
Evil Eye
9b565c4cf9
Remove dead code
2021-10-28 22:16:43 +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
dc1fe62dde
Overhaul magic effects to work with onApply and onEnd events
2021-09-29 19:25:10 +02:00
Evil Eye
34cf66139a
Make GetCurrentAIPackage return -1 for non-actors and dead actors
2021-09-26 22:15:43 +02:00
Evil Eye
6d7cb38834
Remove duplicate GetSquareRoot implementation
2021-09-19 19:53:38 +02:00
elsid
e84a177a91
Always print object refnum
...
Also print content file index even when it's negative. To be able to identify
the object unambiguously.
2021-08-12 02:02:25 +02:00
Evil Eye
29921bf9fa
Don't stack cast packages
2021-08-07 10:06:56 +02:00
fredzio
a7b190ad29
Change rotateObject() to take a osg::Vec3f argument instead of 3 floats
...
for readability.
2021-07-30 23:24:53 +02: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
Petr Mikheev
d5cda61855
Console command "reload lua"
2021-07-09 20:24:56 +02:00
psi29a
d8bed73ada
Merge branch 'local_crache' into 'master'
...
Cache failed compilation when getting locals
Closes #6123
See merge request OpenMW/openmw!988
2021-07-08 22:16:15 +00:00
Evil Eye
eced6f2126
Implement the help command
2021-07-07 18:48:25 +02:00
Evil Eye
18f297a4e0
Allow a missing implicit argument for GetDistance
2021-07-05 18:34:09 +02:00
Evil Eye
0a15d7740a
Delay physics for objects created by scripts
2021-07-05 18:34:06 +02:00
Evil Eye
9a7c07173d
Cache failed compilation when getting locals
2021-07-04 10:58:12 +02:00
Dobrohotov Alexei
3cab69c389
Fix ShowMap partial match filtering (bug #6115 )
2021-07-03 01:04:22 +03:00
Evil Eye
2be27da791
Merge branch 'const_refs' into 'master'
...
Add a ton of const refs
See merge request OpenMW/openmw!954
2021-06-24 18:57:41 +00:00
jvoisin
b2c170efa0
Use initialization lists where possible
2021-06-23 23:36:43 +02:00
jvoisin
1123dc46ee
Add a ton of const refs
2021-06-23 23:13:59 +02:00
Evil Eye
690e5ef757
Don't resolve a script's target just to get the ID
2021-06-19 19:26:57 +02:00
Evil Eye
67c8d73fe0
Allow scripts to fail per target
2021-06-19 19:26:55 +02:00
Evil Eye
879e66a043
Don't autoequip items when implicitely adding an item using equip
2021-06-19 19:26:53 +02:00
Evil Eye
382d458f9c
Ignore wrong reference class for SetHello
2021-06-19 19:26:53 +02:00
psi29a
9b017ef04d
Merge branch 'internal_includes_openmw' into 'master'
...
Clean up some internal includes of the openmw component
See merge request OpenMW/openmw!796
2021-05-07 10:53:25 +00:00
psi29a
9eb876cc17
Merge branch 'read_me' into 'master'
...
Allow activation of inventory items
Closes #5991
See merge request OpenMW/openmw!788
2021-05-04 22:53:45 +00:00
fredzio
4fa0972b2d
Tone down actor's skip simulation flag to an optional skip collision
...
detection flag.
2021-05-01 14:22:30 +02:00
Evil Eye
bd45449f9d
Allow activation of inventory items
2021-05-01 14:07:29 +02:00
jvoisin
998cc97a4f
And done!
2021-04-30 20:49:22 +02:00
fredzio
fda639eb57
Remove unused forward declarations
2021-04-11 14:46:51 +02:00
fredzio
8874a5be22
Change (again) the way SetPos behave.
...
Instead of registering the desired change of position and rely on
physics simulation to apply it to the world, immediately change the
position in the world without reset the simulation.
2021-04-09 23:34:03 +02:00
Evil Eye
44f2cb0923
Fix targeted scripts losing their targets when rearranging your load order
2021-04-07 17:30:21 +02:00
Evil Eye
ecde3932e2
Make AddItem's quantity overflow on negative numbers
2021-04-05 09:43:37 +02:00
fredzio
9cae7882dd
Fix a bug that was triggered with multi mark mod.
...
When a script calls SetPos for x,y,z in sequence on an actor, we need to make sure
that the actor will not spawn under ground at x,y coordinates.
Now that change of coordinates are cumulated and applied all at once, we
need to account for the whole offset.
To this end move the terrain height check inside of Actor class.
2021-03-31 19:34:06 +02:00
Petr Mikheev
7bbbe40abe
"static const" -> "static constexpr" in headers
2021-03-21 13:57:54 +01:00
fredzio
cb39f8fb01
Use moveObjectBy in SetPos
2021-03-13 09:53:21 +01:00
Evil Eye
f1caeea444
Don't return negative values from GetMagicka
2021-02-07 11:58:23 +01:00
Evil Eye
61e014a765
Allow negative values for ai stats
2021-02-04 21:25:38 +01:00
unknown
3bf641d3ce
Show mesh origin
2020-12-29 21:45:59 +01:00
fredzio
7bae6691b6
Introduce World::moveObjectBy() function to translate an object relatively to
...
its current position.
Use it in relevant MWScripts opcode (move and moveworld).
Remove the fragile detection of scripted translation from PhysicsTaskScheduler.
No user visible change, just a more robust mechanism.
2020-12-18 08:40:38 +01:00
Andrei Kortunov
8084a336b5
Replace zeroes and nulls by nullptrs
2020-11-29 11:14:07 +04:00
fredzio
e5fa457fe7
Properly account for interleaved move of actors.
...
Before this change, if an actor position was changed while the physics
simulation was running, the simulation result would be discarded. It is
fine in case of one off event such as teleport, but in the case of
scripts making use of this functionality to make lifts or conveyor (such
as Sotha Sil Expanded mod) it broke actor movement.
To alleviate this issue, at the end of the simulation, the position of the Actor
in the world is compared to the position it had at the beginning of the
simulation. A difference indicate a force move occured. In this case,
the Actor mPosition and mPreviousPosition are translated by the difference of position.
Since the Actor position will be really set while the next simulation runs, we
save it in the mNextPosition field.
2020-11-14 20:39:16 +01:00
Alexei Dobrohotov
53f91a3aa5
Merge pull request #3018 from akortunov/emplace
...
Use emplace_back instead of push_back
2020-11-01 01:58:56 +03:00
fredzio
4876969153
Use the PhysicsSystem::movementQueue instead of a serie of
...
setPosition(getPosition() + diff) to move actor in scripts.
With background physics, this is very slightly off with the collision
object position.
When the script run long enough (a few dozen frames for instance),
the accumulated error becomes too big. It make actors fall through lifts floors.
2020-10-30 23:59:09 +01:00
Evil Eye
0512a574e8
Fix remove item regression
2020-10-26 20:13:24 +01:00
Evil Eye
bdcd2bc802
Allow adding levelled lists with AddItem
2020-10-21 17:21:28 +02:00
psi29a
09373a757d
Merge branch 'radioactive' into 'master'
...
Container base record mutations
See merge request OpenMW/openmw!353
(cherry picked from commit 8b33765dd414680f0074b3e115b52b291b4cb7cb)
275908a0 mutate container base records
16fca11d add changelog entry
2020-10-20 16:56:22 +00:00
Andrei Kortunov
065ed5138e
Use emplace_back instead of push_back
2020-10-18 10:27:35 +04:00
Andrei Kortunov
8ca3c3b123
Mark overrided methods by override keyword
2020-10-16 22:18:54 +04:00
Alexei Dobrohotov
387bda5e22
Add inverse order rotation support to SetAngle (feature #5579 )
2020-09-21 22:27:01 +03:00
Capostrophic
a211527b4b
Fix AppVeyor warnings
2020-08-07 09:59:16 +03:00
Bret Curtis
1995e43b46
Merge pull request #2980 from Assumeru/heritage
...
Make scripts inherit variables from the base record
2020-08-03 13:10:35 +02:00
Andrei Kortunov
9f349e8d91
Use more C++11 in the scripting system code
2020-07-30 20:57:25 +04:00
unknown
b39f35d805
inherit variables
2020-07-29 18:43:56 +02:00
Evil Eye
040a92c373
implement additem/removeitem for non-unique actors
2020-07-26 11:07:18 +02:00
Andrei Kortunov
b05d071e69
Resume failed scripts execution after game reload (feature #5524 )
2020-07-14 10:53:01 +04:00
Andrei Kortunov
db8f0ad6fd
Do not use outdated references when moving objects to new cells (bug #5387 )
2020-07-11 17:24:20 +04:00
Andrei Kortunov
808c905e1f
Initialize fields to avoid undefined behaviour
2020-06-18 14:50:06 +04:00
elsid
82893c30f4
Store package type id as enum except ESM
2020-06-11 21:02:27 +02:00
Andrei Kortunov
5468fcb29f
Store attributes and skills values as floats (bug #4021 )
2020-06-03 17:34:15 +04:00
Bret Curtis
2eb9d4ad4e
Merge pull request #2878 from Assumeru/mutate-ai
...
Mutate base records when editing AI settings (#2798 )
2020-06-03 15:09:40 +02:00
Andrei Kortunov
3dce225f28
Implement vanilla-style corprus handling (bug #3714 , bug #4623 )
2020-06-03 12:58:17 +04:00
Evil Eye
4d7947d27c
Mutate base records when editing AI settings ( #2798 )
2020-06-02 21:59:37 +02:00
Capostrophic
b0b4550f05
Pass Actor by reference, simplify GetTarget for greetings
2020-05-30 00:51:58 +03:00
Capostrophic
efd5f13b2b
Make greeting-related actor data temporary (bug #5397 )
2020-05-30 00:51:58 +03:00
Evil Eye
a8231ae297
fix explicit startscript calls
2020-05-26 19:01:33 +02:00
Roman Siromakha
b3b8480d49
Merge pull request #2868 from Capostrophic/opcodes
...
Give new opcodes to old functions made custom
2020-05-26 14:08:27 +02:00
Capostrophic
e0ecbc08df
Give new opcodes to old functions made custom
2020-05-23 11:57:15 +03:00
Capostrophic
c9c9599ec5
Improve GetDistance and object search warnings (bug #5427 )
...
Allow GetDistance to work with a non-existent object argument or with inventory items that belong to a container store that doesn't exist
2020-05-22 15:50:04 +03:00
Evil Eye
3875b837bc
make MenuMode, Random, GetSecondsPassed regular functions
2020-05-17 22:34:54 +02:00
Evil Eye
f0e2ee45fa
reuse ImplicitRef and ExplicitRef for enable, disable, getdisabled, startscript; move scriptrunning and stopscript
2020-05-13 21:17:08 +02:00
unknown
3b4782959e
Allow targeting non-unique actors with StartScript (bug #2311 )
2020-05-10 14:57:06 +02:00
Alexei Dobrohotov
12833d66af
Merge pull request #2822 from Assumeru/magic-ai-numbers
...
Remove magic numbers and casts
2020-05-07 13:05:33 +03:00
Evil Eye
19f12cb3fe
remove magic numbers and casts
2020-05-05 19:37:15 +02:00
Evil Eye
f9881b699c
remove redundant templating
2020-05-05 19:18:23 +02:00
Capostrophic
feeab8a335
Make adding non-existent global script more forgiving (bug #5364 )
2020-04-10 22:20:05 +03:00
Evil Eye
8c433d587c
less complicated context override
2020-04-04 14:09:00 +02:00
Evil Eye
a16727d5e3
implement move constructor
2020-04-02 20:27:52 +02:00
Evil Eye
8958e29187
reset errorhandler context
2020-04-02 20:14:52 +02:00
elsid
7ae7cb181d
Support recast mesh rendering
2020-03-14 09:38:24 +01:00
Alexei Dobrohotov
7e6a533a29
Merge pull request #2695 from elsid/aiwander_check_destination
...
Add more destination checks for AiWander without pathgrid
2020-03-11 20:48:22 +03:00
Capostrophic
f9f0299c27
Make ModCurrentFatigue KO the actor when necessary (bug #4523 )
2020-02-21 00:05:13 +03:00
elsid
52945921a7
Print ptr by betacomment
2020-02-10 22:29:37 +01:00
Capostrophic
9b4be677f6
Make Show output format closer to vanilla
2020-02-09 20:10:24 +03:00
Capostrophic
aadf13b123
Make Show fallback to global variables when sensible (bug #5278 )
2020-02-09 15:08:44 +03:00
Capostrophic
a2c674bb2e
Make GetTarget return 1 during actor greeting (bug #5255 )
2020-01-19 15:38:50 +03:00
capostrophic
1251b32f0f
Slightly reduce code duplication
2020-01-09 22:17:01 +03:00
capostrophic
42cc27194b
Fix reported spellcasting discrepancies
...
Make ExplodeSpell behavior closer to Cast behavior (#5242 )
Nullify on-self absorb spells in a different way (#5241 )
Allow casting permanent spells through Cast/ExplodeSpell
2020-01-09 22:17:01 +03:00
Andrei Kortunov
a42396254b
Use ISO format to print datetime
2020-01-06 11:27:11 +04:00
Andrei Kortunov
b6899a821b
Improve BetaComment handling (feature #4129 )
2020-01-03 08:45:53 +04:00
Andrei Kortunov
24ce242941
Implement TestCells (feature #5219 )
2019-12-22 11:13:42 +04:00
Capostrophic
e7f6ab1ae2
Avoid using getPtr for object search in scripting (bug #5220 )
2019-12-01 14:09:59 +03:00
Capostrophic
77f076ff11
Make sure instant FX abilities get detected when supposed
2019-11-27 17:15:48 +03:00
Capostrophic
0adc2df65f
Make SameFaction work (bug #5213 )
2019-11-23 14:47:50 +03:00
Capostrophic
bc5d54a161
Fix GetEffect result when running on dead actors
2019-10-12 19:06:10 +03:00
Capostrophic
ce943b4f9e
Make enchantments affect all actors with an inventory (bug #5186 )
2019-10-11 19:29:12 +03:00
Andrei Kortunov
6450d84473
Improve resurrection handling
2019-09-21 20:22:45 +04:00
Andrei Kortunov
a4d196f33f
Force view change when using Force1stPerson and Force3rdPerson commands (bug #5168 )
2019-09-19 21:48:43 +04:00
Evil Eye
7c8b82f45c
move locking behaviour to cellref
2019-09-17 20:30:37 +02:00
elsid
16170131b7
Add enum type for door state
2019-08-25 15:21:00 +02:00
Andrei Kortunov
ed8828d3bc
Merge pull request #2457 from Capostrophic/sneak
...
Sneaking consistency fixes (bug #5103 )
2019-08-18 08:57:22 +04:00
Andrei Kortunov
786a6c6d42
Use a common doors rotation code in the "lock" command handler
2019-08-16 21:30:24 +04:00
Andrei Kortunov
deeccb2783
Merge pull request #2461 from Capostrophic/geteffect
...
Use up-to-date magic effects for GetEffect (bug #3894 )
2019-08-11 22:20:20 +04:00
capostrophic
cac05ef826
Sneaking consistency fixes (bug #5103 )
...
Correct pickpocketing behavior when not actually sneaking
Fix first person swimming animation regression when sneaking stance is on
Move typical sneaking use case checks into mechanics manager
Correct awareness checks
2019-08-05 20:22:03 +03:00
capostrophic
82ac99ec56
Apply instant FX in AddSpell immediately (bug #5055 )
2019-08-02 21:26:47 +03:00
capostrophic
e7ec27e45d
Use up-to-date magic effects for GetEffect (bug #3894 )
2019-07-31 01:06:06 +03:00
Capostrophic
295ee11063
Make Player->Cast select the spell instead (bug #5056 )
2019-06-08 17:08:39 +03:00
Capostrophic
b7afb213ae
"Handle" RepairedOnMe scripting function (feature #4255 )
2019-06-03 02:17:32 +03:00
Andrei Kortunov
e679190f31
Introduce a custom format() function to get rid of boost::format() and hackish replace()
2019-05-20 09:20:01 +04:00
Andrei Kortunov
f775f7977b
Fix RaiseRank/LowerRank script functions (feature #4316 )
2019-05-14 21:43:19 +04:00
Capostrophic
62482657fc
GetWeaponType returns -2 for picks and -3 for probes (feature #5031 )
2019-05-11 14:18:29 +03:00
Alexei Dobrohotov
4f74d09179
Handle GetAngle axis more gracefully too
2019-05-04 00:24:23 +03:00
Andrei Kortunov
ed859c41be
Merge pull request #2353 from Capostrophic/drop
...
Make Drop behavior closer to vanilla (bug #4999 )
2019-05-03 08:12:46 +04:00
Capostrophic
3c18079c14
Handle invalid instruction axis more gracefully
2019-05-02 20:50:05 +03:00
Capostrophic
b42f981200
Make Drop and soulgem instruction behavior closer to vanilla (bug #4999 )
2019-04-30 19:06:02 +03:00
Andrei Kortunov
bd2188a0f8
Use the logging system for compiler errors
2019-04-23 22:20:18 +04:00
Andrei Kortunov
5508e67aad
Apply looping particles when adding spell to existing actor (bug #4918 )
2019-04-20 09:52:15 +04:00
Andrei Kortunov
35facc5cde
Add an option to use casting animations for magic items (feature #4962 )
2019-04-08 15:41:29 +04:00
Capostrophic
3a0e374dc6
Replicate vanilla Position/SetPos behavior more closely (bug #3109 )
2019-03-31 14:17:06 +03:00
Capostrophic
dd952c3ddb
Fix extra space in "no script" showvars output
2019-03-10 17:12:43 +03:00
Capostrophic
59f7df187d
Add explicit variant of Journal
2019-03-05 20:47:05 +03:00
Grigory Latyshev
3872d7476b
Move makeOsgVec3f() to settingsutils.hpp
...
Remove all other makeOsgVec3f() implementations
2019-02-28 20:03:42 +00:00
Capostrophic
8ecd0b82a4
Replace Boost format and replace_all where possible
2019-02-24 03:20:20 +03:00
Andrei Kortunov
3032b177a1
Remove redundant includes
2019-02-23 08:02:12 +04:00
Bret Curtis
4d09c8bb50
Merge pull request #2126 from Capostrophic/sneaking
...
Account for running/sneaking stances while in air (bug #4797 )
2019-02-22 15:04:55 +01:00
Bret Curtis
fdb84dddc8
Merge pull request #2059 from Capostrophic/stacks
...
Don't stack scripted items (bug #2969 )
2019-02-18 16:02:55 +01:00
Capostrophic
05d5d7d57b
Account for stances when the player is in air (bug #4797 )
...
Make GetPCRunning and GetPCSneaking return 1 if the player is in air while the stance is toggled
Make sneaking skill usage possible if sneaking stance is toggled while in air
2019-01-15 00:25:26 +03:00
Capostrophic
92d7f21926
Don't interrupt compilation when spell/effect functions are used for non-actors
2019-01-06 21:45:56 +03:00
Capostrophic
0ab5314755
Make scripted items not stack (bug #2969 )
2018-12-30 18:18:33 +03:00
elsid
49d81241db
Merge branch 'master' into pathfinder_detour
2018-10-28 17:08:09 +03:00
Capostrophic
4ce35c6ad5
Fix fixme behavior in interiors
2018-10-24 01:43:38 +03:00
elsid
ff478aba6d
Use actor half extent for interior cells
2018-10-13 22:16:33 +03:00
elsid
dc09674362
Add command and settings option to enable actors paths render
2018-10-13 22:16:32 +03:00
elsid
70a369f70e
Add command to enable NavMesh render
...
togglenavmesh or tnm
2018-10-13 22:16:28 +03:00
Andrei Kortunov
e06f0b797a
Replace all NULLs to nullptr
2018-10-09 10:21:12 +04:00
Andrei Kortunov
01b3f92f7e
Make coc and fixme console commands close to vanilla (bug #4292 , bug #4217 )
2018-09-20 16:25:02 +04:00
Marc Zinnschlag
c6b62308cd
Merged pull request #1921
2018-09-17 12:02:44 +02:00
Andrei Kortunov
2961f0d810
Allow to use the %Name for creatures (bug #4644 )
2018-09-16 21:53:28 +04:00
Andrei Kortunov
ae1c054635
Make GetPCJumping return true only when jumping (bug #4641 )
2018-09-16 11:58:01 +04:00
Andrei Kortunov
aed7c1b2bb
Fix a couple of Clang warnings
2018-09-04 12:37:43 +04:00