		tst.w	nmxdir(a0)
		bne.s	.right
		subq.w	#1,nmxpos(a0)
		clr.w	nmxpos+2(a0)
		lea	.ltab(pc),a1
		bra.s	.anim
.right		addq.w	#1,nmxpos(a0)
		move.w	#256,nmxpos+2(a0)
		lea	.rtab(pc),a1
		bra.s	.anim


.end		move.w	#-24,nmanimpos2(a0)
		lea	sinus-d(a5),a1
		move.w	nmanimcount+2(a0),d0
		lsr.w	#5,d0
		add.w	d0,d0
		move.w	(a1,d0.w),d0
		asr.w	#8,d0
		asr.w	#2,d0
		add.w	nmactypos(a0),d0
		move.w	d0,nmypos(a0)

		move.w	nmxpos+2(a0),d0
		and.w	#$fffe,d0
		move.w	(a1,d0.w),d0
		move.w	nmactxpos+2(a0),d2
		move.w	d0,nmactxpos+2(a0)
		asr.w	#7,d0
		cmp.w	#-125,d0
		bmi.s	.c4
		cmp.w	#125,d0
		bpl.s	.c4
		add.w	nmactxpos(a0),d0
		lea	.rtab(pc),a1
		move.w	#1,nmxdir(a0)
		cmp.w	nmactxpos+2(a0),d2
		bmi.s	.c2
		lea	.ltab(pc),a1
		clr.w	nmxdir(a0)
.c2		move.w	d0,nmxpos(a0)
.anim		move.w	nmanimpos(a0),d0
		move.l	(a1,d0.w),nmdata(a0)
		bra.s	.c3
.c4		move.l	#128*160+22,nmdata(a0)
		add.w	nmactxpos(a0),d0
		move.w	d0,nmxpos(a0)
.c3		movem.l	(a7)+,a1
		bsr	maskblitxy
		addq.w	#1,nmanimcount(a0)
		cmp.w	#4,nmanimcount(a0)
		bne.s	.end2
		clr.w	nmanimcount(a0)
		addq.w	#4,nmanimpos(a0)
		and.w	#12,nmanimpos(a0)
.end2		move.w	mancoll-d(a5),d0
		or.w	d0,defmancoll-d(a5)
		rts

.rtab		dc.l	112*160+22,112*160+24,112*160+26,112*160+24
.ltab		dc.l	96*160+22,96*160+24,96*160+26,96*160+24
;------------------------------------------------
move41		movem.l	a4/d7,-(a7)
		tst.w	nmstartflag(a0)
		beq	.c2
		clr.w	nmactypos(a0)
		move.w	#128,nmxspeed(a0)
		move.l	a1,-(a7)
		lea	rndtab-d(a5),a1
		moveq	#-64,d3
		tst.w	nmxdir(a0)
		bne.s	.cr1
		moveq	#32,d3
.cr1		lea	d(pc),a4
		moveq	#25,d7
.l2		move.w	rndseed-d(a5),d0
		move.b	(a1,d0.w),d2
		and.w	#$ff,d2
		add.w	d2,d2
		move.w	d2,m6count-d(a4)
		move.b	-1(a1,d0.w),d2
		and.w	#$ff,d2
		add.w	d2,d2
		move.w	d2,m6count+2-d(a4)
		
		move.b	3(a1,d0.w),d2
		and.w	#$3,d2
		addq.w	#1,d2
		add.w	d2,d2
		move.w	d2,m6spd-d(a4)
		move.b	4(a1,d0.w),d2
		and.w	#$3,d2
		addq.w	#1,d2
		add.w	d2,d2
		move.w	d2,m6spd+2-d(a4)
		
		move.b	1(a1,d0.w),d2
		and.w	#$7f,d2
		add.w	d3,d2
		move.w	d2,m6ypos-d(a4)
		move.b	2(a1,d0.w),d2
		and.w	#$3f,d2
		sub.w	#$20,d2
		move.w	d2,m6ypos+2-d(a4)
		clr.l	m6bpos11-d(a4)
		clr.l	m6bpos12-d(a4)
		clr.l	m6bpos21-d(a4)
		clr.l	m6bpos22-d(a4)
		clr.l	m6size1-d(a4)
		clr.l	m6size2-d(a4)
		clr.l	m6mod-d(a4)
		addq.l	#4,a4
		addq.w	#3,rndseed-d(a5)
		and.w	#$ff,rndseed-d(a5)
		dbra	d7,.l2
		clr.w	nmstartflag(a0)
		move.l	(a7)+,a1
