+ setString(&network_level.leveldir_identifier, NULL);
+ setString(&network_level.file_info.basename, NULL);
+ setString(&network_level.file_info.filename, NULL);
+ setString(&network_level.tmpl_info.basename, NULL);
+ setString(&network_level.tmpl_info.filename, NULL);
+
+ Debug("network:client", "OP_LEVEL_FILE: %d", player_nr);
+
+ leveldir_identifier = getStringCopy(getNetworkBufferString(read_buffer));
+
+ if (hasPathSeparator(leveldir_identifier))
+ Fail("protocol error: invalid filename from network client");
+
+ InitNetworkLevelDirectory(leveldir_identifier);
+
+ network_level_dir = getNetworkLevelDir(leveldir_identifier);
+
+ file_info->nr = getNetworkBuffer16BitInteger(read_buffer);
+ file_info->type = getNetworkBuffer8BitInteger(read_buffer);
+ file_info->packed = getNetworkBuffer8BitInteger(read_buffer);
+ file_info->basename = getStringCopy(getNetworkBufferString(read_buffer));
+ file_info->filename = getPath2(network_level_dir, file_info->basename);
+
+ if (hasPathSeparator(file_info->basename))
+ Fail("protocol error: invalid filename from network client");
+
+ int num_bytes = getNetworkBufferFile(read_buffer, file_info->filename);
+
+ // if received level file is empty, remove it (as being non-existent)
+ if (num_bytes == 0)
+ remove(file_info->filename);
+
+ use_custom_template = getNetworkBuffer8BitInteger(read_buffer);
+ if (use_custom_template)