Changeset 9889 for code/branches/sfxThilo/src
- Timestamp:
- Dec 9, 2013, 4:06:38 PM (11 years ago)
- Location:
- code/branches/sfxThilo/src
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/sfxThilo/src/modules/pong/PongBall.cc
r9720 r9889 41 41 #include "PongBat.h" 42 42 43 #include "sound/WorldSound.h" //Thilo43 #include "sound/WorldSound.h" 44 44 #include "core/XMLPort.h" 45 45 … … 70 70 this->registerVariables(); 71 71 72 // Thilo72 //initialize sound 73 73 if (GameMode::isMaster()) 74 74 { 75 75 this->defScoreSound_ = new WorldSound(this->getContext()); 76 this->defScoreSound_->set Looping(false);76 this->defScoreSound_->setVolume(1.0f); 77 77 this->defBatSound_ = new WorldSound(this->getContext()); 78 this->defBatSound_->set Looping(false);78 this->defBatSound_->setVolume(0.4f); 79 79 this->defBoundarySound_ = new WorldSound(this->getContext()); 80 this->defBoundarySound_->set Looping(false);80 this->defBoundarySound_->setVolume(0.5f); 81 81 } 82 82 else 83 83 { 84 84 this->defScoreSound_ = 0; 85 this->defBatSound_ = 0; 86 this->defBoundarySound_ = 0; 85 87 } 86 88 } … … 101 103 } 102 104 103 // Thilo105 //xml port for loading sounds 104 106 void PongBall::XMLPort(Element& xmlelement, XMLPort::Mode mode) 105 107 { … … 144 146 if (position.z > this->fieldHeight_ / 2 || position.z < -this->fieldHeight_ / 2) 145 147 { 146 // Its velocity in z-direction is inverted (i.e. it bounces off). 148 defBoundarySound_->play(); //play boundary sound 149 // Its velocity in z-direction is inverted (i.e. it bounces off). 147 150 velocity.z = -velocity.z; 148 151 // And its position is set as to not overstep the boundary it has just crossed. … … 169 172 if (fabs(distance) <= 1) // If the bat is there to parry. 170 173 { 171 // Set the ball to be exactly at the boundary. 174 defBatSound_->play(); //play bat sound 175 // Set the ball to be exactly at the boundary. 172 176 position.x = this->fieldWidth_ / 2; 173 177 // Invert its velocity in x-direction (i.e. it bounces off). … … 182 186 else if (GameMode::isMaster() && position.x > this->fieldWidth_ / 2 * (1 + this->relMercyOffset_)) 183 187 { 184 defScoreSound_->play();// Thilo188 defScoreSound_->play();//play score sound 185 189 if (this->getGametype() && this->bat_[0]) 186 190 { … … 197 201 if (fabs(distance) <= 1) // If the bat is there to parry. 198 202 { 199 // Set the ball to be exactly at the boundary. 203 defBatSound_->play(); //play bat sound 204 // Set the ball to be exactly at the boundary. 200 205 position.x = -this->fieldWidth_ / 2; 201 206 // Invert its velocity in x-direction (i.e. it bounces off). … … 210 215 else if (GameMode::isMaster() && position.x < -this->fieldWidth_ / 2 * (1 + this->relMercyOffset_)) 211 216 { 212 defScoreSound_->play();// Thilo217 defScoreSound_->play();//play score sound 213 218 if (this->getGametype() && this->bat_[1]) 214 219 { -
code/branches/sfxThilo/src/modules/pong/PongBall.h
r9720 r9889 126 126 static const float MAX_REL_Z_VELOCITY; 127 127 128 void setDefScoreSound(const std::string& engineSound); //Thilo 129 const std::string& getDefScoreSound(); //Thilo 128 void setDefScoreSound(const std::string& engineSound); 129 const std::string& getDefScoreSound(); 130 void setDefBatSound(const std::string& engineSound); 131 const std::string& getDefBatSound(); 132 void setDefBoundarySound(const std::string& engineSound); 133 const std::string& getDefBoundarySound(); 130 134 131 135 private: … … 141 145 unsigned int* batID_; //!< The object IDs of the bats, to be able to synchronize them over the network. 142 146 float relMercyOffset_; //!< Offset, that makes the player not loose, when, in all fairness, he would have. 143 WorldSound* defScoreSound_;//Thilo 147 WorldSound* defScoreSound_; 148 WorldSound* defBatSound_; 149 WorldSound* defBoundarySound_; 144 150 }; 145 151 } -
code/branches/sfxThilo/src/orxonox/MoodManager.h
r9667 r9889 51 51 52 52 private: 53 virtual voidmoodChanged(const std::string& mood) = 0;53 virtual bool moodChanged(const std::string& mood) = 0; 54 54 55 55 static void changedMood(const std::string& mood); -
code/branches/sfxThilo/src/orxonox/items/MultiStateEngine.cc
r9667 r9889 61 61 this->defEngineSndNormal_->setLooping(true); 62 62 this->defEngineSndBoost_->setLooping(true); 63 this->defEngineSndNormal_->setVolume(0.8f); 64 this->defEngineSndBoost_->setVolume(0.5f); 63 65 this->lua_ = new LuaState(); 64 66 } -
code/branches/sfxThilo/src/orxonox/sound/AmbientSound.cc
r8861 r9889 79 79 } 80 80 81 voidAmbientSound::setAmbientSource(const std::string& source)81 bool AmbientSound::setAmbientSource(const std::string& source) 82 82 { 83 83 this->ambientSource_ = source; 84 this->moodChanged(MoodManager::getInstance().getMood());84 return(this->moodChanged(MoodManager::getInstance().getMood())); 85 85 } 86 86 87 voidAmbientSound::moodChanged(const std::string& mood)87 bool AmbientSound::moodChanged(const std::string& mood) 88 88 { 89 89 if (GameMode::playsSound()) … … 95 95 orxout(user_info) << "Loading ambient sound " << path << "..." << endl; // TODO: make this output internal if we implement sound streaming 96 96 this->setSource(path); 97 98 // all went fine 99 return true; 97 100 } 98 101 else 99 102 { 100 103 orxout(internal_warning, context::sound) << this->ambientSource_ << ": Not a valid name! Ambient sound will not change." << endl; 104 105 // everything went southways 106 return false; 101 107 } 102 108 } 109 return false; 103 110 } 104 111 -
code/branches/sfxThilo/src/orxonox/sound/AmbientSound.h
r7856 r9889 54 54 void pause(); 55 55 56 voidsetAmbientSource(const std::string& source);56 bool setAmbientSource(const std::string& source); 57 57 inline const std::string& getAmbientSource() const 58 58 { return this->ambientSource_; } … … 68 68 void preDestroy(); 69 69 float getRealVolume(); 70 voidmoodChanged(const std::string& mood);70 bool moodChanged(const std::string& mood); 71 71 inline void ambientSourceChanged() 72 72 { this->setAmbientSource(this->ambientSource_); } -
code/branches/sfxThilo/src/orxonox/sound/BaseSound.cc
r9667 r9889 47 47 BaseSound::BaseSound() 48 48 : bPooling_(false) 49 , volume_( 1.0)49 , volume_(0.7) 50 50 , bLooping_(false) 51 51 , state_(Stopped) -
code/branches/sfxThilo/src/orxonox/sound/SoundManager.cc
r9667 r9889 218 218 .description("Defines the overall volume.") 219 219 .callback(this, &SoundManager::checkSoundVolumeValidity); 220 SetConfigValueAlias(volume_[SoundType::Music], "ambientVolume_", 1.0f)220 SetConfigValueAlias(volume_[SoundType::Music], "ambientVolume_", 0.7f) 221 221 .description("Defines the ambient volume.") 222 222 .callback(this, &SoundManager::checkAmbientVolumeValidity); -
code/branches/sfxThilo/src/orxonox/sound/WorldAmbientSound.cc
r9667 r9889 33 33 #include "core/XMLPort.h" 34 34 #include "AmbientSound.h" 35 #include "core/command/ConsoleCommand.h" 36 #include <exception> 37 35 38 36 39 namespace orxonox 37 40 { 41 SetConsoleCommand("WorldAmbientSound", "nextsong", &WorldAmbientSound::nextSong); 42 38 43 RegisterClass(WorldAmbientSound); 39 44 … … 44 49 this->ambientSound_ = new AmbientSound(); 45 50 this->registerVariables(); 51 soundList_.push_back("Earth.ogg"); 52 soundList_.push_back("Jupiter.ogg"); 53 soundList_.push_back("Mars.ogg"); 54 soundList_.push_back("allgorythm-lift_up.ogg"); 55 soundList_.push_back("allgorythm-resonance_blaster.ogg"); 56 soundList_.push_back("AlphaCentauri.ogg"); 57 soundList_.push_back("Asteroid_rocks.ogg"); 58 soundList_.push_back("Ganymede.ogg"); 59 soundList_.push_back("luke_grey_-_hypermode.ogg"); 60 46 61 } 47 48 62 WorldAmbientSound::~WorldAmbientSound() 49 63 { … … 51 65 { 52 66 this->ambientSound_->destroy(); 67 WorldAmbientSound::soundList_.clear(); 53 68 } 54 69 } … … 94 109 this->ambientSound_->stop(); 95 110 } 111 112 void WorldAmbientSound::nextSong() 113 { 114 115 //HACK: Assuption - there is only one WorldAmbientSound in a level and only one level is used. 116 for (ObjectList<WorldAmbientSound>::iterator it = ObjectList<WorldAmbientSound>::begin(); 117 it != ObjectList<WorldAmbientSound>::end(); ++it) 118 { 119 while(it->ambientSound_->setAmbientSource(WorldAmbientSound::soundList_[WorldAmbientSound::soundNumber_]) == false){ 120 WorldAmbientSound::soundNumber_ = (WorldAmbientSound::soundNumber_ + 1) % WorldAmbientSound::soundList_.size(); 121 } 122 WorldAmbientSound::soundNumber_ = (WorldAmbientSound::soundNumber_ + 1) % WorldAmbientSound::soundList_.size(); 123 } 124 } 96 125 } -
code/branches/sfxThilo/src/orxonox/sound/WorldAmbientSound.h
r9667 r9889 34 34 #include "core/BaseObject.h" 35 35 #include "network/synchronisable/Synchronisable.h" 36 #include <string> 37 #include <vector> 38 36 39 37 40 namespace orxonox … … 54 57 void play(); 55 58 59 //This function changes the current ambient song. 60 //You can call nextSong() active in the level 61 //by pressing the key 'M'. 62 static void nextSong(); 63 56 64 private: 57 65 void registerVariables(); 58 66 67 //Vector with the diffrent available level sounds. 68 //The sound names are pushed in the WorldAmbientSound-constructor. 69 static std::vector<std::string> soundList_; 70 71 // This value will be initialized below, don't make this into 72 // a const, since we want to change it in nextSong(). 73 static int soundNumber_; 74 75 59 76 AmbientSound* ambientSound_; 60 77 }; 78 79 // This is an initialization for the soundnumber variable. Since it is 80 // static, we have to initialize it this way. 81 int WorldAmbientSound::soundNumber_ = 0; 82 std::vector<std::string> WorldAmbientSound::soundList_; 83 61 84 } 62 85 -
code/branches/sfxThilo/src/orxonox/sound/WorldSound.cc
r9667 r9889 81 81 alSourcef(this->audioSource_, AL_REFERENCE_DISTANCE, refDist); 82 82 // TODO: 500 is very magical here. Derive something better 83 alSourcef(this->audioSource_, AL_MAX_DISTANCE, refDist * 500);83 alSourcef(this->audioSource_, AL_MAX_DISTANCE, refDist * 20); 84 84 } 85 85 this->tick(0); // update position, orientation and velocity -
code/branches/sfxThilo/src/orxonox/weaponsystem/WeaponMode.cc
r9667 r9889 79 79 this->defSndWpnFire_ = new WorldSound(this->getContext()); 80 80 this->defSndWpnFire_->setLooping(false); 81 this->defSndWpnFire_->setVolume(0.8f); 81 82 this->bSoundAttached_ = false; 82 83 } -
code/branches/sfxThilo/src/orxonox/worldentities/pawns/Pawn.cc
r9667 r9889 46 46 #include "weaponsystem/WeaponPack.h" 47 47 #include "weaponsystem/WeaponSet.h" 48 #include "sound/WorldSound.h" 48 49 49 50 #include "controllers/FormationController.h" … … 100 101 101 102 this->setSyncMode(ObjectDirection::Bidirectional); // needed to synchronise e.g. aimposition 103 104 if (GameMode::isMaster()) 105 { 106 this->explosionSound_ = new WorldSound(this->getContext()); 107 this->explosionSound_->setVolume(1.0f); 108 } 109 else 110 { 111 this->explosionSound_ = 0; 112 } 102 113 } 103 114 … … 109 120 this->weaponSystem_->destroy(); 110 121 } 122 111 123 } 112 124 … … 135 147 XMLPortParam(Pawn, "reloadwaittime", setReloadWaitTime, getReloadWaitTime, xmlelement, mode).defaultValues(1.0f); 136 148 149 XMLPortParam(Pawn, "explosionSound", setExplosionSound, getExplosionSound, xmlelement, mode); 150 137 151 XMLPortParam ( RadarViewable, "radarname", setRadarName, getRadarName, xmlelement, mode ); 138 152 } 153 139 154 140 155 void Pawn::registerVariables() … … 290 305 void Pawn::kill() 291 306 { 292 307 this->damage(this->health_); 293 308 this->death(); 294 309 } … … 314 329 if (this->getGametype() && this->getGametype()->allowPawnDeath(this, this->lastHitOriginator_)) 315 330 { 316 // Set bAlive_ to false and wait for PawnManager to do the destruction 331 explosionSound_->play(); 332 // Set bAlive_ to false and wait for PawnManager to do the destruction 317 333 this->bAlive_ = false; 318 334 … … 527 543 528 544 545 void Pawn::setExplosionSound(const std::string &explosionSound) 546 { 547 if(explosionSound_ ) 548 explosionSound_->setSource(explosionSound); 549 else 550 assert(0); // This should never happen, because soundpointer is only available on master 551 } 552 553 const std::string& Pawn::getExplosionSound() 554 { 555 if( explosionSound_ ) 556 return explosionSound_->getSource(); 557 else 558 assert(0); 559 return BLANKSTRING; 560 } 561 529 562 530 563 } -
code/branches/sfxThilo/src/orxonox/worldentities/pawns/Pawn.h
r9667 r9889 36 36 #include "interfaces/RadarViewable.h" 37 37 #include "worldentities/ControllableEntity.h" 38 38 39 39 40 namespace orxonox // tolua_export … … 178 179 virtual void changedVisibility(); 179 180 181 void setExplosionSound(const std::string& engineSound); 182 const std::string& getExplosionSound(); 183 180 184 protected: 181 185 virtual void preDestroy(); … … 231 235 232 236 Vector3 aimPosition_; 237 238 WorldSound* explosionSound_; 239 233 240 }; // tolua_export 234 241 } // tolua_export
Note: See TracChangeset
for help on using the changeset viewer.