pingus-cvs
[Top][All Lists]
Advanced

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

[Pingus-CVS] r3343 - in trunk/pingus: . data/images/core/menu data/level


From: grumbel at BerliOS
Subject: [Pingus-CVS] r3343 - in trunk/pingus: . data/images/core/menu data/levels/halloween src
Date: Sat, 27 Oct 2007 12:00:47 +0200

Author: grumbel
Date: 2007-10-27 12:00:45 +0200 (Sat, 27 Oct 2007)
New Revision: 3343

Modified:
   trunk/pingus/TODO
   trunk/pingus/data/images/core/menu/marker.png
   trunk/pingus/data/images/core/menu/marker2.png
   trunk/pingus/data/images/core/menu/marker_locked.png
   trunk/pingus/data/levels/halloween/halloween7-grumbel.pingus
   trunk/pingus/src/level_menu.cpp
Log:
- more levelselector stuff, now somewhat usable

Modified: trunk/pingus/TODO
===================================================================
--- trunk/pingus/TODO   2007-10-27 09:31:13 UTC (rev 3342)
+++ trunk/pingus/TODO   2007-10-27 10:00:45 UTC (rev 3343)
@@ -95,6 +95,8 @@
 Important:
 ==========
 
+- start_pos is missing in editor
+
 - Water Glitch: the water on the minimap changes color after the colmap is 
altered or the first time
 
 - Levels: All levels lack name and description

Modified: trunk/pingus/data/images/core/menu/marker.png
===================================================================
(Binary files differ)

Modified: trunk/pingus/data/images/core/menu/marker2.png
===================================================================
(Binary files differ)

Modified: trunk/pingus/data/images/core/menu/marker_locked.png
===================================================================
(Binary files differ)

Modified: trunk/pingus/data/levels/halloween/halloween7-grumbel.pingus
===================================================================
--- trunk/pingus/data/levels/halloween/halloween7-grumbel.pingus        
2007-10-27 09:31:13 UTC (rev 3342)
+++ trunk/pingus/data/levels/halloween/halloween7-grumbel.pingus        
2007-10-27 10:00:45 UTC (rev 3343)
@@ -7,8 +7,8 @@
     (levelname "none")
     (description "none")
     (author "none")
-    (number-of-pingus 50)
-    (number-to-save 20)
+    (number-of-pingus 40)
+    (number-to-save 35)
     (time -1)
     (difficulty 0)
     (playable 1)

Modified: trunk/pingus/src/level_menu.cpp
===================================================================
--- trunk/pingus/src/level_menu.cpp     2007-10-27 09:31:13 UTC (rev 3342)
+++ trunk/pingus/src/level_menu.cpp     2007-10-27 10:00:45 UTC (rev 3343)
@@ -29,6 +29,8 @@
 #include "level_menu.hpp"
 #include "gui/rect_component.hpp"
 #include "gui/gui_manager.hpp"
+#include "game_session.hpp"
+#include "start_screen.hpp"
 
 class LevelsetSelector : public GUI::RectComponent
 {
@@ -125,12 +127,14 @@
   Sprite marker;
   Sprite marker_locked;
   Levelset* levelset;
-
+  int current_level;
+  
 public:
   LevelSelector(LevelMenu* level_menu_, const Rect& rect_) 
     : RectComponent(rect_),
       level_menu(level_menu_),
-      levelset(0)
+      levelset(0),
+      current_level(-1)
   {
     marker        = Resource::load_sprite("core/menu/marker2");
     marker_locked = Resource::load_sprite("core/menu/marker_locked");
@@ -138,26 +142,35 @@
 
   void draw(DrawingContext& gc) 
   {
+    gc.print_center(Fonts::chalk_large, 800/2, 90, _(levelset->get_title()));
+
+    gc.push_modelview();
+    gc.translate(rect.left, rect.top);
+
     if (levelset)
       {
-        gc.print_center(Fonts::chalk_large, 800/2, 90, 
_(levelset->get_title()));
+        //gc.draw_fillrect(Rect(Vector2i(0,0), Size(rect.get_width(), 
rect.get_height())),
+        //                 Color(255, 255, 0, 100));
 
-        gc.print_left(Fonts::chalk_normal,  120, 145, "Levelname");
-        gc.print_right(Fonts::chalk_normal, 660, 145, "Completed");
-        int y = 185;
+        gc.print_left(Fonts::chalk_normal,  30, -32, "Levelname");
+        gc.print_right(Fonts::chalk_normal, rect.get_width() - 30, - 32, 
"Completed");
+
+        int y = 0;
         for(int i = 0; i < levelset->get_level_count(); ++i)
           {
-            if (i == 0)
-              gc.draw(marker, 100, y-4);
+            if (i == current_level)
+              gc.draw(marker, 0, y);
             else if (i > 3)
-              gc.draw(marker_locked, 100, y-4);
+              gc.draw(marker_locked, 0, y);
 
             std::string level = levelset->get_level(i);          
-            gc.print_left(Fonts::chalk_small, 120, y, level);
-            gc.print_right(Fonts::chalk_small, 660, y, "[x]");
+            gc.print_left(Fonts::chalk_small, 30, y+4, level);
+            gc.print_right(Fonts::chalk_small, rect.get_width() -30, y+4, 
"[x]");
             y += 32;
           }
       }
+    
+    gc.pop_modelview();
   }
 
   void set_levelset(Levelset* levelset_)
@@ -170,12 +183,20 @@
     x -= rect.left;
     y -= rect.top;
 
-    std::cout << x << " " << y << std::endl;
+    current_level = y / 32;
+    
+    if (current_level < 0 || current_level > levelset->get_level_count())
+      current_level = -1;
   }
 
   void on_primary_button_press (int x, int y)
   {
-    level_menu->set_levelset(0);
+    if (current_level != -1)
+      {
+        PingusLevel level(Pathname("levels/" + 
levelset->get_level(current_level), Pathname::DATA_PATH));
+        //ScreenManager::instance()->push_screen(new PingusGameSession(level, 
false), true);
+        ScreenManager::instance()->push_screen(new StartScreen(level), true);
+      }
   }
 
   void update_layout() {}
@@ -188,8 +209,8 @@
   background = Resource::load_sprite("core/menu/filedialog");
   ok_button  = Resource::load_sprite("core/start/ok");
 
-  level_selector    = new LevelSelector(this, Rect(Vector2i(x_pos + 100, y_pos 
+ 140), Size(600, 300)));
   levelset_selector = new LevelsetSelector(this, Rect(Vector2i(x_pos + 100, 
y_pos + 140), Size(600, 300)));
+  level_selector    = new LevelSelector(this, Rect(Vector2i(x_pos + 100, y_pos 
+ 160), Size(600, 300)));
 
   gui_manager->add(levelset_selector, true);
   gui_manager->add(level_selector,    true);





reply via email to

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