diff options
Diffstat (limited to 'src/game.cpp')
-rw-r--r-- | src/game.cpp | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/src/game.cpp b/src/game.cpp index 65feb50bf..4f6eb472d 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -992,6 +992,9 @@ void the_game( sound_is_dummy = true; } + Server *server = NULL; + + try{ // Event manager EventManager eventmgr; @@ -1007,9 +1010,8 @@ void the_game( /* Create server. - SharedPtr will delete it when it goes out of scope. */ - SharedPtr<Server> server; + if(address == ""){ draw_load_screen(L"Creating server...", driver, font); infostream<<"Creating server"<<std::endl; @@ -1018,7 +1020,6 @@ void the_game( server->start(port); } - try{ do{ // Client scope (breakable do-while(0)) /* @@ -3290,10 +3291,25 @@ void the_game( L" running a different version of Minetest."; errorstream<<wide_to_narrow(error_message)<<std::endl; } + catch(ServerError &e) + { + error_message = narrow_to_wide(e.what()); + errorstream<<wide_to_narrow(error_message)<<std::endl; + } + catch(ModError &e) + { + errorstream<<e.what()<<std::endl; + error_message = narrow_to_wide(e.what()) + wgettext("\nCheck debug.txt for details."); + } + + if(!sound_is_dummy) delete sound; + //has to be deleted first to stop all server threads + delete server; + delete tsrc; delete shsrc; delete nodedef; |