
;robota	= 1	;gdy IFDEF to wersja do obr˘bki designu (szybka)

; pocz†tek intra:
;	- migni‘cie gdy lalalalala
;	- blur z amnesty wlatuj†cy and lulababy
;	- kr‘ci si‘ i odlatuje
;	- z g˘ry wlatuje REVOLT
;	- troch‘ si‘ lula a potem przy perce migni‘cia i PART2

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	gold	:BYTE

		EXTRN	sound	:BYTE
		PUBLIC 	part1
		liii	dd	0
		
		mode	dw	0
		mama	db	0

make_me_happy	PROC
		lea	esi,gold
		call	generate32env
		mov	zdelta,625
		mov	angleZ,10
		mov	inc_xxx,0
		mov	inc_yyy,0
		mov	inc_zzz,0
		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
		ret
make_me_happy	ENDP

make_me_happy2	PROC
		lea	edi,revolt
		mov	adr_pixels,edi
		lea	edi,revoltf
		mov	adr_faces,edi
		mov	number_p,revoltnp
		mov	number_f,revoltnf
		call	calc_nor
		ret
make_me_happy2	ENDP

part1		PROC

		call	siej

		lea	edi,pal_pom2
		mov	ecx,768/4
		mov	eax,03f3f3f3fh
		rep	stosd

		call	set_mode13
		call	pal_black	
		call	make_me_happy

		lea	esi,t’o	
		lea	edi,screen
		call	copyEkran
		lea	esi,screen
		call	ekran		

		mov	mode,0fh
		design	mode,guj
	guj:

		call	pal_white
	rept	3
		lea	edi,pal
		mov	bl,10
		call	pal_fadein10
	endm
		call	pal_white

		mov	ecx,15
	@rt:	push	ecx
		lea	edi,pal
		mov	bl,4
		call	pal_fadein10	
		pop	ecx
		loop	@rt

		mov	MODE,16H
		DESIGN	MODE,GUJ2
	GUJ2:
		CALL	PAL_WHITE
	REPT	15
		LEA	EDI,PAL
		MOV	BL,10
		CALL	PAL_FADEIN10
	ENDM
		call	reset_ramki
		mov	d_x,-20
	p‘tla3:	
		mov	al,mama
		or	al,al
		jz	mam2

		jmp	kui3
	mam2:	
		mov	eax,ramki
		add	liii,eax
		shl	eax,1
		add	d_x,ax
		shl	eax,1
		sub	zdelta,eax
		cmp	d_x,160
		jl	kui
		mov	d_x,160
	kui:	cmp	zdelta,180
		ja	kui2
		mov	zdelta,180
	kui2:
		mov	eax,liii
		and	eax,0ffh
		movsx	eax,word ptr [offset sin+eax*2]
		sar	eax,6						;6
		mov	angleZ,eax
	kui3:
		call	reset_ramki
		lea	esi,t’o	
		lea	edi,screen
		call	copyEkran
		call	copyPoints
		call	rotatety2
		call	_sort
		call	make_lightE
		call	drawFacesVE
	IFDEF	robota
		lea	esi,screen
		call	ekran
	ELSE
		call	blur
	ENDIF
		mov	al,mama
		or	al,al
		jnz	ogurek
		mov	mode,32h		;32h
		design2	mode,ogurek,p‘tla3
	ogurek:	
		mov	eax,ramki
		shl	eax,1						;1
		sub	angleZ,eax
		add	d_x,ax
		add	d_x,ax
		mov	mama,1
		mov	mode,03eh-1
		design2	mode,ogurek2,p‘tla3
	ogurek2:
		mov	zdelta,180
		call	make_me_happy2
		mov	liii,0
		mov	anglez,0
		mov	d_x,160
		mov	d_y,-40
		call	reset_ramki
	og˘rek:
		mov	eax,ramki
		add	liii,eax
		mov	eax,liii
		and	eax,0ffh
		movsx	eax,word ptr [offset sin+eax*2]
		sar	eax,6						;7
		mov	angleZ,eax
		mov	eax,ramki
		add	d_y,ax
		cmp	d_y,100
		jl	og˘
		mov	d_y,100
	og˘:	call	reset_ramki
		lea	esi,t’o	
		lea	edi,screen
		call	copyEkran
		call	copyPoints
		call	rotatety2
		call	_sort
		call	make_lightE
		call	drawFacesVE
	IFDEF	robota
		lea	esi,screen
		call	ekran
	ELSE
		call	blur
	ENDIF
		mov	mode,130h	
		design2	mode,og˘rek2,og˘rek
	og˘rek2:
		mov	mode,131h	;33
	
		mov	bl,1
		mov	ecx,14+3
	pp:	push	ecx ebx
	
	end1:	lea	esi,pal
		call	pal_set
	tik1:	lea	edi,pal_pom2
		call	pal_fadein10
		design2	mode,end2,tik1
	end2:	
		pop	ebx ecx
		inc	bl
		inc	mode
		loop	pp
		call	pal_white

		lea	esi,t’o
		call	ekran

		ret
part1	ENDP

	pal:
		include part1.pal

		include objects\amnesty._3d
		include	objects\revolt._3d
		include	revolt.ext

CODE32 ENDS
END

