Кто нить в курсе что есть такое (Set Initial Point) ?
Есть один переход который мну в тупик заводит не первый день:
Код:
.text:201B01D5 jnz loc_201B0285
То попадаем сразу:
Код:
.text:201B0285 loc_201B0285: ; CODE XREF: FWorldBuilder::buildWorldStructure(ULevel *,wchar_t *,UViewport *,int,int)+6D5j
.text:201B0285 push esi
.text:201B0286 push offset aNumOfInitpoint ; "Num of InitPoints = %d"
.text:201B028B call ds:?debugf@@YAXPB_WZZ ; debugf(wchar_t const *,...)
.text:201B0291 add esp, 8
.text:201B0294 mov [ebp+64h+var_14], 0
.text:201B029B jmp short loc_201B02A0
.text:201B029B ; ---------------------------------------------------------------------------
И билд идет нормально, но мы видим косяки, примеры можно посмотреть в сбилденных квадратах которые я выложил ранее.
Но если переход исправить то попадаем на код который ниже но на этом все, зависает:
Код:
.text:201B01D1 loc_201B01D1: ; CODE XREF: FWorldBuilder::buildWorldStructure(ULevel *,wchar_t *,UViewport *,int,int)+6B3j
.text:201B01D1 cmp dword ptr [ebx+4], 0
.text:201B01D5 jnz loc_201B0285
.text:201B01DB mov eax, ds:?GWarn@@3PAVFFeedbackContext@@A ; FFeedbackContext * GWarn
.text:201B01E0 mov eax, [eax]
.text:201B01E2 mov ecx, [eax]
.text:201B01E4 push offset aSettingInitial ; "Setting Initial Points"
.text:201B01E9 push 800h
.text:201B01EE push 0
.text:201B01F0 push eax
.text:201B01F1 mov edx, [ecx+18h]
.text:201B01F4 call edx
.text:201B01F6 add esp, 10h
.text:201B01F9 push offset sub_201ADF40
.text:201B01FE lea eax, [ebp+64h+Parameter]
.text:201B0204 push eax
.text:201B0205 mov ecx, offset aSetinitialpoin ; "SetInitialPoints"
.text:201B020A call sub_201085D0
.text:201B020F mov byte ptr [ebp+64h+var_68], 3
.text:201B0213 mov [ebp+64h+arg_C], ebx
.text:201B0216 lea ecx, [ebp+64h+arg_C]
.text:201B0219 push ecx
.text:201B021A lea edi, [ebp+64h+Parameter]
.text:201B0220 call sub_20108790
.text:201B0225 push 2 ; nPriority
.text:201B0227 mov edx, [ebp+64h+hThread]
.text:201B022D push edx ; hThread
.text:201B022E call ds:SetThreadPriority
.text:201B0234 mov ecx, edi ; lpParameter
.text:201B0236 call sub_200D52A0
.text:201B023B mov edi, ds:Sleep
.text:201B0241
.text:201B0241 loc_201B0241: ; CODE XREF: FWorldBuilder::buildWorldStructure(ULevel *,wchar_t *,UViewport *,int,int)+774j
.text:201B0241 lea ecx, [ebp+64h+Parameter]
.text:201B0247 call sub_200D5490
.text:201B024C test eax, eax
.text:201B024E jz short loc_201B0276
.text:201B0250 mov eax, ds:?GWarn@@3PAVFFeedbackContext@@A ; FFeedbackContext * GWarn
.text:201B0255 mov eax, [eax]
.text:201B0257 mov ecx, [eax]
.text:201B0259 push offset aSettingInitial ; "Setting Initial Points"
.text:201B025E push 800h
.text:201B0263 mov edx, [ebx+24h]
.text:201B0266 push edx
.text:201B0267 push eax
.text:201B0268 mov eax, [ecx+18h]
.text:201B026B call eax
.text:201B026D add esp, 10h
.text:201B0270 push 2 ; dwMilliseconds
.text:201B0272 call edi ; Sleep
.text:201B0274 jmp short loc_201B0241
.text:201B0276 ; ---------------------------------------------------------------------------
Ни критов не ошибок ничего не происходит, просто жрет 50% процессорного времени, ждал довольно долго думал мб оживет, но нифига.
Что самое примечательное, если переход не менять, а оставить так как есть то по умолчанию выставляется Num of InitPoints = 1 и билдит сносно, но не так как должно.
Если подумать, то InitPoints это точки с которых будет начинаться билд мапы. Вот откуда билдер берет эти точки, автоматом ли или в ручную нужно ставить?
Есть идеи какие нить?