![]() |
Routines |
| Prev: 55188 | Up: Map | Next: 55347 |
|
Follows the previous routine at 55188.
|
||||
|
Check which (if any) spell, or spell type, has been cast/activated (rather than merely selected) - using spell number - from the spells list at 28156 and stored at 60140.
|
||||
| 55283 | LD A,(60140) | |||
| 55286 | CP 0 | No spell cast, or MOVE spell in effect | ||
| 55288 | JP Z,55553 | |||
| 55291 | CP 1 | SERVANT spell | ||
| 55293 | JR Z,55347 | |||
| 55295 | CP 8 | HAIL spell | ||
| 55297 | JP Z,55502 | |||
| 55300 | CP 12 | WAYSTONE spell | ||
| 55302 | JP Z,55509 | |||
| 55305 | CP 16 | FREEZE spell | ||
| 55307 | JP Z,55522 | |||
| 55310 | CP 17 | SUMMON spell | ||
| 55312 | JP Z,55529 | |||
| 55315 | CP 19 | PORTAL spell | ||
| 55317 | JP Z,55536 | |||
|
Maroc has cast some other spell:
|
||||
| 55320 | LD A,(60359) | Check the type of spell cast | ||
| 55323 | CP 2 | Spell type 2 = spell that generates a controllable graphic, e.g. SERVANT, MISSILE, OPEN | ||
| 55325 | JP NZ,55553 | If not one of these spell types, skip out of this routine for other checks | ||
|
Spell has been cast that involves a controllable cursor:
|
||||
| 55328 | LD A,(60362) | Get byte indicating spell cursor type | ||
| 55331 | CP 0 | If not active, can skip to next routine | ||
| 55333 | JP Z,55553 | |||
| 55336 | LD C,A | Otherwise, temp store this value in the C register | ||
| 55337 | AND 128 | Bit 7 of this byte is set for bolt spells (MISSILE, FIREBALL etc.) | ||
| 55339 | CP 0 | |||
| 55341 | JP Z,55474 | If NOT set, it's another sort of aiming cursor, so can jump out here and deal with this spell's potential event/collision actions | ||
| 55344 | JP 55553 | If set, it's a bolt/missile type spell, fine to jump out of this routine | ||
| Prev: 55188 | Up: Map | Next: 55347 |