RoomPart class | travel.t[4872]

Room Part - base class for "parts" of rooms, such as floors and walls. Room parts are unusual in a couple of ways.

First, room parts are frequently re-used widely throughout a game. We define a single instance of each of several parts that are found in typical rooms, and then re-use those instances in all rooms with those parts. For example, we define one "default floor" object, and then use that object in most or all rooms that have floors. We do this for efficiency, to avoid creating hundreds of essentially identical copies of the common parts.

Second, because room parts are designed to be re-used, things that are in or on the parts are actually represented in the containment model as being directly in their containing rooms. For example, an object that is said to be "on the floor" actually has its 'location' property set to its immediate room container, and the 'contents' list that contains the object is that of the room, not of the floor object. We must therefore override some of the normal handling for object locations within room parts, in order to make it appear (for the purposes of command input and descriptive messages) that the things are in/on their room parts, even though they're not really represented that way in the containment model.

`class RoomPart : Fixture`

Superclass Tree (in declaration order)

`RoomPart`
`Fixture`
`NonPortable`
`Thing`
`VocabObject`
`object`

Subclass Tree

`RoomPart`
`DefaultWall`
`Floor`

Global Objects

`defaultCeiling defaultSky`

Summary of Properties

`contentsLister descContentsLister lookInLister nothingBehindMsg nothingThroughMsg nothingUnderMsg sightSize specialContentsLister`

Inherited from `Fixture` :
`cannotMoveMsg cannotPutMsg cannotTakeMsg`

Inherited from `NonPortable` :
`bulk contentsListed isListed isListedInContents isListedInInventory weight`

Inherited from `Thing` :
`actorInAName actorInName actorInPrep actorIntoName actorOutOfName actorOutOfPrep aDisambigName allStates aName brightness canBeHeard canBeSeen canBeSmelled canBeTouched canMatchHer canMatchHim canMatchIt canMatchThem circularlyInMessage collectiveGroup collectiveGroups contents contentsListedInExamine contentsListedSeparately described disambigEquivName disambigName distantDesc distantInitSpecialDesc distantSpecialDesc distinguishers dummyName effectiveFollowLocation equivalenceKey equivalentGrouper equivalentGrouperClass equivalentGrouperTable esEndingPat explicitVisualSenseInfo getState globalParamName holdingIndex iesEndingPat initDesc initNominalRoomPartLocation initSpecialDesc inlineContentsLister isEquivalent isHer isHim isInInitState isKnown isLikelyCommandTarget isListedAboardVehicle isMassNoun isPlural isProperName isQualifiedName isThingConstructed isTopLevel listName listWith location moved name nameDoes nameSays nameSees notTravelReadyMsg objectNotifyList objInPrep obscuredInitSpecialDesc obscuredSpecialDesc owner patElevenEighteen patIsAlpha patLeadingTagOrQuote patOfPhrase patOneLetterAnWord patOneLetterWord patSingleApostropheS patTagOrQuoteChar patUpperOrDigit patVowelY pluralDisambigName pluralName pronounSelector roomDarkName roomLocation roomName seen sightPresence smellPresence smellSize soundPresence soundSize specialDesc specialDescBeforeContents specialDescListWith specialDescOrder specialNominalRoomPartLocation suppressAutoSeen takeFromNotInMessage theDisambigName theName theNamePossNoun tmpAmbient_ tmpAmbientFill_ tmpAmbientWithin_ tmpFillMedium_ tmpObstructor_ tmpObstructorWithin_ tmpPathIsIn_ tmpTrans_ tmpTransWithin_ touchPresence touchSize verbCan verbCannot verbCant verbEndingSD verbEndingSEd verbEndingSMessageBuilder_ verbMust verbToCome verbToDo verbToGo verbToLeave verbToSay verbToSee verbWill verbWont`

Inherited from `VocabObject` :
`canResolvePossessive disambigPromptOrder pluralOrder vocabLikelihood vocabWords weakTokens`

Summary of Methods

`dobjFor(Examine) dobjFor(LookIn) examinePartContents examineSpecialContents examineStatus filterResolveList getHitFallDestination hideFromAll hideFromDefault initializeThing isIn isObjListedInRoomPart moveIntoAdd moveOutOf`

Inherited from `Fixture` :
`dobjFor(Move) dobjFor(MoveTo) dobjFor(MoveWith) dobjFor(Pull) dobjFor(Push) dobjFor(PushTravel) dobjFor(PutBehind) dobjFor(PutIn) dobjFor(PutOn) dobjFor(PutUnder) dobjFor(Take) dobjFor(TakeFrom) dobjFor(ThrowAt) dobjFor(ThrowDir) isOwnedBy verifyMoveTo`

