Initial re-upload of spice2x-24-08-24
This commit is contained in:
47
games/rf3d/io.cpp
Normal file
47
games/rf3d/io.cpp
Normal file
@@ -0,0 +1,47 @@
|
||||
#include "io.h"
|
||||
|
||||
std::vector<Button> &games::rf3d::get_buttons() {
|
||||
static std::vector<Button> buttons;
|
||||
|
||||
if (buttons.empty()) {
|
||||
buttons = GameAPI::Buttons::getButtons("Road Fighters 3D");
|
||||
|
||||
GameAPI::Buttons::sortButtons(
|
||||
&buttons,
|
||||
"Service",
|
||||
"Test",
|
||||
"Coin Mech",
|
||||
"View",
|
||||
"2D/3D",
|
||||
"Lever Up",
|
||||
"Lever Down",
|
||||
"Lever Left",
|
||||
"Lever Right",
|
||||
"Wheel Left",
|
||||
"Wheel Right",
|
||||
"Accelerate",
|
||||
"Brake",
|
||||
"Auto Lever Down",
|
||||
"Auto Lever Up"
|
||||
);
|
||||
}
|
||||
|
||||
return buttons;
|
||||
}
|
||||
|
||||
std::vector<Analog> &games::rf3d::get_analogs() {
|
||||
static std::vector<Analog> analogs;
|
||||
|
||||
if (analogs.empty()) {
|
||||
analogs = GameAPI::Analogs::getAnalogs("Road Fighters 3D");
|
||||
|
||||
GameAPI::Analogs::sortAnalogs(
|
||||
&analogs,
|
||||
"Wheel",
|
||||
"Accelerate",
|
||||
"Brake"
|
||||
);
|
||||
}
|
||||
|
||||
return analogs;
|
||||
}
|
||||
41
games/rf3d/io.h
Normal file
41
games/rf3d/io.h
Normal file
@@ -0,0 +1,41 @@
|
||||
#pragma once
|
||||
|
||||
#include <vector>
|
||||
#include "cfg/api.h"
|
||||
|
||||
namespace games::rf3d {
|
||||
|
||||
// all buttons in correct order
|
||||
namespace Buttons {
|
||||
enum {
|
||||
Service,
|
||||
Test,
|
||||
CoinMech,
|
||||
View,
|
||||
Toggle2D3D,
|
||||
LeverUp,
|
||||
LeverDown,
|
||||
LeverLeft,
|
||||
LeverRight,
|
||||
WheelLeft,
|
||||
WheelRight,
|
||||
Accelerate,
|
||||
Brake,
|
||||
AutoLeverDown,
|
||||
AutoLeverUp
|
||||
};
|
||||
}
|
||||
|
||||
// all analogs in correct order
|
||||
namespace Analogs {
|
||||
enum {
|
||||
Wheel,
|
||||
Accelerate,
|
||||
Brake
|
||||
};
|
||||
}
|
||||
|
||||
// getters
|
||||
std::vector<Button> &get_buttons();
|
||||
std::vector<Analog> &get_analogs();
|
||||
}
|
||||
34
games/rf3d/rf3d.cpp
Normal file
34
games/rf3d/rf3d.cpp
Normal file
@@ -0,0 +1,34 @@
|
||||
#include "rf3d.h"
|
||||
|
||||
#include "avs/game.h"
|
||||
#include "hooks/devicehook.h"
|
||||
#include "util/detour.h"
|
||||
|
||||
games::rf3d::RF3DGame::RF3DGame() : Game("Road Fighters 3D") {
|
||||
}
|
||||
|
||||
static decltype(GetFileAttributesA)* GetFileAttributesA_orig;
|
||||
|
||||
static DWORD __stdcall GetFileAttributesA_hook(LPCSTR lpFileName) {
|
||||
|
||||
if (strcmp(lpFileName, "C:\\WERUNTIME.INI") == 0) {
|
||||
return INVALID_FILE_ATTRIBUTES;
|
||||
}
|
||||
|
||||
return GetFileAttributesA_orig(lpFileName);
|
||||
}
|
||||
|
||||
void games::rf3d::RF3DGame::attach() {
|
||||
Game::attach();
|
||||
|
||||
// device hook for JGT-001 redirection
|
||||
devicehook_init();
|
||||
|
||||
// game changes power configurations if C:\WERUNTIME.INI exists
|
||||
GetFileAttributesA_orig = detour::iat_try("GetFileAttributesA", GetFileAttributesA_hook, avs::game::DLL_INSTANCE);
|
||||
}
|
||||
|
||||
void games::rf3d::RF3DGame::detach() {
|
||||
Game::detach();
|
||||
devicehook_dispose();
|
||||
}
|
||||
13
games/rf3d/rf3d.h
Normal file
13
games/rf3d/rf3d.h
Normal file
@@ -0,0 +1,13 @@
|
||||
#pragma once
|
||||
|
||||
#include "games/game.h"
|
||||
|
||||
namespace games::rf3d {
|
||||
|
||||
class RF3DGame : public games::Game {
|
||||
public:
|
||||
RF3DGame();
|
||||
virtual void attach() override;
|
||||
virtual void detach() override;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user