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

52 Commits

Author SHA1 Message Date
elsid
069d4255b9
Make ESM::RefId to be fixed size cheap to copy
Use std::variant. Store refId strings in unordered_set and use pointer to an
item there. Inserts to unordered_set do not invalidate pointers to values so the
pointer is always valid. Elements are not removed. Assume there is finite number
of string refIds.
2023-03-19 17:20:43 +01:00
Petr Mikheev
5983f22290 Remember actor in the actor's InventoryStore instead passing the actor in every call 2023-01-21 23:43:00 +01:00
fteppe
125b21de20 Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type
The strong type is actually just a string underneath, but this will help in the future to have a distinction so it's easier to search and replace when we use an integer ID

Slowly going through all the changes to make, still hundreds of errors

a lot of functions/structures use std::string or stringview to designate an ID. So it takes time

Continues slowly replacing ids. There are technically more and more compilation errors

I have good hope that there is a point where the amount of errors will dramatically go down as all the main functions use the ESM::RefId type

Continue moving forward, changes to the stores

slowly moving along

Starting to see the fruit of those changes.

still many many error, but more and more Irun into a situation where a function is sandwiched between two functions that use the RefId type.

More replacements. Things are starting to get easier

I can see more and more often the issue is that the function is awaiting a RefId, but is given a string
there is less need to go down functions and to fix a long list of them.

Still moving forward, and for the first time error count is going down!

Good pace, not sure about topics though, mId and mName are actually the same thing and are used interchangeably

Cells are back to using string for the name, haven't fixed everything yet. Many other changes

Under the bar of 400 compilation errors.

more good progress <100 compile errors!

More progress

Game settings store can use string for find, it was a bit absurd how every use of it required to create refId from string

some more progress on other fronts

Mostly game settings clean

one error opened a lot of other errors. Down to 18, but more will prbably appear

only link errors left??

Fixed link errors

