A game engine for top-down 2D RPG games.
rpg game-engine raylib c99
at main 782 B view raw
1#include <keraforge.h> 2 3 4#define _KF_STATEFILE "data/state.bin" 5 6int kf_state_save(struct kf_state *state) 7{ 8 if (!kf_writebin(_KF_STATEFILE, (u8 *)state, sizeof(*state))) 9 { 10 KF_THROW("failed to write to %s", _KF_STATEFILE); 11 return 0; /* unreachable */ 12 } 13 14 return 1; 15} 16 17int kf_state_load(struct kf_state **pstate) 18{ 19 char *infile = _KF_STATEFILE; 20 kf_logdbg("loading state: %s", infile); 21 22 int res = 0; 23 24 if (!kf_exists(infile)) 25 { 26 kf_logdbg("creating state..."); 27 struct kf_state s = {0}; 28 kf_state_save(&s); 29 res = 1; 30 } 31 32 size_t len = 0; 33 *pstate = (struct kf_state *)kf_readbin(infile, &len); 34 kf_logdbg("loaded state (%p): len=%lu (res=%d)", *pstate, len, res); 35 36 if (!*pstate) 37 { 38 KF_THROW("failed to load state"); 39 return -1; /* unreachable */ 40 } 41 42 return res; 43}