X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=informqr%2Finformqr.md;h=6043d8d6c399592da856d6db01d92ecec23f575b;hb=773e2dd9d1f2150d4341b0f93774e6444507cacc;hp=490805c78ad3b363cad486536ac0a46135c637e5;hpb=35c3c337689ee792b9f708c5d3ace5d133736cf1;p=inform-resources.git diff --git a/informqr/informqr.md b/informqr/informqr.md index 490805c..6043d8d 100644 --- a/informqr/informqr.md +++ b/informqr/informqr.md @@ -348,7 +348,7 @@ A routine **embedded** as the value of an object property: statement; ] -Routines return a single value, when execution reaches the final "\]" +Routines return a single value, when execution reaches the final "]" or an explicit return statement: return expr; @@ -577,4 +577,103 @@ optional, depending on the action): To explicitly trigger a defined action, then return `true` from the current routine: - <>; \ No newline at end of file + <>; + +Other useful directives +----------------------- + +To include a directive within a routine definition [...], insert a +hash "#" as its first character. + +To conditionally compile: + + Ifdef name; ! use any one of these + Ifndef name; ! + Iftrue expr; ! + Iffalse expr; ! + ... + Ifnot; + ... + Endif; + +To display a compile-time message: + + Message "string"; + +To include the contents of a file, searching the Library path: + + Include "source_file"; + +To include the contents of a file in the same location as the current +file: + + Include ">source_file"; + +To specify that a library routine is to be replaced: + + Replace routine; + +To set the game's release number (default is 1), serial number +(default is today's *yymmdd*) and status line format (default is +`score`): + + Release expr; + Serial "yymmdd"; + Statusline score; + Statusline time; + +To declare a new attribute common to all objects: + + Attribute attribute ; + +To declare a new property common to all objects: + + Property property; + Property property expr; + +Uncommon and deprecated directives +---------------------------------- + +You're unlikely to need these; look them up if necessary. + + Abbreviate "string " "string " ... "string "; + End; + Import variable variable ... variable; + Link "compiled_file"; + Switches list_of_compiler_switches; + System_file; + +File structure +-------------- + +A minimal source file: + + Constant Story "MYGAME"; + Constant Headline "^My first Inform game.^"; + Constant MANUAL_PRONOUNS; + + Include "Parser"; + Include "VerbLib"; + + [ Initialise; location = study; "^Hello!^"; ]; + + Class Room + with description "A bare room." + has light; + + Class Furniture + with before [; Take,Pull,Push,Pushdir: + print_ret (The) self, + " is too heavy for that."; ] + has static supporter; + + Room study "Your study'; + + Furniture "writing desk" study + with name 'writing' 'desk' 'table'; + + Object -> -> axe "rusty axe" + with name 'rusty' 'blunt' 'axe' 'hatchet' + description "It seems old and blunt."; + + Include "Grammar"; \ No newline at end of file