# HG changeset patch # User Simon Cross # Date 1673721266 -3600 # Node ID 915de6c7d3424d7b637fb6fa9c81ca0bc0a55643 # Parent 93cb9c1d2bb25fb70fd86c7c8e211cdce7ebf27b Add support for making the editor fullscreen too. diff -r 93cb9c1d2bb2 -r 915de6c7d342 mamba/__main__.py --- a/mamba/__main__.py Sat Jan 14 19:33:57 2023 +0100 +++ b/mamba/__main__.py Sat Jan 14 19:34:26 2023 +0100 @@ -4,7 +4,9 @@ import pygame from pygame.locals import SWSURFACE -from mamba.constants import SCREEN, NAME, WINDOW_ICON +from mamba.constants import ( + SCREEN, NAME, WINDOW_ICON, DISPLAY_FLAGS, FULLSCREEN_FLAGS, +) from mamba.options import options, parse_args, check_args from mamba.engine import Engine from mamba.gamestate import load_state @@ -31,11 +33,9 @@ SoundSystem(options.sound) - display_flags = SWSURFACE + display_flags = DISPLAY_FLAGS if options.fullscreen: - display_flags |= pygame.FULLSCREEN - if getattr(pygame, "SCALED", None): - display_flags |= pygame.SCALED + display_flags |= FULLSCREEN_FLAGS pygame.display.init() pygame.font.init() diff -r 93cb9c1d2bb2 -r 915de6c7d342 mamba/constants.py --- a/mamba/constants.py Sat Jan 14 19:33:57 2023 +0100 +++ b/mamba/constants.py Sat Jan 14 19:34:26 2023 +0100 @@ -1,3 +1,4 @@ +import pygame from pygame.locals import K_ESCAPE, K_q, K_BACKSPACE, K_DELETE # version tuple for maps @@ -11,6 +12,8 @@ SCREEN = (800, 600) EDIT_SCREEN = (1000, 600) TILE_SIZE = (20, 20) +DISPLAY_FLAGS = pygame.SWSURFACE +FULLSCREEN_FLAGS = pygame.FULLSCREEN | getattr(pygame, "SCALED", 0) # Miscellaneous constants NAME = "Mutable Mamba" @@ -48,6 +51,7 @@ DEFAULTS = { 'debug': False, 'sound': True, + 'fullscreen': False, 'level': None, 'uncurated': None, 'list_uncurated': False, diff -r 93cb9c1d2bb2 -r 915de6c7d342 mamba/habitats/editor.py --- a/mamba/habitats/editor.py Sat Jan 14 19:33:57 2023 +0100 +++ b/mamba/habitats/editor.py Sat Jan 14 19:34:26 2023 +0100 @@ -22,10 +22,14 @@ from mamba.widgets.editsprite import EditSpriteBox from mamba.widgets.editlevel import EditLevelBox from mamba.level import Level, Tileset, TILE_MAP, THING_MAP, InvalidMapError +from mamba.options import options from mamba.data import (check_level_exists, get_level_list, load_file, load_image, load_tile_image) -from mamba.constants import (SCREEN, EDIT_SCREEN, NAME, ESCAPE_KEYS, - RESERVED_NAMES, WINDOW_ICON, LEVEL_SERVER, UP, DOWN, LEFT, RIGHT) +from mamba.constants import ( + SCREEN, EDIT_SCREEN, NAME, DISPLAY_FLAGS, FULLSCREEN_FLAGS, + ESCAPE_KEYS, RESERVED_NAMES, WINDOW_ICON, LEVEL_SERVER, + UP, DOWN, LEFT, RIGHT, +) MAX_TOOLS = 6 MODE_HEIGHT = 370 @@ -59,13 +63,16 @@ } helpfile = load_file(HELP, mode="r") self.help_msg = ''.join(helpfile.readlines()) + self._display_flags = DISPLAY_FLAGS + if options.fullscreen: + self._display_flags |= FULLSCREEN_FLAGS def on_enter(self): # We need to juggle the display to the correct size # This is a horrible hack pygame.display.quit() pygame.display.init() - pygame.display.set_mode(EDIT_SCREEN, SWSURFACE) + pygame.display.set_mode(EDIT_SCREEN, self._display_flags) pygame.display.set_icon(load_image(WINDOW_ICON)) pygame.display.set_caption('%s Level editor' % NAME) super(EditorHabitat, self).on_enter() @@ -77,7 +84,7 @@ super(EditorHabitat, self).on_exit() pygame.display.quit() pygame.display.init() - pygame.display.set_mode(SCREEN, SWSURFACE) + pygame.display.set_mode(SCREEN, self._display_flags) pygame.display.set_icon(load_image(WINDOW_ICON)) pygame.display.set_caption(NAME)