Inherited from `NonPortable` :
`contentsInFixedIn dobjFor(ShowTo) isHeldBy meetsObjHeld`

Inherited from `Thing` :
`acceptCommand addAllContents addDirectConnections addObjectNotifyItem addToContents addToSenseInfoTable adjustLookAroundTable adjustThrowDestination afterAction afterTravel allContents aNameFrom aNameObj aNameOwnerLoc announceDefaultObject appendHeldContents atmosphereList baseMoveInto basicExamine basicExamineFeel basicExamineListen basicExamineSmell basicExamineTaste beforeAction beforeTravel buildContainmentPaths cacheAmbientInfo cacheSenseInfo cacheSensePath canBeHeardBy canBeSeenBy canBeSensed canBeSmelledBy canBeTouchedBy canDetailsBeSensed canHear canMatchPronounType canMoveViaPath cannotGoShowExits cannotReachObject cannotSeeSmellSource cannotSeeSoundSource canOwn canSee canSmell canThrowViaPath canTouch canTouchViaPath checkActorOutOfNested checkBulkChange checkBulkChangeWithin checkMoveViaPath checkStagingLocation checkThrowViaPath checkTouchViaPath checkTravelerDirectlyInRoom childInName childInNameGen childInNameWithOwner childInRemoteName clearSenseInfo cloneForMultiInstanceContents cloneMultiInstanceContents conjugateRegularVerb connectionTable construct countDisambigName countListName countName countNameFrom countNameOwnerLoc darkRoomContentsLister defaultDistantDesc defaultObscuredDesc desc directionForConnector distantSmellDesc distantSoundDesc dobjFor(AskAbout) dobjFor(AskFor) dobjFor(AskVague) dobjFor(AttachTo) dobjFor(Attack) dobjFor(AttackWith) dobjFor(Board) dobjFor(Break) dobjFor(Burn) dobjFor(BurnWith) dobjFor(Clean) dobjFor(CleanWith) dobjFor(Climb) dobjFor(ClimbDown) dobjFor(ClimbUp) dobjFor(Close) dobjFor(Consult) dobjFor(ConsultAbout) dobjFor(CutWith) dobjFor(Detach) dobjFor(DetachFrom) dobjFor(Dig) dobjFor(DigWith) dobjFor(Doff) dobjFor(Drink) dobjFor(Drop) dobjFor(Eat) dobjFor(Enter) dobjFor(EnterOn) dobjFor(Extinguish) dobjFor(Fasten) dobjFor(FastenTo) dobjFor(Feel) dobjFor(Flip) dobjFor(Follow) dobjFor(GetOffOf) dobjFor(GetOutOf) dobjFor(GiveTo) dobjFor(GoThrough) dobjFor(JumpOff) dobjFor(JumpOver) dobjFor(Kiss) dobjFor(LieOn) dobjFor(Light) dobjFor(ListenTo) dobjFor(Lock) dobjFor(LockWith) dobjFor(LookBehind) dobjFor(LookThrough) dobjFor(LookUnder) dobjFor(Open) dobjFor(PlugIn) dobjFor(PlugInto) dobjFor(Pour) dobjFor(PourInto) dobjFor(PourOnto) dobjFor(Read) dobjFor(Remove) dobjFor(Screw) dobjFor(ScrewWith) dobjFor(Search) dobjFor(Set) dobjFor(SetTo) dobjFor(SitOn) dobjFor(Smell) dobjFor(StandOn) dobjFor(Strike) dobjFor(Switch) dobjFor(TalkTo) dobjFor(Taste) dobjFor(TellAbout) dobjFor(TellVague) dobjFor(Throw) dobjFor(ThrowTo) dobjFor(Turn) dobjFor(TurnOff) dobjFor(TurnOn) dobjFor(TurnTo) dobjFor(TurnWith) dobjFor(TypeLiteralOn) dobjFor(TypeOn) dobjFor(Unfasten) dobjFor(UnfastenFrom) dobjFor(Unlock) dobjFor(UnlockWith) dobjFor(Unplug) dobjFor(UnplugFrom) dobjFor(Unscrew) dobjFor(UnscrewWith) dobjFor(Wear) examineListContents examineListContentsWith failCheck feelDesc fillMedium findOpaqueObstructor findTouchObstructor forEachConnectedContainer forEachContainer fromPOV getAllForTakeFrom getAllPathsTo getAnnouncementDistinguisher getBagAffinities getBagsOfHolding getBestDistinguisher getBulk getBulkWithin getCarryingActor getCommonContainer getCommonDirectContainer getConnectedContainers getConnectorTo getContentsForExamine getDestName getDropDestination getEncumberingBulk getEncumberingWeight getExtraScopeItems getIdentityObject getInScopeDistinguisher getListedContents getLocPushTraveler getLocTraveler getMovePathTo getNoise getNominalDropDestination getNominalOwner getObjectNotifyList getOdor getOutermostRoom getOutermostVisibleRoom getRoomNotifyList getRoomPartLocation getStateWithInfo getStatuslineExitsHeight getThrowPathTo getTouchPathTo getTravelConnector getVisualSenseInfo getWeight hasCollectiveGroup initializeEquivalent initializeLocation inRoomName iobjFor(AttachTo) iobjFor(AttackWith) iobjFor(BurnWith) iobjFor(CleanWith) iobjFor(CutWith) iobjFor(DetachFrom) iobjFor(DigWith) iobjFor(FastenTo) iobjFor(GiveTo) iobjFor(LockWith) iobjFor(MoveWith) iobjFor(PlugInto) iobjFor(PourInto) iobjFor(PourOnto) iobjFor(PutBehind) iobjFor(PutIn) iobjFor(PutOn) iobjFor(PutUnder) iobjFor(ScrewWith) iobjFor(ShowTo) iobjFor(TakeFrom) iobjFor(ThrowAt) iobjFor(ThrowTo) iobjFor(TurnWith) iobjFor(UnfastenFrom) iobjFor(UnlockWith) iobjFor(UnplugFrom) iobjFor(UnscrewWith) isActorTravelReady isComponentOf isDirectlyIn isInFixedIn isListed isListedInContents isListedInInventory isListedInRoomPart isLookAroundCeiling isNominallyIn isNominallyInRoomPart isOccludedBy isOrIsIn isShipboard isVocabEquivalent itIs itNom itObj itPossAdj itPossNoun itVerb listCardinality localDirectionLinkForConnector lookAround lookAroundPov lookAroundWithin lookAroundWithinContents lookAroundWithinDesc lookAroundWithinName lookAroundWithinSense lookAroundWithinShowExits lookInDesc mainExamine mainMoveInto mapPushTravelHandlers mapPushTravelHandlers mapPushTravelHandlers mapPushTravelHandlers mapPushTravelHandlers mergeSenseInfo mergeSenseInfoTable moveInto moveIntoForTravel moveIntoNotifyPath mustMoveObjInto nameIs nameIsnt nameVerb normalizePath notePromptByOwnerLoc notePromptByPossAdj noteSeenBy notifyInsert notifyMoveInto notifyMoveViaPath notifyRemove obscuredDesc obscuredSmellDesc obscuredSoundDesc pluralNameFrom processThrow propHidesProp propWithPresent putInName receiveDrop remoteDesc remoteInitSpecialDesc remoteRoomContentsLister remoteSpecialDesc removeFromContents removeObjectNotifyItem restoreLocation roomActorThereDesc roomContentsLister roomDaemon roomDarkDesc roomDesc roomFirstDesc roomRemoteDesc roomTravelPreCond saveLocation selectPathTo sendNotifyInsert sendNotifyRemove senseAmbientMax senseInfoTable senseObj sensePathFromWithin sensePathFromWithout sensePathToContents sensePathToLoc sensePresenceList setAllSeenBy setContentsSeenBy setGlobalParamName setVisualSenseInfo shineFromWithin shineFromWithout shineOnContents shineOnLoc showDistantSpecialDesc showDistantSpecialDescInContents showInventoryContents showInventoryItem showInventoryItemCounted showListItem showListItemCounted showListItemCountedGen showListItemGen showObjectContents showObscuredSpecialDesc showObscuredSpecialDescInContents showRemoteSpecialDesc showRemoteSpecialDescInContents showSpecialDesc showSpecialDescInContents showSpecialDescInContentsWithInfo showSpecialDescWithInfo showStatuslineExits showWornItem showWornItemCounted smellDesc smellHereDesc soundDesc soundHereDesc specialDescList specialPathFrom statusName stopThrowViaPath superHidesSuper tasteDesc thatNom thatObj theNameFrom theNameObj theNameOwnerLoc theNameWithOwner throwTargetCatch throwTargetHitWith throwViaPath transmitAmbient transSensingIn transSensingOut traversePath tryHolding tryImplicitRemoveObstructor tryMovingObjInto useInitDesc useInitSpecialDesc useSpecialDesc useSpecialDescInContents useSpecialDescInRoom useSpecialDescInRoomPart verbEndingEs verbEndingIes verbEndingS verbToHave verbWas verifyFollowable verifyInsert verifyRemove whatIf whatIfHeldBy withVisualSenseInfo`

