1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-10-22 15:26:37 +00:00
Commit graph

1091 commits

Author SHA1 Message Date
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