Fix bug #1595627: "SCUMM: F5 crashes game (640x480)". This partially
reverts commit r24656 for fixing bug #1590596 and effectively fixes both. svn-id: r24933
This commit is contained in:
parent
a0f5e6f0b1
commit
4e52f4438f
3 changed files with 16 additions and 10 deletions
|
@ -1025,16 +1025,6 @@ int ScummEngine::init() {
|
||||||
initCommonGFX(defaultTo1XScaler);
|
initCommonGFX(defaultTo1XScaler);
|
||||||
_system->endGFXTransaction();
|
_system->endGFXTransaction();
|
||||||
|
|
||||||
// It may happen that we have 3x scaler in launcher (960xY) and then 640x480
|
|
||||||
// game will be forced to 1x. At this stage GUI will not be aware of
|
|
||||||
// resolution change, so widgets will be off screen. This forces it to
|
|
||||||
// recompute
|
|
||||||
//
|
|
||||||
// Fixes bug #1590596: "HE: When 3x graphics are choosen, F5 crashes game"
|
|
||||||
if (defaultTo1XScaler) {
|
|
||||||
g_gui.screenChange();
|
|
||||||
}
|
|
||||||
|
|
||||||
setupScumm();
|
setupScumm();
|
||||||
|
|
||||||
readIndexFile();
|
readIndexFile();
|
||||||
|
|
|
@ -51,6 +51,18 @@ Dialog::Dialog(const Common::String &name, bool dimsInactive_)
|
||||||
_mouseWidget(0), _focusedWidget(0), _dragWidget(0), _visible(false), _drawingHints(0),
|
_mouseWidget(0), _focusedWidget(0), _dragWidget(0), _visible(false), _drawingHints(0),
|
||||||
_dimsInactive(dimsInactive_) {
|
_dimsInactive(dimsInactive_) {
|
||||||
_drawingHints = THEME_HINT_FIRST_DRAW | THEME_HINT_SAVE_BACKGROUND;
|
_drawingHints = THEME_HINT_FIRST_DRAW | THEME_HINT_SAVE_BACKGROUND;
|
||||||
|
|
||||||
|
// It may happen that we have 3x scaler in launcher (960xY) and then 640x480
|
||||||
|
// game will be forced to 1x. At this stage GUI will not be aware of
|
||||||
|
// resolution change, so widgets will be off screen. This forces it to
|
||||||
|
// recompute
|
||||||
|
//
|
||||||
|
// Fixes bug #1590596: "HE: When 3x graphics are choosen, F5 crashes game"
|
||||||
|
// and bug #1595627: "SCUMM: F5 crashes game (640x480)"
|
||||||
|
if (g_gui.theme()->needThemeReload()) {
|
||||||
|
debug(2, "Theme forced to reload");
|
||||||
|
g_gui.screenChange();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Dialog::~Dialog() {
|
Dialog::~Dialog() {
|
||||||
|
|
|
@ -240,6 +240,10 @@ protected:
|
||||||
Common::ConfigFile _configFile;
|
Common::ConfigFile _configFile;
|
||||||
Common::ConfigFile _defaultConfig;
|
Common::ConfigFile _defaultConfig;
|
||||||
|
|
||||||
|
public:
|
||||||
|
bool needThemeReload() { return ((_loadedThemeX != g_system->getOverlayWidth()) ||
|
||||||
|
(_loadedThemeY != g_system->getOverlayHeight())); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static const char *_defaultConfigINI;
|
static const char *_defaultConfigINI;
|
||||||
int _loadedThemeX, _loadedThemeY;
|
int _loadedThemeX, _loadedThemeY;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue