1
0
forked from 0ad/0ad
0ad/source/graphics/ObjectEntry.h
Ykkrosh 2ea40a23a3 VS2005 compatibility fixes and warning adjustments:
Updated DLLs.
Added DirectX headers/libraries, since they're not in the platform SDK.
Fixed invalid STL iterator usage.
Disabled STL in stack trace, since it breaks.
Added comments for some reported warnings.
Corrected some apparent off-by-one errors.
Defined strlen_s to strnlen.
Probably broke pre-beta2 versions of VC2005.

This was SVN commit r2454.
2005-07-02 21:42:55 +00:00

58 lines
1.5 KiB
C++
Executable File

#ifndef _OBJECTENTRY_H
#define _OBJECTENTRY_H
class CModel;
class CSkeletonAnim;
struct SPropPoint;
#include <map>
#include <vector>
#include <map>
#include "CStr.h"
#include "ObjectBase.h"
#include "Overlay.h"
class CObjectEntry
{
public:
CObjectEntry(int type, CObjectBase* base);
~CObjectEntry();
bool BuildRandomVariant(const CObjectBase::variation_key& vars, CObjectBase::variation_key::const_iterator vars_it);
// Base actor. Contains all the things that don't change between
// different variations of the actor.
CObjectBase* m_Base;
// texture name
CStr m_TextureName;
// model name
CStr m_ModelName;
// colour (used when doing alpha-channel colouring, but not doing player-colour)
CColor m_Color;
// (probable TODO: make colour a per-model thing, rather than per-objectEntry,
// so we can have lots of colour variations without wasting memory on
// lots of objectEntries)
CModel* m_ProjectileModel;
CModel* m_AmmunitionModel;
SPropPoint* m_AmmunitionPoint;
// Returns a randomly-chosen animation matching the given name.
// If none is found, returns NULL.
CSkeletonAnim* GetRandomAnimation(const CStr& animationName);
// corresponding model
CModel* m_Model;
// type of object; index into object managers types array
int m_Type;
private:
typedef std::multimap<CStr, CSkeletonAnim*> SkeletonAnimMap;
SkeletonAnimMap m_Animations;
// TODO: something more memory-efficient than storing loads of similar strings for each unit?
};
#endif