1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-15 20:49:56 +00:00
Commit graph

60 commits

Author SHA1 Message Date
David Cernat
0339958e21 [General] Rename Log class into TimedLog 2019-08-19 21:39:33 +03:00
David Cernat
3bd8aa82fe [General] Reduce inventory-sending hooks to just 2 in ContainerStore
Whenever an item is added to or removed from the player's ContainerStore, that player sends a PlayerInventory packet with just that addition or removal.

This eliminates all the unnecessary packet spam related to oversized PlayerInventory packets that had existed in one form or another since the initial implementation of inventory sync in 1b259e2d33

Additionally, move booleans from BasePlayer to LocalPlayer when they are only needed on the client, and make the usage of the isReceivingQuickKeys boolean consistent with the new isReceivingInventory boolean by having them both in the processors of their associated packets.
2018-08-28 05:01:52 +03:00
David Cernat
03832f933b [Client] Send only individual items in PlayerInventory packets
For a long time, whenever a PlayerInventory packet was sent, it contained all the items in the player's inventory, because that's how Koncord originally implemented it and I always had too many other priorities to go back and rework it.

From now on, clients only send PlayerInventory packet with the one item added or removed, with the single exception being trading with merchants, where the entire inventory is still sent for the time being.
2018-08-21 10:10:06 +03:00
David Cernat
b57807407a [General] Implement RecordDynamic packet, part 1
Spell, potion, enchantment, creature, NPC, armor, book, clothing, miscellaneous and weapon record data can now be sent in a RecordDynamic packet. Additionally, the packets include data related to associated magical effects (for spells, potions and enchantments), data related to default inventory contents (for creatures and NPCs) and data related to body parts affected (for armor and clothing).

The server now has associated script functions for setting most of the details of the above, with the main exception being individual creature and NPC stats.

Records can either be created entirely from scratch or can use an existing record (set via the baseId variable) as a starting point for their values. In the latter case, only the values that are specifically set override the starting values. Creature and NPC records also have an inventoryBaseId that can be used on top of the baseId to base their inventories on another existing record.

The client's RecordHelper class has been heavily expanded to allow for the above mentioned functionality.

When players create spells, potions and enchantments as part of regular gameplay, they send RecordDynamic packets that provide the server with the complete details of the records that should be created. When they create enchantments, they also provide the server with armor, book, clothing and weapon records corresponding to the items they've enchanted.

