Prev: 57623 Up: Map Next: 57780
57740: Handle Sparkle
Handler for the object types 114 and 115 the sparkle that shows where a bubble has burst (see Handle_Bubble). The counter in byte 8 goes down on each call and the sprite id alternates between 114 and 115 with it. The sparkle is removed (and erased) when the counter reaches zero, and at once if Sabreman is not in the room.
Input
IX Object record
Handle_Sparkle 57740 CALL StoreEntity Save the state of the sparkle.
57743 LD A,(36636) Fetch the room x of Sabreman.
57746 CP (IX+2) Jump to Remove_Unseen_Weapon to remove the sparkle if it is in a different room x.
57749 JP NZ,Remove_Unseen_Weapon
57752 LD A,(36638) Fetch the room y of Sabreman.
57755 CP (IX+4) Jump to Remove_Unseen_Weapon to remove the sparkle if it is in a different room y.
57758 JP NZ,Remove_Unseen_Weapon
57761 DEC (IX+8) Decrease the counter and jump to Remove_Thrown_Weapon to remove and erase the sparkle when it reaches zero.
57764 JP Z,Remove_Thrown_Weapon
57767 LD A,(IX+8) Fetch the counter.
57770 AND %00000001 Keep only bit 0.
57772 ADD A,114 Add 114 to make the sprite id.
57774 LD (IX+0),A Store the sprite id.
57777 JP Update_Object_Sprite Jump to Update_Object_Sprite.
Prev: 57623 Up: Map Next: 57780