Modified to not print out the version of Inform and the version of the
standard library in use in the game's banner. Also relicensed to AGPL
per Section 4(c)(ii) of the Artistic License 2.0.
! ==============================================================================
! ENGLISH: Language Definition File
!
! ==============================================================================
! ENGLISH: Language Definition File
!
-! Supplied for use with Inform 6 -- Release 6.12.5 -- Serial number 210605
+! Supplied for use with Inform 6 -- Release 6.12.6 -- Serial number 220219
-! Copyright Graham Nelson 1993-2004 and David Griffith 2012-2021
+! Copyright Graham Nelson 1993-2004 and David Griffith 2012-2022
!
! This file is free software: you can redistribute it and/or modify
! it under the terms of the GNU Affero General Public License as
!
! This file is free software: you can redistribute it and/or modify
! it under the terms of the GNU Affero General Public License as
print " ";
5: print "^Would you like to RESTART, RESTORE a saved game";
#Ifdef DEATH_MENTION_UNDO;
print " ";
5: print "^Would you like to RESTART, RESTORE a saved game";
#Ifdef DEATH_MENTION_UNDO;
- print ", UNDO your last move";
+ if (undo_flag ~= 0)
+ print ", UNDO your last move";
#Endif;
if (TASKS_PROVIDED == 0) print ", give the FULL score for that game";
if (deadflag == 2 && AMUSING_PROVIDED == 0)
#Endif;
if (TASKS_PROVIDED == 0) print ", give the FULL score for that game";
if (deadflag == 2 && AMUSING_PROVIDED == 0)
! ==============================================================================
! GRAMMAR: Grammar table entries for the standard verbs library.
!
! ==============================================================================
! GRAMMAR: Grammar table entries for the standard verbs library.
!
-! Supplied for use with Inform 6 -- Release 6.12.5 -- Serial number 210605
+! Supplied for use with Inform 6 -- Release 6.12.5 -- Serial number 220219
-! Copyright Graham Nelson 1993-2004 and David Griffith 2012-2021
+! Copyright Graham Nelson 1993-2004 and David Griffith 2012-2022
!
! This file is free software: you can redistribute it and/or modify
! it under the terms of the GNU Affero General Public License as
!
! This file is free software: you can redistribute it and/or modify
! it under the terms of the GNU Affero General Public License as
! ==============================================================================
! INFIX: Support for the optional library debugger extension "Infix".
!
! ==============================================================================
! INFIX: Support for the optional library debugger extension "Infix".
!
-! Supplied for use with Inform 6 -- Release 6.12.5 -- Serial number 210605
+! Supplied for use with Inform 6 -- Release 6.12.6 -- Serial number 220219
-! Copyright Graham Nelson 1993-2004 and David Griffith 2012-2021
+! Copyright Graham Nelson 1993-2004 and David Griffith 2012-2022
!
! This file is free software: you can redistribute it and/or modify
! it under the terms of the GNU Affero General Public License as
!
! This file is free software: you can redistribute it and/or modify
! it under the terms of the GNU Affero General Public License as
! ==============================================================================
! LINKLPA: Link declarations of common properties and attributes.
!
! ==============================================================================
! LINKLPA: Link declarations of common properties and attributes.
!
-! Supplied for use with Inform 6 -- Release 6.12.5 -- Serial number 210605
+! Supplied for use with Inform 6 -- Release 6.12.6 -- Serial number 220219
-! Copyright Graham Nelson 1993-2004 and David Griffith 2012-2021
+! Copyright Graham Nelson 1993-2004 and David Griffith 2012-2022
!
! This file is free software: you can redistribute it and/or modify
! it under the terms of the GNU Affero General Public License as
!
! This file is free software: you can redistribute it and/or modify
! it under the terms of the GNU Affero General Public License as
Attribute pluralname;
#Ifdef INFIX;
Attribute pluralname;
#Ifdef INFIX;
+#Ifndef infix__watching;
Attribute infix__watching;
#Endif;
Attribute infix__watching;
#Endif;
! ------------------------------------------------------------------------------
! ------------------------------------------------------------------------------
! ==============================================================================
! PARSER: Front end to parser.
!
! ==============================================================================
! PARSER: Front end to parser.
!
-! Supplied for use with Inform 6 -- Release 6.12.5 -- Serial number 210605
+! Supplied for use with Inform 6 -- Release 6.12.6 -- Serial number 220219
-! Copyright Graham Nelson 1993-2004 and David Griffith 2012-2021
+! Copyright Graham Nelson 1993-2004 and David Griffith 2012-2022
!
! This file is free software: you can redistribute it and/or modify
! it under the terms of the GNU Affero General Public License as
!
! This file is free software: you can redistribute it and/or modify
! it under the terms of the GNU Affero General Public License as
Constant HDR_SCREENWCHARS $21; ! byte
Constant HDR_SCREENWUNITS $22; ! word
Constant HDR_SCREENHUNITS $24; ! word
Constant HDR_SCREENWCHARS $21; ! byte
Constant HDR_SCREENWUNITS $22; ! word
Constant HDR_SCREENHUNITS $24; ! word
+#Iftrue (#version_number == 6);
+Constant HDR_FONTHUNITS $26; ! byte
+Constant HDR_FONTWUNITS $27; ! byte
+#Ifnot;
Constant HDR_FONTWUNITS $26; ! byte
Constant HDR_FONTHUNITS $27; ! byte
Constant HDR_FONTWUNITS $26; ! byte
Constant HDR_FONTHUNITS $27; ! byte
Constant HDR_ROUTINEOFFSET $28; ! word
Constant HDR_STRINGOFFSET $2A; ! word
Constant HDR_BGCOLOUR $2C; ! byte
Constant HDR_ROUTINEOFFSET $28; ! word
Constant HDR_STRINGOFFSET $2A; ! word
Constant HDR_BGCOLOUR $2C; ! byte
if (usual_grammar_after == 0) {
j = verb_wordnum;
if (usual_grammar_after == 0) {
j = verb_wordnum;
+ #Ifdef TARGET_ZCODE;
+ parser_one = 0;
+ #Endif;
i = RunRoutines(actor, grammar);
#Ifdef DEBUG;
if (parser_trace >= 2 && actor.grammar ~= 0 or NULL)
i = RunRoutines(actor, grammar);
#Ifdef DEBUG;
if (parser_trace >= 2 && actor.grammar ~= 0 or NULL)
#Ifdef TARGET_ZCODE;
if ((i ~= 0 or 1) &&
#Ifdef TARGET_ZCODE;
if ((i ~= 0 or 1) &&
(UnsignedCompare(i, dict_start) < 0 ||
UnsignedCompare(i, dict_end) >= 0 ||
(UnsignedCompare(i, dict_start) < 0 ||
UnsignedCompare(i, dict_end) >= 0 ||
- (i - dict_start) % dict_entry_size ~= 0)) {
+ (i - dict_start) % dict_entry_size ~= 0))) {
usual_grammar_after = j;
i=-i;
}
usual_grammar_after = j;
i=-i;
}
#Ifdef DEBUG;
if (threshold >= 0 && parser_trace >= 5) print " ParseNoun returned ", threshold, "^";
#Endif; ! DEBUG
#Ifdef DEBUG;
if (threshold >= 0 && parser_trace >= 5) print " ParseNoun returned ", threshold, "^";
#Endif; ! DEBUG
- if (threshold < 0) wn++;
- if (threshold > 0) { k = threshold; jump MMbyPN; }
-
- if (threshold == 0 || Refers(obj,wn-1) == 0) {
- .NoWordsMatch;
- if (indef_mode ~= 0) {
- k = 0; parser_action = NULL;
- jump MMbyPN;
- }
- rfalse;
+ ! Don't arbitrarily increase wn when ParseNoun() returns -1
+ if (threshold > 0) {
+ k = threshold;
+ wn = j + k;
+ jump MMbyPN;
+ }
+ ! Check wn instead of wn - 1
+ if (threshold == 0 || Refers(obj,wn) == 0) {
+ .NoWordsMatch;
+ if (indef_mode ~= 0) {
+ ! Restore wn to pre-ParseNoun() state
+ k = 0; parser_action = NULL; wn = j;
+ jump MMbyPN;
+ }
+ rfalse;
- threshold = 1;
- dict_flags_of_noun = (w->#dict_par1) & (DICT_X654+DICT_PLUR);!$$01110100;
- w = NextWord();
+ ! Set threshold to reflect any words consumed by ParseNoun()
+ threshold = wn - j;
+ w = NextWord(); ! Ensure w contains actual first word of noun phrase
+ ! if ParseNoun() moved wn.
+ dict_flags_of_noun = (w->#dict_par1) & (DICT_X654+DICT_PLUR);!$$01110100;
while (Refers(obj, wn-1)) {
threshold++;
if (w)
while (Refers(obj, wn-1)) {
threshold++;
if (w)
-[ Dword__No w; return (w-(HDR_DICTIONARY-->0 + 7))/9; ];
-[ No__Dword n; return HDR_DICTIONARY-->0 + 7 + 9*n; ];
+[ Dword__No w dp dh;
+ dp = HDR_DICTIONARY-->0;
+ dh = dp->0 + 4;
+ dp = dp + dp->0 + 1;
+ return (w-(HDR_DICTIONARY-->0 + dh )) / (dp->0);
+];
+
+[ No__Dword n dp dh;
+ dp = HDR_DICTIONARY-->0;
+ dh = dp->0 + 4;
+ dp = dp + dp->0 + 1;
+ return HDR_DICTIONARY-->0 + dh + (dp->0 *n);
+];
#Endif; ! TARGET_ZCODE
#Ifndef DrawStatusLine;
#Endif; ! TARGET_ZCODE
#Ifndef DrawStatusLine;
-[ DrawStatusLine width posa posb posc;
+[ DrawStatusLine width posa posb posc posd pose;
#Ifdef TARGET_GLULX;
! If we have no status window, we must not try to redraw it.
if (gg_statuswin == 0)
#Ifdef TARGET_GLULX;
! If we have no status window, we must not try to redraw it.
if (gg_statuswin == 0)
MoveCursor(1, 1);
width = ScreenWidth();
MoveCursor(1, 1);
width = ScreenWidth();
+ posa = width-26; ! For standard move/score display.
posb = width-13;
posc = width-5;
posb = width-13;
posc = width-5;
+
+ posd = width-19; ! For time display.
+ pose = width-14;
+
spaces width;
MoveCursor(1, 2);
spaces width;
MoveCursor(1, 2);
else
print (The) visibility_ceiling;
}
else
print (The) visibility_ceiling;
}
-
- if (sys_statusline_flag && width > 53) {
- MoveCursor(1, posa);
- print (string) TIME__TX;
- LanguageTimeOfDay(sline1, sline2);
- }
- else {
+ if (sys_statusline_flag) {
+ if (width > 29) {
+ if (width > 39)
+ MoveCursor(1, posd);
+ else
+ MoveCursor(1, pose);
+ print (string) TIME__TX;
+ LanguageTimeOfDay(sline1, sline2);
+ } else
+ jump DSLContinue;
+ } else {
if (width > 66) {
#Ifndef NO_SCORE;
MoveCursor(1, posa);
if (width > 66) {
#Ifndef NO_SCORE;
MoveCursor(1, posa);
MainWindow(); ! set_window
];
#Endif;
MainWindow(); ! set_window
];
#Endif;
-This directory contains version 6.12.5 of the Inform 6 standard
+This directory contains version 6.12.6 of the Inform 6 standard
library. It has been modified slightly to not print out the version of
Inform and the version of the standard library in use in the game's
banner.
library. It has been modified slightly to not print out the version of
Inform and the version of the standard library in use in the game's
banner.
! ==============================================================================
! VERBLIB: Front end to standard verbs library.
!
! ==============================================================================
! VERBLIB: Front end to standard verbs library.
!
-! Supplied for use with Inform 6 -- Release 6.12.5 -- Serial number 210605
+! Supplied for use with Inform 6 -- Release 6.12.6 -- Serial number 220219
-! Copyright Graham Nelson 1993-2004 and David Griffith 2012-2021
+! Copyright Graham Nelson 1993-2004 and David Griffith 2012-2022
!
! This file is free software: you can redistribute it and/or modify
! it under the terms of the GNU Affero General Public License as
!
! This file is free software: you can redistribute it and/or modify
! it under the terms of the GNU Affero General Public License as
!
! You should have received a copy of the GNU Affero General Public
! License along with this program. If not, see
!
! You should have received a copy of the GNU Affero General Public
! License along with this program. If not, see
-! https://gnu.org/licenses/.
+! https://gnu.org/licenses/
!
! In your game file, Include three library files in this order:
! Include "parser";
!
! In your game file, Include three library files in this order:
! Include "parser";
if (noun has open) return L__M(##Open, 3, noun);
give noun open;
if (noun has open) return L__M(##Open, 3, noun);
give noun open;
- if (keep_silent || AfterRoutines()) return;
+ if (AfterRoutines() || keep_silent) return;
if (noun hasnt container)
return L__M(##Open, 5, noun);
if (noun hasnt container)
return L__M(##Open, 5, noun);
-Constant LibSerial "210605";
-Constant LibRelease "6.12.5";
+Constant LibSerial "220219";
+Constant LibRelease "6.12.6";
Constant LIBRARY_VERSION 612;
Constant Grammar__Version 2;
Constant LIBRARY_VERSION 612;
Constant Grammar__Version 2;