Branchen vergessen

main
Jonathan Hager 3 years ago
parent 147b03e2df
commit 75eb27bcdc
Signed by: JonathanHager
GPG Key ID: 34881E488569708C

@ -12,15 +12,28 @@ Bucket * BucketInit(Sprite *sprite, Tile *tile){
bucket->sprite = sprite; bucket->sprite = sprite;
bucket->tile = 0; bucket->tile = 0;
bucket->depth = sprite->x + sprite->y + sprite->z; bucket->depth = sprite->x + sprite->y + sprite->z;
return bucket;
} }
else if(tile != 0){ else if(tile != 0){
bucket->type = 1; bucket->type = 1;
bucket->sprite = 0; bucket->sprite = 0;
bucket->tile = tile; bucket->tile = tile;
bucket->depth = tile->x * 32 + tile->y * 32 + tile->z; 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);
} }

@ -4,15 +4,22 @@
typedef struct Sprite Sprite; typedef struct Sprite Sprite;
typedef struct Tile Tile; typedef struct Tile Tile;
typedef struct Bucket Bucket;
typedef struct Bucket{ typedef struct Bucket{
int type; // 0: Sprite, 1: Tile int type; // 0: Sprite, 1: Tile
Sprite *sprite; Sprite *sprite;
Tile *tile; Tile *tile;
float depth; float depth;
Bucket *next;
Bucket *prev;
} Bucket; } Bucket;
Bucket * BucketInit(Sprite *sprite, Tile *tile); Bucket * BucketInit(Sprite *sprite, Tile *tile);
void BucketInsert(Bucket *head, Bucket *new);
void BucketRemove(Bucket *new);
#endif #endif

@ -1,7 +0,0 @@
#include "bucket.h"
#include "stdlib.h"
#include "stdio.h"
void MergeSort(Bucket *liste[], int groesse){
}

@ -1,9 +0,0 @@
#ifndef MERGESORT_H_
#define MERGESORT_H_
#include "raylib.h"
#include "bucket.h"
void MergeSort(Bucket *liste[], int groesse);
#endif

@ -7,7 +7,6 @@
#include "../DepthSorting/bucket.h" #include "../DepthSorting/bucket.h"
#include "../game.h" #include "../game.h"
#include "../List/list.h" #include "../List/list.h"
#include "../DepthSorting/mergeSort.h"
// returns pointer to IsometricMap Instance // returns pointer to IsometricMap Instance
IsometricMap * IsometricMapInit(int layer){ IsometricMap * IsometricMapInit(int layer){
@ -217,7 +216,7 @@ void IsometricMapDraw(Game *game){
int hmmm = counter; int hmmm = counter;
// Merge Sort ist scuffed // Merge Sort ist scuffed
MergeSort(buckets, hmmm); //MergeSort(buckets, hmmm);
int k = 0; int k = 0;
for(k = 0; k < counter; k++){ for(k = 0; k < counter; k++){

@ -11,6 +11,10 @@ typedef struct Game{
struct InputHandler *inputHandler; struct InputHandler *inputHandler;
struct Camera2D *camera; struct Camera2D *camera;
struct IsometricMap **layers; 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; } Game;
// returns pointer to new Game instance // returns pointer to new Game instance

@ -8,7 +8,6 @@
#include "IsometricMap/isometricMap.h" #include "IsometricMap/isometricMap.h"
#include "game.h" #include "game.h"
#include "DepthSorting/bucket.h" #include "DepthSorting/bucket.h"
#include "DepthSorting/mergeSort.h"
int main(){ int main(){

Loading…
Cancel
Save