e7b9eb5b702fcee756f4d44e3639c6c804684826
[supertux.git] / src / special.h
1 //
2 // C Interface: special
3 //
4 // Description: 
5 //
6 //
7 // Author: Tobias Glaesser <tobi.web@gmx.de>, (C) 2004
8 //
9 // Copyright: See COPYING file that comes with this distribution
10 //
11 //
12
13 #define BULLET_STARTING_YM 1
14 #define BULLET_XM 5
15
16 #ifndef SUPERTUX_SPECIAL_H
17 #define SUPERTUX_SPECIAL_H
18
19 #include <SDL.h>
20 #include "bitmask.h"
21 #include "type.h"
22 #include "texture.h"
23 #include "collision.h"
24 #include "player.h"
25
26 /* Upgrade types: */
27
28 enum {
29   UPGRADE_MINTS,
30   UPGRADE_COFFEE,
31   UPGRADE_HERRING
32 };
33
34 typedef struct upgrade_type
35   {
36     int kind;
37     base_type base;
38   }
39 upgrade_type;
40
41 typedef struct bullet_type
42   {
43     base_type base;
44   }
45 bullet_type;
46
47 extern texture_type img_bullet;
48 extern bitmask* bm_bullet;
49
50 void create_special_bitmasks();
51
52 extern texture_type img_golden_herring;
53
54 void upgrade_init(upgrade_type *pupgrade, float x, float y, int kind);
55 void upgrade_action(upgrade_type *pupgrade);
56 void upgrade_draw(upgrade_type *pupgrade);
57 void upgrade_collision(upgrade_type *pupgrade, void* p_c_object, int c_object);
58
59 void bullet_init(bullet_type* pbullet, float x, float y, float xm, int dir);
60 void bullet_action(bullet_type *pbullet);
61 void bullet_draw(bullet_type *pbullet);
62 void bullet_collision(bullet_type *pbullet, int c_object);
63
64 #endif /*SUPERTUX_SPECIAL_H*/