.c2		waitblt
		move.l	#$ffffffff,$44(a6)
		move.l	#$09f00000,$40(a6)
		move.w	#_scrwidth*3-4,$64(a6)
		move.w	#_scrwidth*3-4,$66(a6)
		bsr	clrbobsm6
		
.c3		moveq	#0,d1
		moveq	#0,d3
		lea	.animtab(pc),a4
		move.w	nmanimpos(a0),d0
		and.w	#$fffc,d0
		addq.w	#1,nmanimpos(a0)
		and.w	#15,nmanimpos(a0)
		move.l	(a4,d0.w),nmdata(a0)
		asr.w	#1,d0
		move.w	.sizetab-.animtab(a4,d0.w),nmysize(a0)
		move.w	#32,nmxsize(a0)
		move.w	nmxspeed(a0),d0
		lsr.w	#7,d0
		addq.w	#1,nmxspeed(a0)
		tst.w	nmxdir(a0)
		bne.s	.right
		sub.w	d0,nmstartxpos(a0)
		bra.s	.c1
.right		add.w	d0,nmstartxpos(a0)
.c1		addq.w	#1,nmactypos(a0)
		cmp.w	#3,nmactypos(a0)
		bmi.s	.c4
		clr.w	nmactypos(a0)
		addq.w	#1,nmstartypos(a0)
		
.c4		lea	d(pc),a4
		moveq	#25,d7
.l1		move.l	a1,-(a7)
		lea	sinus(pc),a1
		move.w	m6count-d(a4),d0
		move.w	(a1,d0.w),d0
		asr.w	#8,d0
		asr.w	#2,d0
		add.w	nmstartxpos(a0),d0
		add.w	m6ypos-d(a4),d0
		move.w	d0,nmxpos(a0)
		move.w	m6count+2-d(a4),d0
		move.w	(a1,d0.w),d0
		asr.w	#8,d0
		asr.w	#2,d0
		add.w	nmstartypos(a0),d0
		add.w	m6ypos+2-d(a4),d0
		move.w	d0,nmypos(a0)

		lea	.animtab(pc),a1
		move.w	m6count-d(a4),d0
		lsr.w	#2,d0
		and.w	#$c,d0
		btst	#0,d7
		beq.s	.c5
		add.w	#16,d0
.c5		move.l	(a1,d0.w),nmdata(a0)
		move.w	34(a1,d0.w),nmysize(a0)

		move.l	(a7)+,a1
		
		move.l	m6spd-d(a4),d0
		add.l	d0,m6count-d(a4)
		and.l	#$01fe01fe,m6count-d(a4)

		clr.l	nmsize1(a0)
		clr.l	nmsize2(a0)

		bsr	maskblitxy
		
		move.l	nmbpos11(a0),m6bpos11-d(a4)
		move.l	nmbpos21(a0),m6bpos21-d(a4)
		move.l	nmsize1(a0),m6size1-d(a4)
		move.w	nmmod1(a0),d0
		add.w	#_scrwidth*3-40,d0
		move.w	d0,m6mod-d(a4)
		addq.l	#4,a4
		dbra	d7,.l1

		clr.l	nmsize1(a0)
		clr.l	nmsize2(a0)
		
		movem.l	(a7)+,a4/d7
		rts

.animtab	dc.l	125*160+12,131*160+12,138*160+12,137*160+14
		dc.l	133*160+16,137*160+16,140*160+16,133*160+18
.sizetab	dc.l	6,7,6,7,4,3,4,3		

;------------------------------------------------
move42		tst.w	boatrideflag-d(a5)
		beq.s	.end
		movem.l	d1/a1,-(a7)
		move.l	absmanxpos-d(a5),d1
		add.w	#68,d1
		move.w	d1,nmxpos(a0)
		move.w	#48,nmxsize(a0)
		move.l	absmanypos-d(a5),d1
		add.w	#46,d1
		move.w	d1,nmypos(a0)
		move.w	#32,nmysize(a0)
		lea	.tab(pc),a1
		move.w	boatanimpos-d(a5),d1
		move.l	(a1,d1.w),nmdata(a0)
		movem.l	(a7)+,d1/a1
		bsr	maskblitxy
.end		rts
.tab		dc.l	160*224+12,160*224+16,160*224+20
		dc.l	160*224+24,160*224+28,160*224+32
;------------------------------------------------
setboba1	movem.l	d1/a2,-(a7)
		move.l	nm(pc),a1
		moveq	#_nmeno-1,d1
.l1		tst.w	nmenable(a1)
		beq.s	.c1
		addq.l	#4,a1
		dbra	d1,.l1
		bra	sbend

