X-Git-Url: http://git.shiar.nl/wormy.git/blobdiff_plain/5921ae1521e78d38c0257c19691686b355b934ba..3d225e408bf05bd9c50959bda8ffd2eeef19e5fe:/wormy.z80 diff --git a/wormy.z80 b/wormy.z80 index 754b085..576ac70 100644 --- a/wormy.z80 +++ b/wormy.z80 @@ -1,43 +1,40 @@ -;___ÜÛÛÛ________________________________________________________ÜÜÜÜ____________ -; ÛÛÛß ÛÛÛÛÝ -; ÛÛÛ ßÛÛÛ ÞÛÛÜ -;ÞÛÛ ÜÛÛÛÜ ÜÜÛÛÛÛÜÜ ÜÛÛÛÛ ÜÛÛÜ ÜÛÛÜ ÞÛÛ ÛÛÛÛÛ -;ÛÛÝ ÛÛÛÛÛÛÛ ÜÛÛÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛÛÛÛÛÜ ÛÛ ÛÛÛ ÛÛÛ -;ÛÛ ÛÛß ßÛÛ ÞÛÛßß ßÛÛÛ ÛÛÛß ÛÛÝ ÛÛß ÛÛÛÛ ßÛÛ ÛÛÝ ÞÛÛÝ ÞÛÛ -;ÛÛ ÛÛ ÛÛ ÛÛ Ü ÛÛÝ ÞÛÛÝ ÞÛÛ ÛÛÛÛÛÛ ÛÛÝ ÛÛÛ ÛÛÛ ÛÛ -;ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÞÛÛ ÛÛÛ ÛÛÝ ÛÛÛß ÞÛÛ ßÛÛ ÛÛÛ ÞÛÛÛ ÛÛ -;ÛÛ ÛÛÝ ÞÛÛ ÛÛ ÛÛ ÛÛ ÛÛÝ ÛÛÝÞÛÛÝ ÛÛÝ ÛÛ ÛÛÛÛÛÛß ÛÛ -;ÛÛ ÞÛÛ ÛÛÝ ÞÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÞÛÛ ÛÛÝ ÛÛÝ ßÛÛÛß ÞÛÛ -;ÛÛÝ ÛÛÜ ÜÛÛ ÛÛÝ ÛÛ ÛÛ ÛÛÝ ÛÛ ÞÛÛÝ ÞÛÛÝ ÛÛÝ ÛÛÝ -;ÞÛÛ ÛÛÛÛÛ ÞÛÛ ÛÛÝ ÞÛÛ ÛÛÝ ÛÛ ßÛÛÜÜÛÛß ÛÛÛ ÞÛÛ -; ÛÛÛ ÛÛÛ ÛÛÝ ÞÛÛ ÛÛÝ ÛÛÛ ÛÛÝ ßÛÛÛÛß ÞÛÛ ÛÛÛ -; ÛÛÛÜ ÜÛÛÛÛÛÜ ÜÛÛÛ ÛÛÝ ÛÛÛ ÞÛÛÝ ÛÛÝ ÛÛÛÜÜ ÜÛÛÛ -; ÛÛÛÛÛÛÛß ßÛÛÛÛÛÛÛ ÞÛÛÜÜÛÛÛÝ ÛÛÛ ÞÛÛ ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÝ -; ßÛÛÛß ßÛÛßß ßÛÛÛÛÛß ÛÛ ÛÛÝ ßÛÛÛÛÛÛÛÛÛß +;___▄███________________________________________________________▄▄▄▄____________ +; ███▀ ████▌ +; ███ ▀███ ▐██▄ +;▐██ ▄███▄ ▄▄████▄▄ ▄████ ▄██▄ ▄██▄ ▐██ █████ +;██▌ ███████ ▄██████████ ███████ ████████████▄ ██ ███ ███ +;██ ██▀ ▀██ ▐██▀▀ ▀███ ███▀ ██▌ ██▀ ████ ▀██ ██▌ ▐██▌ ▐██ +;██ ██ ██ ██ ▄ ██▌ ▐██▌ ▐██ ██████ ██▌ ███ ███ ██ +;██ ██ ██ ██ ██ ▐██ ███ ██▌ ███▀ ▐██ ▀██ ███ ▐███ ██ +;██ ██▌ ▐██ ██ ██ ██ ██▌ ██▌▐██▌ ██▌ ██ ██████▀ ██ +;██ ▐██ ██▌ ▐██ ██ ██ ██ ██ ▐██ ██▌ ██▌ ▀███▀ ▐██ +;██▌ ██▄ ▄██ ██▌ ██ ██ ██▌ ██ ▐██▌ ▐██▌ ██▌ ██▌ +;▐██ █████ ▐██ ██▌ ▐██ ██▌ ██ ▀██▄▄██▀ ███ ▐██ +; ███ ███ ██▌ ▐██ ██▌ ███ ██▌ ▀████▀ ▐██ ███ +; ███▄ ▄█████▄ ▄███ ██▌ ███ ▐██▌ ██▌ ███▄▄ ▄███ +; ███████▀ ▀███████ ▐██▄▄███▌ ███ ▐██ ██████████████▌ +; ▀███▀ ▀██▀▀ ▀█████▀ ██ ██▌ ▀█████████▀ ;_______________________________________________________________________________ ; ; Version : 100% (1.00.36) ; Release Date : 2002 March 6 ; Author(s) : Shiar ; Email Address : wormy@shiar.org -; Web Page : www.shiar.org +; Web Page : http://shiar.nl +; License: : GNU General Public License version 3 ; Description : perfect Nibbles game with free movement, nine game ; modes, for 1-4 players, many levels and editor -; Where to get this game : wormy.shiar.org ; Other games by author(s) : Nemesis beta ; Additional Credits to : Matthew Shepcar : wrote original Peaworm, end'98 ; Jonah Cohen : helped writing worm -; Files : wormy.txt (9283) : ed15e942a99b40e5a584c597cb13df46 -; wormy.z80 (100k) : 977109a7d25f3227fe817edbcc36ad9a -; wormy.86g (8914) : fbff7c36687c1e7e3113c29069021718 ;_______________________________________________________________________________ ;--- notes --------------------------------------------------------------------- ; * Game README is wormy.txt -; * Use for LEARNING practises ONLY! -; * Don't _ever_ release altered code w/o permission! -; * Give me credits when you use any of this stuff +; * All code under the GPL version 3 +; * You may alter and redistribute (parts of) this code +; but only under the same license; credits would be appreciated ; * I'm not responsible for any damage this might cause, yada yada... ; * Although I've commented & labeled quite some stuff, due to ; crazy optimizations and weird coding, it may be harder to @@ -237,16 +234,16 @@ pos2 = 4 ;level grow = 6 ;level died = 8 ;game: score = 9 -delay = 11 +wdelay = 11 lives = 12 head = 13 - ; Ú15B (wormNset) -tail = 15 ; |also@next level -storepos = 17 ; | -reserv = 18 ; |loop (race:lap|ctf:pea) -left = 19 ; | -right = 20 ; | -name = 21 ; |_ + ; ┌15B (wormNset) +tail = 15 ; │also@next level +storepos = 17 ; │ +reserv = 18 ; │loop (race:lap|ctf:pea) +wleft = 19 ; │ +wright = 20 ; │ +name = 21 ; │_ wormsize = 30 ;^mark^ @@ -260,7 +257,7 @@ wormsize = 30 ;^mark^ start: ;turn back NOW! nop ;and so it begins... - jp Start + jp codestart #ifndef id2 ld bc,$5242 rst 10h @@ -324,7 +321,7 @@ yasdetect: cal _AHL_PLUS_2_PG3 ;skip past length bytes cal _Get_Word_ahl ld hl,levelhead+(levelhead2*256) - call _cphlde + cal _cphlde ret z scf ret @@ -359,7 +356,7 @@ int_end: ;--- search levels ------------------------------------------------------------- -Start: +codestart: cal _runindicoff cal _flushallmenus @@ -1020,7 +1017,7 @@ notselect cp K_EXIT jp z,ExitNoStats cp K_MORE - jp z,Start + jp z,codestart psh af cal menupos cal loadgamecar @@ -1543,7 +1540,7 @@ createwormsloop: ld (hl),b ;+score+1=0 inc hl ld c,2 - ld (hl),c ;+delay=2 + ld (hl),c ;+wdelay=2 inc hl ld (hl),3 ;+lives=x wormbeglives =$-1 @@ -1593,11 +1590,11 @@ client: ; 2 = link = 0 + link (name1) ; 3 = worm #2 = #2 + local(name2) ; 4 = link = 0 + link (name2) - ld e,worm3+left&255 + ld e,worm3+wleft&255 cal moveworm2 ;3=2 ld l,worm1+name&255 cal sendworm - ld l,worm2+left&255 + ld l,worm2+wleft&255 cal linkworm ;worm2+4 over link pop hl ;loadgamecar pop de ;leveldata @@ -1626,21 +1623,21 @@ linkerror: ;--- set/send worms ------------------------------------------------------------ moveworm2: - ld hl,worm2+left -moveworm: ;hl=wormN+left + ld hl,worm2+wleft +moveworm: ;hl=wormN+wleft ld d,worm1/256 ld bc,11 ldir ;keys+name worm(de) = worm(hl) ret -linkworm: ;hl=wormN+left - ld (hl),0 ;worm1|2+left +linkworm: ;hl=wormN+wleft + ld (hl),0 ;worm1|2+wleft inc hl inc hl ;+name ld b,9 cal recvstuff ld bc,worm3-worm1-11 ;+2 add hl,bc ;b=0 - ld (hl),b ;worm3|4+left + ld (hl),b ;worm3|4+wleft inc hl inc hl ;+name ld b,9 @@ -1665,12 +1662,12 @@ host: ; 2 = worm #1 = #1 + local(name1) ; 3 = link = 0 + link (name2) ; 4 = worm #2 = #2 + local(name2) - ld e,worm4+left&255 + ld e,worm4+wleft&255 cal moveworm2 ;4=2 - ld e,worm2+left&255 - ld hl,worm1+left + ld e,worm2+wleft&255 + ld hl,worm1+wleft cal moveworm ;2=1 - ld l,worm1+left&255 + ld l,worm1+wleft&255 cal linkworm ;worm1+3 over link ld l,worm2+name&255 cal sendworm @@ -2021,7 +2018,7 @@ ReadyDelay: GameLoop: ld bc,(worm1+pos) ;camera worm #1 - ld a,(worm1+left) + ld a,(worm1+wleft) or a ;if #1 not over link jr nz,showfield ld bc,(worm2+pos) ;otherwise view from #2 @@ -2319,10 +2316,10 @@ displayWormStats: psh bc psh hl - ld bc,left-died - add hl,bc ;+left + ld bc,wleft-died + add hl,bc ;+wleft xor a - cp (hl) ;left=0 = link + cp (hl) ;wleft=0 = link jr nz,NoLinkIndic ld a,9 ld (_curCol),a @@ -2565,10 +2562,10 @@ respawndue: ld a,h ;previous cp l ;changed? ret z - ld (ix+delay),a ;=0 + ld (ix+wdelay),a ;=0 ret saverespawncounter: - ld (ix+delay),a + ld (ix+wdelay),a jr inputcall chkkey: ;key=a @@ -2603,7 +2600,7 @@ inkeys: ;use jp not call! turnright =$-1 ld l,a notright: - ld a,(ix+right) + ld a,(ix+wright) cal chkkey ret nc ld a,l @@ -2612,7 +2609,7 @@ turnleft =$-1 ld l,a ret inputcall: - ld a,(ix+left) + ld a,(ix+wleft) or a jr z,inlink ;input by link cal inkeys ;input by keys @@ -2640,7 +2637,7 @@ HandleWorm: or a ret nz ;live limit alive: - ld a,(ix+delay) + ld a,(ix+wdelay) dec a jp nz,respawncheck @@ -3039,7 +3036,7 @@ wormset2grow: pop hl ;<