heller Написал:а где описание sSecData1 и sSecData2 ?Согласен, неточности имеют место быть.
sSecData1 = sSecGroundData
sSecData2 = sSecTextureData
ALtair Написал:DWORD dwSecNo;Тип материала
Структуру sMpHead ты описал верно.
Код:
.MP
sMpHead
Материалы[wNumMaterials]
Тайлы[dwnTiles]
Анимация Тайлов[dwNumAnimTiles]
Код:
.SEC
sSecHead
sSecGroundData[33x33] // Карта высот суши 33x33
if (sSecHead->bWaterFlag)
{
sSecGroundData[33x33] //Карта высот воды (лавы) 33x33
}
sSecTextureData[16x16] //Карта текстур для суши. 16x16
if (SecHead->bWaterFlag)
{
sSecTextureData[16x16] //Карта текстур для воды(лавы). 16x16
BYTE[16x16] // ID Тайлов
}
heller Написал:Берем sec без водыИсправляюсь...
размер = 9229 байт
размер sSecData1 = размер sSecGroundData + размер sSecTextureData = 9 байт
считаем sSecData1*32*32 = 9216 + 2 байта заголовок
получаем 9218, итого остается 11 байт, а надо считать 16*16, в чем дело?
аналогично пробовал 7*32*32+2*16*16+2 , тоже не сходится...
5 + 33*33*8 + 2*16*16 = 9229
5 + (33*33*8 + 2*16*16 + 1*16*16)*2 = 18965
5=SECHead
8=SECGround
2=SECTexture
1=BYTE
К сожалению, у меня нет возможности в данный момент проверить написанное мной на практике, я описываю теорию - то что помню, так что неточности могут быть.