mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-01-19 20:24:49 +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
|
|
@ -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
|
||||
// connected to it via createAndConnectToLocalServer().
|
||||
|
||||
function Core_ClientServer::clearLoadStatus()
|
||||
{
|
||||
Core_ClientServer.moduleLoadedDone = 0;
|
||||
Core_ClientServer.moduleLoadedFailed = 0;
|
||||
}
|
||||
function Core_ClientServer::onLoadMap(%this)
|
||||
{
|
||||
%this.finishMapLoad();
|
||||
}
|
||||
|
||||
function Core_ClientServer::finishMapLoad()
|
||||
function Core_ClientServer::finishMapLoad(%this)
|
||||
{
|
||||
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)
|
||||
{
|
||||
$moduleLoadedDone++;
|
||||
Core_ClientServer.moduleLoadedDone++;
|
||||
%numModsNeedingLoaded = 0;
|
||||
%modulesList = ModuleDatabase.findModules();
|
||||
for(%i=0; %i < getWordCount(%modulesList); %i++)
|
||||
|
|
@ -33,7 +44,7 @@ function Core_ClientServerListener::onMapLoadComplete(%this)
|
|||
if (%module.ModuleId.isMethod("finishMapLoad"))
|
||||
%numModsNeedingLoaded++;
|
||||
}
|
||||
if ($moduleLoadedDone == %numModsNeedingLoaded)
|
||||
if (Core_ClientServer.moduleLoadedDone == %numModsNeedingLoaded)
|
||||
{
|
||||
loadMissionStage3();
|
||||
}
|
||||
|
|
@ -47,11 +58,11 @@ function Core_ClientServerListener::onmapLoadFail(%this, %isFine)
|
|||
return;
|
||||
}
|
||||
|
||||
$moduleLoadedFailed++;
|
||||
echo("onmapLoadFail!");
|
||||
if ($moduleLoadedFailed>1) return; // yeah, we know
|
||||
Core_ClientServer.moduleLoadedFailed++;
|
||||
if (Core_ClientServer.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
|
||||
|
||||
for (%clientIndex = 0; %clientIndex < ClientGroup.getCount(); %clientIndex++)
|
||||
|
|
|
|||
|
|
@ -126,8 +126,7 @@ function loadMissionStage2()
|
|||
// Set mission name.
|
||||
if( isObject( theLevelInfo ) )
|
||||
$Server::MissionName = theLevelInfo.levelName;
|
||||
$moduleLoadedDone = 0;
|
||||
$moduleLoadedFailed = 0;
|
||||
Core_ClientServer.clearLoadStatus();
|
||||
callOnModules("onLoadMap");
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue