changeset 424:fbef17cab632

Use fully rendered map in gameboard choosing screen
author Neil Muller <drnlmuller@gmail.com>
date Sat, 21 Nov 2009 15:53:17 +0000
parents 97dd557504a2
children 1d0cc37b4e14
files gamelib/gameboard.py gamelib/loadlevel.py
diffstat 2 files changed, 14 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/gamelib/gameboard.py	Sat Nov 21 15:39:49 2009 +0000
+++ b/gamelib/gameboard.py	Sat Nov 21 15:53:17 2009 +0000
@@ -283,7 +283,6 @@
         width, height = self.tv.size
         # Ensure we don't every try to create more foxes then is sane
         self.max_foxes = level.max_foxes
-        self.create_display()
 
         self.selected_tool = None
         self.animal_to_place = None
@@ -297,8 +296,11 @@
         self.eggs = 0
         self.days = 0
         self.killed_foxes = 0
-        self.add_cash(level.starting_cash)
         self.day, self.night = True, False
+        # For the level loading case
+        if self.disp:
+            self.create_display()
+            self.add_cash(level.starting_cash)
 
         self.fix_buildings()
 
@@ -871,7 +873,8 @@
         self.chickens.add(chicken)
         if chicken.outside():
             self.tv.sprites.append(chicken)
-        self.toolbar.update_chicken_counter(len(self.chickens))
+        if self.disp:
+            self.toolbar.update_chicken_counter(len(self.chickens))
 
     def add_fox(self, fox):
         self.foxes.add(fox)
--- a/gamelib/loadlevel.py	Sat Nov 21 15:39:49 2009 +0000
+++ b/gamelib/loadlevel.py	Sat Nov 21 15:53:17 2009 +0000
@@ -7,7 +7,7 @@
 import engine
 import data
 import imagecache
-import tiles
+import gameboard
 
 def make_load_screen(level):
     """Create a screen for selecting the levels"""
@@ -46,9 +46,6 @@
         if not self.cur_level:
             self.cur_level = self.levels[0]
 
-        self.tv = tiles.FarmVid()
-        self.tv.png_folder_load_tiles('tiles')
-
 
         def done_pressed():
             pygame.event.post(engine.DO_LOAD_LEVEL)
@@ -98,16 +95,18 @@
         self.clear()
         self.repaint()
 
-        self.tv.tga_load_level(self.cur_level.map)
+        board = gameboard.GameBoard(None, self.cur_level)
 
         space = self.style.font.size(" ")
+        w, h = board.tv.size
 
-        map_image = pygame.Surface((800, 800))
-        self.tv.paint(map_image)
+        map_image = pygame.Surface((20*w, 20*h))
+        board.tv.loop()
+        board.tv.paint(map_image)
 
         style = {
-                'width' : 300,
-                'height' : 300
+                'width' : min(300, 7*w),
+                'height' : min(300, 7*h),
                 }
 
         image = gui.Image(map_image, style=style)