diff options
Diffstat (limited to 'src/engine/model.h')
| -rw-r--r-- | src/engine/model.h | 53 |
1 files changed, 18 insertions, 35 deletions
diff --git a/src/engine/model.h b/src/engine/model.h index 82aea40..16f1629 100644 --- a/src/engine/model.h +++ b/src/engine/model.h @@ -1,7 +1,6 @@ -enum { MDL_MD3, MDL_MD5, MDL_IQM, NUMMODELTYPES }; +enum { MDL_MD5, MDL_IQM, NUMMODELTYPES }; -struct model -{ +struct model { char *name; float spinyaw, spinpitch, offsetyaw, offsetpitch; bool collide, ellipsecollide, shadow, alphadepth, depthoffset; @@ -11,7 +10,6 @@ struct model vec bbcenter, bbradius, bbextend, collidecenter, collideradius; float rejectradius, eyeheight, collidexyradius, collideheight; int batch; - model(const char *name) : name(name ? newstring(name) : NULL), spinyaw(0), spinpitch(0), offsetyaw(0), offsetpitch(0), collide(true), ellipsecollide(false), shadow(true), alphadepth(true), depthoffset(false), scale(1.0f), translate(0, 0, 0), bih(0), bbcenter(0, 0, 0), bbradius(-1, -1, -1), bbextend(0, 0, 0), collidecenter(0, 0, 0), collideradius(-1, -1, -1), rejectradius(-1), eyeheight(0.9f), collidexyradius(0), collideheight(0), batch(-1) {} virtual ~model() { DELETEA(name); DELETEP(bih); } virtual void calcbb(vec ¢er, vec &radius) = 0; @@ -20,46 +18,35 @@ struct model virtual int type() const = 0; virtual BIH *setBIH() { return 0; } virtual bool skeletal() const { return false; } - - virtual void setshader(Shader *shader) {} - virtual void setspec(float spec) {} - virtual void setambient(float ambient) {} - virtual void setalphatest(float alpha) {} - virtual void setalphablend(bool blend) {} - virtual void setfullbright(float fullbright) {} - virtual void setcullface(bool cullface) {} - + virtual void setshader(Shader *) {} + virtual void setspec(float) {} + virtual void setambient(float) {} + virtual void setalphatest(float) {} + virtual void setalphablend(bool) {} + virtual void setfullbright(float) {} + virtual void setcullface(bool) {} virtual void preloadBIH() { if(!bih) setBIH(); } - virtual void preloadshaders(bool force = false) {} + virtual void preloadshaders() {} virtual void preloadmeshes() {} virtual void cleanup() {} - virtual void startrender() {} virtual void endrender() {} - - void boundbox(vec ¢er, vec &radius) - { - if(bbradius.x < 0) - { + void boundbox(vec ¢er, vec &radius) { + if(bbradius.x < 0) { calcbb(bbcenter, bbradius); bbradius.add(bbextend); } center = bbcenter; radius = bbradius; } - - float collisionbox(vec ¢er, vec &radius) - { - if(collideradius.x < 0) - { + float collisionbox(vec ¢er, vec &radius) { + if(collideradius.x < 0) { boundbox(collidecenter, collideradius); - if(collidexyradius) - { + if(collidexyradius) { collidecenter.x = collidecenter.y = 0; collideradius.x = collideradius.y = collidexyradius; } - if(collideheight) - { + if(collideheight) { collidecenter.z = collideradius.z = collideheight/2; } rejectradius = vec(collidecenter).abs().add(collideradius).magnitude(); @@ -68,16 +55,12 @@ struct model radius = collideradius; return rejectradius; } - - float boundsphere(vec ¢er) - { + float boundsphere(vec ¢er) { vec radius; boundbox(center, radius); return radius.magnitude(); } - - float above() - { + float above() { vec center, radius; boundbox(center, radius); return center.z+radius.z; |
