Patch:Asparagusto

From KeenWiki
Jump to: navigation, search

Asparagusto are green, pointy fast-moving creatures found in many levels in Tuberia in Keen Dreams. They will move back and forth stabbing Keen in the ankles whenever they contact him.


Sprite Type

Asparagusto use type 9 which has no impact on any other sprites save for making them transform into Wilted Flowers properly. It also affects how Keen reacts to it.

Patch: Keen Dreams
#Asparagusto sprite type
%patch $84F9 $09


Sprite Actions

The Asparagusto has a simple set of actions. It is spawned in the first frame of its running cycle and continues running indefinitely.

Actions:
$1C18W #Asparagusto run 1
$1C36W #Asparagusto run 2
$1C54W #Asparagusto run 3
$1C72W #Asparagusto run 4

Patch: Keen Dreams
#Place Asparagusto in level
%patch $8513 $1C18W
#Running cycle
%patch $256A4 $1C36W %patch $256C2 $1C54W %patch $256E0 $1C72W %patch $256FE $1C18W


Sprite Behavior

The Asparagusto does not have any behavior of its own at all.

Patch: Keen Dreams
#Asparagusto running
%patch $25698 $00000000L %patch $256B6 $00000000L %patch $256D4 $00000000L %patch $256F2 $00000000L


Speed

Asparagustos' speed is determined entirely by their animation motion.

Patch: Animation motion
#Walking
%patch $25694 $0064W $0000W %patch $256B2 $0064W $0000W %patch $256D0 $0064W $0000W %patch $256EE $0064W $0000W


Sprite collision

Like nearly all sprites in Keen Dreams the Asparagusto does not have a sprite collision. Instead Keen and his shots react to them and their sprite types.

Patch: Keen Dreams
#Asparagusto run
%patch $2569C $00000000L %patch $256BA $00000000L %patch $256D8 $00000000L %patch $256F6 $00000000L


Animations

The Asparagusto has a simple animation cycle, running back and forth using 4 frames each.

Patch: Keen Dreams
#Cache
%patch $23E7E $010FW
#Asparagusto cache start
%patch $23EAA $0116W
#Asparagusto cache end
#Asparagusto run
%patch $25688 $010FW $0113W %patch $25692 $0003W
#Animation speed
%patch $256A6 $0110W $0114W %patch $256B0 $0003W
#Animation speed
%patch $256C4 $0111W $0115W %patch $256CE $0003W
#Animation speed
%patch $256E2 $0112W $0116W %patch $256EC $0003W
#Animation speed


Sprite-tile interaction

The Asparagusto uses a generic 'run up and down hills, turn at walls and platform edges' tile interaction that is also used by many other sprites.

Patch: Keen Dreams
#Asparagusto running
%patch $256A0 $07C50299RL %patch $256BE $07C50299RL %patch $256DC $07C50299RL %patch $256FA $07C50299RL


Sprite spawn code

There is only one type of Asparagusto; in its initiation code its cache is set in $C7 $06 $70C2W $0001W

The last blue highlighted value is the sprite action the sprite uses as it proceeds to act in-level. $C7 $07 $xxxxW sets the sprite type and $C7 $47 $0E $xxxxW is the horizontal direction the sprite starts moving in, either $0001W (Facing right), $FFFFW (Facing left) or $0000W (Neither, never used.) $C7 $47 $10 $xxxxW is the vertical direction and works similarly. All Asparagusto spawn moving right.

Patch: Keen Dreams
#Asparagusto initiation pointer
%patch $4A35 $0398W
#Asparagusto (At $4868)
#Asparagusto initiation code
%patch $4868 $FF $36 $7052W $FF $36 $7050W $9A $07C50896RL $83 $C4 $04 $8B $1E $3E $70 $C7 $47 $02 $0000W $C7 $06 $70C2W $0001W $E9 $0142W
#Asparagusto spawn code
%patch $84E6 $55 $8B $EC $33 $C0 $50 $9A $044D01C9RL $44 $44 $8B $1E $3E $70 $C7 $07 $0009W $8B $46 $06 $B1 $08 $D3 $E0 $89 $47 $0A $8B $46 $08 $D3 $E0 $89 $47 $0C $C7 $47 $0E $0001W $B8 $1C18W $50 $FF $36 $3E $70 $9A $044D1212RL $83 $C4 $04 $5D $CB