]> Dogcows Code - chaz/yoink/blobdiff - src/Moof/Engine.cc
stream-based logging classes
[chaz/yoink] / src / Moof / Engine.cc
index de7c0cba94356afdc190110e97afcef3121cdc73..ccfaf81e6d77b0b0b195f4c279a0d183563ac323 100644 (file)
@@ -27,7 +27,8 @@
 *******************************************************************************/
 
 #include <algorithm>
-#include <cstdlib>                     // exit
+#include <cstdlib>                     // exit, srand
+#include <ctime>                       // time
 #include <list>
 #include <string>
 
@@ -41,7 +42,6 @@
 #include "Exception.hh"
 #include "Log.hh"
 #include "Math.hh"
-#include "Random.hh"
 #include "Settings.hh"
 #include "Timer.hh"
 
@@ -69,6 +69,13 @@ public:
                        const char* error = SDL_GetError();
                        throw Exception(ErrorCode::SDL_INIT, error);
                }
+               else
+               {
+                       char vdName[128];
+                       SDL_VideoDriverName(vdName, sizeof(vdName));
+                       logDebug << "initialized SDL; using video driver `"
+                                        << vdName << "'" << std::endl;
+               }
 
                if (FE_Init() != 0)
                {
@@ -81,13 +88,15 @@ public:
                if (!mAlDevice || !mAlContext)
                {
                        const char* error = alcGetString(mAlDevice,alcGetError(mAlDevice));
-                       logError("error while creating audio context: %s", error);
+                       logError << "error while creating audio context: "
+                                        << error << std::endl;
                }
                else
                {
                        alcMakeContextCurrent(mAlContext);
-                       logDebug("opened sound device \"%s\"",
-                                       alcGetString(mAlDevice, ALC_DEFAULT_DEVICE_SPECIFIER));
+                       logDebug << "opened sound device `"
+                                        << alcGetString(mAlDevice, ALC_DEFAULT_DEVICE_SPECIFIER)
+                                        << "'" << std::endl;
                }
 
                // now load the settings the engine needs
@@ -95,8 +104,8 @@ public:
                Settings& settings = Settings::getInstance();
 
                unsigned randomSeed;
-               if (settings.get("rngseed", randomSeed)) setSeed(randomSeed);
-               else setSeed();
+               if (settings.get("rngseed", randomSeed)) srand(randomSeed);
+               else srand(time(0));
 
                Scalar timestep = 80.0;
                settings.get("timestep", timestep);
@@ -190,7 +199,7 @@ public:
 
                                        if (mPrintFps)
                                        {
-                                               logInfo("%d fps", mFps);
+                                               logInfo << mFps << " fps" << std::endl;
                                        }
                                }
 
@@ -210,6 +219,8 @@ public:
                                                Timer::getNextFire()), Timer::ACTUAL);
                }
                while (!mStack.empty());
+
+               mDispatch.dispatch("engine.stopping");
        }
 
        void dispatchEvents()
@@ -271,7 +282,8 @@ public:
        {
                ASSERT(layer && "cannot push null layer");
                mStack.push_front(layer);
-               logDebug("stack: %d [pushed %X]", mStack.size(), layer.get());
+               logDebug << "stack: " << mStack.size()
+                                << " [pushed " << layer.get() << "]" << std::endl;
                layer->pushed(mInterface);
        }
 
@@ -282,7 +294,8 @@ public:
 
                LayerP layer = mStack.front();
                mStack.pop_front();
-               logDebug("stack: %d [popped %X]", mStack.size(), layer.get());
+               logDebug << "stack: " << mStack.size()
+                                << " [popped " << layer.get() << "]" << std::endl;
                layer->popped(mInterface);
 
                if (fixIt) mStackIt = --mStack.begin();
@@ -311,7 +324,8 @@ public:
                                for (it = layers.begin(); it != layers.end(); ++it)
                                {
                                        (*it)->popped(mInterface);
-                                       logDebug("stack: %d [popped %X]", mStack.size(), (*it).get());
+                                       logDebug << "stack: " << mStack.size()
+                                                        << " [popped " << (*it).get() << "]" << std::endl;
                                }
 
                                if (fixIt) mStackIt = --mStack.begin();
@@ -335,7 +349,8 @@ public:
        {
                if (mMaxFps < mTimestep)
                {
-                       logWarning("capping maximum fps to timestep (%f)", mTimestep);
+                       logWarning << "capping maximum fps to timestep ("
+                                          << mTimestep << ")" << std::endl;
                        mMaxFps = mTimestep;
                }
        }
This page took 0.021156 seconds and 4 git commands to generate.