Inform - Support - Source

Back to List

Inventory
Complete

Backward
Forward

Plain
Coloured
Gaudy

This code
in plain text

Browsing parserm.h

PrefaceByArticle (lines 6228-6285)

6228  [ PrefaceByArticle o acode pluralise capitalise  i artform findout artval;
6229      if (o provides articles) {
6230          artval=(o.&articles)-->(acode+short_name_case*LanguageCases);
6231          if (capitalise)
6232              print (Cap) artval, " ";
6233          else
6234              print (string) artval, " ";
6235          if (pluralise) return;
6236          print (PSN__) o; return;
6237      }
6238   
6239      i = GetGNAOfObject(o);
6240      if (pluralise) {
6241          if (i < 3 || (i >= 6 && i < 9)) i = i + 3;
6242      }
6243      i = LanguageGNAsToArticles-->i;
6244   
6245      artform = LanguageArticles
6246          + 3*WORDSIZE*LanguageContractionForms*(short_name_case + i*LanguageCases);
6247   
6248      #Iftrue (LanguageContractionForms == 2);
6249      if (artform-->acode ~= artform-->(acode+3)) findout = true;
6250      #Endif; ! LanguageContractionForms
6251      #Iftrue (LanguageContractionForms == 3);
6252      if (artform-->acode ~= artform-->(acode+3)) findout = true;
6253      if (artform-->(acode+3) ~= artform-->(acode+6)) findout = true;
6254      #Endif; ! LanguageContractionForms
6255      #Iftrue (LanguageContractionForms == 4);
6256      if (artform-->acode ~= artform-->(acode+3)) findout = true;
6257      if (artform-->(acode+3) ~= artform-->(acode+6)) findout = true;
6258      if (artform-->(acode+6) ~= artform-->(acode+9)) findout = true;
6259      #Endif; ! LanguageContractionForms
6260      #Iftrue (LanguageContractionForms > 4);
6261      findout = true;
6262      #Endif; ! LanguageContractionForms
6263   
6264      #Ifdef TARGET_ZCODE;
6265      if (standard_interpreter ~= 0 && findout) {
6266          StorageForShortName-->0 = 160;
6267          @output_stream 3 StorageForShortName;
6268          if (pluralise) print (number) pluralise; else print (PSN__) o;
6269          @output_stream -3;
6270          acode = acode + 3*LanguageContraction(StorageForShortName + 2);
6271      }
6272      #Ifnot; ! TARGET_GLULX
6273      if (findout) {
6274          if (pluralise)
6275              PrintAnyToArray(StorageForShortName, 160, EnglishNumber, pluralise);
6276          else
6277              PrintAnyToArray(StorageForShortName, 160, PSN__, o);
6278          acode = acode + 3*LanguageContraction(StorageForShortName);
6279      }
6280      #Endif; ! TARGET_
6281   
6282      Cap (artform-->acode, ~~capitalise); ! print article
6283      if (pluralise) return;
6284      print (PSN__) o;
6285  ];


Last updated 27 February 2004. This site is no longer supported; information may be out of date.
Maintained as a historical archive by the Interactive Fiction Technology Foundation. Copyright 1993-2018 IFTF, CC-BY-SA unless otherwise noted.
This page was originally managed by Graham Nelson assisted by C Knight.