Prev: 31804 Up: Map Next: 31904
31842: Execute current character's help routine if possible
Used by the routine at 31636.
31842 CALL 34350 Check if Current Character is asleep and display "[CHARACTER] IS ASLEEP" window if so
31845 LD A,32 Set last character of "[CHARACTER] CANNOT HELP YOU..." text to a space (32)...
31847 LD (46710),A ...
31850 LD A,(30615) Load A with index of Current Character
31853 CP 7 If character is 7 (Banshee)...
31855 JR Z,31888 ...jump ahead to 31888 (overriding following section, as Banshee always has zero strength)
31857 LD E,0 Point HL at strength...
31859 CALL 34174 ...of character whose index is A
31862 PUSH HL Switch pointer from HL to IX...
31863 POP IX ...
31865 LD A,(IX+5) Load A with character's can-help flag
31868 OR A If can-help flag is reset...
31869 JP Z,34514 ...then display "[CHARACTER] CANNOT HELP YOU" window and return to game
31872 LD A,(IX+2) Load A with stamina of Current Character...
31875 CP 10 ...and if this is anything up to 20...
31877 JP C,34520 ...then display "[CHARACTER] IS TOO TIRED TO HELP YOU" window and exit
31880 LD A,(IX+1) Load A with the happiness of Current Character...
31883 CP 10 ...and if this is anything up to 10...
31885 JP C,34490 ...then display "[CHARACTER] DOES NOT WANT TO BE COMMANDED BY YOU" window and exit
31888 LD A,(30615) Load DE with double the index of the Current Character...
31891 ADD A,A ...
31892 LD E,A ...
31893 LD D,0 ...
31895 LD HL,31904 Point HL at table of help routine addresses
31898 ADD HL,DE ...and add double the character index to get specific entry for that character
31899 LD A,(HL) Load the routine's address into HL...
31900 INC HL ...
31901 LD H,(HL) ...
31902 LD L,A ...
31903 JP (HL) ...and jump to it
Prev: 31804 Up: Map Next: 31904