| 1 | = ObjectManage = |
| 2 | |
| 3 | * __File__: source:/trunk/src/util/object_manager.h#HEAD |
| 4 | |
| 5 | == Idea == |
| 6 | The ObjectManager is the one place, where all the Entitites of the Game are stored. |
| 7 | The ObjectManager has multiple lists for Environmentals, enemies, dead and living matter, friends, projectiles and so on. |
| 8 | |
| 9 | With the ObjectManager Entities can be grouped, and as such be ticked, drawn and collided independently and much safer, as without it. |
| 10 | |
| 11 | == Interaction == |
| 12 | The ObjectManager works closely together with WorldEntity, as it is a storage container for them. |
| 13 | |
| 14 | The ObjectManager has the following Lists, to store Entities: |
| 15 | |
| 16 | || OM_NULL || Not accessible (where they are created and deleted !! DO NOT USE THIS) || |
| 17 | || OM_DEAD || Dead Entities, that might be revived || |
| 18 | || OM_DEAD_TICK || Dead Entities, that must be ticked (e.g to respawn them for instance) || |
| 19 | || OM_ENVIRON_NOTICK || Environment that is dead matter (ground house...) || |
| 20 | || OM_ENVIRON || Environment that moved (water, trees, Particles...) || |
| 21 | || OM_COMMON || Everything that is nowhere else, (collides with all groups) || |
| 22 | || OM_GROUP_?? || Groups, for entitites || |
| 23 | || OM_GROUP_??_PROJ || Projectiles of the above mentioned groups. || |
| 24 | |
| 25 | |
| 26 | To Put an entity into a corresponding group (and thus taking it out of its previous group) do a: |
| 27 | {{{ |
| 28 | #!cpp |
| 29 | WorldEntity* entity = new DoomsDayDevice(); |
| 30 | entity->toList(OM_GROUP_01_PROJ); |
| 31 | }}} |
| 32 | |