Blob Blame Raw
#ifndef HELI_WORLD_H
#define HELI_WORLD_H


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

typedef void (*Callback)();
typedef struct _Sound *Sound;

typedef enum _KeyEvent {
	KEYEVENT_KEY_DOWN,
	KEYEVENT_KEY_WENTDOWN,
	KEYEVENT_KEY_WENTUP,
	KEYEVENT_MOUSE_DOWN,
	KEYEVENT_MOUSE_WENTDOWN,
	KEYEVENT_MOUSE_WENTUP,
} KeyEvent;


void drawSprites();

Sound createSound(const char *path);
void soundDestroy(Sound sound);
void soundPlay(Sound sound, int loop);
void soundStop(Sound sound);

int keyDown(const char *code);
int keyWentDown(const char *code);
int keyWentUp(const char *code);

int keyEventGetCount(KeyEvent mode);
const char *keyEventGet(KeyEvent mode, int i);

int mouseDidMove();
int mouseDown(const char *code);
int mouseWentDown(const char *code);
int mouseWentUp(const char *code);
double mouseX();
double mouseY();

double transformedMouseX();
double transformedMouseY();

void messageBox(const char *message);
int questionBox(const char *question, const char *answer0, const char *answer1);
int questionBox3(const char *question, const char *answer0, const char *answer1, const char *answer2);
int askText(const char *question, char *answer, int maxAnswerSize);
int askTextEx(const char *question, char *answer, int maxAnswerSize, int multiline, int password);

int worldGetSpriteCount();
Sprite worldGetSprite(int i);

int worldGetWidth();
void worldSetWidth(int width);

int worldGetHeight();
void worldSetHeight(int height);

int worldGetResizable();
void worldSetResizable(int resizable);

const char* worldGetTitle();
void worldSetTitle(const char *title);

double worldGetMinFrameRate();
double worldGetMaxFrameRate();
void worldSetFrameRateEx(double minFrameRate, double maxFrameRate);
void worldSetFrameRate(double frameRate);
double worldGetFrameTime();

int worldGetFrameCount();
double worldGetSeconds();

void worldSetInit(Callback init);
void worldSetDraw(Callback draw);
void worldSetDeinit(Callback deinit);
void worldRun();
void worldStop();


#endif