| Routines

26910: Remove the speech bubble

Used by the routine at 27144. Sets the bits in the screen refresh buffer (SRB) that correspond to the the speech bubble and lip, so that they are removed (replaced by play area tiles) next time the display is updated.
26910 | PUSH HL |
26911 | CALL 26849 | Reset the bits in the SRB corresponding to speech bubble
26914 | LD L,248 | HL=32760, which holds the LSB of the SRB address corresponding to the lip of the speech bubble (if any); pick this up in A
26916 | LD A,(HL)
26917 | AND A | Is the speech bubble on-screen?
26918 | JR Z,26939 | Jump if not
26920 | LD (HL),0 | Signal: no one's talking now
26922 | LD L,A | HL points to the SRB byte corresponding to the lip of the speech bubble
26923 | LD A,(32761) | The bit set in A is the bit of that SRB byte that corresponds to the lip's location
26926 | OR (HL) | Update the speech bubble lip SRB byte with this bit set (forcing a refresh of the screen where the lip is)
26927 | LD (HL),A
26928 | LD A,L | Update the SRB for where the bottom line of the speech bubble is
26929 | ADD A,252
26931 | LD L,A
26932 | LD (HL),255
26934 | ADD A,252 | Update the SRB for where the top line of the speech bubble is
26936 | LD L,A
26937 | LD (HL),255
26939 | POP HL |
26940 | RET |