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 const wchar_t * | VString (const char *fmt,...) |
static void | VLog (const char *fmt,...) |
static void | VLogError (const char *fmt,...) |
static void | VClearLog () |
![]() | |
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.