cleanup: style
[blender-staging.git] / source / gameengine / GameLogic / SCA_IScene.cpp
1 /*
2  * ***** BEGIN GPL LICENSE BLOCK *****
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License
6  * as published by the Free Software Foundation; either version 2
7  * of the License, or (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software Foundation,
16  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17  *
18  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
19  * All rights reserved.
20  *
21  * The Original Code is: all of this file.
22  *
23  * Contributor(s): none yet.
24  *
25  * ***** END GPL LICENSE BLOCK *****
26  */
27
28 /** \file gameengine/GameLogic/SCA_IScene.cpp
29  *  \ingroup gamelogic
30  */
31
32
33 #include "SCA_IScene.h"
34 #include "Value.h"
35
36 SCA_DebugProp::SCA_DebugProp(): m_obj(NULL)
37 {
38 }
39
40 SCA_DebugProp::~SCA_DebugProp()
41 {
42         if (m_obj) 
43                 m_obj->Release(); 
44 }
45
46 SCA_IScene::SCA_IScene()
47 {
48 }
49
50 void SCA_IScene::RemoveAllDebugProperties()
51 {
52         for (std::vector<SCA_DebugProp*>::iterator it = m_debugList.begin();
53                 !(it==m_debugList.end());++it)
54         {
55                 delete (*it);
56         }
57         m_debugList.clear();
58 }
59
60
61 SCA_IScene::~SCA_IScene()
62 {
63         RemoveAllDebugProperties();
64 }
65
66
67 std::vector<SCA_DebugProp*>& SCA_IScene::GetDebugProperties() 
68 {
69         return m_debugList;
70 }
71
72
73 bool SCA_IScene::PropertyInDebugList( class CValue *gameobj, const STR_String &name )
74 {
75         for (std::vector<SCA_DebugProp*>::iterator it = m_debugList.begin();
76                 !(it==m_debugList.end());++it) {
77                 STR_String debugname = (*it)->m_name;
78                 CValue *debugobj = (*it)->m_obj;
79
80                 if (debugobj == gameobj && debugname == name)
81                         return true;
82         }
83         return false;
84 }
85
86
87 bool SCA_IScene::ObjectInDebugList( class CValue *gameobj )
88 {
89         for (std::vector<SCA_DebugProp*>::iterator it = m_debugList.begin();
90                 !(it==m_debugList.end());++it) {
91                 CValue* debugobj = (*it)->m_obj;
92
93                 if (debugobj == gameobj)
94                         return true;
95         }
96         return false;
97 }
98
99
100 void SCA_IScene::AddDebugProperty(class CValue* debugprop,
101                                                                   const STR_String &name)
102 {
103         if (m_debugList.size() < DEBUG_MAX_DISPLAY) {
104                 SCA_DebugProp* dprop = new SCA_DebugProp();
105                 dprop->m_obj = debugprop;
106                 debugprop->AddRef();
107                 dprop->m_name = name;
108                 m_debugList.push_back(dprop);
109         }
110 }
111
112
113 void SCA_IScene::RemoveDebugProperty(class CValue *gameobj,
114                                                                   const STR_String &name)
115 {
116         vector<SCA_DebugProp*>::iterator it = m_debugList.begin();
117         while (it != m_debugList.end()) {
118                 STR_String debugname = (*it)->m_name;
119                 CValue *debugobj = (*it)->m_obj;
120
121                 if (debugobj == gameobj && debugname == name) {
122                         delete (*it);
123                         m_debugList.erase(it);
124                         break;
125                 }
126                 ++it;
127         }
128 }
129
130
131 void SCA_IScene::RemoveObjectDebugProperties(class CValue* gameobj)
132 {       
133         vector<SCA_DebugProp*>::iterator it = m_debugList.begin();
134         while (it != m_debugList.end()) {
135                 CValue* debugobj = (*it)->m_obj;
136
137                 if (debugobj == gameobj) {
138                         delete (*it);
139                         m_debugList.erase(it);
140                         continue;
141                 }
142                 ++it;
143         }
144 }
145