Routines |
Prev: 53573 | Up: Map | Next: 53703 |
Used by the routine at 53498.
|
||||
53585 | LD DE,8 | Load DE with 8 (as data is 8 bytes long) | ||
53588 | LD HL,53955 | Point HL at start of characters' stat regeneration data table | ||
53591 | LD IX,25028 | Point IX at Gordon's current stats (2nd entry in characters' current stats table, as first is Magic Knight's) | ||
53595 | LD B,16 | Load B with 16 (16 characters) (see trivia) | ||
53597 | BIT 7,(IX+6) | If current character is awake... | ||
53601 | JR Z,53607 | ...then skip ahead to 53607 | ||
53603 | INC HL | Advance HL by four bytes to stat deterioration data... | ||
53604 | INC HL | ... | ||
53605 | INC HL | ... | ||
53606 | INC HL | ... | ||
53607 | LD C,(HL) | Load stat change value into C | ||
53608 | LD A,(IX+0) | Load current character's strength into A | ||
53611 | CALL 53703 | Update character's strength as they tire (awake) or regenerate (asleep)... | ||
53614 | LD (IX+0),A | ... | ||
53617 | INC HL | Advance HL to next (happiness) data | ||
53618 | LD C,(HL) | Load stat change value into C | ||
53619 | LD A,(IX+1) | Load current character's happiness into A | ||
53622 | CALL 53703 | Update character's happiness as they tire (awake) or regenerate (asleep)... | ||
53625 | LD (IX+1),A | ... | ||
53628 | INC HL | Advance HL to next (stamina) data | ||
53629 | LD C,(HL) | Load stat change value into C | ||
53630 | LD A,(IX+2) | Load current character's stamina into A | ||
53633 | CALL 53703 | Update character's stamina as they tire (awake) or regenerate (asleep)... | ||
53636 | LD (IX+2),A | ... | ||
53639 | INC HL | Advance HL to next (charisma) data | ||
53640 | LD C,(HL) | Load stat change value into C | ||
53641 | LD A,(IX+3) | Load current character's charisma into A | ||
53644 | CALL 53703 | Update character's charisma as they tire (awake) or regenerate (asleep)... | ||
53647 | LD (IX+3),A | ... | ||
53650 | INC HL | Advance HL to next block of data | ||
53651 | BIT 7,(IX+6) | If current character is asleep... | ||
53655 | JR NZ,53661 | ...then we have already moved into data for next character, so skip ahead to 53661 | ||
53657 | INC HL | Else, we are now in same character's "asleep" data, so need to advance HL by four bytes to get to next character's data... | ||
53658 | INC HL | ... | ||
53659 | INC HL | ... | ||
53660 | INC HL | ... | ||
53661 | ADD IX,DE | Advance IX by eight bytes to next character's stats | ||
53663 | DJNZ 53597 | Loop back to 53597 | ||
53665 | LD DE,8 | Load DE with 8 | ||
53668 | LD IX,25028 | Point IX to Gordon's current stats | ||
53672 | LD B,16 | Load B with 16 (16 characters) (see trivia) | ||
53674 | LD C,0 | Load C with zero (to denote first character, Gordon) | ||
53676 | LD A,(IX+2) | Load current character's stamina into A | ||
53679 | AND 127 | If stamina (bits 0-6) is not zero... | ||
53681 | JR NZ,53689 | ...then skip ahead to 53689 | ||
53683 | SET 7,(IX+6) | Else send character to sleep | ||
53687 | JR 53697 | Skip ahead to 53697 | ||
53689 | CP 100 | If stamina is not 100... | ||
53691 | JR NZ,53697 | ...then skip ahead to 53697 | ||
53693 | RES 7,(IX+6) | Else wake character up | ||
53697 | ADD IX,DE | Advance IX to next character's stats | ||
53699 | INC C | Increase C for next character | ||
53700 | DJNZ 53676 | Loop back to 53676 for next character | ||
53702 | RET | Return |
Prev: 53573 | Up: Map | Next: 53703 |