Здрасьте!
Сначала предыстория...
Подарили диск с Sims 1 Hot Date, жена решила вспомнить молодость... И ее затянуло. А меня затянуло в роли зрителя.
Но проявился весьма неприятный глюк. При невыясненных условиях файлы с данными игры бьются. Сохраненную игру запустить нельзя, на карте района наводишь мышку на дом - и все, программа аварийно выходит без всяких сообщений.
Так бросили два дома и завели третий. Он даже сохранялся успешно, только проблема появилась в другом: при попытке нажать кнопку "отношения" - опять вываливаемся. Также вываливаемся при попытке позвонить одному определенному симу (сейчас я его имя не помню, ну да неважно, пусть будет условно Вася).
Эти ограничения нас (скрипя зубами) устраивали, пока не решили устроить вечеринку. Пригласили народ, ждем себе и дела домашние делаем. Бах - в определенное время (игровое) игра вываливается. Хоть что делай.
Я (программер со стажем) полез в интернет, и... тоже открыл для себя Sims как нечто, в чем можно ковыряться. Оказывается игра хачена и изучена вдоль и поперек.
Скачал три программы: File Cop, IFF checker и IFF explorer (имена последних двух точно не помню но смысл такой). Ни коп ни чекер проблем не выявили. Explorer же дал подсказку - он давал ошибку Out of memory на одном из файлов в GameData (кажется файл звали person02.iff). Я посмотрел на этот файл и увидел, что он имеет размер около 700 мб(!!!). В то время как остальные ограничиваются 50-60к.
Файл был переименован (для дальнейших исследований) - и - о чудо - игрушка запустилась! Более того - один из "мертвых" домиков в районе стал доступен, правда никем не заселен (ранее в нем жил один мужик, мы им играли). Наша последняя игра отлично загрузилась и - о чудо - не вылетела. Вместо вылета пришли гости.
Так я сделал следующие выводы:
1. Поврежденный файл описывает персонажа.
2. Это был тот самый персонаж, которому нельзя было позвонить.
3. Программа вылетала всякий раз, когда теми или иными путями пыталась обратиться к этому персонажу (вывести инфу по взаимоотношениям, пригласить в гости, и пр.)
4. Раз другие авторы пишут ПО для модификации симсов, то структура файлов известна и я могу попробовать написать валидатор IFF файлов для отслеживания этой ситуации. Цель - вернуть мужика из стазиса и починить второй заброшенный дом (он находится в другом районе поэтому пока не создает проблем).
Интернет вновь был перерыт уже на тему техдокументации. Найден познавательный документик The Sims Walkthrough guide и полезный сайтец SimTech. На СимТехе нашлось описание IFF-формата. Жаль только что последнее обновление от 2003 года, видимо с выходом Sims 2 авторы потеряли интерес к предыдущей версии. Больше пока ничего.
А теперь собственно вопросы:
1. Насколько известна структура дерева каталогов игры? Например есть директории GameData, UserData, там внутри есть Houses, Families, Import, Export... Что есть что?
2. Можно ли узнать, что именно описывает IFF-файл (персонажа, дом, предмет...) только по его содержимому? Есть ресурс, указывающий тип объекта?
3. Аналогично, как узнать имя объекта (имя персонажа, название предмета, адрес дома)? Можно написать прогу для управления объектами (каталогизации, архивации и восстановления).
4. Может уже написана такая программа?
5. Может описанный мной баг уже известен, равно как и лекарство от него?
6. Кто-нибудь успешно пускал первых симсов под Vista? У нас работает неустойчиво, зависает (застывает на месте и перестает реагировать на управление). Сейчас играемся под XP (на машине две ОС).
7. Немного оффтопик. В Walktorough guide несколько невнятно написано - а что делать с грустным клоуном? Приходит и портит всем настроение. Жена пробовала и в репу ему настучать, и ментовку вызвать - все бесполезно. Получилось от него избавиться только вызвав спецслужбу, которая за это еще и 500 грин просит. Можно ли обойти это разводилово?
Фу, вроде пока все. Спасибо за внимание...