![]() |
Routines |
Prev: F999 | Up: Map | Next: FA3C |
|
||||
Action_Drink | F9E4 | CALL Parser_ValidateDirectObject | Call Parser_ValidateDirectObject. | |
F9E7 | RET C | Return if the direct object is malformed. | ||
Was the player trying to drink the rum?
|
||||
F9E8 | LD HL,$EAB8 | Call MatchPhraseTokens with PhraseTokens_Rum. | ||
F9EB | CALL MatchPhraseTokens | |||
F9EE | JR NZ,Handler_DrinkWater | Jump to Handler_DrinkWater if the token isn't for the rum. | ||
The player was trying to drink the rum.
|
||||
F9F0 | LD HL,$E87A | Call CheckActiveScenicEvents with Data_ItemGroup_Bottle_1. | ||
F9F3 | CALL CheckActiveScenicEvents | |||
F9F6 | LD B,A | Load the bottle into B as the source item. | ||
F9F7 | LD C,$0D | Load item 0D: "A bottle" into C as the destination item. | ||
F9F9 | PUSH BC | Stash the source/ destination items on the stack briefly. | ||
Is the player either carrying the bottle of rum, or is it in the current room?
|
||||
F9FA | CALL CheckObjectInInventory | Call CheckObjectInInventory. | ||
F9FD | POP BC | Restore the source/ destination items from the stack. | ||
F9FE | JP NZ,Response_YoureNotCarryingIt | Jump to Response_YoureNotCarryingIt if the bottle of rum is not in the room or the players inventory. | ||
Change the bottle state!
|
||||
FA01 | CALL TransformItem | Call TransformItem. | ||
FA04 | LD HL,$BC66 | Set bit 2 of *Flag_TurnBasedEventState which relates to the player being drunk. | ||
FA07 | SET 2,(HL) | |||
Set a turn counter, which means the player should keep away from particularly high places.
|
||||
FA09 | LD A,$06 | Write 06 turns to *Counter_Drunk. | ||
FA0B | LD ($BC69),A | |||
Print "You drink the golden liquid.
It was delicious..hic..
You feel decidedly light-headed.".
|
||||
FA0E | LD HL,$E238 | HL=E238. | ||
FA11 | JP PrintStringAndNewline_Alias | Jump to PrintStringAndNewline_Alias. | ||
Handle drinking water.
|
||||
Handler_DrinkWater | FA14 | LD HL,$EABA | Call MatchPhraseTokens with PhraseTokens_Water. | |
FA17 | CALL MatchPhraseTokens | |||
FA1A | JR NZ,Drink_Invalid | Jump to Drink_Invalid if the token isn't for drinking the water. | ||
The player wants to drink water but determine what type of water...
|
||||
FA1C | LD A,($BCCB) | Load A with *CurrentRoom. | ||
FA1F | LD HL,$FA35 | Set HL to point to Table_RoomsFreshWater. | ||
FA22 | LD BC,$0004 | Set a counter in BC of 0004 which is the number of rooms in the table. | ||
FA25 | CPIR | Search for the current room in the "rooms with water" table. | ||
FA27 | JR Z,Action_DrinkFreshWater | Jump to Action_DrinkFreshWater if the current room contains fresh water. | ||
Else it must be salt water - so report this.
Print "You can't.
That's salt water.".
|
||||
FA29 | LD HL,$E28E | HL=Messaging_YouCantThatsSaltWater. | ||
FA2C | JP PrintStringAndNewline_Alias | Jump to PrintStringAndNewline_Alias. | ||
Print "You take a refreshing drink.".
|
||||
Action_DrinkFreshWater | FA2F | LD HL,$E2AC | HL=Messaging_YouTakeARefreshingDrink. | |
FA32 | JP PrintStringAndNewline_Alias | Jump to PrintStringAndNewline_Alias. | ||
Any room ID which contains fresh, drinkable water.
|
||||
Table_RoomsFreshWater | FA35 | DEFB $14 | Room 14: The Waterfall. | |
FA36 | DEFB $11 | Room 11: The Pool Of Water. | ||
FA37 | DEFB $12 | Room 12: The Narrow Gulley. | ||
FA38 | DEFB $64 | Room 64: The Damp Passage. | ||
Nothing else is valid.
|
||||
Drink_Invalid | FA39 | JP Response_YouCant_Duplicate | Jump to Response_YouCant_Duplicate. |
Prev: F999 | Up: Map | Next: FA3C |