.c1		movem.l	(a7)+,d1/a2
setboba1c	movem.l	d1/a2,-(a7)
		move.w	#1,nmenable(a1)
		move.w	#1,nmstartflag(a1)
		moveq	#0,d1
		move.l	d1,nmanimpos(a1)
		move.l	d1,nmanimcount(a1)
		move.w	d1,nmcoll(a1)
		move.w	d1,nmdieyspd+2(a1)
		move.w	d1,nmobj(a1)
		move.l	d1,nmxdir(a1)
		move.l	d1,nmlevxadd(a1)
		move.l	d1,nmlevyadd(a1)
		move.w	d1,nmdieyspd(a1)
		move.l	d1,nmxspeed(a1)
		move.l	d1,nmyspeed(a1)
		move.w	d1,nmstartno(a1)
		add.w	d2,d2
		add.w	d2,d2
		move.l	_xmem,d1
		add.l	#_ldatofs,d1
		move.l	d1,nmstartblk(a1)
		
		lea	movetab-d(a5),a2
		move.l	(a2,d2.w),nmmove(a1)
		lea	nmxsizetab-d(a5),a2
		move.w	(a2,d2.w),nmxsize(a1)
		lea	nmysizetab-d(a5),a2
		move.w	(a2,d2.w),nmysize(a1)
		lea	nmxcentertab-d(a5),a2
		move.l	(a2,d2.w),nmxcenter(a1)
		lea	nmycentertab-d(a5),a2
		move.l	(a2,d2.w),nmycenter(a1)
		lea	nmxhittab-d(a5),a2
		move.l	(a2,d2.w),nmxhit(a1)
		lea	nmyhittab-d(a5),a2
		move.l	(a2,d2.w),nmyhit(a1)

sbend		movem.l	(a7)+,d1/a2
		rts
;------------------------------------------------
;------------------------------------------------
;------------------------------------------------
nm		dc.l	0

invnotab	dc.w	7,9,10,11,12,14,15,16
		dc.w	17,18,19,20,21,22,23,24
		dc.w	25,26,27,28,29,30

movetab		dc.l	1,2,3,4,5,6,7,8
		dc.l	9,10,12,13,14,15,16,17
		dc.l	18,19,20,21,22,23,24,25
		dc.l	26,27,28,29,30,31,32,33
		dc.l	34,35,36,37,38,39,40,41
		dc.l	42,43
		
;	01 .. Floß
;	02 .. "Ringelblume"
;	03 .. Heuschreck
;	04 .. Kastanie grün    \ oder was
;	05 .. Kastanie braun   / weiß ich
; 	06 .. Bröckelnder Untergrund
;	07 .. Teerfaß
; 	08 .. Wespennest+Viecher
;	09 .. Kübel
;	10 .. Luckertes Boot
;	11 .. Teerkübel
;	12 .. Tragekorb
;	13 .. Wurm
;	14 .. Kurbel
;	15 .. Holz
;	16 .. Feuersteine
;	17 .. Hammer
;	18 .. Kerzen
;	19 .. Schlüssel
;	20 .. Kristall
;	21 .. Paddel
;	22 .. kaputte Winde
;	23 .. Winde
;	24 .. Feuerstelle
; 	25 .. Brunnen
;	26 .. Nägel
;	27 .. Seil
;	28 .. Schlucht
;	29 .. Herunterhängendes Seil
;	30 .. Repariertes Boot
;	31 .. Insekt
;	32 .. Insektenschuß
;	33 .. Sumpfmonster rechts
;	34 .. Sumpfmonster links
;	35 .. Code für Copper aus
;	36 .. Spuckendes Viech
;	37 .. Tropfen
;	38 .. Energie
;	39 .. Leben
;	40 .. kleiner Fisch
;	41 .. Blätter im Wind...
;	42 .. bewegtes Paddel
		
ofsxtab		dc.l	4,32*$10000,2,0,0,48*$10000+14,16*$10000+2,0
		dc.l	0,6,0,48*$10000+6,0,0,2,0
		dc.l	0,0,0,0,2,0,0,32*$10000+2
		dc.l	64*$10000+6,0,2,0,0,6,16*$10000+2,0
		dc.l	16*$10000+2,16*$10000+2,0,16*$10000+2,0,0,0,0
		dc.l	0,0

ofsytab		dc.l	0,2*_levwidth,0,0,0,3*_levwidth,_levwidth,0
		dc.l	0,0,0,3*_levwidth,0,0,0,0
		dc.l	0,0,0,0,0,0,0,2*_levwidth
		dc.l	4*_levwidth,0,0,0,0,0,_levwidth,0
		dc.l	_levwidth,_levwidth,0,_levwidth,0,0,0,0
		dc.l	0,0

