Mercurial > mamba
changeset 601:915de6c7d342 default tip
Add support for making the editor fullscreen too.
author | Simon Cross <hodgestar@gmail.com> |
---|---|
date | Sat, 14 Jan 2023 19:34:26 +0100 |
parents | 93cb9c1d2bb2 |
children | |
files | mamba/__main__.py mamba/constants.py mamba/habitats/editor.py |
diffstat | 3 files changed, 20 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- 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()
--- 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,
--- 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)