summaryrefslogtreecommitdiff
path: root/src/base/tux.c
diff options
context:
space:
mode:
authororoborus <oroborus@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e>2008-07-17 10:29:56 +0000
committeroroborus <oroborus@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e>2008-07-17 10:29:56 +0000
commit7efb51e2cb64a417d9d18ba0064c84abad265dad (patch)
tree012c15bf21b226770ad1e1c5e67cb8e7e69307d4 /src/base/tux.c
parentd5ae032d2b251a1604042f68a9cd3215c233792e (diff)
- 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
Diffstat (limited to 'src/base/tux.c')
-rw-r--r--src/base/tux.c36
1 files changed, 20 insertions, 16 deletions
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);
}