Index: code/branches/tgidronFS16/data/levels/Hover.oxw
===================================================================
--- code/branches/tgidronFS16/data/levels/Hover.oxw	(revision 11194)
+++ code/branches/tgidronFS16/data/levels/Hover.oxw	(revision 11196)
@@ -3,5 +3,5 @@
  description = "Level for Minigame Hover"
  tags = "minigame"
- screenshot = "Hover.png"
+ screenshot = "hover.png"
 />
 
@@ -178,4 +178,5 @@
           cellSize="<?lua print(MAZE_CELL_SIZE)?>"
           cellHeight="<?lua print(MAZE_CELL_HEIGHT)?>"
+          wallThickness="<?lua print(MAZE_WALL_THICKNESS)?>"
           obstacletemplate=obstacle
           pickuptemplate=destroyhoverpickup
Index: code/branches/tgidronFS16/data/overlays/HoverHUD.oxo
===================================================================
--- code/branches/tgidronFS16/data/overlays/HoverHUD.oxo	(revision 11194)
+++ code/branches/tgidronFS16/data/overlays/HoverHUD.oxo	(revision 11196)
@@ -87,4 +87,5 @@
      showLives = false
      showLevel = false
+     levelUpgrade = false
 
      />
@@ -100,4 +101,5 @@
      showLives = true
      showLevel = false
+     levelUpgrade = false
 
      />
@@ -113,4 +115,19 @@
      showLives = false
      showLevel = true
+     levelUpgrade = false
+
+     />
+
+     <TFlagsLivesLevelHUD
+     position  = "0.3, 0.45"
+     pickpoint = "0.0, 0.0"
+     font      = "ShareTechMono"
+     textsize  = 0.04
+     colour    = "1.0, 1.0, 1.0, 1.0"
+     align     = "left"
+     showFlags = false
+     showLives = false
+     showLevel = false
+     levelUpgrade = true
 
      />
Index: code/branches/tgidronFS16/src/modules/hover/Hover.cc
===================================================================
--- code/branches/tgidronFS16/src/modules/hover/Hover.cc	(revision 11194)
+++ code/branches/tgidronFS16/src/modules/hover/Hover.cc	(revision 11196)
@@ -24,4 +24,5 @@
  *   Co-authors:
  *      Cyrill Burgener
+ *      Tomer Gidron
  *
  */
@@ -64,5 +65,5 @@
         cellHeight = 0;
 
-        bShowLevel = false;
+        bLevelUpgradeHUD = false;
 
         totFlags = 0;
@@ -83,16 +84,7 @@
             cellHeight = this->origin_->getCellHeight();
 
-            /*
-            bool occupiedCells[numCells][numCells];
-
-            for(int i = 0; i < numCells; i++)
-            {
-                for(int j = 0; j < numCells; j++)
-                {
-                    occupiedCells[i][j] = false;
-                }
-            }
-            occupiedCells[0][0] = true;
-            */
+            //TODO
+            //create boolean array/vector to assert that no two objects are placed in the same way
+            
 
             MazeGenerator generator(numCells);
@@ -205,54 +197,30 @@
                 GSLevel::startMainMenu();
             }
-            // Debug
-            orxout() << this->origin_->getPickupTemplate() << endl;
-            orxout() << this->origin_->getPickupRepresentationTemplate() << endl;
-
-
-            orxout() << this->origin_->getPickupTemplateSpeed() << endl;
-            orxout() << this->origin_->getPickupRepresentationTemplateSpeed() << endl;
-
-            orxout() << this->origin_->getObstacleTemplate() << endl;
-            //orxout() << crate->getPosition() << endl;
-        }
-    }
-
-
-    // Start new level
+            
+        }
+    }
+
+
+    // generate new Flags
     void Hover::createFlags()
     {
-        //Generate 5 flags randomly (test only 1 flag)
-
-          /*  do
-            {
-                int i = 0;
-
-                HoverFlag* flag = new HoverFlag(origin_->getContext());
-                int x = rand()%numCells;
-                int y = rand()%numCells;
-                flag->init(x, y, cellSize);
-                flags_.push_back(flag);
-
-                occupiedCells[x][y] = true;
-
-                i++;
-
-            }while( i<5 || occupiedCells[x][y] == true);
-            */
-
-            for ( int i = 0; i < 5; i++ )
-            {
-                HoverFlag* flag = new HoverFlag(origin_->getContext());
-                flag->init(rand()%numCells, rand()%numCells, cellSize);
-                flags_.push_back(flag);
-
-            
-
-                if(flags_[i]->getPosition() == get3dCoordinates(0,0,-60))
-                {
-                    flags_[i]->destroyLater();
-                    flags_.erase(flags_.begin()+i);
-                }
-            }
+        //TODO
+        //Generate flags randomly using bool array
+
+        //Generate 5 flags randomly on field
+        for ( int i = 0; i < 5; i++ )
+        {
+            HoverFlag* flag = new HoverFlag(origin_->getContext());
+            flag->init(rand()%numCells, rand()%numCells, cellSize);
+            flags_.push_back(flag);
+
+            
+
+            if(flags_[i]->getPosition() == get3dCoordinates(0,0,-60))
+            {
+                flags_[i]->destroyLater();
+                flags_.erase(flags_.begin()+i);
+            }
+        }
             
     }
