|
Vigilante Game Framework
1.0.0.8
A 2D/3D C++ Game Framework using SFML.
|
An object management class that stores a set of objects to be updated and rendered in a batch. More...
#include <VGroup.h>
Public Types | |
| typedef VBase | VSUPERCLASS |
| Used to call parent class functions when they are overrided in class. | |
Public Member Functions | |
| VGroup (unsigned int maxSize=0) | |
| int | Length () |
| VBase * | Add (VBase *object) |
| VBase * | Remove (VBase *object, bool splice=false) |
| VBase * | FirstAvailable () |
| int | FirstNULL () |
| VBase * | FirstExisting () |
| VBase * | FirstAlive () |
| VBase * | FirstDead () |
| int | CountAlive (bool Recursive=false) |
| int | CountDead (bool Recursive=false) |
| VBase * | GetRandom (int min=0, int max=0) |
| void | ForEach (std::function< void(VBase *)> function, bool recursive=false) |
| void | ForEachAlive (std::function< void(VBase *)> function, bool recursive=false) |
| void | ForEachDead (std::function< void(VBase *)> function, bool recursive=false) |
| void | ForEachExists (std::function< void(VBase *)> function, bool recursive=false) |
| VBase * | GetGroupItem (int index) |
| template<class T > | |
| T * | GetGroupItemAsType (int index) |
| int | GetIndexOfItem (VBase *object) |
| void | OrganiseNULLS () |
| Sort nullptr members to the bottom of the group. | |
| void | Swap (int a, int b) |
| void | Sort (std::function< bool(VBase *, VBase *)> func) |
| void | Reverse () |
| Reverse order of group. | |
| void | Clear () |
| Clears the whole group (does not destroy any of the members, that must be done using the Destroy method). | |
| virtual void | Destroy () override |
| Removes and/or destroys all objects inside the group before destroying extra data. (If an object is referenced in another VGroup, the object won't be destroyed) | |
| virtual void | Kill () override |
| Kills all living objects before killing the group itself. | |
| virtual void | Revive () override |
| Revives all dead objects before reviving the group itself. | |
| virtual void | Update (float dt) override |
| virtual void | Draw (sf::RenderTarget &RenderTarget) override |
Protected Attributes | |
| std::vector< VBase * > | members |
| VBase List. | |
| int | length = 0 |
| Current amount of members in the list. | |
| unsigned int | MaxSize = 0 |
| Maximum Size of the list, used if VGroup is set to have a fixed size. | |
Additional Inherited Members | |
Static Public Member Functions inherited from VBase | |
| static const wchar_t * | VString (const char *fmt,...) |
| static void | VLog (const char *fmt,...) |
| static void | VLogError (const char *fmt,...) |
| static void | VClearLog () |
Public Attributes inherited from VBase | |
| bool | active = true |
| Base can be updated using Update if true. | |
| bool | visible = true |
| Base can be rendered using Draw if true. | |
| bool | alive = true |
| Helper member that is mainly used filter out behaviours to objects which aren't alive in the scene. | |
| bool | exists = true |
| Base can be updated and rendered if true, else it would no longer be treated as being part of the scene. | |
| VType | type = NONE |
| Base object type, typically set in the constructor of an inherited object to specify what type it is. | |
| uint32_t | RefCount = 0 |
| Counts the amount of times the object is referenced in groups, ensures an object is only destroyed when no longer part of a single group. | |
An object management class that stores a set of objects to be updated and rendered in a batch.
|
inline |
| maxSize | The fixed length of the group. If 0, then the VGroup has no limit in size. |
| int VGroup::CountAlive | ( | bool | Recursive = false | ) |
| int VGroup::CountDead | ( | bool | Recursive = false | ) |
|
overridevirtual |
Renders all alive and visible objects in the group.
| RenderTarget | The game's sf::RenderTarget object to render data onto. |
Reimplemented from VBase.
Reimplemented in VEmitter, VSubState, VRenderGroup, V3DScene, VRenderLayer, VTrailArea, and V3DBatchModelGroup.
| VBase* VGroup::FirstAlive | ( | ) |
| VBase* VGroup::FirstAvailable | ( | ) |
| VBase* VGroup::FirstDead | ( | ) |
| VBase* VGroup::FirstExisting | ( | ) |
| int VGroup::FirstNULL | ( | ) |
| void VGroup::ForEach | ( | std::function< void(VBase *)> | function, |
| bool | recursive = false |
||
| ) |
Applies function for each object in group.
| void VGroup::ForEachAlive | ( | std::function< void(VBase *)> | function, |
| bool | recursive = false |
||
| ) |
Applies function for each object in group that's alive.
| void VGroup::ForEachDead | ( | std::function< void(VBase *)> | function, |
| bool | recursive = false |
||
| ) |
Applies function for each object in group that's dead.
| void VGroup::ForEachExists | ( | std::function< void(VBase *)> | function, |
| bool | recursive = false |
||
| ) |
Applies function for each object in group that exists.
| VBase* VGroup::GetGroupItem | ( | int | index | ) |
Gets an object from a specified index in group.
|
inline |
Gets an object from a specified index in group.
| int VGroup::GetIndexOfItem | ( | VBase * | object | ) |
Gets the index of a specific object.
| VBase* VGroup::GetRandom | ( | int | min = 0, |
| int | max = 0 |
||
| ) |
| int VGroup::Length | ( | ) |
| object | The VBase object to remove from the group (does not destroy any of the members, that must be done using the Destroy method). |
| splice | If true, all elements above the object will be moved down, else the element will become null. |
| void VGroup::Swap | ( | int | a, |
| int | b | ||
| ) |
Swaps order of two groups.
|
overridevirtual |
Updates all alive and active objects in the group.
| dt | Delta Time between the previous and current frame. |
Reimplemented from VBase.
Reimplemented in VEmitter, VSubState, VRenderGroup, VPhysicsGroup, V3DScene, VState, and VRenderLayer.
1.8.14