Несовместимость савок, или как их сконвертить....

Вопросы разработки OpenTTD, обсуждение новых сборок и патчей, решение проблем новых версий.

Модераторы: Smoky555, Группа модераторов

Как вам такая тема7

поддерживаю
14
70%
лишнее это. я успеваю доиграть савки в промежутки между выходами новых билдов....
6
30%
 
Всего голосов : 20

Несовместимость савок, или как их сконвертить....

Сообщение mAAAd » Вт июн 13, 2006 09:24

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

- собрать сырцы saveload.c от разных билдов. я так понимаю соль в них, раз сообщение об ошибке загрузки идет от их имени...
- в интерфейсе сделать кнопку "конвертировать савку" с открытием диалога для "выбор савки" и "выбор версии" (можно добавить автоопределение версии - если это возможно). в зависимости от выбранной (автоопределенной) версии использовать нужный saveload.c (ясен пень уже скомпилированный :) )
- считать массивы данных в память (всеравно что в игре загрузить савку, поставленную на паузу)
- сохранить игру, используя текущий билд и соответственно saveload.c

дело сделано, мавр может идти спать :) :) :)

зыж понятно, что здесь надо будет учитывать и наборы графики наверное..... не все настоль просто, но принципиально отличий не будет - имхо.
Аватара пользователя
mAAAd
Диспетчер
Диспетчер
 
Сообщения: 179
Зарегистрирован: Пт июн 09, 2006 16:21
Откуда: AngelCITY

Сообщение Neko » Вт июн 13, 2006 10:13

Всё несколько сложнее:

1) Модули Save/Load находятся не в одном файле, а размазаны по разным файлам.
2) В каждом новом билде появляются новые данные, подлежащие сохранению. Теперь, если в этот новый билд конвертировать данные из предыдущего билда, то эти данные останутся непроинициализированными, а вся прога от этого станет неработоспособной.
3) Разные патчи тоже могут вносить в область сохранения свои специфические данные, что не делает эту проблему проще.
Мало того, что от билда к билду возможны несовместимости, но и на один и тот же билд наш уважаемый Smoky555 может наложить совершенно разный набор патчей.
4) В добавок ко всему этому и чистоганные забугорные билды и билды от Smoky555 вылетают со скоростью работы 30-мм авиационной пушки "Вулкан", так что, написатель конвертеров к савкам должен работать с такой же скоростью. Скорее всего это возможно, только надо выбрать программёра, которого не жалко, ибо жизнь его будет тяжела, а судьба незавидна.

Самый простой пример. Не давеча, как вчера, я просто добавил в языковый файл всего-то пару строчек, ничего в коде не меняя, если не считать, что добавил лишнюю строку в меню.
Так вот, только от этого прога уже стала несовместимой по савкам - я не смог загрузить свои контрольные примеры в этот новый ехе.

Поэтому, пока прога не устаканилась окончательно, а этого, думаю, не будет никогда, ибо нету предела совершенству, то про возможность таскать одну и ту же савку по разным билдам следует даже и не помышлять.
Револьвер - лучший аргумент в любом споре
Аватара пользователя
Neko
Президент
Президент
 
Сообщения: 750
Зарегистрирован: Чт окт 13, 2005 12:23
Откуда: Москва

Сообщение mAAAd » Вт июн 13, 2006 10:44

но ведь известно какие патчи были использованы в том или ином билде, верно7 ладно если бы это было покрыто мраком неизвестности, а то ведь... а для каждого патча известно куда и какие данные он сохраняет.... стало быть известна вся структура савки в каждом билде... другое дело что в разных билдах могут отсутствовать те или иные патчи - эта проблема посеръезнее..... есть возможность както РЕМить те или иные данные в савке, блокировать их, чтобы при загрузке в билде с отсутствующим патчем этот сектор блокировался.... переносить его в неиспользуемую часть данных, менять тэг на какойнить нейтральный....
с проблемой патча, отсутствовашего в прежнем билде можно наверное справицца так: если отсутствует патч, то вставлять пустой тег, соответствующий начальному состоянию, состоянию на начало игры.... я понятно выражаюсь7 или просто фантазирую7 :) :) :)
ничто так не украсит щиколотки девушки, как трусики...
Аватара пользователя
mAAAd
Диспетчер
Диспетчер
 
Сообщения: 179
Зарегистрирован: Пт июн 09, 2006 16:21
Откуда: AngelCITY

Сообщение Neko » Вт июн 13, 2006 11:53

Проблема совместимости савок между билдами заключается не в том, чтобы савка из от одного билда ЗАГРУЗИЛАСЬ в другой билд, а в том, чтобы в этом случае игра на новом билде смогла бы ПРАВИЛЬНО работать с твоей старой савкой.

Простой пример. Если в старой савке для движения поезда было достаточно одного параметра А, а в новом билде для такого же движения требуется уже два параметра А и В, то при загрузке твоей савки проинициализируется только параметр А, а В отсанется пустым.
Нужен ли тебе такой перенос, когда игра, если и не сразу вылетит в винды, то будет вести себя совершенно по ...

