summaryrefslogtreecommitdiff
path: root/src/base/tux.c
diff options
context:
space:
mode:
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);
}