Commit Graph

554 Commits

Author SHA1 Message Date
Raven
1e2678e91e
Corrected error in doc 2019-09-20 21:27:31 +02:00
Davide Beatrici
9bf24dc210 plugins: add positional audio plugin for GTA: San Andreas
Supports the 1.0 version of Grand Theft Auto: San Andreas, the only one supported by multiplayer modifications.

The camera's vectors are synced with the avatar's ones; in future we should locate the camera's CMatrix in the game's memory and retrieve the proper values.

No context/identity support; in future we should at least add the context (e.g. server IP address + port) for Multi Theft Auto and San Andreas: MultiPlayer.
2019-08-28 09:29:00 +02:00
Davide Beatrici
1a95ad8ad1 mumble_plugin_main.h: include <cstring> for memset()
The MinGW builds failed with:

In file included from gtasa.cpp:6:0:
../mumble_plugin_main.h: In instantiation of 'T peekProc(const procptr_t&) [with T = unsigned char; procptr_t = long long unsigned int]':
gtasa.cpp:25:59:   required from here
../mumble_plugin_main.h:47:9: error: 'memset' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
   memset(&ret, 0, sizeof(ret));
         ^
In file included from /usr/lib/mxe/usr/x86_64-w64-mingw32.static/include/guiddef.h:154:0,
                 from /usr/lib/mxe/usr/x86_64-w64-mingw32.static/include/winnt.h:635,
                 from /usr/lib/mxe/usr/x86_64-w64-mingw32.static/include/minwindef.h:163,
                 from /usr/lib/mxe/usr/x86_64-w64-mingw32.static/include/windef.h:8,
                 from /usr/lib/mxe/usr/x86_64-w64-mingw32.static/include/windows.h:69,
                 from ./../mumble_plugin_win32.h:21,
                 from ../mumble_plugin_main.h:95,
                 from gtasa.cpp:6:
/usr/lib/mxe/usr/x86_64-w64-mingw32.static/include/string.h:53:18: note: 'void* memset(void*, int, size_t)' declared here, later in the translation unit
   void * __cdecl memset(void *_Dst,int _Val,size_t _Size);
                  ^
2019-08-28 09:28:53 +02:00
Davide Beatrici
6fb885c451 mumble_plugin_linux.h: detect process architecture by reading the process' memory instead of its binary
Aside from being faster, it also requires less code.

This commit also changes the way architecture is detected for Win32 processes.
Previously, we relied on the Wine's preloader binary's architecture because we read its ELF header; now we read the NT header(s) by calling isWin32Process64Bit() (implemented in 86154c8234).
2019-08-17 00:31:18 +02:00
Davide Beatrici
86154c8234 plugins: detect Win32 process architecture by reading NT header(s)
This is better than our current method because:
1. We don't need an extra handle (IsWow64Process() requires PROCESS_QUERY_INFORMATION or PROCESS_QUERY_LIMITED_INFORMATION).
2. It's more reliable: our current method consists in checking the result of IsWow64Process() (true if the process is 32 bit on 64 bit Windows) and the size of void * (4 bytes if 32 bit, 8 bytes if 64 bit).
It works correctly with a 32 bit plugin on 32 bit Windows and with a 64 bit plugin on 64 bit Windows; it doesn't work correctly when the plugin is 32 bit on 64 bit Windows: 64 bit processes are detected as 32 bit.
3. We can use the same method on Linux (the NT image is loaded in memory by Wine).
2019-08-17 00:30:23 +02:00
Davide Beatrici
28acde17af plugins: add Win32 internal structures in a dedicated header
These structures represent the header(s) of an NT image.

There are two ways to read the image:
- Loading the executable/library in memory and then reading the content at the beginning.
- Reading the process' memory at the beginning (base address).
  In the case of a loaded library, its header(s) can be found at its load (base) address.

By reading the header(s) we can gather useful info regarding the process, such as the architecture and, in the case of a library, the address of an exported symbol.
2019-08-17 00:30:06 +02:00
Magnus Groß
cecdf62adf plugins/gtav: update plugin to work with version 1.48 (Steam)
Game version: 1.48 (Steam)
https://support.rockstargames.com/articles/360033065553/GTAV-Title-Update-1-48-Notes-PS4-Xbox-One-PC
2019-08-16 01:29:50 +02:00
Davide Beatrici
9875c59b7a plugins: use new header 2019-08-08 23:51:13 +02:00
Davide Beatrici
e8afc3872a plugins: move common functions and variables from OS-specific headers to mumble_plugin_main.h
This is in preparation for the new Source Engine plugin which will add a few common functions.

