Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/gameengine/GameLogic/SCA_ILogicBrick.h')
-rw-r--r--source/gameengine/GameLogic/SCA_ILogicBrick.h56
1 files changed, 50 insertions, 6 deletions
diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.h b/source/gameengine/GameLogic/SCA_ILogicBrick.h
index e59d05ea051..779e5397a6a 100644
--- a/source/gameengine/GameLogic/SCA_ILogicBrick.h
+++ b/source/gameengine/GameLogic/SCA_ILogicBrick.h
@@ -59,7 +59,8 @@ public:
void SetExecutePriority(int execute_Priority);
void SetUeberExecutePriority(int execute_Priority);
- SCA_IObject* GetParent();
+ SCA_IObject* GetParent() { return m_gameobj; }
+
virtual void ReParent(SCA_IObject* parent);
virtual void Relink(GEN_Map<GEN_HashedPtr, void*> *obj_map);
virtual void Delete() { Release(); }
@@ -70,16 +71,59 @@ public:
virtual const STR_String & GetText();
virtual double GetNumber();
- virtual STR_String GetName();
- virtual void SetName(STR_String name);
- virtual void ReplicaSetName(STR_String name);
+ virtual STR_String& GetName();
+ virtual void SetName(const char *);
- bool IsActive();
- void SetActive(bool active) ;
+ bool IsActive()
+ {
+ return m_bActive;
+ }
+
+ void SetActive(bool active)
+ {
+ m_bActive=active;
+ }
+
+ // insert in a QList at position corresponding to m_Execute_Priority
+ void InsertActiveQList(SG_QList& head)
+ {
+ SG_QList::iterator<SCA_ILogicBrick> it(head);
+ for(it.begin(); !it.end() && m_Execute_Priority > (*it)->m_Execute_Priority; ++it);
+ it.add_back(this);
+ }
+
+ // insert in a QList at position corresponding to m_Execute_Priority
+ // inside a longer list that contains elements of other objects.
+ // Sorting is done only between the elements of the same object.
+ // head is the head of the combined list
+ // current points to the first element of the object in the list, NULL if none yet
+ void InsertSelfActiveQList(SG_QList& head, SG_QList** current)
+ {
+ if (!*current)
+ {
+ // first element can be put anywhere
+ head.QAddBack(this);
+ *current = this;
+ return;
+ }
+ // note: we assume current points actually to one o our element, skip the tests
+ SG_QList::iterator<SCA_ILogicBrick> it(head,*current);
+ if (m_Execute_Priority <= (*it)->m_Execute_Priority)
+ {
+ // this element comes before the first
+ *current = this;
+ }
+ else
+ {
+ for(++it; !it.end() && (*it)->m_gameobj == m_gameobj && m_Execute_Priority > (*it)->m_Execute_Priority; ++it);
+ }
+ it.add_back(this);
+ }
virtual bool LessComparedTo(SCA_ILogicBrick* other);
virtual PyObject* py_getattro(PyObject *attr);
+ virtual PyObject* py_getattro_dict();
virtual int py_setattro(PyObject *attr, PyObject *value);
static class SCA_LogicManager* m_sCurrentLogicManager;