258 lines
6.1 KiB
C
258 lines
6.1 KiB
C
#pragma once
|
|
|
|
#include <SDL3/SDL.h>
|
|
|
|
#include "version.h"
|
|
|
|
#define KEY_UNKNOWN 0
|
|
#define KEY_A 4
|
|
#define KEY_B 5
|
|
#define KEY_C 6
|
|
#define KEY_D 7
|
|
#define KEY_E 8
|
|
#define KEY_F 9
|
|
#define KEY_G 10
|
|
#define KEY_H 11
|
|
#define KEY_I 12
|
|
#define KEY_J 13
|
|
#define KEY_K 14
|
|
#define KEY_L 15
|
|
#define KEY_M 16
|
|
#define KEY_N 17
|
|
#define KEY_O 18
|
|
#define KEY_P 19
|
|
#define KEY_Q 20
|
|
#define KEY_R 21
|
|
#define KEY_S 22
|
|
#define KEY_T 23
|
|
#define KEY_U 24
|
|
#define KEY_V 25
|
|
#define KEY_W 26
|
|
#define KEY_X 27
|
|
#define KEY_Y 28
|
|
#define KEY_Z 29
|
|
#define KEY_1 30
|
|
#define KEY_2 31
|
|
#define KEY_3 32
|
|
#define KEY_4 33
|
|
#define KEY_5 34
|
|
#define KEY_6 35
|
|
#define KEY_7 36
|
|
#define KEY_8 37
|
|
#define KEY_9 38
|
|
#define KEY_0 39
|
|
#define KEY_RETURN 40
|
|
#define KEY_ESCAPE 41
|
|
#define KEY_BACKSPACE 42
|
|
#define KEY_TAB 43
|
|
#define KEY_SPACE 44
|
|
#define KEY_MINUS 45
|
|
#define KEY_EQUALS 46
|
|
#define KEY_LEFTBRACKET 47
|
|
#define KEY_RIGHTBRACKET 48
|
|
#define KEY_BACKSLASH 49
|
|
#define KEY_NONUSHASH 50
|
|
#define KEY_SEMICOLON 51
|
|
#define KEY_APOSTROPHE 52
|
|
#define KEY_GRAVE 53
|
|
#define KEY_COMMA 54
|
|
#define KEY_PERIOD 55
|
|
#define KEY_SLASH 56
|
|
#define KEY_CAPSLOCK 57
|
|
#define KEY_F1 58
|
|
#define KEY_F2 59
|
|
#define KEY_F3 60
|
|
#define KEY_F4 61
|
|
#define KEY_F5 62
|
|
#define KEY_F6 63
|
|
#define KEY_F7 64
|
|
#define KEY_F8 65
|
|
#define KEY_F9 66
|
|
#define KEY_F10 67
|
|
#define KEY_F11 68
|
|
#define KEY_F12 69
|
|
#define KEY_PRINTSCREEN 70
|
|
#define KEY_SCROLLLOCK 71
|
|
#define KEY_PAUSE 72
|
|
#define KEY_INSERT 73
|
|
#define KEY_HOME 74
|
|
#define KEY_PAGEUP 75
|
|
#define KEY_DELETE 76
|
|
#define KEY_END 77
|
|
#define KEY_PAGEDOWN 78
|
|
#define KEY_RIGHT 79
|
|
#define KEY_LEFT 80
|
|
#define KEY_DOWN 81
|
|
#define KEY_UP 82
|
|
#define KEY_NUMLOCKCLEAR 83
|
|
#define KEY_KP_DIVIDE 84
|
|
#define KEY_KP_MULTIPLY 85
|
|
#define KEY_KP_MINUS 86
|
|
#define KEY_KP_PLUS 87
|
|
#define KEY_KP_ENTER 88
|
|
#define KEY_KP_1 89
|
|
#define KEY_KP_2 90
|
|
#define KEY_KP_3 91
|
|
#define KEY_KP_4 92
|
|
#define KEY_KP_5 93
|
|
#define KEY_KP_6 94
|
|
#define KEY_KP_7 95
|
|
#define KEY_KP_8 96
|
|
#define KEY_KP_9 97
|
|
#define KEY_KP_0 98
|
|
#define KEY_KP_PERIOD 99
|
|
#define KEY_NONUSBACKSLASH 100
|
|
#define KEY_APPLICATION 101
|
|
#define KEY_LCTRL 224
|
|
#define KEY_LSHIFT 225
|
|
#define KEY_LALT 226
|
|
#define KEY_LGUI 227
|
|
#define KEY_RCTRL 228
|
|
#define KEY_RSHIFT 229
|
|
#define KEY_RALT 230
|
|
#define KEY_RGUI 231
|
|
|
|
void loop();
|
|
|
|
int scrw();
|
|
int scrh();
|
|
|
|
uint8_t newsurf(int w, int h);
|
|
uint8_t loadsurf(const char* filename);
|
|
void savesurf(uint8_t surface, const char* filename, uint8_t *pal, uint8_t colors=0);
|
|
void freesurf(uint8_t surface);
|
|
int surfw(uint8_t surface);
|
|
int surfh(uint8_t surface);
|
|
|
|
void setdest(uint8_t surface);
|
|
void setsource(uint8_t surface);
|
|
void setmap(uint8_t surface);
|
|
uint8_t getmap();
|
|
|
|
void cls(uint8_t color=0);
|
|
void color(uint8_t color=6);
|
|
void bcolor(uint8_t color=0);
|
|
|
|
uint32_t *loadpal(const char* filename, uint16_t *palsize=NULL);
|
|
void setpal(uint32_t *pal);
|
|
void setcolor(uint8_t index, uint32_t color);
|
|
uint32_t getcolor(uint8_t index);
|
|
void settrans(uint8_t index);
|
|
uint8_t gettrans();
|
|
void subpal(uint8_t index, uint8_t color);
|
|
void reset_subpal();
|
|
|
|
void pset(int x, int y);
|
|
void pset(int x, int y, uint8_t color);
|
|
|
|
uint8_t pget(int x, int y);
|
|
|
|
void line(int x0, int y0, int x1, int y1);
|
|
void line(int x0, int y0, int x1, int y1, uint8_t color);
|
|
|
|
void hline(int x0, int y, int x1);
|
|
void hline(int x0, int y, int x1, uint8_t color);
|
|
|
|
void vline(int x, int y0, int y1);
|
|
void vline(int x, int y0, int y1, uint8_t color);
|
|
|
|
void rect(int x, int y, int w, int h);
|
|
void rect(int x, int y, int w, int h, uint8_t color);
|
|
|
|
void rectfill(int x, int y, int w, int h);
|
|
void rectfill(int x, int y, int w, int h, uint8_t color);
|
|
|
|
void fillp(uint16_t pat, bool transparent = false);
|
|
|
|
void print(const char *str, int x, int y);
|
|
void print(const char *str, int x, int y, uint8_t color);
|
|
|
|
void clip(int x, int y, int w, int h);
|
|
void clip();
|
|
void origin(int x, int y);
|
|
int camx();
|
|
int camy();
|
|
|
|
void circ(int x, int y, uint8_t r = 4);
|
|
void circ(int x, int y, uint8_t r, uint8_t color);
|
|
|
|
void circfill(int x, int y, uint8_t r = 4);
|
|
void circfill(int x, int y, uint8_t r, uint8_t color);
|
|
|
|
void oval(int x0, int y0, int x1, int y1);
|
|
void oval(int x0, int y0, int x1, int y1, uint8_t color);
|
|
|
|
void ovalfill(int x0, int y0, int x1, int y1);
|
|
void ovalfill(int x0, int y0, int x1, int y1, uint8_t color);
|
|
|
|
uint8_t sget(int x, int y);
|
|
void sset(int x, int y);
|
|
void sset(int x, int y, uint8_t color);
|
|
|
|
void spr(uint8_t n, int x, int y, float w = 1.0f, float h = 1.0f, bool flip_x = false, bool flip_y = false);
|
|
void blit(int sx, int sy, int sw, int sh, int dx, int dy, int dw=0, int dh=0, bool flip_x = false, bool flip_y = false, bool invert = false);
|
|
void blit_r(int sx, int sy, int sw, int sh, int x, int y, float a);
|
|
|
|
void tline(int x0, int y0, int x1, int y1, float mx, float my, float mdx=0.125f, float mdy=0.0f);
|
|
void thline(int x0, int y, int x1, float mx, float my, float mdx=0.125f, float mdy=0.0f);
|
|
void tvline(int x, int y0, int y1, float mx, float my, float mdx=0.0f, float mdy=0.125f);
|
|
|
|
uint8_t mget(int celx, int cely);
|
|
void mset(int celx, int cely, uint8_t snum);
|
|
void map(); //int celx, int cely, int sx, int sy, uint8_t celw, uint8_t celh, uint8_t layer=0);
|
|
|
|
bool btn(uint8_t i);
|
|
int wbtnp();
|
|
bool btnp(uint8_t i);
|
|
bool anykey();
|
|
|
|
bool pad(int8_t i);
|
|
bool padp(int8_t i);
|
|
int wpad();
|
|
|
|
int mousex();
|
|
int mousey();
|
|
int mwheel();
|
|
bool mbtn(uint8_t i);
|
|
bool mbtnp(uint8_t i);
|
|
|
|
float time();
|
|
bool beat(int16_t i);
|
|
|
|
int rnd(int x);
|
|
int getfps();
|
|
|
|
#define debug printf
|
|
|
|
void playmusic(const char *filename, const int loop=-1);
|
|
void pausemusic();
|
|
void resumemusic();
|
|
void stopmusic(const int t=1000);
|
|
void musicpos(float value);
|
|
float musicpos();
|
|
|
|
int loadsound(const char *filename);
|
|
void freesound(int soundfile);
|
|
int playsound(int soundfile, const int volume=-1);
|
|
void stopsound(int soundchannel);
|
|
|
|
int getzoom();
|
|
void setzoom(const int value);
|
|
void setres(const int w, const int h);
|
|
bool getfullscreen();
|
|
void setfullscreen(const bool value);
|
|
bool getcursor();
|
|
void setcursor(const bool value);
|
|
|
|
const char *getconfig(const char* key);
|
|
void setconfig(const char* key, const char* value);
|
|
const char *configfolder();
|
|
|
|
#define UPDATE_ALWAYS 0
|
|
#define UPDATE_WAIT 1
|
|
#define UPDATE_TIMEOUT 2
|
|
void setupdatemode(const int value, const int t=0);
|
|
int getupdatemode();
|
|
|
|
void exit();
|