1
0
Fork 0
mirror of https://github.com/AquariaOSE/Aquaria.git synced 2025-02-18 02:34:57 +00:00

Rix mouse button emulation that broke somewhere along the way

This commit is contained in:
fgenesis 2016-08-04 01:55:32 +02:00
parent d49531f486
commit 15c78dd2e4
4 changed files with 49 additions and 50 deletions

View file

@ -3788,11 +3788,50 @@ void DSQ::jiggleCursor()
SDL_ShowCursor(SDL_DISABLE);
}
float skipSfxVol = 1.0;
void DSQ::updateActionButtons()
{
// HACK: not optimal
// This must be done *before* Core::updateActionButtons()
// for LMB/RMB emulation to work properly -- fg
if (/*inputMode != INPUT_KEYBOARD &&*/ game->isActive())
{
for(size_t i = 0; i < almb.size(); ++i)
if (ActionMapper::getKeyState(almb[i]->key[0]) || ActionMapper::getKeyState(almb[i]->key[1]))
{
mouse.buttons.left = DOWN;
break;
}
for(size_t i = 0; i < armb.size(); ++i)
if (ActionMapper::getKeyState(armb[i]->key[0]) || ActionMapper::getKeyState(armb[i]->key[1]))
{
mouse.buttons.right = DOWN;
break;
}
}
if (joystickAsMouse)
{
for(size_t i = 0; i < almb.size(); ++i)
if (ActionMapper::getKeyState(almb[i]->joy[0]))
{
mouse.buttons.left = DOWN;
break;
}
for(size_t i = 0; i < armb.size(); ++i)
if (ActionMapper::getKeyState(armb[i]->joy[0]))
{
mouse.buttons.right = DOWN;
break;
}
}
Core::updateActionButtons();
}
static float skipSfxVol = 1.0;
void DSQ::onUpdate(float dt)
{
if (isSkippingCutscene())
{
if (!isInCutscene())
@ -3838,13 +3877,12 @@ void DSQ::onUpdate(float dt)
}
}
// This queries pressed keys and updates ActionMapper
Core::onUpdate(dt);
mod.update(dt);
lockMouse();
if (dsq->game && watchForQuit && isNested())
{
if (dsq->game->isActing(ACTION_ESC, -1))
@ -3872,40 +3910,6 @@ void DSQ::onUpdate(float dt)
demo.update(dt);
// HACK: not optimal
if (/*inputMode != INPUT_KEYBOARD &&*/ game->isActive())
{
for(size_t i = 0; i < almb.size(); ++i)
if (ActionMapper::getKeyState(almb[i]->key[0]) || ActionMapper::getKeyState(almb[i]->key[1]))
{
mouse.buttons.left = DOWN;
break;
}
for(size_t i = 0; i < armb.size(); ++i)
if (ActionMapper::getKeyState(armb[i]->key[0]) || ActionMapper::getKeyState(armb[i]->key[1]))
{
mouse.buttons.right = DOWN;
break;
}
}
if (joystickAsMouse)
{
for(size_t i = 0; i < almb.size(); ++i)
if (ActionMapper::getKeyState(almb[i]->joy[0]))
{
mouse.buttons.left = DOWN;
break;
}
for(size_t i = 0; i < armb.size(); ++i)
if (ActionMapper::getKeyState(armb[i]->joy[0]))
{
mouse.buttons.right = DOWN;
break;
}
}
if (joystickEnabled)
{
if (dsq->inputMode != INPUT_JOYSTICK)
@ -4024,7 +4028,7 @@ void DSQ::onUpdate(float dt)
os << '-';
os << "], (" << j->position.x << ", " << j->position.y << "), ("<< j->rightStick.x << ", " << j->rightStick.y << ")\n";
}
os << "altState: " << core->getKeyState(KEY_LALT) << " | " << core->getKeyState(KEY_RALT) << std::endl;
os << "altState: " << core->getKeyState(KEY_LALT) << " | " << core->getKeyState(KEY_RALT) << " mb: " << mouse.buttons.left << mouse.buttons.middle << mouse.buttons.right << std::endl;
os << "PMFree: " << particleManager->getFree() << " Active: " << particleManager->getNumActive() << std::endl;
os << "cameraPos: (" << dsq->cameraPos.x << ", " << dsq->cameraPos.y << ")" << std::endl;
os << "worldType: " << continuity.getWorldType() << " worldPaused: " << game->isWorldPaused() << std::endl;
@ -4108,9 +4112,6 @@ void DSQ::onUpdate(float dt)
updatepecue(dt);
lockMouse();
Network::update();
Shot::clearShotGarbage();
@ -4118,10 +4119,6 @@ void DSQ::onUpdate(float dt)
AquariaGuiElement::UpdateGlobalFocus(dt);
}
void DSQ::lockMouse()
{
}
void DSQ::shakeCamera(float mag, float time)
{

View file

@ -210,8 +210,6 @@ public:
void applyParallaxUserSettings();
void lockMouse();
void nag(NagType type);
void action(int id, int state, int source);
@ -557,6 +555,8 @@ protected:
virtual void onJoystickAdded(int deviceID);
virtual void onJoystickRemoved(int instanceID);
virtual void updateActionButtons();
public:
void fixupJoysticks();
void initActionButtons();

View file

@ -686,6 +686,8 @@ void Core::onUpdate(float dt)
pollEvents(dt);
ActionMapper::onUpdate(dt);
StateManager::onUpdate(dt);

View file

@ -552,7 +552,7 @@ protected:
std::string _extraDataDir;
std::vector<ActionButtonStatus*> actionStatus;
void updateActionButtons();
virtual void updateActionButtons();
void clearActionButtons();
public: