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

1006 commits

Author SHA1 Message Date
David Cernat
9697595857 [Client] Don't equip already equipped items in local setEquipment()
This avoids the following error when receiving repeated PlayerBaseInfo packets: "Error in frame: Invalid slot, make sure you are not calling RefData::setCount for a container object"

Additionally, only re-equip items as the result of a PlayerBaseInfo packet if resetStats is true (because of its side effect of auto-equipping items for the player).
2018-04-10 19:02:55 +03:00
David Cernat
72463cfdb6 [Client] Refresh equipment for DedicatedPlayers when setting base info
Additionally, move default fatigue value to DedicatedPlayer initialization.
2018-04-10 19:02:55 +03:00
David Cernat
73dea494c4 [General] Allow changes from PlayerBaseInfo without player stat reset 2018-04-09 19:21:19 +03:00
David Cernat
c132dc70d2 [Client] Make PlayerShapeshift turn DedicatedPlayers into creatures 2018-04-09 15:23:05 +03:00
David Cernat
141eb8b7c2 [Client] Streamline creation of references for DedicatedPlayers
Additionally, delete DedicatedPlayers who disconnect.

Previously, all disconnected DedicatedPlayers were still kept in memory, but never used again. There was code that suggested they were meant to be reused upon reconnecting, but that reuse had never actually been implemented, and would probably not be that useful anyway.
2018-04-08 15:02:43 +03:00
David Cernat
14f90e773d [Client] Split up creation of DedicatedPlayers into multiple methods
Additionally, print player guids using their string representations for consistency.

The creation and updating of DedicatedPlayer references remains very inelegant, but this commit is the first step towards fixing that.
2018-04-08 10:56:33 +03:00
David Cernat
c8abd11f5d [General] Move creature disguises for players to PlayerShapeshift packet
Additionally, make associated variables clearer, and move associated server script functions next to other shapeshifting functions.
2018-04-05 15:42:06 +03:00
David Cernat
34be9383e5 [General] Add isPlayer boolean to targets in packets 2018-04-05 12:48:53 +03:00
David Cernat
0eed05610b [Client] Fix autoequipping for creatures in WorldEvent::editContainers() 2018-04-03 15:22:51 +03:00
David Cernat
a86c68c5a1 [General] Add sync for ranged weapon & projectile strike enchantments 2018-04-03 14:12:27 +03:00
David Cernat
3f8d94b030 [General] Synchronize strike enchantments in combat 2018-04-03 10:27:02 +03:00
David Cernat
26a56d6a02 [Client] Include NPC/creature containers when adding all cell containers 2018-04-01 14:58:04 +03:00
David Cernat
1e3c4fd488 [Client] Fix ProcessorContainer typos caused by careless copy-pasting 2018-04-01 10:47:57 +03:00
David Cernat
f80f3bd484 [Client] Make it possible to reply to requests about specific containers
Previously, a Container packet with a REQUEST action always made the client respond with the contents of all the containers in that cell.

The previous behavior now only happens for requests that have no WorldObjects attached, while requests that have WorldObjects attached get a reply with the contents of those specific containers.
2018-04-01 10:00:39 +03:00
David Cernat
258e319acb [Client] Require InventoryStore for autoequipping actors 2018-04-01 09:02:26 +03:00
David Cernat
afe8c97cb9 [Client] Require InventoryStore for unequipping actors in editContainers 2018-04-01 08:41:57 +03:00
David Cernat
d8b48f6cf4 [Client] Remove redundant container methods from CellController 2018-04-01 07:11:43 +03:00
David Cernat
5f6ddcfc59 [General] Rework container sync to prevent item duping
A main priority in TES3MP development is to avoid making major changes to OpenMW code, so as to avoid merge conflicts in the future. Whenever avoiding potential conflicts seems especially difficult for the proper implementation of a particular multiplayer feature, that multiplayer feature is often put off until later or partially implemented with the intent of being revisited in the future.

Container sync is the perfect example. Previously, the OpenMW code for container actions was kept exactly as it was, with clients unilaterally accepting their own container changes as per singleplayer-specific code, with only the addition that clients sent container packets every time they made a change in a container, packets which were then forwarded unquestioningly by the server to other players. This meant that two players clicking on the same item in a container at the same time both managed to take it, thus duplicating the item.

Immediately after the packets were already forwarded, server scripts were able to check for incorrect changes, such as the removal of more items than should have existed in a container, but they had to send their own packets that attempted to fix what had already been accepted on the initial client and then forwarded to all clients, which was quite onerous in some scenarios, such as when a player on a slow connection immediately dropped items in the world after taking them from a container (which is why the default TES3MP serverside scripts made no attempt at sending corrective packets at all, preferring to expect the matter to be solved in a later C++ implementation).

This commit fixes item duping in containers by preventing container actions from initially running on clients and by ending the automatic forwarding of container packets by the server. Instead, clients now send container packets that act as requests for container actions, and serverside scripts have to forward these requests themselves. In other words, without a matching Container event in the server's Lua scripts, players are completely unable to affect containers for themselves or for others.

To forward a received Container packet, the following line must be used in a Container event in the Lua scripts:

tes3mp.SendContainer(true, true)

When an invalid action count is used in a container request, the serverside scripts can amend it using the following new function:

tes3mp.SetReceivedContainerItemActionCount(objectIndex, itemIndex, actionCount)

Thus, the serverside scripts are able to allow only container actions that are correct based on their own recorded contents for that container.

The OpenMW code allowing unilateral container actions in mwgui/container.cpp is now prevented from executing. When a player's container request is returned to them, code in mwmp/WorldEvent.cpp simulates those container actions instead.
2018-03-26 19:27:36 +03:00
David Cernat
9165b12d78 [Client] Update inventory views when receiving inventory or equipment 2018-03-26 10:01:26 +03:00
David Cernat
bbdc30628b [Client] Use the correct guid for a received WorldEvent or ActorList 2018-03-21 06:08:04 +02:00
David Cernat
14f0299322 [Client] Don't log InputBox inputs for client 2018-03-20 06:41:04 +02:00
David Cernat
20caea083a [Client] Use correct count for items in equipment packets
Previously, throwing weapon sync was completely broken for players, as the count for their equipped throwing weapons was never set and – as a result – defaulted to a count of 1 on other clients. As a result, any time a player threw a dart, they would then appear as having switched to hand-to-hand for other players.

Moreover, the count of equipped items was mistakenly based on the total count of items with that refId in the inventory. As a result, if – for example – I equipped 1 Daedric Longsword and had 4 others in my inventory, my DedicatedPlayer on other clients would equip a Daedric Longsword with a count of 5. If I was overencumbered by having that many Daedric Longswords on me and then dropped 4 of them, allowing myself to move again, my DedicatedPlayer would still walk around with 5 Daedric Longswords and lack animations due to still being overencumbered on the other clients.

