add GBEngineRegisterResource

This commit is contained in:
Nishi 2026-01-10 18:23:33 +09:00
commit 0cef6840af
Signed by: nishi
GPG key ID: 27EF69B208EB9343
2 changed files with 15 additions and 9 deletions

View file

@ -16,6 +16,7 @@ GBDECL void GBEngineParamInit(GBEngineParam* param);
GBDECL void GBEngineLoop(GBEngine engine);
GBDECL GBClient GBEngineGetClient(GBEngine engine);
GBDECL GBServer GBEngineGetServer(GBEngine engine);
GBDECL int GBEngineRegisterResource(GBEngine engine, const char* name, const char* path);
#ifdef __cplusplus
}

View file

@ -19,9 +19,19 @@ void GBInit(void) {
gload_init();
}
GBEngine GBEngineCreate(GBEngineParam* param) {
GBEngine engine = malloc(sizeof(*engine));
int GBEngineRegisterResource(GBEngine engine, const char* name, const char* path) {
GBResource resource;
if((resource = GBResourceOpen(engine, path)) != NULL) {
shput(engine->resource, name, resource);
return 1;
}
return 0;
}
GBEngine GBEngineCreate(GBEngineParam* param) {
GBEngine engine = malloc(sizeof(*engine));
memset(engine, 0, sizeof(*engine));
@ -34,13 +44,8 @@ GBEngine GBEngineCreate(GBEngineParam* param) {
sh_new_strdup(engine->resource);
if((resource = GBResourceOpen(engine, "base.pak")) != NULL) {
shput(engine->resource, "base", resource);
}
if((resource = GBResourceOpen(engine, "game.pak")) != NULL) {
shput(engine->resource, "game", resource);
}
GBEngineRegisterResource(engine, "base", "base.pak");
GBEngineRegisterResource(engine, "game", "game.pak");
if(engine != NULL && param->client && (engine->client = GBClientCreate(engine)) == NULL) {
GBLog(GBLogError, "Failed to create client");