;
; Jump table for renderer
; 64 entries
; 128 bytes
; flags :
;0 Draw
;1 Scroll
;2 Erase
;3 Xflip
;4 Yflip
;5 Mirror
;

;flag 0 may be conflicting with other flags like scroll or erase so we may consider ignoring other flags when it is null

.REND_JumpTable
	dw REND_Error			;000 000		00
	dw REND_Sprite			;000 001		01
	dw REND_Erase			;000 010		02	
	dw REND_Block			;000 011		03
	dw REND_Erase			;000 100		04
	dw REND_Static			;000 101		05 Special static
	;dw REND_Error			;000 110		06
	dw REND_Star
	dw REND_Erase			;000 111		07 (conflict !) block + erase
	dw REND_Error			;001 000		08
	dw REND_Sprite_FlipX	;001 001		09
	dw REND_Error			;001 010		10
	dw REND_Block			;001 011		11 (X flip is ignored)
	dw REND_Error			;001 100		12
	dw REND_Ignore			;001 101		13 special static (invisible)
	dw REND_Error			;001 110		14
	;dw REND_Erase			;001 111		15 (conflict !) block + xflip + erase
	dw REND_StaticRev		;				special case , static + Y reversed
	dw REND_Error			;010 000		16
	dw REND_Sprite_FlipY	;010 001		17
	dw REND_Error			;010 010		18
	dw REND_Block_FlipY		;010 011		19
	dw REND_Error			;010 100		20
	dw REND_Erase			;010 101		21 (conflict !) erase + Yflip
	dw REND_Error			;010 110		22
	dw REND_Erase			;010 111		23
	dw REND_Error			;011 000		24
	dw REND_Sprite_FlipXY	;011 001		25
	dw REND_Error			;011 010		26
	dw REND_Block_FlipY		;011 011		27
	dw REND_Error			;011 100		28
	dw REND_Erase			;011 101		29
	dw REND_Error			;011 110		30
	dw REND_Block_FlipY		;011 111		31
	dw REND_Error			;100 000		32
	dw REND_Sprite			;100 001		33
	dw REND_Error			;100 010		34
	dw REND_Block			;100 011		35 no mirror for block
	dw REND_Error			;100 100		36
	dw REND_Erase			;100 101		37
	dw REND_Error			;100 110		38
	dw REND_Erase			;100 111		39
	dw REND_Error			;101 000		40
	dw REND_Sprite_Mirror	;101 001		41
	dw REND_Error			;101 010		42
	dw REND_Block			;101 011		43 no flipX or mirror for block
	dw REND_Error			;101 100		44
	dw REND_Erase			;101 101		45
	dw REND_Error			;101 110		46
	dw REND_Erase			;101 111		47
	dw REND_Error			;110 000		48
	dw REND_Sprite_FlipY	;110 001		49
	dw REND_Error			;110 010		50
	dw REND_Block_FlipY		;110 011		51 no mirror for blocks
	dw REND_Error			;110 100		52
	dw REND_Erase			;110 101		53
	dw REND_Error			;110 110		54
	dw REND_AutoBlock		;110 111		55	special case , auto compiled blocks
	dw REND_Error			;111 000		56
	dw REND_Sprite_FlipY_Mirror ;111 001	57
	dw REND_Error			;111 010		58
	dw REND_Block_FlipY		;111 011		59
	dw REND_Error			;111 100		60
	dw REND_Erase			;111 101		61
	dw REND_AutoBlockBankedStatic		;	62 special case for L5
	;dw REND_Error			;111 110		62
	dw REND_Auto			;111 111		63 	special case , auto compiled sprites tiles
	
;same version but ignore blocks	
.REND_JumpTableBis
	dw REND_Error			;000 000		00
	dw REND_Sprite			;000 001		01
	dw REND_Erase			;000 010		02	
	dw REND_Ignore			;000 011		03
	dw REND_Erase			;000 100		04
	dw REND_Static			;000 101		05 Special static
	;dw REND_Error			;000 110		06
	dw REND_Star
	dw REND_Erase			;000 111		07 (conflict !) block + erase
	dw REND_Error			;001 000		08
	dw REND_Sprite_FlipX	;001 001		09
	dw REND_Error			;001 010		10
	dw REND_Block			;001 011		11 (X flip is ignored)
	dw REND_Error			;001 100		12
	dw REND_Ignore			;001 101		13 special static (invisible)
	dw REND_Error			;001 110		14
	;dw REND_Erase			;001 111		15 (conflict !) block + xflip + erase
	dw REND_StaticRev		;				special case , static + Y reversed
	dw REND_Error			;010 000		16
	dw REND_Sprite_FlipY	;010 001		17
	dw REND_Error			;010 010		18
	dw REND_Ignore			;010 011		19
	dw REND_Error			;010 100		20
	dw REND_Erase			;010 101		21 (conflict !) erase + Yflip
	dw REND_Error			;010 110		22
	dw REND_Erase			;010 111		23
	dw REND_Error			;011 000		24
	dw REND_Sprite_FlipXY	;011 001		25
	dw REND_Error			;011 010		26
	dw REND_Ignore			;011 011		27
	dw REND_Error			;011 100		28
	dw REND_Erase			;011 101		29
	dw REND_Error			;011 110		30
	dw REND_Ignore			;011 111		31
	dw REND_Error			;100 000		32
	dw REND_Sprite			;100 001		33
	dw REND_Error			;100 010		34
	dw REND_Ignore			;100 011		35 no mirror for block
	dw REND_Error			;100 100		36
	dw REND_Erase			;100 101		37
	dw REND_Error			;100 110		38
	dw REND_Erase			;100 111		39
	dw REND_Error			;101 000		40
	dw REND_Sprite_Mirror	;101 001		41
	dw REND_Error			;101 010		42
	dw REND_Ignore			;101 011		43 no flipX or mirror for block
	dw REND_Error			;101 100		44
	dw REND_Erase			;101 101		45
	dw REND_Error			;101 110		46
	dw REND_Erase			;101 111		47
	dw REND_Error			;110 000		48
	dw REND_Sprite_FlipY	;110 001		49
	dw REND_Error			;110 010		50
	dw REND_Ignore			;110 011		51 no mirror for blocks
	dw REND_Error			;110 100		52
	dw REND_Erase			;110 101		53
	dw REND_Error			;110 110		54
	dw REND_Ignore			;110 111		55	special case , auto compiled blocks
	dw REND_Error			;111 000		56
	dw REND_Sprite_FlipY_Mirror ;111 001	57
	dw REND_Error			;111 010		58
	dw REND_Ignore			;111 011		59
	dw REND_Error			;111 100		60
	dw REND_Erase			;111 101		61
	;dw REND_Error			;111 110		62
	dw REND_AutoBlockBankedStatic		;	62 special case for L5
	dw REND_Auto			;111 111		63 	special case , auto compiled sprites tiles