pingus-cvs
[Top][All Lists]
Advanced

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

[Pingus-CVS] CVS: Games/Pingus/src exit_menu.cxx,1.3,1.4 exit_menu.hxx,1


From: grumbel
Subject: [Pingus-CVS] CVS: Games/Pingus/src exit_menu.cxx,1.3,1.4 exit_menu.hxx,1.4,1.5 menu_background.cxx,1.2,1.3 menu_background.hxx,1.3,1.4 pingus_menu_manager.cxx,1.7,1.8 pingus_menu_manager.hxx,1.6,1.7 screen_manager.cxx,1.5,1.6 surface_button.cxx,1.5,1.6
Date: 3 Aug 2002 17:20:39 -0000

Update of /usr/local/cvsroot/Games/Pingus/src
In directory dark:/tmp/cvs-serv16966

Modified Files:
        exit_menu.cxx exit_menu.hxx menu_background.cxx 
        menu_background.hxx pingus_menu_manager.cxx 
        pingus_menu_manager.hxx screen_manager.cxx surface_button.cxx 
Log Message:
fixed exit menu

Index: exit_menu.cxx
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/exit_menu.cxx,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- exit_menu.cxx       30 Jul 2002 01:58:16 -0000      1.3
+++ exit_menu.cxx       3 Aug 2002 17:20:37 -0000       1.4
@@ -22,9 +22,59 @@
 #include "pingus_menu_manager.hxx"
 #include "pingus_resource.hxx"
 
+class ExitMenuYesButton : public GUI::Component
+{
+private:
+  PingusMenuManager* manager;
+public:
+  ExitMenuYesButton (PingusMenuManager* m) 
+    : manager (m)
+  {
+  }
+ 
+  bool is_at (int x, int y) 
+  {
+    return x > 270 && x < 390 && y > 300 && y < 380;
+  }
+
+  void draw () {}
+
+  void on_primary_button_press (int, int)
+  {
+    std::cout << "YES" << std::endl; 
+    manager->exit ();
+  }
+};
+
+class ExitMenuNoButton : public GUI::Component
+{
+private:
+  PingusMenuManager* manager;
+public:
+  ExitMenuNoButton (PingusMenuManager* m)
+    : manager (m)
+  {
+  }
+  
+  bool is_at (int x, int y) 
+  {
+    return x > 430 && x < 540 && y > 300 && y < 380;
+  }
+
+  void draw () {}
+
+  void on_primary_button_press (int, int)
+  {
+    std::cout << "NO" << std::endl; 
+    manager->pop_menu ();
+  }
+};
+
 ExitMenu::ExitMenu (PingusMenuManager* manager)
   : PingusSubMenu (manager)
 {
+  add (new ExitMenuYesButton (manager), true);
+  add (new ExitMenuNoButton (manager), true);
 }
 
 ExitMenu::~ExitMenu ()

