![]() |
Routines |
| Prev: 41652 | Up: Map | Next: 41916 |
|
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 |