Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Apr 8, 2009, 12:58:47 AM (16 years ago)
Author:
dafrick
Message:

Reverted to revision 2906 (because I'm too stupid to merge correctly, 2nd try will follow shortly. ;))

Location:
code/branches/questsystem5
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • code/branches/questsystem5

  • code/branches/questsystem5/src/orxonox/gamestates/GSRoot.h

    r2907 r2908  
    3131
    3232#include "OrxonoxPrereqs.h"
    33 #include "core/GameState.h"
     33
     34#include <list>
     35#include <OgreLog.h>
     36#include "core/RootGameState.h"
    3437#include "core/OrxonoxClass.h"
    3538
    3639namespace orxonox
    3740{
    38     class _OrxonoxExport GSRoot : public GameState
     41    class _OrxonoxExport GSRoot : public RootGameState, public OrxonoxClass
    3942    {
     43        friend class ClassIdentifier<GSRoot>;
     44
    4045    public:
    41         GSRoot(const std::string& name);
     46        struct statisticsTickInfo
     47        {
     48            uint64_t    tickTime;
     49            uint32_t    tickLength;
     50        };
     51   
     52    public:
     53        GSRoot();
    4254        ~GSRoot();
    4355
    44         void activate();
    45         void deactivate();
    46         void update(const Clock& time);
     56        void exitGame()
     57        { requestState("root"); }
    4758
    4859        // this has to be public because proteced triggers a bug in msvc
     
    5263        float getTimeFactor() { return this->timeFactor_; }
    5364
     65        float getAvgTickTime() { return this->avgTickTime_; }
     66        float getAvgFPS()      { return this->avgFPS_; }
     67
     68        inline void addTickTime(uint32_t length)
     69            { assert(!this->statisticsTickTimes_.empty()); this->statisticsTickTimes_.back().tickLength += length;
     70              this->periodTickTime_+=length; }
     71
    5472    private:
     73        void enter();
     74        void leave();
     75        void ticked(const Clock& time);
     76
     77        void setConfigValues();
     78        void setThreadAffinity(unsigned int limitToCPU);
     79
    5580        float                 timeFactor_;       //!< A factor that sets the gamespeed. 1 is normal.
    5681        bool                  bPaused_;
    5782        float                 timeFactorPauseBackup_;
     83        TclBind*              tclBind_;
     84        TclThreadManager*     tclThreadManager_;
     85        Shell*                shell_;
     86        LuaBind*              luaBind_;
     87
     88        // variables for time statistics
     89        uint64_t              statisticsStartTime_;
     90        std::list<statisticsTickInfo>
     91                              statisticsTickTimes_;
     92        uint32_t              periodTickTime_;
     93        float                 avgFPS_;
     94        float                 avgTickTime_;
     95
     96        // config values
     97        unsigned int          statisticsRefreshCycle_;
     98        unsigned int          statisticsAvgLength_;
    5899
    59100        // console commands
     101        ConsoleCommand*       ccExit_;
     102        ConsoleCommand*       ccSelectGameState_;
    60103        ConsoleCommand*       ccSetTimeFactor_;
    61104        ConsoleCommand*       ccPause_;
     105    };
     106
     107    class _OrxonoxExport TimeFactorListener : virtual public OrxonoxClass
     108    {
     109        friend class GSRoot;
     110
     111        public:
     112            TimeFactorListener();
     113            virtual ~TimeFactorListener() {}
     114
     115        protected:
     116            virtual void changedTimeFactor(float factor_new, float factor_old) {}
     117            inline float getTimeFactor() const
     118                { return TimeFactorListener::timefactor_s; }
     119
     120        private:
     121            static float timefactor_s;
    62122    };
    63123}
Note: See TracChangeset for help on using the changeset viewer.