96 lines
1.4 KiB
C
96 lines
1.4 KiB
C
/*
|
|
* Main game interface to platform layer.
|
|
*/
|
|
|
|
// TOP
|
|
|
|
#ifndef CD_H
|
|
#define CD_H
|
|
|
|
struct Memory{
|
|
void *logical;
|
|
u32 logical_size;
|
|
void *transient;
|
|
u32 transient_size;
|
|
|
|
#ifdef DEVELOPER
|
|
void *developer;
|
|
u32 developer_size;
|
|
#endif
|
|
};
|
|
|
|
struct Key_State{
|
|
b8 down, prev_down;
|
|
};
|
|
|
|
struct Input_State{
|
|
f32 dt;
|
|
|
|
i32 mx, my;
|
|
Key_State left_button;
|
|
Key_State right_button;
|
|
|
|
Key_State *letter;
|
|
Key_State letter_[26];
|
|
Key_State number[10];
|
|
|
|
Key_State up;
|
|
Key_State down;
|
|
Key_State left;
|
|
Key_State right;
|
|
|
|
Key_State esc;
|
|
};
|
|
|
|
#ifdef DEVELOPER
|
|
|
|
#include "4tech_keycodes.h"
|
|
|
|
struct Key_Events{
|
|
char events[32];
|
|
i32 count;
|
|
};
|
|
|
|
struct Dev_File_Drop{
|
|
char name[1024];
|
|
};
|
|
|
|
struct Dev_Input_State{
|
|
Input_State input;
|
|
|
|
Key_State *fkeys;
|
|
Key_State fkeys_[12];
|
|
|
|
u32 drop_count;
|
|
Dev_File_Drop drops[128];
|
|
f32 drop_x, drop_y;
|
|
|
|
Key_Events keys;
|
|
|
|
};
|
|
#endif
|
|
|
|
struct Render_Target;
|
|
|
|
#define App_Step_Sig(n) void n( \
|
|
System_API *system, \
|
|
Memory memory, \
|
|
Render_Target *main_target, \
|
|
Render_Target *dev_target, \
|
|
struct Asset_Bank *bank, \
|
|
Input_State *input, \
|
|
Dev_Input_State *dev_input, \
|
|
i32 loop_mode)
|
|
|
|
typedef App_Step_Sig(App_Step_Function);
|
|
|
|
struct App_Functions{
|
|
App_Step_Function *step;
|
|
};
|
|
|
|
#endif
|
|
|
|
// BOTTOM
|
|
|
|
|