From b56004caaa4e1c2b682e5f3391239321acc41b8a Mon Sep 17 00:00:00 2001 From: oroborus Date: Fri, 22 Aug 2008 16:37:04 +0000 Subject: - moznost nastavit ako sa ma screen splitnut tuxanci-svn --split-vertical alebo tuxanci-svn --split-horizontal git-svn-id: http://opensvn.csie.org/tuxanci_ng@239 0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e --- src/base/arena.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 46 insertions(+), 4 deletions(-) (limited to 'src/base/arena.c') diff --git a/src/base/arena.c b/src/base/arena.c index 1284e95..3a72eba 100644 --- a/src/base/arena.c +++ b/src/base/arena.c @@ -18,6 +18,7 @@ #endif static arena_t *currentArena; +static int splitType; void setCurrentArena(arena_t *p) { @@ -29,6 +30,23 @@ arena_t* getCurrentArena() return currentArena; } +void initArena() +{ + splitType = SCREEN_SPLIT_VERTICAL; + + if( getParam("--split-vertical") ) + { + splitType = SCREEN_SPLIT_VERTICAL; + printf("SCREEN_SPLIT_VERTICAL\n"); + } + + if( getParam("--split-horizontal") ) + { + splitType = SCREEN_SPLIT_HORIZONTAL; + printf("SCREEN_SPLIT_HORIZONTAL\n"); + } +} + arena_t* newArena(int w, int h) { arena_t *new; @@ -191,12 +209,28 @@ static void drawSplitArenaForTux(arena_t *arena, tux_t *tux, int location_x, int { int screen_x, screen_y; - getCenterScreen(&screen_x, &screen_y, tux->x, tux->y, WINDOW_SIZE_X/2, WINDOW_SIZE_Y); - + switch( splitType ) + { + case SCREEN_SPLIT_HORIZONTAL : + getCenterScreen(&screen_x, &screen_y, tux->x, tux->y, WINDOW_SIZE_X, WINDOW_SIZE_Y/2); + break; + case SCREEN_SPLIT_VERTICAL : + getCenterScreen(&screen_x, &screen_y, tux->x, tux->y, WINDOW_SIZE_X/2, WINDOW_SIZE_Y); + break; + } + drawBackground(arena, screen_x, screen_y); drawObjects(arena, screen_x, screen_y); - drawLayerSplit(location_x, location_y, screen_x, screen_y, WINDOW_SIZE_X/2, WINDOW_SIZE_Y); + switch( splitType ) + { + case SCREEN_SPLIT_HORIZONTAL : + drawLayerSplit(location_x, location_y, screen_x, screen_y, WINDOW_SIZE_X, WINDOW_SIZE_Y/2); + break; + case SCREEN_SPLIT_VERTICAL : + drawLayerSplit(location_x, location_y, screen_x, screen_y, WINDOW_SIZE_X/2, WINDOW_SIZE_Y); + break; + } } void drawSplitArena(arena_t *arena) @@ -207,7 +241,15 @@ void drawSplitArena(arena_t *arena) if( tux != NULL ) { - drawSplitArenaForTux(arena, tux, WINDOW_SIZE_X/2, 0); + switch( splitType ) + { + case SCREEN_SPLIT_HORIZONTAL : + drawSplitArenaForTux(arena, tux, 0, WINDOW_SIZE_Y/2); + break; + case SCREEN_SPLIT_VERTICAL : + drawSplitArenaForTux(arena, tux, WINDOW_SIZE_X/2, 0); + break; + } } tux = getControlTux(TUX_CONTROL_KEYBOARD_LEFT); -- cgit v1.2.3