Но я продолжаю говорить, что теоретически проблема, скорее всего, решаема.

Практический смысл этой проблемы я вижу только в одном - когда надо перенести СЦЕНАРИЙ из одной сборки в другую. В этом случае проблем будет значительно меньше, а реальная польза от такой конвертации уже явно просматривается.
Револьвер - лучший аргумент в любом споре
Аватара пользователя
Neko
Президент
Президент
 
Сообщения: 750
Зарегистрирован: Чт окт 13, 2005 12:23
Откуда: Москва

Сообщение mAAAd » Вт июн 13, 2006 15:39

ок, я понял тебя. но я говорил про то же самое...
в свете СЦЕНАРИЕВ проблема с савками может уже действительно и неактуальна - в самом деле.... но желание разобрацца принципиально осталось :) :) :) - уж простите.

вернемся к нашим баранам:
пускай будет поезд с группами параметров:
ПОЕЗД:
- ГРУППА 1
- ГРУППА 2
- ГРУППА 3
где:
группа 1 - параметры присущие поезду в билде А и перекочевавшие в билд Б;
группа 2 - параметры появившиеся дополнительно в позднем билде Б;
группа 3 - параметры, не требующиеся в билде Б в связи с исключением требовавшего их патча из кода.

так вот про группу 1 все понятно, про группу 3 - я как раз и спрашивал - можно ли какнить РЕМарить их, присваивать им каконить нейтральный статус, исключать из процесса загрузки и гейма, а про группу 2 - я высказывался так: инициализировать их значениями по умолчанию. ведь когда создаете поезд - ему придаюцца какието дефолтовые значения - ? вот их и использовать.... прошу учесть что делать это будет не сам ОТТД, а конвертор, стало быть если к моменту загрузки савки в ОТТД все параметры будут заполнены данными, то и вылетать ниче не должно.... а с неразберихой на дорогах геймер и сам какнить справицца :) :) :) разрулит в общем ситуацию. не в первой.
Аватара пользователя
mAAAd
Диспетчер
Диспетчер
 
Сообщения: 179
Зарегистрирован: Пт июн 09, 2006 16:21
Откуда: AngelCITY

Сообщение Neko » Вт июн 13, 2006 18:09

В принципе, ты уже грамотно написал документ, который называется "Аванпроект", т.е. тебе уже вполне можно приступать к реализации.
А по мере углубления в уже конкретные коды, ты, по ходу дела, будешь менять часть своих представлений о некоторый вещах и проблемах, которые тебе сейчас просто не видны, но отчётливо проявятся при изучении исходных кодов. Тогда ты на ходу будешь решать эти возникшие проблемы - шаг за шагом ... если вовремя не остановиться, то и до полной победы Коммунизьма дойтить можно...

Поверь, дело, за которое ты собираешься взяться, не простое, ох, не простое.
Поэтому, искренне желаю тебе удачи.

ЗЫ Безусловно, я буду пытаться отвечать на заданные конкретные вопросы, только толку от меня в save/load проги не очень большая - я только кончиком глаза в тот угол заглянул, да и то - один только раз.

Удачи
Револьвер - лучший аргумент в любом споре
Аватара пользователя
Neko
Президент
Президент
 
Сообщения: 750
Зарегистрирован: Чт окт 13, 2005 12:23
Откуда: Москва

Сообщение skrp » Вт июн 13, 2006 19:01

Neko: а ещё можно патчить савки:
- если есть новый параметр Б, то задаём ему дефолтовое значение
- если он отсутствует, то вырезаем

ПС у меня запоролась класснейшая савка. теперь пытаюсь найти, какая это версия, чтобы можно было бы её восстановить.
skrp
Шпалоукладчик
Шпалоукладчик
 
Сообщения: 6
Зарегистрирован: Вс июн 11, 2006 05:54
Откуда: USA

Сообщение Роман » Вт июн 13, 2006 20:05

Реально, идея интересная, но именно для преобразования достойных сценариев. Насчет савок - там действительно все слишком просто строится зв первые 10-15 лет. Обычно я даже не доигрываю до 1990 года - все слишком просто достигается (покупается).
Аватара пользователя
Роман
Начальник станции
Начальник станции
 
Сообщения: 97
Зарегистрирован: Сб июн 03, 2006 00:58

Сообщение mAAAd » Ср июн 14, 2006 08:45

как я уже говорил - для меня важно было принципиально разобрацца - интересная просто задачка для ума выходила.... в Си я не шарю вообще, поэтому удачу я использую по другому назначению :) :) :)

зыж всем риспект за участие в обсуждении.
ничто так не украсит щиколотки девушки, как трусики...
Аватара пользователя
mAAAd
Диспетчер
Диспетчер
 
Сообщения: 179
Зарегистрирован: Пт июн 09, 2006 16:21
Откуда: AngelCITY

Сообщение Koser » Пт июн 23, 2006 17:57

