Rev 133 | Rev 283 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 133 | Rev 205 | ||
---|---|---|---|
Line 1031... | Line 1031... | ||
1031 | 1031 | ||
Line 1032... | Line 1032... | ||
1032 | call calculate_edi |
1032 | call calculate_edi |
1033 | - | ||
1034 | 1033 | ||
1035 | sdp3: ; MAIN LOOP |
1034 | |
1036 | - | ||
1037 | cmp [edi+WinMapAddress],byte 1 ; ptrBuffer^<>byte(1) |
1035 | sdp3: ; MAIN LOOP |
1038 | jne snbgp |
1036 | cmp [edi+WinMapAddress],byte 1 ; ptrBuffer^<>byte(1) |
1039 | - | ||
1040 | push eax |
1037 | jne snbgp |
1041 | push ebx |
1038 | push eax |
1042 | 1039 | push ebx |
|
1043 | mov eax,dword [WinMapAddress-8] |
1040 | mov eax,dword [WinMapAddress-8] |
1044 | imul eax, [esp+4] ;4 |
1041 | imul eax, [esp+4] ;4 |
- | 1042 | xor edx,edx |
|
1045 | xor edx,edx |
1043 | mov ebx,[ScreenWidth] |
1046 | mov ebx,[ScreenWidth] |
1044 | div ebx |
1047 | div ebx |
1045 | mov cx,dx |
1048 | lea esi,[eax+eax*2] |
1046 | lea esi,[eax+eax*2] |
1049 | mov eax,dword [WinMapAddress-4] |
1047 | mov eax,dword [WinMapAddress-4] |
1050 | imul eax, [esp+0] ;0 |
1048 | imul eax, [esp+0] ;0 |
- | 1049 | xor edx,edx |
|
- | 1050 | mov ebx,[ScreenHeight] |
|
1051 | xor edx,edx |
1051 | div ebx |
1052 | mov ebx,[ScreenHeight] |
1052 | shl ecx,16 |
1053 | div ebx |
- | |
1054 | imul eax, [esp+8] ;8 |
1053 | mov cx,dx |
- | 1054 | imul eax, [esp+8] ;8 |
|
- | 1055 | add esi,eax |
|
- | 1056 | mov eax,[esi+0x300000] |
|
- | 1057 | push eax |
|
- | 1058 | ror ecx,16 |
|
- | 1059 | xor eax,eax |
|
- | 1060 | mov ax,cx |
|
- | 1061 | shl eax,1 ; óìíîæåíèå íà 2 |
|
- | 1062 | lea eax,[eax+eax*4] ; óìíîæåíèå íà 5 |
|
- | 1063 | xor edx,edx |
|
- | 1064 | mov ebx,[ScreenWidth] |
|
- | 1065 | div ebx |
|
- | 1066 | cmp eax,5 |
|
- | 1067 | pop eax |
|
- | 1068 | jb @f |
|
- | 1069 | mov ebx,[esi+0x300000+3] |
|
- | 1070 | call overlapping_of_points |
|
- | 1071 | @@: |
|
- | 1072 | push eax |
|
- | 1073 | ror ecx,16 |
|
- | 1074 | xor eax,eax |
|
- | 1075 | mov ax,cx |
|
- | 1076 | shl eax,1 ; óìíîæåíèå íà 2 |
|
- | 1077 | lea eax,[eax+eax*4] ; óìíîæåíèå íà |
|
- | 1078 | xor edx,edx |
|
- | 1079 | mov ebx,[ScreenHeight] |
|
- | 1080 | div ebx |
|
- | 1081 | cmp eax,5 |
|
- | 1082 | pop eax |
|
- | 1083 | jb @f |
|
- | 1084 | mov ebx,[display_data-8] |
|
- | 1085 | shl ebx,1 |
|
- | 1086 | add ebx,[display_data-8] |
|
- | 1087 | add ebx,0x300000 |
|
- | 1088 | add ebx,esi |
|
1055 | add esi,eax |
1089 | mov ebx,[ebx] |
1056 | - | ||
1057 | mov eax,[esi+0x300000] |
1090 | call overlapping_of_points |
1058 | and eax,0xffffff |
1091 | @@: |
1059 | 1092 | and eax,0xffffff |
|
1060 | xchg edi, ebp |
1093 | xchg edi, ebp |
1061 | stosw |
1094 | stosw |
1062 | shr eax,16 |
1095 | shr eax,16 |
1063 | stosb |
1096 | stosb |
1064 | xchg ebp, edi ; ebp+=3 |
1097 | xchg ebp, edi ; ebp+=3 |
1065 | cmp [ScreenBPP],byte 24 ; 24 or 32 bpp ? - x size |
1098 | cmp [ScreenBPP],byte 24 ; 24 or 32 bpp ? - x size |
1066 | jz @f |
- | |
1067 | inc ebp ; +1 |
1099 | jz @f |
1068 | @@: |
1100 | inc ebp ; +1 |
1069 | - | ||
1070 | pop ebx |
1101 | @@: |
Line -... | Line 1102... | ||
- | 1102 | pop ebx |
|
- | 1103 | pop eax |
|
- | 1104 | jmp shook1 |
|
- | 1105 | ||
- | 1106 | overlapping_of_points: |
|
- | 1107 | push ecx edi |
|
- | 1108 | mov ecx,eax |
|
- | 1109 | mov edx,ebx |
|
- | 1110 | xor eax,eax |
|
- | 1111 | mov al,cl |
|
- | 1112 | xor ebx,ebx |
|
- | 1113 | mov bl,dl |
|
- | 1114 | add eax,ebx |
|
- | 1115 | rcr eax,1 |
|
- | 1116 | xor edi,edi |
|
- | 1117 | mov di,ax |
|
- | 1118 | xor eax,eax |
|
- | 1119 | mov al,ch |
|
- | 1120 | xor ebx,ebx |
|
- | 1121 | mov bl,dh |
|
- | 1122 | add eax,ebx |
|
- | 1123 | rcr eax,1 |
|
- | 1124 | ror edi,8 |
|
- | 1125 | add edi,eax |
|
- | 1126 | ror ecx,8 |
|
- | 1127 | ror edx,8 |
|
- | 1128 | xor eax,eax |
|
- | 1129 | mov al,ch |
|
- | 1130 | xor ebx,ebx |
|
- | 1131 | mov bl,dh |
|
- | 1132 | add eax,ebx |
|
- | 1133 | rcr eax,1 |
|
- | 1134 | ror edi,8 |
|
- | 1135 | add eax,edi |
|
1071 | pop eax |
1136 | ror eax,16 |
1072 | 1137 | pop edi ecx |
|
1073 | jmp shook1 |
1138 | ret |
1074 | 1139 | ||
1075 | snbgp: |
1140 | snbgp: |