[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57536] trunk/blender/source/gameengine/ Ketsji: BGE: Fix for [#32218] "logic.addScene() Not Adding Scenes in Order" reported by Josiah Lane (solarlune).
Mitchell Stokes
mogurijin at gmail.com
Tue Jun 18 06:15:27 CEST 2013
Revision: 57536
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57536
Author: moguri
Date: 2013-06-18 04:15:27 +0000 (Tue, 18 Jun 2013)
Log Message:
-----------
BGE: Fix for [#32218] "logic.addScene() Not Adding Scenes in Order" reported by Josiah Lane (solarlune).
Adding scenes now uses a vector instead of a set to maintain order. This fix is partly based off of patch #32297 by Pavel Sadikov (sigmat).
Modified Paths:
--------------
trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.h
Modified: trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.cpp 2013-06-18 03:51:43 UTC (rev 57535)
+++ trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.cpp 2013-06-18 04:15:27 UTC (rev 57536)
@@ -1649,10 +1649,10 @@
}
else {
if (overlay) {
- m_addingOverlayScenes.insert(scenename);
+ m_addingOverlayScenes.push_back(scenename);
}
else {
- m_addingBackgroundScenes.insert(scenename);
+ m_addingBackgroundScenes.push_back(scenename);
}
}
}
@@ -1664,7 +1664,7 @@
{
if (FindScene(scenename))
{
- m_removingScenes.insert(scenename);
+ m_removingScenes.push_back(scenename);
}
else
{
@@ -1679,7 +1679,7 @@
{
if (m_removingScenes.size())
{
- set<STR_String>::iterator scenenameit;
+ vector<STR_String>::iterator scenenameit;
for (scenenameit=m_removingScenes.begin();scenenameit != m_removingScenes.end();scenenameit++)
{
STR_String scenename = *scenenameit;
@@ -1725,7 +1725,7 @@
void KX_KetsjiEngine::AddScheduledScenes()
{
- set<STR_String>::iterator scenenameit;
+ vector<STR_String>::iterator scenenameit;
if (m_addingOverlayScenes.size())
{
@@ -1761,7 +1761,7 @@
void KX_KetsjiEngine::ReplaceScene(const STR_String& oldscene,const STR_String& newscene)
{
- m_replace_scenes.insert(std::make_pair(oldscene,newscene));
+ m_replace_scenes.push_back(std::make_pair(oldscene,newscene));
}
// replace scene is not the same as removing and adding because the
@@ -1772,7 +1772,7 @@
{
if (m_replace_scenes.size())
{
- set<pair<STR_String,STR_String> >::iterator scenenameit;
+ vector<pair<STR_String,STR_String> >::iterator scenenameit;
for (scenenameit = m_replace_scenes.begin();
scenenameit != m_replace_scenes.end();
Modified: trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.h
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.h 2013-06-18 03:51:43 UTC (rev 57535)
+++ trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.h 2013-06-18 04:15:27 UTC (rev 57536)
@@ -41,7 +41,6 @@
#include "KX_Python.h"
#include "KX_WorldInfo.h"
#include <vector>
-#include <set>
class KX_TimeCategoryLogger;
@@ -88,13 +87,13 @@
class KX_Dome* m_dome; // dome stereo mode
/** Lists of scenes scheduled to be removed at the end of the frame. */
- std::set<STR_String> m_removingScenes;
+ std::vector<STR_String> m_removingScenes;
/** Lists of overley scenes scheduled to be added at the end of the frame. */
- std::set<STR_String> m_addingOverlayScenes;
+ std::vector<STR_String> m_addingOverlayScenes;
/** Lists of background scenes scheduled to be added at the end of the frame. */
- std::set<STR_String> m_addingBackgroundScenes;
+ std::vector<STR_String> m_addingBackgroundScenes;
/** Lists of scenes scheduled to be replaced at the end of the frame. */
- std::set<std::pair<STR_String,STR_String> > m_replace_scenes;
+ std::vector<std::pair<STR_String,STR_String> > m_replace_scenes;
/* The current list of scenes. */
KX_SceneList m_scenes;
More information about the Bf-blender-cvs
mailing list