1 | processActors proc near ; CODE XREF: main+317p
|
---|
2 | ; smlayer_overrideDrawActorAt+1Bp
|
---|
3 |
|
---|
4 | actors_num= dword ptr -0F8h
|
---|
5 | actors_num_= dword ptr -0F4h
|
---|
6 | sort_criteria= dword ptr -7Ch
|
---|
7 | var_4= dword ptr -4
|
---|
8 |
|
---|
9 | push ebx
|
---|
10 | push esi
|
---|
11 | push edi
|
---|
12 | push ebp
|
---|
13 | sub esp, 0F4h
|
---|
14 | mov eax, 1
|
---|
15 | mov edx, 4
|
---|
16 | mov ecx, 2
|
---|
17 | xor edi, edi
|
---|
18 | xor ebx, ebx
|
---|
19 | lea eax, [eax+0]
|
---|
20 |
|
---|
21 | loc_223B4: ; CODE XREF: processActors+52j
|
---|
22 | movzx esi, actor_room[eax]
|
---|
23 | cmp esi, _currentRoom
|
---|
24 | jnz short loc_223DC
|
---|
25 | add ebx, 4
|
---|
26 | movsx esi, actor_y[ecx]
|
---|
27 | inc edi
|
---|
28 | sub esi, actor_layer[edx]
|
---|
29 | mov [esp+ebx+0F4h+actors_num], eax
|
---|
30 | mov [esp+edx+0F4h+sort_criteria], esi
|
---|
31 |
|
---|
32 | loc_223DC: ; CODE XREF: processActors+2Dj
|
---|
33 | add edx, 4
|
---|
34 | inc eax
|
---|
35 | add ecx, 2
|
---|
36 | cmp eax, 30
|
---|
37 | jl short loc_223B4
|
---|
38 | test edi, edi
|
---|
39 | jz loc_2246B
|
---|
40 | jle short loc_22440
|
---|
41 | lea eax, ds:0[edi*4]
|
---|
42 | xor ebp, ebp
|
---|
43 | mov [esp+0F4h+var_4], eax
|
---|
44 |
|
---|
45 | loc_22402: ; CODE XREF: processActors+AAj
|
---|
46 | test edi, edi
|
---|
47 | jle short loc_22434
|
---|
48 | mov edx, ebp
|
---|
49 | lea esi, ds:0[edi*4]
|
---|
50 | xor eax, eax
|
---|
51 |
|
---|
52 | loc_22411: ; CODE XREF: processActors+9Ej
|
---|
53 | mov ebx, [esp+edx+0F4h+actors_num_]
|
---|
54 | mov ecx, [esp+eax+0F4h+actors_num_]
|
---|
55 | mov ebx, [esp+ebx*4+0F4h+sort_criteria]
|
---|
56 | cmp ebx, [esp+ecx*4+0F4h+sort_criteria]
|
---|
57 | jge short loc_2242D
|
---|
58 | mov ebx, [esp+eax+0F4h+actors_num_]
|
---|
59 | mov ecx, [esp+edx+0F4h+actors_num_]
|
---|
60 | mov [esp+edx+0F4h+actors_num_], ebx
|
---|
61 | mov [esp+eax+0F4h+actors_num_], ecx
|
---|
62 |
|
---|
63 | loc_2242D: ; CODE XREF: processActors+8Bj
|
---|
64 | add eax, 4
|
---|
65 | cmp eax, esi
|
---|
66 | jl short loc_22411
|
---|
67 |
|
---|
68 | loc_22434: ; CODE XREF: processActors+70j
|
---|
69 | add ebp, 4
|
---|
70 | cmp ebp, [esp+0F4h+var_4]
|
---|
71 | jl short loc_22402
|
---|
72 |
|
---|
73 | loc_22440: ; CODE XREF: processActors+5Cj
|
---|
74 | test edi, edi
|
---|
75 | jle short loc_2246B
|
---|
76 | lea edi, ds:0[edi*4]
|
---|
77 | xor ebx, ebx
|
---|
78 |
|
---|
79 | loc_2244D: ; CODE XREF: processActors+D5j
|
---|
80 | mov eax, [esp+ebx+0F4h+actors_num_]
|
---|
81 | cmp actor_costume[eax*2], 0
|
---|
82 | jz short loc_22464
|
---|
83 | push eax
|
---|
84 | call drawActorCostume
|
---|
85 | add esp, 4
|
---|
86 |
|
---|
87 | loc_22464: ; CODE XREF: processActors+C5j
|
---|
88 | add ebx, 4
|
---|
89 | cmp ebx, edi
|
---|
90 | jl short loc_2244D
|
---|
91 |
|
---|
92 | loc_2246B: ; CODE XREF: processActors+56j processActors+AEj
|
---|
93 | add esp, 0F4h
|
---|
94 | pop ebp
|
---|
95 | pop edi
|
---|
96 | pop esi
|
---|
97 | pop ebx
|
---|
98 | retn
|
---|
99 | processActors endp
|
---|