Berserker Wrote:Нет, именно типы лодов. ZVS в своей AddToList добавляет новые лоды во все три игровых типа:
// 1 def
// 2 txt,pic
// 3 wav
А традиционно разные лоды к разным типам. h3sprite = def, h3bitmap = txt, pcx. Осталось лишь проверить, берётся ли из лодов звук.
Об этих индексах и типах я ничего не знал.
Я говорил про эти индексы, передающиеся аргументами sub_75605B:
.text:007015F8                 push    4
.text:00701615                 push    5
.text:007015E5                 push    1
.text:007015E7                 push    offset aH3wog_lod ; "h3wog.lod"
.text:007015EC                 call    sub_773F64
.text:007015F1                 add     esp, 8
.text:007015F4                 test    eax, eax
.text:007015F6                 jz      short loc_701602
.text:007015F8                 push    4
.text:007015FA                 call    sub_75605B
.text:007015FF                 add     esp, 4
.text:00701602
.text:00701602 loc_701602:                             ; CODE XREF: .text:007015F6j
.text:00701602                 push    1
.text:00701604                 push    offset aH3custom_lod ; "h3custom.lod"
.text:00701609                 call    sub_773F64
.text:0070160E                 add     esp, 8
.text:00701611                 test    eax, eax
.text:00701613                 jz      short loc_70161F
.text:00701615                 push    5
.text:00701617                 call    sub_75605B
.text:0070161C                 add     esp, 4
А внутри sub_75605B этот параметр сравнивается с 0 и 64:
.text:00756077                 cmp     [ebp+arg_0], 0
.text:0075607B                 jl      short loc_756083
.text:0075607D                 cmp     [ebp+arg_0], 64h
.text:00756081                 jl      short loc_7560A1
И, если он не в их промежутке, вызывается некая функция, одним из параметров которой является указатель на строку "Incorrect LOD index to add".
.text:00756083 loc_756083:                             ; CODE XREF: sub_75605B+20j
.text:00756083                 push    offset aIncorrectLodIn ; "Incorrect LOD index to add"
.text:00756088                 push    45h
.text:0075608A                 push    13h
.text:0075608C                 call    sub_71248A
.text:0075605B                 push    ebp
.text:0075605C                 mov     ebp, esp
.text:0075605E                 sub     esp, 14h
.text:00756061                 push    ebx
.text:00756062                 push    esi
.text:00756063                 push    edi
.text:00756064                 pusha
.text:00756065                 push    0
.text:00756067                 push    offset unk_121EAC3
.text:0075606C                 mov     ecx, offset unk_28AAFD0
.text:00756071                 call    sub_706D10
.text:00756076                 popa
.text:00756077                 cmp     [ebp+arg_0], 0
.text:0075607B                 jl      short loc_756083
.text:0075607D                 cmp     [ebp+arg_0], 64h
.text:00756081                 jl      short loc_7560A1
.text:00756083
.text:00756083 loc_756083:                             ; CODE XREF: sub_75605B+20j
.text:00756083                 push    offset aIncorrectLodIn ; "Incorrect LOD index to add"
.text:00756088                 push    45h
.text:0075608A                 push    13h
.text:0075608C                 call    sub_71248A
.text:00756091                 add     esp, 0Ch
.text:00756094                 call    sub_7712B0
.text:00756099                 or      eax, 0FFFFFFFFh
.text:0075609C                 jmp     loc_756195