mirror of
https://github.com/wesnoth/wesnoth
synced 2025-05-04 21:30:24 +00:00
Fixed crash when loadscreen_manager wasn't initialized like excepted
This commit is contained in:
parent
dd23685755
commit
f10b7cd3f5
@ -179,7 +179,7 @@ namespace game_events
|
||||
* For [foo] tag macro is used like:
|
||||
*
|
||||
* // comment out unused parameters to prevent compiler warnings
|
||||
* WML_HANDLER_FUNCTION(foo, /*handler * /,/*event_info * /, cfg)
|
||||
* WML_HANDLER_FUNCTION(foo, handler, event_info, cfg)
|
||||
* {
|
||||
* // code for foo
|
||||
* }
|
||||
|
@ -67,8 +67,8 @@ class loadscreen {
|
||||
struct global_loadscreen_manager {
|
||||
explicit global_loadscreen_manager(CVideo& screen);
|
||||
~global_loadscreen_manager();
|
||||
static global_loadscreen_manager& get()
|
||||
{ assert(manager); return *manager; }
|
||||
static global_loadscreen_manager* get()
|
||||
{ return manager; }
|
||||
void reset();
|
||||
private:
|
||||
static global_loadscreen_manager* manager;
|
||||
|
@ -68,7 +68,13 @@ play_controller::~play_controller(){
|
||||
}
|
||||
|
||||
void play_controller::init(CVideo& video, bool is_replay){
|
||||
loadscreen::global_loadscreen_manager& loadscreen_manager = loadscreen::global_loadscreen_manager::get();
|
||||
util::scoped_resource<loadscreen::global_loadscreen_manager*, util::delete_item> scoped_loadscreen_manager;
|
||||
loadscreen::global_loadscreen_manager* loadscreen_manager = loadscreen::global_loadscreen_manager::get();
|
||||
if (!loadscreen_manager)
|
||||
{
|
||||
scoped_loadscreen_manager.assign(new loadscreen::global_loadscreen_manager(video));
|
||||
loadscreen_manager = scoped_loadscreen_manager.get();
|
||||
}
|
||||
|
||||
// If the recorder has no event, adds an "game start" event
|
||||
// to the recorder, whose only goal is to initialize the RNG
|
||||
@ -145,7 +151,7 @@ void play_controller::init(CVideo& video, bool is_replay){
|
||||
|
||||
init_managers();
|
||||
loadscreen::global_loadscreen->set_progress(100, _("Starting game"));
|
||||
loadscreen_manager.reset();
|
||||
loadscreen_manager->reset();
|
||||
}
|
||||
|
||||
void play_controller::init_managers(){
|
||||
|
Loading…
x
Reference in New Issue
Block a user