These problems were less prevalent for actors, but their equipment updating code has also been changed to match that of players.
2018-03-12 23:31:37 +02:00
David Cernat
b249162ca1 [General] Implement setting of enforced client log level in GameSettings
Certain servers do not want the players to have debug information about the locations and actions of other players, so a client's log level can now be enforced by the server via the GameSettings packet.
2018-03-11 04:50:59 +02:00
David Cernat
a3a341fee6 [Server] Reimplement 4ebfcc4a21 for 0.6 2018-03-10 22:19:44 +02:00
David Cernat
03266d7648 [Client] Prevent guards from arresting players who are currently jailed 2018-02-25 21:33:04 +02:00
David Cernat
60f686ee43 [General] Implement setting of physics framerate as part of GameSettings 2018-02-14 05:53:44 +02:00
David Cernat
886b3431bc [Client] When resurrecting players, set pcknownwerewolf to 0
This makes it so players are no longer known werewolves and are no longer attacked infinitely by guards.
2018-02-13 21:55:10 +02:00
David Cernat
74765b3ace [General] Implement selected spell sync as part of PlayerMiscellaneous 2018-02-06 06:36:46 +02:00
David Cernat
029dfc56ba [General] Implement player scale as part of PlayerShapeshift 2018-02-01 02:11:45 +02:00
David Cernat
aa448523f8 [Client] Clean up WorldEvent::runConsoleCommands() slightly 2018-01-31 23:23:52 +02:00
David Cernat
ce5670e57e [Client] Ignore invalid object refIds from ObjectPlace packets 2018-01-31 18:51:53 +02:00
David Cernat
66078bfea7 [General] Implement Mark location sync as part of PlayerMiscellaneous 2018-01-31 04:50:29 +02:00
David Cernat
989f6e6b51 [General] Implement PlayerReputation packet 2018-01-30 22:55:29 +02:00
David Cernat
3d80e2db62 [General] Add placeholders for new packet types, part 2 2018-01-30 16:01:33 +02:00
David Cernat
02af7f6ba1 [General] Add placeholders for new packet types 2018-01-29 22:32:51 +02:00
David Cernat
ce11a1dfa9 [Client] Fix potential invalid pointer when storing cell unloads
Notably, builds of the client done with Clang were crashing on startup before this.
2018-01-29 00:14:26 +02:00
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".
2018-01-28 17:46:51 +02:00
David Cernat
d7e29f1f61 [Client] Unequip items with constant effect damage when resurrected 2018-01-27 20:19:39 +02:00
David Cernat
d19d8b0a34 [Client] Add and use enchantmentType argument for unequipItemsByEffect() 2018-01-27 19:37:16 +02:00
David Cernat
6c4bb8c423 [Client] Move resurrection code for local player to LocalPlayer 2018-01-27 19:09:55 +02:00
David Cernat
6b75a82777 [Client] Ignore equipment items for DedicatedActors with count below 0 2018-01-27 18:08:45 +02:00
David Cernat
e3bc11d9eb [Client] Fix ListBox overlap crashes by removing ListBoxes properly 2018-01-27 15:41:11 +02:00
David Cernat
c6a85ee8f9 [Client] Add doesEffectListContainEffect() method to MechanicsHelper 2018-01-26 03:18:01 +02:00
David Cernat
aa392ebf20 [Client] Unequip items if necessary when attr/skill modifier is set to 0 2018-01-26 00:45:39 +02:00
David Cernat
ace825b99c [Client] Ignore invalid player class IDs from packets
Additionally, clean up variables names in related code.
2018-01-24 02:47:56 +02:00
David Cernat
c6874509b6 [Client] Ignore invalid faction IDs from packets 2018-01-24 02:25:44 +02:00
David Cernat
5894ffae7d [Client] Ignore dynamic object placements or spawns in packets 2018-01-17 11:01:31 +02:00
David Cernat
bce3d0eb4c [Client] Use more descriptive message for version mismatch 2018-01-17 08:10:49 +02:00
David Cernat
09548d05f7 [Client] Ignore cell changes that move actors to where they already are 2018-01-08 01:37:01 +02:00
David Cernat
4a9a628a0f [Client] When getting an actor, make sure their cell is initialized 2018-01-07 02:35:30 +02:00
David Cernat
0cc86c04d1 [Client] Print plugin discrepancies, not just plugin lists side by side 2018-01-06 05:39:25 +02:00
David Cernat
a639d3494a [Client] Fix use of DedicatedPlayers as targets for ConsoleCommand 2018-01-05 01:24:15 +02:00
David Cernat
502df7d9c1 [Client] Clean up GUIChat slightly 2018-01-05 00:03:05 +02:00
David Cernat
db0e0d376e [Client] Use new code to set the console's Ptrs from server scripts
Previously, reusing the console's object selection code made it so using the same Ptr twice in a row was akin to clicking on the same object twice in the console window, i.e. the object was deselected the second time around. Additionally, that same code was setting key focus to the hidden console window, preventing players from moving until they activated another window (such as their inventory or chat window).
2017-12-26 15:04:28 +02:00
David Cernat
5fd9079b26 [Client] Stop drag and drop when setting player inventory 2017-12-25 05:41:13 +02:00
David Cernat
40e70ebf9c [Client] Fix key focus for chat window 2017-12-25 05:08:36 +02:00
David Cernat
bed96e5a3d [Client] Remove check of GM_RestBed GUI mode that no longer exists 2017-12-25 03:26:28 +02:00
David Cernat
cac2c6c1e8 Merge pull request #360 from TES3MP/0.6.1-openmw-updates while resolving conflicts 2017-12-25 02:25:01 +02:00
David Cernat
993081ba1e [General] Add enchantmentCharge to worldObjects and items 2017-12-23 13:16:38 +02:00
David Cernat
fef6bddc68 [Client] Fix typo related to drag and dropping 2017-12-16 23:19:54 +02:00
David Cernat
535fba0cb3 [Client] Finish drag and drops when arrested or teleported by server 2017-12-16 07:21:02 +02:00
David Cernat
e97c9f72a2 [General] Rework getting/clearing of skill modifiers as with attributes 2017-12-04 15:06:27 +02:00
David Cernat
047ad40b96 [Client] Clear FortifyAttribute effects when server sets modifier to 0 2017-12-02 09:22:36 +02:00
David Cernat
ef6dc61797 [Client] Send PlayerAttribute packets when attribute modifiers change 2017-11-30 23:03:34 +02:00
David Cernat
c9c363ebef [General] Allow GameSettings to set bed & wilderness resting separately 2017-11-30 12:18:15 +02:00
David Cernat
3508a16836 [General] Use GameSettings packet to set ability to rest and wait 2017-11-27 07:39:02 +02:00
David Cernat
6668b9ab42 [General] Implement ConsoleCommand packet 2017-11-23 00:21:47 +02:00
David Cernat
2ca4017371 [Client] Force position updates for players in animations 2017-11-01 22:00:54 +02:00
David Cernat
be25decee2 [General] Implement PlayerSpeech packet 2017-10-31 15:19:14 +02:00
David Cernat
605b06c303 [General] Find actor speech captions instead of sending them in packets 2017-10-30 11:06:09 +02:00
David Cernat
413893aa51 [General] Implement PlayerAnimPlay packet 2017-10-27 09:10:29 +03:00
David Cernat
50d5fffb7f [General] Add and implement PlayerQuickKeys packet 2017-10-25 07:21:00 +03:00
David Cernat
c35101cc36 [Client] Don't use message box call boolean for regular message boxes 2017-10-10 04:11:36 +03:00
David Cernat
4f112ba3d7 [Client] Use regular message boxes where expected to do so
This helps us move towards using the same terminology as OpenMW for GUI elements, leading to less confusion.
2017-10-10 04:05:36 +03:00
David Cernat
08f34e5356 [Client] Fix recent problems with password window 2017-10-08 02:42:41 +03:00
David Cernat
711c4d83da [Client] Fix build after recent OpenMW changes to GUI 2017-10-07 23:33:36 +03:00
David Cernat
b94c0a9991 [Client] Don't send Attribute & Skill packets as werewolf, part 2 2017-09-04 20:21:06 +03:00
David Cernat
8c9d6a0160 [Client] Ensure that LocalPlayer's isWerewolf starts out false 2017-09-04 15:44:10 +03:00
David Cernat
ccb15cc09e [Client] When players die, make guards willing to arrest them again 2017-09-04 15:13:05 +03:00
David Cernat
ac3254d85f [General] Don't send PlayerAttribute and PlayerSkill packets as werewolf
This will prevent the server from overwriting a player's human form stats with their werewolf form stats.

Additionally, share PlayerShapeshift packets last when exchanging data with another player.
2017-08-31 18:21:38 +03:00
David Cernat
93d1aa2e4a [Client] Comment out the broken sending of custom spells until 0.7.0 2017-08-31 17:07:45 +03:00
David Cernat
98a7769b91 Merge branch 'master' into 0.6.0 2017-08-31 15:44:27 +03:00
Koncord
54f5104345 [General] Escape format for strings 2017-08-31 20:09:05 +08:00
David Cernat
cca4991e74 [Utils] Use consistent names for utility functions added by tes3mp 2017-08-31 10:12:22 +03:00
David Cernat
cf4021a7b5 [Client] Only add valid quests to journal 2017-08-31 09:08:29 +03:00
David Cernat
134dd06d48 [Client] Only add valid inventory & equipment items to LocalPlayer
Also add related debug information.
2017-08-31 08:35:46 +03:00
David Cernat
c3d1eada89 [Client] Only add spells to players that are ensured to exist 2017-08-31 06:42:11 +03:00
David Cernat
2597f018d2 Merge pull request #272 from TES3MP/0.6.0
Add hotfix commits for 0.6.0 up to 23 Aug 2017
2017-08-23 07:22:29 +03:00
David Cernat
8f543fb34e [Client] Use less exploitable way of disabling console
Previously, large framerate drops allowed players to open and use the console for short periods of time.
2017-08-23 04:58:07 +03:00
David Cernat
77ce05b7d6 [Client] Fix spell casting probability synchronization 2017-08-06 00:11:54 +03:00
David Cernat
0e2038f045 [General] Record and get player positions before their last cell change 2017-08-04 21:45:52 +03:00
David Cernat
fbec0d9443 [Client] Remove inertia from players who are teleported via a packet 2017-08-04 21:43:01 +03:00
Unknown
bfbfbeac43 Added networking and saving for custom spells 2017-07-31 03:45:47 +10:00
David Cernat
4db64e1721 [Client] Synchronize spellcasting for non-bipedal creatures 2017-07-28 20:49:26 +03:00
David Cernat
9d05063af4 [General] Add server script functions for banning & unbanning IPs
Additionally, use a more informative message for the client when trying to connecting to a server that it is banned from.
2017-07-27 19:29:17 +03:00
David Cernat
796118c266 [Client] Send StatsDynamic packets more often 2017-07-26 20:15:35 +03:00
David Cernat
43a3daf0aa [General] Add & implement PlayerShapeshift packet for werewolf states 2017-07-15 09:02:19 +03:00
David Cernat
ad9fa0631a [General] Rename jailText to jailEndText and add jailProgressText in PlayerJail 2017-07-13 20:13:28 +03:00
David Cernat
708d3723eb [Client] Fix client script messagebox buttons that had always broken in tes3mp 2017-07-13 18:58:48 +03:00
David Cernat
e36c0afc59 [General] Send faction reputation via PlayerFaction packets 2017-07-13 13:36:00 +03:00
David Cernat
be93ec8ef6 [General] Implement ObjectState packet 2017-07-13 09:46:30 +03:00
David Cernat
083b46394d [General] Add ignoreJailSkillIncreases to PlayerJail packets 2017-07-12 18:24:37 +03:00
David Cernat
5962570c48 [General] Add jailText to PlayerJail packets 2017-07-12 16:39:31 +03:00
David Cernat
5774023f8b [Client] Add missing processor initialization for ProcessorPlayerJail 2017-07-11 14:31:32 +03:00
David Cernat
3280f0c5ee [General] Implement PlayerJail packet
Rework server's DeathFunctions into MechanicsFunctions

