Prev: 50741 Up: Map Next: 50780
50747: Update Stove
Used by the routine at Update_Entity_Slot.
When the collided entity's type is 20 and the current entity's type is 9. 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 50747 PUSH HL Stash HL on the stack.
50748 LD HL,29366 Point HL at the task-three flags (TaskThreeFlags).
50751 RES 2,(HL) Clear SlimyLoose (bit 2 of TaskThreeFlags. set by 46081 / 50940 tested by 55559).
50753 RES 4,(HL) Clear BoilEmUp (bit 4 of TaskThreeFlags. set by ScriptRoutine_TaskThreeBerkRightWindow_SetFlagsAndLayout. tested by 55591).
50755 RES 5,(HL) Clear BoilEmUpLatch (bit 5 of TaskThreeFlags. set by ScriptRoutine_TaskThreeBerkRightWindow_SetFlagsAndLayout. also cleared at 50074).
50757 SET 7,(HL) Set StoveUpdated (bit 7 of TaskThreeFlags. tested by ScriptRoutine_TaskThreeBerkRightWindow_SetFlagsAndLayout before it sets BoilEmUp / BoilEmUpLatch).
Count another stove tick (StoveTick); has it reached 4?.
50759 LD A,(29374) Load the stove tick (StoveTick) into A.
50762 INC A Advance the stove tick by one.
50763 LD (29374),A Store the stove tick (StoveTick).
50766 CP 4 Has the stove tick reached 4? If not, skip to Update_Stove_IdleLayout.
50768 JR NZ,Update_Stove_IdleLayout
50770 SET 6,(HL) Set StoveReady (bit 6 of TaskThreeFlags. tested by 55573 / 55579).
Point the cauldron at its idle layout and return.
Update_Stove_IdleLayout 50772 LD HL,40861 Point HL at the cauldron layout (GraphicLayout_Cauldron).
50775 LD (36973),HL Write that layout into the graphic-layout field of StateData_Complex_27 (36973).
50778 POP HL Restore HL from the stack.
50779 RET Return.
Prev: 50741 Up: Map Next: 50780