mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-13 23:54:35 +00:00
refactor, with the following wrappers to keep in mind:
Core_ClientServer.clearLoadStatus(); Core_ClientServer.inishMapLoad(); Core_ClientServer.FailMapLoad( %moduleName, %isFine); Of special note: the postevent method must only take one entry, so we store off Core_ClientServer.failedModuleName = %moduleName; priorto triggering the event so that the failing module can be reported.
This commit is contained in:
parent
78cb2e1d80
commit
29e06fc327
2 changed files with 19 additions and 9 deletions
|
|
@ -12,19 +12,30 @@
|
||||||
// When a local game is started - a listen server - via calling StartGame() a server is created and then the client is
|
// When a local game is started - a listen server - via calling StartGame() a server is created and then the client is
|
||||||
// connected to it via createAndConnectToLocalServer().
|
// connected to it via createAndConnectToLocalServer().
|
||||||
|
|
||||||
|
function Core_ClientServer::clearLoadStatus()
|
||||||
|
{
|
||||||
|
Core_ClientServer.moduleLoadedDone = 0;
|
||||||
|
Core_ClientServer.moduleLoadedFailed = 0;
|
||||||
|
}
|
||||||
function Core_ClientServer::onLoadMap(%this)
|
function Core_ClientServer::onLoadMap(%this)
|
||||||
{
|
{
|
||||||
%this.finishMapLoad();
|
%this.finishMapLoad();
|
||||||
}
|
}
|
||||||
|
|
||||||
function Core_ClientServer::finishMapLoad()
|
function Core_ClientServer::finishMapLoad(%this)
|
||||||
{
|
{
|
||||||
Core_ClientServer.GetEventManager().postEvent( "mapLoadComplete" );
|
Core_ClientServer.GetEventManager().postEvent( "mapLoadComplete" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function Core_ClientServer::FailMapLoad(%this, %moduleName, %isFine)
|
||||||
|
{
|
||||||
|
Core_ClientServer.failedModuleName = %moduleName;
|
||||||
|
Core_ClientServer.GetEventManager().postEvent( "mapLoadFail", %isFine );
|
||||||
|
}
|
||||||
|
|
||||||
function Core_ClientServerListener::onMapLoadComplete(%this)
|
function Core_ClientServerListener::onMapLoadComplete(%this)
|
||||||
{
|
{
|
||||||
$moduleLoadedDone++;
|
Core_ClientServer.moduleLoadedDone++;
|
||||||
%numModsNeedingLoaded = 0;
|
%numModsNeedingLoaded = 0;
|
||||||
%modulesList = ModuleDatabase.findModules();
|
%modulesList = ModuleDatabase.findModules();
|
||||||
for(%i=0; %i < getWordCount(%modulesList); %i++)
|
for(%i=0; %i < getWordCount(%modulesList); %i++)
|
||||||
|
|
@ -33,7 +44,7 @@ function Core_ClientServerListener::onMapLoadComplete(%this)
|
||||||
if (%module.ModuleId.isMethod("finishMapLoad"))
|
if (%module.ModuleId.isMethod("finishMapLoad"))
|
||||||
%numModsNeedingLoaded++;
|
%numModsNeedingLoaded++;
|
||||||
}
|
}
|
||||||
if ($moduleLoadedDone == %numModsNeedingLoaded)
|
if (Core_ClientServer.moduleLoadedDone == %numModsNeedingLoaded)
|
||||||
{
|
{
|
||||||
loadMissionStage3();
|
loadMissionStage3();
|
||||||
}
|
}
|
||||||
|
|
@ -47,11 +58,11 @@ function Core_ClientServerListener::onmapLoadFail(%this, %isFine)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$moduleLoadedFailed++;
|
Core_ClientServer.moduleLoadedFailed++;
|
||||||
echo("onmapLoadFail!");
|
if (Core_ClientServer.moduleLoadedFailed>1) return; // yeah, we know
|
||||||
if ($moduleLoadedFailed>1) return; // yeah, we know
|
|
||||||
|
|
||||||
$Server::LoadFailMsg = "Failed to load map!";
|
$Server::LoadFailMsg = Core_ClientServer.failedModuleName @" failed to load mission specific data!";
|
||||||
|
error($Server::LoadFailMsg);
|
||||||
// Inform clients that are already connected
|
// Inform clients that are already connected
|
||||||
|
|
||||||
for (%clientIndex = 0; %clientIndex < ClientGroup.getCount(); %clientIndex++)
|
for (%clientIndex = 0; %clientIndex < ClientGroup.getCount(); %clientIndex++)
|
||||||
|
|
|
||||||
|
|
@ -126,8 +126,7 @@ function loadMissionStage2()
|
||||||
// Set mission name.
|
// Set mission name.
|
||||||
if( isObject( theLevelInfo ) )
|
if( isObject( theLevelInfo ) )
|
||||||
$Server::MissionName = theLevelInfo.levelName;
|
$Server::MissionName = theLevelInfo.levelName;
|
||||||
$moduleLoadedDone = 0;
|
Core_ClientServer.clearLoadStatus();
|
||||||
$moduleLoadedFailed = 0;
|
|
||||||
callOnModules("onLoadMap");
|
callOnModules("onLoadMap");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue