Merge pull request #140 from eightyeight/missionarea-server-object

Updated logic in MissionArea::getServerObject merged into development branch.
This commit is contained in:
SilentMike 2013-01-09 13:03:35 -08:00
commit 03211bc4fd
2 changed files with 24 additions and 14 deletions

View file

@ -52,6 +52,8 @@ ConsoleDocClass( MissionArea,
RectI MissionArea::smMissionArea(Point2I(768, 768), Point2I(512, 512));
MissionArea * MissionArea::smServerObject = NULL;
//------------------------------------------------------------------------------
MissionArea::MissionArea()
@ -79,27 +81,24 @@ void MissionArea::setArea(const RectI & area)
MissionArea * MissionArea::getServerObject()
{
SimSet * scopeAlwaysSet = Sim::getGhostAlwaysSet();
for(SimSet::iterator itr = scopeAlwaysSet->begin(); itr != scopeAlwaysSet->end(); itr++)
{
MissionArea * ma = dynamic_cast<MissionArea*>(*itr);
if(ma)
{
AssertFatal(ma->isServerObject(), "MissionArea::getServerObject: found client object in ghost always set!");
return(ma);
}
}
return(0);
return smServerObject;
}
//------------------------------------------------------------------------------
bool MissionArea::onAdd()
{
if(isServerObject() && MissionArea::getServerObject())
if(isServerObject())
{
Con::errorf(ConsoleLogEntry::General, "MissionArea::onAdd - MissionArea already instantiated!");
return(false);
if(MissionArea::getServerObject())
{
Con::errorf(ConsoleLogEntry::General, "MissionArea::onAdd - MissionArea already instantiated!");
return(false);
}
else
{
smServerObject = this;
}
}
if(!Parent::onAdd())
@ -109,6 +108,14 @@ bool MissionArea::onAdd()
return(true);
}
void MissionArea::onRemove()
{
if (smServerObject == this)
smServerObject = NULL;
Parent::onRemove();
}
//------------------------------------------------------------------------------
void MissionArea::inspectPostApply()

View file

@ -36,6 +36,8 @@ class MissionArea : public NetObject
F32 mFlightCeiling;
F32 mFlightCeilingRange;
static MissionArea * smServerObject;
public:
MissionArea();
@ -53,6 +55,7 @@ class MissionArea : public NetObject
/// @name SimObject Inheritance
/// @{
bool onAdd();
void onRemove();
void inspectPostApply();