From e2e5ce4210c087d20b715edc4736ada0b62177a2 Mon Sep 17 00:00:00 2001 From: oroborus Date: Mon, 25 Aug 2008 15:44:25 +0000 Subject: - ked su tuxovia tak blizko, ze by sa zmestili na jednu obrazovku tak sa zobrazia ne jadnej obrazovke, inac sa pouzije split screen git-svn-id: http://opensvn.csie.org/tuxanci_ng@250 0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e --- src/base/arena.c | 44 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/base/arena.c b/src/base/arena.c index 67f67e4..3f53b4a 100644 --- a/src/base/arena.c +++ b/src/base/arena.c @@ -283,7 +283,7 @@ void drawSplitArena(arena_t *arena) } } -void drawCenterArena(arena_t *arena) +void drawCenterArena(arena_t *arena, int x, int y) { int screen_x, screen_y; tux_t *tux = NULL; @@ -295,11 +295,11 @@ void drawCenterArena(arena_t *arena) return; } - getCenterScreen(&screen_x, &screen_y, tux->x, tux->y, WINDOW_SIZE_X, WINDOW_SIZE_Y); + getCenterScreen(&screen_x, &screen_y, x, y, WINDOW_SIZE_X, WINDOW_SIZE_Y); drawBackground(arena, screen_x, screen_y); drawObjects(arena, screen_x, screen_y); - drawLayerCenter(tux->x, tux->y); + drawLayerCenter(x, y); } void drawSimpleArena(arena_t *arena) @@ -335,19 +335,53 @@ static int isBigArena(arena_t *arena) } } +static int isTuxNear(tux_t *tux1, tux_t *tux2) +{ + if( abs(tux1->x - tux2->x) < WINDOW_SIZE_X && + abs(tux1->y - tux2->y) < WINDOW_SIZE_Y ) + { + return 1; + } + + return 0; +} + void drawArena(arena_t *arena) { if( isBigArena(arena) && getNetTypeGame() == NET_GAME_TYPE_NONE && ! isSettingAI() ) { - drawSplitArena(arena); + tux_t *tux1; + tux_t *tux2; + + tux1 = getControlTux(TUX_CONTROL_KEYBOARD_RIGHT); + tux2 = getControlTux(TUX_CONTROL_KEYBOARD_LEFT); + + if( isTuxNear(tux1, tux2) ) + { + drawCenterArena(arena, (tux1->x + tux2->x)/2, (tux1->y + tux2->y)/2); + } + else + { + drawSplitArena(arena); + } + return; } if( isBigArena(arena) ) { - drawCenterArena(arena); + tux_t *tux = NULL; + + tux = getControlTux(TUX_CONTROL_KEYBOARD_RIGHT); + + if( tux == NULL ) + { + return; + } + + drawCenterArena(arena, tux->x, tux->y); return; } -- cgit v1.2.3