Initial commit for GitHub migration based on spice2x-25-03-03

This commit is contained in:
sp2xdev
2025-03-10 19:16:49 -07:00
parent 94af8d32c9
commit ed8c72852f
1008 changed files with 296815 additions and 0 deletions
+47
View 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
View 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
View 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
View 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;
};
}