From 776577985a056407645a448f8332d6ce69d645a3 Mon Sep 17 00:00:00 2001 From: oroborus Date: Mon, 7 Jul 2008 20:49:54 +0000 Subject: - opravy v kodu, ktory obsluhuje konfig - oprava v screen_setting - oprava v layer git-svn-id: http://opensvn.csie.org/tuxanci_ng@123 0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e --- src/client/layer.c | 44 ++++++++++++++++++++------------------------ 1 file changed, 20 insertions(+), 24 deletions(-) (limited to 'src/client/layer.c') diff --git a/src/client/layer.c b/src/client/layer.c index d4fcb7b..9354aae 100755 --- a/src/client/layer.c +++ b/src/client/layer.c @@ -26,7 +26,9 @@ bool_t isLayerInicialized() */ void initLayer() { + printf("*******************\nnew layer\n**********************\n"); listLayer = newList(); + isLayerInit = TRUE; } /* @@ -42,7 +44,7 @@ void addLayer(SDL_Surface *img, { layer_t *new; layer_t *this; - int i; + int i, j; assert( img != NULL ); @@ -56,32 +58,26 @@ void addLayer(SDL_Surface *img, new->layer = player; new->image = img; - if( listLayer->count == 0 ) - { - addList(listLayer, new); - return; - } - - i = 0; - this = (layer_t *)listLayer->list[0]; - - //vyhladaj svoju vrstvu - while( i < listLayer->count && this->layer < new->layer ) - { - this = (layer_t *)listLayer->list[++i]; - } - - //porovnaj s vyskami na tvojej vrstve, - //ak neexistuje, rovno to tam hod - this = (layer_t *)listLayer->list[i]; - - while( i < listLayer->count && this->y+this->h < new->y+new->h && new->layer == this->layer ) + for( i = 0 ; i < listLayer->count ; i++ ) { - this = (layer_t *)listLayer->list[++i]; + this = (layer_t *)listLayer->list[i]; + + if( this->layer == new->layer ) + { + for( j = i ; j < listLayer->count ; j++ ) + { + this = (layer_t *)listLayer->list[j]; + + if( this->y+this->h > new->y+new->h ) + { + insList(listLayer, j, new); + return; + } + } + } } - insList(listLayer, i, new); - isLayerInit = TRUE; + addList(listLayer, new); } /* -- cgit v1.2.3