Merged 15170:15635 from trunk (no conflicts or even merges)

This commit is contained in:
Ian Thompson
2008-07-18 23:35:34 +00:00
parent 123407e0b4
commit f042a468fd
401 changed files with 41462 additions and 9816 deletions

View File

@@ -40,7 +40,7 @@
MT_Point3 SCA_IObject::m_sDummy=MT_Point3(0,0,0);
SCA_IObject::SCA_IObject(PyTypeObject* T): CValue(T)
SCA_IObject::SCA_IObject(PyTypeObject* T): m_initState(0), m_state(0), CValue(T)
{
m_suspended = false;
}
@@ -157,15 +157,17 @@ bool SCA_IObject::GetIgnoreActivityCulling()
void SCA_IObject::ReParentLogic()
{
SCA_SensorList& oldsensors = GetSensors();
int sen = 0;
SCA_SensorList::iterator its;
for (its = oldsensors.begin(); !(its==oldsensors.end()); ++its)
SCA_ActuatorList& oldactuators = GetActuators();
int act = 0;
SCA_ActuatorList::iterator ita;
for (ita = oldactuators.begin(); !(ita==oldactuators.end()); ++ita)
{
SCA_ISensor* newsensor = (SCA_ISensor*)(*its)->GetReplica();
newsensor->ReParent(this);
oldsensors[sen++] = newsensor;
SCA_IActuator* newactuator = (SCA_IActuator*) (*ita)->GetReplica();
newactuator->ReParent(this);
// actuators are initially not connected to any controller
newactuator->SetActive(false);
newactuator->ClrLink();
oldactuators[act++] = newactuator;
}
SCA_ControllerList& oldcontrollers = GetControllers();
@@ -175,20 +177,24 @@ void SCA_IObject::ReParentLogic()
{
SCA_IController* newcontroller = (SCA_IController*)(*itc)->GetReplica();
newcontroller->ReParent(this);
newcontroller->SetActive(false);
oldcontrollers[con++]=newcontroller;
}
SCA_ActuatorList& oldactuators = GetActuators();
int act = 0;
SCA_ActuatorList::iterator ita;
for (ita = oldactuators.begin(); !(ita==oldactuators.end()); ++ita)
// convert sensors last so that actuators are already available for Actuator sensor
SCA_SensorList& oldsensors = GetSensors();
int sen = 0;
SCA_SensorList::iterator its;
for (its = oldsensors.begin(); !(its==oldsensors.end()); ++its)
{
SCA_IActuator* newactuator = (SCA_IActuator*) (*ita)->GetReplica();
newactuator->ReParent(this);
newactuator->SetActive(false);
oldactuators[act++] = newactuator;
SCA_ISensor* newsensor = (SCA_ISensor*)(*its)->GetReplica();
newsensor->ReParent(this);
newsensor->SetActive(false);
// sensors are initially not connected to any controller
newsensor->ClrLink();
oldsensors[sen++] = newsensor;
}
// a new object cannot be client of any actuator
m_registeredActuators.clear();
@@ -300,7 +306,7 @@ const MT_Point3& SCA_IObject::ConvertPythonPylist(PyObject* pylist)
}
#endif
void SCA_IObject::Suspend(void)
void SCA_IObject::Suspend()
{
if ((!m_ignore_activity_culling)
&& (!m_suspended)) {
@@ -329,6 +335,17 @@ void SCA_IObject::Resume(void)
}
}
void SCA_IObject::SetState(unsigned int state)
{
m_state = state;
// update the status of the controllers
SCA_ControllerList::iterator contit;
for (contit = m_controllers.begin(); contit != m_controllers.end(); contit++)
{
(*contit)->ApplyState(m_state);
}
}
/* ------------------------------------------------------------------------- */