From 75eb27bcdcef88bbc0bec64b15b0f1d48e060847 Mon Sep 17 00:00:00 2001 From: Jonathan Hager Date: Wed, 4 Jan 2023 19:51:20 +0100 Subject: [PATCH] Branchen vergessen --- DepthSorting/bucket.c | 19 ++++++++++++++++--- DepthSorting/bucket.h | 7 +++++++ DepthSorting/mergeSort.c | 7 ------- DepthSorting/mergeSort.h | 9 --------- IsometricMap/isometricMap.c | 3 +-- game.h | 4 ++++ main.c | 1 - 7 files changed, 28 insertions(+), 22 deletions(-) delete mode 100644 DepthSorting/mergeSort.c delete mode 100644 DepthSorting/mergeSort.h diff --git a/DepthSorting/bucket.c b/DepthSorting/bucket.c index 6b40127..d6e466a 100644 --- a/DepthSorting/bucket.c +++ b/DepthSorting/bucket.c @@ -12,15 +12,28 @@ Bucket * BucketInit(Sprite *sprite, Tile *tile){ bucket->sprite = sprite; bucket->tile = 0; bucket->depth = sprite->x + sprite->y + sprite->z; - return bucket; } else if(tile != 0){ bucket->type = 1; bucket->sprite = 0; bucket->tile = tile; bucket->depth = tile->x * 32 + tile->y * 32 + tile->z; - return bucket; } - return 0; + bucket->next = 0; + bucket->prev = 0; + + return bucket; + +} + +void BucketInsert(Bucket *head, Bucket *new){ + +} + +void BucketRemove(Bucket *new){ + new->next->prev = new->prev; + new->prev->next = new->next; + + free(new); } \ No newline at end of file diff --git a/DepthSorting/bucket.h b/DepthSorting/bucket.h index ec5351a..a85bc4e 100644 --- a/DepthSorting/bucket.h +++ b/DepthSorting/bucket.h @@ -4,15 +4,22 @@ typedef struct Sprite Sprite; typedef struct Tile Tile; +typedef struct Bucket Bucket; typedef struct Bucket{ int type; // 0: Sprite, 1: Tile Sprite *sprite; Tile *tile; float depth; + + Bucket *next; + Bucket *prev; } Bucket; Bucket * BucketInit(Sprite *sprite, Tile *tile); +void BucketInsert(Bucket *head, Bucket *new); + +void BucketRemove(Bucket *new); #endif \ No newline at end of file diff --git a/DepthSorting/mergeSort.c b/DepthSorting/mergeSort.c deleted file mode 100644 index 2fc1276..0000000 --- a/DepthSorting/mergeSort.c +++ /dev/null @@ -1,7 +0,0 @@ -#include "bucket.h" -#include "stdlib.h" -#include "stdio.h" - -void MergeSort(Bucket *liste[], int groesse){ - -} \ No newline at end of file diff --git a/DepthSorting/mergeSort.h b/DepthSorting/mergeSort.h deleted file mode 100644 index fb3d744..0000000 --- a/DepthSorting/mergeSort.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef MERGESORT_H_ -#define MERGESORT_H_ -#include "raylib.h" -#include "bucket.h" - -void MergeSort(Bucket *liste[], int groesse); - - -#endif \ No newline at end of file diff --git a/IsometricMap/isometricMap.c b/IsometricMap/isometricMap.c index bc15e6b..a59c54e 100644 --- a/IsometricMap/isometricMap.c +++ b/IsometricMap/isometricMap.c @@ -7,7 +7,6 @@ #include "../DepthSorting/bucket.h" #include "../game.h" #include "../List/list.h" -#include "../DepthSorting/mergeSort.h" // returns pointer to IsometricMap Instance IsometricMap * IsometricMapInit(int layer){ @@ -217,7 +216,7 @@ void IsometricMapDraw(Game *game){ int hmmm = counter; // Merge Sort ist scuffed - MergeSort(buckets, hmmm); + //MergeSort(buckets, hmmm); int k = 0; for(k = 0; k < counter; k++){ diff --git a/game.h b/game.h index 855a416..9f94e9b 100644 --- a/game.h +++ b/game.h @@ -11,6 +11,10 @@ typedef struct Game{ struct InputHandler *inputHandler; struct Camera2D *camera; struct IsometricMap **layers; + + // Head of the sorted buckets. Used to draw sprites/tiles correctly on the screen. + // Head is the bucket with the highest depth + struct Bucket *head; } Game; // returns pointer to new Game instance diff --git a/main.c b/main.c index 403d896..293c160 100644 --- a/main.c +++ b/main.c @@ -8,7 +8,6 @@ #include "IsometricMap/isometricMap.h" #include "game.h" #include "DepthSorting/bucket.h" -#include "DepthSorting/mergeSort.h" int main(){