Update to spice2x-25-10-07 (pre-apply)
> broken commit
This commit is contained in:
@@ -13,10 +13,14 @@
|
||||
|
||||
namespace games::loveplus {
|
||||
|
||||
bool CAMERA_ENABLE = false;
|
||||
|
||||
// touch stuff
|
||||
static bool TOUCH_ENABLE = false;
|
||||
static bool TOUCH_ATTACHED = false;
|
||||
|
||||
static std::string lp_args = "-noWatchDog -noIOError -noIrda -notarget";
|
||||
|
||||
void touch_update() {
|
||||
|
||||
// check if touch enabled
|
||||
@@ -28,16 +32,15 @@ namespace games::loveplus {
|
||||
if (!TOUCH_ATTACHED) {
|
||||
|
||||
// Find the game window.
|
||||
// We check the foreground window first, then fall back to searching for the window title
|
||||
// All game versions seem to have their model first in the window title
|
||||
HWND wnd = GetForegroundWindow();
|
||||
if (!string_begins_with(GetActiveWindowTitle(), "LovePlus")) {
|
||||
wnd = FindWindowBeginsWith(avs::game::MODEL);
|
||||
}
|
||||
HWND wnd = FindProcessWindowBeginsWith("LovePlusAC");
|
||||
|
||||
// attach touch hook
|
||||
if (wnd) {
|
||||
log_info("loveplus", "using window handle for touch: {}", fmt::ptr(wnd));
|
||||
log_info(
|
||||
"loveplus",
|
||||
"using window handle for touch: {} ({})",
|
||||
fmt::ptr(wnd),
|
||||
get_window_title(wnd));
|
||||
touch_create_wnd(wnd);
|
||||
} else {
|
||||
log_info("loveplus", "falling back to the DirectX window handle for touch");
|
||||
@@ -117,12 +120,26 @@ namespace games::loveplus {
|
||||
}
|
||||
|
||||
static LPSTR __stdcall GetCommandLineA_hook() {
|
||||
static std::string lp_args = "-win -noCamera -noWatchDog -noIOError -noIrda -notarget";
|
||||
|
||||
return lp_args.data();
|
||||
}
|
||||
|
||||
static bool lp_spam_remover(void *user, const std::string &data, logger::Style style, std::string &out) {
|
||||
if (data.empty() || data[0] != '[') {
|
||||
return false;
|
||||
}
|
||||
if (data.find("> [INFO] err_code: 0, err_title: , err_str:") != std::string::npos) {
|
||||
out = "";
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
LovePlusGame::LovePlusGame() : Game("LovePlus") {
|
||||
logger::hook_add(lp_spam_remover, nullptr);
|
||||
}
|
||||
|
||||
LovePlusGame::~LovePlusGame() {
|
||||
logger::hook_remove(lp_spam_remover, this);
|
||||
}
|
||||
|
||||
void LovePlusGame::attach() {
|
||||
@@ -157,9 +174,17 @@ namespace games::loveplus {
|
||||
HMODULE seteq = libutils::try_library("ad_hd_seteq_dll.dll");
|
||||
detour::inline_hook((void *) SetEqualizer, libutils::try_proc(seteq, "SetEqualizer"));
|
||||
|
||||
// set up command line args
|
||||
if (!CAMERA_ENABLE) {
|
||||
lp_args += " -noCamera";
|
||||
}
|
||||
if (GRAPHICS_WINDOWED) {
|
||||
lp_args += " -win";
|
||||
}
|
||||
// get command line hook
|
||||
HMODULE lpac = libutils::try_library("lpac.dll");
|
||||
detour::iat("GetCommandLineA", GetCommandLineA_hook, lpac);
|
||||
|
||||
}
|
||||
|
||||
void LovePlusGame::detach() {
|
||||
|
||||
@@ -4,12 +4,15 @@
|
||||
|
||||
namespace games::loveplus {
|
||||
|
||||
extern bool CAMERA_ENABLE;
|
||||
|
||||
// touch stuff
|
||||
void touch_update();
|
||||
|
||||
class LovePlusGame : public games::Game {
|
||||
public:
|
||||
LovePlusGame();
|
||||
virtual ~LovePlusGame() override;
|
||||
virtual void attach() override;
|
||||
virtual void detach() override;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user