[Scummvm-git-logs] scummvm master -> 9424d4b4edf02a98afd31ff136105a6c4bfe5d30
dreammaster
noreply at scummvm.org
Tue Sep 27 01:39:51 UTC 2022
This automated email contains information about 20 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
37b0ebbf44 GLK: AGT: Fix substitutions in MSG_MAIN messages
4116cde102 GLK: AGT: Allow interpreter exit from within menu loop
856841df80 GLK: AGT: First attempt to fix TMD Thief, and room handling in general
8c5a1d1e37 GLK: AGT: Convert 2-word synonims to canonical form
5460bfdec5 GLK: AGT: Get two-word commands fix to work for both AGT and AGX
3e09284d6f GLK: AGT: Turn on command redir expansion for pre-Masters 1.5 variants
27a5b9a81e GLK: AGT: Always sort metacommands
7665848708 GLK: AGT: Turn on smart disambiguation by default for AGT 1.5 onwards
ac44613fbd GLK: AGT: Fewer extra newlines when replaying a log file
fec275835f GLK: AGT: Show last input from log file
7a78690576 GLK: AGT: Cast the result of asking for a number to be a signed 16-bit
44f8181c24 GLK: AGT: Sort out newline handling again
8ac79a7c7b GLK: AGT: Tidy logic to limit AskQuestion result to 16bit int range
af5096109f GLK: AGT: Rework newline interface to keep agt_input() unchanged
d6a870d676 GLK: AGT: Add alternative RNG and stable_random config option
14ed2b3d99 GLK: AGT: Re-work random number generation
bb9b69cd61 GLK: AGT: If stable_random is set, reset RNG when restarting a game
27350175e4 GLK: AGT: Allow Shades of Grey to define 'scream' in a dummy_verb
db4d180d48 GLK: AGT: Fix order of scanning dummy verbs
9424d4b4ed GLK: AGT: Bump version number to 1.1.2
Commit: 37b0ebbf44efd0b0e65793dd271b422ecec53e6f
https://github.com/scummvm/scummvm/commit/37b0ebbf44efd0b0e65793dd271b422ecec53e6f
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2022-09-26T18:39:38-07:00
Commit Message:
GLK: AGT: Fix substitutions in MSG_MAIN messages
Changed paths:
engines/glk/agt/exec.cpp
diff --git a/engines/glk/agt/exec.cpp b/engines/glk/agt/exec.cpp
index dfa77ef25d8..8214c5608f5 100644
--- a/engines/glk/agt/exec.cpp
+++ b/engines/glk/agt/exec.cpp
@@ -363,7 +363,6 @@ static int wordcode_match(const char **pvarname, char *fill_buff,
return 1;
}
- if (context == MSG_MAIN) return 0;
if (context == MSG_PARSE) {
/* The only special subsitution allowed is $word$. */
@@ -374,80 +373,81 @@ static int wordcode_match(const char **pvarname, char *fill_buff,
} else return 0;
}
- /* d2buff is a macro that returns 1 */
- if (match_str(pvarname, "NOUN$"))
- num_name(dobj_rec, just_seen_adj);
- just_seen_adj = 0; /* It doesn't matter. */
- if (match_str(pvarname, "VERB$"))
- d2buff(realverb); /* auxsyn[vb][0] */
- if (match_str(pvarname, "OBJECT$"))
- num_name(iobj_rec, 0);
- if (match_str(pvarname, "NAME$"))
- num_name(actor_rec, 0);
- if (match_str(pvarname, "ADJECTIVE$")) {
- just_seen_adj = get_adj(dobj_rec, fill_buff);
- return 1;
- }
- if (match_str(pvarname, "PREP$") || match_str(pvarname, "PREP_$"))
- d2buff(prep);
- if (match_str(pvarname, "N_PRO$"))
- d2buff(it_pronoun(dobj, 0));
- if (match_str(pvarname, "O_PRO$"))
- d2buff(it_pronoun(iobj, 0));
- if (match_str(pvarname, "NAME_PRO$"))
- d2buff(it_pronoun(actor, 0));
- if (match_str(pvarname, "N_INDIR$"))
- d2buff(it_pronoun(dobj, 1));
- if (match_str(pvarname, "O_INDIR$"))
- d2buff(it_pronoun(iobj, 1));
- if (match_str(pvarname, "NAME_INDIR$"))
- d2buff(it_pronoun(actor, 1));
- if (match_str(pvarname, "N_IS$")) {
- if (!it_plur(dobj)) d2buff(ext_code[wis])
+ if (context!=MSG_MAIN) {
+ /* d2buff is a macro that returns 1 */
+ if (match_str(pvarname, "NOUN$"))
+ num_name(dobj_rec, just_seen_adj);
+ just_seen_adj = 0; /* It doesn't matter. */
+ if (match_str(pvarname, "VERB$"))
+ d2buff(realverb); /* auxsyn[vb][0] */
+ if (match_str(pvarname, "OBJECT$"))
+ num_name(iobj_rec, 0);
+ if (match_str(pvarname, "NAME$"))
+ num_name(actor_rec, 0);
+ if (match_str(pvarname, "ADJECTIVE$")) {
+ just_seen_adj = get_adj(dobj_rec, fill_buff);
+ return 1;
+ }
+ if (match_str(pvarname, "PREP$") || match_str(pvarname, "PREP_$"))
+ d2buff(prep);
+ if (match_str(pvarname, "N_PRO$"))
+ d2buff(it_pronoun(dobj, 0));
+ if (match_str(pvarname, "O_PRO$"))
+ d2buff(it_pronoun(iobj, 0));
+ if (match_str(pvarname, "NAME_PRO$"))
+ d2buff(it_pronoun(actor, 0));
+ if (match_str(pvarname, "N_INDIR$"))
+ d2buff(it_pronoun(dobj, 1));
+ if (match_str(pvarname, "O_INDIR$"))
+ d2buff(it_pronoun(iobj, 1));
+ if (match_str(pvarname, "NAME_INDIR$"))
+ d2buff(it_pronoun(actor, 1));
+ if (match_str(pvarname, "N_IS$")) {
+ if (!it_plur(dobj)) d2buff(ext_code[wis])
else d2buff(ext_code[ware]);
- }
- if (match_str(pvarname, "O_IS$")) {
- if (!it_plur(iobj)) d2buff(ext_code[wis])
+ }
+ if (match_str(pvarname, "O_IS$")) {
+ if (!it_plur(iobj)) d2buff(ext_code[wis])
else d2buff(ext_code[ware]);
- }
- if (match_str(pvarname, "NAME_IS$")) {
- if (!it_plur(actor)) d2buff(ext_code[wis])
+ }
+ if (match_str(pvarname, "NAME_IS$")) {
+ if (!it_plur(actor)) d2buff(ext_code[wis])
else d2buff(ext_code[ware]);
- }
-
- if (match_str(pvarname, "N_WAS$")) {
- if (!it_plur(dobj)) d2buff(ext_code[wwas])
+ }
+ if (match_str(pvarname, "N_WAS$")) {
+ if (!it_plur(dobj)) d2buff(ext_code[wwas])
else d2buff(ext_code[wwere]);
- }
- if (match_str(pvarname, "O_WAS$")) {
- if (!it_plur(iobj)) d2buff(ext_code[wwas])
+ }
+ if (match_str(pvarname, "O_WAS$")) {
+ if (!it_plur(iobj)) d2buff(ext_code[wwas])
else d2buff(ext_code[wwere]);
- }
- if (match_str(pvarname, "NAME_WAS$")) {
- if (!it_plur(actor)) d2buff(ext_code[wwas])
+ }
+ if (match_str(pvarname, "NAME_WAS$")) {
+ if (!it_plur(actor)) d2buff(ext_code[wwas])
else d2buff(ext_code[wwere]);
- }
- if (match_str(pvarname, "THE_N$")) {
- theset(fill_buff, dobj);
- return 1;
- }
- if (match_str(pvarname, "THE_O$")) {
- theset(fill_buff, iobj);
- return 1;
- }
- if (match_str(pvarname, "THE_NAME$")) {
- theset(fill_buff, actor);
- return 1;
- }
- if (match_str(pvarname, "THE_C$")) {
- theset(fill_buff, curr_creat_rec->obj);
- return 1;
- }
- if (match_str(pvarname, "C_NAME$"))
- num_name(curr_creat_rec, 0);
- if (match_str(pvarname, "TIME$")) {
- time_out(fill_buff);
- return 1;
+ }
+ if (match_str(pvarname, "THE_N$")) {
+ theset(fill_buff, dobj);
+ return 1;
+ }
+ if (match_str(pvarname, "THE_O$")) {
+ theset(fill_buff, iobj);
+ return 1;
+ }
+ if (match_str(pvarname, "THE_NAME$")) {
+ theset(fill_buff, actor);
+ return 1;
+ }
+ if (match_str(pvarname, "THE_C$")) {
+ theset(fill_buff, curr_creat_rec->obj);
+ return 1;
+ }
+ if (match_str(pvarname, "C_NAME$"))
+ num_name(curr_creat_rec, 0);
+ if (match_str(pvarname, "TIME$")) {
+ time_out(fill_buff);
+ return 1;
+ }
}
if (pronoun_mode && match_str(pvarname, "YOU$"))
Commit: 4116cde102489d526058b448ce05ecb7cf1a0a3b
https://github.com/scummvm/scummvm/commit/4116cde102489d526058b448ce05ecb7cf1a0a3b
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2022-09-26T18:39:38-07:00
Commit Message:
GLK: AGT: Allow interpreter exit from within menu loop
Changed paths:
engines/glk/agt/exec.cpp
engines/glk/agt/interface.cpp
diff --git a/engines/glk/agt/exec.cpp b/engines/glk/agt/exec.cpp
index 8214c5608f5..3d4a1ce66f0 100644
--- a/engines/glk/agt/exec.cpp
+++ b/engines/glk/agt/exec.cpp
@@ -897,7 +897,7 @@ long read_number(void) {
n = strtol(s, &err, 10);
if (err == s) err = nullptr;
rfree(s);
- } while (err == nullptr);
+ } while (!quitflag && (err == nullptr));
return n;
}
diff --git a/engines/glk/agt/interface.cpp b/engines/glk/agt/interface.cpp
index ddc44df4148..9b0336c4354 100644
--- a/engines/glk/agt/interface.cpp
+++ b/engines/glk/agt/interface.cpp
@@ -613,7 +613,7 @@ int agt_menu(const char *header, int size, int width, menuentry *menu)
i = read_number() - 1;
if (i < 0 || i >= size)
writeln("Please choose an option from the menu.");
- } while (i < 0 || i >= size);
+ } while (!quitflag && (i < 0 || i >= size));
return i;
}
Commit: 856841df80fda7bf71b3cfaefc6d596ad4d64936
https://github.com/scummvm/scummvm/commit/856841df80fda7bf71b3cfaefc6d596ad4d64936
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2022-09-26T18:39:38-07:00
Commit Message:
GLK: AGT: First attempt to fix TMD Thief, and room handling in general
Changed paths:
engines/glk/agt/agtread.cpp
diff --git a/engines/glk/agt/agtread.cpp b/engines/glk/agt/agtread.cpp
index 32443b7e7ed..7abc4028f44 100644
--- a/engines/glk/agt/agtread.cpp
+++ b/engines/glk/agt/agtread.cpp
@@ -1048,7 +1048,7 @@ noun inside information; this is used by agtout */
if (aver == AGTCOS)
MaxQuestion = 10;
if (aver == AGT15 || aver == AGT15F)
- MaxQuestion = 57;
+ MaxQuestion = 41;
first_room = 2;
if (ver == 1) {
first_noun = 200;
@@ -1274,6 +1274,16 @@ static int try_read_da1(fc_type fc, genfile fda1, rbool diag)
for (i = 0; i < numglobal; i++)
globalnoun[i] = readdict(fda1); /* Global nouns */
+
+ } else if (aver >= AGT15) {
+
+ (void)readdict(fda1);
+
+ report("Reading flag nouns",fda1);
+
+ for(i = 0; i < MAX_FLAG_NOUN; i++)
+ flag_noun[i] = readdict(fda1);
+
} else
for (i = 0; i < MAX_FLAG_NOUN; i++)
flag_noun[i] = 0;
@@ -1661,7 +1671,7 @@ static void finish_read(rbool cleanup)
rfree(t_songlist);
rfree(t_fontlist);
- /* Reallocate questions and asnwers to only use the space that they need */
+ /* Reallocate questions and answers to only use the space that they need */
if (!RAW_CMD_OUT && top_quest < MaxQuestion) {
MaxQuestion = top_quest; /* top_quest is computed by fixcmd */
if (top_quest == 0) {
@@ -1680,6 +1690,18 @@ static void finish_read(rbool cleanup)
ans_ptr = (descr_ptr *)rrealloc(ans_ptr, top_quest * sizeof(descr_ptr));
}
}
+
+ int flagnum = 1;
+ for (i = 0; i <MAX_FLAG_NOUN; i++) {
+ if (flag_noun[i] != 0) {
+ int j;
+ for (j = 0; j <= maxnoun-first_noun; j++) {
+ if (noun[j].name == flag_noun[i])
+ noun[j].flagnum = flagnum;
+ }
+ flagnum++;
+ }
+ }
}
void free_all_agtread() {
Commit: 8c5a1d1e37cb04027621ca3e58bcf6b4d06f21a9
https://github.com/scummvm/scummvm/commit/8c5a1d1e37cb04027621ca3e58bcf6b4d06f21a9
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2022-09-26T18:39:38-07:00
Commit Message:
GLK: AGT: Convert 2-word synonims to canonical form
Rewrite metacommands that apply to built-in two-word synonims
for standard verbs into the canonical form of these verbs, so
that the metacommand runs when the command is entered
Changed paths:
engines/glk/agt/agtread.cpp
engines/glk/agt/gamedata.cpp
diff --git a/engines/glk/agt/agtread.cpp b/engines/glk/agt/agtread.cpp
index 7abc4028f44..65ae95340ad 100644
--- a/engines/glk/agt/agtread.cpp
+++ b/engines/glk/agt/agtread.cpp
@@ -549,6 +549,39 @@ static int translate_vnum(int vnum)
return vnum;
}
+static word check_comb(int combptr, int verbcmd, int nouncmd) {
+ word w;
+
+ if (combptr == 0) return 0;
+
+ w = syntbl[combptr];
+ if (syntbl[combptr+1] != verbcmd) return 0;
+ if (syntbl[combptr+2] != nouncmd) return 0;
+ if (syntbl[combptr+3] == 0) return w;
+
+ return 0;
+}
+
+/* For metacommands that apply to built-in two-word synonyms (e.g. GET OUT),
+ change the command to apply to the canonical form. */
+void command_syn_canon(cmd_rec* cmd) {
+ int i, vb;
+ word w;
+
+ /* VERB NOUN only */
+ if(cmd->verbcmd > 0 && cmd->nouncmd > 0 && cmd->prep == 0 && cmd->objcmd == 0) {
+ for(i = 0; i < num_auxcomb; i++) {
+ w = check_comb(auxcomb[i], cmd->verbcmd, cmd->nouncmd);
+ if (w > 0) {
+ vb = verb_builtin(w);
+ if(vb > 0) {
+ cmd->verbcmd = syntbl[auxsyn[vb]];
+ cmd->nouncmd = 0;
+ }
+ }
+ }
+ }
+}
#define CREC_SIZE (FRS_CMD)
@@ -591,6 +624,7 @@ static void read_da5(fc_type fc) {
cmd_ptr[i] = (long)buff[bp] + (((long)buff[bp + 1]) << 8);
bp += 2;
}
+ command_syn_canon(command+i);
}
if (DIAG)
rprintf(" Internal:%ld\n", bp);
@@ -1691,6 +1725,7 @@ static void finish_read(rbool cleanup)
}
}
+ /* Set the flag number for nouns mentioned in the flag_noun list */
int flagnum = 1;
for (i = 0; i <MAX_FLAG_NOUN; i++) {
if (flag_noun[i] != 0) {
diff --git a/engines/glk/agt/gamedata.cpp b/engines/glk/agt/gamedata.cpp
index 1fc7aeb5e9d..f746c664b66 100644
--- a/engines/glk/agt/gamedata.cpp
+++ b/engines/glk/agt/gamedata.cpp
@@ -1211,7 +1211,7 @@ void sort_cmd(void) {
}
#ifdef SORT_META
- if (!agx_file && aver >= AGX00) rsort();
+ if (!agx_file) rsort();
#endif
Commit: 5460bfdec56901e4c622e09920d312efe78f787c
https://github.com/scummvm/scummvm/commit/5460bfdec56901e4c622e09920d312efe78f787c
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2022-09-26T18:39:38-07:00
Commit Message:
GLK: AGT: Get two-word commands fix to work for both AGT and AGX
Changed paths:
engines/glk/agt/agility.h
engines/glk/agt/agtread.cpp
engines/glk/agt/agxfile.cpp
engines/glk/agt/gamedata.cpp
diff --git a/engines/glk/agt/agility.h b/engines/glk/agt/agility.h
index f3f2fc128b9..8d63f5c6201 100644
--- a/engines/glk/agt/agility.h
+++ b/engines/glk/agt/agility.h
@@ -889,6 +889,7 @@ const char *get_objattr_str(int dtype, int id, long val);
const opdef *get_opdef(integer op);
char *objname(int);
void sort_cmd(void);
+void cmds_syns_canon(void);
void agtwarn(const char *, int elev);
void agtnwarn(const char *, int, int elev);
diff --git a/engines/glk/agt/agtread.cpp b/engines/glk/agt/agtread.cpp
index 65ae95340ad..2c4199fee4e 100644
--- a/engines/glk/agt/agtread.cpp
+++ b/engines/glk/agt/agtread.cpp
@@ -549,40 +549,6 @@ static int translate_vnum(int vnum)
return vnum;
}
-static word check_comb(int combptr, int verbcmd, int nouncmd) {
- word w;
-
- if (combptr == 0) return 0;
-
- w = syntbl[combptr];
- if (syntbl[combptr+1] != verbcmd) return 0;
- if (syntbl[combptr+2] != nouncmd) return 0;
- if (syntbl[combptr+3] == 0) return w;
-
- return 0;
-}
-
-/* For metacommands that apply to built-in two-word synonyms (e.g. GET OUT),
- change the command to apply to the canonical form. */
-void command_syn_canon(cmd_rec* cmd) {
- int i, vb;
- word w;
-
- /* VERB NOUN only */
- if(cmd->verbcmd > 0 && cmd->nouncmd > 0 && cmd->prep == 0 && cmd->objcmd == 0) {
- for(i = 0; i < num_auxcomb; i++) {
- w = check_comb(auxcomb[i], cmd->verbcmd, cmd->nouncmd);
- if (w > 0) {
- vb = verb_builtin(w);
- if(vb > 0) {
- cmd->verbcmd = syntbl[auxsyn[vb]];
- cmd->nouncmd = 0;
- }
- }
- }
- }
-}
-
#define CREC_SIZE (FRS_CMD)
static long badtokcnt;
@@ -624,7 +590,6 @@ static void read_da5(fc_type fc) {
cmd_ptr[i] = (long)buff[bp] + (((long)buff[bp + 1]) << 8);
bp += 2;
}
- command_syn_canon(command+i);
}
if (DIAG)
rprintf(" Internal:%ld\n", bp);
@@ -1737,6 +1702,8 @@ static void finish_read(rbool cleanup)
flagnum++;
}
}
+
+ cmds_syns_canon();
}
void free_all_agtread() {
diff --git a/engines/glk/agt/agxfile.cpp b/engines/glk/agt/agxfile.cpp
index c467e70cadf..38dcd094346 100644
--- a/engines/glk/agt/agxfile.cpp
+++ b/engines/glk/agt/agxfile.cpp
@@ -1141,7 +1141,9 @@ int read_agx(fc_type fc, rbool diag) {
descr_ofs = index[11].file_offset;
mem_descr = nullptr;
}
+
reinit_dict();
+ cmds_syns_canon();
return 1;
}
diff --git a/engines/glk/agt/gamedata.cpp b/engines/glk/agt/gamedata.cpp
index f746c664b66..6d1e5e789a4 100644
--- a/engines/glk/agt/gamedata.cpp
+++ b/engines/glk/agt/gamedata.cpp
@@ -1261,8 +1261,42 @@ void sort_cmd(void) {
}
}
+static word check_comb(int combptr, int verbcmd, int nouncmd) {
+ word w;
+
+ if (combptr == 0) return 0;
+
+ w = syntbl[combptr];
+ if (syntbl[combptr+1] != verbcmd) return 0;
+ if (syntbl[combptr+2] != nouncmd) return 0;
+ if (syntbl[combptr+3] == 0) return w;
+
+ return 0;
+}
+/* For metacommands that apply to built-in two-word synonyms (e.g. GET OUT),
+ change the command to apply to the canonical form. */
+void cmds_syns_canon(void) {
+ int i, j, vb;
+ word w;
+ for (i = 0; i < last_cmd; i++) {
+ /* VERB NOUN only */
+ if (command[i].verbcmd > 0 && command[i].nouncmd > 0 && command[i].prep == 0 &&
+ command[i].objcmd == 0) {
+ for (j = 0; j < num_auxcomb; j++) {
+ w = check_comb(auxcomb[j], command[i].verbcmd, command[i].nouncmd);
+ if (w > 0) {
+ vb = verb_builtin(w);
+ if (vb > 0) {
+ command[i].verbcmd = syntbl[auxsyn[vb]];
+ command[i].nouncmd = 0;
+ }
+ }
+ }
+ }
+ }
+}
/* ------------------------------------------------------------------- */
/* Functions for getting opcode information */
Commit: 3e09284d6f33d6a299e62bb557a6ba5c3d7ea11c
https://github.com/scummvm/scummvm/commit/3e09284d6f33d6a299e62bb557a6ba5c3d7ea11c
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2022-09-26T18:39:38-07:00
Commit Message:
GLK: AGT: Turn on command redir expansion for pre-Masters 1.5 variants
Changed paths:
engines/glk/agt/metacommand.cpp
diff --git a/engines/glk/agt/metacommand.cpp b/engines/glk/agt/metacommand.cpp
index 1e5dcb8a141..c4eabcc748a 100644
--- a/engines/glk/agt/metacommand.cpp
+++ b/engines/glk/agt/metacommand.cpp
@@ -670,7 +670,7 @@ static int run_metacommand(int cnum, int *redir_offset)
static integer expand_redirect(word w) {
assert(w != -1); /* <*NONE*> object shouldn't make it this far */
- if (w == 0 || aver < AGTME10) return -w;
+ if (w == 0 || aver < AGT15) return -w;
if (w == ext_code[wdverb]) return -syntbl[auxsyn[vb]];
if (w == ext_code[wdnoun]) return dobj;
if (w == ext_code[wdobject]) return iobj;
Commit: 27a5b9a81eabbeb3afc19634de6ee022b256b197
https://github.com/scummvm/scummvm/commit/27a5b9a81eabbeb3afc19634de6ee022b256b197
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2022-09-26T18:39:38-07:00
Commit Message:
GLK: AGT: Always sort metacommands
Changed paths:
engines/glk/agt/gamedata.cpp
diff --git a/engines/glk/agt/gamedata.cpp b/engines/glk/agt/gamedata.cpp
index 6d1e5e789a4..f06e3d2a239 100644
--- a/engines/glk/agt/gamedata.cpp
+++ b/engines/glk/agt/gamedata.cpp
@@ -1211,7 +1211,7 @@ void sort_cmd(void) {
}
#ifdef SORT_META
- if (!agx_file) rsort();
+ rsort();
#endif
Commit: 7665848708b691e67ffb957fc0f8e3239d3e2d57
https://github.com/scummvm/scummvm/commit/7665848708b691e67ffb957fc0f8e3239d3e2d57
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2022-09-26T18:39:38-07:00
Commit Message:
GLK: AGT: Turn on smart disambiguation by default for AGT 1.5 onwards
Changed paths:
engines/glk/agt/auxfile.cpp
diff --git a/engines/glk/agt/auxfile.cpp b/engines/glk/agt/auxfile.cpp
index 3f28b150beb..cb3a7b79acf 100644
--- a/engines/glk/agt/auxfile.cpp
+++ b/engines/glk/agt/auxfile.cpp
@@ -247,6 +247,11 @@ rbool parse_config_line(char *buff, rbool lastpass) {
void read_config(genfile cfgfile, rbool lastpass) {
char buff[100];
+ if (lastpass) {
+ /* Default to smart disambiguation for 1.5 onwards */
+ if (aver >= AGT15) PURE_DISAMBIG = 0;
+ }
+
if (!filevalid(cfgfile, fCFG)) return;
while (readln(cfgfile, buff, 99)) {
Commit: ac44613fbd207d1b0ae947a5f4fd08faf5aeb625
https://github.com/scummvm/scummvm/commit/ac44613fbd207d1b0ae947a5f4fd08faf5aeb625
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2022-09-26T18:39:38-07:00
Commit Message:
GLK: AGT: Fewer extra newlines when replaying a log file
Changed paths:
engines/glk/agt/interface.cpp
diff --git a/engines/glk/agt/interface.cpp b/engines/glk/agt/interface.cpp
index 9b0336c4354..7d5b5a5135c 100644
--- a/engines/glk/agt/interface.cpp
+++ b/engines/glk/agt/interface.cpp
@@ -209,7 +209,7 @@ static char *get_log(void)
s = (char *)rmalloc(1000);
s[0] = ' ';
s[1] = 0;
- (void)textgets(log_in, s, 1000);
+ (void)readln(log_in, s, 1000);
if (texteof(log_in)) { /* Reached end of logfile */
close_pfile(log_in, 1);
log_in = BAD_TEXTFILE;
@@ -226,7 +226,7 @@ static char *get_log(void)
} else { /* Need to delay or wait for keypress */
if (logdelay == -1) agt_waitkey();
else agt_delay(logdelay);
- if (s[0] != 0) writeln(s);
+ if (s[0] != 0) writestr(s);
}
return s;
}
Commit: fec275835f36a63f00dd960580be8146353b4204
https://github.com/scummvm/scummvm/commit/fec275835f36a63f00dd960580be8146353b4204
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2022-09-26T18:39:38-07:00
Commit Message:
GLK: AGT: Show last input from log file
Changed paths:
engines/glk/agt/interface.cpp
diff --git a/engines/glk/agt/interface.cpp b/engines/glk/agt/interface.cpp
index 7d5b5a5135c..0f4bd24af55 100644
--- a/engines/glk/agt/interface.cpp
+++ b/engines/glk/agt/interface.cpp
@@ -222,6 +222,7 @@ static char *get_log(void)
} else {
logflag &= ~2;
fast_replay = 0;
+ if (s[0] != 0) writestr(s);
}
} else { /* Need to delay or wait for keypress */
if (logdelay == -1) agt_waitkey();
Commit: 7a78690576ea8f03265b718019eb1c1868d00a11
https://github.com/scummvm/scummvm/commit/7a78690576ea8f03265b718019eb1c1868d00a11
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2022-09-26T18:39:38-07:00
Commit Message:
GLK: AGT: Cast the result of asking for a number to be a signed 16-bit
Changed paths:
engines/glk/agt/token.cpp
diff --git a/engines/glk/agt/token.cpp b/engines/glk/agt/token.cpp
index 83821274455..adece4f913b 100644
--- a/engines/glk/agt/token.cpp
+++ b/engines/glk/agt/token.cpp
@@ -93,6 +93,8 @@ static long ask_for_number(int n1, int n2) {
for (;;) {
writestr(s);
n = read_number();
+ if (aver < AGX00)
+ n = (integer) n;
if (n1 == n2 || (n >= n1 && n <= n2)) return n;
writeln("");
}
Commit: 44f8181c24f40ee21cb7b4efff40ca6b13462469
https://github.com/scummvm/scummvm/commit/44f8181c24f40ee21cb7b4efff40ca6b13462469
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2022-09-26T18:39:38-07:00
Commit Message:
GLK: AGT: Sort out newline handling again
Changed paths:
engines/glk/agt/interface.cpp
diff --git a/engines/glk/agt/interface.cpp b/engines/glk/agt/interface.cpp
index 0f4bd24af55..5e3a5ee96da 100644
--- a/engines/glk/agt/interface.cpp
+++ b/engines/glk/agt/interface.cpp
@@ -260,6 +260,7 @@ char *agt_readline(int in_type) {
if (logflag & 1)
put_log(s);
+ agt_newline();
return s;
}
Commit: 8ac79a7c7bf8a4d2be3e3f38513690e5de3bae1a
https://github.com/scummvm/scummvm/commit/8ac79a7c7bf8a4d2be3e3f38513690e5de3bae1a
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2022-09-26T18:39:38-07:00
Commit Message:
GLK: AGT: Tidy logic to limit AskQuestion result to 16bit int range
Changed paths:
engines/glk/agt/token.cpp
diff --git a/engines/glk/agt/token.cpp b/engines/glk/agt/token.cpp
index adece4f913b..3b3844041fe 100644
--- a/engines/glk/agt/token.cpp
+++ b/engines/glk/agt/token.cpp
@@ -94,7 +94,7 @@ static long ask_for_number(int n1, int n2) {
writestr(s);
n = read_number();
if (aver < AGX00)
- n = (integer) n;
+ n = (integer) (n & 0xFFFF);
if (n1 == n2 || (n >= n1 && n <= n2)) return n;
writeln("");
}
Commit: af5096109fb0d1a2becce9ac193fa29962bbf706
https://github.com/scummvm/scummvm/commit/af5096109fb0d1a2becce9ac193fa29962bbf706
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2022-09-26T18:39:38-07:00
Commit Message:
GLK: AGT: Rework newline interface to keep agt_input() unchanged
Changed paths:
engines/glk/agt/interface.cpp
diff --git a/engines/glk/agt/interface.cpp b/engines/glk/agt/interface.cpp
index 5e3a5ee96da..e4373a32857 100644
--- a/engines/glk/agt/interface.cpp
+++ b/engines/glk/agt/interface.cpp
@@ -246,9 +246,10 @@ char *agt_readline(int in_type) {
char *s;
if (PURE_INPUT) agt_textcolor(-1);
- if (logflag & 2)
+ if (logflag & 2) {
s = get_log();
- else
+ agt_newline();
+ } else
s = agt_input(in_type);
if (g_vm->shouldQuit())
@@ -260,7 +261,6 @@ char *agt_readline(int in_type) {
if (logflag & 1)
put_log(s);
- agt_newline();
return s;
}
Commit: d6a870d67678826dc1a81c52e740b9cd1f0f0859
https://github.com/scummvm/scummvm/commit/d6a870d67678826dc1a81c52e740b9cd1f0f0859
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2022-09-26T18:39:38-07:00
Commit Message:
GLK: AGT: Add alternative RNG and stable_random config option
Add stable_random as a configuration option and, if set, use a random
number generator that is the same for all platforms
Changed paths:
engines/glk/agt/agil.cpp
engines/glk/agt/exec.cpp
engines/glk/agt/interp.h
engines/glk/agt/token.cpp
diff --git a/engines/glk/agt/agil.cpp b/engines/glk/agt/agil.cpp
index 09041aab90d..96805c97f4d 100644
--- a/engines/glk/agt/agil.cpp
+++ b/engines/glk/agt/agil.cpp
@@ -300,6 +300,7 @@ void agil_option(int optnum, char *optstr[], rbool setflag, rbool lastpass) {
else if (opt("tone")) PURE_TONE = setflag;
else if (opt("input_bold")) PURE_INPUT = setflag;
else if (opt("force_load")) FORCE_VERSION = setflag;
+ else if (opt("stable_random")) stable_random = setflag;
else if (!agt_option(optnum, optstr, setflag)) /* Platform specific options */
rprintf("Invalid option %s\n", optstr[0]);
}
diff --git a/engines/glk/agt/exec.cpp b/engines/glk/agt/exec.cpp
index 3d4a1ce66f0..031bb6af964 100644
--- a/engines/glk/agt/exec.cpp
+++ b/engines/glk/agt/exec.cpp
@@ -1182,7 +1182,7 @@ void increment_turn(void) {
/* Now increment the time counter */
if (delta_time > 0) {
if (PURE_TIME)
- add_time(agt_rand(min_delta(), delta_time));
+ add_time(get_random(min_delta(), delta_time));
else /* if !PURE_TIME */
add_time(delta_time);
}
diff --git a/engines/glk/agt/interp.h b/engines/glk/agt/interp.h
index c8de2f5efc1..1e6a3af7827 100644
--- a/engines/glk/agt/interp.h
+++ b/engines/glk/agt/interp.h
@@ -370,6 +370,7 @@ extern long read_number(void);
/* -------------------------------------------------------------------- */
extern void init_stack(void); /* Set up expression stack */
extern void clear_stack(void); /* Set stack back to empty state */
+int get_random(int a, int b); /* Return random number from a to b, inclusive */
/* -------------------------------------------------------------------- */
/* In OBJECT.C */
diff --git a/engines/glk/agt/token.cpp b/engines/glk/agt/token.cpp
index 3b3844041fe..afe4bc4b9ec 100644
--- a/engines/glk/agt/token.cpp
+++ b/engines/glk/agt/token.cpp
@@ -458,7 +458,7 @@ static int exec_cond(int op_, int arg1, int arg2) {
case 88:
cret(agt_var[arg1] < agt_var[arg2]);
case 89:
- cret(agt_var[arg1] < agt_rand(1, arg2));
+ cret(agt_var[arg1] < get_random(1, arg2));
case 90:
cret((actor != 0) && (it_loc(actor) == loc + first_room));
case 91:
@@ -470,7 +470,7 @@ static int exec_cond(int op_, int arg1, int arg2) {
case 94:
cret(it_contents(arg1) != 0);
case 95:
- cret(agt_rand(1, 100) <= arg1);
+ cret(get_random(1, 100) <= arg1);
case 96:
cret(yesno("Yes or no? "));
case 97:
@@ -615,7 +615,7 @@ static void exec_action(int op_, int arg1, int arg2) {
goto_room(arg1 - first_room);
break;
case 1001:
- goto_room(agt_rand(arg1, arg2) - first_room);
+ goto_room(get_random(arg1, arg2) - first_room);
break;
case 1002:
agt_var[arg1] = loc + first_room;
@@ -680,7 +680,7 @@ static void exec_action(int op_, int arg1, int arg2) {
musiccmd(1, arg1 - 1);
break;
case 1020:
- musiccmd(1, agt_rand(arg1, arg2) - 1);
+ musiccmd(1, get_random(arg1, arg2) - 1);
break;
case 1021:
musiccmd(2, arg1 - 1);
@@ -818,7 +818,7 @@ static void exec_action(int op_, int arg1, int arg2) {
break;
/* 1062 is RedirectTo */
case 1063:
- msgout(agt_rand(arg1, arg2), 1);
+ msgout(get_random(arg1, arg2), 1);
break;
case 1064:
print_contents(arg1, 1);
@@ -924,7 +924,7 @@ static void exec_action(int op_, int arg1, int arg2) {
agt_var[arg1] -= agt_var[arg2];
break;
case 1102:
- agt_var[arg1] = agt_rand(0, arg2);
+ agt_var[arg1] = get_random(0, arg2);
break;
case 1103:
agt_var[arg1] = dobj_rec->num;
@@ -1158,5 +1158,15 @@ int exec_instr(op_rec *oprec)
}
}
+int get_random(int a, int b)
+{
+ if (stable_random) {
+ static unsigned int seed = 9483;
+ seed = (8253729 * seed + 2396403);
+ return a + (seed % (b - a + 1));
+ } else
+ return agt_rand(a,b);
+}
+
} // End of namespace AGT
} // End of namespace Glk
Commit: 14ed2b3d9985d65ed909993133db592e0e545a2c
https://github.com/scummvm/scummvm/commit/14ed2b3d9985d65ed909993133db592e0e545a2c
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2022-09-26T18:39:38-07:00
Commit Message:
GLK: AGT: Re-work random number generation
Changed paths:
engines/glk/agt/token.cpp
diff --git a/engines/glk/agt/token.cpp b/engines/glk/agt/token.cpp
index afe4bc4b9ec..2bee289ec06 100644
--- a/engines/glk/agt/token.cpp
+++ b/engines/glk/agt/token.cpp
@@ -1161,9 +1161,11 @@ int exec_instr(op_rec *oprec)
int get_random(int a, int b)
{
if (stable_random) {
- static unsigned int seed = 9483;
- seed = (8253729 * seed + 2396403);
- return a + (seed % (b - a + 1));
+ static unsigned int rand_gen = 1234;
+
+ rand_gen = rand_gen * 214013 + 2531011;
+ unsigned int rand_num = (rand_gen >> 16) & 0xFFFF;
+ return a + (rand_num % (b - a + 1));
} else
return agt_rand(a,b);
}
Commit: bb9b69cd61a8199c7a1218349fcfacc7e30baf0c
https://github.com/scummvm/scummvm/commit/bb9b69cd61a8199c7a1218349fcfacc7e30baf0c
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2022-09-26T18:39:38-07:00
Commit Message:
GLK: AGT: If stable_random is set, reset RNG when restarting a game
Changed paths:
engines/glk/agt/interp.h
engines/glk/agt/savegame.cpp
engines/glk/agt/token.cpp
diff --git a/engines/glk/agt/interp.h b/engines/glk/agt/interp.h
index 1e6a3af7827..63bd68c1aba 100644
--- a/engines/glk/agt/interp.h
+++ b/engines/glk/agt/interp.h
@@ -370,7 +370,8 @@ extern long read_number(void);
/* -------------------------------------------------------------------- */
extern void init_stack(void); /* Set up expression stack */
extern void clear_stack(void); /* Set stack back to empty state */
-int get_random(int a, int b); /* Return random number from a to b, inclusive */
+extern void reset_random(void); /* Reset random number generator state */
+extern int get_random(int a, int b); /* Return random number from a to b, inclusive */
/* -------------------------------------------------------------------- */
/* In OBJECT.C */
diff --git a/engines/glk/agt/savegame.cpp b/engines/glk/agt/savegame.cpp
index 62c01ec270a..23259eb3e27 100644
--- a/engines/glk/agt/savegame.cpp
+++ b/engines/glk/agt/savegame.cpp
@@ -412,6 +412,7 @@ Common::Error loadgame(Common::SeekableReadStream *loadfile) {
void restart_game(void) {
putstate(restart_state);
+ reset_random();
agt_clrscr();
set_statline();
do_look = do_autoverb = 1;
diff --git a/engines/glk/agt/token.cpp b/engines/glk/agt/token.cpp
index 2bee289ec06..b34edd6e06e 100644
--- a/engines/glk/agt/token.cpp
+++ b/engines/glk/agt/token.cpp
@@ -1158,11 +1158,14 @@ int exec_instr(op_rec *oprec)
}
}
-int get_random(int a, int b)
-{
- if (stable_random) {
- static unsigned int rand_gen = 1234;
+static unsigned int rand_gen = 1234;
+void reset_random(void) {
+ rand_gen = 1234;
+}
+
+int get_random(int a, int b) {
+ if (stable_random) {
rand_gen = rand_gen * 214013 + 2531011;
unsigned int rand_num = (rand_gen >> 16) & 0xFFFF;
return a + (rand_num % (b - a + 1));
Commit: 27350175e4a943236f04054d06524923bd674277
https://github.com/scummvm/scummvm/commit/27350175e4a943236f04054d06524923bd674277
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2022-09-26T18:39:38-07:00
Commit Message:
GLK: AGT: Allow Shades of Grey to define 'scream' in a dummy_verb
Changed paths:
engines/glk/agt/agil.cpp
engines/glk/agt/gamedata.cpp
engines/glk/agt/interp.h
engines/glk/agt/parser.cpp
diff --git a/engines/glk/agt/agil.cpp b/engines/glk/agt/agil.cpp
index 96805c97f4d..49056fc96b1 100644
--- a/engines/glk/agt/agil.cpp
+++ b/engines/glk/agt/agil.cpp
@@ -124,7 +124,7 @@ static const char *ext_voc[] = {
"verb", "noun", "adjective", "prep", "object", "name", "step",
" any", "either", "both", "everyone", "everybody",
"he", "she", "it", "they", "him", "her", "them", "is", "are", "oops",
- "was", "were",
+ "was", "were", "scream",
/* Everything between 'in' and 'about' should be a preposition */
"in", "out", "into", "at", "to", "across", "inside", "with", "near", "for",
"of", "behind", "beside", "on", "off", "under", "from", "through",
diff --git a/engines/glk/agt/gamedata.cpp b/engines/glk/agt/gamedata.cpp
index f06e3d2a239..7f79bc7eb53 100644
--- a/engines/glk/agt/gamedata.cpp
+++ b/engines/glk/agt/gamedata.cpp
@@ -552,7 +552,7 @@ static const char verbdef[] =
*/
/* These are alternative (that is, non-canonical) forms of verbs that
- were present in the oringal AGT interpreters. They have the property
+ were present in the original AGT interpreters. They have the property
that they have no effect if used in a dummy_verb declaration. */
/* Their dictionary indices are stored in old_agt_verb, which is
initialized by reinit_dict. */
diff --git a/engines/glk/agt/interp.h b/engines/glk/agt/interp.h
index 63bd68c1aba..5656a83505e 100644
--- a/engines/glk/agt/interp.h
+++ b/engines/glk/agt/interp.h
@@ -276,7 +276,7 @@ typedef enum {wthe, wmy, wa, wan, wthen, wp, wsc, wand, wc, wits, wall, wundo, w
wdverb, wdnoun, wdadjective, wdprep, wdobject, wdname,
wstep, w_any, weither, wboth, weveryone, weverybody,
whe, wshe, wit, wthey, whim, wher, wthem, wis, ware, woops,
- wwas, wwere,
+ wwas, wwere, wscream,
win, wout, winto, wat, wto, wacross, winside, wwith, wnear, wfor,
wof, wbehind, wbeside, won, woff, wunder, wfrom, wthrough,
wtoward, wtowards, wbetween, waround, wupon, wthru,
diff --git a/engines/glk/agt/parser.cpp b/engines/glk/agt/parser.cpp
index e58195b9284..31791dd86d9 100644
--- a/engines/glk/agt/parser.cpp
+++ b/engines/glk/agt/parser.cpp
@@ -241,6 +241,8 @@ static int comb_verb(void)
static rbool orig_agt_verb(word w) {
int i;
if (aver <= AGT10 && w == ext_code[wg]) return 0; /* AGT 1.0 didn't have AGAIN */
+ /* SOGGY overrides SCREAM with a dummy_verb, earlier versions too? */
+ if (aver <= AGTCOS && w == ext_code[wscream]) return 0;
for (i = 0; old_agt_verb[i] != -1 && old_agt_verb[i] != w; i++);
return (old_agt_verb[i] == w);
}
Commit: db4d180d4883938fcda6119245c182ac46d5c16f
https://github.com/scummvm/scummvm/commit/db4d180d4883938fcda6119245c182ac46d5c16f
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2022-09-26T18:39:38-07:00
Commit Message:
GLK: AGT: Fix order of scanning dummy verbs
Fixes SIGNAL COMPANIONS in Shades of Grey
Changed paths:
engines/glk/agt/gamedata.cpp
diff --git a/engines/glk/agt/gamedata.cpp b/engines/glk/agt/gamedata.cpp
index 7f79bc7eb53..2b8b0865592 100644
--- a/engines/glk/agt/gamedata.cpp
+++ b/engines/glk/agt/gamedata.cpp
@@ -994,9 +994,39 @@ int verb_authorsyn(word w) {
/* Check game-specific synonyms first */
/* Scan in reverse so later synonyms will override earlier ones */
- for (i = TOTAL_VERB - 1; i > 0; i--)
- for (j = synlist[i]; syntbl[j] != 0; j++)
- if (w == syntbl[j]) return i;
+ if (aver < AGX00) {
+ for (i = MAX_SUB-1; i >= 0; i--)
+ for (j = synlist[BASE_VERB+DVERB+i]; syntbl[j] != 0; j++)
+ if (w == syntbl[j]) return BASE_VERB+DVERB+i;
+
+ /* In AGT the dummy verbs are laid out in memory in a non-obvious
+ order:
+ DUMMY_VERB1
+ DUMMY_VERB26
+ DUMMY_VERB2
+ DUMMY_VERB27
+ ...
+ For a few games this is relevant (e.g. SIGNAL in Shades of Gray),
+ as the same synonym occurs in multiple dummy verbs, so we scan
+ the dummy verb synonyms here in the same order as original AGT. */
+ for (i = DVERB-1; i >= 0; i--) {
+ int ii = ((i % 2) == 0) ? i / 2 : (i+DVERB-1) / 2;
+ for (j = synlist[BASE_VERB+ii]; syntbl[j] != 0; j++)
+ if (w == syntbl[j])
+ return BASE_VERB + ii;
+ }
+ for (i = BASE_VERB-1; i > 0; i--)
+ for (j = synlist[i]; syntbl[j] != 0; j++)
+ if (w == syntbl[j])
+ return i;
+
+ } else {
+ for (i = TOTAL_VERB-1; i > 0; i--)
+ for (j = synlist[i]; syntbl[j] != 0; j++)
+ if (w == syntbl[j])
+ return i;
+ }
+
return 0;
}
Commit: 9424d4b4edf02a98afd31ff136105a6c4bfe5d30
https://github.com/scummvm/scummvm/commit/9424d4b4edf02a98afd31ff136105a6c4bfe5d30
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2022-09-26T18:39:38-07:00
Commit Message:
GLK: AGT: Bump version number to 1.1.2
Changed paths:
engines/glk/agt/agt.h
engines/glk/agt/gamedata.cpp
engines/glk/agt/os_glk.cpp
diff --git a/engines/glk/agt/agt.h b/engines/glk/agt/agt.h
index 269da3582d3..14d3b56b65d 100644
--- a/engines/glk/agt/agt.h
+++ b/engines/glk/agt/agt.h
@@ -19,7 +19,7 @@
*
*/
-/* Based on Agility interpreter version 1.1.1 */
+/* Based on Agility interpreter version 1.1.2 */
#ifndef GLK_AGT
#define GLK_AGT
diff --git a/engines/glk/agt/gamedata.cpp b/engines/glk/agt/gamedata.cpp
index 2b8b0865592..d02cbcdfce4 100644
--- a/engines/glk/agt/gamedata.cpp
+++ b/engines/glk/agt/gamedata.cpp
@@ -487,7 +487,7 @@ const char *averstr[] = {"????", "1.0", "1.18",
};
const char *portstr = PORTSTR;
-const char *version_str = "version 1.1.1";
+const char *version_str = "version 1.1.2";
const char nonestr[5] = {4, 'n', 'o', 'n', 'e'};
static const char NONEstr[5] = {4, 'N', 'O', 'N', 'E'};
diff --git a/engines/glk/agt/os_glk.cpp b/engines/glk/agt/os_glk.cpp
index 44fab9669d5..163304c40df 100644
--- a/engines/glk/agt/os_glk.cpp
+++ b/engines/glk/agt/os_glk.cpp
@@ -27,7 +27,7 @@ namespace Glk {
namespace AGT {
/*
- * Glk interface for AGiliTy 1.1.1.1
+ * Glk interface for AGiliTy 1.1.2
* -------------------------------
*
* This module contains the Glk porting layer for AGiliTy. It
@@ -784,7 +784,7 @@ static void gagt_status_update() {
* We don't (yet) have a status line. Perhaps we're at the
* very start of a game. Print a standard message.
*/
- g_vm->glk_put_string("Glk AGiliTy version 1.1.1.1");
+ g_vm->glk_put_string("Glk AGiliTy version 1.1.2");
}
g_vm->glk_set_window(g_vm->gagt_main_window);
@@ -2584,12 +2584,12 @@ static gagt_special_t GAGT_SPECIALS[] = {
4,
{
"This game is being executed by",
- "AGiliTy: The (Mostly) Universal AGT Interpreter version 1.1.1.1",
+ "AGiliTy: The (Mostly) Universal AGT Interpreter version 1.1.2",
"Copyright (C) 1996-99,2001 by Robert Masenten",
"Glk version"
},
"This game is being executed by:\n\n"
- " |SAGiliTy, The (Mostly) Universal AGT Interpreter, Version 1.1.1.1|N\n"
+ " |SAGiliTy, The (Mostly) Universal AGT Interpreter, Version 1.1.2|N\n"
" |ECopyright (C) 1996-1999,2001 by Robert Masenten|N\n"
" |EGlk version|N\n"
},
@@ -2599,12 +2599,12 @@ static gagt_special_t GAGT_SPECIALS[] = {
5,
{
"AGiliTy",
- "The (Mostly) Universal AGT Interpreter, version 1.1.1.1",
+ "The (Mostly) Universal AGT Interpreter, version 1.1.2",
"Copyright (C) 1996-1999,2001 by Robert Masenten",
"[Glk version]",
"-----------------------------------------------------------"
},
- "|SAGiliTy, The (Mostly) Universal AGT Interpreter, Version 1.1.1.1|N\n"
+ "|SAGiliTy, The (Mostly) Universal AGT Interpreter, Version 1.1.2|N\n"
"|ECopyright (C) 1996-1999,2001 by Robert Masenten|N\n"
"|EGlk version|N\n"
},
@@ -2620,12 +2620,12 @@ static gagt_special_t GAGT_SPECIALS[] = {
{
2,
{
- "Being run by AGiliTy version 1.1.1.1, Copyright (C) 1996-99,2001"
+ "Being run by AGiliTy version 1.1.2, Copyright (C) 1996-99,2001"
" Robert Masenten",
"Glk version"
},
"This game is being executed by:\n\n"
- " |SAGiliTy, The (Mostly) Universal AGT Interpreter, Version 1.1.1.1|N\n"
+ " |SAGiliTy, The (Mostly) Universal AGT Interpreter, Version 1.1.2|N\n"
" |ECopyright (C) 1996-1999,2001 by Robert Masenten|N\n"
" |EGlk version|N\n"
},
@@ -2634,11 +2634,11 @@ static gagt_special_t GAGT_SPECIALS[] = {
{
1,
{
- "Being run by AGiliTy version 1.1.1.1, Copyright (C) 1996-99,2001"
+ "Being run by AGiliTy version 1.1.2, Copyright (C) 1996-99,2001"
" Robert Masenten"
},
"This game is being executed by:\n\n"
- " |SAGiliTy, The (Mostly) Universal AGT Interpreter, Version 1.1.1.1|N\n"
+ " |SAGiliTy, The (Mostly) Universal AGT Interpreter, Version 1.1.2|N\n"
" |ECopyright (C) 1996-1999,2001 by Robert Masenten|N\n"
" |EGlk version|N\n"
},
@@ -2658,12 +2658,12 @@ static gagt_special_t GAGT_SPECIALS[] = {
{
3,
{
- "AGiliTy: The (Mostly) Universal AGT Interpreter version 1.1.1.1",
+ "AGiliTy: The (Mostly) Universal AGT Interpreter version 1.1.2",
"Copyright (C) 1996-99,2001 by Robert Masenten",
"Glk version"
},
"This game is being executed by:\n\n"
- " |SAGiliTy, The (Mostly) Universal AGT Interpreter, Version 1.1.1.1|N\n"
+ " |SAGiliTy, The (Mostly) Universal AGT Interpreter, Version 1.1.2|N\n"
" |ECopyright (C) 1996-1999,2001 by Robert Masenten|N\n"
" |EGlk version|N\n"
},
More information about the Scummvm-git-logs
mailing list