@@ -275,5 +243,4 @@
                     
                     levelUp();
-                    //GSLevel::startMainMenu();
                 }
             }
@@ -287,4 +254,5 @@
     }
 
+    //start new level - call to create new flags
     void Hover::levelUp()
     {
@@ -297,5 +265,10 @@
         createFlags();
         toggleShowLevel();
-        showLevelTimer.setTimer(1.0f, false, createExecutor(createFunctor(&Hover::toggleShowLevel, this)));
+        showLevelTimer.setTimer(2.0f, false, createExecutor(createFunctor(&Hover::toggleShowLevel, this)));
+
+        //spawn one additional crate randomly
+        Pawn* crate = new Pawn(origin_->getContext());
+        crate->addTemplate(origin_->getObstacleTemplate());  
+        crate->setPosition(get3dCoordinates(rand()%numCells, rand()%numCells, 43.0f));
 
     }
@@ -306,4 +279,5 @@
     }
 
+    //if killed, subtract number of lives. If lives == 0, end game
     void Hover::costLife()
     {
Index: code/branches/tgidronFS16/src/modules/hover/Hover.h
===================================================================
--- code/branches/tgidronFS16/src/modules/hover/Hover.h	(revision 11194)
+++ code/branches/tgidronFS16/src/modules/hover/Hover.h	(revision 11196)
@@ -24,4 +24,5 @@
  *   Co-authors:
  *      Cyrill Burgener
+ *      Tomer Gidron
  *
  */
@@ -77,5 +78,5 @@
                 { return this->level; }
 
-            bool bShowLevel;
+            bool bLevelUpgradeHUD;
 
         private:
@@ -97,5 +98,5 @@
             std::vector<PickupSpawner*> pickupSpawners_;
 
-            void toggleShowLevel(){bShowLevel = !bShowLevel;}
+            void toggleShowLevel(){bLevelUpgradeHUD = !bLevelUpgradeHUD;}
 
             Timer showLevelTimer;
Index: code/branches/tgidronFS16/src/modules/hover/HoverOrigin.cc
===================================================================
--- code/branches/tgidronFS16/src/modules/hover/HoverOrigin.cc	(revision 11194)
+++ code/branches/tgidronFS16/src/modules/hover/HoverOrigin.cc	(revision 11196)
@@ -23,5 +23,5 @@
  *      Manuel Meier
  *   Co-authors:
- *      ...
+ *      Tomer Gidron
  *
  */
@@ -46,5 +46,5 @@
         checkGametype();
 
-        //not needed
+        //Initialization of variables (not really needed)
 
         pickupTemplate_ = "";
@@ -66,4 +66,5 @@
         XMLPortParam(HoverOrigin, "cellSize", setCellSize, getCellSize, xmlelement, mode);
         XMLPortParam(HoverOrigin, "cellHeight", setCellHeight, getCellHeight, xmlelement, mode);
+        XMLPortParam(HoverOrigin, "wallThickness", setWallThickness, getWallThickness, xmlelement, mode);
         XMLPortParam(HoverOrigin, "pickuptemplate", setPickupTemplate, getPickupTemplate, xmlelement, mode);
         XMLPortParam(HoverOrigin, "pickuprepresentationtemplate", setPickupRepresentationTemplate, getPickupRepresentationTemplate, xmlelement, mode);
Index: code/branches/tgidronFS16/src/modules/hover/HoverOrigin.h
===================================================================
--- code/branches/tgidronFS16/src/modules/hover/HoverOrigin.h	(revision 11194)
+++ code/branches/tgidronFS16/src/modules/hover/HoverOrigin.h	(revision 11196)
@@ -23,5 +23,5 @@
  *      Manuel Meier
  *   Co-authors:
- *      ...
+ *      Tomer Gidron
  *
  */
@@ -65,4 +65,9 @@
             inline int getCellHeight() const
                 { return this->cellHeight_; }
+
+            inline void setWallTickness(int wallTickness)
+                { this->wallTickness_ = wallTickness; }
+            inline int getWallTickness() const
+                { return this->wallTickness_; }
 
             //pickup template set and get for destroy hover pickup
@@ -124,4 +129,5 @@
             int cellSize_;
             int cellHeight_;
+            int wallThickness_;
 
             // Tempaltes for the destroy hover pickup
Index: code/branches/tgidronFS16/src/modules/hover/TFlagsLivesLevelHUD.cc
===================================================================
--- code/branches/tgidronFS16/src/modules/hover/TFlagsLivesLevelHUD.cc	(revision 11194)
+++ code/branches/tgidronFS16/src/modules/hover/TFlagsLivesLevelHUD.cc	(revision 11196)
@@ -46,4 +46,5 @@
         showLevel_ = true;
         showTotFlags_= true;
+        levelUpgrade_ = true;
     }
 