nmxsizetab	dc.w	64,48,16,16,48,32,32,16,32,16,128,128,32,32,32,16
		dc.w	16,16,64,64,16,16,80,64,32,16,16,16,32,32,16,16
		dc.w	16,16,16,16,16,16,16,16,32,32,16,16,16,16,32,32
		dc.w	64,64,16,16,32,32,16,16,16,16,80,64,48,32,32,16
		dc.w	48,32,48,32,16,16,32,32,16,16,16,16,16,16,32,16
		dc.w	32,16,48,32

nmysizetab	dc.w	10,0,48,0,16,0,16,0,16,0,64,0,32,0,16,0
		dc.w	16,0,16,0,16,0,53,0,6,0,5,0,7,0,6,0
		dc.w	6,0,4,0,4,0,7,0,6,0,16,0,16,0,48,0
		dc.w	80,0,7,0,14,0,16,0,16,0,16,0,32,0,7,0
		dc.w	0,0,0,0,16,0,22,0,16,0,16,0,16,0,16,0
		dc.w	16,0,32,0

nmxcentertab	dc.w	4,24,4,8,4,24,4,8,4,8,0,0,4,24,4,8
		dc.w	4,8,4,56,4,8,4,56,0,16,0,16,0,32,0,16
		dc.w	0,16,0,16,0,16,0,16,0,32,0,16,0,16,4,24
		dc.w	4,56,4,8,4,24,0,16,0,16,4,56,4,24,4,8
		dc.w	4,24,4,24,0,0,8,16,4,8,4,8,4,8,4,8
		dc.w	0,0,0,0
		
nmycentertab	dc.w	4,40,4,40,4,8,4,8,4,8,0,0,0,32,4,8
		dc.w	0,16,0,16,0,16,4,45,0,6,-12,16,-8,16,-11,16
		dc.w	-11,16,-13,16,-13,16,-10,16,-11,16,0,16,0,16,4,40
		dc.w	0,80,-11,16,-2,16,0,16,-32,48,0,16,4,24,0,7
		dc.w	4,24,4,24,0,0,0,22,0,10,4,8,4,8,4,8
		dc.w	0,0,0,0

nmxhittab	dc.w	0,32,0,16,0,32,0,16,0,16,0,0,0,0,0,16
		dc.w	0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0
		dc.w	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
		dc.w	0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,16
		dc.w	0,32,0,32,0,0,8,16,0,0,0,0,0,0,0,16
		dc.w	0,0,0,0

nmyhittab	dc.w	0,48,32,16,0,16,0,16,0,16,0,0,0,0,0,16
		dc.w	0,0,0,0,0,0,0,0,-10,16,0,0,0,0,0,0
		dc.w	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
		dc.w	0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,7
		dc.w	0,32,0,32,0,0,0,22,0,0,0,0,0,0,0,16
		dc.w	0,0,0,0
;------------------------------------------------
fg		dc.l	0

fganimstart	dc.l	lgraph+32+2,lgraph+32+2,lgraph+32+2,lgraph+32+2,lgraph+32+2,lgraph+32+2,lgraph+32+2,lgraph+32+2
		dc.l	lgraph+32+2+2560,lgraph+32+2+2560,lgraph+32+2+2560,lgraph+32+2+2560,lgraph+32+2+2560,lgraph+32+2+2560,lgraph+32+2+2560,lgraph+32+2+2560
		dc.l	lgraph+32+2+5120,lgraph+32+2+5120,lgraph+32+2+5120,lgraph+32+2+5120,lgraph+32+2+5120,lgraph+32+2+5120,lgraph+32+2+5120,lgraph+32+2+5120
		dc.l	lgraph+32+2+7680,lgraph+32+2+7680,lgraph+32+2+7680,lgraph+32+2+7680,lgraph+32+2+7680,lgraph+32+2+7680,lgraph+32+2+7680,lgraph+32+2+7680
		dc.l	lgraph+32+18,lgraph+32+18,lgraph+32+18,lgraph+32+18,lgraph+32+18,lgraph+32+18,lgraph+32+18,lgraph+32+18
		dc.l	lgraph+32+18+2560,lgraph+32+18+2560,lgraph+32+18+5120,lgraph+32+18+5120,lgraph+32+18+7680,lgraph+32+18+7680
		dc.l	lgraph+32+22+5120,lgraph+32+22+5120,lgraph+32+22+5120,lgraph+32+22+5120
fganimend	

fganimtab	ds.l	(fganimend-fganimstart)/4
		
fganimpostab	dc.l	0,2,4,6,8,10,12,14
		dc.l	0,2,4,6,8,10,12,14
		