diff options
Diffstat (limited to 'src/client/layer.c~')
| -rw-r--r-- | src/client/layer.c~ | 221 |
1 files changed, 0 insertions, 221 deletions
diff --git a/src/client/layer.c~ b/src/client/layer.c~ deleted file mode 100644 index 8e77ee4..0000000 --- a/src/client/layer.c~ +++ /dev/null @@ -1,221 +0,0 @@ - -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "tux.h" - -#include "interface.h" -#include "layer.h" -#include "image.h" - -#include "screen_world.h" - -static list_t *listLayer; - -static bool_t isLayerInit = FALSE; - -bool_t isLayerInicialized() -{ - return isLayerInit; -} - -/* - * Inicializuje globalny zoznam vsrtiev - */ -void initLayer() -{ - listLayer = newList(); - isLayerInit = TRUE; -} - -/* - * Prida novu polozku do zoznamu vrstiev - * *img - obrazok, ktory obsahuje polozka - * x y w h - suradnca kam sa obrazok vykresli a jeho rozmery - * px py pw ph - suradnica casti obrazka *img ktora sa ma zobrazit - * layer - vrstva na ktorej sa zobrazi obrazok - */ -void addLayer(image_t *img, - int x,int y, int px,int py, - int w,int h, int player) -{ - layer_t *new; - layer_t *this; - int i, j; - - assert( img != NULL ); - - new = malloc( sizeof(layer_t) ); - new->x = x; - new->y = y; - new->w = w; - new->h = h; - new->px = px; - new->py = py; - new->layer = player; - new->image = img; - - for( i = 0 ; i < listLayer->count ; 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; - } - } - } - } - - addList(listLayer, new); -} - -/* - * Vykresli vsetky polozky na obrazovku - * poukadane podla vrstvy a suradnice Y+H - * po dokresleni sa zoznam uvolni. - */ -void drawLayer() -{ - layer_t *this; - int i; - - for( i = 0 ; i < listLayer->count ; i++ ) - { - this = (layer_t *)listLayer->list[i]; - - drawImage(this->image, - this->x, this->y, - this->px, this->py, - this->w, this->h); - } - - //printf("listLayer->count = %d\n", listLayer->count); - - destroyListItem(listLayer, free); - listLayer = newList(); -} - -void drawLayerCenter(int x, int y) -{ - layer_t *this; - int screen_x, screen_y; - int i; - //int count = 0; - - getCenterScreen(&screen_x, &screen_y, x, y, WINDOW_SIZE_X, WINDOW_SIZE_Y); - - for( i = 0 ; i < listLayer->count ; i++ ) - { - this = (layer_t *)listLayer->list[i]; - - if( this->x + this->w < screen_x || this->x > screen_x + WINDOW_SIZE_X || - this->y + this->h < screen_y || this->y > screen_y + WINDOW_SIZE_Y ) - { - continue; - } - - //count++; - - drawImage(this->image, - this->x - screen_x, this->y - screen_y, - this->px, this->py, - this->w, this->h); - - //printf("%d %d\n", this->x - screen_x, this->y - screen_y); - } - - //printf("count = %d\n", count); - - destroyListItem(listLayer, free); - listLayer = newList(); -} - -void drawLayerSplit(int local_x, int local_y, int x, int y, int w, int h) -{ - layer_t *this; - int i; - //int count = 0; - - for( i = 0 ; i < listLayer->count ; i++ ) - { - this = (layer_t *)listLayer->list[i]; - - if( this->x + this->w < x || this->x > x + w || - this->y + this->h < y || this->y > y + h ) - { - continue; - } - - //count++; - - if( local_x + (this->x - x) < local_x ) - { - int z; - - z = local_x - ( local_x + (this->x - x) ); - - this->x += z; - this->px += z; - this->w -= z; - } - - if( local_x + (this->x - x) + this->w > local_x+w ) - { - this->w -= ( local_x + (this->x - x) + this->w ) - (local_x + w); - } - - if( local_y + (this->y - y) < local_y ) - { - int z; - - z = local_y - ( local_y + (this->y - y) ); - - this->y += z; - this->py += z; - this->h -= z; - } - - if( local_y + (this->y - y) + this->h > local_y+h ) - { - this->h -= ( local_y + (this->y - y) + this->h ) - (local_y + h); - } - - drawImage(this->image, - local_x + (this->x - x), local_y + (this->y - y), - this->px, this->py, - this->w, this->h); - - //printf("%d %d\n", this->x - screen_x, this->y - screen_y); - } - - //printf("count = %d\n", count); - - destroyListItem(listLayer, free); - listLayer = newList(); -} - -void flushLayer() -{ - destroyListItem(listLayer, free); - listLayer = newList(); -} - -/* - * Odstrani zoznam vrtsiev z pamete. - */ -void quitLayer() -{ - destroyListItem(listLayer, free); - isLayerInit = FALSE; -} - |