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

1091 commits

Author SHA1 Message Date
Evil Eye
262b29ed40 Use string_view in modifyBaseInventory 2022-08-23 16:59:03 +02:00
elsid
5dc612aa54
Replace ciCompareLen with ciStartsWith where possible
`ciCompareLen(a, b, b.size()) == 0` expression is an equivalent of checking for
equality of `a` prefix with size `b.size()` with `b`.

`ciCompareLen(a, b, a.size()) == 0` is also the same thing but `a` is a prefix
`b` should start with.
2022-08-22 09:32:22 +02:00
Alexei Kotov
d458894868 Make getWeaponDrawn return 1 only when the weapon is attached (bug #4816) 2022-08-18 05:04:51 +03:00
Evil Eye
4ff12d8945 Make Class::getName return string_view 2022-08-16 21:15:03 +02:00
Evil Eye
4e9335f10a Fix include 2022-08-13 11:15:12 +02:00
Evil Eye
2deec591cd Use heterogenous maps for scripts 2022-08-12 20:56:50 +02:00
Evil Eye
51938f9ef7 Use string_view in Interpreter::Context 2022-08-12 19:42:35 +02:00
Evil Eye
4eb6c48285 Avoid copying in InputManager 2022-08-12 18:42:12 +02:00
Evil Eye
685906afdf Make getScript return string_view 2022-08-11 22:51:55 +02:00
Evil Eye
de51525c76 Allow string_view lookups in MWWorld::Store and get some use out of that 2022-08-09 20:43:14 +02:00
elsid
f99ed6f1db
Split components/misc/stringops.hpp into multiple headers
Replace all ciEqual overloads with one having std::string_view as argument.
2022-08-03 22:06:24 +02:00
Alexei Kotov
435ddcfb6b Snap down any actor teleported with Position/PositionCell (bug #6154) 2022-07-29 18:51:49 +03:00
myrix
782cb7699d use std::string, no unlocalized message, show soul gem id 2022-07-25 02:56:25 +03:00
myrix
3698d96b46 use ciCompareLen, move checks to Miscellaneous::use and ActionSoulgem 2022-07-25 01:47:10 +03:00
myrix
8817f802cb message when using empty soul gems, using preferentially filled ones with equip command 2022-07-24 23:02:26 +03:00
Alexei Kotov
578b58ca14 Properly handle negative count RemoveItem (bug #6895) 2022-07-24 20:15:44 +03:00
ζeh Matt
841fd9618f
Rename DrawState_ to DrawState and use enum class 2022-07-17 20:50:26 +03:00
elsid
49f8445f87
Move AiSetting out of MWMechanics::CreatureStats
To replace creaturestats.hpp include in mwworld/class.hpp with forward
declaration reducing total size of preprocessed code.
2022-07-16 16:43:33 +02:00
Evil Eye
ed921ad377 Fix modstat for negative numbers 2022-07-12 19:59:18 +02:00
psi29a
715b8497f9 Merge branch 'live_cell_ref' into 'master'
Use descriptive names for range elements

See merge request OpenMW/openmw!2092
2022-07-05 18:26:40 +00:00
elsid
bef15edf0b
Remove redundant ostream, istream, iostream and sstream includes
* Replace by std::to_string and operator+ where possible.
* Move the code requiring to include <sstream> from .hpp to .cpp files.
2022-07-05 01:41:28 +02:00
elsid
1b117af5e1
Use descriptive names for range elements
iter does not describe the nature of the object. Range-based for loop provides
elements of the iterator range, not iterators.
2022-07-04 21:03:45 +02:00
elsid
fdf6e58ea3
Split apps/openmw/mwmechanics/actorutil.hpp 2022-06-26 16:42:29 +02:00
ζeh Matt
38b6927b31
Fix missing includes 2022-06-07 02:08:50 +03:00
elsid
639bdd5801
Use free function instead of virtual MWBase::World::positionToIndex
The virtual function does the same thing.

* Change return type to osg::Vec2i to avoid dependency on ESM3.
* Rename to positionToCellIndex to make it clear what is the index.
2022-05-24 19:31:23 +02:00
Evil Eye
ac78b537d2 Address feedback 2022-05-22 09:29:03 +02:00
Evil Eye
266a0634eb Add more includes 2022-05-21 12:41:56 +02:00
Evil Eye
e79f803402 Change includes 2022-05-21 10:48:32 +02:00
Evil Eye
c6ca0e78c9 Make getStringLiteral return a string_view 2022-05-21 01:21:55 +02:00
Evil Eye
bc5e43ab60 Fix copy paste error 2022-05-05 21:53:20 +02:00
Evil Eye
a64979e25d Replace empty std::string assignments 2022-05-04 22:33:39 +02:00
psi29a
dccbd3e980 Merge branch 'try_and_hit_me' into 'master'
Bring HitAttemptOnMe in line with HitOnMe

See merge request OpenMW/openmw!1816
2022-04-30 18:26:30 +00:00
unknown
1bc24d5120 Bring HitAttemptOnMe in line with HitOnMe 2022-04-30 18:32:10 +02:00
Evil Eye
db19700599 Make stack manipulation unconditional 2022-04-30 16:45:45 +02:00
elsid
ec3674b40a
Use unique_ptr instead of shared_ptr
for MWWorld::Action, ProjectileManager and ESSImport::Converter.

shared_ptr has additional cost of reference counter and requires additional
allocation when constructed as shared_ptr<T>(new T).
2022-04-08 16:12:36 +02:00
elsid
a46714df67
Replace boost::variant by std::variant 2022-04-06 23:01:58 +02:00
Evil Eye
c1d700f770 Don't reset last hit object if the ID doesn't match 2022-03-28 11:40:46 +00:00
ζeh Matt
08fae7be6e
Pass the prng from world where appropriate 2022-03-21 17:49:42 +02:00
Evil Eye
054d8babc4 Add getRatio method 2022-02-10 22:10:46 +01:00
Evil Eye
6b203892fc Fix mod not increasing fortified values 2022-02-10 20:46:20 +01:00
Evil Eye
4e52c96cf5 Make Set/Mod[DynamicStat] work with negative values as in vanilla 2022-02-10 20:31:27 +01:00
Petr Mikheev
47c37e5849 Lua command object:activateBy(actor) and handler onActivate 2022-02-01 23:42:56 +00:00
psi29a
84e209308d Merge branch 'refactor/interpreter' into 'master'
Cleanup interpreter code a bit

Closes #6553

See merge request OpenMW/openmw!1556
2022-01-27 19:18:57 +00:00
Matt
34723c8ea8 Cleanup interpreter code a bit 2022-01-27 19:18:57 +00:00
Bret Curtis
74e7cfc023 remove unused includes: part1
remove unused imports: part2

revert one tidy we will keep for c++20
2022-01-23 17:30:25 +01:00
Bret Curtis
d1fb854521 move most of the files from esm to esm3, keep common code in esm; this is make space for a future with esm4
esm typo

esm typo
2022-01-23 17:04:48 +01:00
psi29a
01ac96e900 Merge branch 'stats_gave_me_a_headache' into 'master'
Make Set- and ModStat behave as they should

Closes #2036

See merge request OpenMW/openmw!1410
2021-12-26 19:47:09 +00:00
Evil Eye
ac747f02f3 Don't teleport NPCs to unknown cells 2021-12-26 15:27:25 +00:00
psi29a
694f697f61 Merge branch 'it_isnt_theft_if_they_were_dead_when_you_started' into 'master'
Force the loot UI open if it was open while resurrecting the lootee

Closes #6453

See merge request OpenMW/openmw!1452
2021-12-06 14:49:01 +00:00
Kindi
47ff6a87a3 Raise a warning when entering non-existent region 2021-12-03 16:05:18 +00:00
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