Added:
Context/Identity escape function
Map name in identity
Improved:
Horizontal and vertical view memory addresses changed, the new ones are updated in real-time
Team names
Fixed:
Avatar/Camera front and top vectors calculation
Wrong comment at line 140
Game version: 1069
http://steamcommunity.com/games/282440/announcements/detail/876328108049672536
Added:
- Correct avatar position (the one used before was the camera one)
- Camera position
- State value
- Context based on server ID
- Server name in identity
- Map name in identity
- Player nickname in identity
Game version: 2.1.4.6
http://www.l4d.com/blog/post.php?id=22240
The previous code accidently used the
C-string "host" and "serverID" variables
in the JSON output for the context and
identity.
To avoid too many changes, this commit
changes the JSON escape function to
work on C strings instead, and uses
that to escape the "host" and "serverID"
strings from the game before emitting
them into the JSON documents.
This commit also adds some extra code
to ensure that the game strings we
include in the JSON document are
within the printable ASCII range.
Thanks to @mrzchuck for answering system based programming questions
and helping me with my first use of github.
This plugin supports the latest version of L4D2 (version 2.1.4.5)
Most of my code changes are based on the mumble wiki plugin guide
styling and/or the Counter Strike (CS) plugin (both of which are more
standardized and easier to read). I removed the calcout function by
pulling in the front and top vectors directly from L4D2. I simplified
the trylock function by calling fetch from it (previously trylock and
fetch contained duplicate code). The style for context support seemed
convoluted so I changed it to emulate the style of the CS plugin (the
logic is still the same). Lastly, I added many helpful comments
describing the variables, functions, and general principles of mumble
plugins.
I have performed extensive testing and found excellent results.
When spectating a player, Quake Live gets his data (in this case position and team values); this means that the team doesn't result as "SPEC" and Positional Audio works using his position values. This might be a feature because the spectator can hear the other players with PA, but the spectated player data is sent through him on Mumble and this causes much confusion.
There are two memory addresses: one with the obfuscated IP address and one with the true one. Initially I used the first one; when you join through the console it has the true IP address, but when you join through the server browser it shows the obfuscated one: this is a problem. I decided to use the second memory address, that always shows the true IP address.
Reason of the string change: I noticed that the second memory address uses "loopback" instead of "localhost" used by the first, when on a local server.
Thanks to @mkrautz on Mumble IRC Chat for the compile fix (https://github.com/mumble-voip/mumble/pull/2195) and for helping me about memory addresses (pModule).
This probably would not have been possible without his help.
Thanks also to @hacst: he tried to troubleshoot my compile problem.
Update the WoW plugin again, clean up some of the old code that's not
necessary, and add solution by @hacst to append realm name to identity
so it's actually useful now.
Update WoW plugin, including switching to 128-bit GUIDs, which I've
naively done with a structure containing two 64-bit integers instead.
There's probably a nicer way to do this.
Due to Qt change f9a8cf99bc0, qmake will forcefully
add the bundle prefix set in Xcode to any .qmake.cache
file it encounters. This causes unnecessary noise in
Git, and extra work for developers.
Full change URL:
f9a8cf99bc
To avoid having qmake change the manual plugin's
.qmake.cache file behind our backs, we simply
add a pre-set QMAKE_TARGET_BUNDLE_PREFIX to the
.qmake.cache file. The manual plugin is not a
bundle, so the bundle prefix is not applied.
This skips the querying-and-caching step for the
bundle identifier -- because now, one is already
set.
* Update the gmod PA plugin with current memory addresses
** The state byte could not be found and thus is commented out for now.
This will result in spectators/dead people also hearing PA.
The state was not added to the context (for team context).
* Swap incorrect use of v and h variables; it’s the other way around
* Remove unused variable