
; w torusie zdelta na 92 

jumps
.386p
CODE32 SEGMENT PARA PUBLIC USE32
ASSUME cs:CODE32, ds:CODE32

		include	design.mak
		include pmode.inc
		include	timer.ext
		include	rotatem.ext
		EXTRN	sound	:BYTE
		EXTRN	gold	:BYTE
		EXTRN	stal	:BYTE
		PUBLIC 	part5

		mama	db 0
		lii	dd 0

make_me_happy	PROC
		lea	esi,gold
		call	generate32env

		mov	widocznožŤ,0
		mov	zdelta,800
		mov	angleX,0
		mov	angleY,0
		mov	angleZ,0
		mov	inc_xxx,0
		mov	inc_yyy,0
		mov	inc_zzz,0
		mov	d_x,160
		mov	d_y,100
		lea	edi,pixels
		mov	adr_pixels,edi
		lea	edi,faces
		mov	adr_faces,edi
		mov	number_p,number_of_points
		mov	number_f,number_of_faces
		call	calc_nor

		mov	ecx,number_of_faces/2
 		mov	edi,adr_colors
	gg:	mov	byte ptr [edi],128
		mov	byte ptr [edi+1],64 ;64
		add	edi,2
		loop	gg
		mov	byte ptr [edi],128
 		ret
make_me_happy	ENDP

make_me_happy2 	PROC
		mov	ecx,number_of_faces/2
 		mov	edi,adr_colors
gwiozda:	mov	byte ptr [edi],0 ;128
		mov	byte ptr [edi+1],64 ;64
		add	edi,2
		loop	gwiozda
		mov	byte ptr [edi],0
		ret
make_me_happy2 	ENDP

make_me_happy22 	PROC
		mov	ecx,number_of_faces/2
 		mov	edi,adr_colors
gwio:           mov	byte ptr [edi],128 ;128
		mov	byte ptr [edi+1],128 ;64
		add	edi,2
		loop	gwio
		mov	byte ptr [edi],128
		ret
make_me_happy22 	ENDP

make_me_happy5	PROC
		mov	ecx,number_of_faces/2
 		mov	edi,adr_colors
gwiozd:		mov	byte ptr [edi],0 ;128
		mov	byte ptr [edi+1],0 ;64
		add	edi,2
		loop	gwiozd
		mov	byte ptr [edi],0
		ret
make_me_happy5 	ENDP


make_me_happy4 	PROC
		mov	ecx,number_of_faces/2
 		mov	edi,adr_colors
gwiozda2:	mov	byte ptr [edi],0 ;128
		mov	byte ptr [edi+1],128 ;64
		add	edi,2
		loop	gwiozda2
		mov	byte ptr [edi],0
		ret
make_me_happy4 	ENDP


part5		PROC
		lea	esi,t’o
		@rlp	edi,0a0000h
		call	copyEkran

		mov	ecx,16
	iop1:	push	ecx
		lea	edi,pal5
		mov	bl,4
		call	pal_fadein10
		pop	ecx
		loop	iop1

		call	reset_ramki
		call	make_me_happy 
		mov	d_x,350
	p‘tla3:	
		cmp	mama,0
		je	mam1
		cmp	mama,1
		je	mam22
		jmp	dddd
	mam1:	
		cmp	zdelta,150
		jg	zd11
		mov	zdelta,150
	zd11:
		cmp	d_x,160
		jl	mam2
		mov	eax,ramki
		add	angleX,eax
		add	angleZ,eax
		sub	zdelta,eax
		sub	zdelta,eax
		sub	zdelta,eax
		sub	d_x,ax
		jmp	dddd
	mam2:	mov	d_x,160
					call	pal_white
					lea	esi,pal5
					call	pal_set
		mov	mama,1
		jmp	dddd
	mam22:	
		mov	eax,ramki
		add	angleX,eax
		add	angleZ,eax
		jmp	dddd

dddd:		call	draw_torus
		design2	0900h,kii2,p‘tla3

kii2:
				lea	esi,stal
				call	generate32env

		mov	byte ptr [edi],128
		call	pal_white
		mov	angleX,0
		mov	angleZ,0
		mov	widocznožŤ,1
		mov	zdelta,129		
		call	draw_torusIn
		lea	esi,pal5
		call	pal_set
		

		mov	mama,0

kii:
		cmp	mama,0
		je	tom1
		cmp	mama,1
		je	tom2
		cmp	mama,2
		je	tom3

		jmp	kih1

	tom2:				mov	eax,ramki
					add	angleY,eax
					add	angleZ,eax
		design2 0920h,iest2,kih1
	iest2:
		call	make_me_happy2
		call	pal_white
		call	draw_torusIn
		lea	esi,pal5
		mov	mama,2
		call	pal_set
		jmp	kii

	tom1:
					mov	eax,ramki
					add	angleY,eax
		design2 0910h,iest1,kih1
	iest1:
		call	make_me_happy4
		mov	mama,1
		call	pal_white
		call	draw_torusIn
		lea	esi,pal5
		call	pal_set
		jmp	kii

	tom3:
					mov	eax,ramki
					Sub	angleY,eax
					sub	anglez,eax
		design2 093fh,kig2,iest7
	iest7:
	kih1:

		call	draw_torusIn

		in	al,60h
		cmp	al,1
		jne	kii

kig2:
		design	0a00h,mig1
	mig1:	call	pal_white
		lea	esi,pal5
		call	pal_set
		design	0a01h,mig2
	mig2:	call	pal_white
		lea	esi,pal5
		call	pal_set
		design	0a03h,mig3
	mig3:	call	pal_white
		lea	esi,pal5
		call	pal_set
		design	0a05h,mig4
	mig4:	call	pal_white
                call make_me_happy22
		mov	zdelta,200
		call	draw_torus
		lea	esi,pal5
		call	pal_set
;		call	make_me_happy5
		mov	widocznožŤ,0
							lea	esi,gold
							call	generate32env
	brach:	;chester ma udzia’ to dlaczego nie Brach...
		mov	eax,ramki
		add	lii,eax
		add	lii,eax
		add	zdelta,eax
		add	zdelta,eax
		add	zdelta,eax
		add	angleX,eax
		add	angleY,eax
		add	angleZ,eax
		cmp	eax,2
		jb	tyy		
		shr	eax,1
tyy:
		add	d_y,ax
		add	d_x,ax


		call	draw_torus ;b

		design2	00a3fh,hhj,brach

	hhj:
		call	pal_white

		ret
part5	ENDP

draw_torus:
		call	reset_ramki
		lea	esi,t’o
		lea	edi,screen
		call	copyEkran
		call	copyPoints
		call	rotatety
		call	_sort
		call	make_lightE	
		call	drawFacesVcE
		lea	esi,screen
		call	ekran
		ret

draw_torusb:
		call	reset_ramki
		lea	esi,t’o
		lea	edi,screen
		call	copyEkran
		call	copyPoints
		call	rotatety
		call	_sort
		call	make_lightE	
		call	drawFacesVcE
		call	blur
		ret

draw_torusIn:
		call	reset_ramki
		lea	esi,t’o
		lea	edi,screen
		call	copyEkran
		call	copyPoints
		call	rotatety
		call	_sort
		call	make_lightE	
		sub	number_f,32
		call	drawFacesVcE
		add	number_f,32
		lea	esi,screen
		call	ekran
		ret

	pal5:
		include	part5.pal

		include objects\tor350
		include	revolt.ext

CODE32 ENDS
END


