Ресурсы в ECS

Графические дополнения (NewGRF) для OpenTTD: наборы графики поездов, автомобилей, предприятий, самолетов, городских знаний и т.п. Разработка, обсуждение и совместимость.

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

Re: Ресурсы в ECS

Сообщение George » Ср окт 12, 2011 18:53

дворник писал(а):
George писал(а):Нигде. Если ты скажешь, что ты берёшься сделать весь ECS на NML - сяду писать.
Честно говоря, есть такое желание.
Не так. должно быть что-то вида "зуб даю за пол года (год, ... конкретный осязаемый срок, для подобной задачи на мой взгляд нормально успеть к 31.12.12) сделать весь ECS на NML".

дворник писал(а):Правда, пока не могу оценить, сколько это займёт времени. Ну и одно дело - просто сконвертировать NFO в NML, а другое - разбить его на осмысленные блоки кода и использовать макросы gcc и др. родные для NML штучки. Какой вектор попроще после химического?
Деревянный. Потом Базовый, Городской, Сельскохозяйственный, Машиностроительный.
Ты в химическом анимацию не доделал. А она мне так нравится :)
Ты акцент смести. Не надо бить себя по рукам. Программируй, как удобнее, но как можно ближе к ТЗ (сейчас в качестве ТЗ выступает действующие GRF, но если примем решение делать на NML, напишу нормальные ТЗ, кстати, готовь шаблон ТЗ. В качестве 0 итерации возьми описание предприятия с wiki из подробных).
Аватара пользователя
George
Почетный тайкунер
Почетный тайкунер
 
Сообщения: 1384
Зарегистрирован: Пн сен 20, 2004 12:02
Откуда: SPb, Russia

Re: Ресурсы в ECS

Сообщение дворник » Ср окт 12, 2011 19:19

Как там говорил Путин, "семь лет срок хороший". :)

George писал(а):Не так. должно быть что-то вида "зуб даю за пол года (год, ... конкретный осязаемый срок, для подобной задачи на мой взгляд нормально успеть к 31.12.12) сделать весь ECS на NML".


Полгода-год нормальный срок, хотя конечно, смотря сколько времени уделять.
Я потому и осторожно написал, что желание есть, а как карта ляжет - пока не ясно. Не хочу брать обязательства, которые могу не выполнить.

George писал(а):Деревянный.


Гут, вот он будет следующим.

George писал(а):Ты в химическом анимацию не доделал. А она мне так нравится :)


Хочу набрать побольше тайлов, вдруг осенит, как их получше рисовать.

Ещё такой вопрос. У тебя вектора разными наборами. Хочу всё же в один набор всё вложить. Но сделать вектора отключаемыми. Это можно сделать по разному. Можно как сейчас пропускать описания грузов, тайлов и промышленности в зависимости от галочки в параметрах. А можно воспользоваться cb 22, но тогда не будет стандартной промышленности. А она нужна в сочетании с векторами ECS?
С помощью cb 22 можно включать/выключать предприятия по необходимости в течении игры. Например, в зависимости от года. Но стандартную промышленность при этом придётся отключить.

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

Ну и вообще, имеет ли смысл сочетать предприятия/грузы ECS с какими-либо другими? Игровой смысл или ещё какой, идеологический?
дворник
Президент
Президент
 
Сообщения: 563
Зарегистрирован: Сб дек 05, 2009 22:57

Re: Ресурсы в ECS

Сообщение George » Ср окт 12, 2011 20:06

дворник писал(а):Как там говорил Путин, "семь лет срок хороший". :)
Смотря где сидеть :lol:

дворник писал(а):
George писал(а):Не так. должно быть что-то вида "зуб даю за пол года (год, ... конкретный осязаемый срок, для подобной задачи на мой взгляд нормально успеть к 31.12.12) сделать весь ECS на NML".
Полгода-год нормальный срок, хотя конечно, смотря сколько времени уделять.
Вот я и хочу, что бы ты осознал, сколько времени ты будешь уделять, и был готов его уделять.

дворник писал(а):Я потому и осторожно написал, что желание есть, а как карта ляжет - пока не ясно. Не хочу брать обязательства, которые могу не выполнить.
Нут так ты уже покопался, представление получил

