Prev: 41958 Up: Map Next: 43859
42305: Action: ClimbOut
ActionClimbOut 42305 LD IY,(46860) IY=ptrCurObject.
42309 LD A,(46824) A=CurrentObject.
42312 CP (IY+1) If this is not a mother object (i.e. something to climb out of) jump to 40822.
42315 JP NZ,40822
42318 CALL LocateObject Call LocateObject.
42321 CALL ActionClimbOut_4 Call ActionClimbOut_4.
42324 JP Z,DisplayExits_3
42327 CALL 40260 Call 40260.
42330 LD (IY+1),255
42334 RET Return.
42335 LD IY,(46860)
42339 LD A,(46824)
42342 CP (IY+1)
42345 JP Z,40822
42348 LD IY,(46856)
42352 CALL 40500
42355 JP Z,40822
42358 LD A,(46824)
ActionClimbOut_0 42361 CALL LocateObject
42364 LD A,(IX+1)
42367 CP 255
42369 JR Z,ActionClimbOut_1
42371 LD A,(46826)
42374 CP (IX+1)
42377 LD A,(IX+1)
42380 JR NZ,ActionClimbOut_0
42382 LD IX,(46856)
42386 LD (IX+1),255
ActionClimbOut_1 42390 LD IY,(46860)
42394 LD A,(46826)
42397 CALL 40168
42400 ADD A,(IY+2)
42403 JR C,ActionClimbOut_2
42405 LD A,255
ActionClimbOut_2 42407 LD B,A
42408 LD IX,(46856)
42412 CALL ActionClimbOut_4
42415 JP Z,DisplayExits_3
42418 LD A,(IX+2)
42421 CP 255
42423 JR Z,ActionClimbOut_3
42425 SUB B
42426 LD HL,45374
42429 JP NC,PrintMsg
ActionClimbOut_3 42432 CALL 40260
42435 LD A,(46824)
42438 LD (IY+1),A
42441 RET
This entry point is used by the routines at Action_Dir, 37134 and Action_Examine.
ActionClimbOut_4 42442 BIT 5,(IX+7)
42446 LD A,5
42448 RET
42449 CALL 40260
42452 LD HL,50258
42455 LD A,(49451)
42458 CP (HL)
42459 RET NZ
42460 LD HL,45189 HL="the vicious warg run around you and howls.".
42463 JP 38900
42466 LD A,(46824)
42469 CP 19
42471 RET NZ
42472 CALL 38911
42475 LD IX,50158 IX="Barrel".
42479 LD A,(IX+16) A=location of the "Barrel".
42482 CP 33 Return if "Barrel" is not at location $21 - "Forestriver".
42484 RET NZ
42485 LD A,2
42487 LD (51845),A
42490 RET
42491 SUB A
42492 LD (46832),A
42495 LD A,(49436) A=player mother object.
42498 CP 19 Is the player inside object $13, i.e. using the "Barrel"?
42500 LD HL,45868 HL="you are thrown onto the bank of the long lake".
42503 CALL Z,PrintMsg If so, call PrintMsg.
42506 LD A,34
42508 LD (50174),A
42511 LD B,A
42512 LD A,19
42514 CALL 39901
42517 LD IX,50158 IX="Barrel".
42521 LD (IX+16),32 Update the location of the object to location $20 - "Elvenkings Cellar".
42525 RES 5,(IX+7)
42529 SET 2,(IX+7)
42533 SUB A
42534 LD (46850),A
42537 LD A,19
42539 CALL 40275
42542 LD A,1
42544 LD (46850),A
42547 LD IY,50200 IY=Object $14 - "Wine".
42551 LD (IY+16),32
42555 LD (IY+1),19
42559 RET Return.
42560 LD A,(46838)
42563 LD HL,46837
42566 CP (HL)
42567 RET NZ
42568 LD A,(49442)
42571 BIT 7,A
42573 RET NZ
42574 CALL 40260
42577 LD HL,45259 HL="where's the thief ?[0x16]".
42580 JP DisplayExits_14
42583 CALL 40260
42586 LD A,8
42588 CALL GetRandomNum
42591 CP 5
42593 RET NC
42594 CP 3
42596 LD HL,45300 HL="thorin wait.".
42599 JP NC,38900
42602 LD HL,45269 HL="get us out of this one, thief ![0x16]".
42605 JP Z,DisplayExits_14
42608 LD HL,45285 HL="thorin sit(s|d|ing|es) down and start(s|d|ing|es) sing(s|d|ing|es) about gold.".
42611 CP 0
42613 JP Z,38900
42616 LD HL,45147 HL="hurry up.".
42619 JP DisplayExits_14
42622 LD IX,(46860)
42626 LD A,(IX+16)
42629 CP 32
42631 LD HL,45339 HL="you cannot reach[0x07][0x15]".
42634 JP NZ,PrintMsg
42637 LD A,(46823)
42640 CP 12
42642 JP Z,37176
42645 JP 37134
42648 LD A,(49451)
42651 CP 39
42653 JR Z,ActionClimbOut_5
42655 CP 44
42657 JR Z,ActionClimbOut_5
42659 CP 41
42661 RET NZ
ActionClimbOut_5 42662 CALL 40260
42665 LD A,(49451)
42668 LD HL,49475
42671 CP (HL)
42672 RET Z
42673 LD (HL),A
42674 LD A,1
42676 LD (46850),A
42679 LD HL,49467
42682 PUSH HL
42683 LD HL,45079 HL="[0x00] enter(s|d|ing|es).[0x14]".
ActionClimbOut_6 42686 CALL PrintMsg
42689 RET
42690 LD A,(49451)
42693 LD HL,46838
42696 CP (HL)
42697 RET NZ
42698 CALL 40260
42701 LD A,(49442)
42704 AND 128
42706 LD HL,45438
42709 JR Z,ActionClimbOut_7
42711 LD HL,45405
ActionClimbOut_7 42714 JR ActionClimbOut_6
42716 LD A,(50653)
42719 CP 41
42721 RET Z
42722 LD A,(49451)
42725 CALL LocateLocation
42728 BIT 7,(IX+0)
42732 RET Z
42733 CALL 40260
42736 LD A,1
42738 LD (46850),A
42741 LD HL,45478
42744 LD A,100
42746 CALL GetRandomNum
42749 CP 80
42751 JR C,ActionClimbOut_6
42753 LD HL,45498
42756 CALL PrintMsg
42759 JP YouAreDead
42762 CALL 40741
42765 CP 255
42767 RET Z
42768 SUB A
42769 LD (IX+0),0
42773 LD (IX+1),0
42777 LD (IX+2),0
42781 RET
42782 CALL 40260
42785 LD IX,(46860)
42789 BIT 7,(IX+7)
42793 LD HL,45044
42796 JP NZ,PrintMsg
42799 LD A,(51879)
42802 LD (51880),A
42805 LD HL,45738
42808 JP PrintMsg
42811 LD HL,50105
42814 BIT 3,(HL)
42816 RET Z
42817 CALL 38911
42820 LD IX,49581
42824 SET 3,(IX+7)
42828 LD A,2
42830 CALL DisplayExits_6
42833 LD A,2
42835 LD IY,49435
42839 CALL 40485
42842 RET Z
42843 LD HL,45321
42846 JP PrintMsg
42849 LD A,(46826)
42852 CP 0
42854 JR NZ,ActionClimbOut_8
42856 LD A,(49436)
42859 LD HL,45339
42862 CP 255
42864 JP Z,PrintMsg
42867 JP 40822
ActionClimbOut_8 42870 LD A,(46823)
42873 CP 12
42875 JP Z,37176
42878 CP 16
42880 JP Z,37134
42883 RET
42884 LD A,(46826)
42887 CP 0
42889 JP NZ,ActionClimbOut_9
42892 LD A,(49436)
42895 CP 255
42897 LD HL,45339
42900 JP Z,PrintMsg
ActionClimbOut_9 42903 LD A,(46823)
42906 CP 30
42908 JP Z,Action_Dir_20
42911 CP 11
42913 JP Z,Action_Attack_17
42916 CP 24
42918 JP Z,Action_Dir_18
42921 RET
42922 LD A,(49451)
42925 CP 29
42927 JR NZ,ActionClimbOut_10
42929 SUB A
42930 LD (51873),A
ActionClimbOut_10 42933 LD HL,45395
42936 CALL PrintMsg
42939 LD A,(51873)
42942 CP 0
42944 RET NZ
42945 JP YouAreDead
42948 LD A,(46826)
42951 CP 65
42953 JP NZ,Action_Examine
42956 CALL 40260
42959 LD IY,0
42963 LD L,(IY+1)
42966 LD H,(IY+2)
42969 LD A,(46833)
42972 CP 0
42974 JR NZ,ActionClimbOut_12
42976 LD B,3
ActionClimbOut_11 42978 LD A,(IY+3)
42981 LD (HL),A
42982 INC HL
42983 INC IY
42985 DJNZ ActionClimbOut_11
42987 LD IY,(42961)
ActionClimbOut_12 42991 LD A,(IY+5)
42994 CALL LocateLocation
42997 INC IX
42999 INC IX
43001 PUSH IX
43003 LD A,(IY+0)
43006 CALL LocateLocation
43009 INC IX
43011 INC IX
43013 PUSH IX
43015 LD A,(IY+3)
43018 CALL 41146
43021 PUSH DE
43022 LD HL,45520
43025 JP DisplayExits_14
43028 LD A,(46825)
43031 CALL 40744
43034 CP 255
43036 JP Z,40822
43039 CALL 40260
43042 LD HL,44902
43045 CALL PrintMsg
43048 LD A,(50731)
43051 CP (IX+2)
43054 JR NZ,ActionClimbOut_14
43056 CALL ActionClimbOut_16
43059 JR C,ActionClimbOut_13
43061 LD HL,44918
43064 CALL ActionClimbOut_16
43067 JR C,ActionClimbOut_15
43069 LD HL,44930
43072 JR ActionClimbOut_15
ActionClimbOut_13 43074 LD A,18
43076 LD (50716),A
43079 LD HL,44939
43082 JR ActionClimbOut_15
ActionClimbOut_14 43084 LD HL,44918
43087 CALL ActionClimbOut_16
43090 JR C,ActionClimbOut_15
43092 LD A,(IX+2)
43095 LD IX,(46856)
43099 LD (IX+16),A
43102 LD (IX+1),255
43106 LD A,(46824)
43109 CALL 39901
43112 LD HL,44909
ActionClimbOut_15 43115 JP PrintMsg
ActionClimbOut_16 43118 LD A,100
43120 CALL GetRandomNum
43123 CP 50
43125 RET
43126 CALL 40260
43129 LD A,(50716)
43132 CP 18
43134 RET NZ
43135 LD HL,44946
ActionClimbOut_17 43138 CALL PrintMsg
43141 LD A,(50731)
43144 CP 66
43146 LD A,66
43148 JR NZ,ActionClimbOut_18
43150 LD A,67
ActionClimbOut_18 43152 LD (50731),A
43155 LD B,A
43156 LD A,255
43158 LD (50716),A
43161 LD A,41
43163 JP 39901
43166 CALL 38911
43169 LD A,(46826)
43172 AND A
43173 RET NZ
43174 LD HL,44964
43177 JR ActionClimbOut_17
43179 LD A,(46836)
43182 CP 1
43184 RET NZ
43185 SUB A
43186 LD (46836),A
43189 INC A
43190 CALL 32538
43193 RET Z
43194 SUB A
43195 LD (46843),A
43198 LD A,(46822)
43201 LD (51683),A
43204 LD BC,(46824)
43208 LD (51684),BC
43212 LD A,66
43214 LD (51682),A
43217 RET
43218 LD A,(50369)
43221 LD HL,46837
43224 CP (HL)
43225 RET NZ
43226 LD HL,49442
43229 BIT 7,(HL)
43231 RET Z
43232 CALL 40260
43235 LD HL,(46830)
43238 INC HL
43239 INC HL
43240 LD E,(HL)
43241 INC HL
43242 LD D,(HL)
43243 PUSH DE
43244 POP HL
43245 CALL DisplayExits_14
43248 LD A,1
43250 LD (46841),A
43253 RET
43254 CALL 40260
43257 SUB A
43258 LD (46841),A
43261 CALL 32538
43264 JR Z,ActionClimbOut_20
43266 LD BC,24
43269 LD DE,(46830)
43273 LD A,(DE)
ActionClimbOut_19 43274 CPIR
43276 JR NZ,ActionClimbOut_20
43278 INC DE
43279 LD A,(DE)
43280 DEC DE
43281 CP (HL)
43282 JR NZ,ActionClimbOut_19
43284 RET
ActionClimbOut_20 43285 CALL 40260
43288 LD A,1 Set NightDay to $01 (daytime).
43290 LD (46850),A
43293 LD HL,45531 HL="someone strangle(s|d|ing|es) you from behind".
43296 CALL PrintMsg Call PrintMsg.
43299 JP YouAreDead Jump to YouAreDead.
43302 LD A,(50369)
43305 LD HL,46837
43308 CP (HL)
43309 RET NZ
43310 CALL 40260
43313 LD HL,45785
43316 LD A,8
43318 CALL GetRandomNum
43321 JP NC,DisplayExits_14
43324 LD IX,49946
43328 LD A,68
43330 CP (IX+1)
43333 JP Z,DisplayExits_14
43336 LD HL,45799
43339 JP DisplayExits_14
43342 LD A,(46838)
43345 LD HL,46837
43348 CP (HL)
43349 RET NZ
43350 CALL 40260
43353 LD A,27
43355 LD (46823),A
43358 LD A,0
43360 LD (46824),A
43363 LD A,255
43365 LD (46825),A
43368 CALL 40822
43371 CALL Action_Attack_13
43374 JP YouAreDead
43377 CALL 40260 Call 40260.
43380 LD A,71 Call 38783 using object $47 - "Hideous Troll".
43382 CALL 38783
43385 LD A,72 Call 38783 using object $48 - "Vicious Troll".
43387 CALL 38783
43390 LD HL,50758 HL=attributes for $47 - "Hideous Troll".
43393 RES 7,(HL) Reset bit 7 of the attribute byte set to "Visible" = "No".
43395 LD HL,50776 HL=attributes for $48 - "Vicious Troll".
43398 RES 7,(HL) Reset bit 7 of the attribute byte set to "Visible" = "No".
43400 LD HL,45666 HL="in a clearing with two stone trolls.".
43403 LD (47812),HL Write HL to the empty location description for $05 - "Trolls Clearing".
43406 LD HL,47804 HL=Location $05 - "Trolls Clearing".
43409 RES 6,(HL) Reset bit 6 of the attribute byte.
43411 LD A,71 Call 40275 using object $47 - "Hideous Troll".
43413 CALL 40275
43416 LD A,72 Call 40275 using object $48 - "Vicious Troll".
43418 CALL 40275
43421 LD HL,45835 HL="day dawn(s|d|ing|es)".
43424 LD A,1 Set NightDay to $01 (daytime).
43426 LD (46850),A
43429 CALL PrintMsg Call PrintMsg.
43432 LD IX,52224 IX=LocGFXTable.
43436 LD A,5 Load the graphics data for 57666 "Trolls Clearing".
43438 CALL IndexIdTable
43441 LD L,(IX+1) HL=graphics data pointer.
43444 LD H,(IX+2)
43447 LD (HL),5 Change the paper colour to $05 (cyan).
43449 INC HL Increment the graphics data pointer by one.
43450 LD (HL),40 Change the ??? colour to $28 ().
43452 RET Return.
43453 LD A,(46837)
43456 CP 5
43458 RET NZ
43459 CALL 40260
43462 LD A,(46826)
43465 LD HL,45624 HL="blimey, look at this!! Can yer cook'em?[0x16]".
43468 CP 71
43470 JR Z,ActionClimbOut_21
43472 LD HL,45644 HL="yer can try, but he wouldn't make above a mouthfull.".
ActionClimbOut_21 43475 JP DisplayExits_14 Jump to DisplayExits_14.
This entry point is used by the routine at 38579.
ActionClimbOut_22 43478 LD A,(50638)
43481 CP 37
43483 RET NZ
43484 LD HL,46041 HL=46041.
43487 CALL PrintMsg Call PrintMsg.
43490 JP YouAreDead_WaitForKey Jump to YouAreDead_WaitForKey.
43493 LD A,(46838)
43496 LD HL,46837
43499 CP (HL)
43500 RET NZ
43501 LD IX,50787
43505 LD A,(IX+16)
43508 CP 0
43510 JR Z,ActionClimbOut_23
43512 LD A,65
43514 CP (IX+1)
43517 RET NZ
ActionClimbOut_23 43518 CALL 40260
43521 LD A,(46838)
43524 LD (IX+16),A
43527 LD (IX+1),65
43531 LD BC,38
43534 LD (46824),BC
43538 LD A,29
43540 LD (46823),A
43543 LD (46856),IX
43547 LD HL,49435
43550 LD (46858),HL
43553 CALL 40822
43556 JP Action_Give
43559 LD IY,(46856)
43563 LD A,(IY+16)
43566 LD B,A
43567 CALL 40749
43570 CP 255
43572 LD HL,45825
43575 JP Z,PrintMsg
43578 LD A,(IX+0)
43581 CP 10
43583 JP NZ,45825
43586 CALL 40260
43589 LD A,(46824)
43592 LD IX,(46860)
43596 LD (IX+1),A
43599 CALL 39901
43602 LD A,(46826)
43605 CP 0
43607 RET NZ
43608 LD A,B
43609 JP YouSeePreposition
43612 LD IX,49669
43616 RES 3,(IX+7)
43620 RES 5,(IX+7)
43624 SLA (IX+5)
43628 LD DE,1571
43631 LD (49679),DE
43635 RET
43636 LD HL,49852
43639 BIT 5,(HL)
43641 RET NZ
43642 LD A,(51907)
43645 LD (51908),A
43648 LD HL,49852
43651 RES 7,(HL)
43653 LD A,(49451)
43656 CP 42
43658 RET NZ
ActionClimbOut_24 43659 LD HL,45732 HL="the hole vanish(s|d|ing|es)[0x15]".
43662 JP PrintMsg Jump to PrintMsg.
43665 LD HL,49852 HL=attributes for object $0B - "Mountains Side Door".
43668 SET 7,(HL) Set bit 7 of the attribute byte to "Visible" = "Yes".
43670 LD A,(49451)
43673 CP 42
43675 RET NZ
43676 LD HL,45687 HL=45687.
43679 JP PrintMsg Jump to PrintMsg.
43682 CALL 38911
43685 LD A,6
43687 LD (51908),A
43690 LD HL,49852
43693 SET 0,(HL)
43695 RES 7,(HL)
43697 JR ActionClimbOut_24
43699 LD HL,50056
43702 SET 5,(HL)
43704 LD HL,45111 HL="the magic door open(s|d|ing|es).[0x14]".
43707 CALL ActionClimbOut_25
43710 LD HL,45331
43713 CALL ActionClimbOut_25
43716 JP ActionClimbOut_26
ActionClimbOut_25 43719 LD A,(49451)
43722 CP 30
43724 JP Z,PrintMsg
43727 CP 28
43729 JP Z,PrintMsg
43732 RET
43733 LD HL,50056
43736 RES 5,(HL)
43738 LD HL,45119 HL="the magic door close(s|d|ing|es).[0x14]".
43741 JP ActionClimbOut_25
ActionClimbOut_26 43744 LD IX,49946
43748 LD A,(IX+1)
43751 CP 255
43753 RET Z
43754 CALL LocateObject
43757 LD (46860),IX
43761 BIT 7,(IX+7)
43765 JP Z,ActionBurn_4
43768 RET
43769 LD A,(46826)
43772 CP 0
43774 RET NZ
43775 LD A,1
43777 LD (46848),A
43780 LD A,(51893)
43783 LD (51894),A
43786 RET
43787 SUB A
43788 LD (46848),A
43791 RET
43792 LD A,(49451)
43795 CP 26
43797 RET NZ
43798 LD HL,45309 HL="the spider web is slowly smothering you.".
43801 CALL PrintMsg Call PrintMsg.
43804 JP YouAreDead Jump to YouAreDead.
43807 LD HL,45841 HL="You see some pale bulbous eyes star(s|d|ing|es) at You[0x15]".
43810 CALL PrintMsg Call PrintMsg.
43813 LD A,(49451)
43816 LD C,A
43817 LD HL,46835
43820 CP (HL)
43821 RET Z
43822 LD B,(HL)
43823 LD A,2
43825 CP B
43826 JR NZ,ActionClimbOut_27
43828 LD A,3
ActionClimbOut_27 43830 CP C
43831 RET Z
43832 JR ActionClimbOut_29
43834 LD A,(49451)
43837 CP 2
43839 JR Z,ActionClimbOut_28
43841 CP 3
43843 RET NZ
ActionClimbOut_28 43844 LD HL,45841 HL="You see some pale bulbous eyes star(s|d|ing|es) at You[0x15]".
43847 CALL PrintMsg Call PrintMsg.
ActionClimbOut_29 43850 LD HL,45855 HL="some thing drop(s|d|ing|es) from above and sting(s|d|ing|es)[0x15]".
43853 CALL PrintMsg Call PrintMsg.
43856 JP YouAreDead Jump to YouAreDead.
Prev: 41958 Up: Map Next: 43859