A Platform is a NestedRoom that an actor can stand on (or also sit on or lie on, though standing on will normally be the most obvious). We'll add a museum lobby with both a carpet and a table that can be stood on:
museumLobby : Room 'Entrance Lobby' 'the entrance lobby'
"A welcoming sign next to the main museum entrance to the west declares:\n
<<museumSign.desc>>.\nOtherwise there's not much to this small lobby
apart from plain white walls, a battered old table, and a shabby carpet.
A brightly-lit corridor leads off to the east. "
east = brightCorridor
west = museum
;
+ museumSign : Readable, Fixture 'sign' 'sign'
"ABSOLUTELY NO ADMITTANCE\nTO THE MUSEUM\nWITHOUT A TICKET"
;
+ Platform, Heavy 'shabby old carpet' 'shabby old carpet'
"It may once have been red with a dark blue pattern - or perhaps
it was the other way round. "
;
+ batteredTable : Platform, Heavy 'battered old table' 'battered old table'
"This veteran table has clearly seen sterling service for decades,
but the poor old thing looks like it's coming up to retirement: it's
scratched, chipped, and generally battered, and one of the legs is
starting to look distinctly crooked. "
actionDobjStandOn
{
inherited;
"As you stand on the table it creaks alarmingly. ";
}
tableHere = (isIn(museumLobby) ? 'a battered old table, ' : '')
;
You'll also need to add west = museumLobby to the definition of brightCorridor.