mirror of
https://github.com/spice2x/spice2x.github.io.git
synced 2026-10-02 16:28:13 -07:00
bd2fbfcb67
## Link to GitHub Issue or related Pull Request, if one exists Fixes #833 ## Description of change Last couple PRs - such as #820 #827 #828 - made the native touch hook & touch injection using `InjectTouchInput` the default path, since it performs much more reliably with both real touch screens and mouse (or any other synthetic source). However, user has reported that WINE lacks `InjectTouchInput` which means this won't work. As a fix, revive the old wintouchemu code. Native touch is still the default, but under following circumstances: 1. if `-touchemuforce` is set, or 2. if any of the required Windows touch APIs are unavailable then we fail over from native touch to wintouchemu code. For Linux, condition #2 would be hit during init, and gracefully switch over. Caveat: the poke code for IIDX and Nost will continue to require native touch, I do not want to maintain two paths for this. This means that iidx poke will stop working on Linux, unfortunately. ## Testing Tested on Windows with `-touchemuforce` set. This is mostly reverting Linux code path back to where we were last release, so this should just work with wine.
35 lines
691 B
C++
35 lines
691 B
C++
#pragma once
|
|
|
|
#include "avs/game.h"
|
|
#include "games/game.h"
|
|
#include "util/tapeled.h"
|
|
|
|
namespace games::popn {
|
|
|
|
static inline bool is_pikapika_model() {
|
|
|
|
#if SPICE64
|
|
return (avs::game::is_model("M39") && avs::game::SPEC[0] == 'D');
|
|
#else
|
|
return false;
|
|
#endif
|
|
|
|
}
|
|
|
|
#if SPICE64
|
|
constexpr int POPN_TAPELED_TOTAL = 8;
|
|
extern tapeledutils::tape_led TAPELED_MAPPING[POPN_TAPELED_TOTAL];
|
|
#endif
|
|
|
|
extern bool SHOW_PIKA_MONITOR_WARNING;
|
|
extern bool NATIVE_TOUCH;
|
|
|
|
class POPNGame : public games::Game {
|
|
public:
|
|
POPNGame();
|
|
~POPNGame() override;
|
|
virtual void pre_attach() override;
|
|
virtual void attach() override;
|
|
};
|
|
}
|