Enchance string array support

Issue #3 resolved
insolor
created an issue

Планируется использовать одну и ту же версию патча для Dwarf Fortress и Unreal World. Для этого нужно улучшить поддержку массивов строк. В текущем варианте в ветке URW определение массивов включено, в ветке develop - отключено из-за ложных срабатываний.

Вариант реализации - функция extract_strings сначала определяет, является ли ссылка ссылкой на массив строк: массив должен содержать не меньше 3 строк, максимальная ширина строки должна быть одна и та же для всех строк массива. Если определено, что это массив, extract_strings должна вернуть массив целиком с пометкой, что это массив.

В текущей реализации равенство максимальной длины строк не проверяется, вызывающий код не знает, что строка находится внутри массива, поэтому может попытаться ее переместить в отдельную секцию, если строка не помещается в исходном месте.

Comments (3)

  1. insolor reporter

    На данный момент слегка упрощен код модуля extract_strings.py, исправлено отсечение первой буквы при обработке блока данных функцией check_array(), добавлена проверка на равенство длин строк массивов. Проверка на минимальную длину массива добавлена не была. Тестирование извлечения строк на версии DF 0.43.05 не показало порчи или пропуска строк, добавилось несколько "мусорных" строк.

  2. Log in to comment