Initial re-upload of spice2x-24-08-24

This commit is contained in:
2024-08-28 11:10:34 -04:00
commit caa9e02285
1181 changed files with 380065 additions and 0 deletions

47
games/rf3d/io.cpp Normal file
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
games/rf3d/io.h Normal file
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
games/rf3d/rf3d.cpp Normal file
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
games/rf3d/rf3d.h Normal file
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;
};
}