![]() |
Routines |
| Prev: CC37 | Up: Map | Next: CCCD |
|
This sets the pursue flag for all visible, hostile characters (who aren't in up in towers).
Research: If I nop this out then guards don't spot the items I drop. Iterate non-player characters.
Used by the routines at automatics, guards_follow_suspicious_character, is_item_discoverable and event_roll_call.
|
||||
| hostiles_pursue | CCAB | LD HL,$8020 | Point HL at the second vischar | |
| CCAE | LD DE,$0020 | Prepare the vischar stride | ||
| CCB1 | LD B,$07 | Set B for seven iterations | ||
|
Start loop
|
||||
| hp_loop | CCB3 | PUSH HL | Preserve the vischar pointer | |
| CCB4 | LD A,(HL) | Fetch vischar.character | ||
|
Include hostiles only.
|
||||
| CCB5 | CP $14 | Is it character_20_PRISONER_1 or above? | ||
| CCB7 | JR NC,hp_next | Jump if so | ||
|
Exclude the guards placed high up in towers and over the gate.
|
||||
| CCB9 | LD A,$13 | Point HL at vischar.mi.pos.height | ||
| CCBB | ADD A,L | |||
| CCBC | LD L,A | |||
| CCBD | LD A,(HL) | Fetch vischar.mi.pos.height | ||
| CCBE | CP $20 | Is it 32 or above? | ||
| CCC0 | JR NC,hp_next | Jump if so | ||
| CCC2 | LD A,L | Point HL at vischar.flags | ||
| CCC3 | SUB $12 | |||
| CCC5 | LD L,A | |||
| CCC6 | LD (HL),$01 | Set vischar.flags to vischar_PURSUIT_PURSUE | ||
| hp_next | CCC8 | POP HL | Restore the vischar pointer | |
| CCC9 | ADD HL,DE | Advance the vischar pointer | ||
| CCCA | DJNZ hp_loop | ...loop | ||
| CCCC | RET | Return | ||
| Prev: CC37 | Up: Map | Next: CCCD |