pretty hacked and ugly fix for #501

This commit is contained in:
Thomas Jentzsch 2019-08-19 09:33:21 +02:00
parent c10b467de1
commit 0215cda991
3 changed files with 13 additions and 5 deletions

View File

@ -239,7 +239,11 @@ void Console::autodetectFrameLayout(bool reset)
FrameLayoutDetector frameLayoutDetector;
myTIA->setFrameManager(&frameLayoutDetector);
if (reset) mySystem->reset(true);
if(reset)
{
mySystem->reset(true);
myOSystem.eventHandler().handleConsoleStartupEvents(myRiot);
}
for(int i = 0; i < 60; ++i) myTIA->update();

View File

@ -35,7 +35,6 @@
#include "RewindManager.hxx"
#include "TimerManager.hxx"
#include "Switches.hxx"
#include "M6532.hxx"
#include "MouseControl.hxx"
#include "PNGLibrary.hxx"
#include "TIASurface.hxx"
@ -907,7 +906,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated)
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void EventHandler::handleConsoleStartupEvents()
void EventHandler::handleConsoleStartupEvents(const std::unique_ptr<M6532>& riot)
{
bool update = false;
if(myOSystem.settings().getBool("holdreset"))
@ -948,7 +947,11 @@ void EventHandler::handleConsoleStartupEvents()
handleEvent(Event::JoystickOneFire);
if(update)
myOSystem.console().riot().update();
if(riot != nullptr)
// TJ: This is ugly!
riot->update();
else
myOSystem.console().riot().update();
#ifdef DEBUGGER_SUPPORT
if(myOSystem.settings().getBool("debug"))

View File

@ -34,6 +34,7 @@ class PhysicalJoystick;
#include "PJoystickHandler.hxx"
#include "Variant.hxx"
#include "bspf.hxx"
#include "M6532.hxx"
/**
This class takes care of event remapping and dispatching for the
@ -147,7 +148,7 @@ class EventHandler
Handle events that must be processed each time a new console is
created. Typically, these are events set by commandline arguments.
*/
void handleConsoleStartupEvents();
void handleConsoleStartupEvents(const std::unique_ptr<M6532>& riot = nullptr);
bool frying() const { return myFryingFlag; }