Commit Graph

4059 Commits (3165c84db4f1dde9e3d1c22575d1008f4e5a788a)

Author SHA1 Message Date
David Cernat 3165c84db4 [General] Rework PACKET_ORIGIN enum
Additionally, comment out reading of originClientScript in ObjectPacket for now.
7 years ago
David Cernat 9e6459043b [General] Fix typo related to originClientScript in ObjectPacket 7 years ago
David Cernat 3dc2d1b214 [General] Add packetOrigin and originClientScript to ObjectList packets
Additionally, add script functions for getting the packetOrigin and originClientScript of received ObjectList packets.
7 years ago
David Cernat 715cac807d [General] Add compareFloats to Utils 7 years ago
David Cernat cb6c37a26d [General] Replace doubles with floats in BaseStructs and BaseWorldstate 7 years ago
David Cernat 038757b91a [General] Temporarily revert to original rotation animation sync
I originally added rotation animation sync as part of commit 068a45be87. Unfortunately, it meant the PlayerPosition packets were now twice as large as they had been before, which was less than ideal for such a frequently sent packet, which is why Koncord switched to a more optimized approach in commits 5f30dfd5db and d67db1a9bd.

Recently, there have since been some rotation animation problems in OpenMW, which have broken the way Koncord's approach looks. My original approach still looks somewhat okay, so I'm switching back to it until we can figure out how to reuse it under the current circumstances.
7 years ago
David Cernat 20e0100706 [General] Rework Attack packets and add synchronization for item magic 7 years ago
David Cernat 21d5bb4d4e
Merge pull request #460 from OpenMW/master
Add 0.7.0 commits up to 20 Jul 2018
7 years ago
David Cernat 892d71ce71 [General] Reimplement weather synchronization to allow soft transitions
Although weather sync was added by Koncord to the rewrite in fd721143e2 in a way that used surprisingly few lines of code, it relied on the server requesting weather states every second from authority players and sending them to non-authority players, while also allowing only very sudden weather transitions across regions, i.e. if there was one player in the Ascadian Isles who had stormy weather, and another player with clear weather in the Bitter Coast Region walked across to the Ascadian Isles, that player was instantly made to have stormy weather with no kind of transition at all.

My approach solves both of those problems. It solves the packet spam by only sending weather updates to the server when weather changes happen or when there are new arrivals to a weather authority's region, and it allows for both sudden weather transitions when players teleport to a region and for soft, gradual transitions when players walk across to a region. It is inspired by my previous actor sync, and uses a WorldRegionAuthority packet to set players as region authorities in a similar way to how ActorAuthority sets players as cell AI authorities. Weather changes are created only by the region authority for a given region, and weather packets are also only sent by that authority.

