add GBEngineRegisterResource
This commit is contained in:
parent
eb4ff0f2ba
commit
0cef6840af
2 changed files with 15 additions and 9 deletions
|
|
@ -16,6 +16,7 @@ GBDECL void GBEngineParamInit(GBEngineParam* param);
|
||||||
GBDECL void GBEngineLoop(GBEngine engine);
|
GBDECL void GBEngineLoop(GBEngine engine);
|
||||||
GBDECL GBClient GBEngineGetClient(GBEngine engine);
|
GBDECL GBClient GBEngineGetClient(GBEngine engine);
|
||||||
GBDECL GBServer GBEngineGetServer(GBEngine engine);
|
GBDECL GBServer GBEngineGetServer(GBEngine engine);
|
||||||
|
GBDECL int GBEngineRegisterResource(GBEngine engine, const char* name, const char* path);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,9 +19,19 @@ void GBInit(void) {
|
||||||
gload_init();
|
gload_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
GBEngine GBEngineCreate(GBEngineParam* param) {
|
int GBEngineRegisterResource(GBEngine engine, const char* name, const char* path) {
|
||||||
GBEngine engine = malloc(sizeof(*engine));
|
|
||||||
GBResource resource;
|
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));
|
memset(engine, 0, sizeof(*engine));
|
||||||
|
|
||||||
|
|
@ -34,13 +44,8 @@ GBEngine GBEngineCreate(GBEngineParam* param) {
|
||||||
|
|
||||||
sh_new_strdup(engine->resource);
|
sh_new_strdup(engine->resource);
|
||||||
|
|
||||||
if((resource = GBResourceOpen(engine, "base.pak")) != NULL) {
|
GBEngineRegisterResource(engine, "base", "base.pak");
|
||||||
shput(engine->resource, "base", resource);
|
GBEngineRegisterResource(engine, "game", "game.pak");
|
||||||
}
|
|
||||||
|
|
||||||
if((resource = GBResourceOpen(engine, "game.pak")) != NULL) {
|
|
||||||
shput(engine->resource, "game", resource);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(engine != NULL && param->client && (engine->client = GBClientCreate(engine)) == NULL) {
|
if(engine != NULL && param->client && (engine->client = GBClientCreate(engine)) == NULL) {
|
||||||
GBLog(GBLogError, "Failed to create client");
|
GBLog(GBLogError, "Failed to create client");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue