0ad/binaries/data/mods/public/gui/loading/loading.js
2026-04-26 12:44:40 +02:00

48 lines
1.2 KiB
JavaScript

var g_LoadingPage;
async function init(data)
{
g_LoadingPage = {
"initData": data,
"progressBar": new ProgressBar(),
"quoteDisplay": new QuoteDisplay(),
"tipDisplay": new TipDisplay({ "tipScrolling": false, "isOnLoadingScreen": true }),
"titleDisplay": new TitleDisplay(data)
};
Engine.SetCursor("cursor-wait");
// reallyStartGame and cancelOnLoadGameError are reserved names that are called by the engine.
// reallyStartGame is called when it is ready to start the game (i.e. loading progress has reached
// 100%).
// cancnelOnLoadGameError is called when there is an error.
return new Promise(closePageCallback =>
{
globalThis.reallyStartGame = () =>
{
Engine.ResetCursor();
closePageCallback({ [Engine.openRequest]: {
"page": "page_session.xml",
"argument": data
} });
};
globalThis.cancelOnLoadGameError = async() =>
{
Engine.ResetCursor();
Engine.EndGame();
if (Engine.HasXmppClient())
Engine.StopXmppClient();
await Engine.OpenChildPage("page_msgbox.xml", {
"width": 500,
"height": 200,
"message": errorMessage,
"title": translate("Loading Aborted"),
"mode": 2
});
closePageCallback({ [Engine.openRequest]: { "page": "page_pregame.xml" } });
};
});
}