Update level data packing

main
En Yi 2024-11-09 15:02:51 +08:00
parent 188c2e30a5
commit ab2928fab9
2 changed files with 20 additions and 7 deletions

View File

@ -61,8 +61,18 @@ if not ids_tiletype_map:
pprint.pprint(ids_tiletype_map)
def get_level_order(lvl) -> int:
order = 65535;
for data in lvl['fieldInstances']:
if data["__identifier"] == "Order":
order = data["__value"]
return order
all_levels = level_pack_data["levels"]
all_levels.sort(key=get_level_order)
# Number of levels is the length of the levels
n_levels = len(level_pack_data["levels"])
n_levels = len(all_levels)
print("Number of levels:", n_levels)
fileparts = args.filename.split('.')
@ -76,17 +86,20 @@ converted_filename = '.'.join(fileparts)
with open(converted_filename, 'wb+') as out_file:
out_file.write(struct.pack("<I", n_levels))
# Then loop the levels. Read the layerIndstances
for level in level_pack_data["levels"]:
for level in all_levels:
n_chests : int = 0
# Search for __identifier for the level layout
level_name = level["identifier"]
print("Parsing level", level_name)
level_name = ""
level_metadata = level['fieldInstances']
level_tileset = 0;
for data in level_metadata:
if data["__identifier"] == "TileSet":
level_tileset = data["__value"]
if data["__identifier"] == "Name":
level_name = data["__value"]
print("Parsing level", level_name)
level_layout = {}
entity_layout = {}

View File

@ -97,10 +97,10 @@ static void level_select_do_action(Scene_t* scene, ActionType_t action, bool pre
}
}
#define FONT_SIZE 30
#define FONT_SIZE 15
#define TEXT_PADDING 3
#define DISPLAY_AREA_HEIGHT 200
#define SCROLL_TOTAL_HEIGHT 300
#define DISPLAY_AREA_HEIGHT 400
#define SCROLL_TOTAL_HEIGHT 400
void init_level_select_scene(LevelSelectScene_t* scene)
{
init_scene(&scene->scene, &level_select_do_action, 0);