- removed NO_UPDATE and let the default argument handle it
[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     base_type old_base;
39   }
40 upgrade_type;
41
42 typedef struct bullet_type
43   {
44     base_type base;
45     base_type old_base;
46   }
47 bullet_type;
48
49 extern texture_type img_bullet;
50 extern bitmask* bm_bullet;
51
52 void create_special_bitmasks();
53
54 extern texture_type img_golden_herring;
55
56 void upgrade_init(upgrade_type *pupgrade, float x, float y, int dir, int kind);
57 void upgrade_action(upgrade_type *pupgrade);
58 void upgrade_draw(upgrade_type *pupgrade);
59 void upgrade_collision(upgrade_type *pupgrade, void* p_c_object, int c_object);
60
61 void bullet_init(bullet_type* pbullet, float x, float y, float xm, int dir);
62 void bullet_action(bullet_type *pbullet);
63 void bullet_draw(bullet_type *pbullet);
64 void bullet_collision(bullet_type *pbullet, int c_object);
65
66 #endif /*SUPERTUX_SPECIAL_H*/