diff options
| author | Connor Thomson <blumatrikz@gmail.com> | 2026-09-08 18:27:39 -0700 |
|---|---|---|
| committer | Connor Thomson <blumatrikz@gmail.com> | 2026-09-08 18:27:39 -0700 |
| commit | f1ddc12b68b4e4c8087962de25260470e6df2bea (patch) | |
| tree | 7d0440a6402a9b0ef75ded23fa64b68534255bba /src/client/layer.c | |
| parent | 6025860a61386bf767b29c3ec5fd0d31285f1056 (diff) | |
Add tuxanci2 files
Diffstat (limited to 'src/client/layer.c')
| -rw-r--r-- | src/client/layer.c | 200 |
1 files changed, 0 insertions, 200 deletions
diff --git a/src/client/layer.c b/src/client/layer.c deleted file mode 100644 index 22c037d..0000000 --- a/src/client/layer.c +++ /dev/null @@ -1,200 +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 "world.h" - -static list_t *listLayer; - -static bool_t isLayerInit = FALSE; - -bool_t layer_is_inicialized() -{ - return isLayerInit; -} - -/* - * Initialize global list of the layers - */ -void layer_init() -{ - listLayer = list_new(); - isLayerInit = TRUE; -} - -/* - * Add image to queue for rendering - * *img - image to be rendered - * x,y - coordinates where to draw the image - * w,h - width and height of rendered part of image - * px,py - coordinates of upper left corner of rendered part of image - * layer - on which layer to draw - * [0] - under Tuxanek; [1] same as Tuxanek; [2] over Tuxanek - */ -void addLayer(image_t *img, int x, int y, int px, int py, int w, int h, int player) -{ - layer_t *new; - layer_t *actual; - int actual_value; - int new_value; - int i; - - 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; - - new_value = player * WINDOW_SIZE_Y + y + h; - - /* here we are sure, that we want to insert it somewhere else than the begining */ - for (i = 0; i < listLayer->count; i++) { - actual = list_get(listLayer, i); - - actual_value = actual->layer * WINDOW_SIZE_Y + actual->y + actual->h; - - if (actual_value > new_value) { - list_ins(listLayer, i, new); - return; - } - } - - list_add(listLayer, new); -} - -/* - * Draws all items onto the screen according to the layer and coordinate Y+H - * After drawing frees the list - */ -void layer_draw_all() -{ - layer_t *this; - int i; - - for (i = 0; i < listLayer->count; i++) { - this = (layer_t *) listLayer->list[i]; - - image_draw(this->image, this->x, this->y, this->px, this->py, this->w, this->h); - } - - /*printf("listLayer->count = %d\n", listLayer->count);*/ - - list_destroy_item(listLayer, free); - listLayer = list_new(); -} - -void layer_draw_center(int x, int y) -{ - layer_t *this; - int screen_x, screen_y; - int i; - /*int count = 0;*/ - - arena_get_center_screen(&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++;*/ - - image_draw(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);*/ - - list_destroy_item(listLayer, free); - listLayer = list_new(); -} - -void layer_draw_slpit(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); - } - - image_draw(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);*/ - - list_destroy_item(listLayer, free); - listLayer = list_new(); -} - -void layer_flush() -{ - list_destroy_item(listLayer, free); - listLayer = list_new(); -} - -/* - * Delete list of layers from memory - */ -void layer_quit() -{ - list_destroy_item(listLayer, free); - isLayerInit = FALSE; -} |