From 7efb51e2cb64a417d9d18ba0064c84abad265dad Mon Sep 17 00:00:00 2001 From: oroborus Date: Thu, 17 Jul 2008 10:29:56 +0000 Subject: - oprava hrozostrasnej chyby s itemami na revery, ktora zadzovala clientov - ak sa item zobere novy sa automaticky vytovri git-svn-id: http://opensvn.csie.org/tuxanci_ng@151 0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e --- src/base/tux.c | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) (limited to 'src/base/tux.c') diff --git a/src/base/tux.c b/src/base/tux.c index 94a7666..cfaaddf 100644 --- a/src/base/tux.c +++ b/src/base/tux.c @@ -474,22 +474,10 @@ void moveTux(tux_t *tux, int n) return; } - if( n == TUX_LEFT && tux->x-TUX_STEP <= 0 ) - { - return; - } - - if( n == TUX_RIGHT && tux->x+TUX_STEP >= arena->w ) - { - return; - } - - if( n == TUX_UP && tux->y-TUX_STEP <= 0 ) - { - return; - } - - if( n == TUX_DOWN && tux->y+TUX_STEP >= arena->h ) + if( ( n == TUX_LEFT && tux->x-TUX_STEP <= 0 ) || + ( n == TUX_RIGHT && tux->x+TUX_STEP >= arena->w ) || + ( n == TUX_UP && tux->y-TUX_STEP <= 0 ) || + ( n == TUX_DOWN && tux->y+TUX_STEP >= arena->h ) ) { return; } @@ -769,10 +757,26 @@ void setStatusTux(void *p, int x, int y, int w, int h) setTuxProportion(tux, x, y); } +static void action_checkMine(space_t *space, item_t *item, tux_t *tux) +{ + if( item->type == ITEM_MINE && item->author_id == tux->id ) + { + item->author_id = ID_UNKNOWN; + } +} + void destroyTux(tux_t *tux) { + arena_t *arena; + + arena = getCurrentArena(); + assert( tux != NULL ); + delID(tux->id); + + actionSpace(arena->spaceItem, action_checkMine, tux); + free(tux); } -- cgit v1.2.3