$t@t!c_V()1D
Да, хочу удалять так что-бы это отражалось на размере всего ГСФ файла (прерасчет). Ну и другое что описал..
По поводу идеи с архив файлом, вполне можно практиковать..
Universal Steam Extractor
- impulse666
- Полковник
- Сообщения: 7405
- Зарегистрирован: 08.12.2005
- Откуда: Atman
- Благодарил (а): 2340 раз
- Поблагодарили: 590 раз
- $t@t!c_V()1D
- Разработчик
- Сообщения: 2639
- Зарегистрирован: 06.12.2007
- Благодарил (а): 10 раз
- Поблагодарили: 29 раз
impulse666
Тогда так: можно удалять файлы и заполнять пространство нулями. Так будет удобнее, если пользователь захочет установить какую-нибудь другую игру, использующую как раз эти недостающие файлы и их модно будет просто импортировать, при этом заполненное нулями пространоство отлично сжимается, так что размер инсталляшки в любом случае в выигрыше.
Другое дело: создать "sized GCF": такая GCF, размер которой будет варьироваться в зависимости от тех файлов, которые там физически есть (без заполнения нулями) Как пример, *.update.gcf построены по такому образу. Но тогда при установке игры придётся перезаписывать GCF или добавлять данные, но с созданием новой копии, т.к., если я не ошибаюсь, писать в недостаточное пространство, увеличивая его, Rain.dll не позволяет.
Тогда так: можно удалять файлы и заполнять пространство нулями. Так будет удобнее, если пользователь захочет установить какую-нибудь другую игру, использующую как раз эти недостающие файлы и их модно будет просто импортировать, при этом заполненное нулями пространоство отлично сжимается, так что размер инсталляшки в любом случае в выигрыше.
Другое дело: создать "sized GCF": такая GCF, размер которой будет варьироваться в зависимости от тех файлов, которые там физически есть (без заполнения нулями) Как пример, *.update.gcf построены по такому образу. Но тогда при установке игры придётся перезаписывать GCF или добавлять данные, но с созданием новой копии, т.к., если я не ошибаюсь, писать в недостаточное пространство, увеличивая его, Rain.dll не позволяет.
Another guy on them internets
Уважайте команду CSMania.RU - задавайте вопросы правильно!
Уважайте команду CSMania.RU - задавайте вопросы правильно!
- impulse666
- Полковник
- Сообщения: 7405
- Зарегистрирован: 08.12.2005
- Откуда: Atman
- Благодарил (а): 2340 раз
- Поблагодарили: 590 раз
Первое - очевидно, вот второе...может ли, или сможет ли этот функционал воплотить andreil.. Ожидаю ответа.
- andreil
- Разработчик
- Сообщения: 781
- Зарегистрирован: 14.08.2006
- Откуда: Светлогорск, Беларусь
- Поблагодарили: 2 раза
- Контактная информация:
Именно ;)impulse666 писал(а):Создание архивов с нуля позволит нам, например, делать пиратки в ГСФ файлах собственной упаковки, для исключения ненужных файлов, т.е. лишнего веса. Так?
Это вообще задумывалось изначально pranksterimpulse666 писал(а):Хм, тогда вот еще вопрос, патчинг существующих ГСФ архивов будет выглядить примерно так:
У пользователя ГСФ пиратка, он берет набор файлов (типичный патч для распака) и с помощью USE замещает уже существующие файлы в имеющемся у него Кеше (при том что размеры не совпадают), все верно?
1 подход плох тем, что сам файл на диске занимает место.$t@t!c_V()1D писал(а):impulse666
Тогда так: можно удалять файлы и заполнять пространство нулями. Так будет удобнее, если пользователь захочет установить какую-нибудь другую игру, использующую как раз эти недостающие файлы и их модно будет просто импортировать, при этом заполненное нулями пространоство отлично сжимается, так что размер инсталляшки в любом случае в выигрыше.
Другое дело: создать "sized GCF": такая GCF, размер которой будет варьироваться в зависимости от тех файлов, которые там физически есть (без заполнения нулями) Как пример, *.update.gcf построены по такому образу. Но тогда при установке игры придётся перезаписывать GCF или добавлять данные, но с созданием новой копии, т.к., если я не ошибаюсь, писать в недостаточное пространство, увеличивая его, Rain.dll не позволяет.
2 хорош всем, но есть один недостаток - при увеличении количества секторов необходимо изменить ВСЕ заголовки, что влечет за собой лишние затраты (на примере - CFToolBox при малейших изменениях в файле перезаписывает заголовок кэша, но куда больше времени занимает изменение заголовков при изменении размера - заметно по частоте обращений к диску, а так же по объему записанных данных). У меня в библиотеке будет опция, отключающая такое поведение, то есть заголовки будут переписаны только после закрытия файла, но никак не после каждой операции записи ;) Конечно, это опасно в случае сбоя, но зато быстрее :)
PS: Все, закидываю
PPS: По GCF-файлам пока осталось сделать сам процесс патчинга, но этот этап был невозможен, пока я не восстановил весь свой кэш (винт полетел + потом на новом ФС по оплошности слетела (запомните - ХП не понимает разделы >400Гб, научен на горьком опыте, теперь перекачиваю 130Гб утерянных сериалов... :( ))). После этого перейду к остальным форматам.
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).