This commit also improves the functions arguments so that they are passed by reference and marked as const (when possible).

A new data type called procid_t is created, intended to be a replacement for pid_t (Linux) and DWORD (Windows).
2019-08-08 23:51:13 +02:00
Davide Beatrici
b427333257 Auto-update LICENSE.header in source files 2019-01-25 04:56:19 +01:00
davidebeatrici
c45695cedf plugins/rl: update plugin and add avatar top vector support
Game version: 1.42
https://www.rocketleague.com/news/patch-notes-v1-42
2018-03-26 00:18:39 +02:00
davidebeatrici
ebb79eec97 plugins/rl: single source file for both Linux and Windows 2018-03-15 23:05:08 +01:00
davidebeatrici
b0974d75f2 plugins: set custom build directory in relation to the global one 2018-02-18 23:56:34 +01:00
Mikkel Krautz
f6ba3a52bf Auto-update LICENSE.header in source files. 2018-01-01 23:05:37 +01:00
davidebeatrici
2a51c7bff6 Accomplish changes in all the plugins 2017-11-19 21:48:55 +01:00
davidebeatrici
f397c40982 Replace legacy header with the new one
This commit removes the legacy header, with the new one taking its name.
2017-11-19 21:48:55 +01:00
davidebeatrici
7286fb0f68 Determine correct pointer size automatically, without the need of specific headers and variables
This commit removes the architecture-specific headers, by keeping only the OS-specific ones.
The different headers were needed to keep the legacy Windows header, after we created the "procptr32_t" (4 bytes) and "procptr64_t" (8 bytes) variables.
We created these variables because the "peekProc" functions read as many bytes as the variable can hold. A pointer is 4 bytes on 32 bit platforms and 8 bytes on 64 bit ones.

Now there's a new variable, called "procptr_t" and with a size of 8 bytes (unsigned long long).
We had a "peekProc" template function which returned the value stored at the specified memory address, but it has been used only to read pointers so far.
Since we needed a new function that checks the process architecture and sets the correct size of the memory to read, I decided to "recycle" it.
2017-11-19 21:48:49 +01:00
Mikkel Krautz
828d9301f5 Remove DIST directive from all .pro files.
We used to use DIST for referencing extra files that should be included
in our tarballs created by 'make dist'.

However, we've since migrated away relying on 'make dist' in release.pl.
Instead, we include everything, and have a list of items to exclude, such
as IETF RFC drafts distributed in 3rdparty/speex-src that do not adhere to
the Debian Free Software Guidelines.
2017-08-06 20:38:14 +02:00
Jan Klass
23e763888f Fix assignment spacing in pro files
Consistently use single space before assignment operator.
2017-08-05 20:44:00 +02:00
Jan Klass
27a983d094 Fix indentation in pro files
Make them consistently two spaces indentation.

