; ����� ����� ������� �� ��� �����������
;_______________________________________________________________________________
;
-; Version : 99% (0.99.34)
-; Release Date : 2002 March 4
+; Version : 100% (1.00.36)
+; Release Date : 2002 March 6
; Author(s) : Shiar
; Email Address : wormy@shiar.org
; Web Page : www.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) : 12345678901234567890123456789012
-; wormy.z80 (100k) : 515ad14b922572bdc8a96e780b8b24ca
-; wormy.86g (8867) : efef32a8c541b4585087f55deb31f51d
+; Files : wormy.txt (9283) : ed15e942a99b40e5a584c597cb13df46
+; wormy.z80 (100k) : 977109a7d25f3227fe817edbcc36ad9a
+; wormy.86g (8914) : fbff7c36687c1e7e3113c29069021718
;_______________________________________________________________________________
;--- notes ---------------------------------------------------------------------
; | |_____| ____ |_____/ |_____|
;_______________________________________________________________________________
-; 98% = PREVIOUS
-; X [119] ED: new 53 file format with support for 128 objects instead of 32
-; X [119] LVL: episode #4: 10 hard sp levels (ordered XO-XO-XO-X)
-; X [120] fixed greymask (and it now ands instead of ors)
-; X [120] fixed growth set after death
-; X [121] fixed linkplay (couldn't turn it on anymore..)
-; X [121] LVL: Wormage + Wormage ][ (2x 10 sp levels)
-; X [121] pea randomizer doesn't give x>128
-; X [121] mixed single-/multipea singleplayer levels (re)set correctly
-; X [126] circles left|above 0,0 drawn correctly now!
-; X [126] fixed multiple pages of levelfiles
-; X [29] optimized a few more bytes (less empty bytes so prettier binary ;)
-; X [225] ED: ctf/race level copy/move fix
-; X [225] LVL: episode #1: 5 ctf+5 race; episode #3 removed (all in #1 now)
-; X [225] add v2 id (yas2)
-; X [227] redundant calls removed or moved
-; X [227] fixed: ctf score increased by taking _any_ pea
-; X [227] no more points in race for dieing on the second half
-; X [227] no score decrease for dieing in race (no longer needed, see above)
-; 99% = CURRENT
-; X [34] two more jp to jr
+; 99% = PREVIOUS
; X [34] freeze when no space left to place pea (break after 10k tries)
; X [34] wow another bit of code 'reniced' (easter egg or something :)
-; X [34] highly improved randomizer (now _really_ with values >127)
-; 1% * LINK: >Somehow do a lot of testing with 2 calcs< *sigh*
-; * LVL: episode #5: 10 easy sp levels (do i _have_ to?)
-; * LVL: Eric's Yumworms (ep#5?)
-; * LVL: Free Bird
-; * LVL: Jonah?
-; * scorebar last digit (at 128-3) not displayed by _vputs
-; 1% * fix any bugs that come up
+; X [34] two more jp to jr
+; X [34] highly improved randomizer (values >127 were rare)
+; X [36] replace 'left' at the change-control prompt
+; X [36] ED: fixed immediate exit at level preview when using enter key
+; X [36] bouncies drawn after placing peas (causing overwrites)
+; X [36] FIX: skip string length bytes when running from yas
+; X [36] ED: pointer to ending message realigned
+; X [36] LVL: end messages fixed in affected episodes
+;100% = CURRENT
+; * scorebar last digit (at 128-3) not displayed by _vputs :(
+; * save last played level (in levelfile prolly)
+; * automatically start players in multiplayer games after certain time
+; * muliplayer bonuses/powerups (shrink, lives, stun, inverse, etc.)
+; * levels with random pixels appearing during game
+; * no borders (move players from one side to another)
+; * hiding levels crashes?? (ishell 2.01 rom 1.6)
+; * use selected player on main menu as first player in singleplayer games
+
;--- future features -----------------------------------------------------------
;
; * correct team winners
; * level compression
-; * ubersized bouncies ;)
+; * ubersized bouncies (sprites)
; * arrow to offscreen peas
; * w00t AI
; * sound
.db %1010010
jr nz,$+47
dec l
- .db " 99% .34",0
+ .db " v1.00.36",0
WormIcon:
- .db 8,2
- .db %00000000,%00111100
- .db %00000000,%01010010
- .db %00000000,%01100001
- .db %01100011,%10011001
- .db %10010100,%01101001
- .db %10011001,%00011001
- .db %01000010,%11000001
- .db %00111100,%00111110
+ .db 8,2 ;Rkaydees' icon:
+ .db %00000000,%00111100 ; XX
+ .db %00000000,%01010010 ; XXX
+ .db %00000000,%01100001 ; XX
+ .db %01100011,%10011001 ; XX
+ .db %10010100,%01101001 ; XX
+ .db %10011001,%00011001 ; XX
+ .db %01000010,%11000001 ; X XX
+ .db %00111100,%00111110 ; XXXX
#ifdef id2
WormData:
.db 1
rst 10h
ex de,hl
ld a,b
+ cal _AHL_PLUS_2_PG3 ;skip past length bytes
cal skiptitle ;title (plus size+header <- all non-0)
; cal skiptitle ;description
jp leveldataAHL-3
yasdetect:
- cal _AHL_PLUS_2_PG3 ;skip past length bytes
+ cal _AHL_PLUS_2_PG3 ;skip past length bytes
cal _Get_Word_ahl
ld hl,levelhead+(levelhead2*256)
call _cphlde
jr nz,optionMenu
seloright:
- dec a
+ dec a ;Lives
jr z,changelives
- dec a
+ dec a ;Limit
jr z,changelimit
- dec a
+ dec a ;Speed
jr z,changespeed
- dec a
+ dec a ;Rotation
jr z,changeturn
- dec a
+ dec a ;Growth
jr z,changegrowth
-
+ ;Back
seloleft:
ld a,b
- dec a
+ dec a ;Lives
jr z,bchangelives
- dec a
+ dec a ;Limit
jr z,bchangelimit
- dec a
+ dec a ;Speed
jr z,bchangespeed
- dec a
+ dec a ;Rotation
jr z,bchangeturn
- dec a
+ dec a ;Growth
jr z,bchangegrowth
-_optionMenu:
+_optionMenu: ;Back
jr optionMenu
changelives:
jr nz,mainMenu
selright:
- or a
+ or a ;Mode
jr z,changegame
- dec a
+ dec a ;Level
jr z,changelevel
- dec a
+ dec a ;Link
jr z,changelink
- dec a
+ dec a ;Worms
jr z,changenrworms
-; dec a
+; dec a ;worm#
; jr z,changecurworm
changecurworm:
selleft:
ld a,b
- or a
+ or a ;Mode
jr z,bchangegame
- dec a
+ dec a ;Level
jr z,bchangelevel
- dec a
+ dec a ;Link
jr z,bchangelink
- dec a
+ dec a ;Worms
jr z,bchangenrworms
-; dec a
+; dec a ;worm#
; jr z,bchangecurworm
bchangecurworm:
or a
jr z,waitcustomkey
cp K_EXIT
- ret z
+ ret z ;cancel
cp K_MORE
- jr z,waitcustomkey
+ jr z,waitcustomkey ;ignore
ld (ix),a
ret
cal getwormname
ld hl,txtKleft
cal getcustomkey ;left
+ ld a,93
+ ld (_penCol),a
cal getcustomkey ;right
; jr dispmenusets
cal releasekeys
jr enternameloop
-chartable: ;("!@#$%,0" also used in _D_HL_DECI)
- .db ".<>!" ;down|L|R|up|-|-|-|-
+chartable:
+ .db ".<>!" ;down|L|R|up|-|-|-|-|[enter]
.db "w00t!" ;(makes code look way better)
- .db "XTOJE0",-2 ;enter|+|-|*|/|^|clear|-
- .db " WSNID9",-3 ;(-)|3|6|9|)|tan|custom|-
- .db "ZVRMHC8",-4 ;.|2|5|8|(|cos|prgm|del
- .db "YUQLGB7#" ;0|1|4|7|ee|sin|table|xvar
- .db $D9,"-PKFA6'" ;on|sto|,|x2|ln|log|graph|alpha
- .db "54321*",-5,$D0 ;F5|F4|F3|F2|F1|2nd|exit|more
+ .db "XTOJE0",'w' ;+|-|*|/|^|clear|- w
+ .db " WSNID9",$F8 ;(-)|3|6|9|)|tan|custom|- o
+ .db "ZVRMHC8",$A7 ;.|2|5|8|(|cos|prgm|[del] o
+ .db "YUQLGB7#",$C2 ;0|1|4|7|ee|sin|table|xvar|[on] t
+ .db "-PKFA6'" ;sto|,|x2|ln|log|graph|alpha
+ .db "54321*",$AE,$D0 ;F5|F4|F3|F2|F1|2nd|[exit]|more
nameentered: ;d=0
pop ix ;stringbegin
leveldone:
psh hl ; >> levelp new
cal forceshowstats
+ cal handlethoseneatlittleballs
ld a,(gamecar)
rla ;and _dataPmult
cal tryDrawPea ;pea#2
noctfpeas2draw:
-
- ld a,0
-nrballs =$-1
- or a
- cal nz,handlethoseneatlittleballs
+ cal handlethoseneatlittleballs
ld ix,worm1
ld a,1
hiscrposa =$+1
adc a,0 ;ahl=saveloc
ret
-savestr: ;hiscore (00AAA) _D_HL_DECI (00000)
+savestr: ;hiscore (01ABC) _D_HL_DECI (01234)
.db $BB,"w00t",0
iswinner:
;_______________________________________________________________________________
handlethoseneatlittleballs:
+ ld a,0
+nrballs =$-1
+ or a
+ ret z ;no bouncies to handle
+ ld b,a ;(nrballs)
ld hl,balls
- ld b,a ;a=(nrballs)
handleballs
psh bc
psh hl
txtYes: .db "Yes",0
txtNo: .db "No",0
txtKleft: .db ":left",0
-txtKright: .db "/right",0
+txtKright: .db "right",0
posLevsel = $0320
txtLevsel: .db $CF," SELECT LEVELS ",5,0
txtWaitn: .db "Waiting";"...",0