Mercurial > mamba
changeset 473:124bfe426834
Load one level at a time instead of all at once. (Official levels only.)
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sat, 17 Sep 2011 21:55:12 +0200 |
parents | 1e299187884b |
children | 590aa23648f8 |
files | mamba/habitats/levelmenu.py |
diffstat | 1 files changed, 11 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mamba/habitats/levelmenu.py Sat Sep 17 21:54:43 2011 +0200 +++ b/mamba/habitats/levelmenu.py Sat Sep 17 21:55:12 2011 +0200 @@ -66,6 +66,16 @@ self.level_buttons[name] = button def setup_levels(self): + if not getattr(self, '_setup_gen', None): + self._setup_gen = self._setup_levels_gen() + try: + self._setup_gen.next() + HabitatSetupEvent.post() + except StopIteration: + # We're done here. + return + + def _setup_levels_gen(self): del self.grid_container.children[:] levels = list(self.list_levels()) if self.page * self.WIDTH * self.HEIGHT > len(levels): @@ -75,7 +85,7 @@ first = self.page * self.WIDTH * self.HEIGHT last = first + (self.WIDTH * self.HEIGHT) for i, name in enumerate(levels[first:last]): - self.setup_level(i, name) + yield self.setup_level(i, name) if self.page == 0: self.prev_button.disable()