Prev: F16B Up: Map Next: F236
F19D: Action: Examine
Action_Examine F19D CALL Parser_ValidateDirectObject Call Parser_ValidateDirectObject.
F1A0 RET C Return if the direct object is malformed.
F1A1 CP $01 Jump to Response_OneAtATimePlease if A is not equal to 01.
F1A3 JP NZ,Response_OneAtATimePlease
Was the player trying to examine ... the bottle?
F1A6 LD HL,$E9CA Call MatchPhraseTokens with PhraseTokens_Bottle.
F1A9 CALL MatchPhraseTokens
F1AC JR NZ,Validate_Examine_Fish Jump to Validate_Examine_Fish if the token isn't for the bottle.
The player was trying to examine the bottle, but the bottle has "states" - before you examine it for the first time it's simply "A bottle" but after, it becomes "A bottle of rum"! So is it currently only "A bottle"?
F1AE LD HL,$E87A Call CheckActiveScenicEvents with Data_ItemGroup_Bottle_1.
F1B1 CALL CheckActiveScenicEvents
F1B4 CP $0B Jump to Validate_Examine_Fish if the bottle is not item 0B: "A bottle" (if it's already been declared to contain rum).
F1B6 JR NZ,Validate_Examine_Fish
Change the bottle state!
F1B8 LD BC,$0B0C Call TransformItem to transform item 0B ("A bottle") into item 0C ("A bottle of rum").
F1BB CALL TransformItem
Print "It's full of rum!".
F1BE LD HL,$DA73 HL=DA73.
F1C1 JP PrintStringAndNewline_Alias Jump to PrintStringAndNewline_Alias.
Was the player trying to examine ... the fish?
Validate_Examine_Fish F1C4 LD HL,$E9CC Call MatchPhraseTokens with PhraseTokens_Fish.
F1C7 CALL MatchPhraseTokens
F1CA JR NZ,Validate_Examine_Watch Jump to Validate_Examine_Watch if the token isn't for the fish.
The player was trying to examine the fish, it also has "states" similarly to the bottle. Before you examine it for the first time, it's simply "A strangely coloured fish" and afterwards it becomes "A red herring"!
F1CC LD A,$1B Call ValidateItemPresent with "A strangely coloured fish".
F1CE CALL ValidateItemPresent
F1D1 JR NZ,Validate_Examine_Watch Jump to Validate_Examine_Watch if "A strangely coloured fish" isn't in the current room or players inventory.
Change the fish state!
F1D3 LD BC,$1B1C Call TransformItem to transform item 1B ("A strangely coloured fish") into item 1C ("A red herring").
F1D6 CALL TransformItem
Print "It's a red herring!".
F1D9 LD HL,$DA85 HL=DA85.
F1DC JP PrintStringAndNewline_Alias Jump to PrintStringAndNewline_Alias.
Was the player trying to examine ... the watch?
Validate_Examine_Watch F1DF LD HL,$E9D1 Call MatchPhraseTokens with PhraseTokens_Watch.
F1E2 CALL MatchPhraseTokens
F1E5 JR NZ,Validate_Examine_Shoe Jump to Validate_Examine_Shoe if the token isn't for the watch.
Print "It appears to work.".
F1E7 LD HL,$DA99 HL=DA99.
F1EA JP PrintStringAndNewline_Alias Jump to PrintStringAndNewline_Alias.
Was the player trying to examine ... the shoe?
Validate_Examine_Shoe F1ED LD HL,$E9D3 Call MatchPhraseTokens with PhraseTokens_Shoe.
F1F0 CALL MatchPhraseTokens
F1F3 JR NZ,Validate_Examine_Rod Jump to Validate_Examine_Rod if the token isn't for the shoe.
Print "It is quite well made and in good condition.".
F1F5 LD HL,$DAAD HL=DAAD.
F1F8 JP PrintStringAndNewline_Alias Jump to PrintStringAndNewline_Alias.
Was the player trying to examine ... the rod?
Validate_Examine_Rod F1FB LD HL,$E9D5 Call MatchPhraseTokens with PhraseTokens_Rod.
F1FE CALL MatchPhraseTokens
F201 JR NZ,Validate_Examine_Fruit Jump to Validate_Examine_Fruit if the token isn't for the rod.
Print "It has a circular cross-section.".
F203 LD HL,$DADA HL=DADA.
F206 JP PrintStringAndNewline_Alias Jump to PrintStringAndNewline_Alias.
Was the player trying to examine ... the fruit?
Validate_Examine_Fruit F209 LD HL,$E9D7 Call MatchPhraseTokens with PhraseTokens_Fruit.
F20C CALL MatchPhraseTokens
F20F JR NZ,Validate_Examine_Bridge Jump to Validate_Examine_Bridge if the token isn't for the fruit.
Print "It looks delicious.".
F211 LD HL,$DAFB HL=DAFB.
F214 JP PrintStringAndNewline_Alias Jump to PrintStringAndNewline_Alias.
Was the player trying to examine ... the bridge?
Validate_Examine_Bridge F217 LD HL,$E9D9 Call MatchPhraseTokens with PhraseTokens_Bridge.
F21A CALL MatchPhraseTokens
F21D JR NZ,Validate_Examine_Jewels Jump to Validate_Examine_Jewels if the token isn't for the bridge.
Print "Be careful. It won't carry much weight.".
F21F LD HL,$DB0F HL=DB0F.
F222 JP PrintStringAndNewline_Alias Jump to PrintStringAndNewline_Alias.
Was the player trying to examine ... the jewels?
Validate_Examine_Jewels F225 LD HL,$E9DB Call MatchPhraseTokens with PhraseTokens_Jewels.
F228 CALL MatchPhraseTokens
F22B JR NZ,Examine_Invalid Jump to Examine_Invalid if the token isn't for the jewels.
Print "They are very beautiful and very heavy.".
F22D LD HL,$DB37 HL=DB37.
F230 JP PrintStringAndNewline_Alias Jump to PrintStringAndNewline_Alias.
Nothing else is valid.
Examine_Invalid F233 JP Response_IDontSeeThePoint Jump to Response_IDontSeeThePoint.
Prev: F16B Up: Map Next: F236