2021-11-30 21:29:18 -06:00
|
|
|
#ifndef SPRITE_H
|
|
|
|
#define SPRITE_H
|
|
|
|
|
2022-08-28 22:34:33 -05:00
|
|
|
#include <stdio.h>
|
2022-02-06 10:14:57 -06:00
|
|
|
#include "timer.h"
|
2023-01-02 07:55:26 -06:00
|
|
|
#include "texture.h"
|
2023-05-24 20:45:50 -05:00
|
|
|
#include "HandmadeMath.h"
|
|
|
|
#include "render.h"
|
2021-11-30 21:29:18 -06:00
|
|
|
|
2023-03-05 22:05:22 -06:00
|
|
|
|
2021-11-30 21:29:18 -06:00
|
|
|
struct datastream;
|
2022-11-19 17:13:57 -06:00
|
|
|
struct gameobject;
|
2021-11-30 21:29:18 -06:00
|
|
|
|
2022-11-17 16:48:20 -06:00
|
|
|
struct sprite {
|
2023-05-24 20:45:50 -05:00
|
|
|
HMM_Vec2 pos;
|
|
|
|
HMM_Vec2 size;
|
2021-11-30 21:29:18 -06:00
|
|
|
float rotation;
|
2023-05-24 20:45:50 -05:00
|
|
|
struct rgba color;
|
2023-01-12 17:41:54 -06:00
|
|
|
int go;
|
|
|
|
int id;
|
2022-08-28 22:34:33 -05:00
|
|
|
struct Texture *tex;
|
2023-03-05 22:05:22 -06:00
|
|
|
struct glrect frame;
|
2023-01-13 08:05:36 -06:00
|
|
|
int next;
|
2023-01-17 13:04:08 -06:00
|
|
|
int enabled;
|
2023-02-10 14:31:59 -06:00
|
|
|
int layer;
|
2021-11-30 21:29:18 -06:00
|
|
|
};
|
|
|
|
|
2023-01-12 17:41:54 -06:00
|
|
|
int make_sprite(int go);
|
|
|
|
struct sprite *id2sprite(int id);
|
|
|
|
void sprite_delete(int id);
|
2023-01-17 13:04:08 -06:00
|
|
|
void sprite_enabled(int id, int e);
|
2022-11-17 16:48:20 -06:00
|
|
|
void sprite_io(struct sprite *sprite, FILE *f, int read);
|
2023-03-05 22:05:22 -06:00
|
|
|
void sprite_loadtex(struct sprite *sprite, const char *path, struct glrect rect);
|
2022-11-17 16:48:20 -06:00
|
|
|
void sprite_settex(struct sprite *sprite, struct Texture *tex);
|
2023-01-18 17:15:36 -06:00
|
|
|
void sprite_setanim(struct sprite *sprite, struct TexAnim *anim, int frame);
|
2023-01-18 14:43:07 -06:00
|
|
|
void sprite_setframe(struct sprite *sprite, struct glrect *frame);
|
2022-02-06 10:14:57 -06:00
|
|
|
void sprite_initialize();
|
2022-11-17 16:48:20 -06:00
|
|
|
void sprite_draw(struct sprite *sprite);
|
2023-05-24 20:45:50 -05:00
|
|
|
void video_draw(struct datastream *ds, HMM_Vec2 pos, HMM_Vec2 size, float rotate, struct rgba color);
|
2022-07-01 11:14:43 -05:00
|
|
|
void sprite_draw_all();
|
2022-11-17 16:48:20 -06:00
|
|
|
unsigned int incrementAnimFrame(unsigned int interval, struct sprite *sprite);
|
2023-05-07 19:47:49 -05:00
|
|
|
void sprite_flush();
|
2022-08-12 14:03:56 -05:00
|
|
|
|
2023-05-31 12:09:02 -05:00
|
|
|
void gui_draw_img(const char *img, HMM_Vec2 pos);
|
2022-12-24 13:18:06 -06:00
|
|
|
|
|
|
|
|
2021-11-30 21:29:18 -06:00
|
|
|
#endif
|