home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2007 September / maximum-cd-2007-09.iso / Assets / data / AssaultCube_v0.93.exe / source / src / model.h < prev    next >
Encoding:
C/C++ Source or Header  |  2007-06-01  |  2.0 KB  |  47 lines

  1. enum { ANIM_IDLE = 0, ANIM_RUN, ANIM_ATTACK, ANIM_PAIN, ANIM_JUMP, ANIM_LAND, ANIM_FLIPOFF, ANIM_SALUTE, ANIM_TAUNT, ANIM_WAVE, ANIM_POINT, ANIM_CROUCH_IDLE, ANIM_CROUCH_WALK, ANIM_CROUCH_ATTACK, ANIM_CROUCH_PAIN, ANIM_CROUCH_DEATH, ANIM_DEATH, ANIM_LYING_DEAD, ANIM_FLAG, ANIM_GUN_IDLE, ANIM_GUN_SHOOT, ANIM_GUN_RELOAD, ANIM_GUN_THROW, ANIM_MAPMODEL, ANIM_TRIGGER, ANIM_ALL, NUMANIMS };
  2.  
  3. #define ANIM_INDEX      0xFF
  4. #define ANIM_LOOP       (1<<8)
  5. #define ANIM_START      (1<<9)
  6. #define ANIM_END        (1<<10)
  7. #define ANIM_REVERSE    (1<<11)
  8. #define ANIM_NOINTERP   (1<<12)
  9. #define ANIM_MIRROR     (1<<13)
  10. #define ANIM_NOSKIN     (1<<14)
  11.  
  12. struct animstate                                // used for animation blending of animated characters
  13. {
  14.     int anim, frame, range, basetime;
  15.     float speed;
  16.     animstate() : anim(0), frame(0), range(0), basetime(0), speed(100.0f) { }
  17.  
  18.     bool operator==(const animstate &o) const { return frame==o.frame && range==o.range && basetime==o.basetime && speed==o.speed; }
  19.     bool operator!=(const animstate &o) const { return frame!=o.frame || range!=o.range || basetime!=o.basetime || speed!=o.speed; }
  20. };
  21.  
  22. enum { MDL_MD2 = 1, MDL_MD3 };
  23.  
  24. struct dynent;
  25.  
  26. struct model
  27. {
  28.     bool cullface;
  29.     float scale;
  30.     vec translate;
  31.     
  32.     model() : cullface(true), scale(1), translate(0, 0, 0) {}
  33.     virtual ~model() {}
  34.     virtual void render(int anim, int varseed, float speed, int basetime, float x, float y, float z, float yaw, float pitch, dynent *d, model *vwepmdl = NULL, float scale = 1.0f) = 0;
  35.     virtual void setskin(int tex = 0) = 0;
  36.     virtual bool load() = 0;
  37.     virtual char *name() = 0;
  38.     virtual int type() = 0;
  39.  
  40.     virtual void genshadows(float height, float rad) {}
  41.     virtual void rendershadow(int anim, int varseed, float speed, int basetime, const vec &o, float yaw, model *vwepmdl = NULL) {}
  42.     virtual bool hasshadows() { return false; }
  43. };
  44.  
  45. struct mapmodelinfo { int rad, h, zoff; string name; model *m; };
  46.  
  47.