Blob Blame Raw

#include <assert.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <math.h>

#include "common.h"
#include "sprite.h"


// sprite

void heliUpdateSprites();


// string

char* heliStringCopy(char *x);
void heliLowercase(char *x);


// pointer array

typedef struct _HeliArray {
	void **items;
	int count;
	int allocated;
} HeliArray;

int heliArrayInit(HeliArray *a);
void heliArrayClear(HeliArray *a, int freeData);
int heliArrayDestroy(HeliArray *a, int freeData);
void* heliArrayGet(HeliArray *a, int i);
void heliArrayInsert(HeliArray *a, int i, void *item);
void heliArrayAppend(HeliArray *a, void *item);
void heliArrayRemove(HeliArray *a, int i, int freeData);

int heliStringsetFind(HeliArray *a, char *x, int *gtOrEqIndex);
int heliStringsetGet(HeliArray *a, char *x);
void heliStringsetAdd(HeliArray *a, char *x);
void heliStringsetRemove(HeliArray *a, char *x);


// collider

typedef struct _HeliCollider {
	Collider type;
	double x;
	double y;
	double radius;
	double width;
	double height;
	double rotation;
} HeliCollider;

int heliCheckCollision(HeliCollider *a, HeliCollider *b, double *normX, double *normY);
int heliPointCollision(HeliCollider *c, double x, double y);