summaryrefslogtreecommitdiff
path: root/include/tux.h
blob: c07cf0ab4df9b77a2e101c947ed1daa6bfcf4e44 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130

#ifndef TUX_H

#define TUX_H

#include "main.h"
#include "list.h"

#define TUX_STEP 7
#define TUX_LAYER 0

#define TUX_MAX_ANIMATION_FRAME 10
#define TUX_KEY 1

#define TUX_LOCATE_UNKNOWN -100

#define TUX_MAX_PICKUP	50
#define TUX_MAX_BONUS	500

#define TUX_TIME_SPAWN		2000
#define TUX_TIME_CAN_SHOT	500
#define TUX_TIME_CAN_SWITCH_GUN	100

#define TUX_STATUS_ALIVE	0
#define TUX_STATUS_DEAD		1
#define TUX_STATUS_PAUZED	2

#define TUX_CONTROL_NONE		0
#define TUX_CONTROL_KEYBOARD_LEFT	1
#define TUX_CONTROL_KEYBOARD_RIGHT	2
#define TUX_CONTROL_NET			3
#define TUX_CONTROL_ROBOT		4

#define TUX_WIDTH	30
#define TUX_HEIGHT	30

#define TUX_IMG_WIDTH	40
#define TUX_IMG_HEIGHT	54

#define TUX_UP			8
#define TUX_LEFT		4
#define TUX_RIGHT		6
#define TUX_DOWN		2
#define POSITION_UNKNOWN	-1

#define TUX_SHOT	5
#define TUX_SWITCH_GUN	0


#define GUN_NONE	-1

#define GUN_COUNT	7
#define GUN_MAX_SHOT	5

#define BONUS_COUNT	6
#define ITEM_COUNT	16


#define GUN_SIMPLE		0
#define GUN_DUAL_SIMPLE		1
#define GUN_SCATTER		2
#define GUN_TOMMY		3
#define GUN_LASSER		4
#define GUN_MINE		5
#define GUN_BOMBBALL		6

#define ITEM_MINE		7
#define ITEM_EXPLOSION		8
#define ITEM_BIG_EXPLOSION	9

#define BONUS_NONE	-1
#define BONUS_SPEED	10
#define BONUS_SHOT	11
#define BONUS_TELEPORT	12
#define BONUS_GHOST	13
#define BONUS_4X	14
#define BONUS_HIDDEN	15

typedef struct tux_struct
{
	int id;

	int x;
	int y;

	char name[STR_NAME_SIZE];

	int status;
	int control;
	int position;
	int score;

	int gun;
	int shot[GUN_COUNT];
	int round;
	int bonus;

	int bonus_time;
	int pickup_time;
	
	bool_t isCanShot;
	bool_t isCanSwitchGun;

	int frame;
} tux_t;

extern bool_t isTuxInicialized();
extern void initTux();
extern tux_t* newTux();
extern bool_t isTuxAnyGun(tux_t *tux);
extern void getCourse(int n, int *x, int *y);
extern void drawTux(tux_t *tux);
extern void drawListTux(list_t *listTux);
extern void eventTuxIsDead(tux_t *tux);
extern tux_t* isConflictWithListTux(list_t *listTux, int x, int y, int w, int h);
extern int isConflictTuxWithListTux(tux_t *tux, list_t *listTux);
extern void eventConflictTuxWithShot(list_t *listTux, list_t *listShot);
extern void eventConflictTuxWithTeleport(list_t *listTux, list_t *listTeleport);
extern void tuxTeleport(tux_t *tux);
extern void actionTux(tux_t *tux, int action);
extern void eventListTux(list_t *listTux);
extern tux_t* getTuxID(list_t *listTux, int id);
extern void getTuxProportion(tux_t *tux, int *x,int *y, int *w, int *h);
extern void replaceTuxID(tux_t *tux, int id);
extern int isTuxSeesTux(tux_t *tux, tux_t *thisTux);
extern void setTuxProportion(tux_t *tux, int x, int y);
extern void destroyTux(tux_t *tux);
extern void quitTux();

#endif