Prev: C635 Up: Map Next: C65C
C63B: Update Stove
Used by the routine at Update_Entity_Slot.
When the collided entity's type is 14 and the current entity's type is 09. Clears SlimyLoose, BoilEmUp and BoilEmUpLatch; raises StoveUpdated; advances StoveTick (setting StoveReady on the fourth tick); and repoints the cauldron at idle layout GraphicLayout_Cauldron.
Clear SlimyLoose / BoilEmUp / BoilEmUpLatch; raise StoveUpdated.
Update_Stove C63B PUSH HL Stash HL on the stack.
C63C LD HL,$72B6 Point HL at the task-three flags (TaskThreeFlags).
C63F RES 2,(HL) Clear SlimyLoose (bit 02 of TaskThreeFlags. set by B401 / C6FC tested by D907).
C641 RES 4,(HL) Clear BoilEmUp (bit 04 of TaskThreeFlags. set by ScriptRoutine_TaskThreeBerkRightWindow_SetFlagsAndLayout. tested by D927).
C643 RES 5,(HL) Clear BoilEmUpLatch (bit 05 of TaskThreeFlags. set by ScriptRoutine_TaskThreeBerkRightWindow_SetFlagsAndLayout. also cleared at C39A).
C645 SET 7,(HL) Set StoveUpdated (bit 07 of TaskThreeFlags. tested by ScriptRoutine_TaskThreeBerkRightWindow_SetFlagsAndLayout before it sets BoilEmUp / BoilEmUpLatch).
Count another stove tick (StoveTick); has it reached 04?.
C647 LD A,($72BE) Load the stove tick (StoveTick) into A.
C64A INC A Advance the stove tick by one.
C64B LD ($72BE),A Store the stove tick (StoveTick).
C64E CP $04 Has the stove tick reached 04? If not, skip to Update_Stove_IdleLayout.
C650 JR NZ,Update_Stove_IdleLayout
C652 SET 6,(HL) Set StoveReady (bit 06 of TaskThreeFlags. tested by D915 / D91B).
Point the cauldron at its idle layout and return.
Update_Stove_IdleLayout C654 LD HL,$9F9D Point HL at the cauldron layout (GraphicLayout_Cauldron).
C657 LD ($906D),HL Write that layout into the graphic-layout field of StateData_Complex_27 (906D).
C65A POP HL Restore HL from the stack.
C65B RET Return.
Prev: C635 Up: Map Next: C65C