Prev: 40169 Up: Map Next: 40208
40178: Process Character Action Parameter
Stores the room picture, and counts down while the object is not in the character's room. When the character holds it, stores a fresh delay once the counter has run out.
Input
HL Pointer to counter/state variable
C Room display parameter
DE (preserved on stack)
ProcessCharacterActionParameter 40178 LD A,C Call CheckObjectInCharacterLocation to check object in character location.
40179 LD (41012),A
40182 CALL CheckObjectInCharacterLocation
40185 JR Z,ProcessCharacterActionParameter_Next Jump ahead to ProcessCharacterActionParameter_Next when this character holds the object.
40187 DEC (HL) Jump to ProcessCharacterActionParameter_0 if the count does not become negative.
40188 JP P,ProcessCharacterActionParameter_0
40191 INC (HL) Count one more in the pointer.
ProcessCharacterActionParameter_0 40192 POP DE Restore DE from the stack.
40193 RET Return.
When the counter has run out, stores this character's attribute plus thirty.
ProcessCharacterActionParameter_Next 40194 LD A,(HL) Jump back to ProcessCharacterActionParameter_0 while this byte is not zero.
40195 AND A
40196 JR NZ,ProcessCharacterActionParameter_0
40198 LD A,15 Case, then call GetRandomNumber to take a random number.
40200 CALL GetRandomNumber
40203 ADD A,30 Advance the result by 30.
40205 LD (HL),A Store the result at the pointer.
40206 XOR A Clear A.
40207 RET Return.
Prev: 40169 Up: Map Next: 40208