Формат elevdump файла.

{PageX} {PageZ} {NodeX} {NodeZ} {NodeRadius} {TextureCount} {HeightCount} {space separated Texture list} {space separated Height list}

[X страницы] [Z страницы] [X узла] [Z узла] [Радиус узла] [Количество текстур] [Количество высот] [Перечень текстур] [Перечень высот]

Например:
elevdump version 1
0 0 0 0 4 1 1 0 0
0 0 8 0 4 1 1 0 0
0 0 16 0 4 1 1 0 0


Волшебное слово "elevdump version 1", для миров 3.х.
Или "elevdump version 2", для миров 4.х.
 

Страница - участок террайна размером 128 на 128 ячеек.
X страницы. Номер страницы по оси X (запад(положительные) - восток(отрицательные)).
Z страницы. Номер страницы по оси Z (север(положительные) - юг(отрицательные)).
Страница X=0, Z=0 находится в центре мира,
и занимает ячейки от W=63 до E=64 и от N=63 до S=64,
во всех случаях - включительно.


Узел - квадратный участок страницы со стороной размером в 2 или 4, 8, 16, 32, 64, 128 ячеек (подтверждена работоспособность узлов 8х8).
X узла. Номер юго-восточной крайней угловой ячейки узла на странице по оси X от юго-восточного угла страницы, слева направо(от 0 до 127).
Z узла. Номер юго-восточной крайней угловой ячейки узла на странице по оси Z от юго-восточного угла страницы, снизу вверх(от 0 до 127).


Радиус узла. Узел - квадратный, имеется ввиду половина длины стороны.
Для узла 8х8 - "4".


Количество текстур. Если все ячейки узла имеют одну и туже текстуру - "1".
Если не все - количество ячеек в узле. Для узла 8х8 - "64".


Количество высот. Если все ячейки узла имеют одну и туже высоту - "1".
Если не все - количество ячеек в узле. Для узла 8х8 - "64".


Перечень текстур. Если все ячейки узла имеют одну и туже текстуру - номер текстуры.
Если не все - перечисление текстур ячеек подряд, от юго-восточного угла слева направо, снизу вверх.
Столько чисел, сколько ячеек в узле. Для узла 8х8 - "64".

Диапазон текстур от 0 до 62 для elevdump version 1.
Диапазон текстур от 0 до 500 для elevdump version 2.

Причём к номеру текстуры прибавляется число 64, столько раз,
сколько раз текстура повёрнута вокруг вертикальной оси с шагом 90 градусов, для elevdump version 1.
64 - один поворот на 90 градусов. 
128 - два поворота на 90 градусов.
192 - три поворота на 90 градусов.

Причём к номеру текстуры прибавляется число 16384, столько раз,
сколько раз текстура повёрнута вокруг вертикальной оси с шагом 90 градусов, для elevdump version 2.
16384 - один поворот на 90 градусов. 
32768 - два поворота на 90 градусов.
49152 - три поворота на 90 градусов.

Отверстие в террайне - текстура номер "254" для elevdump version 1.
Отверстие в террайне - текстура номер "65534" для elevdump version 2.


Перечень высот. Если все ячейки узла имеют одну и туже высоту - величина высоты.
Если не все - перечисление высот ячеек подряд, от юго-восточного угла слева направо, снизу вверх.
Столько чисел, сколько ячеек в узле. Для узла 8х8 - "64".

Допустимые значения высоты от -32768 до 32767 (в сантиметрах), для elevdump version 1.
И от -100000 до 100000 (в сантиметрах), elevdump version 2.


Примечания:

Ограничение количества текстур, 501 штука (для elevdump version 2), это ограничение миров версии 4.х,
сам формат позволяет иметь более 16000 текстур.

Ограничение диапазона высот, плюс/минус километр (для elevdump version 2), это ограничение миров версии 4.х,
сам формат позволяет иметь больший диапазон.

Для elevdump version 1, ограничение количества текстур и диапазона высот в самом формате.


Примеры:

0 0 56 48 4 1 1 0 0

X страницы = 0
Z страницы = 0
X узла = 56
Z узла = 48
Радиус узла = 4
Количество текстур = 1 (весь участок 8х8 застелен одной текстурой)
Количество высот = 1 (весь участок 8х8 имеет одну высоту - плоский)
Перечень текстур = 0 (весь участок 8х8 застелен одной текстурой - "terrain0")
Перечень высот = 0 (весь участок 8х8 имеет одну высоту - "0")


0 0 88 40 4 1 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -32000 -32000 0 0 0 0 0 0 -30000 -30000 0 0 0 0 0 0 -28000 -28000 0 0 0 0 0 0 -26000 -26000 0 0 0 0 0 0 -24000 -24000 0 0 0 0 0 0

X страницы = 0
Z страницы = 0
X узла = 88
Z узла = 40
Радиус узла = 4
Количество текстур = 1 (весь участок 8х8 застелен одной текстурой)
Количество высот = 64 (по крайней мере одна ячейка имеет высоту отличную от других ячеек узла)
Перечень текстур = 0 (весь участок 8х8 застелен одной текстурой - "terrain0")
Перечень высот = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -32000 -32000 0 0 0 0 0 0 -30000 -30000 0 0 0 0 0 0 -28000 -28000 0 0 0 0 0 0 -26000 -26000 0 0 0 0 0 0 -24000 -24000 0 0 0 0 0 0 (высоты ячеек перечисляются подряд, от юго-восточного угла слева направо, снизу вверх. 64 числа.)


0 0 80 40 4 64 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 0 0 0 0 0 0 128 128 0 0 0 0 0 0 128 128 0 0 0 0 0 0 128 128 0 0 0 0 0 0 128 128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32000 32000 -32000 -32000 -32000 -32000 -32000 -32000 30000 30000 -30000 -30000 -30000 -30000 -30000 -30000 28000 28000 -28000 -28000 -28000 -28000 -28000 -28000 26000 26000 -26000 -26000 -26000 -26000 -26000 -26000 24000 24000 -24000 -24000 -24000 -24000 -24000 -24000

X страницы = 0
Z страницы = 0
X узла = 80
Z узла = 40
Радиус узла = 4
Количество текстур = 64 (по крайней мере одна ячейка имеет текстуру отличную от других ячеек узла)
Количество высот = 64 (по крайней мере одна ячейка имеет высоту отличную от других ячеек узла)
Перечень текстур = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 0 0 0 0 0 0 128 128 0 0 0 0 0 0 128 128 0 0 0 0 0 0 128 128 0 0 0 0 0 0 128 128 0 0 0 0 0 0 (высоты ячеек перечисляются подряд, от юго-восточного угла слева направо, снизу вверх. 64 числа.)
Перечень высот = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32000 32000 -32000 -32000 -32000 -32000 -32000 -32000 30000 30000 -30000 -30000 -30000 -30000 -30000 -30000 28000 28000 -28000 -28000 -28000 -28000 -28000 -28000 26000 26000 -26000 -26000 -26000 -26000 -26000 -26000 24000 24000 -24000 -24000 -24000 -24000 -24000 -24000 (высоты ячеек перечисляются подряд, от юго-восточного угла слева направо, снизу вверх. 64 числа.)