Remove connection between PlayerResurrect and jailing
2017-07-11 13:34:09 +03:00
David Cernat
3529f9b090 [General] Add placeholders for PlayerJail, ObjectState & ConsoleCommand 2017-07-10 12:33:53 +03:00
David Cernat
4e74910fdb [General] Disable automatic sync for PlayerJournal and PlayerFaction
Simplify PlayerFaction packets by removing BOTH action
2017-07-08 12:27:48 +03:00
David Cernat
1d504a665f [General] Add RANK, EXPULSION and BOTH actions to PlayerFaction packets 2017-07-05 07:06:33 +03:00
Koncord
9bb586de77 [Client] Simplify setMapExplored() 2017-07-03 23:43:32 +08:00
Koncord
52349278e9 [Client] Fix warnings 2017-07-03 23:41:16 +08:00
Koncord
b2339f2f9a [Client] Fix building 2017-07-03 23:40:38 +08:00
David Cernat
60574ae667 [General] Implement jail time as a death penalty 2017-07-03 15:45:21 +03:00
David Cernat
71313c5aa6 [General] Implement PlayerMap packet, part 1 2017-07-03 09:28:27 +03:00
David Cernat
c899525e30 [General] Use address keys with clearer meaning in tes3mp config files 2017-07-03 01:31:48 +03:00
David Cernat
1f682749d6 [General] Add optional notes to PasswordDialogs 2017-07-02 13:07:36 +03:00
Koncord
73cf134107 [General] Fix incoming password string 2017-07-02 11:11:33 +08:00
Koncord
0cf09adb44 [General] Move AddProcessor to BasePacketProcessor 2017-06-30 20:09:05 +08:00
Koncord
9519c467eb [Client] Simplify updateEquipment for LocalPlayer & LocalActor 2017-06-29 14:52:23 +08:00
Koncord
596f42e408 [Client] Fix "invalid iterator" error 2017-06-29 14:36:56 +08:00
Koncord
5b2cab4c6b [General] Change NULL to nullptr 2017-06-27 22:49:28 +08:00
Koncord
0ed0d2417b [Client] Make foreach style consistent with other 2017-06-27 22:27:02 +08:00
Koncord
2427a4f877 [Client] Update DedicatedActor to C++11 2017-06-27 22:25:39 +08:00
Koncord
8f7da49152 [Client] Update DedicatedPlayer to C++11 2017-06-27 22:25:29 +08:00
Koncord
08666cabdb [Client] Update PlayerList to C++11 2017-06-27 22:24:34 +08:00
Koncord
a110ec1767 [Client] Update GUIController to C++11 2017-06-27 21:59:05 +08:00
Koncord
7499777b3a [Client] Update CellController to C++11 2017-06-27 21:56:40 +08:00
Koncord
7d4dd2ad1c [Client] Update Cell to C++11 2017-06-27 21:56:24 +08:00
Koncord
7918e887dd [Client] Update ActorList to C++11 2017-06-27 21:56:14 +08:00
Koncord
aa12b35d03 [Client] Update LocalActor to C++11 2017-06-27 21:12:00 +08:00
Koncord
689050e1d0 [Client] Long expression to lambda 2017-06-27 21:01:13 +08:00
Koncord
58a6a8c3bc [Client] Update LocalPlayer to C++11 2017-06-27 20:43:39 +08:00
Koncord
6222c20e82 [Client] Convert MechanicsHelper to namespace 2017-06-27 16:43:53 +08:00
Koncord
7d3e08f031 [Client] Simplify loops 2017-06-27 16:32:16 +08:00
Koncord
f7341c021f [Client] Modernize loops in WorldEvent to C++11 2017-06-27 15:58:41 +08:00
Koncord
61cc3ced5d [Client] Remove boost from processors 2017-06-27 15:25:30 +08:00
Koncord
fcccd7b665 [General] Remove creatureStats.mDead from packets 2017-06-27 15:03:41 +08:00
David Cernat
813a3c89c4 [General] Implement PlayerBook packet to track skill books read 2017-06-27 08:27:14 +03:00
David Cernat
b3b73c5cd2 [General] Implement resurrection at nearest shrine or temple 2017-06-27 01:01:45 +03:00
David Cernat
7d81b84dd8 [Client] Write list of loaded plugins to log 2017-06-26 06:49:58 +03:00
David Cernat
78f29302ef [General] Fix PlayerJournal logic by sending only refIds for its actors
Additionally, make the refIds for actors usable in script functions.
2017-06-23 08:12:32 +03:00
David Cernat
ebf7740969 [General] Repurpose GameConsole packet as GameSettings & add difficulty to it 2017-06-20 05:28:45 +03:00
David Cernat
c6aee3b780 [Client] Fix build by changing boost::shared_ptr into std::shared_ptr 2017-06-18 19:36:06 +03:00
Koncord
3803535bd5 [General] Implement CleanChat() 2017-06-12 08:01:47 +08:00
David Cernat
bea3afaec8 [Client] Ensure uninitialization of DedicatedActors for late packets 2017-06-10 15:49:00 +03:00
David Cernat
70d9374a6a [General] Implement PlayerKillCount packets 2017-06-10 14:04:19 +03:00
David Cernat
ee5c9b65c5 [General] When changing region, send new region name in PlayerCellChange 2017-06-10 11:43:40 +03:00
David Cernat
e5f5b047bc [Client] Don't send empty ObjectSpawn packets for cells with no leveled creatures 2017-06-10 11:04:17 +03:00
David Cernat
312fc84a6f [Client] Use update timer in mwmp::Cell instead of LocalActor 2017-06-10 03:29:51 +03:00
David Cernat
18bf79e08b [Client] Correctly set mpNum for placed gold 2017-06-09 13:31:19 +03:00
David Cernat
6ac7ee8fcd [Client] Fix problems with NPC equipment sync 2017-06-09 04:58:56 +03:00
Koncord
587b53bfed [Client] Reorder files 2017-06-07 00:06:10 +08:00
Koncord
b84f97ec2b [Client] Implement PasswordDialog 2017-06-06 23:33:59 +08:00
Koncord
ad873e16b8 [Client] Limiting updates to ~64 per second 2017-06-02 21:20:35 +08:00
Koncord
9742b0a801 [Client] Reset statTimer every timeout 2017-06-02 20:45:44 +08:00
Koncord
80631ae8bd [Client] Reset positionTimer on time expired 2017-06-02 20:45:19 +08:00
Koncord
a847d46984 [Client] Get rid Z axis in direction.pos 2017-06-02 18:33:51 +08:00
Koncord
d67db1a9bd [Client] Play rotation animation on dedicated players 2017-06-02 18:05:33 +08:00
Koncord
2ef1e26233 [Client] Fix ID_PLAYER_POSITION spam 2017-06-02 17:19:36 +08:00
Koncord
5f30dfd5db [Client] Get rid direction.rot 2017-06-02 15:44:39 +08:00
David Cernat
0bed33e39e [Client] Reset player fatigue when being resurrected
This way, players killed by strong hand-to-hand attacks will no longer be forced to lie on the ground when resurrected.
2017-06-02 06:58:33 +03:00
David Cernat
e042673779 [Client] Fix error when trying to delete player markers that don't exist 2017-06-01 22:42:57 +03:00
David Cernat
cf41956cad [Client] Prevent framerate drops caused by invalid rotation values 2017-06-01 21:45:36 +03:00
David Cernat
d8cd57a8be [Client] Make topic sync work with localized versions of the game 2017-05-31 14:11:16 +03:00
David Cernat
34a452d775 [Client] Fix logic for initialization and updating of player markers
Additionally, disable the Ptrs of players who move to cells that don't exist for us instead of placing them in ToddTest.
2017-05-31 10:54:19 +03:00
David Cernat
a353a21280 [General] Fix code style inconsistencies 2017-05-31 08:37:11 +03:00
David Cernat
97bf0252a4 [Client] Disable collision for actors loaded as dead from server 2017-05-31 07:52:45 +03:00
David Cernat
906b263a2d [Client] Update topics in current dialogue screen when receiving PlayerTopic packets 2017-05-31 06:51:50 +03:00
David Cernat
068a45be87 [General] Synchronize player & NPC rotation animations 2017-05-30 12:08:58 +03:00
David Cernat
f4cdedd8cb [General] Synchronize summoned creatures 2017-05-30 10:11:01 +03:00
David Cernat
1c6e359fe9 [Client] Set and clear hitAttemptActorId for DedicatedPlayers
This allows a DedicatedPlayer's follower NPCs to target enemies attacking the DedicatedPlayer.
2017-05-30 08:20:45 +03:00
David Cernat
4e5c8873e0 [General] Use ObjectSpawn instead of ObjectPlace for actors 2017-05-29 06:59:05 +03:00
David Cernat
27148ce9eb [General] Add placeholders for 12 new packets, to be implemented soon
Additionally, make it slightly clearer who created which previously existing packets.
2017-05-29 04:43:52 +03:00
Koncord
565889ccbc [Client] Add commit hash to password 2017-05-28 18:26:48 +08:00
David Cernat
b0c1aafc5a [Client] Use a 10 times higher maximum distance for linear interpolation 2017-05-28 03:30:23 +03:00
David Cernat
ea2a060c67 [Client] Sync actor movements from interiors to exteriors & vice versa 2017-05-28 01:11:32 +03:00
David Cernat
6918ae7bc7 [Client] Don't crash when receiving certain packets from NULL players 2017-05-27 22:32:28 +03:00
David Cernat
2e45203bbb [Client] Clean up mapIndexes in CellController 2017-05-27 21:20:24 +03:00
David Cernat
619982b085 [Client] Only try to send actor data to other players when authorized 2017-05-27 18:55:14 +03:00
David Cernat
73b9683182 [General] Make most ActorPackets smaller by not including refIds in them 2017-05-27 16:59:23 +03:00
David Cernat
7177d56cfb [Client] Only require refNumIndex & mpNum for CellStore::searchExact() 2017-05-27 16:59:23 +03:00
David Cernat
7c87ac80ee [Client] Ensure correct drawState when receiving an ActorAttack packet 2017-05-27 04:19:28 +03:00
David Cernat
311ce4119d [General] Fix logic issues related to ActorEquipment 2017-05-26 22:53:28 +03:00
David Cernat
4f273932af [General] Implement sending and reading of ActorEquipment packets 2017-05-26 04:37:49 +03:00
David Cernat
ec921eefc8 [Client] Prevent players from getting stuck in drag and drop when their opened containers are deleted 2017-05-26 02:13:31 +03:00
David Cernat
32879adc5b [General] Allow ObjectTrap to trigger traps, not just disarm them 2017-05-26 01:28:43 +03:00
David Cernat
7ac115b359 [Client] Implement sending and reading of ObjectTrap packets 2017-05-26 00:21:24 +03:00
Koncord
24d4e1c222 [General] Remove useless PacketSendMyID 2017-05-26 02:40:49 +08:00
David Cernat
11369f6513 [General] Implement sending and reading of PlayerTopic packets 2017-05-24 21:43:34 +03:00
David Cernat
08de349133 [General] Add placeholders for PlayerTopic & ObjectTrap packets 2017-05-24 19:01:28 +03:00
David Cernat
870fd9a78b [General] Remove ObjectUnlock packet, use ObjectLock with 0 lock instead 2017-05-24 13:28:34 +03:00
David Cernat
e6983993c2 [General] Implement sending and reading of PlayerFaction packets 2017-05-18 19:27:20 +03:00
David Cernat
04c9c5ed48 [General] Forward PlayerJournal packets to other players 2017-05-18 12:57:48 +03:00
David Cernat
0189dbf916 [General] Make JournalItem consistent with other packet structs 2017-05-18 10:32:23 +03:00
David Cernat
1d0167c3c9 [Client] Add missing include for PlayerFaction processor 2017-05-16 19:30:29 +03:00
David Cernat
ad388c7e12 [General] Add placeholders for ActorEquipment & PlayerFaction packets
Also reorder packets and packet processors.
2017-05-16 19:25:31 +03:00
David Cernat
f527fe9ebe [General] Add basic integrity check to reading of ActorList packets
Additionally, add newlines to files missing them.
2017-05-16 14:20:40 +03:00
David Cernat
05564bd123 [General] Add basic integrity check to reading of Container packets 2017-05-14 20:24:06 +03:00
David Cernat
46501909ff [Client] Comment out spammy debug about Container packets 2017-05-14 11:08:53 +03:00
David Cernat
8f5e6531db [Client] Avoid updating positions and anim flags when framerate is low
Also rename DedicatedPlayer methods so they are consistent with those from DedicatedActor
2017-05-14 10:52:44 +03:00
David Cernat
271594f0ee [Client] Don't play death animations for NPCs saved as dead on server 2017-05-14 10:27:43 +03:00
David Cernat
5a786e6c56 [Client] Make all LocalActors get initialized correctly again 2017-05-09 14:19:25 +03:00
David Cernat
d7d4dec200 [Client] Don't spam AnimFlags packets when a Player or Actor is flying 2017-05-09 12:27:59 +03:00
David Cernat
1f747d4375 [Client] Only apply interpolation when positions don't change too much 2017-05-09 04:41:26 +03:00
David Cernat
cc559cf8e2 [General] Don't send packets for dead LocalActors, to fix Position spam 2017-05-09 02:47:29 +03:00
Koncord
d82ed7d0ad [Client] Register ProcessorGameTime 2017-05-08 02:46:02 +08:00
Koncord
6c45b6dc5b [Client] Fix ProcessorGameTime ID 2017-05-08 02:45:44 +08:00
David Cernat
3fb0bbb58c [Client] Make it possible to turn off console again 2017-05-07 20:13:49 +03:00
David Cernat
aaaed8ab8b [Client] Fix potential object duplication in WorldEvent::placeObjects()
Also clean up the debug messages in WorldEvent so they don't take up multiple lines.
2017-05-07 03:17:19 +03:00
David Cernat
de49f5f175 [General] Add and use isActor bool for WorldObject 2017-05-07 03:07:09 +03:00
David Cernat
9d2c5c3502 [General] Simplify structure of BaseEvent 2017-05-06 21:57:29 +03:00
David Cernat
dcc61a095a [Client] Allow multiple WorldObjects to be added to a WorldEvent 2017-05-06 20:44:39 +03:00
David Cernat
bdc8b7f863 [Client] Send level creatures in ObjectPlace reply to ActorList request 2017-05-06 08:40:36 +03:00
David Cernat
3def111ca1 [Client] Fix graphical glitches related to DedicatedActor initialization 2017-05-06 04:49:49 +03:00
David Cernat
62aa6ed7ea [Client] Send PlayerPosition packets based on a timeout 2017-05-06 00:59:54 +03:00
David Cernat
ef12a37d59 [Client] Send ActorPosition packets based on a timeout 2017-05-06 00:33:48 +03:00
David Cernat
db3859565b [Client] Send ActorStatsDynamic packets only when stats change enough 2017-05-05 23:17:15 +03:00
David Cernat
4d81455020 [General] Rework and simplify death reasons so they work with NPCs 2017-05-05 22:16:31 +03:00
David Cernat
b745a33f18 [Client] Resurrect DedicatedActors that aren't supposed to be dead 2017-05-05 20:38:28 +03:00
David Cernat
8b4e167efe [Client] Prevent NPC subtitles from being added to open Dialogue window 2017-05-05 20:16:20 +03:00
David Cernat
bcdbecf608 [Client] Initialize Cell before moving DedicatedActor to it 2017-05-05 19:54:20 +03:00
David Cernat
60cf623455 [Client] Make DedicatedActors transition into LocalActors when eligible 2017-05-05 07:37:09 +03:00
David Cernat
206c9cc357 [Client] Use CellController pointers to make code easier to read 2017-05-05 04:58:44 +03:00
David Cernat
e05adbfe65 [Client] Add better debug for Actor cell changes 2017-05-05 04:46:40 +03:00
David Cernat
950a8eae3d [Client] Move Actors to Cells rather than reinitialize them from scratch 2017-05-05 03:52:41 +03:00
David Cernat
8d41a0c53b [Client] Make LocalActor initialization include newly spawned Actors 2017-05-05 02:46:16 +03:00
Koncord
93edd67681 [Client] Use boolean var instead requestQuit or throwing runtime_error 2017-05-03 14:52:32 +08:00
Koncord
e0139c33b3 [Client] Remove destructor in Cell 2017-05-03 14:46:25 +08:00
Koncord
4eb02af8fb [Client] Use __WINDOWS define 2017-05-03 14:44:38 +08:00
Koncord
47e6820f97 [General] Move printWithWidth and intToHexStr to components 2017-05-03 14:38:44 +08:00
David Cernat
34e77c5dae [Client] Initialize Actors based on the guid of an ActorAuthority packet 2017-05-03 04:47:04 +03:00
David Cernat
0b40cb8919 [Client] When there are more client than server plugins, print them all 2017-05-03 03:14:11 +03:00
David Cernat
92e277d75d [Client] Prevent application hang on Windows when plugins don't match 2017-05-03 02:17:19 +03:00
David Cernat
0284f18876 [Client] Replace plugin load order message with a clearer one at the top 2017-05-03 02:15:14 +03:00
David Cernat
1dbe9f0eaa [Client] Print plugin comparison in a better-looking way on Windows 2017-05-03 01:51:47 +03:00
David Cernat
f80a16b897 [Client] Don't use try/catch when printing missing plugins
Also move load order note to bottom where it fits better.
2017-05-03 00:15:43 +03:00
David Cernat
4294508082 [Client] Don't print null for missing plugins when comparing with server 2017-05-02 23:22:37 +03:00
David Cernat
c3c04bbfc3 [General] Make coding style consistent 2017-05-02 22:47:58 +03:00
Koncord
afcf5a7fc8 [Client] Fix segmentation fault 2017-05-03 02:43:58 +08:00
Koncord
ccae9590cc [Client] Fix comparison between signed and unsigned integer expressions 2017-05-03 02:43:00 +08:00
Koncord
01bdbfecfb [Client] Fix wrong checksum collection 2017-05-03 02:41:36 +08:00
Koncord
7bee82cedb [Client] Add notification about strict order 2017-05-02 23:50:36 +08:00
Koncord
f6bea7a114 [Client] Read answer about ID_GAME_PREINIT from server 2017-05-02 23:37:18 +08:00
David Cernat
cad3eb8968 [Client] Iterate through CellStore's mergedRefs when initializing Actors 2017-05-02 03:31:40 +03:00
David Cernat
f59609fcd7 [Client] Fix actor memory leaks, part 2 2017-05-02 02:45:18 +03:00
David Cernat
a77bd6652f [Client] Read ActorPosition packets sent from Lua script cell loads 2017-05-01 21:55:50 +03:00
David Cernat
730df061b3 [General] Add hasPositionData and hasStatsDynamicData bools to BaseActor 2017-05-01 19:44:23 +03:00
David Cernat
48b773bfcb [Client] Use float scale for WorldEvent::sendObjectScale() 2017-05-01 19:09:44 +03:00
Koncord
60f4a1d9e5 [Client] Fix issues when changing npc model to creature 2017-05-01 22:54:43 +08:00
David Cernat
e8e0090b9b [General] Use new SimpleCreatureStats struct in BaseActor 2017-04-30 18:44:59 +03:00
David Cernat
809b4d78ba [Client] Split off DedicatedPlayer and PlayerList into different files 2017-04-30 14:57:43 +03:00
Koncord
eda74ddf44 [Client] Fix memory leaks 2017-04-30 13:56:30 +08:00
Koncord
3372f27f3a [Client] Notify player about current chat mode 2017-04-30 13:56:11 +08:00
David Cernat
f6a218025a [Client] Fix actor memory leaks, part 1 2017-04-30 04:19:28 +03:00
Koncord
805c346bd7 [Client] Fix copy-paste mistake 2017-04-30 01:06:47 +08:00
Koncord
465a05bad0 [Client] Add ability to look like a creature for the DedicatedPlayers 2017-04-30 00:18:44 +08:00
David Cernat
d333c0b484 [Client] Read ActorStatsDynamic packets sent from Lua script cell loads 2017-04-29 17:44:46 +03:00
Koncord
fbd8e8b3a1 [Client] Use CreatureStats instead NpcStats 2017-04-29 22:40:22 +08:00
Koncord
26c00c3141 [Client] Change chat font to RussoOne for better visibility 2017-04-29 20:34:36 +08:00
Koncord
db0e25cb6c [Client] Allow colors in the chat window 2017-04-29 20:34:36 +08:00
David Cernat
e419e25e72 [Client] Don't initialize actors without unique indexes 2017-04-28 23:17:23 +03:00
David Cernat
6a21ec1fdc [General] Rename PlayerPos into PlayerPosition 2017-04-25 22:11:33 +03:00
David Cernat
7b07d6651f [General] Add and use PlayerBounty packet and matching script functions 2017-04-25 21:24:39 +03:00
David Cernat
6658531713 [General] Fix names for two PlayerProcessors 2017-04-25 19:01:56 +03:00
David Cernat
7dbcfbd3b1 [Client] Use better check for empty CreatureStats in DedicatedActor 2017-04-25 16:55:58 +03:00
David Cernat
ea7c3f2dc7 [Client] Make tes3mp combat code work with Creatures, not just NPCs 2017-04-24 21:06:23 +03:00
David Cernat
44476248b7 [Client] Add and use DedicatedPlayer::update() 2017-04-24 18:38:57 +03:00
David Cernat
e11a24f446 [Client] Add back statement that should not have been removed in e4a261e 2017-04-24 18:10:05 +03:00
David Cernat
e4a261ea2e [Client] Remove unused include and variables, fixing warnings 2017-04-24 17:53:50 +03:00
David Cernat
841e6a63f8 [Client] Initialize Creatures as LocalActors 2017-04-24 11:58:39 +03:00
David Cernat
850b19badf [Client] Add clearer debug messages for Actor initialization 2017-04-24 11:04:28 +03:00
David Cernat
2082f8ff4f [Client] Send LocalActor cell changes at end of mwmp::Cell's update 2017-04-24 10:59:47 +03:00
David Cernat
1f6ba9d9ee [Client] Remove jump check from LocalActor that is irrelevant for NPCs 2017-04-24 10:58:39 +03:00
David Cernat
e70faf1016 [Client] Fix crashes in PlayerProcessors from NULL players
Also rename ProcessorPlayerDrawState into ProcessorPlayerAnimFlags
2017-04-24 01:46:27 +03:00
David Cernat
284f863292 [Client] Add linear interpolation for DedicatedActors 2017-04-23 21:28:23 +03:00
David Cernat
a12694c6ef [Client] Fix crash caused by late-arriving ActorAuthority packets 2017-04-23 17:12:45 +03:00
David Cernat
14e1ff27cb [Client] Rename CellController's cellsActive to cellsInitialized for clarity 2017-04-23 16:53:24 +03:00
David Cernat
27186f555d [Client] Enable reading of ActorPackets, and thus NPC sync, by default 2017-04-23 14:01:13 +03:00
David Cernat
871d8c8308 [Client] Send and read ActorCellChange packets 2017-04-23 14:01:13 +03:00
David Cernat
4e86d8781f [Client] Clean up & simplify logic for DedicatedPlayer cell transitions 2017-04-23 14:01:13 +03:00
David Cernat
87ada3e763 [Client] Add CellController::isSameCell() and use it in LocalPlayer 2017-04-23 14:01:13 +03:00
David Cernat
6aa0fa85ab [Client] Send and read ActorAttack packets 2017-04-19 22:10:06 +03:00
David Cernat
2e8714afaa [Client] Rethink and restructure tes3mp combat code so it works for NPCs 2017-04-19 22:06:04 +03:00
David Cernat
6c2bbd6608 [Client] Fix assignAttackTarget() not assigning LocalPlayer as target 2017-04-19 20:51:31 +03:00
David Cernat
61cedfa192 [Client] Add CellController methods to fetch Actors without needing Ptrs 2017-04-19 18:20:12 +03:00
David Cernat
0ef9e014eb [Client] Add resetAttack() and getSpellSuccess() to MechanicsHelper 2017-04-19 17:09:35 +03:00
David Cernat
c3375ba86f [Client] Add MechanicsHelper::assignAttackTarget() 2017-04-19 11:05:13 +03:00
David Cernat
17c4b6d4de [Client] Add MechanicsHelper methods for easily getting Attacks from Ptr 2017-04-19 10:36:23 +03:00
David Cernat
82e455f736 [Client] Organize headers 2017-04-18 18:51:40 +03:00
David Cernat
014ff7a059 [Client] Replace usage of Networking::isDedicatedPlayer() 2017-04-18 18:07:39 +03:00
David Cernat
1f6d05dfe5 [Client] Remove unused Networking::attack() method 2017-04-18 17:45:26 +03:00
Koncord
67aba35d37 [Client] Simplify Processors 2017-04-18 15:05:39 +08:00
Koncord
1db30a65cb [Client] Remove unecessary calls 2017-04-18 14:42:43 +08:00
Koncord
6969742ef0 [Client] Enable actor processors 2017-04-18 14:38:23 +08:00
Koncord
2c62c501f6 [Client] Add & init Actor processors 2017-04-18 14:37:35 +08:00
Koncord
7ec897a829 [Client] Add ActorProcessor 2017-04-18 14:37:35 +08:00
David Cernat
29f9453554 [Client] Clean up headers in Networking 2017-04-18 09:32:40 +03:00
Koncord
8128a5c39c [Client] Use protected member instead local variable 2017-04-18 13:15:31 +08:00
Koncord
25fef1a7b8 [Client] FIx conflicts 2017-04-18 12:17:58 +08:00
Koncord
578d305d86 [Client] Enable world processors 2017-04-18 11:51:05 +08:00
Koncord
7dcaef5a5a [Client] Init world processors 2017-04-18 11:50:22 +08:00
Koncord
fd3a7d2ad0 [Client] Add world processors 2017-04-18 11:50:22 +08:00
Koncord
f0805ca6f7 [Client] Fix typo 2017-04-18 11:50:22 +08:00
Koncord
740bfea0b2 [Client] Use processors for player packets 2017-04-18 11:49:00 +08:00
Koncord
e98fa6ad07 [Client] Add ProcessorInitializer 2017-04-18 11:45:54 +08:00
Koncord
f09dc2b65b [Client] Add player processors 2017-04-18 11:38:40 +08:00
Koncord
a6111b6599 [Client] Add PlayerProcessor & WorldProcessor 2017-04-18 11:38:40 +08:00
David Cernat
07c2d4251e [Client] Add and use mwmp::PlayerList::isDedicatedPlayer() 2017-04-17 20:36:20 +03:00
David Cernat
7c45888f05 [Client] Reorder methods in DedicatedPlayer 2017-04-17 19:34:32 +03:00
David Cernat
0aaf68c994 [Client] Rename mwmp::Players into mwmp::PlayerList for clarity 2017-04-17 19:10:33 +03:00
David Cernat
c05c456b11 [Client] Clean up parts of LocalPlayer and DedicatedPlayer 2017-04-17 18:50:20 +03:00
David Cernat
a650683bae [General] Add and use Target struct in mwmp::Attack 2017-04-17 18:31:39 +03:00
David Cernat
9882ceedf3 [General] Remove attackerGuid from mwmp::Attack because it is redundant 2017-04-17 18:03:33 +03:00
David Cernat
caf5428532 [General] Rename mwmp::Attack vars in preparation for Actor support 2017-04-17 17:24:11 +03:00
David Cernat
2050d06b31 [Client] Process PlayerAttack in MechanicsHelper::processAttack() 2017-04-17 16:09:07 +03:00
David Cernat
cf155c9279 [Client] Add MechanicsHelper and move linear interpolation code to it 2017-04-17 14:37:19 +03:00
David Cernat
9f226253d4 [General] Rename mwmp::Attack's refid into refId for consistency 2017-04-17 09:35:18 +03:00
David Cernat
f0f0b2dcc9 [General] Send and read ActorSpeech packets 2017-04-16 18:43:13 +03:00
David Cernat
d2178e5414 [Client] Assign LocalActor movement settings before rotations get reset 2017-04-16 17:09:47 +03:00
David Cernat
1fb11dafef [General] Send and read ActorStatsDynamic packets 2017-04-16 16:42:07 +03:00
David Cernat
678edffb5a [Client] Rename updateDynamicStats() into updateStatsDynamic() 2017-04-16 14:11:55 +03:00
David Cernat
870886192b [General] Rename DYNAMICSTATS into STATS_DYNAMIC 2017-04-16 09:00:18 +03:00
David Cernat
8ebe7ed683 [Client] Remove isLocalActor (no longer needed) from LiveCellRefBase 2017-04-16 07:54:44 +03:00
David Cernat
ca8fd1aa72 [General] Remove ActorHeadRotation packet because it would be too spammy 2017-04-15 15:49:40 +03:00
David Cernat
2872675f5e [General] Send and read ActorAnimPlay packets 2017-04-15 13:42:30 +03:00
David Cernat
56aeb85965 [Client] Update method names in ActorList 2017-04-15 11:45:20 +03:00
David Cernat
5c1d7f614a [Client] Rename readDrawStates() into readAnimFlags() 2017-04-15 10:47:53 +03:00
David Cernat
e7960eee76 [General] Rename DrawState packets into AnimFlags ones for clarity 2017-04-14 16:00:34 +03:00
David Cernat
de8d28e2c3 [Client] Improve logic for updating LocalActors & sending their packets 2017-04-13 18:59:22 +03:00
David Cernat
426d5a7fc2 [Client] Add missing usage of sendDrawStateActors() 2017-04-13 18:56:38 +03:00
David Cernat
d2fe777f89 [General] Send and read ActorDrawState packets 2017-04-13 15:26:48 +03:00
David Cernat
9c731990a9 [Client] Use clearer var names in LocalPlayer::updateDrawStateAndFlags() 2017-04-13 14:10:42 +03:00
David Cernat
0d196af685 [General] Add placeholders for 7 new ActorPackets 2017-04-11 11:37:38 +03:00
David Cernat
9852076590 [Client] Send all NPC data to newly arriving players 2017-04-10 18:24:30 +03:00
David Cernat
15f91e7825 [Client] Add CellController methods for getting and checking Cells 2017-04-10 18:13:22 +03:00
David Cernat
69f820f3a0 [Client] Rename CellController's getCell() into getCellStore() 2017-04-10 17:30:57 +03:00
David Cernat
d14102716d [Client] Retool LocalActors and DedicatedActors for ActorPosition packet 2017-04-10 17:10:18 +03:00
David Cernat
2709de83fb [Client] Use clearer variable names in LocalPlayer::UpdatePosition() 2017-04-10 14:53:59 +03:00
David Cernat
b6c3830ea0 [General] Rename WorldObject's pos into position for consistency 2017-04-10 09:25:20 +03:00
David Cernat
174f316787 [General] Rename PacketActorFrame into PacketActorTest 2017-04-10 08:37:18 +03:00
David Cernat
a5d0486c82 [General] Set actor data correctly 2017-04-10 07:22:03 +03:00
David Cernat
c52084a028 [General] Use BaseActorLists in ActorPackets 2017-04-09 16:32:44 +03:00
David Cernat
070c6a3bd4 [General] Add ActorPacketController & make controller var names clearer 2017-04-09 08:51:28 +03:00
David Cernat
c8a486de6c [Client] Fix Ptr initialization in mwmp::Cell 2017-04-08 16:02:59 +03:00
David Cernat
0ccbe70e61 [Client] Rename methods to make their purpose clearer 2017-04-08 14:31:22 +03:00
David Cernat
b883b4c7ce [Client] Reorder includes 2017-04-08 12:54:38 +03:00
David Cernat
3d6dc74bdc [Client] Fix logic for mwmp::Cell initialization 2017-04-08 12:33:41 +03:00
David Cernat
417284c701 [Client] Implement head rotation sync for NPCs 2017-04-08 11:40:19 +03:00
David Cernat
f52fc19762 [Client] Reorder methods and don't set variables that are no longer used 2017-04-08 10:58:25 +03:00
David Cernat
d3f3fb5d05 [Client] Correctly implement movement animation sync for NPCs 2017-04-08 08:59:21 +03:00
David Cernat
5b43e62c50 [Client] Make it possible to get DedicatedActor from CellController 2017-04-08 07:46:33 +03:00
David Cernat
e6536c7473 [Client] Disable basic NPC sync in preparation for overhaul 2017-04-07 16:04:21 +03:00
David Cernat
1101ff1e28 [Client] Update DedicatedActors every frame to allow interpolation 2017-04-07 15:51:34 +03:00
David Cernat
ae92117d21 [Client] Add missing return 2017-04-07 11:32:42 +03:00
David Cernat
18be1880f0 [Client] Make it possible to get LocalActor from CellController 2017-04-07 10:16:23 +03:00
David Cernat
10be52d40d [Client] Add localActorsToCells map to more easily find LocalActors 2017-04-07 08:12:50 +03:00
David Cernat
e89265e469 [Client] Turn CellController's cellsActive into a map instead of a deque 2017-04-07 05:52:07 +03:00
David Cernat
d829d219c3 [General] Add (very) partial animation sync for NPCs 2017-04-06 15:11:51 +03:00
David Cernat
e8638d9884 [Client] Add basic position sync for NPCs 2017-04-06 11:46:56 +03:00
David Cernat
89ed318d3c [Client] Remove usage of nullptr that Travis CI is getting stuck on 2017-04-06 06:17:27 +03:00
David Cernat
67ec81ad0c [Client] Use utility function for converting strings in mwmp::Cell 2017-04-06 05:45:49 +03:00
David Cernat
d4a12856ee [Client] Enable AI for LocalActors 2017-04-06 04:59:55 +03:00
David Cernat
0d766a7a04 [Client] Add and use mwmp::Cell class 2017-04-06 04:00:50 +03:00
David Cernat
9beaf9b7a1 [Client] Initialize and update LocalActors while their cells are active 2017-04-06 00:49:20 +03:00
David Cernat
8df9d55331 [Client] Create placeholder DedicatedActor class 2017-04-06 00:48:20 +03:00
David Cernat
d24cde16dd [General] Add simple BaseActor and LocalActor classes 2017-04-05 12:52:27 +03:00
David Cernat
679e790d8d [Client] Rename WorldController into CellController to avoid confusion with Networking's WorldPacketController 2017-04-05 12:00:21 +03:00
David Cernat
c2d6265ffd [Client] Reorder methods in WorldEvent, placing packet senders at bottom 2017-04-05 09:12:02 +03:00
David Cernat
9759764699 [Client] Clean up getting and resetting of WorldEvent 2017-04-05 09:04:41 +03:00
David Cernat
d7a760490e [Client] Simplify sending of world packets, part 2 2017-04-05 08:43:35 +03:00
David Cernat
b55a3d5eb2 [Client] Add placeholder editActors() method for random creature sync 2017-04-05 08:07:53 +03:00
David Cernat
4abe295a80 [Client] Simplify sending of world packets by adding WorldEvent methods 2017-04-05 07:54:23 +03:00
David Cernat
1d23a48a42 [Client] Print mpNums when objects are found in a cell 2017-04-05 07:10:22 +03:00
David Cernat
6c60c9c78e [Client] Clean up debug messages for when objects are found in a cell 2017-04-05 06:30:12 +03:00
David Cernat
bb9ea6ccd4 [Client] Also include list of creatures in reply to ActorList 2017-04-05 06:22:01 +03:00
David Cernat
ca92be14a5 [Client] Reply to ActorList request with list of NPCs 2017-04-05 05:54:25 +03:00
David Cernat
8c2469bf6d [General] Add placeholder ActorList, ActorAuthority & ActorFrame packets 2017-04-05 04:06:45 +03:00
David Cernat
2bd81c3de0 [Client] Use mpNum for every WorldObject 2017-04-04 11:07:16 +03:00
David Cernat
4644235cf6 [Client] Use mpNum in exact searches for objects 2017-04-04 10:07:15 +03:00
David Cernat
8cc61b6048 [General] Generate mpNums on the server when forwarding ID_OBJECT_PLACE 2017-04-04 09:23:34 +03:00
David Cernat
31cd836558 [General] Small tweaks to debug info 2017-04-04 08:24:11 +03:00
David Cernat
e5cf632e1d [Client] Stop creating new reference numbers for placed/spawned objects 2017-04-04 06:01:48 +03:00
David Cernat
e7b5097c13 [Client] Print plugin paths correctly for Windows 2017-04-01 05:57:27 +03:00
Koncord
2a723279b1 [Client] Send ID_GAME_PREINIT packet 2017-03-06 22:52:18 +08:00
Koncord
690211ad99 [General] Extract BaseEvent & BasePlayer from packets to functions
Move Send and Read functions to BasePacket
2017-03-06 18:40:07 +08:00
Koncord
6076346df4 [Client] Add Networking::preInit() method 2017-03-05 16:55:05 +08:00
Koncord
cea1425db1 [Client] Remove redundant newlines & keep ~120 columns 2017-03-04 14:55:35 +08:00
Koncord
4015c3e9a9 [Client] Use constant instead magic value in Lerp function 2017-03-04 14:24:26 +08:00
Koncord
a10cf4360c [Client] Print all esm/esp files in load queue with idx & CRC32 checksum 2017-03-04 13:23:26 +08:00
Koncord
9199446edd [Client] Add Files::Collections to Main::init() arguments 2017-03-04 13:11:46 +08:00
David Cernat
0d32bf5943 [General] Add extra death debug, don't request data from player on death 2017-03-04 00:29:01 +02:00
David Cernat
c4b11a1251 [Client] Remove now unused sendData() and BitStream declarations 2017-03-04 00:17:16 +02:00
David Cernat
cf6de6c474 [Client] Update old packet-sending code in LocalPlayer and GUIChat 2017-03-03 23:36:29 +02:00
David Cernat
6887930c04 [Client] Let scripts handle respawn point instead of hardcoding it 2017-03-02 22:12:46 +02:00
David Cernat
03984685e5 [Client] Remove unnecessary type specifiers 2017-02-28 12:35:51 +02:00
David Cernat
5c269a5f8d [General] Rename ID_GAME_DIE and ID_GAME_RESURRECT 2017-02-28 01:38:25 +02:00
David Cernat
e6bc7ad463 [General] Make all flying players fly correctly, including TCL users 2017-02-27 23:01:33 +02:00
David Cernat
02487dce13 [Client] Prevent invalid race used by other player from freezing client 2017-02-27 01:45:27 +02:00
David Cernat
8c8414f098 [Client] Spawn DedicatedPlayer in center of exterior cell 0,0 2017-02-27 01:02:59 +02:00
David Cernat
9035908f6d [Client] Spawn DedicatedPlayer in exterior 0,0 (for other master files) 2017-02-25 23:18:50 +02:00
David Cernat
aab5b69c80 [Client] Unready weapon & spell upon death to avoid attack inability bug 2017-02-24 11:50:43 +02:00