хех, если бы "ini" был программируемым, то почти цены бы проге не было (надо ещё допилить 16, 24 и 32 бита - они тоже существуют).
В теории (и при очень большом желании) можно прикрутить что-то наподобие luadec и сделать команды для навигации по файлу, но для маленького проекта эта задача слишком большая и серьезная. Кроме того поддержка программируемых скриптов есть в крупных программах для разбора игровых ресурсов, вроде Hyper Ripper (см. форум XenTax - там любят подобные штуки).
Поддержку 16bpp/24bpp/32bpp постараюсь конечно сделать, просто пока такие текстуры мне не попадались (и честно говоря я сомневаюсь, что можно собрать *.tm2 с такой глубиной цвета, так что экспорт/импорт придется переделывать основательно и додумывать).
и ещё я бы добавил в поля оффсетов стрелки, увеличивающие или уменьшающие адрес на байт - можно было бы "двигаться" по файлу - для "новичков" самое то. а текстуру рендерить по любому изменению, а не только по кнопке.
Отличная идея с кнопками). В следующей версии обязательно сделаю. Пользователь сам сможет вводить размер данных, который будет прибавляться к текущему оффсету (или вычитаться). Это действительно удобно, например, если смещаться по блокам на число байт, кратное шестнадцати (или даже по секторам, т.е. по 2048).
Вопрос - нужно ли отображение (и редактирование) оффсетов в шестнадцатиричном виде?
почему так - если текстура содержит мипмапы, то палитра должна идти сразу за мипмапами? вообще, как связаны здесь мипмапы и палтра? O_o ответ на этот вопрос за гранью моего сознания. пример тому, скажем, текстура models/gta3.img/bones.txd из GTA SA PS2. палитра как отсчитывалась через N байт, так и отсчитывается, просто появились мипмапы и всё.
Палитра обычно идет сразу после текстуры, к которой она относится. Если есть мипмапы, то после текстуры идут они, а за ними уже в таком случае следует палитра (для текстуры и ее мипмапов она общая).
San Andreas (и вообще RW) не слишком хороший пример, там палитра вообще хранится отдельно от графики, вне зависимости от того, есть у нее мипмапы или нет. Это, честно говоря, довольно странно выглядит, в других играх подобных случаев не встречал, даже в LCS/VCS/CTW палитра всегда идет сразу после текстуры.
Этот момент, кстати, тебе лучше
поправить в TXD_2048. Применительно к тому PS2-изображению (плакат Мэдд Дога - пять уровней mipmaps, 4bpp) оффсет палитры получитcя: [оффсет начала изображения] + [(128*256) div 2] + [(64*128) div 2] + [(32*64) div 2] + [(16*32) div 2] + [(8*16) div 2]. В PSP-версии ширина при переходе на каждый "нижний" уровень мипмапов на два делится только до 32, дальше такое значение и остается (высота при том продолжает делиться, т.е. пропорции текстуры на "нижних" уровнях меняются).