From 8b70ac9538f7e4da10666cfc21fd368a91a77ae3 Mon Sep 17 00:00:00 2001 From: oroborus Date: Sun, 4 May 2008 19:22:36 +0000 Subject: - oprava chyby -> client sa zrutil ak dostal packety "init" a "additem" v opacnom poradi - oprava chyby -> item a shot ukazoval pointerom na tuxa, to znamenalo, ze ak sa tux odhlasil, tak item a shot ukazoval do uvolnenej pamate - oprava chyby -> exploziu si client pridaval sam, a este prijmal packet od servera, ze sa ma pridat explozia git-svn-id: http://opensvn.csie.org/tuxanci_ng@50 0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e --- src/shot.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'src/shot.c') diff --git a/src/shot.c b/src/shot.c index 17dfa2a..04498c0 100644 --- a/src/shot.c +++ b/src/shot.c @@ -55,13 +55,12 @@ void initShot() isShotInit = TRUE; } -shot_t* newShot(int x,int y, int px, int py, int gun, tux_t *author) +shot_t* newShot(int x,int y, int px, int py, int gun, int author_id) { shot_t *new; + tux_t *author; static int last_id = 0; - assert( author != NULL ); - new = malloc( sizeof(shot_t) ); memset(new, 0, sizeof(shot_t) ); @@ -71,8 +70,17 @@ shot_t* newShot(int x,int y, int px, int py, int gun, tux_t *author) new->px = px; new->py = py; new->gun = gun; - new->author = author; - new->position = author->position; + new->author_id = author_id; + + new->position = POSITION_UNKNOWN; + + author = getTuxID(getCurrentArena()->listTux, author_id); + + if( author != NULL ) + { + new->position = author->position; + } + new->isCanKillAuthor = FALSE; switch( gun ) -- cgit v1.2.3