[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