David Cernat
fc4d3fe3fa
Merge pull request #441 from TES3MP/0.6.3 while resolving conflicts
...
Conflicts:
apps/openmw-mp/Script/Functions/Worldstate.cpp
apps/openmw-mp/Script/Functions/Worldstate.hpp
2018-05-28 05:11:34 +03:00
David Cernat
3efe05a88e
[General] Implement WorldCollisionOverride packet
2018-05-27 16:05:40 +03:00
David Cernat
e8ec031a81
[Client] Create Worldstate class that inherits BaseWorldstate
2018-05-27 15:57:47 +03:00
David Cernat
f7a084c824
[Client] Use faster check for whether actors are DedicatedPlayers
2018-05-26 08:13:26 +03:00
David Cernat
416ee77639
[General] Add placeholder for WorldCollisionOverride packet
2018-05-25 07:09:32 +03:00
David Cernat
2edb511a0b
[Client] Remove unnecessary condition from WorldTime processor
2018-05-25 07:08:51 +03:00
David Cernat
3f7e163c92
Merge pull request #439 from TES3MP/0.6.3 while resolving conflicts
...
Conflicts:
apps/openmw-mp/CMakeLists.txt
apps/openmw-mp/Script/Functions/GUI.cpp
apps/openmw-mp/Script/Functions/GUI.hpp
apps/openmw-mp/Script/Functions/Worldstate.cpp
apps/openmw-mp/Script/Functions/Worldstate.hpp
apps/openmw-mp/processors/worldstate/ProcessorRecordDynamic.hpp
apps/openmw/mwmp/processors/worldstate/ProcessorRecordDynamic.hpp
components/CMakeLists.txt
components/openmw-mp/Packets/Player/PacketGUIBoxes.cpp
2018-05-25 06:34:07 +03:00
David Cernat
3b5fb9cd6b
[General] Make it possible to set year via WorldTime
2018-05-25 03:33:12 +03:00
David Cernat
4acf93b7db
[General] Make it possible to set days passed via WorldTime
2018-05-24 14:02:04 +03:00
David Cernat
46744ee90f
[General] Make WorldTime script functions more consistent with others
2018-05-24 09:38:06 +03:00
David Cernat
8d36d0d945
[General] Make it possible to change world's time scale via WorldTime
2018-05-23 08:31:25 +03:00
David Cernat
0be6de6607
[General] Turn RecordDynamic into a Worldstate packet
2018-05-23 07:48:28 +03:00
David Cernat
7083cb0359
Merge pull request #437 from TES3MP/0.6.3 while resolving conflicts
2018-05-23 06:41:23 +03:00
David Cernat
da66face25
[General] Rename GameTime packet into WorldTime
2018-05-23 00:41:29 +03:00
David Cernat
ad4214d3e2
Merge pull request #434 from TES3MP/0.6.3 while resolving conflicts
...
Conflicts:
apps/openmw-mp/Networking.cpp
apps/openmw/mwmp/processors/worldstate/ProcessorGameTime.hpp
components/CMakeLists.txt
components/openmw-mp/Base/BasePlayer.hpp
components/openmw-mp/Packets/Worldstate/PacketGameTime.hpp
2018-05-21 09:26:08 +03:00
David Cernat
5af1150ab2
[General] Turn GameTime into a Worldstate packet
2018-05-21 07:14:08 +03:00
David Cernat
e87e1dbb30
[General] Fix Worldstate packets by adding missing lines
2018-05-21 07:12:55 +03:00
David Cernat
8a393d2984
Merge pull request #430 from TES3MP/0.6.3 while resolving conflicts
...
# Conflicts:
# apps/openmw-mp/Networking.cpp
# apps/openmw-mp/Networking.hpp
# components/CMakeLists.txt
2018-05-18 08:12:28 +03:00
David Cernat
43a944ddaf
[General] Add and implement new Worldstate packet type
2018-05-18 06:40:28 +03:00
David Cernat
049d0d9ba7
[General] Fix remaining references to world packets/events
2018-05-17 00:08:37 +03:00
David Cernat
b5922d18fd
Merge pull request #428 from TES3MP/0.6.3 while resolving conflicts
...
# Conflicts:
# apps/openmw-mp/Networking.cpp
# apps/openmw-mp/Script/Functions/Objects.cpp
# apps/openmw-mp/Script/Functions/Objects.hpp
# apps/openmw-mp/processors/ObjectProcessor.cpp
# apps/openmw-mp/processors/object/ProcessorContainer.hpp
# apps/openmw-mp/processors/object/ProcessorDoorState.hpp
# apps/openmw-mp/processors/object/ProcessorMusicPlay.hpp
# apps/openmw-mp/processors/object/ProcessorObjectAnimPlay.hpp
# apps/openmw-mp/processors/object/ProcessorObjectDelete.hpp
# apps/openmw-mp/processors/object/ProcessorObjectLock.hpp
# apps/openmw-mp/processors/object/ProcessorObjectMove.hpp
# apps/openmw-mp/processors/object/ProcessorObjectPlace.hpp
# apps/openmw-mp/processors/object/ProcessorObjectRotate.hpp
# apps/openmw-mp/processors/object/ProcessorObjectScale.hpp
# apps/openmw-mp/processors/object/ProcessorObjectSpawn.hpp
# apps/openmw-mp/processors/object/ProcessorObjectState.hpp
# apps/openmw-mp/processors/object/ProcessorObjectTrap.hpp
# apps/openmw-mp/processors/object/ProcessorScriptGlobalFloat.hpp
# apps/openmw-mp/processors/object/ProcessorScriptGlobalShort.hpp
# apps/openmw-mp/processors/object/ProcessorScriptLocalFloat.hpp
# apps/openmw-mp/processors/object/ProcessorScriptLocalShort.hpp
# apps/openmw-mp/processors/object/ProcessorScriptMemberFloat.hpp
# apps/openmw-mp/processors/object/ProcessorScriptMemberShort.hpp
# apps/openmw-mp/processors/object/ProcessorVideoPlay.hpp
# apps/openmw/mwmp/Networking.cpp
# apps/openmw/mwmp/processors/object/BaseObjectProcessor.hpp
# apps/openmw/mwmp/processors/object/ProcessorMusicPlay.hpp
# apps/openmw/mwmp/processors/object/ProcessorScriptGlobalFloat.hpp
# apps/openmw/mwmp/processors/object/ProcessorScriptGlobalShort.hpp
# apps/openmw/mwmp/processors/object/ProcessorScriptMemberFloat.hpp
# apps/openmw/mwmp/processors/object/ProcessorScriptMemberShort.hpp
# apps/openmw/mwmp/processors/object/ProcessorVideoPlay.hpp
2018-05-16 06:28:24 +03:00
David Cernat
51698bed48
[Client] Rename WorldProcessor into ObjectProcessor
2018-05-15 22:56:47 +03:00
David Cernat
d4dbfdfdb6
Merge pull request #423 from TES3MP/0.6.3 while resolving conflicts
...
Conflicts:
apps/openmw-mp/Networking.cpp
apps/openmw-mp/Script/Functions/World.cpp
apps/openmw-mp/Script/Functions/World.hpp
apps/openmw-mp/processors/WorldProcessor.cpp
apps/openmw-mp/processors/WorldProcessor.hpp
apps/openmw-mp/processors/world/ProcessorContainer.hpp
apps/openmw-mp/processors/world/ProcessorDoorState.hpp
apps/openmw-mp/processors/world/ProcessorObjectDelete.hpp
apps/openmw-mp/processors/world/ProcessorObjectLock.hpp
apps/openmw-mp/processors/world/ProcessorObjectPlace.hpp
apps/openmw-mp/processors/world/ProcessorObjectScale.hpp
apps/openmw-mp/processors/world/ProcessorObjectSpawn.hpp
apps/openmw-mp/processors/world/ProcessorObjectState.hpp
apps/openmw-mp/processors/world/ProcessorObjectTrap.hpp
apps/openmw/mwgui/container.cpp
apps/openmw/mwmp/Networking.cpp
apps/openmw/mwmp/ObjectList.cpp
apps/openmw/mwmp/ObjectList.hpp
apps/openmw/mwmp/processors/world/ProcessorContainer.hpp
components/CMakeLists.txt
components/openmw-mp/Base/BaseObject.hpp
components/openmw-mp/Packets/Object/ObjectPacket.cpp
components/openmw-mp/Packets/Object/PacketConsoleCommand.cpp
components/openmw-mp/Packets/Object/PacketContainer.cpp
components/openmw-mp/Packets/Object/PacketDoorState.hpp
components/openmw-mp/Packets/Object/PacketMusicPlay.hpp
components/openmw-mp/Packets/Object/PacketObjectAnimPlay.hpp
components/openmw-mp/Packets/Object/PacketObjectLock.hpp
components/openmw-mp/Packets/Object/PacketObjectMove.hpp
components/openmw-mp/Packets/Object/PacketObjectPlace.hpp
components/openmw-mp/Packets/Object/PacketObjectRotate.hpp
components/openmw-mp/Packets/Object/PacketObjectScale.hpp
components/openmw-mp/Packets/Object/PacketObjectSpawn.hpp
components/openmw-mp/Packets/Object/PacketObjectState.hpp
components/openmw-mp/Packets/Object/PacketObjectTrap.hpp
components/openmw-mp/Packets/Object/PacketScriptGlobalShort.hpp
components/openmw-mp/Packets/Object/PacketScriptLocalFloat.hpp
components/openmw-mp/Packets/Object/PacketScriptLocalShort.hpp
components/openmw-mp/Packets/Object/PacketScriptMemberShort.hpp
components/openmw-mp/Packets/Object/PacketVideoPlay.hpp
2018-05-13 03:20:01 +03:00
David Cernat
78234f9071
[General] Rename Event into ObjectList & WorldObject into BaseObject
2018-05-13 00:42:24 +03:00
David Cernat
672bb707a7
Merge pull request #422 from TES3MP/0.6.3 while resolving conflicts
...
# Conflicts:
# apps/openmw-mp/Networking.cpp
# apps/openmw-mp/Networking.hpp
# apps/openmw-mp/Script/Functions/World.cpp
# apps/openmw-mp/processors/WorldProcessor.cpp
# apps/openmw-mp/processors/WorldProcessor.hpp
# apps/openmw-mp/processors/world/ProcessorContainer.hpp
# apps/openmw-mp/processors/world/ProcessorDoorState.hpp
# apps/openmw-mp/processors/world/ProcessorObjectDelete.hpp
# apps/openmw-mp/processors/world/ProcessorObjectLock.hpp
# apps/openmw-mp/processors/world/ProcessorObjectPlace.hpp
# apps/openmw-mp/processors/world/ProcessorObjectScale.hpp
# apps/openmw-mp/processors/world/ProcessorObjectSpawn.hpp
# apps/openmw-mp/processors/world/ProcessorObjectState.hpp
# apps/openmw-mp/processors/world/ProcessorObjectTrap.hpp
# apps/openmw/mwmp/Networking.cpp
# components/CMakeLists.txt
# components/openmw-mp/Controllers/ObjectPacketController.hpp
# components/openmw-mp/Controllers/WorldPacketController.cpp
# components/openmw-mp/Packets/Object/ObjectPacket.cpp
# components/openmw-mp/Packets/Object/ObjectPacket.hpp
# components/openmw-mp/Packets/Object/PacketConsoleCommand.hpp
# components/openmw-mp/Packets/Object/PacketContainer.hpp
# components/openmw-mp/Packets/Object/PacketDoorState.hpp
# components/openmw-mp/Packets/Object/PacketMusicPlay.hpp
# components/openmw-mp/Packets/Object/PacketObjectAnimPlay.hpp
# components/openmw-mp/Packets/Object/PacketObjectDelete.hpp
# components/openmw-mp/Packets/Object/PacketObjectLock.hpp
# components/openmw-mp/Packets/Object/PacketObjectMove.hpp
# components/openmw-mp/Packets/Object/PacketObjectPlace.hpp
# components/openmw-mp/Packets/Object/PacketObjectRotate.hpp
# components/openmw-mp/Packets/Object/PacketObjectScale.hpp
# components/openmw-mp/Packets/Object/PacketObjectSpawn.hpp
# components/openmw-mp/Packets/Object/PacketObjectState.hpp
# components/openmw-mp/Packets/Object/PacketObjectTrap.hpp
# components/openmw-mp/Packets/Object/PacketScriptGlobalShort.hpp
# components/openmw-mp/Packets/Object/PacketScriptLocalFloat.hpp
# components/openmw-mp/Packets/Object/PacketScriptLocalShort.hpp
# components/openmw-mp/Packets/Object/PacketScriptMemberShort.hpp
# components/openmw-mp/Packets/Object/PacketVideoPlay.hpp
2018-05-12 20:35:34 +03:00
David Cernat
6bf3a0be1e
[General] Rename WorldPackets into ObjectPackets for clarity
2018-05-12 19:40:00 +03:00
David Cernat
7c8dd7380f
Merge pull request #421 from TES3MP/0.6.3 while resolving conflicts
...
Conflicts:
apps/openmw-mp/Script/Functions/Actors.cpp
apps/openmw-mp/Script/Functions/Actors.hpp
apps/openmw-mp/Script/Functions/Cells.cpp
2018-05-12 18:01:01 +03:00
David Cernat
77389538e8
[General] Implement ActorAI packet, part 1
...
The server can now make actors become followers of players or other actors.
2018-05-12 06:29:11 +03:00
David Cernat
c5f33e451f
Merge pull request #418 from TES3MP/0.6.3 while resolving conflicts
2018-05-10 22:33:36 +03:00
David Cernat
7f00005f04
[Client] Fix GCC build
...
Based on 71040659ac
2018-05-10 07:16:33 +03:00
David Cernat
715012f087
[General] Implement sending of image data for map tiles in PlayerMap
2018-05-08 05:57:04 +03:00
David Cernat
4846497078
Merge pull request #415 from TES3MP/0.6.3 while resolving conflicts
...
Conflicts:
apps/openmw-mp/Script/Functions/Positions.cpp
apps/openmw-mp/Script/Functions/Positions.hpp
apps/openmw-mp/Script/Functions/World.cpp
apps/openmw-mp/Script/Functions/World.hpp
apps/openmw-mp/Script/Script.hpp
apps/openmw-mp/Script/ScriptFunctions.cpp
components/openmw-mp/Base/BasePlayer.hpp
2018-05-02 23:15:39 +03:00
David Cernat
df0f9b0f5e
[Client] Require a certain Skill progress amount before sending packet
2018-05-01 19:34:21 +03:00
David Cernat
1b1e5e86d1
[Client] Avoid sending CellStates to server after initialization
...
Although b4e8560698
made players instantly able to see each other on minimalist servers that did not change their cells from the default, it created problems with the default CoreScripts where players need to be logged in before receipt of a CellStates packet from them is taken into account, with the result being that a player was recorded as having loaded their initial cells on the server's C++ side but not on the Lua side.
It may simply be best to expect servers to set player cells.
2018-05-01 18:19:52 +03:00
David Cernat
099f85be0a
[General] Implement PlayerMomentum packet & associated script functions
2018-04-29 23:47:17 +03:00
David Cernat
4b501a39f4
[General] Implement DoorDestination packet & associated script functions
2018-04-29 22:32:22 +03:00
David Cernat
502751cae0
Merge pull request #413 from TES3MP/0.6.3 while resolving conflicts
...
Conflicts:
apps/openmw-mp/processors/player/ProcessorPlayerCellChange.hpp
components/openmw-mp/Base/BasePlayer.hpp
components/openmw-mp/Packets/Player/PacketPlayerEquipment.hpp
components/openmw-mp/Packets/Player/PacketPlayerSkill.cpp
2018-04-29 06:46:28 +03:00
David Cernat
3b07dc4b42
[Client] Send equipment packets whenever an item charge or count changes
...
Since the beginnings of TES3MP, equipment packets have only been sent whenever an item has been replaced by an item with a different refId, with changes in an item's charge or count not sending a packet (but being included in the next packet sent as a result of a refId change). The reason for this was ostensibly the fact that every single equipment packet always included the details for all 19 equipment items (as per Koncord's original design decision), which would have led to massive packet spam if such a packet was sent every time you shot an arrow or lost a little bit of your armor's condition.
With minimalist equipment packets, it is now viable to send equipment packets whenever any item changes in some way, by having the equipment packet contain only that one item.
2018-04-29 05:40:42 +03:00
David Cernat
399e049d87
[Client] Fix logic for minimal size packets in LocalPlayer
...
Previously, the index changes were not cleared at the start of their corresponding update functions, which in turn meant that an Attribute/Skill/StatsDynamic/Equipment packet received by a player from the server made that player send back the same packet, as the index changes from it were retained.
Additionally, exchangeFullInfo was not set to false, thus sometimes leading to constant full exchanges of information.
2018-04-27 03:45:17 +03:00
David Cernat
608dcbafe6
[Client] Fix skill updates for LocalPlayer partially broken by 78441c769a
2018-04-22 11:22:36 +03:00
David Cernat
d58efde3f1
Merge pull request #410 from TES3MP/0.6.3 while resolving conflicts
...
Conflicts:
apps/openmw-mp/Script/Functions/Actors.cpp
apps/openmw-mp/Script/Functions/Chat.cpp
apps/openmw-mp/Script/Functions/GUI.hpp
apps/openmw-mp/Script/Functions/Items.cpp
apps/openmw-mp/Script/Functions/Stats.cpp
apps/openmw-mp/Script/Functions/Stats.hpp
apps/openmw-mp/Script/ScriptFunctions.cpp
apps/openmw-mp/Script/ScriptFunctions.hpp
apps/openmw-mp/processors/player/ProcessorPlayerCharGen.hpp
apps/openmw/mwmp/Cell.cpp
apps/openmw/mwmp/DedicatedActor.cpp
apps/openmw/mwmp/DedicatedPlayer.cpp
apps/openmw/mwmp/LocalActor.cpp
apps/openmw/mwmp/LocalPlayer.cpp
apps/openmw/mwmp/LocalPlayer.hpp
apps/openmw/mwmp/Main.cpp
components/openmw-mp/Base/BaseActor.hpp
components/openmw-mp/Base/BasePlayer.hpp
components/openmw-mp/Packets/Player/PacketPlayerAttribute.cpp
components/openmw-mp/Packets/Player/PacketPlayerSkill.cpp
2018-04-21 16:55:05 +03:00
David Cernat
a541d7df3c
[General] Rework PlayerStatsDynamic packets so they are of minimal size
...
(cherry picked from commit fc5e883160
)
2018-04-21 00:43:49 +03:00
David Cernat
b9520c11da
[General] Rework PlayerEquipment packets so they are of minimal size
...
Moreover, rename BaseNetCreature's equipedItems into equipmentItems.
(cherry picked from commit d1ad0c91f8
)
2018-04-20 22:46:16 +03:00
David Cernat
c5b08d6109
[General] Simplify storing of attribute and skill index changes
...
(cherry picked from commit bd9e8bd10f
)
2018-04-19 23:28:03 +03:00
David Cernat
2c77d5f498
[General] Set enforcedLogLevel to -1 when initializing BasePlayer
2018-04-19 20:42:27 +03:00
David Cernat
b6099024df
[General] Rework PlayerAttribute packets so they are of minimal size
...
Previously, whenever a single attribute value changed for a player, that player then sent a PlayerAttribute packet with all values for all 8 attributes.
This did not cause anywhere as much packet spam as PlayerSkill used to, but there was no good reason not to fix it as well.
(cherry picked from commit b0965f094a
)
2018-04-19 17:26:20 +03:00
David Cernat
78441c769a
[General] Rework PlayerSkill packets so they are of minimal size
...
Previously, whenever a single skill value changed for a player, that player then sent a PlayerSkill packet with all values for all 27 skills, plus the player's progress towards the next level and the bonuses to each attribute on the next level up as the result of sklll increases thus far.
This commit makes PlayerSkill contain only the values of specific skills, moves the player's progress towards the next level to PlayerLevel packets, and moves the bonuses to each attribute on the next level up to PlayerAttribute packets.
Players now also send a PlayerSkill packet whenever their progress towards a new point in a skill changes. This was previously avoided so as to not have massive packet spam.
(cherry picked from commit ef79a98544
)
2018-04-19 15:18:38 +03:00
David Cernat
af4fcb7261
[Client] Don't force skill update on cell change
...
Previously, an attempt by the server to simultaneously change a player's cell and skills (as you'd expect when a player file is loaded) led to:
1) The server sending the cell packet first and the skill packet afterwards
2) The player receiving the cell packet and sending their own skill packet as part of the client's forced skill update
3) The player receiving the skill packet from the server
4) The server receiving the skill packet from the player
The result was that, if the player then left the server without sending another skill packet, the server's memory retained the skills the player had sent instead of the skills it had sent to the player.
This is the first step in a solution to that situation and similar ones.
(cherry picked from commit cac4684986
)
Note: In 0.6.x, this was only a problem if a player's cell was set by the server first and their skills were set next, i.e. this was not a problem in the default CoreScripts because the opposite order used there masked the problem. It was a more significant problem in 0.7 because all packets were queued for a player and sent in a specific hardcoded order.
2018-04-19 14:22:14 +03:00
David Cernat
28f1c1b0d3
[General] Rework CharGen slightly for clarity purposes
...
Previously, charGenStage.end was doing double duty as both the variable indicating the number of CharGen stages and – when set to 0 – the variable indicating that CharGen was over. The latter role is now filled by a new boolean.
(cherry picked from commit 926106cf8c
)
2018-04-19 13:25:29 +03:00
David Cernat
9d46de88e0
[Client] Send cell states correctly after inputting name
...
Previously, initial cell states were sent in LocalPlayer::processCharGen() and were ignored by the server because the player was not yet regarded as loaded. The result was that existing players logging in could not see each other until they went through at least one cell change.
(cherry picked from commit b4e8560698
)
# Conflicts:
# apps/openmw/mwmp/LocalPlayer.cpp
2018-04-18 20:30:48 +03:00