diff options
author | Antony Riakiotakis <kalast@gmail.com> | 2015-05-19 12:20:54 +0300 |
---|---|---|
committer | Antony Riakiotakis <kalast@gmail.com> | 2015-05-19 12:20:54 +0300 |
commit | 8357040667f3008d9d0f1e33f0b0dc54ff4a3ef8 (patch) | |
tree | bf3743b1cf42a7fa257fb2cac3a835bc7da17825 /source/gameengine | |
parent | 8ef679b6fddfa4f9d6a417b578e8ce77ca320c61 (diff) | |
parent | e8561e966d3d6ced9569e9a91aa123975e9ee95a (diff) |
Merge branch 'master' into gooseberry
Conflicts:
source/blender/windowmanager/intern/wm_playanim.c
Diffstat (limited to 'source/gameengine')
3 files changed, 12 insertions, 38 deletions
diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp index 5ec1c2e2846..25755f7127b 100644 --- a/source/gameengine/Ketsji/KX_Scene.cpp +++ b/source/gameengine/Ketsji/KX_Scene.cpp @@ -809,13 +809,6 @@ void KX_Scene::DupliGroupRecurse(CValue* obj, int level) // we can now add the graphic controller to the physic engine replica->ActivateGraphicController(true); - // set references for dupli-group - // groupobj holds a list of all objects, that belongs to this group - groupobj->AddInstanceObjects(replica); - - // every object gets the reference to its dupli-group object - replica->SetDupliGroupObject(groupobj); - // done with replica replica->Release(); } @@ -826,6 +819,14 @@ void KX_Scene::DupliGroupRecurse(CValue* obj, int level) for (git = m_logicHierarchicalGameObjects.begin(); git != m_logicHierarchicalGameObjects.end(); ++git) { KX_GameObject *gameobj = *git; + if (gameobj->GetBlenderGroupObject() == blgroupobj) { + // set references for dupli-group + // groupobj holds a list of all objects, that belongs to this group + groupobj->AddInstanceObjects(gameobj); + // every object gets the reference to its dupli-group object + gameobj->SetDupliGroupObject(groupobj); + } + gameobj->ReParentLogic(); // relink any pointers as necessary, sort of a temporary solution @@ -1891,15 +1892,6 @@ static void MergeScene_LogicBrick(SCA_ILogicBrick* brick, KX_Scene *from, KX_Sce brick->Replace_IScene(to); brick->Replace_NetworkScene(to->GetNetworkScene()); - /* near sensors have physics controllers */ - KX_TouchSensor *touch_sensor = dynamic_cast<class KX_TouchSensor *>(brick); - if (touch_sensor) { - KX_TouchEventManager *tmgr = (KX_TouchEventManager*)from->GetLogicManager()->FindEventManager(SCA_EventManager::TOUCH_EVENTMGR); - touch_sensor->UnregisterSumo(tmgr); - touch_sensor->GetPhysicsController()->SetPhysicsEnvironment(to->GetPhysicsEnvironment()); - touch_sensor->RegisterSumo(tmgr); - } - // If we end up replacing a KX_TouchEventManager, we need to make sure // physics controllers are properly in place. In other words, do this // after merging physics controllers! @@ -1958,17 +1950,6 @@ static void MergeScene_GameObject(KX_GameObject* gameobj, KX_Scene *to, KX_Scene { SCA_IController *cont= *itc; MergeScene_LogicBrick(cont, from, to); - - vector<SCA_ISensor*> linkedsensors = cont->GetLinkedSensors(); - vector<SCA_IActuator*> linkedactuators = cont->GetLinkedActuators(); - - for (vector<SCA_IActuator*>::iterator ita = linkedactuators.begin();!(ita==linkedactuators.end());++ita) { - MergeScene_LogicBrick(*ita, from, to); - } - - for (vector<SCA_ISensor*>::iterator its = linkedsensors.begin();!(its==linkedsensors.end());++its) { - MergeScene_LogicBrick(*its, from, to); - } } } diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.cpp index b3da5e1f812..34184f73953 100644 --- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.cpp +++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.cpp @@ -79,10 +79,6 @@ void RAS_ListSlot::RemoveList() void RAS_ListSlot::DrawList() { - if (m_flag &LIST_STREAM || m_flag& LIST_NOCREATE) { - RemoveList(); - return; - } if (m_flag &LIST_MODIFY) { if (m_flag &LIST_CREATE) { if (m_list == 0) { @@ -115,7 +111,7 @@ void RAS_ListSlot::SetModified(bool mod) if (mod && !(m_flag & LIST_MODIFY)) { spit("Modifying list (" << m_list << ")"); m_flag = m_flag &~ LIST_END; - m_flag |= LIST_STREAM; + m_flag |= LIST_MODIFY; } } diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h index d394c72b2a2..5e1c662bc17 100644 --- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h +++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h @@ -35,12 +35,9 @@ public: enum RAS_ListSlotFlags { LIST_CREATE =1, LIST_MODIFY =2, - LIST_STREAM =4, - LIST_NOCREATE =8, - LIST_BEGIN =16, - LIST_END =32, - LIST_REGEN =64, - LIST_DERIVEDMESH=128, + LIST_BEGIN =4, + LIST_END =8, + LIST_DERIVEDMESH=16, }; struct DerivedMesh; |