дворник писал(а):
George писал(а):Ты в химическом анимацию не доделал. А она мне так нравится :)
Хочу набрать побольше тайлов, вдруг осенит, как их получше рисовать.
Ещё такой вопрос. У тебя вектора разными наборами. Хочу всё же в один набор всё вложить. Но сделать вектора отключаемыми. Это можно сделать по разному. Можно как сейчас пропускать описания грузов, тайлов и промышленности в зависимости от галочки в параметрах. А можно воспользоваться cb 22, но тогда не будет стандартной промышленности. А она нужна в сочетании с векторами ECS?
Не нужна. Делай, как ТЕБЕ удобнее.

дворник писал(а):Так вот, так ли нужно сочетание промышленности и грузов ECS и стандартной? Или будет достаточно отключения векторов (фактически, предприятий), хоть всех. Тут ещё возможен тот эффект, что при генерации карты предприятия могут быть доступны, а потом уже нет, но с теми, что уже будут на карте - можно будет играть.
Ну и вообще, имеет ли смысл сочетать предприятия/грузы ECS с какими-либо другими? Игровой смысл или ещё какой, идеологический?
Если это усложняет код - сейчас можно отказаться.
Аватара пользователя
George
Почетный тайкунер
Почетный тайкунер
 
Сообщения: 1384
Зарегистрирован: Пн сен 20, 2004 12:02
Откуда: SPb, Russia

Re: Ресурсы в ECS

Сообщение дворник » Ср окт 19, 2011 19:26

Из каких соображений id бумаги из лесного вектора отличается от id оригинальной бумаги? К примеру, если сейчас активировать только ECSWood.grf, то в списке грузов будет ажно две бумаги. :)

И давно хотел спросить, что за груз "нефтеперегонка", он реально существует?
дворник
Президент
Президент
 
Сообщения: 563
Зарегистрирован: Сб дек 05, 2009 22:57

Re: Ресурсы в ECS

Сообщение George » Ср окт 19, 2011 20:15

дворник писал(а):Из каких соображений id бумаги из лесного вектора отличается от id оригинальной бумаги? К примеру, если сейчас активировать только ECSWood.grf, то в списке грузов будет ажно две бумаги. :)
И давно хотел спросить, что за груз "нефтеперегонка", он реально существует?
1) Вот Буду делать ECS wood vector II, тогда и изменю. Это очень старый баг
2) Любой желающий может исправить wiki. Груз называется "refined products", является собирательным термином и в природе не существует. Так же как и еда.
Аватара пользователя
George
Почетный тайкунер
Почетный тайкунер
 
Сообщения: 1384
Зарегистрирован: Пн сен 20, 2004 12:02
Откуда: SPb, Russia

Re: Ресурсы в ECS

Сообщение Ghost » Ср окт 19, 2011 21:03

George писал(а):
дворник писал(а):И давно хотел спросить, что за груз "нефтеперегонка", он реально существует?
Груз называется "refined products", является собирательным термином и в природе не существует. Так же как и еда.

Собирательным-то собирательным, но посмотри список того, что получают из нефти при каталитическом крекинге (см. в вики): почти 60% бензин, 20% - другие топлива, до 15% - растворители и исходные компоненты для химии полимеров и лакокрасок, остальное - отходы. Вот эти 15% и фигурируют под условным названием "нефтеперегонка". И вагоны для транспортировки имеются разные специализированные. Так что имхо очень даже подходящий термин. Синонимом может быть разве что что-то вроде "нефтехимии".
Ghost
Директор
Директор
 
Сообщения: 385
Зарегистрирован: Сб сен 26, 2009 00:21
Откуда: Рыбинск

Re: Ресурсы в ECS

Сообщение Wowan » Ср окт 19, 2011 21:09

Или "нефтепродукты".
Аватара пользователя
Wowan
Почетный тайкунер
Почетный тайкунер
 
Сообщения: 1383
Зарегистрирован: Вт сен 18, 2007 14:43
Откуда: трасса М1, Минск — Москва

Re: Ресурсы в ECS

Сообщение kraks » Ср окт 19, 2011 21:13

Или "продукты перегонки" (если уж дословно переводить). Нефтеперегонка как-то привычна уже... Зачем менять? Всё равно шило на мыло.
Аватара пользователя
kraks
Президент
Президент
 
Сообщения: 889
Зарегистрирован: Вт окт 03, 2006 01:05
Откуда: Москва

Re: Ресурсы в ECS

Сообщение Wowan » Ср окт 19, 2011 21:30

По сравнению с "нефтехимией" - да, лучше оставить, как было.

