Fix crash when changing display mode

This commit is contained in:
2014-04-21 13:56:05 -04:00
parent 446bb1550d
commit 9013096624
3 changed files with 9 additions and 4 deletions

View File

@@ -41,7 +41,7 @@ extern short stat_window;
extern eGameMode overall_mode;
//extern current_town_type univ.town;
//extern party_record_type party;
extern bool play_sounds,give_intro_hint,show_startup_splash;
extern bool play_sounds,give_intro_hint,show_startup_splash,changed_display_mode;
extern sf::RenderWindow mainPtr;
extern RECT d_rects[80];
extern short d_rect_index[80];
@@ -1252,7 +1252,7 @@ void pick_preferences()
prefsDlog.run();
if(display_mode != store_display_mode)
adjust_window_mode();
changed_display_mode = true;
}
static void put_party_stats(cDialog& me)

View File

@@ -193,6 +193,7 @@ void adjust_window_mode()
}
}
redraw_screen(REFRESH_NONE);
if (text_sbar != NULL) {
text_sbar->relocate({ul.x + 546,ul.y + 283});
item_sbar->relocate({ul.x + 546,ul.y + 146});

View File

@@ -91,7 +91,7 @@ bool fast_bang = false;
short spec_item_array[60];
short current_spell_range;
eGameMode overall_mode = MODE_STARTUP;
bool first_update = true,anim_onscreen = false,frills_on = true,sys_7_avail,suppress_stat_screen = false;
bool first_update = true,anim_onscreen = false,frills_on = true,changed_display_mode = false,suppress_stat_screen = false;
short stat_window = 0,store_modifier;
bool monsters_going = false,boom_anim_active = false;
short give_delays = 0;
@@ -159,9 +159,9 @@ int main(int argc, char* argv[]) {
init_directories(argv[0]);
//data_store = (piles_of_stuff_dumping_type *) NewPtr(sizeof(piles_of_stuff_dumping_type));
init_menubar(); // Do this first of all because otherwise a default File and Window menu will be seen
init_graph_tool();
Initialize();
init_fileio();
init_graph_tool();
init_buf();
@@ -313,6 +313,10 @@ void Handle_One_Event()
makeFrontWindow(mainPtr);
}
if(!mainPtr.pollEvent(event)) {
if(changed_display_mode) {
changed_display_mode = false;
adjust_window_mode();
}
flushingInput = false;
mainPtr.display();
return;