DoManyTexture: push cs pop ds mov si, OFFSET Sorted + 1404 mov cx, 703 @NextPoly: mov di, [si] mov bx, [plan.di] mov ax, [Rpoints.bx] mov X1, ax mov ax, [Rpoints.bx+2] mov Y1, ax call getnorms or glas, 0 jz @NoGlas1 add ax, X1 add dx, Y1 @NoGlas1: mov tx1, ax mov ty1, dx mov bx, [plan.di+2] mov ax, [Rpoints.bx] mov X2, ax mov ax, [Rpoints.bx+2] mov Y2, ax call getnorms or glas, 0 jz @NoGlas2 add ax, X2 add dx, Y2 @NoGlas2: mov tx2, ax mov ty2, dx mov bx, [plan.di+4] mov ax, [Rpoints.bx] mov X3, ax mov ax, [Rpoints.bx+2] mov Y3, ax call getnorms or glas, 0 jz @NoGlas3 add ax, X3 add dx, Y3 @NoGlas3: mov tx3, ax mov ty3, dx pusha call textpoly popa sub si, 2 dec cx jnz @NextPoly ret getnorms: mov ax, [Rnormals.bx] mov dx, [Rnormals.bx+2] or glas, 0 jz @NoGlas sar ax, 8 sar dx, 8 jmp @endN @NoGlas:sar ax, 6 sar dx, 6 add ax, 128 add dx, 128 @endN: ret textpoly: mov flag3, 0 mov si, offset x1 mov di, offset x2 mov byte ptr cs:[@@labeltje+1],0c7h ; maak weer di mov cx, 3 @@loop: mov ax, [si+6] cmp ax, [di+6] js @NoSwap1 mov bx, 18 @@xchgloop: mov ax, [si+bx] xchg ax, [di+bx] mov [si+bx], ax sub bl,6 jns @@xchgloop xor flag3,1 @NoSwap1: @@labeltje: add di,2 dec byte ptr cs:[@@labeltje+1] ; maak van di si loop @@loop mov cx, [di+6] ; y3 sub cx, [si+6-2] ; y1 jz @endpoly movsx ecx, cx mov ax, [di] ; x3 ; X3r := (X3-X1)*256 DIV (Y3-Y1) sub ax, [si-2] ; x1 movsx ebx, ax Call Imul256 mov [si-36], eax ;x3r mov [si-32], eax ;x4r mov ax, [si+6] ; y2 ; X4 := (Y2-Y1)*(X3-X1) DIV (Y3-Y1) + X1 sub ax, [si+4] ; y1 ; ((y2-y1)/(y3-y1)) * x3-x1 + x1 movsx eax, ax mov ebp, eax ;y2y1 imul eax, ebx cdq idiv ecx movzx ebx, word ptr [si-2] ; x1 add eax, ebx mov [si-4] , ax ;X4 mov byte ptr [si-45], 0 cmp [si], ax ; x2 if x2