Inherited from `VocabObject` :
`addToDictionary expandPronounList getFacets inheritVocab initializeVocab initializeVocabWith matchName matchNameCommon matchNameDisambig throwNoMatchForLocation throwNoMatchForPossessive throwNothingInLocation`

Properties

`contentsLister` OVERRIDDEN | `travel.t[5107]`

our contents listers

`descContentsLister` OVERRIDDEN | `travel.t[5108]`

no description available

`lookInLister` OVERRIDDEN | `travel.t[5109]`

no description available

`nothingBehindMsg` | `travel.t[5128]`

no description available

`nothingThroughMsg` | `travel.t[5129]`

no description available

`nothingUnderMsg` | `travel.t[5127]`

we can't look behind/through/under a room part by default

`sightSize` OVERRIDDEN | `travel.t[4973]`

Since room parts are generally things like walls and floors that enclose the entire room, they're typically visually large, and tend to have fairly large-scale details (such as doors and windows). So, by default we set the sightSize to 'large' so that the details are visible at a distance.

`specialContentsLister` OVERRIDDEN | `travel.t[5110]`

no description available

Methods

`dobjFor(Examine)`OVERRIDDEN | `travel.t[4981]`

as with decorations, downgrade the likelihood for Examine, as the standard walls, floors, etc. are pretty much background noise that are just here in case someone wants to refer to them explicitly

