| Alien (BUGFIX 1.7) | Routines |
| Prev: 33223 | Up: Map | Next: 33395 |
|
Walk handler for straight wall glyphs (126/127/132/133): a no-op, the walk keeps its current heading.
|
||||
| 33275 | RET | |||
|
ArmCornerTopLeft — walk handler for corner glyph 128, which joins a south-going edge to an east-going one: a walker heading north exits east; any other heading exits south.
|
||||
| 33276 | LD HL,(31244) | L = low byte of current heading | ||
| 33279 | LD A,L | |||
| 33280 | LD DE,32 | default: turn south | ||
| 33283 | LD HL,20 | (attr step 32, grid step 20) | ||
| 33286 | CP 224 | heading north (-32, low byte 224)? | ||
| 33288 | JR NZ,33296 | |||
| 33290 | LD DE,1 | yes: turn east | ||
| 33293 | LD HL,1 | (attr step 1, grid step 1) | ||
| 33296 | LD (31244),DE | store the new heading | ||
| 33300 | LD (31246),HL | |||
| 33303 | RET | |||
|
ArmCornerBottomLeft — corner glyph 129 joins a north-going edge to an east-going one: heading south exits east; otherwise exits north.
|
||||
| 33304 | LD HL,(31244) | L = low byte of current heading | ||
| 33307 | LD A,L | |||
| 33308 | LD DE,1 | default: turn east | ||
| 33311 | LD HL,1 | (attr step 1, grid step 1) | ||
| 33314 | CP 32 | heading south? | ||
| 33316 | JR Z,33324 | |||
| 33318 | LD DE,65504 | no: turn north (DE = -32, HL = -20) | ||
| 33321 | LD HL,65516 | |||
| 33324 | LD (31244),DE | store the new heading | ||
| 33328 | LD (31246),HL | |||
| 33331 | RET | |||
|
ArmCornerBottomRight — corner glyph 130 joins a west-going edge to a north-going one: heading east exits north; otherwise exits west.
|
||||
| 33332 | LD HL,(31244) | L = low byte of current heading | ||
| 33335 | LD A,L | |||
| 33336 | LD DE,65504 | default: turn north (DE = -32, HL = -20) | ||
| 33339 | LD HL,65516 | |||
| 33342 | CP 1 | heading east? | ||
| 33344 | JR Z,33352 | |||
| 33346 | LD DE,65535 | no: turn west | ||
| 33349 | LD HL,65535 | |||
| 33352 | LD (31244),DE | store the new heading | ||
| 33356 | LD (31246),HL | |||
| 33359 | RET | |||
|
ArmCornerTopRight — corner glyph 131 joins a west-going edge to a south-going one: heading east exits south; otherwise exits west.
|
||||
| 33360 | LD HL,(31244) | L = low byte of current heading | ||
| 33363 | LD A,L | |||
| 33364 | LD DE,32 | default: turn south | ||
| 33367 | LD HL,20 | (attr step 32, grid step 20) | ||
| 33370 | CP 1 | heading east? | ||
| 33372 | JR Z,33380 | |||
| 33374 | LD DE,65535 | no: turn west | ||
| 33377 | LD HL,65535 | |||
| 33380 | LD (31244),DE | store the new heading | ||
| 33384 | LD (31246),HL | |||
| 33387 | RET | |||
|
ArmEndNode — walk handler for the duct grille (125) and junction nodes (142/143): pops DrawDoorArm's looping return address, paints the node cell cyan and ends the walk.
|
||||
| 33388 | POP AF | drop the looping return address | ||
| 33389 | LD HL,(31255) | paint the node cell cyan | ||
| 33392 | LD (HL),5 | |||
| 33394 | RET | |||
| Prev: 33223 | Up: Map | Next: 33395 |