#1 26-06-2010 04:25

VintProg_Pro
Registered: 17-06-2010
Posts: 153

Не загружается фон VC

Вот есть функция:

 load_txd_fronten1 proc near             ; CODE XREF: sub_458EC0+58Dp
.text:00580CF0                                         ; sub_4A3A34+B0p ...
.text:00580CF0
.text:00580CF0 arg_0           = dword ptr  4
.text:00580CF0 arg_4           = dword ptr  8
.text:00580CF0
.text:00580CF0                 push    ebx
.text:00580CF1                 push    esi
.text:00580CF2                 push    edi
.text:00580CF3                 push    ebp
.text:00580CF4                 push    1
.text:00580CF6                 xor     bl, bl
.text:00580CF8                 mov     ebp, [esp+14h+arg_0]
.text:00580CFC                 mov     edi, [esp+14h+arg_4]
.text:00580D00                 call    sub_63F020
.text:00580D05                 pop     ecx
.text:00580D06
.text:00580D06 loc_580D06:                             ; CODE XREF: load_txd_fronten1+27j
.text:00580D06                 push    edi
.text:00580D07                 push    1
.text:00580D09                 push    2
.text:00580D0B                 call    sub_645A10
.text:00580D10                 mov     esi, eax
.text:00580D12                 add     esp, 0Ch
.text:00580D15                 test    esi, esi
.text:00580D17                 jz      short loc_580D06
.text:00580D19                 test    esi, esi
.text:00580D1B                 jz      short loc_580D7E
.text:00580D1D                 mov     eax, ds:dword_9B6A54
.text:00580D22                 mov     ecx, eax
.text:00580D24                 mov     ebx, [ecx+4]
.text:00580D27                 movzx   edx, byte ptr [ebx+ebp]
.text:00580D2B                 and     edx, 80h
.text:00580D31                 jz      short loc_580D37
.text:00580D33                 xor     edi, edi
.text:00580D35                 jmp     short loc_580D43
.text:00580D37 ; ---------------------------------------------------------------------------
.text:00580D37
.text:00580D37 loc_580D37:                             ; CODE XREF: load_txd_fronten1+41j
.text:00580D37                 mov     ecx, ebp
.text:00580D39                 lea     edi, [ecx+ecx*8]
.text:00580D3C                 lea     edi, [edi+edi*2]
.text:00580D3F                 add     edi, ecx
.text:00580D41                 add     edi, [eax]
.text:00580D43
.text:00580D43 loc_580D43:                             ; CODE XREF: load_txd_fronten1+45j
.text:00580D43                 push    0
.text:00580D45                 push    0
.text:00580D47                 push    16h
.text:00580D49                 push    esi
.text:00580D4A                 call    sub_64FB10
.text:00580D4F                 add     esp, 10h
.text:00580D52                 test    eax, eax
.text:00580D54                 jz      short loc_580D67
.text:00580D56                 push    esi
.text:00580D57                 call    sub_61E6F0
.text:00580D5C                 mov     [edi], eax
.text:00580D5E                 cmp     dword ptr [edi], 0
.text:00580D61                 setnz   bl
.text:00580D64                 pop     ecx
.text:00580D65                 jmp     short loc_580D74
.text:00580D67 ; ---------------------------------------------------------------------------
.text:00580D67
.text:00580D67 loc_580D67:                             ; CODE XREF: load_txd_fronten1+64j
.text:00580D67                 push    offset aFailedToLoadTx ; "Failed to load TXD\n"
.text:00580D6C                 call    nullsub_1
.text:00580D71                 xor     bl, bl
.text:00580D73                 pop     ecx
.text:00580D74
.text:00580D74 loc_580D74:                             ; CODE XREF: load_txd_fronten1+75j
.text:00580D74                 push    0
.text:00580D76                 push    esi
.text:00580D77                 call    sub_645940
.text:00580D7C                 pop     ecx
.text:00580D7D                 pop     ecx
.text:00580D7E
.text:00580D7E loc_580D7E:                             ; CODE XREF: load_txd_fronten1+2Bj
.text:00580D7E                 mov     al, bl
.text:00580D80                 pop     ebp
.text:00580D81                 pop     edi
.text:00580D82                 pop     esi
.text:00580D83                 pop     ebx
.text:00580D84                 retn
.text:00580D84 load_txd_fronten1 endp
.text:00580D84

В псевдо коде:

char __cdecl load_txd_fronten1(int a1, int a2)
{
  char v2; // bl@1
  int v3; // eax@2
  int v4; // esi@2
  int v5; // edi@5

  v2 = 0;
  sub_63F020(1);
  do
  {
    v3 = sub_645A10(2, 1, a2);
    v4 = v3;
  }
  while ( !v3 );
  if ( v3 )
  {
    if ( *(_BYTE *)(*(_DWORD *)(dword_9B6A54 + 4) + a1) & 0x80 )
      v5 = 0;
    else
      v5 = *(_DWORD *)dword_9B6A54 + 28 * a1;
    if ( sub_64FB10(v3, 22, 0, 0) )
    {
      *(_DWORD *)v5 = sub_61E6F0(v4);
      v2 = *(_DWORD *)v5 != 0;
    }
    else
    {
      nullsub_1();
      v2 = 0;
    }
    sub_645940(v4, 0);
  }
  return v2;
}

Сделал так:
Load_backrounf : procedure(FileName : pchar; i : integer); cdecl;


    @Load_backrounf := PCardinal($00580CF0);
     Load_backrounf('MODELS\my_fronten1.TXD',1);

Не хочит загружать? В чем тут проблема, помогите пожалуйста.

Offline

Board footer

Powered by FluxBB