Index: code/branches/presentationHS13/src/modules/pong/Pong.cc
===================================================================
--- code/branches/presentationHS13/src/modules/pong/Pong.cc	(revision 9907)
+++ code/branches/presentationHS13/src/modules/pong/Pong.cc	(revision 9918)
@@ -47,4 +47,5 @@
 #include "PongBot.h"
 #include "PongAI.h"
+
 namespace orxonox
 {
@@ -117,4 +118,5 @@
             }
         }
+
     }
 
Index: code/branches/presentationHS13/src/modules/pong/PongBall.cc
===================================================================
--- code/branches/presentationHS13/src/modules/pong/PongBall.cc	(revision 9907)
+++ code/branches/presentationHS13/src/modules/pong/PongBall.cc	(revision 9918)
@@ -40,4 +40,7 @@
 
 #include "PongBat.h"
+
+#include "sound/WorldSound.h"
+#include "core/XMLPort.h"
 
 namespace orxonox
@@ -66,4 +69,21 @@
 
         this->registerVariables();
+
+        //initialize sound
+        if (GameMode::isMaster())
+             {
+                 this->defScoreSound_ = new WorldSound(this->getContext());
+                 this->defScoreSound_->setVolume(1.0f);
+                 this->defBatSound_ = new WorldSound(this->getContext());
+                 this->defBatSound_->setVolume(0.4f);
+                 this->defBoundarySound_ = new WorldSound(this->getContext());
+                 this->defBoundarySound_->setVolume(0.5f);
+             }
+             else
+             {
+                 this->defScoreSound_ = 0;
+                 this->defBatSound_ = 0;
+                 this->defBoundarySound_ = 0;
+             }
     }
 
@@ -81,4 +101,13 @@
             delete[] this->batID_;
         }
+    }
+
+    //xml port for loading sounds
+    void PongBall::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(PongBall, XMLPort, xmlelement, mode);
+        XMLPortParam(PongBall, "defScoreSound",  setDefScoreSound,  getDefScoreSound,  xmlelement, mode);
+        XMLPortParam(PongBall, "defBatSound",  setDefBatSound,  getDefBatSound,  xmlelement, mode);
+        XMLPortParam(PongBall, "defBoundarySound",  setDefBoundarySound,  getDefBoundarySound,  xmlelement, mode);
     }
 