This functionality added by this packet was originally supposed to be exclusive to the rewrite, but I've gone ahead and tried to provide it for the pre-rewrite in a way that can mostly be reused for the rewrite.
2018-07-30 10:56:26 +03:00
scrawl
870c658500
Remove missing souls, remove some runaway exceptions (Fixes #4111) 2018-03-08 23:38:04 +00:00
Andrei Kortunov
46c8842808 Fixed enchant points calculations formula 2017-05-26 23:42:11 +04:00
Allofich
ff3e307059 Pass parameters by const reference 2017-04-20 23:47:03 +09:00
Allofich
b1be3596dc Cleanup of #include statements 2016-06-18 10:56:28 +09:00
dteviot
77a1d947cc extracted MWMechanics::getPlayer() 2015-08-21 21:12:39 +12:00
scrawl
8c810e3620 Move rng to components 2015-04-22 17:58:55 +02:00
dteviot
3f28634d1f consolidate random number logic
Note, I suspect Rng::rollClosedProbability() is not needed.  The only difference between it and rollProbability() is that one time in 37k (on Windows), it will give an output of 1.0.
On some versions of Linux, the value of 1.0 will occur about 1 time in 4 billion.
2015-03-15 14:07:47 +13:00
dteviot
ca8c8c6aa4 fixing MSVC 2013 warning C4244: & C4305
conversion from 'const float' to 'int', possible loss of data
conversion from 'double' to 'int', possible loss of data
conversion from 'float' to 'int', possible loss of data
2015-03-08 17:42:07 +13:00
Alexander "Ace" Olofsson
df5a08b6de Move manualref code out of header 2015-02-09 15:01:49 +01:00
scrawl
4ed3e7bbb7 Enchanting code cleanup 2015-01-12 23:29:58 +01:00
scrawl
cda2eea906 Enchanting: use fEnchantmentConstantDurationMult and fEffectCostMult 2015-01-12 23:29:58 +01:00
scrawl
13c5bd5cc2 Enchanting: fix skill-based cast cost bonus being applied twice 2015-01-07 04:41:12 +01:00
scrawl
ef1b0a191b Revert "Enchanting: fix inverted self-enchant success chance"
It wasn't inverted to begin with. The author of this commit is an idiot.
2015-01-07 03:48:16 +01:00
scrawl
623783cd6a Enchanting: fix cast cost for "on use" enchantments being set incorrectly 2014-12-10 18:05:11 +01:00
scrawl
ead6bf1601 Enchanting: cast the enchant points for the item to int (Fixes #2202) 2014-12-10 17:34:05 +01:00
scrawl
7e10818bdf Fix uninitialized flags for custom-made spells 2014-10-02 13:55:42 +02:00
scrawl
7252cb63a6 Fix cppcheck issues 2014-09-26 17:48:14 +02:00
scrawl
315b022d2d Add transfer gold from all services to NPC trade gold pool 2014-07-28 00:55:57 +02:00
scrawl
09607f992e Enchanting: fix inverted self-enchant success chance (Fixes #1701) 2014-07-27 20:33:44 +02:00
scrawl
039398c8ae Basic RefData and CellRef change tracking
Wrapped item charge handling in getItemHealth function
2014-05-25 14:30:07 +02:00
scrawl
a05c8fd3ce Make applyEnchantment return the record ID instead of modifying Ptr 2014-05-24 14:58:48 +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
190512156d Use some more GMSTs for enchanting 2014-01-29 15:37:26 +01:00
scrawl
d0500e8124 Some unneeded includes cleanup 2014-01-15 14:53:28 +01:00
scrawl
0f5dc59176 Remove useless dependencies on InventoryWindow for getting player gold. Don't use string literals for gold_001 id, just to be sure. 2014-01-08 23:37:46 +01:00
scrawl
098f9712f1 Add getPlayerPtr() utility method. Reduces dependencies a lot. 2014-01-08 18:39:44 +01:00
scrawl
dde2cd5d5a Fix some code that still used setCount directly instead of using the ContainerStore interface. Also fix a related annoyance with the interface. 2014-01-05 20:53:45 +01:00
scrawl
bab657fe2b Add a utility function to add items to a ContainerStore by RefID 2013-11-21 17:14:30 +01:00
scrawl
800a2845b0 Add Bound & Summon effects (will need some adjustments later) 2013-11-21 17:14:23 +01:00
scrawl
74e42a2d02 Add missing skill increases for Enchant skill 2013-11-19 07:39:07 +01:00
Emanuel Guevel
aefa54d72d Pass item count to ManualRef constructor
This remove the need to call setCount in multiple places.
2013-11-10 02:45:16 +01:00
Emanuel Guevel
10abb9d297 Call ContainerStore::remove() to remove items from inventory
Make placeObject() and dropObjectOnGround() in MWWorld to copy objects
(and indicate it clearly).

Enchanting an item now unequips it.
2013-11-10 02:45:16 +01:00
Emanuel Guevel
48d2554ac3 Auto-equip when items are added to the inventory
We limit that to armor pieces and clothing items.
No auto-equiping for the player nor werewolves.
2013-08-07 15:17:55 +02:00
scrawl
7dc30a01cd Some changes suggested by cppcheck 2013-07-31 18:46:32 +02:00
Miroslav Puda
dc17fa1636 Removal of duplicit enumeration and unnecessary conditions. 2013-05-29 00:01:18 +02:00
Miroslav Puda
7a4a386cbe Removal of tab characters. 2013-05-27 20:47:53 +02:00
Miroslav Puda
b40e24c50c Refactorization 2013-05-27 20:23:04 +02:00
Miroslav Puda
4e17bc1499 Fix for display of cast cost decimal value 2013-05-27 20:16:57 +02:00
Miroslav Puda
9a9b075a02 Correct cast cost for enchantments. 2013-05-27 18:08:12 +02:00
Miroslav Puda
1c7b94e94f Switching in nextCastStyle() is now based on enum CastingStyle. 2013-05-27 16:08:58 +02:00
Miroslav Puda
252a1d9223 Replacement of some magical constants 2013-05-27 15:50:47 +02:00
Miroslav Puda
4788b5e226 Better formula for enchantment cost and code refactorization. 2013-05-27 14:42:08 +02:00
Miroslav Puda
56edc1b213 Correction of getting spell range "Target". 2013-05-27 12:26:06 +02:00
scrawl
78596cad83 Fix enchantment points value 2013-04-29 10:19:09 +02:00
Glorf
194ca2584d Small azura's star fix 2013-04-08 17:53:41 +02:00
Glorf
08e9bb0236 Another small enchanting fix 2013-04-03 18:25:40 +02:00