| !\----------------------------------------------------------------------- | |
| Beta.h version 2.8, based on code written by Bert Byfield, updated by Mike | |
| Snyder, and turned into this by Jon Blask. | |
| This code has been integrated into Roodylib, so if you are using | |
| Roodylib, just | |
| functionality. This extension now just exists for non-Roodylib games. | |
| In that case, add this to your init routine before | |
| any text is printed: | |
| BetaInit | |
| That, combined with the replaced DoRestart routine, will reset the | |
| transcript_is_on property to true if the game is restarted while scripting. | |
| Suggestion- add the following line to the top of your newshell.hug file: | |
| ! | |
| After the inclusion of hugolib.h, add: | |
| Doing it that way will also let you do something like this: | |
| routine Version | |
| { | |
| color LIGHT_RED | |
| "\BGuilty Bastards\b" | |
| color TEXTCOLOR | |
| "Copyright (c) 1998 by Kent Tessman" | |
| print "\nRelease "; RELEASE; " "; serial$; | |
| " \B(beta-test version)\b" | |
| print newline | |
| "Written using the Hugo Compiler "; | |
| print HUGO_VERSION | |
| "\B(New players should type \"help\".)\b" | |
| "\n\B(NOTE: This beta release is intended for testing only, not for | |
| distribution to the general public. Please report any errors, | |
| bugs, etc. to the author.)\n\n | |
| To make a comment, type \"* COMMENT TEXT\" at the prompt.\b" | |
| "\n\B(Compiled with DEBUG set)\b" | |
| } | |
| -----------------------------------------------------------------------\! | |
| object betalib "beta" | |
| {} | |
| routine BetaInit | |
| { | |
| if word[10] = "beta" | |
| betalib is special | |
| else | |
| { | |
| BetaMessage(&BetaInit,1) ! Would you like to start a transcript? | |
| !: fancy pause stuff below | |
| local key | |
| if system_status or system(61) ! if simple port | |
| pause | |
| else | |
| { | |
| while true | |
| { | |
| key = system(11) ! READ_KEY | |
| if key | |
| { | |
| word[0] = key | |
| break | |
| } | |
| system(32) ! PAUSE_100TH_SECOND | |
| } | |
| } | |
| if word[0] = 'b','B' | |
| { | |
| if (not scripton) | |
| { | |
| "" | |
| BetaMessage(&DoScriptOnOff, 1, (betalib is special)) | |
| } | |
| !\ | |
| "Transcription is already on." | |
| or "Unable to begin transcription.", depending | |
| \! | |
| else | |
| { | |
| "" | |
| betalib is special | |
| BetaMessage(&DoScriptOnOff, 2) ! "Transcription on." | |
| } | |
| } | |
| else | |
| { | |
| "" | |
| BetaMessage(&BetaInit,2) ! "No transcript started." | |
| } | |
| "" | |
| BetaMessage(&BetaInit,3) ! "[press a key]" | |
| pause | |
| "\n" | |
| cls | |
| } | |
| } | |
| replace DoScriptOnOff | |
| { | |
| if word[2] = "on" or words = 1 | |
| { | |
| if betalib is special or (not scripton) | |
| BetaMessage(&DoScriptOnOff, 1, (betalib is special)) | |
| !\ | |
| "Transcription is already on." | |
| or "Unable to begin transcription.", depending | |
| \! | |
| else | |
| { | |
| betalib is special | |
| BetaMessage(&DoScriptOnOff, 2) ! "Transcription on." | |
| } | |
| } | |
| elseif word[2] = "off" | |
| { | |
| if betalib is not special or (not scriptoff) | |
| BetaMessage(&DoScriptOnOff, 3, (betalib is special)) | |
| !\ | |
| "Transcription is not currently on." | |
| or "Unable to end transcription.", depending | |
| \! | |
| else | |
| { | |
| betalib is not special | |
| BetaMessage(&DoScriptOnOff, 4) ! "Transcription off." | |
| } | |
| } | |
| } | |
| ! The NewParseError replacement routine has been changed for better | |
| ! coexisting with other NewParseError code if the game calls for it | |
| replace NewParseError(errornumber, obj) | |
| { | |
| ! changed some unnecessary string-matching code | |
| if word[1] = "*" | |
| { | |
| if betalib is special | |
| BetaMessage(&DoScriptOnOff, 5) ! Comment recorded! | |
| else | |
| BetaMessage(&DoScriptOnOff, 6) ! Comment not recorded! | |
| return true ! we'll just return true if someone tried to do a comment | |
| } | |
| select errornumber | |
| ! if you have code hijacking any other error messages, it'd go here: | |
| ! select errornumber | |
| ! case 1: (etc) | |
| case else : return false ! if a specific case was NOT mentioned, return | |
| ! false | |
| return true ! this line is only reached if an error message was replaced | |
| } | |
| ! We replace DoRestart so we can reset the transcript_is_on global to true if | |
| ! the game is restarted while scripting | |
| replace DoRestart | |
| { | |
| VMessage(&DoRestart, 1) ! "Are you sure?" | |
| GetInput | |
| if YesorNo = true | |
| { | |
| if betalib is special | |
| word[10] = "beta" | |
| if not restart | |
| VMessage(&DoRestart, 2) ! "Unable to restart." | |
| } | |
| } | |
| replace DoRestore | |
| { | |
| if betalib is special | |
| word[10] = "beta" | |
| if restore | |
| { | |
| if word[10] = "beta" | |
| betalib is special | |
| VMessage(&DoRestore, 1) ! "Restored." | |
| PrintStatusline | |
| DescribePlace(location, true) | |
| return true | |
| } | |
| else: VMessage(&DoRestore, 2) ! "Unable to restore." | |
| } | |
| routine BetaMessage(r, num, a, b) | |
| { | |
| if NewBetaMessages(r, num, a, b): return | |
| select r | |
| case &BetaInit | |
| { | |
| select num | |
| case 1 : "This is a beta release! If you'd like to start a transcript | |
| right away, press \"B\". Otherwise, push any other key to begin | |
| without starting a transcript." | |
| case 2 : "No transcript started." | |
| case 3 : print "[ press a key ]"; | |
| } | |
| case &DoScriptOnOff | |
| { | |
| select num | |
| case 1 | |
| { | |
| if a ! a = betalib.transcript_is_on | |
| print "Transcription is already on." | |
| else | |
| print "Unable to begin transcription." | |
| } | |
| case 2: print "Transcription on." | |
| case 3 | |
| { | |
| if not a ! a = betalib.transcript_is_on | |
| print "Transcription is not currently on." | |
| else | |
| print "Unable to end transcription." | |
| } | |
| case 4: print "Transcription off." | |
| case 5: print "Comment recorded!" | |
| case 6: print "Comment not recorded!" | |
| } | |
| } | |
| !\ The NewBetaMessages routine may be REPLACED and should return | |
| true if a replacement message exists for routine <r> \! | |
| routine NewBetaMessages(r, num, a, b) | |
| { | |
| return false | |
| } | |
Xet Storage Details
- Size:
- 5.74 kB
- Xet hash:
- e42336a8e8bd006bb7cf2b5dca4c2af9715ae46a53172b6c365ebe7284f86160
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.