Add branding.
[jody.git] / src / sprite.h
blobbca80e61ed3d3f7e165a3911a00dff15f72e9e71
1 #ifndef __SPRITE_H__
2 #define __SPRITE_H__
4 #include <SDL/SDL.h>
6 struct sprite_frame
8 SDL_Surface *image;
9 };
11 struct sprite_base
13 struct sprite_frame **frames;
14 int is_built, frames_count, image_width, image_height;
15 bool can_be_branded;
18 struct sprite
20 int frame_index;
21 double x, y, prev_x, prev_y;
22 bool is_animating;
23 bool is_drawn;
24 bool is_branded;
25 SDL_Surface *brand;
26 float speed;
27 long last_update;
28 struct sprite_base *sprite_base;
29 SDL_Surface *screen;
33 extern struct sprite_base *base_init(const char *dir);
34 extern struct sprite *sprite_init(struct sprite_base *base, SDL_Surface *screen);
35 extern void free_sprite(struct sprite *sprite);
37 extern void draw(struct sprite *sprite, SDL_Surface *brand);
39 extern void set_frame_index(struct sprite *sprite, int frame_index);
40 extern int get_frame_index();
42 extern void set_speed(struct sprite *sprite, float speed);
43 extern float get_speed(struct sprite *sprite);
45 extern void toggle_is_animating(struct sprite *sprite);
46 extern void start_animating(struct sprite *sprite);
47 extern void stop_animating(struct sprite *sprite);
48 extern void rewind_frame(struct sprite *sprite);
50 extern void xadd(struct sprite *sprite, double displacement);
51 extern void yadd(struct sprite *sprite, double nr);
52 extern void xset(struct sprite *sprite, double nr);
53 extern void yset(struct sprite *sprite, double nr);
54 extern void set(struct sprite *sprite, double x, double y);
56 #endif