Prev: 41652 Up: Map Next: 41916
41730: Action: Burn
Burns the current object. Reached through the action table at ActionTable, dispatched by Turn_RunTheHandlerIfPresent.
Test whose turn it is.
ActionBurn 41730 LD A,(46826) Jump to ResponseThatWillNotWork if *CurrentCharacter is not 60.
41733 CP 60
41735 JP NZ,ResponseThatWillNotWork
If the message is held back, the object is not burned.
41738 CALL ConditionSuppressTheMessage Call ConditionSuppressTheMessage. If the message is held back, the object is not burned.
41741 JP Turn_ThePlayerHasDied Jump back to Turn_ThePlayerHasDied to test the current object.
If the message is held back, the river message is not printed.
Reached through the action list of 9 - "Fast Black River" for action 50, dispatched by TriggerAction.
41744 CALL ConditionSuppressTheMessage Call ConditionSuppressTheMessage. If the message is held back, the river message is not printed.
41747 LD HL,45236 Point HL at "as soon as you touch the river you fall asleep and gently float away".
Print the message at HL.
ActionBurn_Loop 41750 CALL PrintMessage Call PrintMessage to print message.
41753 LD A,(46826) Read *CurrentCharacter.
41756 PUSH AF See whether the character whose turn it is is zero.
41757 AND A
41758 LD HL,44457 Point HL at "Time passes.." in 44451.
41761 CALL Z,PrintMessage Call PrintMessage if it is the player's turn.
41764 POP AF Jump back to Turn_ThePlayerHasDied_0 to try the next object.
41765 JP Turn_ThePlayerHasDied_0
If the message is held back, the sleep message is not printed.
Reached through the action lists of 22 - "Black Water" and 24 - "Black Water" for action 33, dispatched by TriggerAction.
41768 CALL ConditionSuppressTheMessage Call ConditionSuppressTheMessage. If the message is held back, the sleep message is not printed.
41771 LD HL,45304 Point HL at "You fall asleep".
41774 JR ActionBurn_Loop Jump back to ActionBurn_Loop to print "You fall asleep".
Reached through the action list of 11 - "Mountains Side Door" for action 38, dispatched by TriggerAction.
41776 LD B,2 Use object 2.
41778 JR ActionBurn_TestTheSecondObject Jump to ActionBurn_TestTheSecondObject to test whether that object is the second object.
Reached through the action list of 8 - "Red Door" for actions 37 and 38, dispatched by TriggerAction.
41780 LD B,15 Use object 15.
41782 JR ActionBurn_TestTheSecondObject Jump to ActionBurn_TestTheSecondObject to test whether that object is the second object.
Reached through the action list of 1 - "Heavy Rock Door" for actions 37 and 38, dispatched by TriggerAction.
41784 LD B,4 Use object 4.
ActionBurn_TestTheSecondObject 41786 LD A,(46825) Read *46825.
41789 CP B Jump to ActionBurn_TestTheAction unless the second object is the one in B.
41790 JR NZ,ActionBurn_TestTheAction
Test the current action.
41792 LD A,(46823) Jump to Action_Lock to lock the object if *CurrentAction is 37.
41795 CP 37
41797 JP Z,Action_Lock
41800 JP Action_Unlock Jump to Action_Unlock to unlock the object.
ActionBurn_TestTheAction 41803 CP 2 Jump to ActionBurn_PrintDoesNotFit if the current action is 2.
41805 JR Z,ActionBurn_PrintDoesNotFit
41807 CP 4 Jump to ActionBurn_PrintDoesNotFit if the current action is 4.
41809 JR Z,ActionBurn_PrintDoesNotFit
41811 CP 15 Jump back to Response_ICannotDoThat if the current action is not 15.
41813 JP NZ,Response_ICannotDoThat
Say "[0x09] does not fit this lock".
Reached through the action list of 5 - "Round Green Door" for actions 37 and 38, and of 30 - "Trap Door" for action 38, dispatched by TriggerAction.
ActionBurn_PrintDoesNotFit 41816 LD HL,45101 Point HL at the message and call PrintMessage.
41819 JP PrintMessage
Reached through the action list of 11 - "Mountains Side Door" for action 0, dispatched by TriggerAction.
41822 CALL Turn_GateTheMessage Call Turn_GateTheMessage to let the message through or hold it back.
41825 LD IX,(46856) Read *46856.
41829 JP ActionOpenOrClose_0 Jump back to ActionOpenOrClose_0 to open the object.
Reached through the action list of 6 - "Small Insignificant Crack" for action 16, dispatched by TriggerAction.
41832 LD IX,(46860) Read *Pointer_CurrentCharacter.
41836 LD A,(IX+16) Read the location from the object record.
41839 CP 15 Jump back to ResponseThatWillNotWork if the object's location is not 15.
41841 JP NZ,ResponseThatWillNotWork
41844 JP ActionOpenOrClose Jump to ActionOpenOrClose to open or close.
Reached through the action list of 7 - "Spider Web" for action 0, dispatched by TriggerAction.
41847 LD IX,(46856) Read *46856.
41851 BIT 3,(IX+7) Return if the object is not broken.
41855 RET Z
41856 SET 5,(IX+7) Mark the object open.
41860 LD A,(51851) Store the object's location in the spider web script.
41863 LD (51852),A
Say "some spiders start mend(s|d|ing|es) the broken web".
41866 LD HL,45209 Point HL at the message and call PrintMessage.
41869 JP PrintMessage
Wear the ring: the character turns invisible and its strength is quartered.
If the message is held back, the ring is not put on.
Reached through the action list of 16 - "Valuable Golden Ring" for action 40, dispatched by TriggerAction.
41872 CALL ConditionSuppressTheMessage Call ConditionSuppressTheMessage. If the message is held back, the ring is not put on.
41875 LD IY,(46860) Read the character.
41879 LD IX,49946 Point IX at the ring.
41883 RES 7,(IY+7) Make the character invisible.
41887 SRL (IY+5) Halve the strength.
41891 SRL (IY+5) Halve the strength.
41895 RES 7,(IX+7) Hide the ring.
41899 LD A,(46826) Move the ring onto the character.
41902 LD (IX+1),A
41905 LD A,8 Roll a random number below 8.
Roll a random number.
41907 CALL GetRandomNumber Call GetRandomNumber to roll a number from the limit in A.
41910 ADD A,2 Add 2 to the roll.
41912 LD (51887),A Store the roll at 51887.
41915 RET Return.
Prev: 41652 Up: Map Next: 41916