GameEngine/include/engine.h
2026-02-20 16:12:16 +01:00

107 lines
1.6 KiB
C

#ifndef ENGINE_H
# define ENGINE_H
#include <render.h>
#include <event.h>
#include <entity.h>
#include <damage.h>
#include <item.h>
#include <quest.h>
#include <skill.h>
#include <player.h>
typedef enum {
CRITICAL_FAIL,
FAIL,
SUCCESS,
CRITICAL_SUCCESS,
} CHECK_STATE;
typedef enum {
SPLASH_SCREEN,
GAMELOOP_SCREEN,
CREDIT_SCREEN,
GAMEOVER_SCREEN,
SERVER_SCREEN,
SECRET_SCREEN,
DEBUG_SCREEN,
} ENGINE_STATE_E;
typedef enum {
DENDRITIC_VOLTAGE,
LAZENBYCOMP_LIQUID,
LAZENBYCOMP_SMOOTH,
POTRA,
} FONTS_ENUM;
typedef struct {
int key[4];//should be the number of action in PLAYER_ACTION
union {
int key;
int pad;
int mouse;
} press;
Vector2 mouse_pos;
Vector2 mouse_delta;
//int mouse_pressed[2];
} Input;
typedef struct {
int state;
Player player;
Assets assets;
} Context;
typedef struct {
Font fonts[4];//
Texture textures;//
Model models;//
Sound sound;
} Assets;
//cities
//hideout
//tiles
//level
//npc
//clan
//army
//team
//typedef struct {
// EVENT_TYPE trigger;
// ACTIVITY_STATE required_state;
// bool (*condition)(int e, Event ev);
// void *(*effect)(int e, Event ev);
//} virtualRule;
//typedef struct {
// EVENT_TYPE trigger;
// ACTIVITY_STATE required_state;
// bool (*condition)(int e, Event ev);
// void *(*effect)(int e, Event ev);
//} physicalRule;
# ifndef ENGINE_PROTOTYPE
# define ENGINE_PROTOTYPE
//Render
void LoadPipeline();
void UnloadPipeline();
//UI
void UserInterface(const Player *player);
//void Menu();
void EngineStateSwitch(ENGINE_STATE_E engine_state);
# endif
//other stuff here
#endif