Very basic fsm

This commit is contained in:
2024-01-10 07:28:30 +01:00
parent adcee0a94d
commit c4c2b7610d
2 changed files with 28 additions and 0 deletions

8
engine/breeze/ai/fsm.c Normal file
View File

@@ -0,0 +1,8 @@
#include "fsm.h"
void bzFSMSetState(BzFSMState *state, const BzFSMState *newState, void *data) {
state->exit(data);
newState->enter(data);
*state = *newState;
}

20
engine/breeze/ai/fsm.h Normal file
View File

@@ -0,0 +1,20 @@
#ifndef BREEZE_FSM_H
#define BREEZE_FSM_H
#include "../defines.h"
#define BZ_FSM_STACK_SIZE 2
typedef void(*BzFSMFn)(void *data);
typedef struct BzFSMState {
BzFSMFn enter;
BzFSMFn exit;
BzFSMFn update;
} BzFSMState;
void bzFSMSetState(BzFSMState *state, const BzFSMState *newState, void *data);
#endif //BREEZE_FSM_H