Commit Graph

171 Commits (ffi-server-rewrite)

Author SHA1 Message Date
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.
6 years ago
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.
6 years ago
David Cernat 36ac2d9de4 [Client] Set packetOrigin for all ObjectList packets sent 7 years ago
David Cernat a236ffc4be Merge pull request #456 from OpenMW/master while resolving conflicts
# Conflicts:
#	.travis.yml
#	README.md
#	apps/openmw/mwgui/quickkeysmenu.cpp
#	apps/openmw/mwmechanics/actors.cpp
#	apps/openmw/mwmechanics/combat.cpp
7 years ago
Andrei Kortunov 441463327c Validate map size 7 years ago
David Cernat 78234f9071 [General] Rename Event into ObjectList & WorldObject into BaseObject 7 years ago
David Cernat 420dab10e1 [General] Track objects directly placed by players in ObjectPlace
This allows the OnPCDrop variable to get set correctly even when object placements have to go through the server first in order to gain a unique multiplayer index (mpNum).

Among other things, this makes it possible to roll marijuana joints in the popular mod "Tribunal Code Patch".
7 years ago
David Cernat cac2c6c1e8 Merge pull request #360 from TES3MP/0.6.1-openmw-updates while resolving conflicts 7 years ago
David Cernat 0ad9c99cf4 [Client] Send PlayerInventory packet after completing a vendor trade 7 years ago
David Cernat e164e6305e Merge pull request #313 from OpenMW/master while resolving conflicts
# Conflicts:
#	.travis.yml
#	CMakeLists.txt
#	apps/openmw/mwgui/jailscreen.cpp
#	apps/openmw/mwmechanics/mechanicsmanagerimp.cpp
7 years ago
scrawl 03554b2f4b Fix some style issues flagged by cppcheck 7 years ago
David Cernat 38247ff086 Merge pull request #303 from OpenMW/master while resolving conflicts
# Conflicts:
#	apps/openmw/mwbase/dialoguemanager.hpp
#	apps/openmw/mwdialogue/dialoguemanagerimp.hpp
#	apps/openmw/mwgui/container.cpp
#	apps/openmw/mwgui/windowmanagerimp.cpp
#	apps/openmw/mwscript/dialogueextensions.cpp
7 years ago
scrawl 36c192a1dd Undo the console portion of 84657271c7 because it results in the console forgetting its object on opening 7 years ago
scrawl 222defc6d8 Extend HUD::clear() 7 years ago
scrawl f67dbc8aa0 Remove redundant update function 7 years ago
scrawl ba7ae2663f Use a generic container to delete windows 7 years ago
scrawl 84657271c7 Improve WindowManager API with a generic way of passing a Ptr to the opened GUI window 7 years ago
David Cernat 4468e6ec4a Merge pull request #280 from OpenMW/master while resolving conflicts
# Conflicts:
#	.gitignore
#	apps/openmw/mwmechanics/actors.hpp
#	apps/openmw/mwmechanics/mechanicsmanagerimp.cpp
7 years ago
Andrei Kortunov 73d5efabee Display negative values on fatigue progress bar 7 years ago
David Cernat 0cce9908be Merge pull request #222 from OpenMW/master
Add OpenMW commits up to 29 May 2017
8 years ago
David Cernat 97768be14b [Client] Send ObjectPlace packet for random creatures interrupting rest 8 years ago
David Cernat dcc61a095a [Client] Allow multiple WorldObjects to be added to a WorldEvent 8 years ago
Andrei Kortunov 987677db75 Tooltips: dynamic stats, birthsign and hand-to-hand layout fixes 8 years ago
David Cernat a82646a130 [Client] Delineate tes3mp-only code more clearly, part 2 8 years ago
David Cernat 9759764699 [Client] Clean up getting and resetting of WorldEvent 8 years ago
David Cernat 4abe295a80 [Client] Simplify sending of world packets by adding WorldEvent methods 8 years ago
David Cernat 8b8c01f389 [General] Make ID_OBJECT_PLACE take effect only when sent back by server 8 years ago
David Cernat 2bd81c3de0 [Client] Use mpNum for every WorldObject 8 years ago
David Cernat e5cf632e1d [Client] Stop creating new reference numbers for placed/spawned objects 8 years ago
David Cernat 7647715dac Merge pull request #190 from OpenMW/master
Add OpenMW commits up to 27 Mar 2017
8 years ago
Andrei Kortunov b89fdcfd27 Vanilla style drowning widget (partially fixes bug #3801). 8 years ago
David Cernat e0234dc362 Merge pull request #183 from OpenMW/master while resolving conflicts
# Conflicts:
#	.travis.yml
#	CMakeLists.txt
8 years ago
scrawl a556475fae Explicitely set the user data type to avoid const/non-const mismatch 8 years ago
Koncord 690211ad99 [General] Extract BaseEvent & BasePlayer from packets to functions
Move Send and Read functions to BasePacket
8 years ago
Koncord cea1425db1 [Client] Remove redundant newlines & keep ~120 columns 8 years ago
David Cernat a58601fb2b [Client] Delineate tes3mp-only code more clearly, part 1 8 years ago
David Cernat ed2176c984 [Client] Reuse 1 BaseEvent over and over instead of creating new ones 8 years ago
David Cernat e703dd42aa [Client] Rename LocalEvent into WorldEvent 8 years ago
David Cernat 25d79dbcfe [Client] Revert c0d67f67fb after discovering its negative consequences 8 years ago
David Cernat cdd796aba1 [Client] Send ID_PLAYER_INVENTORY from two more locations 8 years ago
David Cernat c0d67f67fb [Client] Move code for sending a packet for picking up world items
Previously, an ID_OBJECT_DELETE was sent from inventorywindow.cpp, but this is now sent from hud.cpp because 2 other packets are also sent from there.
8 years ago
David Cernat b2cdec8efa [Client] Send ID_PLAYER_INVENTORY upon dropping an item, 2nd attempt 8 years ago
David Cernat f03724be7b [Client] Send ID_PLAYER_INVENTORY upon dropping an item 8 years ago
David Cernat ecc456fea9 [General] Include charge int in WorldObject & send it w/ ID_OBJECT_PLACE 8 years ago
David Cernat 703f253712 [Client] Delete new LocalEvents after sending them 8 years ago
David Cernat d503a65849 [Client] Replace tab characters with spaces 8 years ago
David Cernat 9f1e491a75 [General] Make WorldEvents store information about multiple objects 8 years ago
David Cernat 624b85347a [Client] Create LocalEvent class and use it instead of WorldEvent 8 years ago
Koncord 804259b2c9 Change some printf to LOG_MESSAGE_SIMPLE
printf is not streamed to files
8 years ago
Koncord 536715cf46 Cleanup tes3mp headers 8 years ago