Matei
2261231ffa
Jan and I implemented a number of changes: - Converted SClassSet to vector. - Refactored get/set ClassSet from string into methods in CClassSet. - Turned pass-by-value string params in getCollisionObject, CEntity constructor and CEntityManager into pointers. - Simplified processChooseMovement. - Merged CalculateRun and CalculateHealth into a single, simpler CalculateRegen + helper functions. - Changed the way regen works so the rates read in the XML act as rates (before, they were the number of seconds until the entity will be fully regenned, which is a bit counterintuitive). This was SVN commit r4167.
45 lines
1.0 KiB
C++
45 lines
1.0 KiB
C++
// Supporting data types for CEntity and related
|
|
|
|
#ifndef ENTITY_SUPPORT_INCLUDED
|
|
#define ENTITY_SUPPORT_INCLUDED
|
|
|
|
#include "EntityHandles.h"
|
|
#include "ScriptObject.h"
|
|
|
|
class CEntityManager;
|
|
|
|
struct SEntityAction
|
|
{
|
|
float m_MaxRange;
|
|
float m_MinRange;
|
|
size_t m_Speed;
|
|
CStr8 m_Animation;
|
|
SEntityAction() { m_MaxRange = m_MinRange = 0.0f; m_Speed = 1000; m_Animation = "walk"; }
|
|
SEntityAction(float minRange, float maxRange, size_t speed, CStr8& animation)
|
|
: m_MinRange(minRange), m_MaxRange(maxRange), m_Speed(speed), m_Animation(animation) {}
|
|
};
|
|
|
|
class CClassSet
|
|
{
|
|
CClassSet* m_Parent;
|
|
typedef std::vector<CStrW> Set;
|
|
Set m_Members;
|
|
Set m_AddedMembers; // Members that this set adds to on top of those in its parent
|
|
Set m_RemovedMembers; // Members that this set removes even if its parent has them
|
|
|
|
public:
|
|
CClassSet() : m_Parent(NULL) {}
|
|
|
|
bool IsMember( const CStrW& Test );
|
|
|
|
void Rebuild();
|
|
|
|
inline void SetParent( CClassSet* Parent )
|
|
{ m_Parent = Parent; Rebuild(); }
|
|
|
|
CStrW getMemberList();
|
|
void setFromMemberList(const CStrW& list);
|
|
};
|
|
|
|
#endif
|