mirror of
https://gitlab.com/Mr_Goldberg/goldberg_emulator.git
synced 2024-06-29 07:28:59 +00:00
Compare commits
4 Commits
aebf057063
...
00c9c08d85
Author | SHA1 | Date | |
---|---|---|---|
|
00c9c08d85 | ||
|
5f8a454e3f | ||
|
6dfe11503b | ||
|
5873398790 |
|
@ -649,6 +649,13 @@ static void load_dlls()
|
|||
std::vector<std::string> paths = Local_Storage::get_filenames_path(path);
|
||||
for (auto & p: paths) {
|
||||
std::string full_path = path + p;
|
||||
size_t length = full_path.length();
|
||||
if (length < 4) continue;
|
||||
if (std::toupper(full_path[length - 1]) != 'L') continue;
|
||||
if (std::toupper(full_path[length - 2]) != 'L') continue;
|
||||
if (std::toupper(full_path[length - 3]) != 'D') continue;
|
||||
if (full_path[length - 4] != '.') continue;
|
||||
|
||||
PRINT_DEBUG("Trying to load %s\n", full_path.c_str());
|
||||
if (LoadLibraryA(full_path.c_str())) {
|
||||
PRINT_DEBUG("LOADED %s\n", full_path.c_str());
|
||||
|
|
|
@ -18,13 +18,15 @@ bool Windows_Hook::start_hook()
|
|||
{
|
||||
GetRawInputBuffer = ::GetRawInputBuffer;
|
||||
GetRawInputData = ::GetRawInputData;
|
||||
SetCursorPos = ::SetCursorPos;
|
||||
|
||||
PRINT_DEBUG("Hooked Windows\n");
|
||||
|
||||
BeginHook();
|
||||
HookFuncs(
|
||||
std::make_pair<void**, void*>(&(PVOID&)GetRawInputBuffer, &Windows_Hook::MyGetRawInputBuffer),
|
||||
std::make_pair<void**, void*>(&(PVOID&)GetRawInputData , &Windows_Hook::MyGetRawInputData)
|
||||
std::make_pair<void**, void*>(&(PVOID&)GetRawInputData , &Windows_Hook::MyGetRawInputData),
|
||||
std::make_pair<void**, void*>(&(PVOID&)SetCursorPos , &Windows_Hook::MySetCursorPos)
|
||||
);
|
||||
EndHook();
|
||||
|
||||
|
@ -169,6 +171,18 @@ UINT WINAPI Windows_Hook::MyGetRawInputData(HRAWINPUT hRawInput, UINT uiCommand,
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
BOOL WINAPI Windows_Hook::MySetCursorPos(int x, int y)
|
||||
{
|
||||
if (get_steam_client()->steam_overlay->ShowOverlay()) {
|
||||
POINT p;
|
||||
GetCursorPos(&p);
|
||||
x = p.x;
|
||||
y = p.y;
|
||||
}
|
||||
|
||||
return Windows_Hook::Inst()->SetCursorPos(x, y);
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
Windows_Hook::Windows_Hook() :
|
||||
|
|
|
@ -26,11 +26,13 @@ private:
|
|||
// Hook to Windows window messages
|
||||
decltype(GetRawInputBuffer)* GetRawInputBuffer;
|
||||
decltype(GetRawInputData)* GetRawInputData;
|
||||
decltype(SetCursorPos)* SetCursorPos;
|
||||
|
||||
static LRESULT CALLBACK HookWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
||||
static UINT WINAPI MyGetRawInputBuffer(PRAWINPUT pData, PUINT pcbSize, UINT cbSizeHeader);
|
||||
static UINT WINAPI MyGetRawInputData(HRAWINPUT hRawInput, UINT uiCommand, LPVOID pData, PUINT pcbSize, UINT cbSizeHeader);
|
||||
|
||||
static BOOL WINAPI MySetCursorPos(int x, int y);
|
||||
public:
|
||||
virtual ~Windows_Hook();
|
||||
|
||||
|
|
|
@ -52,7 +52,6 @@ public:
|
|||
/// setting the options "immediately" after creation.
|
||||
virtual HSteamNetConnection ConnectByIPAddress( const SteamNetworkingIPAddr &address, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0;
|
||||
|
||||
#ifdef STEAMNETWORKINGSOCKETS_ENABLE_SDR
|
||||
/// Like CreateListenSocketIP, but clients will connect using ConnectP2P
|
||||
///
|
||||
/// nVirtualPort specifies how clients can connect to this socket using
|
||||
|
@ -81,7 +80,6 @@ public:
|
|||
/// SteamNetworkingConfigValue_t for more about why this is preferable to
|
||||
/// setting the options "immediately" after creation.
|
||||
virtual HSteamNetConnection ConnectP2P( const SteamNetworkingIdentity &identityRemote, int nVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0;
|
||||
#endif
|
||||
|
||||
/// Accept an incoming connection that has been received on a listen socket.
|
||||
///
|
||||
|
@ -411,8 +409,6 @@ public:
|
|||
/// other connections.)
|
||||
virtual int ReceiveMessagesOnPollGroup( HSteamNetPollGroup hPollGroup, SteamNetworkingMessage_t **ppOutMessages, int nMaxMessages ) = 0;
|
||||
|
||||
#ifdef STEAMNETWORKINGSOCKETS_ENABLE_SDR
|
||||
|
||||
//
|
||||
// Clients connecting to dedicated servers hosted in a data center,
|
||||
// using central-authority-granted tickets.
|
||||
|
@ -608,7 +604,6 @@ public:
|
|||
/// If you expect to be using relayed connections, then you probably want
|
||||
/// to call ISteamNetworkingUtils::InitRelayNetworkAccess() when your app initializes
|
||||
virtual bool ReceivedP2PCustomSignal( const void *pMsg, int cbMsg, ISteamNetworkingCustomSignalingRecvContext *pContext ) = 0;
|
||||
#endif // #ifndef STEAMNETWORKINGSOCKETS_ENABLE_SDR
|
||||
|
||||
//
|
||||
// Certificate provision by the application. On Steam, we normally handle all this automatically
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
class ISteamNetworkingUtils001
|
||||
{
|
||||
public:
|
||||
#ifdef STEAMNETWORKINGSOCKETS_ENABLE_SDR
|
||||
|
||||
//
|
||||
// Initialization
|
||||
|
@ -149,7 +148,6 @@ public:
|
|||
/// Get list of all POP IDs. Returns the number of entries that were filled into
|
||||
/// your list.
|
||||
virtual int GetPOPList( SteamNetworkingPOPID *list, int nListSz ) = 0;
|
||||
#endif // #ifdef STEAMNETWORKINGSOCKETS_ENABLE_SDR
|
||||
|
||||
//
|
||||
// Misc
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
class ISteamNetworkingUtils002
|
||||
{
|
||||
public:
|
||||
#ifdef STEAMNETWORKINGSOCKETS_ENABLE_SDR
|
||||
|
||||
//
|
||||
// Initialization and status check
|
||||
|
@ -152,7 +151,6 @@ public:
|
|||
/// Get list of all POP IDs. Returns the number of entries that were filled into
|
||||
/// your list.
|
||||
virtual int GetPOPList( SteamNetworkingPOPID *list, int nListSz ) = 0;
|
||||
#endif // #ifdef STEAMNETWORKINGSOCKETS_ENABLE_SDR
|
||||
|
||||
//
|
||||
// Misc
|
||||
|
|
Loading…
Reference in New Issue
Block a user