@@ -117,5 +146,6 @@
         if (position.z > this->fieldHeight_ / 2 || position.z < -this->fieldHeight_ / 2)
         {
-            // Its velocity in z-direction is inverted (i.e. it bounces off).
+            defBoundarySound_->play(); //play boundary sound
+        	// Its velocity in z-direction is inverted (i.e. it bounces off).
             velocity.z = -velocity.z;
             // And its position is set as to not overstep the boundary it has just crossed.
@@ -142,5 +172,6 @@
                     if (fabs(distance) <= 1) // If the bat is there to parry.
                     {
-                        // Set the ball to be exactly at the boundary.
+                        defBatSound_->play(); //play bat sound
+                    	// Set the ball to be exactly at the boundary.
                         position.x = this->fieldWidth_ / 2;
                         // Invert its velocity in x-direction (i.e. it bounces off).
@@ -155,4 +186,5 @@
                     else if (GameMode::isMaster() && position.x > this->fieldWidth_ / 2 * (1 + this->relMercyOffset_))
                     {
+                    	defScoreSound_->play();//play score sound
                         if (this->getGametype() && this->bat_[0])
                         {
@@ -169,5 +201,6 @@
                     if (fabs(distance) <= 1) // If the bat is there to parry.
                     {
-                        // Set the ball to be exactly at the boundary.
+                        defBatSound_->play(); //play bat sound
+                    	// Set the ball to be exactly at the boundary.
                         position.x = -this->fieldWidth_ / 2;
                         // Invert its velocity in x-direction (i.e. it bounces off).
@@ -182,4 +215,5 @@
                     else if (GameMode::isMaster() && position.x < -this->fieldWidth_ / 2 * (1 + this->relMercyOffset_))
                     {
+                    	defScoreSound_->play();//play score sound
                         if (this->getGametype() && this->bat_[1])
                         {
@@ -262,3 +296,54 @@
             this->bat_[1] = orxonox_cast<PongBat*>(Synchronisable::getSynchronisable(this->batID_[1]));
     }
+
+    void PongBall::setDefScoreSound(const std::string &pongSound)
+    {
+        if( defScoreSound_ )
+            defScoreSound_->setSource(pongSound);
+        else
+            assert(0); // This should never happen, because soundpointer is only available on master
+    }
+
+    const std::string& PongBall::getDefScoreSound()
+    {
+        if( defScoreSound_ )
+            return defScoreSound_->getSource();
+        else
+            assert(0);
+        return BLANKSTRING;
+    }
+
+    void PongBall::setDefBatSound(const std::string &pongSound)
+    {
+        if( defBatSound_ )
+            defBatSound_->setSource(pongSound);
+        else
+            assert(0); // This should never happen, because soundpointer is only available on master
+    }
+
+    const std::string& PongBall::getDefBatSound()
+    {
+        if( defBatSound_ )
+            return defBatSound_->getSource();
+        else
+            assert(0);
+        return BLANKSTRING;
+    }
+
+    void PongBall::setDefBoundarySound(const std::string &pongSound)
+    {
+        if( defBoundarySound_ )
+            defBoundarySound_->setSource(pongSound);
+        else
+            assert(0); // This should never happen, because soundpointer is only available on master
+    }
+
+    const std::string& PongBall::getDefBoundarySound()
+    {
+        if( defBoundarySound_ )
+            return defBoundarySound_->getSource();
+        else
+            assert(0);
+        return BLANKSTRING;
+    }
 }
Index: code/branches/presentationHS13/src/modules/pong/PongBall.h
===================================================================
--- code/branches/presentationHS13/src/modules/pong/PongBall.h	(revision 9907)
+++ code/branches/presentationHS13/src/modules/pong/PongBall.h	(revision 9918)
@@ -42,4 +42,5 @@
 #include "worldentities/MovableEntity.h"
 
+
 namespace orxonox
 {
@@ -63,4 +64,6 @@
 
             virtual void tick(float dt);
+
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
 
             /**
@@ -123,4 +126,11 @@
             static const float MAX_REL_Z_VELOCITY;
 
+            void setDefScoreSound(const std::string& engineSound);
+            const std::string& getDefScoreSound();
+            void setDefBatSound(const std::string& engineSound);
+            const std::string& getDefBatSound();
+            void setDefBoundarySound(const std::string& engineSound);
+            const std::string& getDefBoundarySound();
+
         private:
             void registerVariables();
@@ -135,4 +145,7 @@
             unsigned int* batID_; //!< The object IDs of the bats, to be able to synchronize them over the network.
             float relMercyOffset_; //!< Offset, that makes the player not loose, when, in all fairness, he would have.
+            WorldSound* defScoreSound_;
+            WorldSound* defBatSound_;
+            WorldSound* defBoundarySound_;
     };
 }
Index: code/branches/presentationHS13/src/modules/pong/PongScore.cc
===================================================================
--- code/branches/presentationHS13/src/modules/pong/PongScore.cc	(revision 9907)
+++ code/branches/presentationHS13/src/modules/pong/PongScore.cc	(revision 9918)
@@ -41,4 +41,5 @@
 
 #include "Pong.h"
+#include "sound/WorldSound.h" /////////////////////////////
 
 namespace orxonox
Index: code/branches/presentationHS13/src/modules/pong/PongScore.h
===================================================================
--- code/branches/presentationHS13/src/modules/pong/PongScore.h	(revision 9907)
+++ code/branches/presentationHS13/src/modules/pong/PongScore.h	(revision 9918)
@@ -124,4 +124,6 @@
             WeakPtr<PlayerInfo> player1_; //!< Store information about left player permanently.
             WeakPtr<PlayerInfo> player2_; //!< Same for the right player. To end the game properly.
+            WorldSound* scoreSound_;
+
     };
 }
