Message "[Including ]"; !----------------------Grammar Extensions and utility stuff----- Verb "xyzzy" "plugh" "plover" "yoho" "bunyon" ! So maybe I've left out a few * -> Xyzzy; [HelpSub; "Come on. It's a Stiffy Makane game. There's nothing difficult about it. If you're really a wuss, type ",(italics) "WALKTHROUGH","."; ]; [WinSub; Achieved(TASK_TERRI); Achieved(TASK_HOLODECK); Achieved(TASK_SPACEMOOSE); Achieved(TASK_KAAK); Achieved(TASK_BORG); deadflag = 2; "You won! Yay!"; ]; [WalkthroughSub; print "Do you really, really, really want to ruin the game for yourself with a walkthrough?^^Please answer yes or no.>"; if (YesOrNo() == false ) rtrue; print "^A minimal walkthrough, the only goal being as few keystrokes as possible:^^"; print "Y. N. Y. REMOVE UNIFORM. A. A. P. T. 1. 1. 3. T. 3. RUB TITS. KISS. FUCK. U. PRESS IT. REMOVE UNIFORM. W. S. GET. N. GET. E. E. GIVE ERASMATRON. GET MIMESIS. W. W. W. N. GIVE MIMESIS. S. S. GIVE MIMESIS. N. GIVE ORGASMATRON. RUB COCK. G. G. G. G. G. G. G. G. G. FUCK. D. D. F. T. 1. 3. T. 1. 1. T. 1. 1. RELAX. GET UP. P. F. F. T. 1. 2. T. 2. COMPUTER, SET COURSE FOR OLMAK. Z. Z. Z. Z. Z. RELAX. FUCK. SUCK. SUPPRESS GAG. Z. Z. Z. Z. T. 2. 1. 1. GET PILL. GET UP. P. F. F. T. 1. 1. 1. 1. A. A. A. EAT PILL. LIE ON BED. PRESS BUTTON. RUB COCK. FUCK.^^"; PressKey(); print "^^Or if that's too much trouble:^^"; print "WIN.^^"; PressKey(); "^^Wuss."; ]; [XyzzySub; if (PlayerIsNaked()) { print "You murmur the Ancient Word Of Power, and a Hollow Voice fellates you to orgasm.^"; penis.ejaculate(); ! Yeah, I'll fix this sometime. return; ! Or not. } "A Hollow Voice mutters, ~I don't do zippers.~"; ]; [Gag; if (scope_stage == 1) rfalse; PlaceInScope(gagreflex); rfalse; ]; Extend only "kiss" replace * noun -> Kiss; Extend "blow" replace * noun -> Blowjob; Verb "t" * 'to' creature -> TalkTo * 'to' noun -> TalkTo * noun -> TalkTo; Verb "undress" * -> Undress * noun -> Undress; Verb "suck" * noun -> Blowjob; Verb "lick" "eatout" "slurp" "chew" "bite" "munch" "tongue" * noun -> Kiss; Verb "clap" * 'hands' -> Clap * -> Clap; Verb "deep" * -> Cant * noun -> Cant * 'throat' noun -> Blowjob; Verb "walkthrough" * -> Walkthrough; Verb "help" * -> Help; Extend "talk" * noun -> TalkTo; Extend only "fuck" replace * noun -> Fuck; Extend only "screw" replace * noun -> Fuck; !Extend only "take" replace ! * animate -> Fuck; Verb "bone" "do" "rape" "dick" * noun -> Fuck; Verb "hotdoginabun" * noun -> Hotdoginabun; Verb "play" * 'with' noun -> Rub; Extend "touch" replace * noun -> Rub; Extend only "squeeze" replace * noun -> Rub; !Verb "finger" "fingerfuck" "honk" "jerk" "whack" ! * noun -> Rub; Verb "masturbate" * -> Masturbate; Verb "win" * -> Win; Verb "relax" * -> Relax; !Verb "gotomoose" ! * -> Moose; ! !Verb "gotokaak" ! * -> Kaak; ! !Verb "gotoborg" ! * -> Borg; Verb "suppress" * scope=Gag -> Suppress * -> FakeSuppress; Verb "praise" "admire" * noun -> Praise; [CantSub ; "That's not a verb I recognise."; ]; [BlowjobSub ; "How do you expect to blow ",(the) noun,"?"; ]; [FuckSub ; "Horny though you may be, you don't really want to fuck ", (the) noun, "."; ]; [HotdoginabunSub; "I see you are a true disciple of Stiffy Classic. Alas, that verb is no longer supported."; ]; [MasturbateSub; if (PlayerIsNaked()) <>; "You can't get to your stiffy with your clothes in the way."; ]; [RelaxSub; if ((real_location == darkroom) && (dark_moose in darkroom) && (dark_moose has general)) { give player general; "Oh well. Worse things happen at sea. Actually, isn't this what's meant by ~worse things?~ Ah well. Best not to think about it too carefully. You exhale slowly, letting your sphincter relax, and unknotting your neck and shoulders while you're at it."; } if ((location == arena) && (kaak.state == 1)) { give player general; "Summoning your Jedi powers, you relax your sphincter utterly. Foul intestinal gas rushes forth with a hollow ~woosh,~ causing K'aa'k to grimace fiercely. You could drive a truck up there now."; } "You feel pretty mellow already."; ]; [ClapSub; ! Thanks, Doe if (TestScope(mimesis,player) && (mimesis hasnt general)) "Nice try, but I'd like to get this perfectly clear: the mimesis is not Tinkerbell."; "You applaud wildly."; ]; [UndressSub x; ! Also, thanks, Doe if (noun ofclass StiffyActor) "Those characters who can be disrobed must be talked into it."; if (noun == nothing or player) { if (PlayerIsNaked()) "You're already undressed."; else { objectloop (x in player) if ((x has worn) && (x ~= tattoo)) <>; } } "I don't know how to undress ", (the) noun, "."; ]; [PraiseSub x; if (noun == nothing) "You bestow a beneficence upon the universe at large, Good on you, mate."; if (noun ofclass StiffyActor) <>; if (noun == player) "That certainly helped your self-esteem."; x = parent(noun); if (x == player) "Are we feeling insecure today?"; if (x ofclass StiffyActor) <>; "To praise something, ", (italics) "TALK TO"," its owner."; ]; ![MooseSub; ! Remove for release ! Achieved(TASK_TERRI); ! Achieved(TASK_HOLODECK); ! give terri_room general; ! give simulation general; ! scene = 2; ! PlayerTo(bridge); !]; ![KaakSub; ! Remove for release ! Achieved(TASK_TERRI); ! Achieved(TASK_HOLODECK); ! Achieved(TASK_SPACEMOOSE); ! give terri_room general; ! give simulation general; ! scene = 5; ! move rohypnol to nightstand; ! move fiver to nightstand; ! player.description = "You've become really buff since ! training with Space Moose"; ! player.picture = pic_tom; ! give uniform ~worn; ! move uniform to limbo; ! while (child(player)) { ! if (child(player) ~= penis) ! move child(player) to limbo; ! } ! DrawBigPic(arena); ! DrawObjectPic(kaak); ! DrawStiffyPic(pic_penis_greasy); ! back_mus = mus_klingon; ! PlaySound(gg_backchannel,mus_klingon,true); ! PlayerTo(arena); ! move kaak to arena; ! penis.setStatus(15); !]; ![BorgSub; ! Achieved(TASK_TERRI); ! Achieved(TASK_HOLODECK); ! Achieved(TASK_SPACEMOOSE); ! Achieved(TASK_KAAK); ! move tattoo to player; ! give tattoo worn; ! give terri_room general; ! give simulation general; ! scene = 6; ! move rohypnol to nightstand; ! move fiver to nightstand; ! player.description = "You've become really buff since ! training with Space Moose"; ! player.picture = pic_tom; ! give uniform worn; ! move uniform to player; ! move excretus to bridge; ! DrawObjectPic(excretus); ! PlayerTo(bridge); !]; [SuppressSub; if (noun ~= gagreflex) "How do you suppress ", (the) noun, "?"; if (scene < 4) "What are you, some kind of fag?"; if (scene == 4) "You aren't quite sure how."; if ((scene == 5) && (location == arena) && (kaak in arena) && (kaak.state == 4)) { give player open; kaak.counter = 0; "Summoning your strength, you remember the teachings of Space Moose, and will your throat to stop clenching. Your gag reflex has been suppressed."; } "There doesn't seem to be a need."; ]; [FakeSuppressSub; if (noun == nothing) "Suppress what?"; "I don't know how to suppress ", (the) noun, "."; ]; [DeathMessage; if (deadflag == 3) print "You have been ASSimilated"; ]; [PrintTaskName ach; ! What we get points for ! We use tasks_done to track real tasks, so "WIN" gives you fake ! scoring information switch (ach) { TASK_TERRI: if (tasks_done->TASK_TERRI) "Inappropriate abuse of your rank."; else "Helping an old lady across the street."; TASK_HOLODECK: if (tasks_done->TASK_HOLODECK) "Solving a lame puzzle."; else "Finding your deacon's spectacles."; TASK_SPACEMOOSE: if (tasks_done->TASK_SPACEMOOSE) "Being buttfucked by a moose (doesn't sound so romantic ",(italics)"now",", does it?)."; else "Posting the Ten Commandments in a classroom."; TASK_KAAK: if (tasks_done->TASK_KAAK) "Contributing to interstellar Interior Design."; else "Joining the Christian Coalition."; TASK_BORG: if (tasks_done->TASK_BORG) "Retargeting the Borg from pillage to fashion."; else "Denouncing Internet Pornographers as the true cause of the September 11 terrorist attacks."; } ]; [PrintRank; print ", earning you the rank of "; switch (score) { 0: "Greenhorn Starship Captain."; 1: "Lothario."; 2: "Smooth Operator."; 3: "Cabin Boy."; 4: "Jedi Phallus Master, First Class"; 5: "Tom of Finland."; } ]; [Amusing; back_mus = mus_porno; PlaySound(gg_backchannel,mus_porno,true); print "Well, really there aren't very many easter eggs in the code. Here are a few, though:^^ XYZZY.^^ Revisiting the Prairie to see Chris Crawford after you've given Espen Aarseth the Erasmatron.^^ Clapping to show you believe in the mimesis.^^ X ME, both before and after taking Space Moose to Olmak.^^ Waiting around after taking the roofies and never entering the biobed brain link.^^ Winning by typing WIN.^^ Looking at the FULL score after typing WIN.^^ ^^"; PressKey(); print "^^ Some other amusing things to look at:^^ http://www.spacemoose.com.^^ ",(italics)"Sins Against Mimesis",".^^ ",(italics)"Textfire Golf",".^^ The original Stiffy Makane and its MST3K version.^^ The Erasmatron and Shattertown Sky: http://www.erasmatazz.com and http://www.digitalnoir.com/sts/. I'm not making it up.^^ The introduction to Espen Aarseth's ",(italics) "Cybertext: Perspectives on Ergodic Literature", " from Johns Hopkins press. I ",(italics) "couldn't", " make that up.^^ Big Boy's Steel Erection, St. Louis, Missouri. Still there after all these years, and still good for a laugh. Give 'em a call at 314-731-4157. And if you take a look at http://bistatefabricators.homestead.com/affiliates.html, you will notice that there's also a ~Bull Moose Tube Company~ in the St. Louis area; call ",(italics) "them"," at 636-537-2600. Oh, sweet irony of life.^^ The Internet; sheesh, there are people with naked pictures of Klingons out there! Pictures of Sailor Jupiter naked! Pictures of people stretching their anuses grotesquely! I could never have done this game without the unwitting aid of these lunatics. No matter how unspeakable something is, someone, somewhere, has a web page devoted to it. And that's what makes the 'Net great.^^ Now on to the credits.^^"; PressKey(); ClearWindow(gg_mainwin); font off; print " STIFFY MAKANE: THE UNDISCOVERED COUNTRY^^^"; print "STARRING^^ Space Moose himself^ Stiffy Makane, pre-Jedi training Ron Jeremy^ Stiffy Makane, post-training Tom Of Finland Policeman^ Terri Barcelona Sailor Jupiter^ Chris Crawford himself^ Espen Aarseth himself^ Grandma Mara herself^ Hot Chick Leah the Realdoll^ Brandon Van Every himself^ ^and a cast of thousands, lifted from Web sites worldwide.^^"; font on; PressKey(); ClearWindow(gg_mainwin); print "ACKNOWLEDGEMENTS AND THANKS^^^"; print "^^First and foremost, thanks to Doe, who not only beta-tested this game, but whose library of glk-softeners, unglklib.h, was immensely useful.^^ Thanks to the rest of my beta-testers: Big Al, Michael Gentry, and David Cornelson.^^ Thanks to Adam Thrasher, creator of Space Moose, for giving me permission to use his creation.^^ Thanks to Zarf, both for trying this out on a Mac and for making Glulx Inform possible in the first place.^^ Graham Nelson, for Inform.^^ Mark Ryan, for Stiffy, the source of my inspiration. Dude, I really hope you met a nice girl and got laid. Honestly, I do.^^ Adam Cadre, who will probably stop citing me as a source of inspiration right about now, but who had to be repaid for ", (italics) "Textfire Golf", " somehow.^^ Matt Fendahleen, who knows why.^^ David Glasser, for phtalkoo.h.^^ Zarf (again), Torbjorn (Glulx Inform won't do umlauts yet, sorry) Andersson, and Adrian Chung, for helping me squeeze sound-with-notifications into xglk.^^ Matthew Gloag and Son, Ltd., makers of the Famous Grouse, without which this would not have been possible.^^ All of you who pestered me to stop talking about ",(boldface) "Stiffy Makane: The Undiscovered Country", " and actually write it. You know who you are, and aren't you ashamed now?^^"; print "And, finally, once more, Big Al, Klingon Cock Photographer extraordinaire.^^"; print "No Klingons were harmed in the making of this game. All scenes appearing to put Klingons in jeopardy were simulated.^^"; PressKey(); StopSound(gg_backchannel); back_mus = 0; "^^"; ]; [ InScope person; if ((person == player) && (location == thedark) && (real_location == darkroom) && (dark_moose in darkroom)) { PlaceInScope(dark_moose); ScopeWithin(dark_moose); if (moosecock in dark_moose) PlaceInScope(moosecock); } rfalse; ]; [ ChooseObjects obj code; if (code == INCLUDING) { ! object is being included in All if (obj ofclass Thingy or StiffyActor) return FORCE_EXCLUSION; } if (code < SCORING) rfalse; if (obj ofclass StiffyPenis) { ! Other penises are more likely to match than our own. if (obj == penis) return AGREE; return FORCE_INCLUSION; } ]; [ italics str; PrintTextStyle(1,str); ]; [ boldtext str; PrintTextStyle(3,str); ]; [ PressKey; print (italics) ""; KeyCharPrimitive(); ]; [PlayerIsNaked x; objectloop(x in player) { if ((x has worn) && (x ~= tattoo)) rfalse; } rtrue; ]; [DrawStiffyPic x; if (x) { DrawWinGraphic(gg_stiffywin,x); stiffy_pic = x; } else { ClearWindow(gg_stiffywin); stiffy_pic = null; } ]; [DrawObjectPic x; if (x && x.picture) { DrawWinGraphic(gg_objectwin,x.picture); object_pic = x.picture; object_obj = x; } else { ClearWindow(gg_objectwin); object_pic = NULL; object_obj = NULL; } ]; [DrawBigPic x; if (x && x.picture) { DrawWinGraphic(gg_graphicwin,x.picture); big_pic = x.picture; big_obj = x; } else { ClearWindow(gg_graphicwin); big_pic = NULL; big_obj = NULL; } ]; [DrawTitlePic x; if (x) { DrawWinGraphic(gg_titlewin,x); title_pic = x; } else { ClearWindow(gg_titlewin); title_pic = NULL; } ]; [ScrollTitlePic pic x y pic_width pic_height win_width win_height; if (gg_titlewin == 0) return; GetGraphicInfo(pic, gg_arguments, gg_arguments+WORDSIZE); pic_width = gg_arguments-->0; pic_height = gg_arguments-->1; GetWindowSize(gg_titlewin, gg_arguments, gg_arguments+WORDSIZE); win_width = gg_arguments-->0; win_height = gg_arguments-->1; x = (win_width - pic_width)/2; y = ((win_height - pic_height) * (titlescroll - 20))/(TITLE_FRAMES); if (gg_titlewin) { FloodFillWindow(gg_titlewin,$000000); glk_image_draw(gg_titlewin,pic,x,y); titlescroll++; if (titlescroll > TITLE_FRAMES) titlescroll = 0; } return; ]; [StiffyMovie x; switch(x) { WHOOPS: if (animate_count > pic_penis_spurt2) { animate_count = pic_penis_spurt1; now_showing = DETUMESCE; ! Go to detumescence } else { DrawStiffyPic(animate_count); if (animate_count == pic_penis_spurt1) PlaySound(gg_forechannel,snd_splort,0,1,1); animate_count++; } DETUMESCE: animate_count--; DrawStiffyPic(animate_count); if (animate_count < pic_penis_half) { now_showing = NULL; animate_count = 0; no_interrupt = 0; ! Turn off no_interrupt, set before ! calling WHOOPS } THROBBING: if (animate_count > pic_penis_throb) animate_count = pic_penis_greasy; DrawStiffyPic(animate_count); animate_count++; default: if (no_interrupt) return; animate_count = 0; } ]; [SetupWindows; if (gg_mainwin == 0) return; if (scene == -1) { ! Disclaimer return; } if (scene == 0) { ! Title Sequence if (gg_titlewin) CloseWindow(gg_titlewin); gg_titlewin = OpenGraphicWindow(gg_mainwin,2,0,90,GG_TITLEWIN_ROCK); ! gg_titletextwin = ! OpenTextWindow(gg_titlewin,3,0,10,GG_TITLETEXTWIN_ROCK); return; } if (gg_dialoguewin) CloseWindow(gg_dialoguewin); if (gg_stiffywin) CloseWindow(gg_stiffywin); if (gg_graphicwin) CloseWindow(gg_graphicwin); if (gg_objectwin) CloseWindow(gg_objectwin); gg_stiffywin = OpenGraphicWindow(gg_mainwin, 3, 0, 20, GG_STIFFYWIN_ROCK); gg_objectwin = OpenGraphicWindow(gg_mainwin, 1, 0, 25, GG_OBJECTWIN_ROCK); gg_dialoguewin = OpenTextWindow(gg_stiffywin, 0, 0, 90, GG_DIALOGUEWIN_ROCK); gg_graphicwin = OpenGraphicWindow(gg_objectwin, 2,0, 50, GG_GRAPHICWIN_ROCK); ChangeWindowBackColor(gg_stiffywin, $000000); SwitchWindow(gg_mainwin); ]; [DrawMyGraphics x y; ! SwitchWindow(gg_dialoguewin); ! print "GRAPHICS REDRAW!^"; ! print "Stiffy pic: ",stiffy_pic,"^"; ! print "big_pic: ",big_pic,"^"; ! print "object_pic: ",object_pic,"^"; ! SwitchWindow(gg_mainwin); if (scene == 0) { if (titlescroll) { ScrollTitlePic(pic_credits); return; } if (gg_titlewin) { if (title_pic) DrawWinGraphic(gg_titlewin,title_pic); else ClearWindow(gg_titlewin); } ! if (gg_titletextwin) ! ClearWindow(gg_titletextwin); return; } if (gg_stiffywin) { if (stiffy_pic) DrawWinGraphic(gg_stiffywin,stiffy_pic); else ClearWindow(gg_stiffywin); } if (gg_graphicwin) { if (big_pic) DrawWinGraphic(gg_graphicwin,big_pic); else ClearWindow(gg_graphicwin); } if (gg_objectwin) { if (object_pic) DrawWinGraphic(gg_objectwin,object_pic); else ClearWindow(gg_objectwin); } if (gg_dialoguewin) { SwitchWindow(gg_dialoguewin); ClearWindow(gg_dialoguewin); ! font off; if (interlocutor) { y = 0; for (x=0: x <= self.MAXQUIP: x++) { if (interlocutor.TestQuip(x)) { y++; print "[", y, "] "; interlocutor.SayQ(x); } } } SwitchWindow(gg_mainwin); ! font on; } if (location == thedark) { FloodFillWindow(gg_graphicwin,$000000); FloodFillWindow(gg_objectwin,$000000); } return; ];