;-----------------------------------------------------------------------
; Beispiel eines Vektorobjekt-Sourcecodes
;-----------------------------------------------------------------------
; Komplexes transformierendes Vektorobjekt (Anim1)
;-----------------------------------------------------------------------
;(Seka-format)
;Benutzung:
;a (return)
;wi (return)
;name (return)
;start (return)
;end (return)
;Danach kann das Objekt vom Demomaker aus unter "name" eingeladen werden.
;------------------------------------------------------------------------

start:
dc.l	"VECT"	;Kennung fuer Objekt!!!

filledob1:
dc.l TESTPOINTS-filledob2	
dc.l TESTFLAECHEN-filledob2	
dc.w 300		
dc.w 0,$8,$a,$c,$44f,$f0f,$0f,$f00	;8 Farben
dc.b 0	;0-keine Syncronisation
dc.b 0	;0-normales Objekt
dc.w 0	;jetzt ohne Funktion
dc.l 0	;keine Zusatzroutinen
dc.l 0	;...

dc.l anim1points-filledob1	;offset zu Punktstruktur
dc.l anim1flaechen-filledob1	;offset zu Flaechenstruktur
dc.w 500			;zoom auf 500
dc.w 0,$44f,$c,$c0c,$f4f,$f44,$c00,$8	;8 Farben
dc.b 0	;0-keine Syncronisation
dc.b 1	;1-komplexes Objekt
dc.w 0	;0-keine Flaechenumrandung
dc.l vinit-filledob1	;offset zur Initroutine
dc.l vdo-filledob1	;offset zur Transformroutine

;Initroutine...

vinit:	lea vp1(pc),a1	;Pointer initialisieren
	move.w #1,(a1)
	lea anim1p(pc),a2	;Punkte des 1.Objekts
	lea anim2p(pc),a3	;Punkte des 2.Objekts
	move #48,d1		;Anzahl der Punkte
	move.w #20,d5		;20 Durchlaeufe
	move.l 4(a0),a6		;Routine transadds holen
	jsr (a6)		;Transformadds berechnen
	bsr transme1
	rts
vp1:dc.w 0

;Transformieren...

vdo:	move.w vp1(pc),d0	;Pointer erhoehen
	addq.w #1,d0
	cmp.w #80,d0		;Ende erreicht?
	blo ohoh
	moveq #0,d0		;auf null setzen
ohoh:	lea vp1(pc),a2
	move.w d0,(a2)
	cmp #20,d0		;schon 20?
	blo nochnich		;warten
	cmp #40,d0		;schon 40?
	blo transme1		;tranformieren
	cmp #60,d0		;schon 60?
	blo nochnich		;warten

;zurueck transformieren...

	lea anim1points+2(pc),a6;Destination setzen
	moveq #48,d0		;Punktanzahl
	move.l 12(a0),a1	;Routine holen
	jsr (a1)		;Zuruecktransformieren
nochnich:rts

;Transformieren...

transme1:lea anim1points+2(pc),a6;Destination setzen
	moveq #48,d0		;Punktanzahl
	move.l 8(a0),a1		;Routine holen
	jsr (a1)		;Transformieren
	rts

anim1POINTS:	;Punktstruktur, die angezeigt wird...
dc.w 48		;Punktanzahl
		;(die neuen Transformationen werden
		;jeden Frame neu hierhin kopiert...)
dc.w 40,0,-30
dc.w 10,0,-10
dc.w 10,0,0
dc.w 30,0,0
dc.w 30,0,10
dc.w 50,0,30
dc.w 28,28,-30
dc.w 7,7,-10
dc.w 7,7,0
dc.w 21,21,0
dc.w 21,21,10
dc.w 35,35,30
dc.w 0,40,-30
dc.w 0,10,-10
dc.w 0,10,0
dc.w 0,30,0
dc.w 0,30,10
dc.w 0,50,30
dc.w -28,28,-30
dc.w -7,7,-10
dc.w -7,7,0
dc.w -21,21,0
dc.w -21,21,10
dc.w -35,35,30
dc.w -40,0,-30
dc.w -10,0,-10
dc.w -10,0,0
dc.w -30,0,0
dc.w -30,0,10
dc.w -50,0,30
dc.w -28,-28,-30
dc.w -7,-7,-10
dc.w -7,-7,0
dc.w -21,-21,0
dc.w -21,-21,10
dc.w -35,-35,30
dc.w 0,-40,-30
dc.w 0,-10,-10
dc.w 0,-10,0
dc.w 0,-30,0
dc.w 0,-30,10
dc.w 0,-50,30
dc.w 28,-28,-30
dc.w 7,-7,-10
dc.w 7,-7,0
dc.w 21,-21,0
dc.w 21,-21,10
dc.w 35,-35,30

