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
Koncord
c69819e0db
[General] Change type of refNumIndex & mpNum to unsigned
7 years ago
Koncord
99158beb2e
[General] Change effectCount type to unsigned
7 years ago
Koncord
895634cd16
[General] Change type of MpNum to "unsigned int"
7 years ago
Koncord
779f2a564d
[General] Change "unsigned long" to uint32_t for cross platform compatibility
7 years ago
Koncord
23684489da
[General] Fix clang-tidy warning
...
Converting integer literal to bool, use bool literal instead
7 years ago
Koncord
7639db02f3
[General] RW functions return true on success
7 years ago
Koncord
45c7c3a0b6
[General] Add integrity checks to PacketPreInit
7 years ago
Koncord
d999cc0d55
[General] Add packetValid flag to packets
7 years ago
Koncord
695fb7d4a7
[General] Reorder RW(string) arguments
...
Change limit of default max string size to 64 KiB
7 years ago
Koncord
d162f6fd3a
[General] Explicitly use limitations of the master server
7 years ago
Koncord
a48d5b48ef
[General] Add maxSize parameter to RW(std::string)
...
Minor type changes
7 years ago
David Cernat
bef53749ed
[General] Replace BaseObject's hasMaster variable with isSummon
...
Additionally, add a GetObjectSummonState() script function to the server.
7 years ago
David Cernat
958b220835
[General] Send summon duration to server in ObjectSpawn packets
7 years ago
David Cernat
9102df7fde
[General] Make WorldCollisionOverride also work with specific refIds
...
For now, this only makes it possible to enforce collision for specific refIds for placed objects.
7 years ago
David Cernat
c7f10892a9
[General] Add vectorContains util for checking strings in vectors
7 years ago
David Cernat
7ffdb18bf9
[General] Implement ActorDeath packet, part 1
...
ActorDeath packets are sent for dead actors before their StatsDynamic packets. They contain the actor's deathReason in a manner similar to that of PlayerDeath packets.
A future commit will replace the deathReason with a variable named killer which will be an mwmp::Target.
7 years ago
David Cernat
914b79fcc9
[General] Make it possible to check which placed objects have containers
7 years ago
Andrei Kortunov
359e748c28
Initialize some missing fields in constructors
7 years ago
David Cernat
d53bd05424
[General] Use slightly larger maximum imageData size in WorldMap packets
7 years ago
David Cernat
5bb2ba1e9e
[General] Limit maximum imageData size in WorldMap packets
7 years ago
Bret Curtis
6655b7e512
Merge pull request #1740 from nikolaykasyanov/software-cursor-decompression
...
Decompress cursors using SDL software renderer on Mac or if OSG >= 3.5.8 or if OPENMW_DECOMPRESS_TEXTURES is set
7 years ago
Bret Curtis
3ebebdf3c1
Merge pull request #1751 from wareya/terrainbleeding
...
Fix #4452
7 years ago
Bret Curtis
c1eb9042b3
Merge branch 'master' into terrainbleeding
7 years ago
Andrei Kortunov
5fd3ec1035
Implement unlockable locks with 'lock 0' console command
7 years ago
Nikolay Kasyanov
75d79e98b9
Force software decompression if OPENMW_DECOMPRESS_TEXTURES is set
7 years ago
Nikolay Kasyanov
359f87ab9f
Change imageToSurface to return a unique_ptr to avoid manual surface cleanup
7 years ago
Miloslav Číž
2a23b53515
Merge branch 'drummyfish/openmw-toggleborders'
7 years ago
Miloslav Číž
477e1437d2
Resolve conflicts
7 years ago
Miloslav Číž
34f8eca7bd
Fix indent
7 years ago
Miloslav Číž
ab8de9fa14
Set node mask to cell borders
7 years ago
Miloslav Číž
414e6caafe
Make tb work with distant terrain
7 years ago
Miloslav Číž
f18d57429e
Move cell border management to World
7 years ago
Miloslav Číž
1b8d500c07
Make tb command work again
7 years ago
Miloslav Číž
1fd5ad3e56
Use REAL_SIZE constant
7 years ago
Miloslav Číž
d629c30fdb
Merge branch 'master' into screenshot360
7 years ago
Bret Curtis
a747318c90
Merge branch 'master' into terrainbleeding
7 years ago
Marc Zinnschlag
48711bbdde
Merged pull request #1592
7 years ago
Miloslav Číž
c3d7ee5a9e
Resolve merge conflicts
7 years ago
wareya
94f695cffc
Fix #4452 and remove dead code
7 years ago
Miloslav Číž
db8aaa74d6
Start cell border debug drawing
7 years ago
Nikolay Kasyanov
224b94c0ce
Decompress cursors using SDL software renderer on Mac or if OSG >= 3.5.8
7 years ago
Marc Zinnschlag
565922f9ad
naked expressions beginning with the member operator were allowed erroneously outside of the console (Fixes issue #2971 )
7 years ago
Marc Zinnschlag
8d0f717e72
Merged pull request #1739
7 years ago
Marc Zinnschlag
90febde783
Merged pull request #1742
7 years ago
Marc Zinnschlag
816a1733dc
Allow comma after Begin and End script instruction ( Fixes #4451 )
7 years ago
Andrei Kortunov
acd3cba5fa
Store previous items in the savegame
7 years ago
wareya
7344323b9e
remove indentation from blank lines
7 years ago
wareya
8f45b0d53a
remove unnecessary conditions
7 years ago
Andrei Kortunov
fba0c155df
Fix assertion fail related to NiLookAtController
7 years ago
Marc Zinnschlag
7d9de93fd3
Merged pull request #1477
7 years ago
Marc Zinnschlag
551a69f1b1
Merged pull request #1559
7 years ago
Marc Zinnschlag
efb4abbb7f
Merged pull request #1623
7 years ago
wareya
6277f5511c
fix #3876 and #3993
7 years ago
Andrei Kortunov
3d0631cfcc
Store last AI package in savegame
7 years ago
Andrei Kortunov
3a0ee78d2b
AiTravel: store mHidden flag in savegame
7 years ago
Andrei Kortunov
fed10e87aa
Store integer actor ID in AI packages (bug #4036 )
7 years ago
Andrei Kortunov
2fada94879
Improve MRK NiStringExtraData handling (bug #4419 )
7 years ago
David Cernat
72862dc255
[General] Turn PlayerMap into WorldMap, now a Worldstate packet
7 years ago