- Timestamp:
- Jul 11, 2005, 5:47:23 PM (19 years ago)
- Location:
- orxonox/trunk/src
- Files:
-
- 20 edited
Legend:
- Unmodified
- Added
- Removed
-
orxonox/trunk/src/glmenu/glmenu_imagescreen.cc
r4597 r4834 184 184 void GLMenuImageScreen::step () 185 185 { 186 this->currentValue++; 187 this->draw(); 186 if (this->currentValue < this->maxValue) 187 { 188 this->currentValue++; 189 this->draw(); 190 } 191 else 192 PRINTF(2)("ImageScreen-loadbar exceeds maximum value %d\n", this->maxValue); 188 193 } 189 194 -
orxonox/trunk/src/lib/event/event_handler.h
r4780 r4834 12 12 #include "event_def.h" 13 13 14 // FORWARD DECLARATION 14 15 class EventListener; 15 16 template <class T> class tList; 16 17 17 18 //! The one Event Handler from Orxonox -
orxonox/trunk/src/lib/event/key_mapper.cc
r4833 r4834 57 57 //! this is the mapping array from names to ids: enter all orxonox.conf keys here 58 58 /** @todo use globals.h for this.... everything is done there for those Options, 59 * and you do not have to care about The namings 59 * and you do not have to care about The namings, as they might change 60 60 */ 61 61 orxKeyMapping map[] = { 62 {&KeyMapper::PEV_UP, "Up"},63 {&KeyMapper::PEV_DOWN, "Down"},64 {&KeyMapper::PEV_LEFT, "Left"},65 {&KeyMapper::PEV_RIGHT, "Right"},62 {&KeyMapper::PEV_UP, CONFIG_NAME_PLAYER_UP}, 63 {&KeyMapper::PEV_DOWN, CONFIG_NAME_PLAYER_DOWN}, 64 {&KeyMapper::PEV_LEFT, CONFIG_NAME_PLAYER_LEFT}, 65 {&KeyMapper::PEV_RIGHT, CONFIG_NAME_PLAYER_RIGHT}, 66 66 {&KeyMapper::PEV_STRAFE_LEFT, "StrafeLeft"}, 67 67 {&KeyMapper::PEV_STRAFE_RIGHT, "StrafeRight"}, 68 68 69 {&KeyMapper::PEV_FIRE1, "Fire"},69 {&KeyMapper::PEV_FIRE1, CONFIG_NAME_PLAYER_FIRE}, 70 70 {&KeyMapper::PEV_FIRE1, "Fire1"}, 71 71 {&KeyMapper::PEV_FIRE2, "Fire2"}, … … 74 74 75 75 76 {&KeyMapper::PEV_VIEW0, "view0"},77 {&KeyMapper::PEV_VIEW1, "view1"},78 {&KeyMapper::PEV_VIEW2, "view2"},79 {&KeyMapper::PEV_VIEW3, "view3"},80 {&KeyMapper::PEV_VIEW4, "view4"},81 {&KeyMapper::PEV_VIEW5, "view5"},82 83 {&KeyMapper::PEV_NEXT_WORLD, "Next-World"},84 {&KeyMapper::PEV_PREVIOUS_WORLD, "Prev-World"},85 86 {&KeyMapper::PEV_PAUSE, "Pause"},87 {&KeyMapper::PEV_QUIT, "Quit"},76 {&KeyMapper::PEV_VIEW0, CONFIG_NAME_VIEW0}, 77 {&KeyMapper::PEV_VIEW1, CONFIG_NAME_VIEW1}, 78 {&KeyMapper::PEV_VIEW2, CONFIG_NAME_VIEW2}, 79 {&KeyMapper::PEV_VIEW3, CONFIG_NAME_VIEW3}, 80 {&KeyMapper::PEV_VIEW4, CONFIG_NAME_VIEW4}, 81 {&KeyMapper::PEV_VIEW5, CONFIG_NAME_VIEW5}, 82 83 {&KeyMapper::PEV_NEXT_WORLD, CONFIG_NAME_NEXT_WORLD}, 84 {&KeyMapper::PEV_PREVIOUS_WORLD, CONFIG_NAME_PREV_WORLD}, 85 86 {&KeyMapper::PEV_PAUSE, CONFIG_NAME_PAUSE}, 87 {&KeyMapper::PEV_QUIT, CONFIG_NAME_QUIT}, 88 88 {NULL, NULL} 89 89 }; -
orxonox/trunk/src/lib/graphics/graphics_engine.cc
r4833 r4834 325 325 glDisable(GL_CULL_FACE); 326 326 glDisable(GL_LIGHTING); // will be set back when leaving 2D-mode 327 glEnable(GL_TEXTURE_2D);328 329 /* This allows alpha blending of 2D textures with the scene */330 glEnable(GL_BLEND);331 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);332 327 333 328 glViewport(0, 0, screen->w, screen->h); … … 351 346 void GraphicsEngine::leave2DMode() 352 347 { 348 glMatrixMode(GL_PROJECTION); 349 glPopMatrix(); 350 353 351 glMatrixMode(GL_MODELVIEW); 354 glPopMatrix();355 356 glMatrixMode(GL_PROJECTION);357 352 glPopMatrix(); 358 353 … … 444 439 this->geTextCFPS = TextEngine::getInstance()->createText("fonts/arial_black.ttf", 15, TEXT_DYNAMIC, 0, 255, 0); 445 440 this->geTextCFPS->setAlignment(TEXT_ALIGN_LEFT); 446 this->geTextCFPS->setPosition(5, 5 00);441 this->geTextCFPS->setPosition(5, 5); 447 442 this->geTextMaxFPS = TextEngine::getInstance()->createText("fonts/arial_black.ttf", 15, TEXT_DYNAMIC, 0, 255, 0); 448 443 this->geTextMaxFPS->setAlignment(TEXT_ALIGN_LEFT); 449 this->geTextMaxFPS->setPosition(5, 530);444 this->geTextMaxFPS->setPosition(5, 35); 450 445 this->geTextMinFPS = TextEngine::getInstance()->createText("fonts/arial_black.ttf", 35, TEXT_DYNAMIC, 0, 255, 0); 451 446 this->geTextMinFPS->setAlignment(TEXT_ALIGN_LEFT); 452 this->geTextMinFPS->setPosition(5, 560);447 this->geTextMinFPS->setPosition(5, 65); 453 448 #endif /* NO_TEXT */ 454 449 } -
orxonox/trunk/src/lib/graphics/graphics_engine.h
r4833 r4834 68 68 69 69 /** \brief swaps the GL_BUFFERS */ 70 static void swapBuffers() { SDL_GL_SwapBuffers(); };70 inline static void swapBuffers() { SDL_GL_SwapBuffers(); }; 71 71 72 72 void process(const Event &event); -
orxonox/trunk/src/lib/graphics/importer/material.cc
r4746 r4834 57 57 { 58 58 PRINTF(4)("delete Material %s.\n", this->getName()); 59 59 60 if (this->diffuseTexture) 60 61 ResourceManager::getInstance()->unload(this->diffuseTexture); 62 if (this->ambientTexture) 63 ResourceManager::getInstance()->unload(this->ambientTexture); 64 if (this->specularTexture) 65 ResourceManager::getInstance()->unload(this->specularTexture); 61 66 } 62 67 … … 267 272 ResourceManager::getInstance()->unload(this->diffuseTexture); 268 273 269 //! \todo check if RESOURCE MANAGER is availiable 270 //! \todo Textures from .mtl-file need special care. 271 this->diffuseTexture = (Texture*)ResourceManager::getInstance()->load(dMap, IMAGE); 274 //! @todo check if RESOURCE MANAGER is availiable 275 //! @todo Textures from .mtl-file need special care. 276 if (dMap!= NULL) 277 this->diffuseTexture = (Texture*)ResourceManager::getInstance()->load(dMap, IMAGE); 278 else 279 this->diffuseTexture = NULL; 272 280 } 273 281 -
orxonox/trunk/src/lib/graphics/importer/model.cc
r4822 r4834 159 159 160 160 this->materialList = new tList<Material>; 161 this->materialsExtern = false; 161 162 162 163 if (this->type == MODEL_VERTEX_ARRAY) … … 186 187 187 188 // deleting the MaterialList 188 PRINTF(5)("Deleting Materials.\n"); 189 tIterator<Material>* tmpIt = this->materialList->getIterator(); 190 Material* material = tmpIt->nextElement(); 191 192 //! \todo do we really have to delete this material?? 193 while(material) 189 if (!this->materialsExtern) 190 { 191 PRINTF(5)("Deleting Materials.\n"); 192 193 tIterator<Material>* tmpIt = this->materialList->getIterator(); 194 Material* material = tmpIt->nextElement(); 195 //! @todo do we really have to delete this material?? 196 while(material) 194 197 { 195 198 delete material; 196 199 material = tmpIt->nextElement(); 197 200 } 198 delete tmpIt; 201 delete tmpIt; 202 } 199 203 delete materialList; 200 204 delete this->pModelInfo; … … 356 360 /** 357 361 \brief finalizes an Model. 358 This funcion is needed, to delete all the Lists, and arrays that are no more needed because they are already imported into openGL. This will be applied at the end of the importing Process. 362 * This funcion is needed, to delete all the Lists, and arrays that are no more 363 * needed because they are already imported into openGL. 364 * This will be applied at the end of the importing Process. 359 365 */ 360 366 bool Model::cleanup() … … 372 378 \param material the Material to add 373 379 \returns the added material 374 375 !! beware the Material will be deleted when the Model gets deleted 380 * 381 * this also tells this Model, that all the Materials are handled externally 382 * with this option set the Materials will not be deleted with the Model. 383 * !! -> NO MATERIALS GET DELETED WITH ONE CALL TO THIS FUNCTION !! 376 384 */ 377 385 Material* Model::addMaterial(Material* material) 378 386 { 379 387 this->materialList->add(material); 388 this->materialsExtern = true; 380 389 return material; 381 390 } -
orxonox/trunk/src/lib/graphics/importer/model.h
r4830 r4834 190 190 191 191 tList<Material>* materialList; //!< A list for all the Materials in this Model 192 bool materialsExtern; //!< If the materials given to this Object are extern. 192 193 }; 193 194 -
orxonox/trunk/src/lib/graphics/text_engine.cc
r4830 r4834 919 919 // entering 3D-mode 920 920 GraphicsEngine::enter2DMode(); 921 glEnable(GL_TEXTURE_2D); 922 glEnable(GL_BLEND); 923 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 924 921 925 // drawing all the texts 922 926 tIterator<Text>* textIterator = textList->getIterator(); -
orxonox/trunk/src/lib/particles/particle_engine.cc
r4746 r4834 96 96 } 97 97 } 98 99 100 98 101 99 /** -
orxonox/trunk/src/story_entities/world.cc
r4833 r4834 69 69 #include "class_list.h" 70 70 71 #include "crosshair.h"72 Crosshair* crosshair=NULL;73 74 71 75 72 using namespace std; … … 207 204 208 205 ResourceManager::getInstance()->unloadAllByPriority(RP_LEVEL); 209 210 211 212 crosshair=NULL;213 206 } 214 207 … … 242 235 LoadParam<World>(root, "identifier", this, &World::setStoryID) 243 236 .describe("Sets the StoryID of this world"); 237 244 238 LoadParam<World>(root, "nextid", this, &World::setNextStoryID) 245 239 .describe("Sets the ID of the next world"); 240 246 241 LoadParam<World>(root, "path", this, &World::setPath) 247 242 .describe("The Filename of this World (relative from the data-dir)"); … … 278 273 279 274 GraphicsEngine::getInstance()->displayFPS(true); 280 281 if (!crosshair)282 crosshair = new Crosshair();283 275 } 284 276 … … 859 851 ParticleEngine::getInstance()->draw(); 860 852 861 crosshair->draw();862 853 863 854 TextEngine::getInstance()->draw(); … … 1055 1046 1056 1047 1057 crosshair->tick(this->dtS);1058 1059 1048 /** actualy the Graphics Engine should tick the world not the other way around... 1060 1049 but since we like the things not too complicated we got it this way around -
orxonox/trunk/src/util/loading/load_param.h
r4746 r4834 34 34 //! macro that makes it even more easy to load a Parameter 35 35 /** 36 \param className the name of the class to load37 \param parameterName the name of the parameter to load as written in the XML-file38 \param function the function to call39 */36 * @param className the name of the class to load 37 * @param parameterName the name of the parameter to load as written in the XML-file 38 * @param function the function to call 39 */ 40 40 #define LOAD_PARAM(className, parameterName, paramFunction) \ 41 41 LoadParam<className>(root, #parameterName, this, &className::paramFunction) 42 43 /** 44 * this Starts a Cycle in the Loading Process 45 * be aware, that in the cycle the first parameter of load_param should because 46 * called element, and that you must say true at the Fith parameter, or it will fail 47 * also you will have to close the Cycle again with LOAD_PARAM_END_CYCLE 48 */ 49 #define LOAD_PARAM_START_CYCLE const TiXmlElement* element; \ 50 element = root->FirstChildElement(); \ 51 while( element != NULL) \ 52 { 53 /** 54 * closes a LoadParam Loop 55 * @see LOAD_PARAM_START_CYCLE 56 */ 57 #define LOAD_PARAM_END_CYCLE element = element->NextSiblingElement(); \ 58 } 59 60 42 61 43 62 /** -
orxonox/trunk/src/util/track/track_manager.cc
r4832 r4834 394 394 \param root the TiXmlElement to load the Data from 395 395 */ 396 bool TrackManager::loadParams( TiXmlElement* root) 397 { 398 TiXmlElement* element; 399 TiXmlNode* container; 396 bool TrackManager::loadParams(const TiXmlElement* root) 397 { 400 398 double x, y, z, d; 401 399 402 element = root->FirstChildElement(); 403 while( element != NULL) 404 { 400 LOAD_PARAM_START_CYCLE 401 405 402 LoadParam<TrackManager>(element, "WorkOn", this, &TrackManager::workOnS, true) 406 403 .describe("Selects a TrackElement (by name) to work on"); … … 448 445 } 449 446 */ 450 element = element->NextSiblingElement(); 451 } 452 447 LOAD_PARAM_END_CYCLE; 453 448 } 454 449 -
orxonox/trunk/src/util/track/track_manager.h
r4833 r4834 139 139 inline static TrackManager* getInstance() { if (!singletonRef) singletonRef = new TrackManager(); return singletonRef; }; 140 140 141 bool loadParams( TiXmlElement* root);141 bool loadParams(const TiXmlElement* root); 142 142 143 143 // Methods to change the Path (initialisation) -
orxonox/trunk/src/world_entities/player.cc
r4826 r4834 54 54 55 55 //weapons: 56 this->weaponMan = new WeaponManager();57 56 Weapon* wpRight = new TestGun(this, Vector(-2.6, 0.1, 3.0), Quaternion(), 0); 58 57 Weapon* wpLeft = new TestGun(this, Vector(-2.6, 0.1, -3.0), Quaternion(), 1); … … 90 89 91 90 //weapons: 92 this->weaponMan = new WeaponManager();93 91 Weapon* wpRight = new TestGun(this, Vector(-2.6, 0.1, 3.0), Quaternion(), 0); 94 92 Weapon* wpLeft = new TestGun(this, Vector(-2.6, 0.1, -3.0), Quaternion(), 1); … … 114 112 this->bWeaponChange = false; 115 113 acceleration = 10.0; 114 115 116 this->weaponMan = new WeaponManager(); 116 117 } 117 118 -
orxonox/trunk/src/world_entities/player.h
r4818 r4834 75 75 76 76 Crosshair* crosshair; //!< the crosshair of the player 77 78 77 }; 79 78 -
orxonox/trunk/src/world_entities/weapons/crosshair.cc
r4832 r4834 43 43 } 44 44 45 46 45 /** 47 46 * destroys a Crosshair … … 68 67 69 68 this->rotation = 0; 70 this-> rotationSpeed = 5;69 this->setRotationSpeed(5); 71 70 this->setSize(GraphicsEngine::getInstance()->getResolutionX()/10.0); 72 71 … … 155 154 void Crosshair::tick(float dt) 156 155 { 156 // let the crosshair rotate 157 157 this->rotation += dt * rotationSpeed; 158 158 159 159 160 161 } 162 163 /** 164 * draws the crosshair 165 */ 166 void Crosshair::draw() 167 { 168 /* 169 const PNode* camera = State::getInstance()->getCamera(); //!< \todo MUST be different 170 Vector cameraPos = camera->getAbsCoor(); 171 Vector cameraTargetPos = State::getInstance()->getCameraTarget()->getAbsCoor(); 172 Vector view = cameraTargetPos - cameraPos; 173 Vector up = Vector(0, 1, 0); 174 up = camera->getAbsDir().apply(up); 175 Vector h = up.cross(view); 176 Vector v = h.cross(view); 177 h.normalize(); 178 v.normalize(); 179 180 float px = (position2D[0]-GraphicsEngine::getInstance()->getResolutionX()/2)*.05; 181 float py = -(position2D[1]-GraphicsEngine::getInstance()->getResolutionY()/2)*.05; 182 183 glBegin(GL_TRIANGLES); 184 glVertex3f(cameraTargetPos.x - h.x*px - v.x*py, 185 cameraTargetPos.y - h.y*px - v.y*py, 186 cameraTargetPos.z - h.z*px - v.z*py); 187 188 glVertex3f(cameraTargetPos.x - h.x*(px+1) - v.x*py, 189 cameraTargetPos.y - h.y*(px+1) - v.y*py, 190 cameraTargetPos.z - h.z*(px+1) - v.z*py); 191 192 glVertex3f(cameraTargetPos.x - h.x*px - v.x*(py+1), 193 cameraTargetPos.y - h.y*px - v.y*(py+1), 194 cameraTargetPos.z - h.z*px - v.z*(py+1)); 195 196 glEnd(); 197 198 */ 199 200 201 GraphicsEngine::storeMatrices(); 202 203 /// float z; 204 // glReadPixels ((int)position2D[0], GraphicsEngine::getInstance()->getResolutionY()-(int)position2D[1]-1, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &z); 205 206 207 //cout << z <<" "<< scale << " " << bias<< endl; 208 160 float z; 161 glReadPixels ((int)position2D[0], GraphicsEngine::getInstance()->getResolutionY()-(int)position2D[1]-1, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &z); 162 //cout << z << endl; 209 163 210 164 GLdouble objX, objY, objZ; … … 221 175 this->setAbsCoor(objX, objY, objZ); 222 176 177 178 } 179 180 /** 181 * draws the crosshair 182 */ 183 void Crosshair::draw() 184 { 185 GraphicsEngine::storeMatrices(); 186 187 188 189 223 190 // glBegin(GL_TRIANGLES); 224 191 // glColor3f(1,0,0); … … 228 195 // glEnd(); 229 196 197 this->debugDraw(); 230 198 231 199 GraphicsEngine::enter2DMode(); … … 253 221 glVertex2f(size, size); 254 222 glEnd(); 255 /* 256 glBegin(GL_QUADS); 257 { 258 glColor4f(1,0,0,1); 259 glVertex2f(position2D[0]-10, position2D[1]-10); 260 glVertex2f(position2D[0]+10, position2D[1]-10); 261 glVertex2f(position2D[0]+10, position2D[1]+10); 262 glVertex2f(position2D[0]-10, position2D[1]+10); 263 264 // glVertex2f(pos[0]-10, pos[1]-10); 265 // glVertex2f(pos[0]-10, pos[1]+10); 266 // glVertex2f(pos[0]+10, pos[1]+10); 267 // glVertex2f(pos[0]+10, pos[1]-10); 268 } 269 glEnd(); 270 */ 223 271 224 GraphicsEngine::leave2DMode(); 272 225 } -
orxonox/trunk/src/world_entities/weapons/weapon.cc
r4832 r4834 16 16 17 17 #include "weapon.h" 18 #include "weapon_manager.h"19 18 19 #include "projectile.h" 20 21 #include "load_param.h" 20 22 #include "vector.h" 21 #include "projectile.h"22 23 #include "list.h" 23 24 #include "state.h" -
orxonox/trunk/src/world_entities/weapons/weapon_manager.cc
r4833 r4834 19 19 #include "weapon_manager.h" 20 20 #include "weapon.h" 21 21 #include "crosshair.h" 22 23 #include "load_param.h" 24 #include "factory.h" 22 25 #include "vector.h" 23 26 #include "list.h" … … 53 56 this->configs[i].slots[j] = NULL; 54 57 } 55 } 56 58 59 // crosshair being a PNode it must not be deleted (this is because PNodes delete themselves.) 60 //delete this->crosshair; 61 } 62 63 /** 64 * initializes the WeaponManager 65 */ 57 66 void WeaponManager::init() 58 67 { … … 66 75 } 67 76 this->currConfID = W_CONFIG0; 68 77 this->crosshair = new Crosshair(); 78 } 79 80 /** 81 * 82 * @param root the XML-element to load from 83 */ 84 void WeaponManager::loadParams(const TiXmlElement* root) 85 { 86 static_cast<BaseObject*>(this)->loadParams(root); 87 88 LoadParam<WeaponManager>(root, "slot-count", this, &WeaponManager::setSlotCount) 89 .describe("how many slots(cannons) the WeaponManager can handle"); 90 91 LOAD_PARAM_START_CYCLE; 92 93 LoadParam<WeaponManager>(root, "Weapons", this, &WeaponManager::loadWeapons) 94 .describe("loads Weapons"); 95 // LoadParam<WeaponManager>(root, "Weapon", this, &WeaponManager::addWeapon); 96 97 LOAD_PARAM_END_CYCLE; 98 } 99 100 /** 101 * loads a Weapon onto the WeaponManager 102 * @param root the XML-element to load the Weapons from 103 */ 104 void WeaponManager::loadWeapons(const TiXmlElement* root) 105 { 106 LOAD_PARAM_START_CYCLE; 107 108 Weapon* newWeapon = dynamic_cast<Weapon*>(Factory::getFirst()->fabricate(element)); 109 110 111 112 LOAD_PARAM_END_CYCLE; 113 } 114 115 116 /** 117 * sets the number of Slots the WeaponManager has 118 * @param nrOfSlots the number of slots 119 */ 120 void WeaponManager::setSlotCount(int nrOfSlots) 121 { 122 this->nrOfSlots = nrOfSlots; 69 123 } 70 124 … … 100 154 } 101 155 102 156 /** 157 * removes a Weapon from the WeaponManager 158 */ 103 159 void WeaponManager::removeWeapon(Weapon* weapon, int configID) 104 160 { … … 163 219 if( firingWeapon != NULL) firingWeapon->fire(); 164 220 } 221 this->crosshair->setRotationSpeed(-500); 165 222 } 166 223 … … 178 235 if( w != NULL) w->tick(dt); 179 236 } 237 238 crosshair->tick(dt); 239 crosshair->setRotationSpeed(5); 180 240 } 181 241 … … 193 253 w->draw(); 194 254 } 255 crosshair->draw(); 195 256 } 196 257 -
orxonox/trunk/src/world_entities/weapons/weapon_manager.h
r4833 r4834 32 32 // FORWARD DECLARATION 33 33 class Weapon; 34 class Crosshair; 34 35 35 36 #define W_MAX_SLOTS 8 … … 71 72 void init(); 72 73 void loadParams(const TiXmlElement* root); 74 void loadWeapons(const TiXmlElement* root); 75 76 void setSlotCount(int nrOfSlots); 73 77 74 78 void addWeapon(Weapon* weapon, int configID = W_CONFIG0, int slotID = W_FREE_SLOT); … … 81 85 82 86 private: 87 Crosshair* crosshair; //!< an aim. 88 83 89 int nrOfSlots; //<! number of weapon slots a ship has 84 90 int currConfID; //<! the currently selected config
Note: See TracChangeset
for help on using the changeset viewer.