!\---------------------------------------------------------------------------

       STRFNC.H V1.50 Demo by Jason Peter Brown
       for use with Hugo v2.4+ and STRFNC.H

---------------------------------------------------------------------------\!

! Uncomment the following to use a precompiled version of the Hugo Library:
#set PRECOMPILED_LIBRARY

! Uncomment the following to include the HugoFix Debugging Library:
! #set DEBUG

! Uncomment the following to include verb stub routines:
! #set VERBSTUBS

#include "grammar.g"                    ! grammar must come first

#ifset PRECOMPILED_LIBRARY
#link "hugolib.hlb"
#endif
#ifclear PRECOMPILED_LIBRARY
#include "hugolib.h"
#endif
#include "strfnc.h"

routine init
{
       counter = -1

       STATUSTYPE = 0                  ! score/turns
       TEXTCOLOR = DEF_FOREGROUND
       BGCOLOR = DEF_BACKGROUND
       SL_TEXTCOLOR = BRIGHT_WHITE
       SL_BGCOLOR = BLUE

       prompt = ">"
       color TEXTCOLOR, BGCOLOR

       cls
       print BANNER

       player = you                    ! player initialization
       location = emptyroom
       old_location = location

       move player to location
       FindLight(location)
       DescribePlace(location)
       location is visited
       CalculateHolding(player)

#ifset USE_PLURAL_OBJECTS
       InitPluralObjects
#endif
}

#ifset PRECOMPILED_LIBRARY
replace main
{
#endif
#ifclear PRECOMPILED_LIBRARY
routine main
{
#endif
local x
       PrintStatusLine

!!! DEMO CODE Begins

       print "\n\BThis is an example of the RIGHT$ routine:\b"
       print "Original string               : \"LeftMiddleRight\""
       print "Right$(\"LeftMiddleRight\",5)   : ";
       x = right$("LeftMiddleRight", 5)
       print "\"";stringprint(x);"\""
       print "\n[PRESS ANY KEY...]"
       pause
       print "\n\BThis is an example of the RIGHT$ routine with replace:\b"
       print "Original string                       : \"LeftMiddleRight\""
       print "Replacement string                    : \"*****\""
       print "Right$(\"LeftMiddleRight\",5,\"*****\")   : ";
       x = right$("LeftMiddleRight", 5, "*****")
       print "\"";stringprint(x);"\""
       print "\n[PRESS ANY KEY...]"
       pause
       print "\n\BThis is an example of the LEFT$ routine:\b"
       print "Original string               : \"LeftMiddleRight\""
       print "Left$(\"LeftMiddleRight\",4)    : ";
       x = left$("LeftMiddleRight", 4)
       print "\"";stringprint(x);"\""
       print "\n[PRESS ANY KEY...]"
       pause
       print "\n\BThis is an example of the LEFT$ routine with replace:\b"
       print "Original string                   : \"LeftMiddleRight\""
       print "Replacement string                : \"****\""
       print "Left$(\"LeftMiddleRight\",4,\"****\") : ";
       x = left$("LeftMiddleRight", 4, "****")
       print "\"";stringprint(x);"\""
       print "\n[PRESS ANY KEY...]"
       pause
       print "\n\BThis is an example of the MID$ routine:\b"
       print "Original string               : \"LeftMiddleRight\""
       print "Mid$(\"LeftMiddleRight\",4,6)   : ";
       x = mid$("LeftMiddleRight", 4, 6)
       print "\"";stringprint(x);"\""
       print "\n[PRESS ANY KEY...]"
       pause
       print "\n\BThis is an example of the MID$ routine with replace:\b"
       print "Original string                       : \"LeftMiddleRight\""
       print "Replacement String                    : \"******\""
       print "Mid$(\"LeftMiddleRight\",10,4,\"******\") : ";
       x = mid$("LeftMiddleRight", 4,6, "******")
       print "\"";stringprint(x);"\""
       print "\n[PRESS ANY KEY...]"
       pause
       print "\n\BThis is an example of the ADD$ routine:\b"
       print "First string                  : \"Hello, \""
       print "Second String                 : \"Goodbye.\""
       print "Add$(\"Hello, \",\"Goodbye.\")    : ";
       x = add$("Hello, ", "Goodbye.")
       print "\"";stringprint(x);"\""
       print "\n[PRESS ANY KEY...]"
       pause
       print "\n\BThis is an example of the SEARCH$ routine:\b"
       print "Source string                           : \"Sample Search String.\""
       print "Search string                           : \"a\""
       x = search$("Sample Search String.", "a")
       if not x
       {
        print "Search string not found."
       }
       else
       {
        print "Search text begins at position ";number (x);""
       }
       print "\n[PRESS ANY KEY...]"
       pause
       print "\n\BThis is an example of the SEARCH$ routine with offset:\b"
       print "Source string                           : \"Sample Search String.\""
       print "Search string                           : \"a\""
       print "Search offset                           : 5"
       x = search$("Sample Search String.", "a", 5)
       if not x
       {
        print "Search string not found."
       }
       else
       {
        print "Search text begins at position ";number (x);""
       }
       print "\n[PRESS ANY KEY...]"
       pause
       print "\n\BThis is an example of the PRINTCENTER() routine:\b"
       print "PrintCenter(string) :"
       PrintCenter("Centered Text.")
       print "\n[PRESS ANY KEY...]"
       pause
       print "\n\BThis is an example of the PRINTRIGHT() routine:\b"
       print "PrintRight(string) : "
       PrintRight("Right Justified Text.")
       print "\n[PRESS ANY KEY...]"
       pause
       "\IThis concludes the strfnc.h demo.\i"
       pause
       return true

!!! DEMO CODE Ends
}

character you "you"
{
       nouns "me", "myself"
       capacity 100
       long_desc {"Looking good."}
       is plural                       ! for matching first-person verbs
       is hidden                       ! for location descriptions
}

room emptyroom "[STRFNC.H] Seven New Hugo String Functions V1.5 by Jason Peter Brown."
{

}