EnterSub (lines 1298-1340)
Back to List
Browsing verblibm.h
1298 ! Travelling around verbs
1299 ! ----------------------------------------------------------------------------
1300
1301 [ EnterSub ancestor j k;
1302 if (noun has door || noun in compass) <<Go noun>>;
1303
1304 if (player in noun) return L__M(##Enter,1,noun);
1305 if (noun hasnt enterable) return L__M(##Enter,2,noun);
1306 if (noun has container && noun hasnt open) return L__M(##Enter,3,noun);
1307
1308 if (parent(player) ~= parent(noun))
1309 { ancestor = CommonAncestor(player, noun);
1310 if (ancestor == player or 0) return L__M(##Enter,4,noun);
1311 while (player notin ancestor)
1312 { j = parent(player);
1313 k = keep_silent;
1314 if (parent(j) ~= ancestor || noun ~= ancestor)
1315 { L__M(##Enter,6,j);
1316 keep_silent = 1;
1317 }
1318 <Exit>;
1319 keep_silent = k;
1320 if (player in j) return;
1321 }
1322 if (player in noun) return;
1323 if (noun notin ancestor)
1324 { j = parent(noun);
1325 while (parent(j) ~= ancestor) j = parent(j);
1326 L__M(##Enter,7,j);
1327 k = keep_silent; keep_silent = 1;
1328 <Enter j>;
1329 keep_silent = k;
1330 if (player notin j) return;
1331 <<Enter noun>>;
1332 }
1333 }
1334
1335 move player to noun;
1336 if (AfterRoutines()==1) rtrue;
1337 if (keep_silent==1) rtrue;
1338 L__M(##Enter,5,noun);
1339 Locale(noun);
1340 ];
Last updated 27 February 2004.
This site is no longer supported; information may be out of date.
Maintained as a historical archive by the Interactive Fiction Technology Foundation.
Copyright 1993-2018 IFTF, CC-BY-SA unless otherwise noted.
This page was originally managed by Graham Nelson (graham@gnelson.demon.co.uk) assisted by C Knight.