castleraider
changeset 285:2f0e1ac0c9d0
Ensured that the lives counter is reset before drawing the lives
at the start of play.
Extended the vertical collision check to take half rows into account
and reintroduced an explicit comparison to ensure that horizontal
collision checks work when bank 2 is being shown.
Adjusted the levels a bit.
| author | David Boddie <david@boddie.org.uk> |
|---|---|
| date | Sun Mar 23 00:46:29 2014 +0100 |
| parents | 7091d0eab594 |
| children | 2b0aad2b03a3 |
| files | code.oph levels/default.txt monsters.oph |
| diffstat | 3 files changed, 41 insertions(+), 25 deletions(-) [+] |
line diff
1.1 --- a/code.oph Sat Mar 22 01:44:43 2014 +0100 1.2 +++ b/code.oph Sun Mar 23 00:46:29 2014 +0100 1.3 @@ -72,6 +72,7 @@ 1.4 sta player_moving 1.5 sta player_falling 1.6 sta player_lost 1.7 + sta player_lives 1.8 sta check_monster_tile 1.9 sta monster_movement_offset 1.10 1.11 @@ -181,8 +182,6 @@ 1.12 main_loop_check_monsters: 1.13 jsr check_player_monsters 1.14 1.15 - main_loop_next: 1.16 - 1.17 lda scrolled 1.18 bne main_loop_after_monsters 1.19
2.1 --- a/levels/default.txt Sat Mar 22 01:44:43 2014 +0100 2.2 +++ b/levels/default.txt Sun Mar 23 00:46:29 2014 +0100 2.3 @@ -43,9 +43,9 @@ 2.4 ................@@@@@@@@@@@@@@..................................................................................................................@@@@..............@@@@.............................................................................................................@@@@@@+++++++++++++++++++++@@@@@@++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@@@............@@@@@@@@@@@@@@@@@@@@@@@@@@@@@...... 2.5 .................@@@@@@@@@@@@...................................................................................................................@@@@..............@@@@....................?..?.....................................................................................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.............@@@@@@@@@@@@@@@@@@@@@@@@@@@@...... 2.6 .................@@@............................................................................................................................@@@@...........<..@@@@....................@@@@.....................................................................................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@......<...@@@@@@@@@@@@@@@@@@@@@@@@@@@@...... 2.7 -..................I.......................................................................................................................................................................@@@@.....<..........@@............>.........>...@@..................................@@@@@@/..\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@............@@@@@@@@@@@@@@@@@@@@@@@@@@@@...... 2.8 -..................I.............................................++++++++++++................................................................................................................................@@@@--------------------------@@@@.................@@@@@@@@@@@@@@@@@@.......@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..@@@@@@@@@@@@@@@@@@@@@@@@@@@/.\@@@@@@@@@@..............2............@@@@@@@@@@@@@@...... 2.9 -..................I..........................................+++############++++..........................................................................................................................@@@@@@..........................@@@@@@........................................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..@@@@@@@@@@@@@@@@@@@@@@@@@@@...........................2..........n.@@@@@@@@@@@@@@@@.... 2.10 +..................I.......................................................................................................................................................................@@@@.....<..........@@............>.........>...@@..................................@@@@@@/..\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@............@@@@@@@@@@@@@@@@@@@@@@@@@@@@...... 2.11 +..................I.............................................++++++++++++................................................................................................................................@@@@--------------------------@@@@.................@@@@@@@@@@@@@@@@@@.......@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..@@@@@@@@@@@@@@@@@@@@@@@@/.\@@@@@@@@@@..............2............@@@@@@@@@@@@@@...... 2.12 +..................I..........................................+++############++++..........................................................................................................................@@@@@@..........................@@@@@@........................................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..@@@@@@@@@@@@@@@@@@@@@@@@...........................2..........n.@@@@@@@@@@@@@@@@.... 2.13 ..................I.......................................+++###################++........................+++++.....................+++++++.............................................................@@@@@@@@..........................@@@@@@@@..................................ZZZZ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@...........................2............@@@@@@@@@@@@@@@@@@.. 2.14 .................@@@@@@@@@@@@..................>.....+++++########################++++............>.....++#####++......>.......+++++#######+++++@@........>.........@@++++++++++++++++++++++++++++++++@@@@@@@@@@..........................@@@@@@@@@@..................>.............@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SSS.......................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2.15 +++@@------------@@@@@@@@@@@@++++++++++++++++++++++++#################################++++++++++++++++++#########++++++++++++++#################@@@@@@@@@@@@@@@@@@@@@@################################@@@@@@@@@@..........................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.......@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2.16 @@ -98,27 +98,27 @@ 2.17 ................................................................................V..........................................===..........................V..........................................................= 2.18 ...................@@@@@.....................................................................................==..............{.....................................................................................= 2.19 ...................@/.\@........................................................................................................................................................................................HHH= 2.20 -...................=...........................................===....................................==......................................................................................................@@==== 2.21 +...................=...........................................====...................................==......................................................................................................@@==== 2.22 ...................=............................................................===........................................................................................................................@@....... 2.23 ...................=LLL...........................===.................................................................................................................................................=====......... 2.24 ...................=@@@===................====..............<...........====............===.........................==................................======.......................===......=====................... 2.25 ................................=====..................=====....................................=====.......====..........=====....======....====...............===.....=====....................................... 2.26 2.27 Wasteland 2.28 -.........................................................................@@..@@..@@............................................................................................................@@..@@..@@....................................................................................................@@@@@@@@@@@@@@@@@@@@@@...................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..........<........--..............@@@@@@@@@@@@@@@@@@@@@@@@@@.....................................................................................................................................................+++++++++++.................................................................................. 2.29 -.........................................................................@@@@@@@@@@...............................................@@..@@.......................................................@@@@@@@@@@....................................................................................................@@@@@@@@@@@@@@@@@@@@@@.......--..........@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.............--..........--........@@@@@@@@@@@@@@@@@@@@@@@@@@...............................................................................................................................................++++++###########+++++............................................................................. 2.30 -.........................................................................@@@@@@@@@@...............................................@@@@@@.......................................................@@@@@@@@@@....................................................................................................@@@@@@@@@@@@@@@@@@@@@@........................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@....................................3...................................................................................................................................................................++++######################+++.......................................................................... 2.31 -.........................................................................@@..@@..@@...............................................@@@@@@.......................................................@@..@@..@@....................................................................................................@@@@@@@@@@@@@@@@@@@@@@......................o.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.m..................................3...............................................................................................................................................................++++#############################++........................................................................ 2.32 -.........................................................................@@@@@@@@@@............................................................................................................@@@@@@@@@@....................................................................................................@@@@@@@@@@@@@@@@@@@@@@@@.......<..............@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@...........--.......................3............................................................................................................................................................+++###################################+....................................................................... 2.33 -.........................................................................@@@....@@@............................................................................................................@@@@@@@@@@....................................................................................................@@@@@@@@@@@@@@@@@@@@@@................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@............................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.............@@@@@@@@@@@........................................................................................................++#######################################++..................................................................... 2.34 -...............................................................................................................................................................................................@@......@@....................................................................................................@@@@................3........---.........@@@@@@@@@@@@@@@....@@@@@@@@@@@@@@@@@@@@@@@@@...........--................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.............@@@@@@@@@@@......................................................................++++++++++++....................++###########################################++................................................................... 2.35 -.............................................................................V.........................................................................................................................1.....................................................................................................@@@@.wx.............3....................@@@@@@@@@@@@@........@@@@@@@@@@@@@@@@@@@@@@@....<.................--.....@@@@/.\@@@@@@@@@@@@@@@@@@@@@@@@@@.............@@@@@@@@@..................................................................++++############++++++...........+++###############################################+++................................................................ 2.36 -.......................................................................................................................................................................................................1.....................................................................................................@@@@................3....................@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@@@@@..................--................@@@@@@@@@@@@@@@@@@@@@@@@@@........<....@@@@@@@@@............................................................++++++######################++......+++#####################################################++++............................................................ 2.37 -.....................................@@..@@............................................................................................................................................................1.....................................................................................................@@@@@@@@@@@@@@@@@@@@@@...................@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@@@@@....................................@@@@@@@@@@@@@@@@@@@@@@@@@@@@..................4.........................................................++++##############################++++++############################################################++++........................................................ 2.38 -.....................................@@@@@@..............................@@......@@.............................................@@@@@@@@@@@@..............<....................................@@@@@@@@@@................................................................................@@@@................@@@@@@@@@@@@@@@@@@@@@@@@@................@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@@@@@@@@..............................JJJ@@@@@@@@@@@@@@@@@@@@@@@@@@@@..................4.................................................++++++++########################################################################################################+++..................................................... 2.39 -.....................................@/..\@...........................XXXXXX@@@@@@@.................................<......XXXXXXXXXX@@@@@@@................XXXXXXX..........................@@@@@@@@@@@@@........>.........>.....++++++++.............................................../..\................@@@@@@@@@@@@@@@@@@@@@@...................@@@@@@@@@@@@..........@@@/.\@@@@@@@@@@@@@@@@@@@..........--............@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@................4............................................+++++###################################################################################################################++++................................................. 2.40 -.....................................@..............................XXXXXXXXXX@@@@@............XXXXXXXX.................XXXXXXXXXXXXXXXX@@@@.............XXXXXXXXXXXXXXX...>.........XXXXXXXXXXXXXXXXXXXXX------------------------########+++...>.....++......XXXX...........................................@@@@@@@@@@@@@@@@@@@@@@...................................V...........@@@@@@@@@@@@@@@@@@@..........................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@................4.......................................+++++############################################################################################################################+++++............................................ 2.41 -.....................................@...........................XXXXXXXXXXXXXXX@@@.....>.....XXXXXXXXX...............XXXXXXXXXXXXXXXXXXXXXX....>.....XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.......................############+++++++++##.......XXX........<......====........................@@@@@@@@@@@@@@@@@@@@@@...............................................@@@@@@@@@@@@@@@@@@@..........................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.......@@@@.....4.................................++++++######################################################################################################################################+++......................................... 2.42 -.....................................@KKKK..........>.....XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....>.....XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.......................######################........XX.....XXXX.....=======...QQQQ................@@@@@@@@@@@@@@@@@@@@@@......----..................................NNN@@@@@@@@@@@@@@@@@@@.......>..................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..>....@@@@@@...4.......>........+++++++++++++++++###############################################################################################################################################++++++++++............................... 2.43 +.........................................................................@@..@@..@@............................................................................................................@@..@@..@@....................................................................................................@@@@@@@@@@@@@@@@@@@@@@...................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..........<........--..............@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.......................................................................................................................+++++++++++.................................................................................. 2.44 +.........................................................................@@@@@@@@@@...............................................@@..@@.......................................................@@@@@@@@@@....................................................................................................@@@@@@@@@@@@@@@@@@@@@@.......--..........@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.............--..........--........@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.................................................................................................................++++++###########+++++............................................................................. 2.45 +.........................................................................@@@@@@@@@@...............................................@@@@@@.......................................................@@@@@@@@@@....................................................................................................@@@@@@@@@@@@@@@@@@@@@@........................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@....................................3.............................................@@@@@@@@@.............................................................................................................++++######################+++.......................................................................... 2.46 +.........................................................................@@..@@..@@...............................................@@@@@@.......................................................@@..@@..@@....................................................................................................@@@@@@@@@@@@@@@@@@@@@@......................o.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.m..................................3.............................................@@@@@@@@@.........................................................................................................++++#############################++........................................................................ 2.47 +.........................................................................@@@@@@@@@@............................................................................................................@@@@@@@@@@....................................................................................................@@@@@@@@@@@@@@@@@@@@@@@@.......<..............@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@...........--.......................3................................................4...........................................................................................................+++###################################+....................................................................... 2.48 +.........................................................................@@@....@@@............................................................................................................@@@@@@@@@@....................................................................................................@@@@@@@@@@@@@@@@@@@@@@................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@............................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@......................4.........................................................................................................++#######################################++..................................................................... 2.49 +...............................................................................................................................................................................................@@......@@....................................................................................................@@@@................3........---.........@@@@@@@@@@@@@@@....@@@@@@@@@@@@@@@@@@@@@@@@@...........--................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@...............V......4.......................................................................++++++++++++....................++###########################################++................................................................... 2.50 +.............................................................................V.........................................................................................................................1.....................................................................................................@@@@.wx.............3....................@@@@@@@@@@@@@........@@@@@@@@@@@@@@@@@@@@@@@....<.................--.....@@@@/.\@@@@@@@@@@@@@@@@@@@@@@@@@@....................4...................................................................++++############++++++...........+++###############################################+++................................................................ 2.51 +.......................................................................................................................................................................................................1.....................................................................................................@@@@................3....................@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@@@@@..................--................@@@@@@@@@@@@@@@@@@@@@@@@@@....................4.............................................................++++++######################++......+++#####################################################++++............................................................ 2.52 +.....................................@@..@@............................................................................................................................................................1.....................................................................................................@@@@@@@@@@@@@@@@@@@@@@...................@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@@@@@....................................@@@@@@@@@@@@@@@@@@@@@@@@@@@@.............@@@@@@@@@@@....................................................++++##############################++++++############################################################++++........................................................ 2.53 +.....................................@@@@@@..............................@@......@@.............................................@@@@@@@@@@@@..............<....................................@@@@@@@@@@................................................................................@@@@................@@@@@@@@@@@@@@@@@@@@@@@@@................@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@@@@@@@@..............................JJJ@@@@@@@@@@@@@@@@@@@@@@@@@@@@.............@@@@@@@@@@@............................................++++++++########################################################################################################+++..................................................... 2.54 +.....................................@/..\@...........................XXXXXX@@@@@@@.................................<......XXXXXXXXXX@@@@@@@................XXXXXXX..........................@@@@@@@@@@@@@........>.........>.....++++++++.............................................../..\................@@@@@@@@@@@@@@@@@@@@@@...................@@@@@@@@@@@@..........@@@/.\@@@@@@@@@@@@@@@@@@@..........--............@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.........@@@@@@@@@@@@@.......................................+++++###################################################################################################################++++................................................. 2.55 +.....................................@..............................XXXXXXXXXX@@@@@............XXXXXXXX.................XXXXXXXXXXXXXXXX@@@@.............XXXXXXXXXXXXXXX...>.........XXXXXXXXXXXXXXXXXXXXX------------------------########+++...>.....++......XXXX...........................................@@@@@@@@@@@@@@@@@@@@@@...................................V...........@@@@@@@@@@@@@@@@@@@..........................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.........@@@@@@@@@@@@@..................................+++++############################################################################################################################+++++............................................ 2.56 +.....................................@...........................XXXXXXXXXXXXXXX@@@.....>.....XXXXXXXXX...............XXXXXXXXXXXXXXXXXXXXXX....>.....XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.......................############+++++++++##.......XXX........<......====........................@@@@@@@@@@@@@@@@@@@@@@...............................................@@@@@@@@@@@@@@@@@@@..........................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.........@@@@@@@@@@@@@............................++++++######################################################################################################################################+++......................................... 2.57 +.....................................@KKKK..........>.....XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....>.....XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.......................######################........XX.....XXXX.....=======...QQQQ................@@@@@@@@@@@@@@@@@@@@@@......----..................................NNN@@@@@@@@@@@@@@@@@@@.......>..................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..>......@@@@@@@@@@@@@..>........+++++++++++++++++###############################################################################################################################################++++++++++............................... 2.58 ...................XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX......................######################........XX......XX.......==============...............@@@@@@@@@@@@@@@@@@@@@@...............@@@@@@@@@@@@@@@@@@......@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########################################################################################################################################################################+++++++++++++++++++++++++++++++ 2.59
3.1 --- a/monsters.oph Sat Mar 22 01:44:43 2014 +0100 3.2 +++ b/monsters.oph Sun Mar 23 00:46:29 2014 +0100 3.3 @@ -721,17 +721,34 @@ 3.4 3.5 check_monster_player_bank2: 3.6 lda bank_number ; x = 17,20 is only a potential hit if 3.7 + cmp #1 3.8 beq check_monster_common_exit ; bank 2 is showing. 3.9 3.10 check_monster_player_vertical: 3.11 3.12 + lda player_y ; Check for the top of the character. 3.13 + asl 3.14 + adc player_ys ; Store the y position in terms of half 3.15 + sta $81 ; rows. 3.16 + 3.17 iny 3.18 lda ($86),y ; Load monster y offset. 3.19 - cmp player_y 3.20 - bcc check_monster_common_exit 3.21 - sbc #3 3.22 + asl ; Convert it to half rows. 3.23 + iny 3.24 + adc ($86),y ; Add it to the monster's ys value. 3.25 + 3.26 + adc #1 ; Add haly the monster's height to the 3.27 + ; offset to help with comparison using 3.28 + ; its bottom edge. 3.29 + 3.30 + cmp $81 ; Compare to the character's top edge. 3.31 + bcc check_monster_common_exit ; Exit if above the character. This means 3.32 + ; that the bottom edge could be aligned 3.33 + ; with the character's top edge. 3.34 + 3.35 + sbc #8 ; Check for the character's bottom edge. 3.36 clc 3.37 - cmp player_y 3.38 + cmp $81 3.39 bcs check_monster_common_exit 3.40 3.41 jmp player_demise ; Decrease the number of lives and exit.