Вопрос опять же вспыхул в теме "Каторжанен".
Соответственно пишу сюда,дабы мухи отдельно,котлеты отдельно.
Полсе продолжительных дебатов с Neko а аске,всплыла следующая проблема.Оказывается,что в савке сохраняются параметры из окна "Конфигурация патчей",я был искренне удивлён :? .
Поэтому,предлагаю эту проблему обойти,следующим образом:
Хочу написать патч,который будет сохранять и загружать савки без параметров патчей.Режим загрузки савак,будет устанавливаться через консоль.
Принип действия:
1.В старой версии,которая имеет возможность записи без параметров "Конфигурация патчей",сохраняем игру.
2.В новой версии включаем режим загрузки "Без конфигурации патчей"
3.Загружаем савку и отключает режим.

Это,конечно,не панацея от всех бед,но кое что.
Аватара пользователя
Koser
Начальник станции
Начальник станции
 
Сообщения: 107
Зарегистрирован: Пн май 15, 2006 12:21

Сообщение Koser » Пн июн 26, 2006 23:55

Начиная с версии 5366 можно будет сохранять(загружать) савки без параметров патчей и опций.
Для этого через консоль нужно будет включить соответствующий режим:
sno_save_p 1 - режим сохранения без параметров патчей
sno_save_o 1 - режим сохранения без параметров опций
sno_load_p 1 - режим загрузки без параметров патчей
sno_load_o 1 - режим загрузки без параметров опций
Отключение режимов - вместо “1” ставим “0” или заново запускаем игру.

Существуют ли такие режимы,можно узнать,введя в консоли:
list_vars sno


Насколько это эффективно и полезно узнаем в будущих версиях.
Аватара пользователя
Koser
Начальник станции
Начальник станции
 
Сообщения: 107
Зарегистрирован: Пн май 15, 2006 12:21

Сообщение mAAAd » Вт июн 27, 2006 09:36

ну вы просто монстры :) :) :)

значит теоретические теперь можно будет загружать савки между билдами начиная с версии 5366, верно?
ничто так не украсит щиколотки девушки, как трусики...
Аватара пользователя
mAAAd
Диспетчер
Диспетчер
 
Сообщения: 179
Зарегистрирован: Пт июн 09, 2006 16:21
Откуда: AngelCITY

Сообщение Koser » Вт июн 27, 2006 14:12

Теоритически да.
Если,изменения в новых версиях тока в конфигурации патчей(к примеру добавили новую кнопочку для патча),или новая кнопка в опциях.
Если моим методом савка перенесётся,то надо только заного,вручную установить параметры патчей или опций.
Аватара пользователя
Koser
Начальник станции
Начальник станции
 
Сообщения: 107
Зарегистрирован: Пн май 15, 2006 12:21

Сообщение Sergej_Sim » Пт июн 30, 2006 00:18

Koser писал(а):Начиная с версии 5366 можно будет сохранять(загружать) савки без параметров патчей и опций.
Для этого через консоль нужно будет включить соответствующий режим:
sno_save_p 1 - режим сохранения без параметров патчей
sno_save_o 1 - режим сохранения без параметров опций
sno_load_p 1 - режим загрузки без параметров патчей
sno_load_o 1 - режим загрузки без параметров опций
Отключение режимов - вместо “1” ставим “0” или заново запускаем игру.

Существуют ли такие режимы,можно узнать,введя в консоли:
list_vars sno

Неправда Ваша - Дяденька !

Проверял это на версии 5277 - там и близко этого нет !!!

Насколько это эффективно и полезно узнаем в будущих версиях.
Sergej_Sim
Я забанен навечно
Я забанен навечно
 
Сообщения: 444
Зарегистрирован: Чт июн 08, 2006 21:41
Откуда: Russia

Сообщение Koser » Пт июн 30, 2006 01:13

Sergej_Sim писал(а):
Koser писал(а):Начиная с версии 5366 можно будет сохранять(загружать) савки без параметров патчей и опций.
Для этого через консоль нужно будет включить соответствующий режим:
sno_save_p 1 - режим сохранения без параметров патчей
sno_save_o 1 - режим сохранения без параметров опций
sno_load_p 1 - режим загрузки без параметров патчей
sno_load_o 1 - режим загрузки без параметров опций
Отключение режимов - вместо “1” ставим “0” или заново запускаем игру.

Существуют ли такие режимы,можно узнать,введя в консоли:
list_vars sno

Неправда Ваша - Дяденька !

Проверял это на версии 5277 - там и близко этого нет !!!

Насколько это эффективно и полезно узнаем в будущих версиях.


Во-первых, я такого не говорил.:)
Во-вторых,все это начнётся с версии 5366,а в 5277 моего патча ещё нет и небыло,соответственно сохранять нельзя.
Аватара пользователя
Koser
Начальник станции
Начальник станции
 
Сообщения: 107
Зарегистрирован: Пн май 15, 2006 12:21

След.

Вернуться в Разработка OpenTTD

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12