@@ -55,4 +56,5 @@
         XMLPortParam(TFlagsLivesLevelHUD, "showLives", setShowLives, getShowLives, xmlelement, mode);
         XMLPortParam(TFlagsLivesLevelHUD, "showLevel", setShowLevel, getShowLevel, xmlelement, mode);
+        XMLPortParam(TFlagsLivesLevelHUD, "levelUpgrade", setLevelUpgrade, getLevelUpgrade, xmlelement, mode);
     }
 
@@ -65,4 +67,5 @@
             const std::string& level = multi_cast<std::string>(this->hoverGame_->getLevel());
 
+            //Display total Flags taken
             if(showTotFlags_ == true){
                 setTextSize(0.04);
@@ -72,5 +75,5 @@
             }
 
-
+            //Display remaining lives
             if(showLives_ == true){
                 setTextSize(0.04);
@@ -80,4 +83,5 @@
             }
 
+            //Display current level
             if(showLevel_ == true){
                 setTextSize(0.04);
@@ -88,12 +92,17 @@
             }
             
-            if(this->hoverGame_->bShowLevel)
+            //New Level pop up
+            if(this->hoverGame_->bLevelUpgradeHUD  && levelUpgrade_)
                 {
-                    setTextSize(0.2);
-                    setPosition(Vector2(0.3, 0.55));
-                    std::stringstream sstm;
-                    sstm << "Level " << level;
-                    this->setCaption(sstm.str());
+                setTextSize(0.2);
+                setPosition(Vector2(0.3, 0.45));
+                std::stringstream sstm;
+                sstm << "Level " << level;
+                this->setCaption(sstm.str());
+
+                //TODO
+                //make others stop blinking when new level pop-up is activated
                 }
+
     }
 
Index: code/branches/tgidronFS16/src/modules/hover/TFlagsLivesLevelHUD.h
===================================================================
--- code/branches/tgidronFS16/src/modules/hover/TFlagsLivesLevelHUD.h	(revision 11194)
+++ code/branches/tgidronFS16/src/modules/hover/TFlagsLivesLevelHUD.h	(revision 11196)
@@ -53,5 +53,5 @@
             inline void setShowTot(int totFlags)
                 { this->totFlags_ = totFlags; }
-            /// returns total flags >=0
+            /// returns TOTAL flags >=0
             inline int getShowTot() const
                 { return this->totFlags_; }
@@ -85,4 +85,11 @@
                 { return this->totLevel_; }
 
+            /// sets level Upgrade
+            void setLevelUpgrade(const bool levelUpgrade)
+                { levelUpgrade_ = levelUpgrade; }
+            /// gets level Upgrade
+            const bool getLevelUpgrade() const
+                { return levelUpgrade_; }
+
 
         private:
@@ -93,4 +100,5 @@
             bool showLevel_;
             bool showTotFlags_;
+            bool levelUpgrade_;
     };
 }
