From 2b138f47db3ce611eaa242d2aa8294376862da7d Mon Sep 17 00:00:00 2001 From: historic_bruno Date: Thu, 7 Apr 2011 02:32:16 +0000 Subject: [PATCH] Handle map loading errors in autostart and normal setup modes. Adds TODOs for Atlas and Replay modes. See #764. Fixes loading screen 'title'. Fixes broken autostart behavior for random maps and multiplayer games. This was SVN commit r9193. --- .../gui/common/functions_utility_error.js | 29 ++++ .../data/mods/public/gui/loading/loading.js | 8 +- .../data/mods/public/gui/loading/loading.xml | 1 + .../data/mods/public/gui/pregame/mainmenu.xml | 1 + .../data/mods/public/gui/session/messages.js | 11 ++ source/graphics/MapGenerator.cpp | 2 - source/graphics/MapReader.cpp | 33 +++-- source/main.cpp | 54 +++++--- source/ps/GameSetup/GameSetup.cpp | 127 ++++++++++++++---- source/ps/GameSetup/GameSetup.h | 1 + source/ps/Replay.cpp | 3 + source/ps/World.cpp | 31 ++--- .../GameInterface/Handlers/MapHandlers.cpp | 3 + 13 files changed, 214 insertions(+), 90 deletions(-) create mode 100644 binaries/data/mods/public/gui/common/functions_utility_error.js diff --git a/binaries/data/mods/public/gui/common/functions_utility_error.js b/binaries/data/mods/public/gui/common/functions_utility_error.js new file mode 100644 index 0000000000..9cc7b27609 --- /dev/null +++ b/binaries/data/mods/public/gui/common/functions_utility_error.js @@ -0,0 +1,29 @@ +/* + DESCRIPTION : Error-handling utility functions. + NOTES : +*/ + +// ==================================================================== +function cancelOnError(msg) +{ + // Delete game objects + endGame(); + + // Return to pregame + Engine.SwitchGuiPage("page_pregame.xml"); + + // Display error dialog if message given + if (msg) + { + Engine.PushGuiPage("page_msgbox.xml", { + width: 400, + height: 300, + message: '[font="serif-bold-18"]' + msg + '[/font]', + title: "Loading Aborted", + mode: 2 + }); + } + + // Reset cursor + setCursor("arrow-default"); +} diff --git a/binaries/data/mods/public/gui/loading/loading.js b/binaries/data/mods/public/gui/loading/loading.js index d2e974ff6a..2723ce9771 100644 --- a/binaries/data/mods/public/gui/loading/loading.js +++ b/binaries/data/mods/public/gui/loading/loading.js @@ -2,10 +2,6 @@ var g_Data; function init(data) { - var mapName = "map"; - if (data && data.attribs) - mapName = data.attribs.map; - g_Data = data; // Set to "hourglass" cursor. @@ -49,11 +45,11 @@ function init(data) switch (data.attribs.mapType) { case "scenario": - loadingMapName.caption = "Loading \"" + mapName + "\""; + loadingMapName.caption = "Loading \"" + data.attribs.map + "\""; break; case "random": - loadingMapName.caption = "Generating \"" + mapName + "\""; + loadingMapName.caption = "Generating \"" + data.attribs.script + "\""; break; default: diff --git a/binaries/data/mods/public/gui/loading/loading.xml b/binaries/data/mods/public/gui/loading/loading.xml index eb18ca39bf..b5061beaaa 100644 --- a/binaries/data/mods/public/gui/loading/loading.xml +++ b/binaries/data/mods/public/gui/loading/loading.xml @@ -8,6 +8,7 @@