Prev: 39664 Up: Map Next: 39704
39672: Draw Bottom Right Corner
Used by the routine at Draw_Room.
Draws the bottom right corner of the frame of the room if bit 3 of the frame flags is set, or clears its area if it is not.
The corner is drawn at x position 232 y position 160 by Draw_Corner_Shape. Its shape depends on whether the floor (bit 4) and the right wall (bit 2) are present.
Input
DE Frame flags of the room in E
IX Object record of Sabreman
Draw_Bottom_Right_Corner 39672 PUSH DE Stash the frame flags on the stack.
39673 LD HL,41192 Set the x position to 232 and the y position to 160 (41192).
39676 LD A,E Copy the frame flags to A.
39677 LD DE,39704 Point at the table of corner shapes (Bottom_Right_Corner_Table).
39680 BIT 3,A Jump to 39687 to clear the area if the corner is not present.
39682 JP Z,Clear_Panel
39684 SBC A,C
39685 PUSH HL Stash the position on the stack.
39686 EX DE,HL Exchange the registers so that HL holds the address of the table.
39687 BIT 4,A Jump to Draw_Bottom_Right_Corner_Check_Right_Wall if the floor is not present.
39689 JR Z,Draw_Bottom_Right_Corner_Check_Right_Wall
39691 INC HL Skip the shapes for a floor.
39692 INC HL
Draw_Bottom_Right_Corner_Check_Right_Wall 39693 BIT 2,A Jump to Draw_Bottom_Right_Corner_Draw_Shape if the right wall is not present.
39695 JR Z,Draw_Bottom_Right_Corner_Draw_Shape
39697 INC HL Skip the shapes for a right wall.
39698 INC HL
39699 INC HL
39700 INC HL
Draw_Bottom_Right_Corner_Draw_Shape 39701 JP Draw_Corner_Shape Jump to Draw_Corner_Shape to draw the shape.
Prev: 39664 Up: Map Next: 39704