OpenMW compiles, and launches, with some issues, but still!
2022-12-27 19:15:54 +01:00
elsid
843753da14
Remove unused includes 2022-10-09 16:44:18 +02:00
clang-format-bot
ddb0522bbf
Apply clang-format to code base 2022-09-22 21:35:26 +03:00
Evil Eye
0df45a90b3 Use string_view in the remaining Class methods and push string_views closer to the MyGUI boundary 2022-08-23 22:14:27 +02: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
Jacob Turnbull
d9376ee08e Trim down comment and change flag name 2021-04-07 16:57:06 -05:00
Jacob Turnbull
bc8db8b8f5 Fix for enchanted items being removed on item equip cycling when they are re-equipped 2021-04-06 20:12:51 -05:00
Andrei Kortunov
97ee4bc349 Improve equipment logic (bug #5223) 2019-12-14 22:30:27 +04:00
Capostrophic
c03ed4cd50 Include cleanup 2019-02-19 18:40:33 +03:00
Andrei Kortunov
c77c50e92b Make Equip console command to bypass most of restrictions (bug #4460) 2018-07-11 00:06:21 +04:00
scrawl
edfcb45ad7 Fix crash when onPcEquip script removes the equipped item (Fixes #3016) 2015-11-24 22:55:17 +01:00
dteviot
77a1d947cc extracted MWMechanics::getPlayer() 2015-08-21 21:12:39 +12:00
scrawl
d034a079e6 Allow equipping twohanded weapon and shield at the same time (Fixes #1785)
The shield can be equipped, meaning armor rating and item enchantments apply, but can not be blocked with.
2014-12-12 16:49:22 +01:00
scrawl
c0f1449004 Cycle with equipped items if all slots are occupied (Fixes #1395) 2014-06-05 14:54:07 +02:00
Emanuel Guevel
1e4a854433 Remove static method MWWorld::Class::get(&Ptr)
It was just adding a level of indirection to Ptr.getClass().
All the call were replaced by that instead. The number of lines changed
is important, but the change itself is trivial, so everything should be
fine. :)
2014-05-22 20:50:00 +02:00
scrawl
589fbbd871 Issue #777: Create InventoryStore for creatures with weapons/shields 2014-01-19 11:43:23 +01:00
Marc Zinnschlag
63cd70f810 some junk removal 2014-01-13 10:03:25 +01:00
scrawl
7983b07b10 Get bk_treasuryreport script to work properly:
- OnPcEquip needs to be set on *using* any item, not just equipping
 - Handle PcSkipEquip
 - Execute item's script once immediately after setting OnPcEquip
 - Do not set OnPcEquip when an item that has skipped equipping sets pcskipequip back to 0 and gets equipped
2014-01-13 06:20:18 +01:00
scrawl
098f9712f1 Add getPlayerPtr() utility method. Reduces dependencies a lot. 2014-01-08 18:39:44 +01:00
scrawl
b8c358df63 Fix a bug with equipping using the quick keys: when item is already equipped, equipping it again would cause the slot to get unequipped first, possibly restacking and destroying the Ptr that was supposed to be equipped in the first place 2013-11-17 23:31:07 +01:00
scrawl
60bec03987 Rename variables called 'slots' to work around wrong code parsing in QT Creator. 2013-11-12 23:23:19 +01:00
Emanuel Guevel
2786530430 Edit InventoryStore::equip() to call the new unequipSlot function…
…to unequip previously equipped item.
2013-11-10 02:45:16 +01:00
Chris Robinson
48c07fbd98 Remove some unnecessary fields from Ptr 2013-08-14 17:05:42 -07:00
scrawl
2693b78536 Add initial player inventory when new game is started 2013-04-15 02:56:23 +02:00
Glorf
ad49d1ecab Sixth minor fix 2013-04-10 15:24:20 +02:00
Glorf
bd93e63150 Fifth minor fix 2013-04-09 19:46:27 +02:00
Glorf
248fff6eb7 Fourth minor fix 2013-04-09 19:41:03 +02:00
Glorf
44ef02eb99 Third minor fix 2013-04-09 19:04:59 +02:00
Glorf
46925e93a6 Second minor fix 2013-04-09 16:14:08 +02:00
Glorf
623c2c8201 Minor fix 2013-04-09 07:45:07 +02:00
Glorf
7c22e123f4 Bugfix #691 changes 2013-04-08 22:10:55 +02:00
Glorf
48d9885554 Started bugfix #691 2013-04-05 15:42:05 +02:00
Glorf
900c2cfa81 Minor bugfix #646 change 2013-04-02 14:08:59 +02:00
Glorf
d25c838e1d Bugfix #646 2013-04-02 11:42:29 +02:00
scrawl
e7af718b55 Remove unnecessary WindowManager::messageBox arguments 2013-03-30 12:56:37 +01:00
scrawl
eeb60edb65 Properly check for the Beast flag instead of hardcoding beast races 2013-03-12 02:09:54 +01:00
scrawl
543f573739 Fix the firstguard armor mod 2013-03-12 02:02:59 +01:00
Marc Zinnschlag
86fb3574a0 Merge remote-tracking branch 'wheybags/master' into next 2013-02-05 11:55:47 +01:00
Tom Mason
ac112ef972 refactored special variable code 2013-02-03 13:27:27 +00:00
Marc Zinnschlag
85697e4628 reverted to C++03 2013-02-02 13:24:28 +01:00
Tom Mason
0fc5ee5149 allow OnPCEquip special variable to be of any type 2013-01-31 17:46:16 +00:00
Tom Mason
09f9557ecb Implemented OnPCEquip special variable 2013-01-31 00:34:16 +00:00
Tom Mason
375961fe5e small fix 2013-01-09 13:27:12 +00:00
Tom Mason
b035a5aa4a beast races cannot equip anything they oughtn't to be able to equip 2013-01-09 13:18:05 +00:00
Tom Mason
62a2ba1cc6 beast races cannot equip shoes/boots 2013-01-09 03:03:14 +00:00
Tom Mason
135f0870f7 in actionequip, was ignoring actor param, and always using player 2013-01-09 02:16:17 +00:00
Marc Zinnschlag
8c2b4f996c Issue #370: replaced custom target handling in equip action with base class implementation 2012-09-04 15:27:10 +02:00
Marc Zinnschlag
78fe6fdce5 Issue #351: Refactoring Action class 2012-07-27 12:00:10 +02:00