summaryrefslogtreecommitdiff
path: root/src/zal_pipe.c
diff options
context:
space:
mode:
authororoborus <oroborus@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e>2008-06-28 16:38:35 +0000
committeroroborus <oroborus@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e>2008-06-28 16:38:35 +0000
commit2d776fcd61be168e1ff0ff2e4a5e71835e7cea19 (patch)
tree7cf274897bf540d5332d446f583ffd066e4e2e1d /src/zal_pipe.c
parentb877ae23ac5d380ab3aa48d7724045cf4883b186 (diff)
- prekopanie adresarovej struktury, prva cast
git-svn-id: http://opensvn.csie.org/tuxanci_ng@77 0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e
Diffstat (limited to 'src/zal_pipe.c')
-rw-r--r--src/zal_pipe.c256
1 files changed, 0 insertions, 256 deletions
diff --git a/src/zal_pipe.c b/src/zal_pipe.c
deleted file mode 100644
index 65ba6b2..0000000
--- a/src/zal_pipe.c
+++ /dev/null
@@ -1,256 +0,0 @@
-
-#include <stdlib.h>
-#include <assert.h>
-
-#include "pipe.h"
-#include "layer.h"
-#include "screen_world.h"
-#include "shot.h"
-
-pipe_t* newPipe(int x, int y, int w, int h, int layer, int id, int id_out, int position, SDL_Surface *img)
-{
- pipe_t *new;
-
- assert( img != NULL );
-
- new = malloc( sizeof(pipe_t) );
- assert( new != NULL );
-
- new->x = x;
- new->y = y;
- new->w = w;
- new->h = h;
- new->layer = layer;
- new->id = id;
- new->id_out = id_out;
- new->position = position;
- new->img = img;
-
- return new;
-}
-
-void drawPipe(pipe_t *p)
-{
- assert( p != NULL );
-
- addLayer(p->img, p->x, p->y, 0, 0, p->img->w, p->img->h, p->layer);
-}
-
-void drawListPipe(list_t *listPipe)
-{
- pipe_t *thisPipe;
- int i;
-
- assert( listPipe != NULL );
-
- for( i = 0 ; i < listPipe->count ; i++ )
- {
- thisPipe = (pipe_t *)listPipe->list[i];
- assert( thisPipe != NULL );
- drawPipe(thisPipe);
- }
-}
-
-pipe_t* isConflictWithListPipe(list_t *listPipe, int x, int y, int w, int h)
-{
- pipe_t *thisPipe;
- int i;
-
- assert( listPipe != NULL );
-
- for( i = 0 ; i < listPipe->count ; i++ )
- {
- thisPipe = (pipe_t *)listPipe->list[i];
- assert( thisPipe != NULL );
-
- if( conflictSpace(x, y, w, h,
- thisPipe->x, thisPipe->y, thisPipe->w, thisPipe->h) )
- {
- return thisPipe;
- }
- }
-
- return NULL;
-}
-
-static int negPosition(int n)
-{
- switch( n )
- {
- case TUX_UP :
- return TUX_DOWN;
-
- case TUX_LEFT :
- return TUX_RIGHT;
-
- case TUX_RIGHT :
- return TUX_LEFT;
-
- case TUX_DOWN :
- return TUX_UP;
-
- default :
- assert( ! "premenna n ma zlu hodnotu !" );
- break;
- }
-}
-
-static pipe_t* getPipeId(list_t *listPipe, int id)
-{
- int i;
-
- for( i = 0 ; i < listPipe->count ; i++ )
- {
- pipe_t *thisPipe;
-
- thisPipe = (pipe_t *) listPipe->list[i];
-
- if( thisPipe->id == id )
- {
- return thisPipe;
- }
- }
-
- return NULL;
-}
-
-static int myAbs(int n)
-{
- return ( n > 0 ? n : -n );
-}
-
-static int getSppedShot(shot_t *shot)
-{
- return ( myAbs(shot->px) > myAbs(shot->py) ? myAbs(shot->px) : myAbs(shot->py) );
-}
-
-static void transformShot(shot_t *shot, int position)
-{
- int speed;
-
- speed = getSppedShot(shot);
-
- switch( position )
- {
- case TUX_UP :
- shot->px = 0;
- shot->py = -speed;
- break;
-
- case TUX_LEFT :
- shot->px = -speed;
- shot->py = 0;
- break;
-
- case TUX_RIGHT :
- shot->px = speed;
- shot->py = 0;
- break;
-
- case TUX_DOWN :
- shot->px = 0;
- shot->py = +speed;
- break;
-
- }
-
- shot->position = position;
- shot->isCanKillAuthor = TRUE;
-}
-
-static void moveShot(shot_t *shot, pipe_t *pipe, list_t *listPipe)
-{
- pipe_t *distPipe;
- int offset;
-
- distPipe = getPipeId(listPipe, pipe->id_out);
-
- if( distPipe == NULL )
- {
- fprintf(stderr, "Pipe %d ID not found\n", pipe->id);
- return;
- }
-
- printf("XXX\n");
-
- switch( shot->position )
- {
- case TUX_UP :
- case TUX_DOWN :
- offset = shot->x - pipe->x;
- break;
-
- case TUX_RIGHT :
- case TUX_LEFT :
- offset = shot->y - pipe->y;
- break;
- }
-
- transformShot(shot, distPipe->position);
-
- switch( shot->position )
- {
- case TUX_UP :
- shot->x = distPipe->x + offset;
- shot->y = distPipe->y;
- break;
-
- case TUX_LEFT :
- shot->x = distPipe->x;
- shot->y = distPipe->y + offset;
- break;
-
- case TUX_RIGHT :
- shot->x = distPipe->x + distPipe->w;
- shot->y = distPipe->y + offset;
- break;
-
- case TUX_DOWN :
- shot->x = distPipe->x + offset;
- shot->y = distPipe->y + distPipe->h;
- break;
- }
-}
-
-void eventConflictShotWithPipe(list_t *listPipe, list_t *listShot)
-{
- shot_t *thisShot;
- pipe_t *thisPipe;
- int i;
-
- assert( listPipe != NULL );
- assert( listShot != NULL );
-
- for( i = 0 ; i < listShot->count ; i++ )
- {
- thisShot = (shot_t *)listShot->list[i];
- assert( thisShot != NULL );
-
- if( ( thisPipe = isConflictWithListPipe(listPipe, thisShot->x, thisShot->y,
- thisShot->w, thisShot->h) ) != NULL )
- {
- if( thisShot->author->bonus == BONUS_GHOST &&
- thisShot->author->bonus_time > 0 )
- {
- continue;
- }
-
- if( negPosition( thisShot->position ) == thisPipe->position )
- {
- moveShot(thisShot, thisPipe, listPipe);
- }
- else
- {
- delListItem(listShot, i, destroyShot);
- i--;
- }
- }
- }
-}
-
-void destroyPipe(pipe_t *p)
-{
- assert( p != NULL );
- free(p);
-}
-