Prev: 33223 Up: Map Next: 33589
33275: ArmStraight
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
33286 CP 224 heading north (-32, low byte 224)?
33288 JR NZ,33296
33290 LD DE,1 yes: turn east
33293 LD HL,1
33296 LD (31244),DE
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
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
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
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
33370 CP 1 heading east?
33372 JR Z,33380
33374 LD DE,65535 no: turn west
33377 LD HL,65535
33380 LD (31244),DE
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
33389 LD HL,(31255)
33392 LD (HL),5
33394 RET
33395 LD DE,12
33398 LD HL,22528
33401 LD C,19
33403 LD B,20
33405 LD (HL),0
33407 INC HL
33408 DJNZ 33405
33410 ADD HL,DE
33411 DEC C
33412 JR NZ,33403
33414 LD HL,26121
33417 CALL 31312
33420 RET
33421 LD A,(31242)
33424 AND 63
33426 LD L,A
33427 LD H,0
33429 PUSH HL
33430 ADD HL,HL
33431 ADD HL,HL
33432 POP DE
33433 ADD HL,DE
33434 LD DE,29346
33437 ADD HL,DE
33438 LD DE,29632
33441 LD B,4
33443 LD C,(HL)
33444 CP C
33445 JR Z,33457
33447 LD A,(31242)
33450 AND 63
33452 CP C
33453 JR Z,33457
33455 LD A,C
33456 LD (DE),A
33457 INC DE
33458 INC HL
33459 DJNZ 33443
33461 LD B,4
33463 LD HL,29632
33466 LD C,57
33468 LD A,(HL)
33469 CP 255
33471 JR Z,33474
33473 LD (HL),C
33474 INC C
33475 INC HL
33476 DJNZ 33468
33478 RET
This entry point is used by the routines at 31417 and 44815.
33479 LD HL,20576
33482 LD (31257),HL
33485 LD B,128
33487 PUSH BC
33488 XOR A
33489 CALL 31370
33492 LD HL,31257
33495 INC (HL)
33496 POP BC
33497 DJNZ 33487
33499 RET
33500 LD HL,23009
33503 LD DE,29
33506 LD C,3
33508 LD B,3
33510 LD (HL),57
33512 INC HL
33513 DJNZ 33510
33515 DEC C
33516 ADD HL,DE
33517 JR NZ,33508
33519 LD DE,72
33522 LD HL,30216
33525 LD A,(31241)
33528 DEC A
33529 JR Z,33535
33531 LD B,A
33532 ADD HL,DE
33533 DJNZ 33532
33535 EX DE,HL
33536 LD HL,18657
This entry point is used by the routine at 42821.
33539 LD (31257),HL
33542 LD B,3
33544 LD C,3
33546 PUSH BC
33547 LD HL,(31257)
33550 LD B,8
33552 LD A,(DE)
33553 LD (HL),A
33554 INC H
33555 INC DE
33556 DJNZ 33552
33558 LD HL,31257
33561 INC (HL)
33562 POP BC
33563 DEC C
33564 JR NZ,33546
33566 PUSH DE
33567 LD HL,(31257)
33570 LD DE,29
33573 LD A,L
33574 CP 224
33576 JR C,33581
33578 LD DE,1821
33581 ADD HL,DE
33582 LD (31257),HL
33585 POP DE
33586 DJNZ 33544
33588 RET
Prev: 33223 Up: Map Next: 33589