diff options
| author | scarab <scarab@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e> | 2008-08-15 19:57:10 +0000 |
|---|---|---|
| committer | scarab <scarab@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e> | 2008-08-15 19:57:10 +0000 |
| commit | 7bbd60007620cf3cc3ee7a913f7010588808ebb2 (patch) | |
| tree | 34e72f66dfd1076e23c43074786f935aca70cba1 /src/base/item.c | |
| parent | 50ba3d5e1e9f9eeda049a348efa4645af07610bc (diff) | |
"- initial commit for GETTEXT support and K&R compilance"
git-svn-id: http://opensvn.csie.org/tuxanci_ng@196 0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e
Diffstat (limited to 'src/base/item.c')
| -rw-r--r-- | src/base/item.c | 281 |
1 files changed, 93 insertions, 188 deletions
diff --git a/src/base/item.c b/src/base/item.c index bd61728..56ad293 100644 --- a/src/base/item.c +++ b/src/base/item.c @@ -63,7 +63,6 @@ void initItem() g_item[BONUS_4X] = addImageData("item.bonus.4x.png", IMAGE_ALPHA, "item_4x_speed", IMAGE_GROUP_BASE); g_item[BONUS_HIDDEN] = addImageData("item.bonus.hidden.png", IMAGE_ALPHA, "item_hidden_speed", IMAGE_GROUP_BASE); #endif - isItemInit = TRUE; } @@ -73,9 +72,7 @@ item_t* newItem(int x, int y, int type, int author_id) new = malloc( sizeof(item_t) ); assert( new != NULL ); - new->type = type; - new->id = getNewID(); new->x = x; new->y = y; @@ -85,9 +82,7 @@ item_t* newItem(int x, int y, int type, int author_id) new->img = g_item[type]; #endif new->author_id = author_id; - - switch( type ) - { + switch (type) { case GUN_DUAL_SIMPLE : case GUN_SCATTER : case GUN_TOMMY : @@ -96,29 +91,25 @@ item_t* newItem(int x, int y, int type, int author_id) case GUN_BOMBBALL : new->w = ITEM_GUN_WIDTH; new->h = ITEM_GUN_HEIGHT; - break; - + break; case ITEM_MINE : new->w = ITEM_MINE_WIDTH; new->h = ITEM_MINE_HEIGHT; - break; - + break; case ITEM_EXPLOSION : #ifndef NO_SOUND playSound("explozion", SOUND_GROUP_BASE); #endif new->w = ITEM_EXPLOSION_WIDTH; new->h = ITEM_EXPLOSION_HEIGHT; - break; - + break; case ITEM_BIG_EXPLOSION : #ifndef NO_SOUND playSound("explozion", SOUND_GROUP_BASE); #endif new->w = ITEM_BIG_EXPLOSION_WIDTH; new->h = ITEM_BIG_EXPLOSION_HEIGHT; - break; - + break; case BONUS_SPEED : case BONUS_SHOT : case BONUS_TELEPORT : @@ -127,9 +118,8 @@ item_t* newItem(int x, int y, int type, int author_id) case BONUS_HIDDEN : new->w = ITEM_BONUS_WIDTH; new->h = ITEM_BONUS_HEIGHT; - break; + break; } - return new; } @@ -138,7 +128,6 @@ void getStatusItem(void *p, int *id, int *x, int *y ,int *w, int *h) item_t *item; item = p; - *id = item->id; *x = item->x; *y = item->y; @@ -191,56 +180,61 @@ void addNewItem(space_t *spaceItem, int author_id) type = GUN_DUAL_SIMPLE; #ifndef PUBLIC_SERVER - do{ + do { #endif - switch( random() % 12 ) - { - case 0 : type = GUN_DUAL_SIMPLE; - break; - case 1 : type = GUN_SCATTER; - break; - case 2 : type = GUN_TOMMY; - break; - case 3 : type = GUN_MINE; - break; - case 4 : type = GUN_LASSER; - break; - case 5 : type = GUN_BOMBBALL; - break; - case 6 : type = BONUS_SPEED; - break; - case 7 : type = BONUS_SHOT; - break; - case 8 : type = BONUS_TELEPORT; - break; - case 9 : type = BONUS_GHOST; - break; - case 10 : type = BONUS_4X; - break; - case 11 : type = BONUS_HIDDEN; - break; + switch (random() % 12) { + case 0 : + type = GUN_DUAL_SIMPLE; + break; + case 1 : + type = GUN_SCATTER; + break; + case 2 : + type = GUN_TOMMY; + break; + case 3 : + type = GUN_MINE; + break; + case 4 : + type = GUN_LASSER; + break; + case 5 : + type = GUN_BOMBBALL; + break; + case 6 : + type = BONUS_SPEED; + break; + case 7 : + type = BONUS_SHOT; + break; + case 8 : + type = BONUS_TELEPORT; + break; + case 9 : + type = BONUS_GHOST; + break; + case 10 : + type = BONUS_4X; + break; + case 11 : + type = BONUS_HIDDEN; + break; } - #ifndef PUBLIC_SERVER - }while( isSettingItem(type) == FALSE || - (getNetTypeGame() == NET_GAME_TYPE_NONE && type == BONUS_HIDDEN) ); + } while (isSettingItem(type) == FALSE || + (getNetTypeGame() == NET_GAME_TYPE_NONE + && type == BONUS_HIDDEN)); #endif - item = newItem(new_x, new_y, type, author_id); addObjectToSpace(spaceItem, item); - - if( getNetTypeGame() == NET_GAME_TYPE_SERVER ) - { + if (getNetTypeGame() == NET_GAME_TYPE_SERVER) proto_send_additem_server(PROTO_SEND_ALL, NULL, item); - } } -#ifndef PUBLIC_SERVER - +#ifndef PUBLIC_SERVER void drawItem(item_t *p) { - assert( p != NULL ); - + assert(p != NULL); addLayer(p->img, p->x, p->y, p->frame * p->w, 0, p->w, p->h, TUX_LAYER); } @@ -249,10 +243,8 @@ void drawListItem(list_t *listItem) item_t *thisItem; int i; - assert( listItem != NULL ); - - for( i = 0 ; i < listItem->count ; i++ ) - { + assert(listItem != NULL); + for (i = 0; i < listItem->count; i++) { thisItem = (item_t *)listItem->list[i]; assert( thisItem != NULL ); drawItem(thisItem); @@ -266,44 +258,30 @@ static void action_itemevent(space_t *space, item_t *item, void *p) my_time_t currentTime; currentTime = getMyTime(); - item->count++; - - if( item->count == ITEM_MAX_COUNT ) - { + if (item->count == ITEM_MAX_COUNT) { item->count = 0; item->frame++; } - - switch( item->type ) - { + switch (item->type) { case GUN_TOMMY : case GUN_DUAL_SIMPLE : case GUN_SCATTER : case GUN_LASSER : case GUN_MINE : case GUN_BOMBBALL : - if( item->frame == ITEM_GUN_MAX_FRAME ) - { + if (item->frame == ITEM_GUN_MAX_FRAME) item->frame = 0; - } - break; - + break; case ITEM_MINE : - if( item->frame == ITEM_MINE_MAX_FRAME ) - { + if(item->frame == ITEM_MINE_MAX_FRAME) item->frame = 0; - } - break; - + break; case ITEM_EXPLOSION : case ITEM_BIG_EXPLOSION : - if( item->frame == ITEM_EXPLOSION_MAX_FRAME ) - { + if(item->frame == ITEM_EXPLOSION_MAX_FRAME) delObjectFromSpaceWithObject(space, item, destroyItem); - } - break; - + break; case BONUS_SPEED : case BONUS_SHOT : case BONUS_TELEPORT : @@ -311,10 +289,8 @@ static void action_itemevent(space_t *space, item_t *item, void *p) case BONUS_4X : case BONUS_HIDDEN : if( item->frame == ITEM_GUN_MAX_FRAME ) - { item->frame = 0; - } - break; + break; } } @@ -325,33 +301,21 @@ void eventListItem(space_t *spaceItem) static void mineExplosion(space_t *spaceItem, item_t *item) { - if( getNetTypeGame() != NET_GAME_TYPE_CLIENT ) - { + if (getNetTypeGame() != NET_GAME_TYPE_CLIENT) { int x, y; item_t *item_explosion; x = ( item->x + item->w/2 ) - ITEM_BIG_EXPLOSION_WIDTH/2; y = ( item->y + item->h/2 ) - ITEM_BIG_EXPLOSION_HEIGHT/2; - item_explosion = newItem(x, y, ITEM_BIG_EXPLOSION, item->author_id); - - if( getNetTypeGame() == NET_GAME_TYPE_SERVER ) - { + if (getNetTypeGame() == NET_GAME_TYPE_SERVER) proto_send_additem_server(PROTO_SEND_ALL, NULL, item_explosion); - } - addObjectToSpace(spaceItem, item_explosion ); } - - if( getNetTypeGame() == NET_GAME_TYPE_SERVER ) - { - proto_send_del_server(PROTO_SEND_ALL, NULL, item->id); - } - - if( getNetTypeGame() != NET_GAME_TYPE_CLIENT ) - { + if (getNetTypeGame() == NET_GAME_TYPE_SERVER) + proto_send_del_server(PROTO_SEND_ALL, NULL, item->id); + if (getNetTypeGame() != NET_GAME_TYPE_CLIENT) delObjectFromSpaceWithObject(spaceItem, item, destroyItem); - } } static void action_item(space_t *space, item_t *item, int *isDel) @@ -359,20 +323,15 @@ static void action_item(space_t *space, item_t *item, int *isDel) arena_t *arena; arena = getCurrentArena(); - - switch( item->type ) - { + switch(item->type) { case ITEM_MINE : if( getNetTypeGame() != NET_GAME_TYPE_CLIENT ) - { mineExplosion(space, item); - } - break; - + break; case ITEM_EXPLOSION : case ITEM_BIG_EXPLOSION : *isDel = 1; - break; + break; } } @@ -381,58 +340,38 @@ static void action_shot(space_t *space, shot_t *shot, space_t *spaceItem) int isDel = 0; actionSpaceFromLocation(spaceItem, action_item, &isDel, shot->x, shot->y, shot->w, shot->h); - - if( isDel ) - { - if( getNetTypeGame() == NET_GAME_TYPE_SERVER ) - { + if (isDel) { + if (getNetTypeGame() == NET_GAME_TYPE_SERVER) proto_send_del_server(PROTO_SEND_ALL, NULL, shot->id); - } - delObjectFromSpaceWithObject(space, shot, destroyShot); } } void eventConflictShotWithItem(arena_t *arena) { - if( getNetTypeGame() == NET_GAME_TYPE_CLIENT ) - { + if (getNetTypeGame() == NET_GAME_TYPE_CLIENT) return; - } - actionSpace(arena->spaceShot, action_shot, arena->spaceItem); } static void eventTuxIsDeadWithItem(tux_t *tux, item_t *item) { - if( tux->bonus == BONUS_GHOST ) - { + if (tux->bonus == BONUS_GHOST) return; - } - - if( tux->bonus == BONUS_TELEPORT ) - { + if (tux->bonus == BONUS_TELEPORT) { tuxTeleport(tux); return; } - - if( item->author_id != tux->id ) - { + if (item->author_id != tux->id) { tux_t *author; author = getObjectFromSpaceWithID(getCurrentArena()->spaceTux, item->author_id); - - if( author != NULL ) - { + if (author != NULL) { author->score++; - - if( getNetTypeGame() == NET_GAME_TYPE_SERVER ) - { + if (getNetTypeGame() == NET_GAME_TYPE_SERVER) proto_send_newtux_server(PROTO_SEND_ALL, NULL, author); - } } } - countRoundInc(); eventTuxIsDead(tux); } @@ -442,14 +381,10 @@ static void tuxGiveBonus(tux_t *tux, item_t *item) #ifndef NO_SOUND playSound("item_bonus", SOUND_GROUP_BASE); #endif - tux->bonus = item->type; tux->bonus_time = TUX_MAX_BONUS; - - if( getNetTypeGame() == NET_GAME_TYPE_SERVER ) - { + if (getNetTypeGame() == NET_GAME_TYPE_SERVER) proto_send_newtux_server(PROTO_SEND_ALL, NULL, tux); - } } static void tuxGiveGun(tux_t *tux, item_t *item) @@ -457,21 +392,16 @@ static void tuxGiveGun(tux_t *tux, item_t *item) #ifndef NO_SOUND playSound("item_gun", SOUND_GROUP_BASE); #endif - tux->pickup_time = 0; tux->shot[ item->type ] += GUN_MAX_SHOT; tux->gun = item->type; - - if( getNetTypeGame() == NET_GAME_TYPE_SERVER ) - { + if (getNetTypeGame() == NET_GAME_TYPE_SERVER) proto_send_newtux_server(PROTO_SEND_ALL, NULL, tux); - } } static void action_giveitem(space_t *space, item_t *item, tux_t *tux) { - switch( item->type ) - { + switch (item->type) { case GUN_TOMMY : case GUN_DUAL_SIMPLE : case GUN_SCATTER : @@ -479,34 +409,23 @@ static void action_giveitem(space_t *space, item_t *item, tux_t *tux) case GUN_MINE : case GUN_BOMBBALL : tuxGiveGun(tux, item); - - if( getNetTypeGame() == NET_GAME_TYPE_SERVER ) - { + if (getNetTypeGame() == NET_GAME_TYPE_SERVER) proto_send_del_server(PROTO_SEND_ALL, NULL, item->id); - } - delObjectFromSpaceWithObject(space, item, destroyItem); - #ifdef PUBLIC_SERVER addNewItem(space, ID_UNKNOWN); #endif - break; + break; case ITEM_MINE : - if( tux->bonus != BONUS_GHOST ) - { + if (tux->bonus != BONUS_GHOST) mineExplosion(space, item); - } - break; - + break; case ITEM_EXPLOSION : case ITEM_BIG_EXPLOSION : - if( tux->bonus != BONUS_GHOST ) - { + if (tux->bonus != BONUS_GHOST) eventTuxIsDeadWithItem(tux, item); - } - break; - + break; case BONUS_SPEED : case BONUS_SHOT : case BONUS_TELEPORT : @@ -514,18 +433,13 @@ static void action_giveitem(space_t *space, item_t *item, tux_t *tux) case BONUS_4X : case BONUS_HIDDEN : tuxGiveBonus(tux, item); - - if( getNetTypeGame() == NET_GAME_TYPE_SERVER ) - { + if (getNetTypeGame() == NET_GAME_TYPE_SERVER) proto_send_del_server(PROTO_SEND_ALL, NULL, item->id); - } - delObjectFromSpaceWithObject(space, item, destroyItem); - #ifdef PUBLIC_SERVER addNewItem(space, ID_UNKNOWN); #endif - break; + break; } } @@ -533,28 +447,19 @@ void eventGiveTuxListItem(tux_t *tux, space_t *spaceItem) { int x, y, w, h; - assert( spaceItem != NULL ); - assert( tux != NULL ); - - if( getNetTypeGame() == NET_GAME_TYPE_CLIENT ) - { + assert(spaceItem != NULL); + assert(tux != NULL); + if (getNetTypeGame() == NET_GAME_TYPE_CLIENT) return; - } - - if( tux->status == TUX_STATUS_DEAD ) - { + if (tux->status == TUX_STATUS_DEAD) return; - } - getTuxProportion(tux, &x, &y, &w, &h); - actionSpaceFromLocation(spaceItem, action_giveitem, tux, x, y, w, h); } void destroyItem(item_t *p) { - assert( p != NULL ); - + assert(p != NULL); delID(p->id); free(p); } |