Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 12, 2016, 4:07:25 PM (9 years ago)
Author:
binderm
Message:

LevelStatus and levelmanager in two files, LevelStatus saves and changes the actual campaign progress

Location:
code/branches/bindermFS16/src/orxonox
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • code/branches/bindermFS16/src/orxonox/CMakeLists.txt

    r11173 r11186  
    2626  Level.cc
    2727  LevelInfo.cc
     28  LevelStatus.cc
    2829  LevelManager.cc
    2930  Main.cc
     
    6162    LevelInfo.h
    6263    LevelManager.h
     64    LevelStatus.h
    6365    MoodManager.h
    6466    controllers/HumanController.h
  • code/branches/bindermFS16/src/orxonox/LevelManager.cc

    r11181 r11186  
    4747#include "PlayerManager.h"
    4848
     49
    4950namespace orxonox
    5051{
    5152
    52     LevelStatus::LevelStatus()
    53     {
    54         this->won = false;
    55         this->nextLevels.insert(this->nextLevels.begin(),1);
    56     }
    57 
    58     LevelStatus::~LevelStatus()
    59     {}
    60 
    61 
     53//Mission endmission true
    6254    //check if index level is activated...
    6355    int LevelManager::missionactivate(int index)
    6456    {
    65 
    66         if (allLevelStatus_[index].won)
    67             return 1;
    68 
    69         //check if level is activated
    70         for(unsigned int i=0;i<allLevelStatus_.size();i++)
    71         {
    72             std::vector<int> nextLevels=allLevelStatus_[i].nextLevels;
    73             bool won=allLevelStatus_[i].won;
    74             if(nextLevels[index]==1&&won)
    75                 return 1;
    76         };
    77 
    78         //check if level visible but not activated
    79         for(unsigned int i=0;i<allLevelStatus_.size();i++)
    80         {
    81             std::vector<int> nextLevels=allLevelStatus_[i].nextLevels;
    82             bool won=allLevelStatus_[i].won;
    83             if(nextLevels[index]==2&&won)
    84                 return 2;
    85         };
    86         return 0;
     57        updateAllLevelStatus();
     58        int activated = allLevelStatus_[index].activated;
     59        return activated;
     60    }
     61
     62    void LevelManager::updatewon(int lastwon)
     63    {
     64        allLevelStatus_[lastwon].won=true;
     65
     66    }
     67
     68    void LevelManager::updateAllLevelStatus()
     69    {
     70        for(unsigned int i =0;i<allLevelStatus_.size();i++)
     71        {
     72            if(allLevelStatus_[i].won)
     73            {
     74                allLevelStatus_[i].activated=1;
     75                std::vector<int> nextLevels=allLevelStatus_[i].nextLevels;
     76                for(unsigned int j=i+1;j<allLevelStatus_.size();j++)
     77                {
     78                    allLevelStatus_[j].activated=nextLevels[j];
     79                }
     80            }
     81        }
    8782    }
    8883
    8984    //updates the won variable of the corresponding LevelStatus in allLevelStatus_
    90     void LevelManager::setLevelStatus(const int completedLevel)
    91     {
    92         allLevelStatus_[completedLevel].won=true;   
    93     }
     85    void LevelManager::setLevelStatus(const std::string& LevelWon)
     86    {
     87        ModifyConfigValue(lastWonMission_, set, LevelWon); 
     88    }
     89
    9490
    9591    //build up allLevelStatus
     
    9995    {
    10096        LevelStatus level;
    101         allLevelStatus_.assign (10,level);
    102         allLevelStatus_[0].won=true;
    103 
    104        
    105         allLevelStatus_[1].nextLevels.push_back(2);
     97        allLevelStatus_.assign (campaignMissions_.size(),level);
     98        allLevelStatus_[0].activated=1;
     99        //allLevelStatus_[0].won=true;
     100
     101
     102        allLevelStatus_[0].nextLevels.push_back(1);
     103        allLevelStatus_[0].nextLevels.push_back(1);
     104        allLevelStatus_[0].nextLevels.push_back(0);
     105        allLevelStatus_[0].nextLevels.push_back(0);
     106        allLevelStatus_[0].nextLevels.push_back(0);
     107        allLevelStatus_[0].nextLevels.push_back(0);
     108        allLevelStatus_[0].nextLevels.push_back(0);
     109
     110        allLevelStatus_[1].nextLevels.push_back(1);
    106111        allLevelStatus_[1].nextLevels.push_back(2);
    107112        allLevelStatus_[1].nextLevels.push_back(1);
    108         allLevelStatus_[1].nextLevels.push_back(2);
     113        allLevelStatus_[1].nextLevels.push_back(0);
     114        allLevelStatus_[1].nextLevels.push_back(0);
     115        allLevelStatus_[1].nextLevels.push_back(0);
     116        allLevelStatus_[1].nextLevels.push_back(0);
     117
     118        allLevelStatus_[2].nextLevels.push_back(2);
     119        allLevelStatus_[2].nextLevels.push_back(1);
     120        allLevelStatus_[2].nextLevels.push_back(0);
     121        allLevelStatus_[2].nextLevels.push_back(0);
     122        allLevelStatus_[2].nextLevels.push_back(1);
     123        allLevelStatus_[2].nextLevels.push_back(0);
     124        allLevelStatus_[2].nextLevels.push_back(0);
     125
    109126
    110127
     
    159176        SetConfigValue(defaultLevelName_, "missionOne.oxw")
    160177            .description("Sets the pre selection of the level in the main menu.");
    161         SetConfigValue(lastFinishedCampaignMission_,  "")
     178        SetConfigValue(lastWonMission_,  "")
    162179            .description("The last finished mission of a campaign");
    163180        SetConfigValue(campaignMissions_,  std::vector<std::string>())
    164181            .description("The list of missions in the campaign");
     182        SetConfigValue(test_,  std::vector<int>())
     183            .description("The list of missions and their statuses");
     184           
    165185    }
    166186
     
    168188     * @brief Stores the argument in the corresponding config value.
    169189     */
    170     void LevelManager::setLastFinishedCampaignMission(const std::string& lastFinishedCampaignMission)
    171     {
    172         ModifyConfigValue(lastFinishedCampaignMission_, set, lastFinishedCampaignMission);
    173     }
    174 
     190/*    void LevelManager::setLastFinishedCampaignMission(const std::string& lastFinishedCampaignMission)
     191    {
     192        ModifyConfigValue(lastWonMission_, set, lastFinishedCampaignMission);
     193    }
     194*/
    175195
    176196
  • code/branches/bindermFS16/src/orxonox/LevelManager.h

    r11180 r11186  
    4747#include "util/Singleton.h"
    4848#include "core/config/Configurable.h"
     49#include "LevelStatus.h"
    4950
    50 
    51 namespace orxonox
    52 {
    53 
    54     class LevelStatus
    55     {
    56     public:
    57         LevelStatus();
    58         virtual ~LevelStatus();
    59        
    60         bool won;
    61         std::vector<int> nextLevels;
    62 
    63     };
    64 }
    6551
    6652// tolua_begin
     
    9581            virtual ~LevelManager();
    9682
    97             void setLevelStatus(const int integer);
     83            //void setLevelStatus(const int integer);
    9884            void buildallLevelStatus();
     85            void updateAllLevelStatus();
     86            void setLevelStatus(const std::string& LevelWon);
    9987
    10088
     
    10795
    10896            // tolua_begin
     97            void updatewon(int lastwon);
    10998            int missionactivate(int index);
    11099            void setDefaultLevel(const std::string& levelName); //!< Set the default Level.
     
    118107            LevelInfoItem* getAvailableLevelListItem(unsigned int index); //!< Get the LevelInfoItem at the given index in the list of available Levels.
    119108
    120             void setLastFinishedCampaignMission(const std::string& lastFinishedCampaignMission);
    121             inline const std::string& getLastFinishedCampaignMission() const
    122                 { return this->lastFinishedCampaignMission_; }
     109            //void setLastFinishedCampaignMission(const std::string& lastFinishedCampaignMission);
     110            inline const std::string& getLastWonMission() const
     111                { return this->lastWonMission_; }
    123112
    124113            inline unsigned int getNumberOfCampaignMissions()
     
    156145            // config values
    157146            std::string defaultLevelName_;
    158             std::string lastFinishedCampaignMission_;
     147            std::string lastWonMission_;
    159148            std::vector<std::string> campaignMissions_;
    160 
     149            std::vector<int> test_;
    161150            std::vector<LevelStatus> allLevelStatus_;
    162151
  • code/branches/bindermFS16/src/orxonox/gametypes/Mission.cc

    r11180 r11186  
    9191            this->gtinfo_->sendAnnounceMessage("Mission accomplished!");
    9292
    93             LevelManager::getInstance().setLastFinishedCampaignMission(this->getFilename());
     93            //LevelManager::getInstance().setLastFinishedCampaignMission(this->getFilename());
    9494
    9595            //gibt index von bestandenem level weiter
    96             LevelManager::getInstance().setLevelStatus(7);
     96            LevelManager::getInstance().setLevelStatus(this->getFilename());
    9797        }
    9898        else if (!this->gtinfo_->hasEnded())
Note: See TracChangeset for help on using the changeset viewer.