Index: exit_menu.hxx
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/exit_menu.hxx,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- exit_menu.hxx       30 Jul 2002 01:58:16 -0000      1.4
+++ exit_menu.hxx       3 Aug 2002 17:20:37 -0000       1.5
@@ -28,7 +28,8 @@
 class ExitMenu : public PingusSubMenu
 {
 private:
-  CL_Surface sur; 
+  CL_Surface sur;
+
 public:
   ExitMenu (PingusMenuManager* manager);
   ~ExitMenu ();

Index: menu_background.cxx
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/menu_background.cxx,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- menu_background.cxx 30 Jul 2002 14:57:25 -0000      1.2
+++ menu_background.cxx 3 Aug 2002 17:20:37 -0000       1.3
@@ -17,12 +17,10 @@
 //  along with this program; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
-
-#include "pingus_menu_manager.hxx"
+#include "menu_background.hxx"
 #include "pingus_resource.hxx"
 
-MenuBackground::MenuBackground (PingusMenuManager* manager)
-  : PingusSubMenu (manager)
+MenuBackground::MenuBackground ()
 {
   layer_manager.add_layer (PingusResource::load_surface ("menu/layer1", 
"core"),  0, 0, 12, 0);
   layer_manager.add_layer (PingusResource::load_surface ("menu/layer2", 
"core"),  0, 150, 25, 0);
@@ -42,14 +40,9 @@
 }
 
 void 
-MenuBackground::update (const GameDelta& delta)
-{
-  layer_manager.update (delta.get_time ());
-}
-
-void 
-MenuBackground::preload ()
+MenuBackground::update (float delta)
 {
+  layer_manager.update (delta);
 }
 
 /* EOF */

Index: menu_background.hxx
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/menu_background.hxx,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- menu_background.hxx 30 Jul 2002 14:57:25 -0000      1.3
+++ menu_background.hxx 3 Aug 2002 17:20:37 -0000       1.4
@@ -21,22 +21,17 @@
 #define HEADER_PINGUS_MENU_BACKGROUND_HXX
 
 #include "layer_manager.hxx"
-#include "pingus_sub_menu.hxx"
-
-class PingusMenuManager;
 
-class MenuBackground 
-  : public PingusSubMenu
+class MenuBackground
 {
 private:
   LayerManager layer_manager;
 public:
-  MenuBackground (PingusMenuManager* manager);
+  MenuBackground ();
   ~MenuBackground ();
 
   void draw ();
-  void update (const GameDelta& delta);
-  void preload ();
+  void update (float delta);
 };
 
 #endif

Index: pingus_menu_manager.cxx
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/pingus_menu_manager.cxx,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- pingus_menu_manager.cxx     1 Aug 2002 21:40:01 -0000       1.7
+++ pingus_menu_manager.cxx     3 Aug 2002 17:20:37 -0000       1.8
@@ -24,17 +24,16 @@
 #include "delta_manager.hxx"
 #include "fade_out.hxx"
 #include "input/controller.hxx"
+#include "screen_manager.hxx"
 #include "pingus_menu_manager.hxx"
 
 PingusMenuManager* PingusMenuManager::instance_ = 0;
 
 PingusMenuManager::PingusMenuManager ()
   : event_register_counter (0),
-    intro (this), mainmenu (this), optionmenu (this), background (this), story 
(this),
+    intro (this), mainmenu (this), optionmenu (this), story (this),
     exitmenu (this)
 {
-  push_menu (&background);
-
   //current_menu = 0;
   if (intro_disabled)
     push_menu (&mainmenu);
@@ -182,6 +181,8 @@
 void
 PingusMenuManager::draw ()
 {
+  background.draw ();
+
   for (MenuStackIter i = menu_stack.begin (); i != menu_stack.end (); ++i)
     (*i)->draw ();
 }
@@ -189,12 +190,14 @@
 void
 PingusMenuManager::update (const GameDelta& delta)
 {
+  background.update (delta.get_time ());
   // We copy the menu_stack so that we don't invalidate our
   // iterators when menu's are removed/added in update()
   std::vector<PingusSubMenu *> tmp_menu_stack = menu_stack;
 
-  for (MenuStackIter i = tmp_menu_stack.begin (); i != tmp_menu_stack.end (); 
++i)
-    (*i)->update (delta);
+  /*for (MenuStackIter i = tmp_menu_stack.begin (); i != tmp_menu_stack.end 
(); ++i)
+    (*i)->update (delta);*/
+  menu_stack.back ()->update (delta);
 }
 
 void 
@@ -245,12 +248,12 @@
   std::cout << "PingusMenuManager::fadeout () Not implemented" << std::endl;
   DeltaManager delta_manager;
   EnlargingRectFadeOut fadeout;
+
   while (!fadeout.finished ())
     {
       float time_delta = delta_manager.getset ();
       fadeout.update (time_delta);
 
-      //current_menu ()->update ();
       current_menu ()->draw ();
       fadeout.draw ();
       Display::flip_display ();
@@ -260,38 +263,16 @@
 }
 
 void
-PingusMenuManager::exit ()
+PingusMenuManager::show_exit_menu ()
 {
   push_menu (&exitmenu);
+}
 
-  /* FIXME: !QUICKHACK! Rewrite me...
-  ExitMenu exitmenu;
-  exitmenu.preload ();
-  DeltaManager delta;
-
-  CL_Display::fill_rect (0,0, CL_Display::get_width (), CL_Display::get_height 
(),
-                        0.0, 0.0, 0.0, 0.5);
-                        Display::flip_display ();
-  CL_Display::sync_buffers ();
-  while (CL_Mouse::left_pressed ())
-    CL_System::keep_alive ();
-
-  while (!CL_Mouse::left_pressed ()) {
-    exitmenu.update (delta.getset ());
-    exitmenu.draw ();
-    Display::flip_display ();
-    CL_System::keep_alive ();
-    CL_System::sleep (0);
-  }
-  if (CL_Mouse::get_x () > CL_Display::get_width ()/2)
-    loop = true;
-  else
-    loop = false;
-  while (CL_Mouse::left_pressed ())
-    CL_System::keep_alive ();
-
-  if (loop == false)
-  fadeout ();*/
+void
+PingusMenuManager::exit ()
+{
+  std::cout << "poping PingusMenuManager" << std::endl;
+  ScreenManager::instance ()->pop_screen ();
 }
 
 PingusMenuManager*

Index: pingus_menu_manager.hxx
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/pingus_menu_manager.hxx,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- pingus_menu_manager.hxx     1 Aug 2002 21:40:01 -0000       1.6
+++ pingus_menu_manager.hxx     3 Aug 2002 17:20:37 -0000       1.7
@@ -81,6 +81,8 @@
   */
 
   /// Exit the menu manager (which means to exit the while() loop in display 
())
+  void show_exit_menu ();
+
   void exit ();
 
   PingusSubMenu * current_menu();

Index: screen_manager.cxx
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/screen_manager.cxx,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- screen_manager.cxx  3 Aug 2002 09:59:23 -0000       1.5
+++ screen_manager.cxx  3 Aug 2002 17:20:37 -0000       1.6
@@ -143,9 +143,14 @@
 
   if (screens.back ().second) // delete_screen
     delete screens.back ().first;
-  
+
+  std::cout << "ScreenManager::real_pop_screen ()" << std::endl;
   screens.pop_back ();
-  screens.back ().first->on_startup ();
+
+  if (!screens.empty ())
+    {
+      screens.back ().first->on_startup ();
+    }
 }
 
 /* EOF */

Index: surface_button.cxx
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/surface_button.cxx,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- surface_button.cxx  1 Aug 2002 21:40:01 -0000       1.5
+++ surface_button.cxx  3 Aug 2002 17:20:37 -0000       1.6
@@ -258,7 +258,7 @@
 QuitButton::on_click()
 {
   std::cout << "QuitButton: do exit" << std::endl;
-  menu->get_manager ()->exit ();
+  menu->get_manager ()->show_exit_menu ();
 }
 
 ///////////////////////////////////////////////




reply via email to

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