diff --git a/game/src/EnemyStates.c b/game/src/EnemyStates.c new file mode 100644 index 0000000..a0972ce --- /dev/null +++ b/game/src/EnemyStates.c @@ -0,0 +1,13 @@ +#include "EnemyStates.h" +#include "Enemy.h" + +void EnemyState_Exit(Enemy* self) {} + +void EnemyIdle_Enter(Enemy* self) { + self->currentAnimation = self->idle; + animation_sprite_play_from(self->currentAnimation, 0.f); +} + +const State* EnemyIdle_Update(Enemy* self, float deltaTime) { + return EnemyIdle(); +} diff --git a/game/src/EnemyStates.h b/game/src/EnemyStates.h new file mode 100644 index 0000000..b66c70f --- /dev/null +++ b/game/src/EnemyStates.h @@ -0,0 +1,28 @@ +#ifndef FIGHT_ENEMY_STATES_H +#define FIGHT_ENEMY_STATES_H + +#include "state.h" + +typedef struct Enemy Enemy; + +extern void EnemyState_Exit(Enemy* self); + +extern void EnemyIdle_Enter(Enemy* self); +extern const State* EnemyIdle_Update(Enemy* self, float deltaTime); + +DefineState(EnemyIdle, Enemy, + EnemyIdle_Enter, + EnemyIdle_Update, + EnemyState_Exit +) + +extern void EnemyWalk_Enter(Enemy* self); +extern const State* EnemyWalk_Update(Enemy* self, float deltaTime); + +DefineState(EnemyWalk, Enemy, + EnemyWalk_Enter, + EnemyWalk_Update, + EnemyState_Exit +) + +#endif // !FIGHT_ENEMY_STATES_H