Add chest count in main game
parent
bae17e8a87
commit
f4167c6270
|
@ -275,7 +275,7 @@ static LevelPack_t* add_level_pack_zst(Assets_t* assets, const char* name, const
|
||||||
for (lvls = 0; lvls < n_levels; ++lvls)
|
for (lvls = 0; lvls < n_levels; ++lvls)
|
||||||
{
|
{
|
||||||
printf("Parsing level %u\n", lvls);
|
printf("Parsing level %u\n", lvls);
|
||||||
output.size = 36;
|
output.size = 38;
|
||||||
output.pos = 0;
|
output.pos = 0;
|
||||||
|
|
||||||
do
|
do
|
||||||
|
@ -310,6 +310,7 @@ static LevelPack_t* add_level_pack_zst(Assets_t* assets, const char* name, const
|
||||||
memcpy(pack_info->pack.levels[lvls].level_name, level_decompressor.out_buffer, 32);
|
memcpy(pack_info->pack.levels[lvls].level_name, level_decompressor.out_buffer, 32);
|
||||||
memcpy(&pack_info->pack.levels[lvls].width, level_decompressor.out_buffer + 32, 2);
|
memcpy(&pack_info->pack.levels[lvls].width, level_decompressor.out_buffer + 32, 2);
|
||||||
memcpy(&pack_info->pack.levels[lvls].height, level_decompressor.out_buffer + 34, 2);
|
memcpy(&pack_info->pack.levels[lvls].height, level_decompressor.out_buffer + 34, 2);
|
||||||
|
memcpy(&pack_info->pack.levels[lvls].n_chests, level_decompressor.out_buffer + 36, 2);
|
||||||
pack_info->pack.levels[lvls].level_name[31] = '\0';
|
pack_info->pack.levels[lvls].level_name[31] = '\0';
|
||||||
printf("Level name: %s\n", pack_info->pack.levels[lvls].level_name);
|
printf("Level name: %s\n", pack_info->pack.levels[lvls].level_name);
|
||||||
printf("WxH: %u %u\n", pack_info->pack.levels[lvls].width, pack_info->pack.levels[lvls].height);
|
printf("WxH: %u %u\n", pack_info->pack.levels[lvls].width, pack_info->pack.levels[lvls].height);
|
||||||
|
|
|
@ -58,6 +58,7 @@ typedef struct LevelMap
|
||||||
char level_name[32];
|
char level_name[32];
|
||||||
uint16_t width;
|
uint16_t width;
|
||||||
uint16_t height;
|
uint16_t height;
|
||||||
|
uint16_t n_chests;
|
||||||
LevelTileInfo_t* tiles;
|
LevelTileInfo_t* tiles;
|
||||||
}LevelMap_t;
|
}LevelMap_t;
|
||||||
|
|
||||||
|
|
|
@ -77,6 +77,7 @@ with open(converted_filename, 'wb+') as out_file:
|
||||||
out_file.write(struct.pack("<I", n_levels))
|
out_file.write(struct.pack("<I", n_levels))
|
||||||
# Then loop the levels. Read the layerIndstances
|
# Then loop the levels. Read the layerIndstances
|
||||||
for level in level_pack_data["levels"]:
|
for level in level_pack_data["levels"]:
|
||||||
|
n_chests : int = 0
|
||||||
# Search for __identifier for the level layout
|
# Search for __identifier for the level layout
|
||||||
level_name = level["identifier"]
|
level_name = level["identifier"]
|
||||||
print("Parsing level", level_name)
|
print("Parsing level", level_name)
|
||||||
|
@ -104,6 +105,8 @@ with open(converted_filename, 'wb+') as out_file:
|
||||||
for i, tile in enumerate(level_layout["gridTiles"]):
|
for i, tile in enumerate(level_layout["gridTiles"]):
|
||||||
try:
|
try:
|
||||||
tiles_info[tile["d"][0]][0] = ids_tiletype_map[tile["t"]]
|
tiles_info[tile["d"][0]][0] = ids_tiletype_map[tile["t"]]
|
||||||
|
if tiles_info[tile["d"][0]][0] == ENUMIDS_TILETYPE_MAPPING ["Chest"]:
|
||||||
|
n_chests += 1
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print("Error on tile", i, i % width, i // height)
|
print("Error on tile", i, i % width, i // height)
|
||||||
print(e)
|
print(e)
|
||||||
|
@ -117,7 +120,7 @@ with open(converted_filename, 'wb+') as out_file:
|
||||||
x,y = ent["__grid"]
|
x,y = ent["__grid"]
|
||||||
tiles_info[y*width + x][0] = ENUMIDS_TILETYPE_MAPPING[ent["__identifier"]]
|
tiles_info[y*width + x][0] = ENUMIDS_TILETYPE_MAPPING[ent["__identifier"]]
|
||||||
|
|
||||||
out_file.write(struct.pack("<32s2H", level_name.encode('utf-8'), width, height))
|
out_file.write(struct.pack("<32s3H", level_name.encode('utf-8'), width, height, n_chests))
|
||||||
for tile in tiles_info:
|
for tile in tiles_info:
|
||||||
out_file.write(struct.pack("<3Bx", *tile))
|
out_file.write(struct.pack("<3Bx", *tile))
|
||||||
|
|
||||||
|
|
|
@ -51,6 +51,8 @@ static void level_scene_render_func(Scene_t* scene)
|
||||||
|
|
||||||
print_mempool_stats(buffer);
|
print_mempool_stats(buffer);
|
||||||
DrawText(buffer, gui_x, 150, 12, BLACK);
|
DrawText(buffer, gui_x, 150, 12, BLACK);
|
||||||
|
sprintf(buffer, "Chests: %u / %u", data->coins.current, data->coins.total);
|
||||||
|
DrawText(buffer, gui_x, data->game_rec.y + data->game_rec.height, 24, BLACK);
|
||||||
EndTextureMode();
|
EndTextureMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -65,6 +65,8 @@ bool load_level_tilemap(LevelScene_t* scene, unsigned int level_num)
|
||||||
scene->data.tilemap.width = lvl_map.width;
|
scene->data.tilemap.width = lvl_map.width;
|
||||||
scene->data.tilemap.height = lvl_map.height;
|
scene->data.tilemap.height = lvl_map.height;
|
||||||
scene->data.tilemap.n_tiles = n_tiles;
|
scene->data.tilemap.n_tiles = n_tiles;
|
||||||
|
scene->data.coins.current = 0;
|
||||||
|
scene->data.coins.total = lvl_map.n_chests;
|
||||||
|
|
||||||
clear_entity_manager(&scene->scene.ent_manager);
|
clear_entity_manager(&scene->scene.ent_manager);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue