Prev: DE70 Up: Map Next: DEDA
DEB8: Make Dust Puff
Used by the routine at Move_Thrown_Weapon.
Makes a puff of dust at the position of an object, by copying the object to the record at Dust_Record and changing the type of the copy to 4A. Nothing happens if that record is already in use. The puff lasts for four frames (see Handle_Dust). The routine finishes by playing a deep tone.
Input
IX Object record of the object that makes the puff
Make_Dust_Puff DEB8 LD A,($8F4A) Fetch the type of the dust record.
DEBB AND A Return if the record is already in use.
DEBC RET NZ
DEBD PUSH IX Copy the address of the object record to HL.
DEBF POP HL
DEC0 LD DE,$8F4A Point DE at Dust_Record.
DEC3 LD BC,$000F Set a counter of 0F bytes.
DEC6 LDIR Copy the object to the dust record, except for its redraw flags.
DEC8 LD A,$4A Set the type of the new object to 4A which is a puff of dust.
DECA LD ($8F4A),A
DECD LD A,$04 Set the counter in byte 08 to 04.
DECF LD ($8F52),A
DED2 LD A,$01 Set the redraw flags to 01 so that the puff is drawn without being erased first.
DED4 LD ($8F59),A
DED7 JP SoundsBounce Jump to SoundsBounce.
Prev: DE70 Up: Map Next: DEDA