parent
4d6185049e
commit
d32e153565
@ -1,68 +0,0 @@
|
|||||||
#include "bucket.h"
|
|
||||||
#include "stdio.h"
|
|
||||||
#include "stdlib.h"
|
|
||||||
#include "../sprite.h"
|
|
||||||
#include "../IsometricMap/tile.h"
|
|
||||||
|
|
||||||
Bucket * BucketInit(void *data, int type){
|
|
||||||
Bucket *bucket = malloc(sizeof(Bucket));
|
|
||||||
|
|
||||||
if(type == SPRITE){
|
|
||||||
bucket->sprite = (Sprite *) data;
|
|
||||||
bucket->tile = 0;
|
|
||||||
bucket->depth = bucket->sprite->x + bucket->sprite->y + bucket->sprite->z;
|
|
||||||
}
|
|
||||||
else if(type == TILE){
|
|
||||||
bucket->sprite = 0;
|
|
||||||
bucket->tile = (Tile *) data;
|
|
||||||
bucket->depth = bucket->tile->x * 32 + bucket->tile->y * 32 + bucket->tile->z;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
printf("WARNING: BucketInit called with unknown type! Undefined behavior expected\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
bucket->type = type;
|
|
||||||
|
|
||||||
bucket->left = 0;
|
|
||||||
bucket->right = 0;
|
|
||||||
|
|
||||||
return bucket;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void BucketInsert(Bucket *head, Bucket *new){
|
|
||||||
Bucket *current = head;
|
|
||||||
|
|
||||||
while(current != 0){
|
|
||||||
if(current->depth > new->depth){
|
|
||||||
// Rechter Teilbaum
|
|
||||||
if(current->right != 0){
|
|
||||||
current = current->right;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
current->right = new;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
// Linker Teilbaum
|
|
||||||
if(current->left != 0){
|
|
||||||
current = current->left;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
current->left = new;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void BucketRemove(Bucket *head, Bucket *new){
|
|
||||||
if(new->left == 0){
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void BucketChanged(Bucket *head, Bucket *changed){
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,29 +0,0 @@
|
|||||||
#ifndef BUCKET_H_
|
|
||||||
#define BUCKET_H_
|
|
||||||
#include "raylib.h"
|
|
||||||
|
|
||||||
#define SPRITE 0
|
|
||||||
#define TILE 1
|
|
||||||
|
|
||||||
typedef struct Sprite Sprite;
|
|
||||||
typedef struct Tile Tile;
|
|
||||||
|
|
||||||
typedef struct Bucket{
|
|
||||||
int type;
|
|
||||||
Sprite *sprite;
|
|
||||||
Tile *tile;
|
|
||||||
float depth;
|
|
||||||
|
|
||||||
struct Bucket *left;
|
|
||||||
struct Bucket *right;
|
|
||||||
} Bucket;
|
|
||||||
|
|
||||||
Bucket * BucketInit(void *data, int type);
|
|
||||||
|
|
||||||
void BucketInsert(struct Bucket *head, struct Bucket *new);
|
|
||||||
|
|
||||||
void BucketRemove(struct Bucket *head, struct Bucket *new);
|
|
||||||
|
|
||||||
void BucketChanged(struct Bucket *head, struct Bucket *changed);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
Loading…
Reference in new issue