|
@@ -214,10 +214,11 @@ bool SubScene::evaluateCondition()
|
|
|
|
|
|
bool SubScene::testBox(const Box3F& testBox)
|
|
bool SubScene::testBox(const Box3F& testBox)
|
|
{
|
|
{
|
|
- if (mGlobalLayer)
|
|
|
|
- return true;
|
|
|
|
|
|
+ bool passes = mGlobalLayer;
|
|
|
|
+
|
|
|
|
+ if (!passes)
|
|
|
|
+ passes = getWorldBox().isOverlapped(testBox);
|
|
|
|
|
|
- bool passes = getWorldBox().isOverlapped(testBox);
|
|
|
|
if (passes)
|
|
if (passes)
|
|
passes = evaluateCondition();
|
|
passes = evaluateCondition();
|
|
return passes;
|
|
return passes;
|
|
@@ -346,22 +347,22 @@ void SubScene::load()
|
|
if (mSaving)
|
|
if (mSaving)
|
|
return;
|
|
return;
|
|
|
|
|
|
|
|
+ GameMode::findGameModes(mGameModesNames, &mGameModesList);
|
|
|
|
+ if ((String(mGameModesNames).isNotEmpty() && mGameModesList.size() == 0) || !evaluateCondition())
|
|
|
|
+ {
|
|
|
|
+ mLoaded = false;
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
_loadFile(true);
|
|
_loadFile(true);
|
|
mLoaded = true;
|
|
mLoaded = true;
|
|
|
|
|
|
- GameMode::findGameModes(mGameModesNames, &mGameModesList);
|
|
|
|
-
|
|
|
|
onLoaded_callback();
|
|
onLoaded_callback();
|
|
for (U32 i = 0; i < mGameModesList.size(); i++)
|
|
for (U32 i = 0; i < mGameModesList.size(); i++)
|
|
{
|
|
{
|
|
mGameModesList[i]->onSubsceneLoaded_callback(this);
|
|
mGameModesList[i]->onSubsceneLoaded_callback(this);
|
|
}
|
|
}
|
|
|
|
|
|
- if (!mOnLoadCommand.isEmpty())
|
|
|
|
- {
|
|
|
|
- String command = "%this = " + String(getIdString()) + "; " + mLoadIf + ";";
|
|
|
|
- Con::evaluatef(command.c_str());
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
|
|
|
|
void SubScene::unload()
|
|
void SubScene::unload()
|