junglejourney

changeset 93:40e17345cc8a

Added another enemy. Restricted the types of enemy found on each level.
author David Boddie <david@boddie.org.uk>
date Wed Aug 31 18:51:50 2011 +0200
parents 75989ead6a55
children ca3ed4323f00
files build.py mapcode.oph tools/makesprites.py
diffstat 3 files changed, 34 insertions(+), 18 deletions(-) [+]
line diff
     1.1 --- a/build.py	Wed Aug 31 18:51:20 2011 +0200
     1.2 +++ b/build.py	Wed Aug 31 18:51:50 2011 +0200
     1.3 @@ -73,7 +73,9 @@
     1.4      #   new characters are added after these
     1.5      #
     1.6      # 3D2A space
     1.7 -    # 3DF0 item/player flags (128=leave level, 64=player demise, 1=has key)
     1.8 +    # 3DF0 item/player flags (128=leave level, bits 4,5,6=enemy limit,
     1.9 +    #                         2=player demise, 1=has key)
    1.10 +    # 3DF1 weapon/enemy limit (the highest weapon/enemy possible on a level)
    1.11      # 3DF2 current room (i, j)
    1.12      # 3DF4 lives (strength)
    1.13      # 3DF5 delay counter
     2.1 --- a/mapcode.oph	Wed Aug 31 18:51:20 2011 +0200
     2.2 +++ b/mapcode.oph	Wed Aug 31 18:51:50 2011 +0200
     2.3 @@ -2083,13 +2083,27 @@
     2.4  emerge_type:                    ; returns A=type
     2.5      jsr unlimited_values
     2.6      lda $7d
     2.7 -    and #$70
     2.8 -    cmp #$40
     2.9 -    bmi exit_emerge_type
    2.10 +    and #7
    2.11 +    cmp $3df1               ; only allow the appropriate enemies for this level
    2.12 +    bpl emerge_type_default
    2.13 +
    2.14 +    cmp #4
    2.15 +    bmi emerge_type_exit
    2.16  
    2.17      lda #$40
    2.18 -
    2.19 -    exit_emerge_type:
    2.20 +    clc
    2.21 +    rts
    2.22 +
    2.23 +    emerge_type_default:
    2.24 +    sec
    2.25 +    sbc $3df1
    2.26 +    clc
    2.27 +
    2.28 +    emerge_type_exit:
    2.29 +    asl
    2.30 +    asl
    2.31 +    asl
    2.32 +    asl
    2.33      clc
    2.34      rts
    2.35  
    2.36 @@ -4120,7 +4134,7 @@
    2.37  
    2.38      lda $3dfa   ; create an upper limit on the weapon type found in this level
    2.39      adc #2
    2.40 -    sta $8d
    2.41 +    sta $3df1
    2.42      clc
    2.43  
    2.44      lda #$00
    2.45 @@ -4164,7 +4178,7 @@
    2.46  
    2.47          ; Only add weapons with types that equal the level number or exceed it
    2.48          ; by one.
    2.49 -        cmp $8d                     
    2.50 +        cmp $3df1                     
    2.51          bcs start_level_add_treasure_none
    2.52  
    2.53          clc
    2.54 @@ -4246,7 +4260,7 @@
    2.55  
    2.56                      jsr move_projectile
    2.57  
    2.58 -                    lda $3df0
    2.59 +                    lda $3df0   ; is player out of strength?
    2.60                      and #$40
    2.61                      beq room_loop_player_move
    2.62                      clc
     3.1 --- a/tools/makesprites.py	Wed Aug 31 18:51:20 2011 +0200
     3.2 +++ b/tools/makesprites.py	Wed Aug 31 18:51:50 2011 +0200
     3.3 @@ -46,8 +46,8 @@
     3.4           read_xpm("images/leaf1.xpm"),
     3.5           read_xpm("images/leaf2.xpm"),
     3.6           read_xpm("images/flowers2.xpm", [(".", "0"), ("#", "1"), ("+", "2"), ("@", "3")]),
     3.7 +         read_xpm("images/leaf6.xpm", [(".", "0"), ("+", "2")]),
     3.8           read_xpm("images/leaf4.xpm", [(".", "0"), ("+", "1"), ("#", "2"), ("@", "3")]),
     3.9 -         read_xpm("images/leaf3.xpm", [(".", "0"), ("@", "3"), ("+", "2")]),
    3.10           read_xpm("images/bricks.xpm", [(".", "0"), ("#", "1"), ("+", "2"), ("@", "3")]),
    3.11           read_xpm("images/wall1.xpm"),
    3.12           read_xpm("images/wall2.xpm")]
    3.13 @@ -94,14 +94,14 @@
    3.14           read_xpm("images/wasprd4.xpm", [(".", "0"), ("+", "1"), ("@", "3")]),
    3.15  
    3.16           # placeholder enemy sprites
    3.17 -         read_xpm("images/birdld1.xpm", [(".", "0"), ("+", "1"), ("@", "3")]),
    3.18 -         read_xpm("images/birdld2.xpm", [(".", "0"), ("+", "1"), ("@", "3")]),
    3.19 -         read_xpm("images/birdld3.xpm", [(".", "0"), ("+", "1"), ("@", "3")]),
    3.20 -         read_xpm("images/birdld4.xpm", [(".", "0"), ("+", "1"), ("@", "3")]),
    3.21 -         read_xpm("images/birdrd1.xpm", [(".", "0"), ("+", "1"), ("@", "3")]),
    3.22 -         read_xpm("images/birdrd2.xpm", [(".", "0"), ("+", "1"), ("@", "3")]),
    3.23 -         read_xpm("images/birdrd3.xpm", [(".", "0"), ("+", "1"), ("@", "3")]),
    3.24 -         read_xpm("images/birdrd4.xpm", [(".", "0"), ("+", "1"), ("@", "3")]),
    3.25 +         read_xpm("images/snakeld1.xpm", [(".", "0"), ("+", "1"), ("@", "3")]),
    3.26 +         read_xpm("images/snakeld2.xpm", [(".", "0"), ("+", "1"), ("@", "3")]),
    3.27 +         read_xpm("images/snakeld3.xpm", [(".", "0"), ("+", "1"), ("@", "3")]),
    3.28 +         read_xpm("images/snakeld4.xpm", [(".", "0"), ("+", "1"), ("@", "3")]),
    3.29 +         read_xpm("images/snakerd1.xpm", [(".", "0"), ("+", "1"), ("@", "3")]),
    3.30 +         read_xpm("images/snakerd2.xpm", [(".", "0"), ("+", "1"), ("@", "3")]),
    3.31 +         read_xpm("images/snakerd3.xpm", [(".", "0"), ("+", "1"), ("@", "3")]),
    3.32 +         read_xpm("images/snakerd4.xpm", [(".", "0"), ("+", "1"), ("@", "3")]),
    3.33  
    3.34           # placeholder enemy sprites
    3.35           read_xpm("images/birdld1.xpm", [(".", "0"), ("+", "1"), ("@", "3")]),