Routines |
Prev: 43302 | Up: Map | Next: 43428 |
Used by the routine at 64623.
|
||||
43318 | CALL 45552 | Display "[Character] IS ASLEEP" window and jump to main game loop if Current Character is asleep, else return here and continue | ||
43321 | LD A,(41937) | Load A with index of Current Character | ||
43324 | LD E,0 | Point HL at character's current strength... | ||
43326 | CALL 45406 | ... | ||
43329 | PUSH HL | Transfer address from HL... | ||
43330 | POP IX | ...into IX | ||
43332 | LD A,(IX+6) | Load A with character's food level stripping out asleep flag... | ||
43335 | AND 127 | ...and set zero flag if food level is zero | ||
43337 | LD HL,52788 | Point HL at "[Current Character's short name] HAS NO FOOD LEFT" text | ||
43340 | JP Z,64313 | If zero flag is set then display "[Character] HAS NO FOOD LEFT" window (29) and return to game | ||
43343 | LD A,(IX+2) | If character's stamina is less than 20... | ||
43346 | CP 20 | ...then set carry flag | ||
43348 | LD HL,52804 | Point HL at "[Current Character's short name] IS TOO TIRED TO EAT OR DRINK" text | ||
43351 | JP C,64313 | If carry flag is set then display "[Character] IS TOO TIRED TO EAT OR DRINK" window (29) and return to game | ||
43354 | LD A,(IX+1) | If character's happiness is less than 30... | ||
43357 | CP 30 | ... | ||
43359 | JP C,64280 | ...then display "[Character] DOES NOT WANT TO BE COMMANDED BY YOU" window (29) and return to game | ||
43362 | LD A,(IX+6) | Load A with character's asleep flag... | ||
43365 | AND 128 | ... | ||
43367 | LD (43407),A | ...and store in operand of instruction at 43406 | ||
43370 | RES 7,(IX+6) | Reset character's asleep flag | ||
43374 | LD A,(IX+0) | Load A with character's unused flag... | ||
43377 | AND 128 | ... | ||
43379 | LD (43415),A | ...and store in operand of instruction at 43414 | ||
43382 | RES 7,(IX+0) | Reset character's unused flag | ||
43386 | LD A,(IX+0) | If character's strength is 100... | ||
43389 | CP 100 | ... | ||
43391 | JP Z,43406 | ...then skip ahead to 43406 | ||
43394 | DEC (IX+6) | Decrease character's food level by one | ||
43397 | INC (IX+0) | Increase character's strength by one | ||
43400 | LD A,(IX+6) | If character's food level is not zero... | ||
43403 | OR A | ... | ||
43404 | JR NZ,43386 | ...then loop back to 43386 | ||
The operand of the instruction at 43406 represents the character's asleep flag (128 for asleep or 0 for awake). This is modified by the instruction at 43367.
|
||||
43406 | LD A,0 | Load A with asleep flag value... | ||
43408 | OR (IX+6) | ...merge with food level... | ||
43411 | LD (IX+6),A | ...and store | ||
43414 | LD A,0 | Load A with unused flag value... | ||
43416 | OR (IX+0) | ...merge with strength... | ||
43419 | LD (IX+0),A | ...and store | ||
43422 | LD HL,52817 | Point HL at "[Current Character's short name] HAS TAKEN REFRESHMENT" text | ||
43425 | JP 64313 | Display "[Character] HAS TAKEN REFRESHMENT" window (29) and return to game |
Prev: 43302 | Up: Map | Next: 43428 |