Index: code/trunk/src/orxonox/objects/worldentities/PongBall.cc
===================================================================
--- code/trunk/src/orxonox/objects/worldentities/PongBall.cc	(revision 3105)
+++ code/trunk/src/orxonox/objects/worldentities/PongBall.cc	(revision 3108)
@@ -33,4 +33,5 @@
 #include "core/GameMode.h"
 #include "objects/gametypes/Gametype.h"
+#include "sound/SoundBase.h"
 
 namespace orxonox
@@ -50,8 +51,17 @@
         this->batID_[1] = OBJECTID_UNKNOWN;
         this->relMercyOffset_ = 0.05;
-        
+
         this->registerVariables();
-    }
-    
+
+        this->sidesound_ = new SoundBase(this);
+        this->sidesound_->loadFile("sounds/pong_side.wav");
+
+        this->batsound_ = new SoundBase(this);
+        this->batsound_->loadFile("sounds/pong_bat.wav");
+
+        this->scoresound_ = new SoundBase(this);
+        this->scoresound_->loadFile("sounds/pong_score.wav");
+    }
+
     void PongBall::registerVariables()
     {
@@ -77,4 +87,5 @@
             {
                 velocity.z = -velocity.z;
+                this->sidesound_->play();
 
                 if (position.z > this->fieldHeight_ / 2)
@@ -98,4 +109,5 @@
                             velocity.x = -velocity.x;
                             velocity.z = distance * distance * sgn(distance) * PongBall::MAX_REL_Z_VELOCITY * this->speed_;
+                            this->batsound_->play();
                         }
                         else if (position.x > this->fieldWidth_ / 2 * (1 + this->relMercyOffset_))
@@ -104,4 +116,5 @@
                             {
                                 this->getGametype()->playerScored(this->bat_[0]->getPlayer());
+                                this->scoresound_->play();
                                 return;
                             }
@@ -116,4 +129,5 @@
                             velocity.x = -velocity.x;
                             velocity.z = distance * distance * sgn(distance) * PongBall::MAX_REL_Z_VELOCITY * this->speed_;
+                            this->batsound_->play();
                         }
                         else if (position.x < -this->fieldWidth_ / 2 * (1 + this->relMercyOffset_))
@@ -121,4 +135,5 @@
                             if (this->getGametype() && this->bat_[1])
                             {
+                                this->scoresound_->play();
                                 this->getGametype()->playerScored(this->bat_[1]->getPlayer());
                                 return;
@@ -142,4 +157,5 @@
           {
             velocity.z = -velocity.z;
+            this->sidesound_->play();
 
             if (position.z > this->fieldHeight_ / 2)
@@ -162,4 +178,5 @@
                   position.x = this->fieldWidth_ / 2;
                   velocity.x = -velocity.x;
+                  this->batsound_->play();
                   velocity.z = distance * distance * sgn(distance) * PongBall::MAX_REL_Z_VELOCITY * this->speed_;
                 }
@@ -172,4 +189,5 @@
                   position.x = -this->fieldWidth_ / 2;
                   velocity.x = -velocity.x;
+                  this->batsound_->play();
                   velocity.z = distance * distance * sgn(distance) * PongBall::MAX_REL_Z_VELOCITY * this->speed_;
                 }
Index: code/trunk/src/orxonox/objects/worldentities/PongBall.h
===================================================================
--- code/trunk/src/orxonox/objects/worldentities/PongBall.h	(revision 3105)
+++ code/trunk/src/orxonox/objects/worldentities/PongBall.h	(revision 3108)
@@ -44,5 +44,5 @@
 
             virtual void tick(float dt);
-            
+
             void registerVariables();
 
@@ -65,5 +65,5 @@
             void setBats(PongBat** bats)
             { this->bat_ = bats; this->batID_[0] = this->bat_[0]->getObjectID(); this->batID_[1] = this->bat_[1]->getObjectID(); }
-            
+
             void applyBats()
             { if(!this->bat_) this->bat_ = new PongBat*[2]; if(this->batID_[0] != OBJECTID_UNKNOWN) this->bat_[0] = dynamic_cast<PongBat*>(Synchronisable::getSynchronisable(this->batID_[0])); if(this->batID_[1] != OBJECTID_UNKNOWN) this->bat_[1] = dynamic_cast<PongBat*>(Synchronisable::getSynchronisable(this->batID_[1])); }
@@ -79,4 +79,8 @@
             unsigned int* batID_;
             float relMercyOffset_;
+
+            SoundBase* sidesound_;
+            SoundBase* batsound_;
+            SoundBase* scoresound_;
     };
 }
