-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathenemy.c
161 lines (126 loc) · 3.35 KB
/
enemy.c
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
/***********************************************************
MEGA CAR WARS
ENEMY.C
***********************************************************/
#include "inc/enemy.h"
// LIBS ///////////////////////////////////////////////////
// ASSETS /////////////////////////////////////////////////
#include "sprite.h"
// DATA ///////////////////////////////////////////////////
// ENEMY TYPE DEFINITIONS
const struct t_enemy_def enemy_types[MAX_ENEMY_TYPES] =
{
// Tire launcher
{
&nmy_tirelauncher_sprite,
Enemy_IATireLauncher,
ENEMY_DEFAULT_HITPOINTS
},
// Crazy car
{
&nmy_crazycar_sprite,
Enemy_IACrazyCar,
ENEMY_DEFAULT_HITPOINTS
},
// Helicopter
{
&nmy_helicopter_sprite,
Enemy_IAHelicopter,
ENEMY_DEFAULT_HITPOINTS
},
// Sanke
{
&nmy_snake_sprite,
Enemy_IASnake,
ENEMY_DEFAULT_HITPOINTS
},
// Crow
{
&nmy_crow_sprite,
Enemy_IACrow,
ENEMY_DEFAULT_HITPOINTS
},
// Dron
{
&nmy_dron_sprite,
Enemy_IADron,
ENEMY_DEFAULT_HITPOINTS
},
// Penguin
{
&nmy_penguin_sprite,
Enemy_IAPenguin,
ENEMY_DEFAULT_HITPOINTS
},
};
// Enemies handler buffer
struct t_enemy_data enemies[MAX_ENEMIES_ROOM];
// FUNCTIONS //////////////////////////////////////////////
//---------------------------------------------------------
// ENEMY CLEAR DATA
//---------------------------------------------------------
void Enemy_clearData()
{
u8 i;
for(i = 0; i < MAX_ENEMIES_ROOM; i++)
SPR_releaseSprite(enemies[i].sprite);
SPR_update();
}
//---------------------------------------------------------
// NEW ENEMY
//---------------------------------------------------------
void Enemy_new(const struct t_enemy_spawn spawndata, u8 id, u8 difficulty)
{
u8 type = spawndata.type;
u16 posx = spawndata.startx;
u16 posy = spawndata.starty;
enemies[id].sprite = SPR_addSprite(enemy_types[type].sprite, posx, posy,
TILE_ATTR(ENEMY_PALETTE, TRUE, FALSE, FALSE));
enemies[id].posx = intToFix16(posx);
enemies[id].posy = intToFix16(posy);
enemies[id].status = ENEMY_STATUS_STAND;
enemies[id].energy = enemy_types[type].hitpoints;
SPR_setPosition(enemies[id].sprite, posx, posy);
}
//---------------------------------------------------------
// IA TIRE LAUNCHER
//---------------------------------------------------------
void Enemy_IATireLauncher(u8 id, u8 level)
{
}
//---------------------------------------------------------
// IA CRAZY CAR
//---------------------------------------------------------
void Enemy_IACrazyCar(u8 id, u8 level)
{
}
//---------------------------------------------------------
// IA HELICOPTER
//---------------------------------------------------------
void Enemy_IAHelicopter(u8 id, u8 level)
{
}
//---------------------------------------------------------
// IA SNAKE
//---------------------------------------------------------
void Enemy_IASnake(u8 id, u8 level)
{
}
//---------------------------------------------------------
// IA CROW
//---------------------------------------------------------
void Enemy_IACrow(u8 id, u8 level)
{
}
//---------------------------------------------------------
// IA DRON
//---------------------------------------------------------
void Enemy_IADron(u8 id, u8 level)
{
}
//---------------------------------------------------------
// IA PENGUIN
//---------------------------------------------------------
void Enemy_IAPenguin(u8 id, u8 level)
{
}