44 lines
1.1 KiB
C
44 lines
1.1 KiB
C
#ifndef ENEMIES_H
|
|
#define ENEMIES_H
|
|
|
|
#include <raylib.h>
|
|
#include <stdbool.h>
|
|
|
|
#include "engineAnimation.h"
|
|
#include "enginePhysics.h"
|
|
#include "engineSprite.h"
|
|
#include "pathfinding.h"
|
|
#include "player.h"
|
|
#include "projectiles.h"
|
|
#include "terrain.h"
|
|
#include "wake.h"
|
|
|
|
typedef enum { BOAT, ENEMIES_TEX_COUNT } EnemiesTextureID;
|
|
|
|
#define MAX_ENEMIES 100
|
|
|
|
typedef struct {
|
|
int count;
|
|
Sprite sprite[MAX_ENEMIES];
|
|
Animation animation[MAX_ENEMIES];
|
|
Physics physics[MAX_ENEMIES];
|
|
bool arrived[MAX_ENEMIES];
|
|
Vector2 destPos[MAX_ENEMIES];
|
|
Vector2 path[MAX_ENEMIES][PATH_MAX_WAYPOINTS];
|
|
int pathLength[MAX_ENEMIES];
|
|
int pathIndex[MAX_ENEMIES];
|
|
bool alive[MAX_ENEMIES];
|
|
float reloadTimer[MAX_ENEMIES];
|
|
float destinationCooldown[MAX_ENEMIES];
|
|
bool chasing[MAX_ENEMIES];
|
|
float chaseRepathTimer[MAX_ENEMIES];
|
|
WakeTrail wakeTrail[MAX_ENEMIES];
|
|
} Enemies;
|
|
|
|
Enemies CreateEnemies(Camera2D *camera, Terrain *terrain);
|
|
void UpdateEnemies(Enemies *enemies, Camera2D *camera, Projectiles *projectiles, Player *player,
|
|
Terrain *terrain);
|
|
void RenderEnemies(Enemies *enemies);
|
|
|
|
#endif
|