А еще можно "еду" переименовать в "пищевые продукты".
Аватара пользователя
Wowan
Почетный тайкунер
Почетный тайкунер
 
Сообщения: 1383
Зарегистрирован: Вт сен 18, 2007 14:43
Откуда: трасса М1, Минск — Москва

Re: Ресурсы в ECS

Сообщение дворник » Пт окт 21, 2011 20:42

Разбираю Forest. Обратил внимание, что бульдозерная анимация домика лесника не работает, т.к. cb 26 возвращает всегда 0.

Начал разбирать tile 0x10. Ух и жуть! :)
Обратил внимание, что cb 27 при animation_frame != 20 уходит на default cb, который выдаёт спрайты для рисования. Хотя, вроде как должен был вернуть число, которое скорость анимации.
Не подскажешь, что такое stage, которое у тебя определяется величиной animation_frame?
Вроде как леса строятся на плоских землях, а при отрисовке везде анализ slope. Зачем?

Хочется понять логику анимации леса, и попробовать её сделать покомпактнее, с учётом возможностей NML, а не простым повторением (переводом) всех этих гирлянд ветвлений.
дворник
Президент
Президент
 
Сообщения: 563
Зарегистрирован: Сб дек 05, 2009 22:57

Re: Ресурсы в ECS

Сообщение George » Пт окт 21, 2011 21:40

дворник писал(а):Разбираю Forest. Обратил внимание, что бульдозерная анимация домика лесника не работает, т.к. cb 26 возвращает всегда 0.
Исправь

дворник писал(а):Начал разбирать tile 0x10. Ух и жуть! :)
Обратил внимание, что cb 27 при animation_frame != 20 уходит на default cb, который выдаёт спрайты для рисования. Хотя, вроде как должен был вернуть число, которое скорость анимации.
Или вернуть графику, что бы число не возвращать

дворник писал(а):Не подскажешь, что такое stage, которое у тебя определяется величиной animation_frame?
Величина дерева. Пилить можно только большие деревья. Если нет ни одной клетки с большими деревьями, ничего не пилится. Ситуация возникает на лесах малого размера при наличии техники.

дворник писал(а):Вроде как леса строятся на плоских землях, а при отрисовке везде анализ slope. Зачем?
Не на плоских. На плоских домик.

дворник писал(а):Хочется понять логику анимации леса, и попробовать её сделать покомпактнее, с учётом возможностей NML, а не простым повторением (переводом) всех этих гирлянд ветвлений.
Её надо делать на базе этого http://wiki.openttd.org/Frosch/Advanced_Sprite_Layout
Аватара пользователя
George
Почетный тайкунер
Почетный тайкунер
 
Сообщения: 1384
Зарегистрирован: Пн сен 20, 2004 12:02
Откуда: SPb, Russia

Re: Ресурсы в ECS

Сообщение дворник » Сб окт 22, 2011 10:29

George писал(а):Или вернуть графику, что бы число не возвращать

И так можно?

Какое смысловое значение имеет animation_frame, меняющееся от 0 до 30 с шагом 3?

Как я понял, тайл отрисовывается 4-мя деревьями с отступом от углов к центру тайла, с учётом наклона поверхности клетки. Либо пеньками на их месте. Деревья регулярно растут. Скорость анимации 7, что означает 2 игровых дня. В свете этого, шаг animation_frame от 0 до 30 выливается не в один месяц, а в два. Что, лес растёт за 2 месяца?

Три варианта сочетания этих 4-х деревьев, выбираются случайно.

Есть подстройка под игрушечный климат, под тропики, а обычный и арктический идут вместе. Итого 3.

state от 0 (самое низкое) до 3 (дерево выросло), затем на 4 они просто торчат, на 5 их рубят (рисуется спрайт кучки брёвен. только их там 2 варианта спрайтов, пока не понял, зачем?), на 6 пеньки, на 7 пустая клетка.

Деревья растут, чуток стоят, потом пилятся, пеньки, и начинают расти снова.
Изначально они сразу высокие.

Я всё правильно понимаю?
дворник
Президент
Президент
 
Сообщения: 563
Зарегистрирован: Сб дек 05, 2009 22:57

Re: Ресурсы в ECS

Сообщение George » Сб окт 22, 2011 22:20

дворник писал(а):
George писал(а):Или вернуть графику, что бы число не возвращать
И так можно?
Можно. Потому что нет переменной, в которой можно смотреть текущую скорость анимации.

