Routines
Prev:
AEF0
Up:
Map
Next:
AF08
AEF7: Check Item From Item Group Present
Used by the routines at
Process_PreEnterFomoriansCavern
,
Process_PreEnterVarious
,
Process_ExamineHelmet
,
Process_ExamineSword
,
Process_ExamineAmulet
,
Process_ExamineBody
,
Process_ExamineTorc
,
Process_GetTorc
,
Process_GetHelmet
,
Process_GetSword
,
Process_GetMeat
,
Process_GetAmulet
,
Process_GetRope
,
Process_GetLadder
,
Process_GetCloak
,
Process_TakeAmuletFromDruid
,
Process_DropTorc
,
Process_DropHelmet
,
Process_DropSword
,
Process_DropRope
,
Process_DropLadder
,
Process_DropCloak
,
Process_TakeSwordFromSlab
,
Process_GiveHelmetToTrader
,
Process_GiveHelmetToGuardOrDruid
,
Process_FreeOx
,
Process_FreeRoman
,
Process_FreeHare
,
Process_FreeRope
,
Process_EnterIntoWater
,
Process_WearTorc
,
Process_WearHelmet
,
Process_WearAmulet
,
Process_DropAmulet
,
Process_WearCloak
,
Process_CaptureRoman
,
Process_PlaceLadderAgainstPlatform
,
Process_PlaceSwordOnSlab
,
IsPlayerCarryingSword
,
Process_KillRomanWithSword
,
Process_KillFomorian
,
Process_KillHareWithSword
and
Process_KillWarrior
.
Input
HL
Pointer to item group data
Output
A
The related item ID from the item group data which is present
F
Z flag is set when no items from the group are present
CheckItemGroupPresent
AEF7
JR
CheckItemGroupPresent_Process
Jump to
CheckItemGroupPresent_Process
.
CheckItemGroupPresent_Loop
AEF9
INC HL
Increment
HL
by one.
CheckItemGroupPresent_Process
AEFA
LD A,(HL)
Fetch an item ID from the item group data in *
HL
.
AEFB
CP $FF
Jump to
CheckItemGroupPresent_Return
if this is the terminator byte (FF).
AEFD
JR Z,
CheckItemGroupPresent_Return
AEFF
CALL
ValidateItemPresent
Call
ValidateItemPresent
.
AF02
JR NZ,
CheckItemGroupPresent_Loop
Jump back to
CheckItemGroupPresent_Loop
if the item is not present either in the room or in the players inventory, to evaluate the next item ID.
The current item ID is either in the current room or in the players inventory, so restore the value and return with it in
A
.
AF04
LD A,(HL)
A
=*
HL
.
AF05
RET
Return.
Got to the end and didn't locate the item anywhere.
CheckItemGroupPresent_Return
AF06
AND A
Set flags.
AF07
RET
Return.
Prev:
AEF0
Up:
Map
Next:
AF08