![]() |
Routines |
| Prev: 57050 | Up: Map | Next: 57109 |
|
Handler for the object types 72 to 75 (a puff of dust). The counter in byte 8 goes down on every call and the puff is removed, and erased, when it reaches zero. Bit 0 of the type follows bit 0 of the counter, which makes the puff flicker between two frames. The puff is removed if Sabreman is not in its room.
|
||||||||
| Handle_Dust | 57064 | CALL StoreEntity | Save the state of the puff. | |||||
| 57067 | LD A,(36636) | Fetch the room x of Sabreman. | ||||||
| 57070 | CP (IX+2) | Jump to Remove_Unseen_Weapon to remove the puff if it is in a different room x. | ||||||
| 57073 | JP NZ,Remove_Unseen_Weapon | |||||||
| 57076 | LD A,(36638) | Fetch the room y of Sabreman. | ||||||
| 57079 | CP (IX+4) | Jump to Remove_Unseen_Weapon to remove the puff if it is in a different room y. | ||||||
| 57082 | JP NZ,Remove_Unseen_Weapon | |||||||
| 57085 | DEC (IX+8) | Decrease the counter and jump to Remove_Thrown_Weapon to remove the puff when it reaches zero. | ||||||
| 57088 | JP Z,Remove_Thrown_Weapon | |||||||
| 57091 | LD A,(IX+8) | Fetch the counter. | ||||||
| 57094 | AND %00000001 | Keep only bit 0. | ||||||
| 57096 | LD B,A | Store it in B. | ||||||
| 57097 | LD A,(IX+0) | Fetch the type. | ||||||
| 57100 | AND %11111110 | Reset bit 0. | ||||||
| 57102 | ADD A,B | Add bit 0 of the counter. | ||||||
| 57103 | LD (IX+0),A | Store the type. | ||||||
| 57106 | JP Update_Object_Sprite | Jump to Update_Object_Sprite. | ||||||
| Prev: 57050 | Up: Map | Next: 57109 |