anim1FLAECHEN:	;Flaechen des Objektes
dc.w 41
dc.w 4,1,0,1,7,6,0
dc.w 4,4,1,2,8,7,1
dc.w 4,5,2,3,9,8,2
dc.w 4,4,3,4,10,9,3
dc.w 4,1,4,5,11,10,4

dc.w 4,2,6,7,13,12,6
dc.w 4,3,7,8,14,13,7
dc.w 4,6,8,9,15,14,8
dc.w 4,3,9,10,16,15,9
dc.w 4,2,10,11,17,16,10

dc.w 4,1,12,13,19,18,12
dc.w 4,4,13,14,20,19,13
dc.w 4,5,14,15,21,20,14
dc.w 4,4,15,16,22,21,15
dc.w 4,1,16,17,23,22,16

dc.w 4,2,18,19,25,24,18
dc.w 4,3,19,20,26,25,19
dc.w 4,6,20,21,27,26,20
dc.w 4,3,21,22,28,27,21
dc.w 4,2,22,23,29,28,22

dc.w 4,1,24,25,31,30,24
dc.w 4,4,25,26,32,31,25
dc.w 4,5,26,27,33,32,26
dc.w 4,4,27,28,34,33,27
dc.w 4,1,28,29,35,34,28

dc.w 4,2,30,31,37,36,30
dc.w 4,3,31,32,38,37,31
dc.w 4,6,32,33,39,38,32
dc.w 4,3,33,34,40,39,33
dc.w 4,2,34,35,41,40,34

dc.w 4,1,36,37,43,42,36
dc.w 4,4,37,38,44,43,37
dc.w 4,5,38,39,45,44,38
dc.w 4,4,39,40,46,45,39
dc.w 4,1,40,41,47,46,40

dc.w 4,2,42,43,1,0,42
dc.w 4,3,43,44,2,1,43
dc.w 4,6,44,45,3,2,44
dc.w 4,3,45,46,4,3,45
dc.w 4,2,46,47,5,4,46

dc.w 8,7,0,6,12,18,24,30,36,42,0
dc.w 8,7,47,41,35,29,23,17,11,5,47

anim1p:		;Punkte des 1.Objektes
dc.w 40,0,-30
dc.w 10,0,-10
dc.w 10,0,0
dc.w 30,0,0
dc.w 30,0,10
dc.w 50,0,30
dc.w 28,28,-30
dc.w 7,7,-10
dc.w 7,7,0
dc.w 21,21,0
dc.w 21,21,10
dc.w 35,35,30
dc.w 0,40,-30
dc.w 0,10,-10
dc.w 0,10,0
dc.w 0,30,0
dc.w 0,30,10
dc.w 0,50,30
dc.w -28,28,-30
dc.w -7,7,-10
dc.w -7,7,0
dc.w -21,21,0
dc.w -21,21,10
dc.w -35,35,30
dc.w -40,0,-30
dc.w -10,0,-10
dc.w -10,0,0
dc.w -30,0,0
dc.w -30,0,10
dc.w -50,0,30
dc.w -28,-28,-30
dc.w -7,-7,-10
dc.w -7,-7,0
dc.w -21,-21,0
dc.w -21,-21,10
dc.w -35,-35,30
dc.w 0,-40,-30
dc.w 0,-10,-10
dc.w 0,-10,0
dc.w 0,-30,0
dc.w 0,-30,10
dc.w 0,-50,30
dc.w 28,-28,-30
dc.w 7,-7,-10
dc.w 7,-7,0
dc.w 21,-21,0
dc.w 21,-21,10
dc.w 35,-35,30

anim2p:		;Punkte des zweiten Objektes
dc.w 10,0,-30
dc.w 60,0,0
dc.w 30,0,0
dc.w 30,0,20
dc.w 60,0,20
dc.w 10,0,50
dc.w 7,7,-30
dc.w 42,42,0
dc.w 21,21,0
dc.w 21,21,20
dc.w 42,42,20
dc.w 7,7,50
dc.w 0,10,-30
dc.w 0,60,0
dc.w 0,30,0
dc.w 0,30,20
dc.w 0,60,20
dc.w 0,10,50
dc.w -7,7,-30
dc.w -42,42,0
dc.w -21,21,0
dc.w -21,21,20
dc.w -42,42,20
dc.w -7,7,50
dc.w -10,0,-30
dc.w -60,0,0
dc.w -30,0,0
dc.w -30,0,20
dc.w -60,0,20
dc.w -10,0,50
dc.w -7,-7,-30
dc.w -42,-42,0
dc.w -21,-21,0
dc.w -21,-21,20
dc.w -42,-42,20
dc.w -7,-7,50
dc.w 0,-10,-30
dc.w 0,-60,0
dc.w 0,-30,0
dc.w 0,-30,20
dc.w 0,-60,20
dc.w 0,-10,50
dc.w 7,-7,-30
dc.w 42,-42,0
dc.w 21,-21,0
dc.w 21,-21,20
dc.w 42,-42,20
dc.w 7,-7,50
end:
