|
|
|
@ -54,6 +54,23 @@ loadSceneFromJson(game_state* s, render_state* rs) |
|
|
|
game_state* gs = g_game_state; |
|
|
|
game_state* gs = g_game_state; |
|
|
|
render_state* rs = g_render_state; |
|
|
|
render_state* rs = g_render_state; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
slParseCamera(sd, rs->cam); |
|
|
|
|
|
|
|
slParseHexGrid(sd, gs->grid, rs->palette_image); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (gs->grid.gridT == HASH_MAP |
|
|
|
|
|
|
|
&& !slParseGridHashMap(gs->grid, DATA_DIR, HEXMAP_SCHEMA_FILE)) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
ret = false; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (hgInit(gs->grid, rs->filled_hex_render_group, rs->hex_line_render_group, rs->default_shader)) { |
|
|
|
|
|
|
|
// TODO: can remove these once we're using the global color palatte for all textures
|
|
|
|
|
|
|
|
rs->filled_hex_render_group->render_objects[0]->tex_id = rs->palette_id; |
|
|
|
|
|
|
|
rs->hex_line_render_group->render_objects[0]->tex_id = rs->palette_id; |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
ret = false; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (slParseEntities(sd, gs->entities, gs->entity_count, MAX_ENTITIES)) { |
|
|
|
if (slParseEntities(sd, gs->entities, gs->entity_count, MAX_ENTITIES)) { |
|
|
|
for (uint i = 0; i < gs->entity_count; i++) { |
|
|
|
for (uint i = 0; i < gs->entity_count; i++) { |
|
|
|
if (!entInit(gs->entities[i], DATA_DIR, rs->default_shader)) { |
|
|
|
if (!entInit(gs->entities[i], DATA_DIR, rs->default_shader)) { |
|
|
|
@ -66,22 +83,6 @@ loadSceneFromJson(game_state* s, render_state* rs) |
|
|
|
ret = false; |
|
|
|
ret = false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
slParseCamera(sd, rs->cam); |
|
|
|
|
|
|
|
slParseHexGrid(sd, gs->grid, rs->palette_image); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (slCreateHexRenderGroups(gs->grid, rs)) { |
|
|
|
|
|
|
|
if (gs->grid.gridT == HASH_MAP) { |
|
|
|
|
|
|
|
if (!slParseGridHashMap(gs->grid, DATA_DIR, HEXMAP_SCHEMA_FILE)) |
|
|
|
|
|
|
|
ret = false; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!hgInit(gs->grid, rs->filled_hex_render_group, rs->hex_line_render_group)) |
|
|
|
|
|
|
|
ret = false; |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
LOG(ERROR) << "Error creating hexgrid render groups\n"; |
|
|
|
|
|
|
|
ret = false; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!slParseLights(sd, rs->lights, rs->num_lights, rs->max_lights)) { |
|
|
|
if (!slParseLights(sd, rs->lights, rs->num_lights, rs->max_lights)) { |
|
|
|
LOG(ERROR) << "Error loading lights, exiting\n"; |
|
|
|
LOG(ERROR) << "Error loading lights, exiting\n"; |
|
|
|
ret = false; |
|
|
|
ret = false; |
|
|
|
|