! plback.h v1.1 Copyright 2003, 2004 Alexandre Muniz ! This file implements a "back" verb to allow the player to direct the ! PC to go back to the previous room that it had occupied. It requires ! Platypus, (a replacement for the standard Inform library.) ! How to use this: ! 1) Include this file after Last.h. ! 2) Add the following line to your GamePreRoutine(), or any ! convenient place that you are absolutely certain will occur before ! something can move the player: ! LastRoomCheck(); ! 3) You'll probably want to add a line for the back verb in your ! PrintVerb entry point routine, which might look something like this: ! [ PrintVerb word; ! switch (word) ! { ! 'b//', 'back': print "go back to your previous location"; rtrue; ! } ! rfalse; ! ]; ! Note: "Extend only" is somewhat broken in the Inform 6.21 ! compiler. You may wish to use the 6.30 compiler instead. However, the ! 6.30 compiler exposes other bugs in Platypus, which make strict mode ! unusable. I suggest applying the patch for Platypus I've made ! available at http://www.xprt.net/~munizao/games/platypus-tips.html Global thisroom; Global lastroom; [ LastRoomCheck; if (thisroom ~= player.location) { lastroom = thisroom; thisroom = player.location; } ]; [ GoBackSub; if ((~~lastroom) || (lastroom == player.location)) "It's not clear where you want to go."; else <>; ]; Extend 'go' first * 'back' -> GoBack; Extend only 'turn' * 'around'/'back' -> GoBack; Verb 'back' 'b//' 'return' 'retreat' 'backtrack' * -> GoBack;