6Fermer8
FarewellLe 10/03/2012 à 14:28
Non, utilise cette catégorie autant que tu veux, ça fait même grand plaisir. grin On y voit un PpHd qui n'a rien perdu de sa réactivité impressionnante question bugfixes.

Pour Tetrix, je suis d'abord ravi que tu l'utilises ! love
Ensuite, le bug est seulement graphique, le jeu marche très bien sinon.
Ce qui se passe, c'est que quand une ligne disparait, l'ensemble des pièces au-dessus descend d'une ligne (normal), mais graphiquement, il y a un problème de refresh.
C'est dû au fait que j'utilise deux fois des données pushées sur la pile avec ds romcalls, ce qui est interdit. Par chance, ça passe sous AMS, mais ça déconne sous PedroM, qui modifie bien légitimement le contenu de la pile durant l'appel.
Il s'agit de ce morceau de code :
;|=========================================
;|	ScrollRect (clear a graphical line)
;|=========================================
;|	scroll down the game area when a line is complete
;|
;|	input		nothing
;|	output		nothing
;|	destroys	nothing
;|
;|=========================================
ScrollRect:
	move.w	d4,-(sp)	;graphical y2
	move.b	#59,(sp)	;x2
	move.w	#10<<8+0,-(sp)	;x1 and y1 (SCR_RECT sruct is now ready)

	lea.l	-710(sp),sp	;BIT_MAP buffer

	pea.l	(sp)		;*buffer
	pea.l	4+710(sp)		;could be 4+700-5*7??
	ROM_THROW	BitmapGet	;*bitmap,*rect

	addq.b	#5,710+4+4+2+1(sp)	;new ordinate
	clr.w	-(sp)			;clear a rect
	pea.l	Clip(pc)		;always the clip zone...
	pea.l	6+8+710(sp)
	ROM_THROW	ScrRectFill	;*rect,*clip,attr

	addq.l	#4,sp			;*clip
	addq.w	#1,4(sp)		;mode
	pea.l	14(sp)			;*bitmap
	pea.l	10<<16+5		;{x,y}
	ROM_THROW	BitmapPut	;x,y,*bitmap,*clip,attr

	lea.l	4+10+8+710+4(sp),sp
	rts
	end