дворник писал(а):Какое смысловое значение имеет animation_frame, меняющееся от 0 до 30 с шагом 3?
Почему три? FE 80 это +1
Что касается с шагом 4, так это предполагается, что деревья качаются. Так как у стандартных деревьев эта анимация не нарисована, то это изменение ни на что не влияет. Когда раньше были мои уродливые деревья, они качались. Если переделать графику, то не переделывая CB получишь качающиеся деревья.

дворник писал(а):Как я понял, тайл отрисовывается 4-мя деревьями с отступом от углов к центру тайла, с учётом наклона поверхности клетки. Либо пеньками на их месте. Деревья регулярно растут. Скорость анимации 7, что означает 2 игровых дня. В свете этого, шаг animation_frame от 0 до 30 выливается не в один месяц, а в два. Что, лес растёт за 2 месяца?
Код: Выделить всё
// do not pass to state 5 if other industry tile has state 5 (frame 14).  return 14 if none, 12 if any

Да, отрастает лес довольно быстро. Но иную модель данного типа предприятия нормально не сделать. Если делать как у lumber mill в тропическом климате, так при оплате некоторой суммы денег он вообще мгновенно растёт.
Другое дело в принципе надо бы уйти от CB27 (путём увеличения количества фрэймов в 4 раза).

дворник писал(а):Три варианта сочетания этих 4-х деревьев, выбираются случайно.
Почему? 8 случайных

дворник писал(а):Есть подстройка под игрушечный климат, под тропики, а обычный и арктический идут вместе. Итого 3.
state от 0 (самое низкое) до 3 (дерево выросло), затем на 4 они просто торчат, на 5 их рубят (рисуется спрайт кучки брёвен. только их там 2 варианта спрайтов, пока не понял, зачем?),
Для красоты

дворник писал(а):на 6 пеньки, на 7 пустая клетка.
Деревья растут, чуток стоят, потом пилятся, пеньки, и начинают расти снова.
Да

дворник писал(а):Изначально они сразу высокие.
Если построишь в игре, то изначально маленькие
Аватара пользователя
George
Почетный тайкунер
Почетный тайкунер
 
Сообщения: 1384
Зарегистрирован: Пн сен 20, 2004 12:02
Откуда: SPb, Russia

Re: Ресурсы в ECS

Сообщение дворник » Вс окт 23, 2011 17:36

George писал(а):Можно. Потому что нет переменной, в которой можно смотреть текущую скорость анимации.

Думаю, всё же так делать не надо, надо следовать спецификации cb. А зачем м.б. нужна текущая скорость анимации? По моему, текущего фрейма достаточно, чтобы определить состояние и что показывать.

George писал(а):Почему? 8 случайных

Ага, 8. Не на тот блок посмотрел, когда писал.

George писал(а):Другое дело в принципе надо бы уйти от CB27 (путём увеличения количества фрэймов в 4 раза).

Почему уходить, каждый cb к месту. Я вот думаю, что animation_frame должна меняться только когда реально меняется состояние элемента. Например, вид. А использовать его как монотонно возрастающий счётчик (или индекс) - только напрасно грузить процессор. В openttd для процессора и так есть, чем заняться.
Я потому и бульдозерную анимацию перевёл с 2 на 3, и дым из труб тоже.

George писал(а):Почему три? FE 80 это +1
Что касается с шагом 4, так это предполагается, что деревья качаются.