`dobjFor(LookIn)`OVERRIDDEN | `travel.t[5113]`

look in/on: show our contents

`examinePartContents (listerProp)` | `travel.t[4998]`

show our contents

`examineSpecialContents ( )`OVERRIDDEN | `travel.t[5028]`

show our special contents - this shows objects with special descriptions that are specifically in this room part

`examineStatus ( )`OVERRIDDEN | `travel.t[4991]`

describe the status - shows the things that are in/on the part

`filterResolveList (lst, action, whichObj, np, requiredNum)`OVERRIDDEN | `travel.t[4937]`

When multiple room parts show up in a resolve list, and some of the parts are local to the actor's immediate location and others aren't, keep only the local ones. This helps avoid pointless ambiguity in cases where two (or more) top-level locations are linked with a sense connector, and one or the other location has custom room part objects.

`getHitFallDestination (thrownObj, path)`OVERRIDDEN | `travel.t[5052]`

Get the destination for a thrown object that hits me. Since we don't have a real location, we must ask the actor for our room part location, and then use its hit-and-fall destination.

`hideFromAll (action)`OVERRIDDEN | `travel.t[4924]`

Don't include room parts in 'all'. Room parts are so ubiquitous that we never want to assume that they're involved in a command except when it is specifically so stated.

`hideFromDefault (action)`OVERRIDDEN | `travel.t[4927]`

do allow use as a default, though

`initializeThing ( )`OVERRIDDEN | `travel.t[5135]`

initialization - add myself to my location's roomPart list if I have an explicit location

`isIn (loc)`OVERRIDDEN | `travel.t[5074]`

consider me to be in any room of which I'm a part

`isObjListedInRoomPart (obj)` | `travel.t[4882]`

When we explicitly examine a RoomPart, list any object that's nominally contained in the room part, as long it doesn't have a special description for the purposes of the room part. (If it does have a special description, then examining the room part will automatically display that special desc, so we don't want to include the object in a separate list of miscellaneous contents of the room part.)

`moveIntoAdd (room)` | `travel.t[4901]`

Add this room part to the given room.

Room parts don't have normal "location" properties. Instead, a room part explicitly appears in the "roomParts" list of each room that contains it. For the most part, room parts are static - they're initialized in the room definitions and never changed. However, if you need to dynamically add a room part to a room during the game, you can do so using this method.

`moveOutOf (room)` | `travel.t[4912]`

Remove this room part from the given room. This can be used if it's necessary to remove the room part dynamically from a room.

TADS 3 Library Manual
Generated on 5/16/2013 from TADS version 3.1.3