Prev: 47407 Up: Map Next: 47492
47461: Print Pint Frame
Used by the routine at Animation_BarMaid.
Input
HL Screen buffer address for drawing
Draws the pint glass to the screen at the location provided by HL.
pint-frame
Print_Pint_Frame 47461 LD B,16 Set a counter in B for the height of the graphic (16).
47463 LD DE,51796 DE=Graphics_Pint.
Print_Pint_Frame_Loop 47466 LD A,(HL) Fetch the current byte in the screen buffer and stash it on the stack.
47467 PUSH AF
47468 LD A,(DE) Fetch a byte from the graphic pointer in *DE and write it to the screen buffer pointer held by *HL.
47469 LD (HL),A
47470 CALL NextScreenBufferLine Call NextScreenBufferLine.
47473 INC DE Increment the graphic pointer by one.
47474 DJNZ Print_Pint_Frame_Loop Decrease the height counter by one and loop back to Print_Pint_Frame_Loop until the whole of the graphic has been drawn to the screen.
Make sure the player sees the drawn pint before removing it.
47476 HALT Halt operation (suspend CPU until the next interrupt) three times.
47477 HALT
47478 HALT
Next all the stashed bytes are returned to the screen, ready for the next frame of the animation.
47479 CALL 43227 Call 43227.
47482 LD B,16 Set a counter in B for the height of the graphic (16).
Restore_Background_Loop 47484 POP AF Restore the stashed byte from the stack and write it to the screen buffer pointer held by *HL.
47485 LD (HL),A
47486 CALL 43227 Call 43227.
47489 DJNZ Restore_Background_Loop Decrease the height counter by one and loop back to Restore_Background_Loop until all the stashed bytes have been drawn back to the screen.
47491 RET Return.
Prev: 47407 Up: Map Next: 47492