Есть там такие блоки:
Код: Выделить всё
# 4648   VarAction2 - Choose between Action2 chains
Linked from: # 4651 VarAction2
Feature   0x09 "Industry tiles"
CargoID   0x61
VarAction2 Type   0x81 byte of "current industry tile"
Formula   value := Var44"Animation frame"
Decision   
From   To   
0x01 (1)   0x01 (1)   chain to 0x08 (# 4562 VarAction2)
0x03 (3)   0x03 (3)   return 0x0000
0x05 (5)   0x05 (5)   chain to 0x09 (# 4563 VarAction2)
0x07 (7)   0x07 (7)   return 0x0004
0x09 (9)   0x09 (9)   chain to 0x0A (# 4564 VarAction2)
0x0B (11)   0x0B (11)   return 0x0008
0x0D (13)   0x0D (13)   chain to 0x0B (# 4565 VarAction2)
0x0F (15)   0x0F (15)   return 0x000C
0x11 (17)   0x11 (17)   chain to 0x5F (# 4647 VarAction2)
0x13 (19)   0x13 (19)   return 0x0010
0x1F (31)   0x79 (121)   return 0x0002
Default   return 0x00FE


Или это как раз качалки деревьев по 4?

Я вот думал, что неплохо бы ещё опадение листьев добавить зимой, вроде есть соответствующие спрайты-палки. Раз анимации для качания деревьев нет, попробую сделать без неё.

Ещё обратил внимание, что для лесопилки в cb 2B (и ещё для чего-то в хим. векторе было) используется такой блок:

Код: Выделить всё
# 4854   ActionC - Do nothing
Comment: 0x0C " - amount of acceptance (F2) (CB 2B) -----------------------------------------------------------------------------------------"
# 4855   VarAction2 - Choose between Action2 chains
Linked from: # 4857 VarAction2
Feature   0x09 "Industry tiles"
CargoID   0xEF
VarAction2 Type   0x82 byte of "industry of tile"
Formula   value := (Var7C"PersistentStorage"[0x00]) and 0x03
Decision   
From   To   
0x01 (1)   0x01 (1)   return 0x0108
0x02 (2)   0x02 (2)   return 0x0180
0x03 (3)   0x03 (3)   return 0x0188
Default   return 0x0100


Зачем эта единичка (01) на груз 3? Всё равно её не хватит на полноценный приём груза 3. Я такие блоки просто привожу либо к 0x0888, либо к 0x0088.
дворник
Президент
Президент
 
Сообщения: 563
Зарегистрирован: Сб дек 05, 2009 22:57

Re: Ресурсы в ECS

Сообщение George » Вс окт 23, 2011 19:57

дворник писал(а):Думаю, всё же так делать не надо, надо следовать спецификации cb.
А как ты оставишь её без изменений?

дворник писал(а):А зачем м.б. нужна текущая скорость анимации?
Определяет время между фреймами. Учитывая текущий диапазон вариантов, увеличив число фреймов можно сделать "подмену"

дворник писал(а):
George писал(а):Другое дело в принципе надо бы уйти от CB27 (путём увеличения количества фрэймов в 4 раза).
Почему уходить,
Потому что он жрёт до .... CPU. CB 27 можно использовать только тогда, когда иначе никак. В нашем случае можно обойтись.

дворник писал(а):Я вот думаю, что animation_frame должна меняться только когда реально меняется состояние элемента. Например, вид. А использовать его как монотонно возрастающий счётчик (или индекс) - только напрасно грузить процессор.
Хорошо, а как тогда менять счётчики? Даже в самом последнем коде (bauxite mine) CB26 используется как таймер. Более эффективных таймеров я не нашёл. Твои предложения?

дворник писал(а):Я потому и бульдозерную анимацию перевёл с 2 на 3, и дым из труб тоже.
Что значит с 2 на 3? Если ты про PROP 10 то ты просто замедлил анимацию и всё.

дворник писал(а):
George писал(а):Почему три? FE 80 это +1
Что касается с шагом 4, так это предполагается, что деревья качаются.

Есть там такие блоки:
Default return 0x00FE
Или это как раз качалки деревьев по 4?
Да.

дворник писал(а):Я вот думал, что неплохо бы ещё опадение листьев добавить зимой, вроде есть соответствующие спрайты-палки.
В мире TTD зимой деревья покрыты снегом, но листья не опадают. Не надо это менять, лес будет выделяться из окружающего леса. Это неправильно. Лес, на котором нет производства, если не смотреть на домик лесника, должен быть совершенно незаметен.

дворник писал(а):Ещё обратил внимание, что для лесопилки в cb 2B (и ещё для чего-то в хим. векторе было) используется такой блок:
Зачем эта единичка (01) на груз 3? Всё равно её не хватит на полноценный приём груза 3. Я такие блоки просто привожу либо к 0x0888, либо к 0x0088.
Не надо. Это приём пассажиров. Если невдалеке будут домики, то груз принимается.
Это как у многих домов. Отдельно стоящий дом может не принимать пассажиров/почту/товары, и только группа домов принимает груз.
Аватара пользователя
George
Почетный тайкунер
Почетный тайкунер
 
Сообщения: 1384
Зарегистрирован: Пн сен 20, 2004 12:02
Откуда: SPb, Russia

Пред.След.

Вернуться в Новая графика в OpenTTD

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

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