In two places a wrong indentation level was fixed.
2017-08-05 20:37:19 +02:00
Mikkel Krautz
46fb405424 Merge PR #3077: plugins/bf1: update plugin to work with version 1.0.49.52296 2017-05-08 10:55:17 +02:00
Davide Beatrici
75c4de8cc1 plugins/bf1: update plugin to work with version 1.0.49.52296
https://www.battlefield.com/news/update-notes/spring-update
2017-05-07 23:03:26 +02:00
Flumble
b47bfc8544 Add target_squad_id and ipport to identity 2017-05-06 01:02:36 +02:00
Flumble
aa87489636 add VoiP state to Battlefield 2 identity 2017-05-05 20:37:46 +02:00
Davide Beatrici
a935808bda Merge PR #3040: Update BF2142 plugin, adding identity support 2017-04-19 00:42:57 +02:00
Flumble
c92b599349 Update BF2142 plugin, adding identity support
updates to BF2142 final patch v1.51 (compatible with Revive)
avatar orientation is copied from camera orientation
2017-04-19 00:01:22 +02:00
Davide Beatrici
9f777406bc plugins/bf1: update plugin to work with version 1.0.49.28890
https://www.battlefield.com/news/update-notes/bf1-they-shall-not-pass-update
2017-04-07 17:40:51 +02:00
Davide Beatrici
f56074b6cf plugins/bf4: update plugin to work with version 1.8.2.48475 2017-04-06 21:35:28 +02:00
Davide Beatrici
bd29b6a23a plugins/gtav: update plugin to work with version 1.38 (Retail)
Game version: 1.38 (Retail)
https://support.rockstargames.com/hc/en-us/articles/115004482908
2017-03-27 21:56:30 +02:00
Davide Beatrici
d19fdd59de plugins/gtav: update plugin to work with version 1.38 (Steam)
Game version: 1.38 (Steam)
https://support.rockstargames.com/hc/en-us/articles/115004482908
2017-03-18 00:20:44 +01:00
Mikkel Krautz
9de6718df1 Merge PR #2941: plugins/sto.cpp: Retract plugin 2017-03-14 22:51:23 +01:00
Davide Beatrici
48c988cea0 plugins/sto.cpp: Retract plugin
This commit retracts the plugin for Star Wars Online, due to lack of maintenance.
2017-03-14 21:35:03 +01:00
Davide Beatrici
57e3d903ab plugins/ql: Fix spectator state offset
The previous offset was pointing at a value of "32" when in-game, which resulted in the plugin being disabled even when not spectating.
2017-03-14 21:32:18 +01:00
Davide Beatrici
d04995899a Move .pri files and "toolchain" folder in "qmake" 2017-03-05 15:48:16 +01:00
Davide Beatrici
707164b64f plugins/rl: update plugin to work with version 1.29
Game version: 1.29
https://rocketleaguegame.com/news/patch-notes-v1-29
2017-02-21 20:35:01 +01:00
Davide Beatrici
2213d5038c plugins: Prevent redefinition of "NOMINMAX"
Define "NOMINMAX" only if it isn't already.
MinGW defines it by default, which results in the following warning:
warning: "NOMINMAX" redefined
2017-01-31 11:25:54 +01:00
Davide Beatrici
474b3700ae plugins: Fix indentation and whitespace
* Use tabs for indentation
* Remove trailing whitespace
* Space indentation for alignment
2017-01-29 13:02:58 +01:00
Mikkel Krautz
98349a1b33 Merge PR #2755: plugins: Fix visibility, warnings and errors when compiled with MinGW 2017-01-22 16:37:32 +01:00
Davide Beatrici
6096b74a1c
plugins: Fix MinGW compilation warnings and errors
warning: converting to non-pointer type 'procptr32_t {aka long unsigned int}' from NULL [-Wconversion-null]
ql\ql.cpp:87: warning: comparison is always true due to limited range of data type [-Wtype-limits]
sto\sto.cpp:11: error: 'numeric_limits' is not a member of 'std'

Not fixed:
sto\sto.cpp:55: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
2017-01-22 16:20:56 +01:00
Davide Beatrici
e92b27b8ca
plugins: Fix visibility for plugins compiled with MinGW 2017-01-22 16:19:58 +01:00
Davide Beatrici
0c1572165f
Merge branch 'master' of https://github.com/mumble-voip/mumble 2017-01-10 16:22:48 +01:00
Davide Beatrici
549197aa33
plugins/rl: update plugin to work with version 1.27
Game version: 1.27
https://rocketleaguegame.com/news/patch-notes-v1-27
2017-01-10 16:21:06 +01:00
Mikkel Krautz
91ebb8b0b5 Update tree copyrights to 2017. 2017-01-08 21:05:57 +01:00
Davide Beatrici
4d3d4d8643
plugins/bf1: update plugin to work with version 1.0.47.30570
https://forums.battlefield.com/en-us/discussion/71453/battlefield-1-giant-s-shadow-release-and-update-12132016
2016-12-31 05:17:35 +01:00
Davide Beatrici
501651b131 plugins/gtav: update plugin to work with version 1.37 (Steam only)
Game version: 1.37
https://support.rockstargames.com/hc/en-us/articles/236222747

The memory addresses of the retail version are different.
I can't update them because replacing the executables isn't enough: a Social Club account with the retail version is needed.
2016-12-24 23:25:29 +01:00
Davide Beatrici
e8849a4fb5 plugins/rl: update plugin to work with version 1.26
Game version: 1.26
https://rocketleaguegame.com/news/patch-notes-v1-26
2016-12-14 17:27:39 +01:00
Mikkel Krautz
74f5930e1c *.pro: use 'linux*' instead of 'linux' for Linux conditionals.
This makes the check Qt 4-compatible.
2016-12-08 22:41:24 +01:00
Davide Beatrici
6bad7ae403 plugins/rl: update plugin to work with version 1.25
Game version: 1.25
https://rocketleaguegame.com/news/patch-notes-v1-25
2016-12-08 16:28:09 +01:00
Arthur Moore
84c2ae28dd ffxiv_x64 Plugin: Add a plugin for Final Fantasy XIV x64
Use ffxiv.cpp to provide both plugins
2016-11-29 18:01:13 -05:00
Arthur Moore
07308dceac ffxiv Plugin: Add a plugin for Final Fantasy XIV
This only supports the DirectX 9 version of the game.
2016-11-27 15:55:45 -05:00