Changeset 6113 in orxonox.OLD for trunk/src/world_entities/power_ups/power_up.cc
- Timestamp:
- Dec 14, 2005, 4:44:13 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/world_entities/power_ups/power_up.cc
r5439 r6113 10 10 11 11 ### File Specific: 12 main-programmer: Benjamin Grauer12 main-programmer: Manuel Leuenberger 13 13 co-programmer: ... 14 14 */ … … 18 18 19 19 #include "power_up.h" 20 20 #include "extendable.h" 21 #include "primitive_model.h" 21 22 22 23 using namespace std; 23 24 25 Model* PowerUp::sphereModel = NULL; 24 26 27 PowerUp::PowerUp(float r, float g, float b) 28 { 29 if(!PowerUp::sphereModel) { 30 PowerUp::sphereModel = new PrimitiveModel(PRIM_SPHERE, 7, 5); 31 } 32 this->sphereMaterial = new Material; 33 this->sphereMaterial->setTransparency(.1); 34 this->sphereMaterial->setDiffuse(r, g, b); 35 } 25 36 26 PowerUp:: PowerUp ()37 PowerUp::~PowerUp () 27 38 { 28 this->setClassID(CL_POWER_UP, "PowerUp"); 29 39 delete this->sphereMaterial; 30 40 } 31 41 32 42 33 34 PowerUp::~PowerUp () {} 43 void PowerUp::loadParams(const TiXmlElement* root) 44 { 45 static_cast<WorldEntity*>(this)->loadParams(root); 46 } 35 47 36 48 37 void PowerUp:: loadParam(const TiXmlElement* root)49 void PowerUp::collidesWith (WorldEntity* entity, const Vector& location) 38 50 { 39 static_cast<WorldEntity*>(this)->loadParams(root); 40 51 if(entity->isA(CL_EXTENDABLE)) 52 { 53 if(dynamic_cast<Extendable*>(entity)->pickup(this)) 54 { 55 this->setVisibiliy(false); 56 } 57 } 41 58 } 42 59 60 void PowerUp::draw() const 61 { 62 WorldEntity::draw(); 63 64 glMatrixMode(GL_MODELVIEW); 65 glPushMatrix(); 66 float matrix[4][4]; 67 68 /* translate */ 69 glTranslatef (this->getAbsCoor ().x, 70 this->getAbsCoor ().y, 71 this->getAbsCoor ().z); 72 /* rotate */ // FIXME: devise a new Way to rotate this 73 this->getAbsDir ().matrix (matrix); 74 glMultMatrixf((float*)matrix); 75 76 this->sphereMaterial->select(); 77 sphereModel->draw(); 78 79 glPopMatrix(); 80 } 81 82 const char* PowerUp::respawnTypes[] = { 83 "none", 84 "time" 85 }; 86 87 void PowerUp::setRespawnType(const char* type) 88 { 89 for(int i = 0; i < RESPAWN_size; ++i) { 90 if(strcmp(type, respawnTypes[i]) == 0) { 91 this->respawnType = (PowerUpRespawn)i; 92 break; 93 } 94 } 95 } 96
Note: See TracChangeset
for help on using the changeset viewer.