Changeset 11315
- Timestamp:
- Dec 1, 2016, 3:08:54 PM (8 years ago)
- Location:
- code/branches/Highscore_HS16
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/Highscore_HS16/data/defaultConfig/orxonox.ini
r11313 r11315 11 11 12 12 [Highscore] 13 tests_[0] = "name1" 14 tests_[1] = "name2" 13 highscores_[0] = "player./.Jump./.0" 15 14 -
code/branches/Highscore_HS16/data/gui/scripts/HighscoreMenu.lua
r11313 r11315 56 56 57 57 function P.onShow() 58 P.nameList = {}59 58 60 59 P.scoreList = {} … … 62 61 63 62 for i=0,orxonox.Highscore:getInstance():getNumberOfHighscores()-1 do 64 table.insert(P.nameList, orxonox.Highscore:getInstance():getHighscore(i)) 65 table.insert(P.scoreList, i) 63 table.insert(P.scoreList, orxonox.Highscore:getInstance():getHighscore(i)) 66 64 67 65 end … … 112 110 local offset = 2 113 111 for k,v in pairs(P.scoreList) do 114 local line = P.createPickupEntry(tabName .. k,k,tag) 115 table.insert(P.linesList, line) 116 line:setYPosition(CEGUI.UDim(0,offset)) 117 offset = offset + line:getHeight():asAbsolute(1)+2 118 pane:addChildWindow(line) 112 113 local splitlist = P.Split(v,"./.") 114 115 if(splitlist[1] ~= name)then --TODO!!!!!!! 116 local line = P.createPickupEntry(tabName .. k,k,tag) 117 table.insert(P.linesList, line) 118 line:setYPosition(CEGUI.UDim(0,offset)) 119 offset = offset + line:getHeight():asAbsolute(1)+2 120 pane:addChildWindow(line) 121 end 122 119 123 end 120 124 … … 166 170 end 167 171 end 168 172 function P.Split(str, delim, maxNb) 173 -- Eliminate bad cases... 174 if string.find(str, delim) == nil then 175 return { str } 176 end 177 if maxNb == nil or maxNb < 1 then 178 maxNb = 0 -- No limit 179 end 180 local result = {} 181 local pat = "(.-)" .. delim .. "()" 182 local nb = 0 183 local lastPos 184 for part, pos in string.gfind(str, pat) do 185 nb = nb + 1 186 result[nb] = part 187 lastPos = pos 188 if nb == maxNb then break end 189 end 190 -- Handle the last field 191 if nb ~= maxNb then 192 result[nb + 1] = string.sub(str, lastPos) 193 end 194 return result 195 end 169 196 function P.HighscoreSelectionChanged(e) 170 197 --local pane = tolua.cast(winMgr:getWindow("orxonox/HighscoreMenuPane"), "CEGUI::ScrollablePane") -
code/branches/Highscore_HS16/src/modules/jump/Jump.cc
r11313 r11315 312 312 cleanup(); 313 313 GSLevel::startMainMenu(); 314 orxout() << "Test Highscore" << endl;315 314 if (Highscore::exists()){ 316 orxout() << "exists" << endl; 317 Highscore::getInstance().storeHighscore("player","jump",sectionNumber_ - 2); 315 int score = this->getScore(this->getPlayer()); 316 if(score > Highscore::getInstance().getHighestScoreOfGame("Jump")) 317 Highscore::getInstance().storeHighscore("player","Jump",score); 318 318 319 } 319 320 Deathmatch::end(); -
code/branches/Highscore_HS16/src/orxonox/Highscore.cc
r11313 r11315 20 20 void Highscore::setConfigValues() 21 21 { 22 SetConfigValue(highscores_, std::vector<std::string>()).description("HighscoreVektor"); 23 } 22 24 23 SetConfigValue(name_, "Test").description("The name of the game"); 24 SetConfigValue(tests_, std::vector<std::string>()).description("Testvektor"); 25 int Highscore::getHighestScoreOfGame(std::string game){ 26 std::string delimiter = "./."; 27 int best = -1; 28 for (std::string score : this->highscores_) 29 { 30 31 score.erase(0, score.find(delimiter) + delimiter.length()); 32 if(game.compare(score.substr(0,score.find(delimiter))) == 0){ 33 score.erase(0, score.find(delimiter) + delimiter.length()); 34 int possibleBest = std::stoi(score); 35 if(possibleBest > best) best = possibleBest; 36 } 37 38 39 } 40 41 return best; 42 25 43 } 44 26 45 void Highscore::storeHighscore(std::string player, std::string level, int points){ 27 ModifyConfigValue( tests_, add, player+"./."+level+"./."+std::to_string(points));46 ModifyConfigValue(highscores_, add, player+"./."+level+"./."+std::to_string(points)); 28 47 } 29 48 /* static std::string Highscore::getName(){ -
code/branches/Highscore_HS16/src/orxonox/Highscore.h
r11313 r11315 15 15 void setConfigValues(); // Inherited function 16 16 void storeHighscore(std::string player, std::string level, int points); 17 18 int getHighestScoreOfGame(std::string game); 17 19 // tolua_begin 18 inline const std::string& getName() {19 return this->name_;20 }21 inline void test(){22 this->storeHighscore("test","t",1);23 }24 20 inline unsigned int getNumberOfHighscores() 25 { return this-> tests_.size(); }21 { return this->highscores_.size(); } 26 22 inline const std::string& getHighscore(unsigned int index) 27 { return this-> tests_[index]; }23 { return this->highscores_[index]; } 28 24 29 25 static Highscore& getInstance() … … 34 30 35 31 private: 36 std::vector<std::string> tests_; 37 std::string name_; 32 std::vector<std::string> highscores_; 38 33 float version_; 39 34 static Highscore* singletonPtr_s;
Note: See TracChangeset
for help on using the changeset viewer.