итак время идет, а мой долгострой все так и не выходит
![Улыбка :)](//www.emu-land.net/forum/Smileys/default/smiley.gif)
затык, значится, имеется с редактором графики и конфигов юнитов. как известно мой беспросветный гений инженерной мысли запланировал стописятдве функции для этого редактора. но совсем недавно товарищ
Ti_ меня несколько расстроил. планы все мои полетели в тартарары
![Улыбка :)](//www.emu-land.net/forum/Smileys/default/smiley.gif)
рассказываю. причем наверное начну издалека. ну как всегда вобщем стописятдве тонны текста. и объясню наверное на примере окна ментатов, так как более наглядно.
так вот, кто-нибудь задавался вопросом, почему графика ментатов состоит из 3 файлов? это несколько неудобная, но вынужденная мера. дело в том, что на приставке эта самая память для графики не идет цельным блоком. она разбита на несколько сегментов из-за некоторых обязательных частей, а именно размещения карты тайлов изображения. или даже двух карт. помимо карт еще там какая-то неведомая мне фигня тоже лежит, как объяснял товарищ
Ti_, а я его как всегда не слушал, то это:
ну кроме карт там ещё spr-ram и ещё hscroll в каком-то 'тайле'
по итогу эти "обязательные" места берут и портят всю малину. если бы в нормальном случае как начал сначала памяти писать свою графику так и пиши, то здесь надо начал сначала, дошел до карты, перепрыгнул в конец карты, пишешь дальше. дошел до этих неведомых spr-ram и hscroll - перепрыгнул в их конец, опять пишешь, потом вторая карта опять тебе мешает - её тоже надо перепрыгивать...
![](http://i89.fastpic.ru/big/2018/1006/29/3427bd7b1fbc420d85cef0d68481be29.png)
(информация на картинке не точная, но примерно верно
![Улыбка :)](//www.emu-land.net/forum/Smileys/default/smiley.gif)
и для иллюстрации проблемы пойдет)
поэтому, что память так разрезана и приходится разрезать ментата на три части.
теперь значится юниты - они в основном располагаются в первом большом блоке. но там-же и земля, и заводы. и не все юниты влезли. кериол переехал в самый низ, потом графика пули пехотинской тоже внизу, а она типа вроде тоже как имеет отношение к юнитной графике.
момент номер второй - сама эта графика вручную скурпулезно скомпонована, чтобы уместится в этом маленьком общем лимите тайлов. тут наверное стоит объяснить на примере кериола. этот самый кериол, хоть и большой - 4х4 тайла, и имеет 3 положения - 0 градусов (мордой вверх), 45 - по диагонали, и 90 - повернут боком. в теории это должно быть 3 положения * 4х4 тайла = 48 тайлов. но создатели Дюны знали способ сэкономить
![Улыбка :)](//www.emu-land.net/forum/Smileys/default/smiley.gif)
взяли 0 градусную графику и разрезали её на пополам. то-же самое и с 90 градусным. в итоге вместо 16 тайлов они стали занимать по 8. тут пришел шеф, всех похвалил, но сказал что этого мало. они покумекали, и увидели пустой тайл под номером 8 в 0 градусной графике. тогда... что можно сделать? совместить этот пустой тайл с пустым тайлом в следующем изображении
![Улыбка :)](//www.emu-land.net/forum/Smileys/default/smiley.gif)
![](http://i89.fastpic.ru/big/2018/1006/80/25738cd46b2ac31a2de83f323d2bc980.png)
и таким вот образом было спасено еще несколько тайлов. и это хорошо.
теперь о плохом. это была ручная, с любовью, подгонка. то есть прародители Дюны искали такие пустые тайлы, совмещали друг с другом и радовались свободным тайлам, куда можно было бы внести еще какие-то юниты. все было замечательно, пока не пришел я и не захотел это дело редактировать. редактор не умеет делать подобное, то есть искать пустые тайлы, зеркалить изображения какие нужно и подгонять друг к другу. тут можно в принципе и заканчивать... однако мне бы все-таки хотелось бы сделать этот долбанный редактор.
итак, что сделано уже сегодня - я изначально запланировал момент, что можно добавлять спрайт, слой, или еще одну картинку к изображению. типа как хеви танк - состоит из кузова - один слой, и башни - второй слой. предполагалось что пользователь мог бы добавить и третий и пятый и так далее кнопкой add. дальше была запланирована возможность изменять фармфактор юнита. скажем это был одиночный пехотинец - 1х1 тайл, 8х8 пикселов. тыркаешь изменение размера и делаешь скажем 2х2 (16х16 пикселов) и рисуешь толстого пехотинца. и игра должна была все это дело сожрать. красота же? красота! но хер там. во первых существующие юниты уже итак в притык и изменение размеров поведет увеличение количества используемых тайлов - то есть тупо некуда будет вписывать новую графику. только если разве что у какого-то другого юнита отобрать тайлы. другой момент с этим связанный - это разные юниты, использующие одну и ту-же графику. например трайк и ордосовский трайк. графика одна, юниты разные. изменив размер с 2х2 на 3х3 скажем обычному трайку, ордосовский трайк тоже должен будет изменен автоматически. иначе из-за него посыплется графика. дальше есть еще один костыль - орнитоптёр - раньше была оптимизация. орнитоптёр жрал мало тайлов, но редактировать его было не реально. черт ногу сломит там найти концы с точки зрения редактора. товарищ
Ti_ его переиначил на более простой вариант. теперь он жрет дофига тайлов, но редактировать проще. проще то проще, но я то думал что каждый кадр можно по своему резать и типа чтоб они могли иметь разные количество записей. но оказалось что второй и третий кадр анимации должен повторять конфиг первого. опять мне пришлось закатать губу, которую я раскатал на три километра. еще один момент, который я запланировал - возможность использование в одном юните графику другого юнита - специальный переключатель адреса графики был на окне редактора. но опять таки эпический облом из-за этих всех ограничений.
в итоге, пришлось эти функции поотрубать. а во вторых - пришлось добавить графу "реальное количество тайлов графики". иначе если через редактор редактировать тот-же кериол, где он обрезан вместо 8 тайлов имеет 7 - редактор при редактировании запишет 8 и как итог вся графика поплывет к черту. то есть в итоге возможности редактирования гораздо меньше, но редактор будет вписываться в существующие размеры, не нарушая структуру игры. это решение мне не нравится - я хотел большего! :'(
получается мне осталось сделать сохранение, отказавшись от блекджека и легкодоступных женщин и редактор будет хоть как-то сохранять то существующее безобразие.
однако что можно было бы сделать, и правда не ясно возможно ли такое по техническим причинам:
1. если перенести обязательные части, то есть карты и те скролы как там они неведомые хрени - на самый верх, тогда сегментов графики будет уже не три, а два. сам большой сегмент увеличиться еще немного, а значит тогда все юниты смогут влезать в один блок и редактору будет куда проще это дело редактировать.
![](http://i91.fastpic.ru/big/2018/1006/e4/b8d911765231bbe0ca54e56d261fb1e4.png)
2. вариант. перенести в эти обрезки, во 2 и 3 блоки графики - землю. ведь графика земли подразумевается что статична. а графика юнитов и заводов - может изменятся, то есть был юнит 2х2 - пользователь захотел 3х3 сделал. завод был 3х3 - пользователь захотел и сделал 1х1. будучи в едином блоке проще изменять эти размеры и следить чтоб графика не поплыла.
3. вариант. дичайший
![Улыбка :)](//www.emu-land.net/forum/Smileys/default/smiley.gif)
делать редактор юнитов не как редактор юнитов, а на подобии моего конструктора экранов, то есть делать полный экспорт информации из папок редактора в игру, то есть информация в редакторе будет более полная. но докучи тогда в конфиге юнита нужен будет еще один параметр в конце:
carry_spr_cfg1:
dc.w 1
dc.w $20, $20, $FFF0, spr2x4, crr_t1|HVMirr, $FFF0, 7 ; клеит из двух половинок
dc.w $20, $20, $FFF0, spr2x4, crr_t1|VMirr, $0, 7
то есть указание реального количества тайлов. 2х4 - как бы подразумевает, что тайлов должно быть 8. но ведь в реальности там тайлов 7. восьмой тайл это первый тайл последующего изображения. однако ежели несмотря на 2х4 игра вместо 8 тайлов будет на самом деле загружать 7 - тогда той самой ручной оптимизации и подгонки изображений пустыми тайлами друг к другу будет не нужно. это во первых. а во вторых таких пустых тайлов среди всей кучи техники встречается несколько раз и таким методом можно будет полностью отказаться от пустых тайлов, сэкономив еще больше для новой техники.