Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Dec 15, 2008, 1:38:02 AM (16 years ago)
Author:
landauf
Message:
  • fixed a small speedbar-initialization problem
  • added new console-commands:
    • pause
    • suicide
    • addBots [number]
    • killBots [number]
Location:
code/branches/objecthierarchy2/src/orxonox/gamestates
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • code/branches/objecthierarchy2/src/orxonox/gamestates/GSRoot.cc

    r2406 r2462  
    6969        : RootGameState("root")
    7070        , timeFactor_(1.0f)
     71        , bPaused_(false)
     72        , timeFactorPauseBackup_(1.0f)
    7173        , settings_(0)
    7274        , tclBind_(0)
     
    7880
    7981        this->ccSetTimeFactor_ = 0;
     82        this->ccPause_ = 0;
    8083    }
    8184
     
    125128            setThreadAffinity((unsigned int)(limitToCPU - 1));
    126129
    127         // add console commands
    128         FunctorMember<GSRoot>* functor1 = createFunctor(&GSRoot::exitGame);
    129         functor1->setObject(this);
    130         ccExit_ = createConsoleCommand(functor1, "exit");
    131         CommandExecutor::addConsoleCommandShortcut(ccExit_);
    132 
    133         // add console commands
    134         FunctorMember01<GameStateBase, const std::string&>* functor2 = createFunctor(&GameStateBase::requestState);
    135         functor2->setObject(this);
    136         ccSelectGameState_ = createConsoleCommand(functor2, "selectGameState");
    137         CommandExecutor::addConsoleCommandShortcut(ccSelectGameState_);
    138 
    139         // time factor console command
    140         FunctorMember<GSRoot>* functor = createFunctor(&GSRoot::setTimeFactor);
    141         functor->setObject(this);
    142         ccSetTimeFactor_ = createConsoleCommand(functor, "setTimeFactor");
    143         CommandExecutor::addConsoleCommandShortcut(ccSetTimeFactor_).accessLevel(AccessLevel::Offline).defaultValue(0, 1.0);;
     130        {
     131            // add console commands
     132            FunctorMember<GSRoot>* functor = createFunctor(&GSRoot::exitGame);
     133            functor->setObject(this);
     134            this->ccExit_ = createConsoleCommand(functor, "exit");
     135            CommandExecutor::addConsoleCommandShortcut(this->ccExit_);
     136        }
     137
     138        {
     139            // add console commands
     140            FunctorMember01<GameStateBase, const std::string&>* functor = createFunctor(&GameStateBase::requestState);
     141            functor->setObject(this);
     142            this->ccSelectGameState_ = createConsoleCommand(functor, "selectGameState");
     143            CommandExecutor::addConsoleCommandShortcut(this->ccSelectGameState_);
     144        }
     145
     146        {
     147            // time factor console command
     148            FunctorMember<GSRoot>* functor = createFunctor(&GSRoot::setTimeFactor);
     149            functor->setObject(this);
     150            this->ccSetTimeFactor_ = createConsoleCommand(functor, "setTimeFactor");
     151            CommandExecutor::addConsoleCommandShortcut(this->ccSetTimeFactor_).accessLevel(AccessLevel::Offline).defaultValue(0, 1.0);
     152        }
     153
     154        {
     155            // time factor console command
     156            FunctorMember<GSRoot>* functor = createFunctor(&GSRoot::pause);
     157            functor->setObject(this);
     158            this->ccPause_ = createConsoleCommand(functor, "pause");
     159            CommandExecutor::addConsoleCommandShortcut(this->ccPause_).accessLevel(AccessLevel::Offline);
     160        }
    144161    }
    145162
     
    161178            delete this->ccSetTimeFactor_;
    162179            this->ccSetTimeFactor_ = 0;
     180        }
     181
     182        if (this->ccPause_)
     183        {
     184            delete this->ccPause_;
     185            this->ccPause_ = 0;
    163186        }
    164187    }
     
    229252        if (Core::isMaster())
    230253        {
    231             TimeFactorListener::timefactor_s = factor;
    232 
    233             for (ObjectList<TimeFactorListener>::iterator it = ObjectList<TimeFactorListener>::begin(); it != ObjectList<TimeFactorListener>::end(); ++it)
    234                 it->changedTimeFactor(factor, this->timeFactor_);
    235 
    236             this->timeFactor_ = factor;
     254            if (!this->bPaused_)
     255            {
     256                TimeFactorListener::timefactor_s = factor;
     257
     258                for (ObjectList<TimeFactorListener>::iterator it = ObjectList<TimeFactorListener>::begin(); it != ObjectList<TimeFactorListener>::end(); ++it)
     259                    it->changedTimeFactor(factor, this->timeFactor_);
     260
     261                this->timeFactor_ = factor;
     262            }
     263            else
     264                this->timeFactorPauseBackup_ = factor;
     265        }
     266    }
     267
     268    void GSRoot::pause()
     269    {
     270        if (Core::isMaster())
     271        {
     272            if (!this->bPaused_)
     273            {
     274                this->timeFactorPauseBackup_ = this->timeFactor_;
     275                this->setTimeFactor(0.0f);
     276                this->bPaused_ = true;
     277            }
     278            else
     279            {
     280                this->bPaused_ = false;
     281                this->setTimeFactor(this->timeFactorPauseBackup_);
     282            }
    237283        }
    238284    }
  • code/branches/objecthierarchy2/src/orxonox/gamestates/GSRoot.h

    r2406 r2462  
    5050        // when taking the function address.
    5151        void setTimeFactor(float factor);
     52        void pause();
    5253        float getTimeFactor() { return this->timeFactor_; }
    5354
     
    6162
    6263        float                 timeFactor_;       //!< A factor that sets the gamespeed. 1 is normal.
     64        bool                  bPaused_;
     65        float                 timeFactorPauseBackup_;
    6366        Settings*             settings_;
    6467        TclBind*              tclBind_;
     
    7174        ConsoleCommand*       ccSelectGameState_;
    7275        ConsoleCommand*       ccSetTimeFactor_;
     76        ConsoleCommand*       ccPause_;
    7377    };
    7478
Note: See TracChangeset for help on using the changeset viewer.