However, it should be noted that gradual weather transitions are used by default in this implementation. To use sudden weather transitions, the serverside Lua scripts need to forward WorldWeather packets with the forceWeather boolean set to true. That is, however, already handled by our default Lua scripts in situations where it makes sense.
7 years ago
David Cernat 9823a77bf2 [General] Turn PlayerRegionAuthority into WorldRegionAuthority
WorldRegionAuthority is a Worldstate packet.
7 years ago
David Cernat 72d286473b [General] Move credits integrity error message to new ErrorMessages file
Additionally, use correct log level for credit integrity message on server.
7 years ago
David Cernat 0b5cb15f71 [General] Turn GameWeather into WorldWeather, now a WorldstatePacket 7 years ago
David Cernat 646111d998 [General] Use correct credits checksum and move it to Version.hpp 7 years ago
David Cernat 22b2b7a9c6 [General] Add Utils methods for checksums 7 years ago
Nikolay Kasyanov 21f198af7a Fix debugger detection on macOS (#4511) 7 years ago
David Cernat 3649cf553f [General] Rename PlayerKillCount into WorldKillCount
This should clarify the real meaning of the packet and its associated event.

The event itself has been renamed from OnPlayerKillCount to OnWorldKillCount.
7 years ago
David Cernat 6ebe09375f [General] Implement ObjectActivate packet & associated script functions 7 years ago
David Cernat 81b160cae8 [General] Add placeholder for ObjectActivate packet 7 years ago
David Cernat 61da0d2475 [General] Turn PlayerInteraction into PlayerInput 7 years ago
David Cernat 32b6134fad [General] Add placeholder for CellReplace packet 7 years ago
David Cernat a471f5e452 [General] Turn CellCreate into a Worldstate packet 7 years ago
David Cernat ae55ee7f0b [General] Add getNumberOfDigits to Utils in components 7 years ago
Grim Kriegor 2fcde5e8ba [General] Temporarily disable the new OpenMW crash catcher
This new crash catcher is preventing TES3MP from building on GNU/Linux
`components/crashcatcher/crashcatcher.cpp:23:28: fatal error: SDL_messagebox.h: No such file or directory`
Disable it until the developers isolate the issue and patch it
7 years ago
David Cernat 6cb5ac6e63 Merge pull request #457 from OpenMW/master while resolving conflicts
Conflicts:
	CMakeLists.txt
	apps/openmw/engine.cpp
	apps/openmw/main.cpp
	apps/openmw/mwgui/windowmanagerimp.cpp
	apps/openmw/mwmechanics/character.cpp
	components/CMakeLists.txt
7 years ago
David Cernat 528bd26a3b [General] Allow followers to follow non-authority players through cells 7 years ago
David Cernat 09da24f1ea [General] Rename all instances of refNumIndex into refNum
This creates symmetry with mpNum and should cause less confusion in the future.
7 years ago
David Cernat bdf2f03c4f [General] Remove unnecessary MapChanges struct from BaseWorldstate 7 years ago
David Cernat ceea65f666 [General] Change pre-rewrite's version to 0.7.0-alpha 7 years ago
Bret Curtis 99e4d49e7c
Merge pull request #1787 from akortunov/profilierfont
Use the DejaVuLGCSansMono.ttf for profiler output
7 years ago
Andrei Kortunov 70b6d4983d Use the DejaVuLGCSansMono.ttf in profilier output 7 years ago
elsid 3f21c49479
Put check for nif file name into separate function 7 years ago
elsid 2599aba196
Fix check whether file name starts with x or X
If path doens't contains / or \, then slashpos will be 0.
Therefore slashpos + 1 = 1 doesn't point to first symbol.

xmesh.nif
 ^
 slashpos + 1
7 years ago
David Cernat bff6e9e235 [General] Implement ActorAI packet, part 5
Allow repetition for AiWander package to be turned on and off.
7 years ago
Andrei Kortunov c921d1c7e9 Refactor NifStream class (eliminate LNK4221 MSVC warning) 7 years ago
Andrei Kortunov 16a4df25d6 Make void function to do not return value 7 years ago
David Cernat 00c13ae96c [General] Implement ActorAI packet, part 4
The server can now make actors activate players and objects, at least in theory. In practice, OpenMW''s AiActivate package needs to be worked so it allows specific objects as targets instead of just refIds.
7 years ago
David Cernat 0e13207afe [General] Implement ActorAI packet, part 3
The server can now cancel actor AI, make actors travel to a location, make actors wander, and make actors get escorted by a player or another actor.
7 years ago
David Cernat 5baef09f79 [General] Implement ActorAI packet, part 2
The server can now make actors start combat with players or other actors.
7 years ago
Alexander Stillich 725cc94210 Renamed cc_install to something less cryptic (crashCatcherInstall) 7 years ago
Doc West 467989cdd5 Moved crashcatcher to a component and also use it in CS
Reworked debugger detection (failed on gdb 7.11), it now uses /proc to detect the debugger
7 years ago
David Cernat 3ed9d89280 [General] Use separate variables for video & music filenames in packets 7 years ago
David Cernat c075496748 [General] Replace deathReason in death packets with a killer variable
Add serverside script functions for determining the killers of both players and actors.

Use unsigned ints for script functions returning an object or actor's refNumIndex or mpNum.

Remove updateDeadState() from LocalPlayer and make its code part of updateStatsDynamic() for simplicity.
7 years ago
David Cernat f02492a593 [General] Temporarily include target names in mwmp::Target
These will be removed once the server can get the names matching refIds by reading content files.
7 years ago
David Cernat 32ad8ef2f0 [General] Fix incorrect capitalization in ObjectMove directives 7 years ago
David Cernat bbb461a5e5 [General] Make sure data in guiMessageBox is compressed 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
Koncord 79903c455c [General] Allow different types for vectorContains 7 years ago
Koncord 1f4e6e9114 [General] Add integrity checks to Handshake packet 7 years ago
Koncord f9ff5f10df [General] Reduce packets size and add integrity checks 7 years ago
Koncord fa2bf0663e [General] Simplify vectorContains 7 years ago