[Top][All Lists]
[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 ();
}
///////////////////////////////////////////////
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [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,
grumbel <=
- Prev by Date:
[Pingus-CVS] CVS: Games/Pingus/src action_button.cxx,1.7,1.8 action_button.hxx,1.6,1.7 server.hxx,1.2,1.3 true_server.cxx,1.4,1.5 true_server.hxx,1.2,1.3
- Next by Date:
[Pingus-CVS] [Bug #937] Miner animation doesn't take the descent into account
- Previous by thread:
[Pingus-CVS] CVS: Games/Pingus/src action_button.cxx,1.7,1.8 action_button.hxx,1.6,1.7 server.hxx,1.2,1.3 true_server.cxx,1.4,1.5 true_server.hxx,1.2,1.3
- Next by thread:
[Pingus-CVS] [Bug #937] Miner animation doesn't take the descent into account
- Index(es):