pingus-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Pingus-CVS] r3701 - trunk/pingus/src/screen


From: grumbel at BerliOS
Subject: [Pingus-CVS] r3701 - trunk/pingus/src/screen
Date: Mon, 7 Jul 2008 07:22:34 +0200

Author: grumbel
Date: 2008-07-07 07:22:25 +0200 (Mon, 07 Jul 2008)
New Revision: 3701

Modified:
   trunk/pingus/src/screen/screen_manager.cpp
   trunk/pingus/src/screen/screen_manager.hpp
Log:
Move Input creation into the constructor

Modified: trunk/pingus/src/screen/screen_manager.cpp
===================================================================
--- trunk/pingus/src/screen/screen_manager.cpp  2008-07-07 05:19:53 UTC (rev 
3700)
+++ trunk/pingus/src/screen/screen_manager.cpp  2008-07-07 05:22:25 UTC (rev 
3701)
@@ -33,12 +33,21 @@
 
 ScreenManager::ScreenManager()
   : display_gc(new DrawingContext()),
-    cursor(0)
-    
+    cursor(0)   
 {  
   assert(instance_ == 0);
   instance_ = this;
   cached_action = CA_NONE;
+  
+  input_manager = std::auto_ptr<Input::Manager>(new Input::Manager());
+
+  if (controller_file.empty())
+    input_controller = 
std::auto_ptr<Input::Controller>(input_manager->create_controller(Pathname("controller/default.scm",
 
+                                                                               
                   Pathname::DATA_PATH)));
+  else
+    input_controller = 
std::auto_ptr<Input::Controller>(input_manager->create_controller(Pathname(controller_file,
+                                                                               
                   Pathname::SYSTEM_PATH)));
+
 }
 
 ScreenManager::~ScreenManager ()
@@ -50,18 +59,6 @@
 void
 ScreenManager::display()
 {
-  Input::Manager input_manager;
-
-  Input::Controller* input_controller = 0;
-
-  if (controller_file.empty())
-    input_controller = 
input_manager.create_controller(Pathname("controller/default.scm", 
-                                                                
Pathname::DATA_PATH));
-  else
-    input_controller = 
input_manager.create_controller(Pathname(controller_file,
-                                                                
Pathname::SYSTEM_PATH));
-
-
   show_swcursor(swcursor_enabled);
   DeltaManager delta_manager;
   DeltaManager frame_timer;
@@ -87,7 +84,7 @@
       last_screen = get_current_screen();
             
       // update the input
-      input_manager.update(time_delta);
+      input_manager->update(time_delta);
       std::vector<Input::Event> events = input_controller->poll_events();
       for(std::vector<Input::Event>::iterator i = events.begin(); 
           i != events.end() && last_screen == get_current_screen(); 
@@ -156,8 +153,6 @@
        SDL_Delay(static_cast<Uint32>(1000 *((1 / desired_fps) - 
current_frame_time)));
       }
     }
-
-  delete input_controller;
 }
 
 ScreenPtr

Modified: trunk/pingus/src/screen/screen_manager.hpp
===================================================================
--- trunk/pingus/src/screen/screen_manager.hpp  2008-07-07 05:19:53 UTC (rev 
3700)
+++ trunk/pingus/src/screen/screen_manager.hpp  2008-07-07 05:22:25 UTC (rev 
3701)
@@ -19,10 +19,14 @@
 
 #include "../pingus.hpp"
 #include <memory>
-#include "SDL.h"
 #include <boost/smart_ptr.hpp>
 #include <vector>
 
+namespace Input {
+class Manager;
+class Controller;
+}
+
 class Cursor;
 class Size;
 class DrawingContext;
@@ -35,7 +39,9 @@
 private:
   static ScreenManager* instance_;
 
-  SDL_Surface* screen;
+  std::auto_ptr<Input::Manager>    input_manager;
+  std::auto_ptr<Input::Controller> input_controller;
+
   std::auto_ptr<DrawingContext> display_gc;
   Cursor* cursor;
 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]