Routines
Prev:
53796
Up:
Map
Next:
53833
53815: Fetch Object Data Pointer
Used by the routines at
ActionMoveMrsJones
,
PlaceCharacterBesideMatch
,
SetObjectHeldMark
,
ClearObjectHeldMark
,
CharacterAction_BasilPhipps
,
CheckObjectInCharacterLocation
,
ReadSherlocksDisguise
,
PointToObjectAttributeByte
,
UseObjectDisplayLink
,
InspectActionTakenFlag
,
ReadObjectAttribute_LooksObjectFolds
,
CheckObjectLocationMatch
,
GetObjectLocation
,
CheckObjectMother
,
GetObjectAttribute
,
GetObjectMotherID
,
TestObjectHasSpecialDescription
,
ProcessObjectAttribute_LookObjectRun
,
SetObjectPointers
,
ReadCharacterTimetable
,
ProcessCharacterDisplay_TestDisplayFlagEnd
,
DescribeCurrentRoom
,
LookUpObjectAndTestMovedMarker
,
GetObjectFirstLocation
,
PrintObjectDescription
,
PrintLocationExits
,
StoreMatchedCharacterRoom
,
DescribeObjectIfPresent
,
PrintObjectDescriptionText
,
SpecialCaseObject_LooksBasilPhipps
,
PlaceCharacter
,
ReadSourceDisplayPointer
,
LookUpCurrentObject
,
ScanObjects
and
UpdateObjectLocation
.
Looks up an object in the objects table and returns a pointer to it's data structure.
Input
A
Object ID
Output
IX
Pointer to object data
FetchObjectDataPointer
53815
LD IX,35695
Call
SearchThreeByteTable
to search three-byte length table.
53819
CALL
SearchThreeByteTable
This will be restored back into
HL
by the end of the routine.
53822
PUSH HL
Read the moved marker and read the location, saving pointer.
Pretty clever way of using the stack here.
53823
LD L,(IX+1)
53826
LD H,(IX+2)
53829
EX (SP),HL
Swap the *
SP
with the object pointer, restoring
HL
to the original value.
53830
POP IX
Restore the saved character record from the stack.
53832
RET
Return.
View the equivalent code in;
The Hobbit
Prev:
53796
Up:
Map
Next:
53833