# HG changeset patch # User Neil Muller # Date 1378135362 -7200 # Node ID fe1f0bb4ecf0b787bc1b0ffdeac0cc978723312a # Parent c3af35561494af64c4daa3879887e352f7212be2 Handle case of display larger than the level better diff -r c3af35561494 -r fe1f0bb4ecf0 nagslang/screens/area.py --- a/nagslang/screens/area.py Mon Sep 02 17:09:47 2013 +0200 +++ b/nagslang/screens/area.py Mon Sep 02 17:22:42 2013 +0200 @@ -115,16 +115,20 @@ level_size = level_surface.get_size() display_size = display_surface.get_size() protagnist_pos = self.protagonist.physicser.get_render_position( - level_surface) + level_surface) x_wide = display_size[0] // 2 y_wide = display_size[1] // 2 - if protagnist_pos[0] < x_wide: + if display_size[0] > level_size[0]: + x = -(display_size[0] - level_size[0]) // 2 + elif protagnist_pos[0] < x_wide: x = 0 elif protagnist_pos[0] > level_size[0] - x_wide: x = level_size[0] - display_size[0] else: x = protagnist_pos[0] - x_wide - if protagnist_pos[1] < y_wide: + if display_size[1] > level_size[1]: + y = -(display_size[1] - level_size[1]) // 2 + elif protagnist_pos[1] < y_wide: y = 0 elif protagnist_pos[1] > level_size[1] - y_wide: y = level_size[1] - display_size[1]