mirror of
https://github.com/ganelson/inform.git
synced 2024-07-02 23:14:57 +03:00
syncing from upstream
This commit is contained in:
commit
5ac954db3f
|
@ -1,6 +1,6 @@
|
|||
# Inform 7
|
||||
|
||||
[Version](notes/versioning.md): 10.2.0-beta+6W67 'Krypton' (26 June 2023)
|
||||
[Version](notes/versioning.md): 10.2.0-beta+6W68 'Krypton' (28 June 2023)
|
||||
|
||||
## About Inform
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
Prerelease: beta
|
||||
Build Date: 26 June 2023
|
||||
Build Number: 6W67
|
||||
Build Date: 28 June 2023
|
||||
Build Number: 6W68
|
||||
|
|
|
@ -460,12 +460,7 @@ and "17" can be equal as texts if X is 17.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>§16. Printing. </b>Unicode is not the native character set on Glulx: it came along as a late
|
||||
addition to Glulx's specification. The deal is that we have to explicitly
|
||||
tell the Glk interface layer to perform certain operations in a Unicode way;
|
||||
if we simply perform <span class="extract"><span class="extract-syntax">print (char) ch;</span></span> then the character <span class="extract"><span class="extract-syntax">ch</span></span> will be
|
||||
printed in ZSCII rather than Unicode.
|
||||
</p>
|
||||
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>§16. Printing. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">TEXT_TY_Say</span><span class="plain-syntax"> </span><span class="identifier-syntax">txt</span><span class="plain-syntax"> </span><span class="identifier-syntax">ch</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> </span><span class="identifier-syntax">dsize</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -2368,7 +2368,7 @@ available", using the following, which creates a socket. Again, see
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Hierarchy::make_available</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::make_available</span></span>:<br/>Noun Identifiers - <a href="2-ni.html#SP4">§4</a><br/>The Heap - <a href="2-th.html#SP2">§2</a><br/>Kind Declarations - <a href="2-kd.html#SP6">§6</a>, <a href="2-kd.html#SP8">§8</a><br/>Short Names - <a href="2-sn.html#SP1">§1</a>, <a href="2-sn.html#SP2">§2</a><br/>Completion Module - <a href="3-cm.html#SP1_1">§1.1</a>, <a href="3-cm.html#SP1_2">§1.2</a>, <a href="3-cm.html#SP1_6">§1.6</a>, <a href="3-cm.html#SP1_7">§1.7</a><br/>Use Options - <a href="3-uo.html#SP3">§3</a><br/>Activities - <a href="5-act.html#SP3">§3</a><br/>Conjugations - <a href="5-cnj.html#SP1">§1</a><br/>Instances - <a href="5-ins.html#SP4_1">§4.1</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">§2</a><br/>Rules - <a href="5-rls.html#SP8">§8</a><br/>Rulebooks - <a href="5-rlb.html#SP3">§3</a>, <a href="5-rlb.html#SP15_3">§15.3</a><br/>Variables - <a href="5-vrb.html#SP14">§14</a>, <a href="5-vrb.html#SP14_1">§14.1</a><br/>Properties - <a href="5-prp.html#SP5">§5</a>, <a href="5-prp.html#SP6">§6</a><br/>Relations - <a href="5-rlt.html#SP1">§1</a>, <a href="5-rlt.html#SP4">§4</a><br/>Kind Constructors - <a href="5-kc.html#SP4">§4</a>, <a href="5-kc.html#SP12">§12</a>, <a href="5-kc.html#SP17_2">§17.2</a>, <a href="5-kc.html#SP30_1_1">§30.1.1</a>, <a href="5-kc.html#SP30_3_2">§30.3.2</a>, <a href="5-kc.html#SP30_3_3">§30.3.3</a>, <a href="5-kc.html#SP30_3_4">§30.3.4</a>, <a href="5-kc.html#SP30_3_5">§30.3.5</a><br/>Actions - <a href="5-act2.html#SP7">§7</a>, <a href="5-act2.html#SP8_2">§8.2</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_1">§1.1</a>, <a href="6-bd.html#SP1_2">§1.2</a>, <a href="6-bd.html#SP1_3">§1.3</a>, <a href="6-bd.html#SP1_4">§1.4</a>, <a href="6-bd.html#SP1_5">§1.5</a>, <a href="6-bd.html#SP2">§2</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a><br/>Command Grammars - <a href="7-cg.html#SP3">§3</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP9">§9</a><br/>Kind GPRs - <a href="7-kg.html#SP1">§1</a>, <a href="7-kg.html#SP2">§2</a>, <a href="7-kg.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Hierarchy::make_available</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::make_available</span></span>:<br/>Noun Identifiers - <a href="2-ni.html#SP4">§4</a><br/>The Heap - <a href="2-th.html#SP2">§2</a><br/>Kind Declarations - <a href="2-kd.html#SP6">§6</a>, <a href="2-kd.html#SP8">§8</a><br/>Short Names - <a href="2-sn.html#SP1">§1</a>, <a href="2-sn.html#SP2">§2</a><br/>Completion Module - <a href="3-cm.html#SP1_1">§1.1</a>, <a href="3-cm.html#SP1_2">§1.2</a>, <a href="3-cm.html#SP1_6">§1.6</a>, <a href="3-cm.html#SP1_7">§1.7</a><br/>Use Options - <a href="3-uo.html#SP3">§3</a><br/>Activities - <a href="5-act.html#SP3">§3</a><br/>Conjugations - <a href="5-cnj.html#SP1">§1</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">§2</a><br/>Rules - <a href="5-rls.html#SP8">§8</a><br/>Rulebooks - <a href="5-rlb.html#SP3">§3</a>, <a href="5-rlb.html#SP15_3">§15.3</a><br/>Variables - <a href="5-vrb.html#SP14">§14</a>, <a href="5-vrb.html#SP14_1">§14.1</a><br/>Properties - <a href="5-prp.html#SP5">§5</a>, <a href="5-prp.html#SP6">§6</a><br/>Relations - <a href="5-rlt.html#SP1">§1</a>, <a href="5-rlt.html#SP4">§4</a><br/>Kind Constructors - <a href="5-kc.html#SP4">§4</a>, <a href="5-kc.html#SP12">§12</a>, <a href="5-kc.html#SP17_2">§17.2</a>, <a href="5-kc.html#SP30_1_1">§30.1.1</a>, <a href="5-kc.html#SP30_3_2">§30.3.2</a>, <a href="5-kc.html#SP30_3_3">§30.3.3</a>, <a href="5-kc.html#SP30_3_4">§30.3.4</a>, <a href="5-kc.html#SP30_3_5">§30.3.5</a><br/>Actions - <a href="5-act2.html#SP7">§7</a>, <a href="5-act2.html#SP8_2">§8.2</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_1">§1.1</a>, <a href="6-bd.html#SP1_2">§1.2</a>, <a href="6-bd.html#SP1_3">§1.3</a>, <a href="6-bd.html#SP1_4">§1.4</a>, <a href="6-bd.html#SP1_5">§1.5</a>, <a href="6-bd.html#SP2">§2</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a><br/>Command Grammars - <a href="7-cg.html#SP3">§3</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP9">§9</a><br/>Kind GPRs - <a href="7-kg.html#SP1">§1</a>, <a href="7-kg.html#SP2">§2</a>, <a href="7-kg.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ma_as</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::get_translation</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">ma_as</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">ma_as</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LargeScale::package_type</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">I</span><span class="string-syntax">"_linkage"</span><span class="plain-syntax">);</span>
|
||||
|
@ -2376,7 +2376,7 @@ available", using the following, which creates a socket. Again, see
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Wiring::socket</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">ma_as</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Hierarchy::make_available_one_per_name_only</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::make_available_one_per_name_only</span></span>:<br/>Instances - <a href="5-ins.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Hierarchy::make_available_one_per_name_only</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::make_available_one_per_name_only</span></span>:<br/>Instances - <a href="5-ins.html#SP1">§1</a>, <a href="5-ins.html#SP4_1">§4.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ma_as</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::get_translation</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">ma_as</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">ma_as</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LargeScale::package_type</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">I</span><span class="string-syntax">"_linkage"</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -414,7 +414,7 @@ an instance with an unexpected runtime value is called "out of place".
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::value_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterNames::set_translation</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">identifier</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterNames::clear_flag</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">MAKE_NAME_UNIQUE_ISYMF</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP17" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP17" class="function-link"><span class="function-syntax">Hierarchy::make_available_one_per_name_only</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4_2" class="paragraph-anchor"></a><b>§4.2. </b>When names are abbreviated for use on the World Index map (for instance,
|
||||
|
|
|
@ -31,7 +31,7 @@ GLKMAKEFILE = Make.cheapglk
|
|||
CC = cc
|
||||
#CC = gcc
|
||||
|
||||
OPTIONS = -g -Wall -Wmissing-prototypes -Wstrict-prototypes -Wno-unused -DOS_UNIX
|
||||
OPTIONS = -g -Wall -Wmissing-prototypes -Wno-unused -DOS_UNIX
|
||||
|
||||
# Locate the libxml2 library. You only need these lines if you are using
|
||||
# the VM_DEBUGGER option. If so, uncomment these and set appropriately.
|
||||
|
|
|
@ -124,9 +124,9 @@ void execute_loop()
|
|||
first. They have to be unsigned values, too, otherwise the
|
||||
0x80000000 case goes wonky. */
|
||||
if (vals0 < 0) {
|
||||
val0 = (-vals0);
|
||||
val0 = (-(glui32)vals0);
|
||||
if (vals1 < 0) {
|
||||
val1 = (-vals1);
|
||||
val1 = (-(glui32)vals1);
|
||||
value = val0 / val1;
|
||||
}
|
||||
else {
|
||||
|
@ -137,7 +137,7 @@ void execute_loop()
|
|||
else {
|
||||
val0 = vals0;
|
||||
if (vals1 < 0) {
|
||||
val1 = (-vals1);
|
||||
val1 = (-(glui32)vals1);
|
||||
value = -(val0 / val1);
|
||||
}
|
||||
else {
|
||||
|
@ -153,13 +153,13 @@ void execute_loop()
|
|||
if (vals1 == 0)
|
||||
fatal_error("Division by zero doing remainder.");
|
||||
if (vals1 < 0) {
|
||||
val1 = -vals1;
|
||||
val1 = -(glui32)vals1;
|
||||
}
|
||||
else {
|
||||
val1 = vals1;
|
||||
}
|
||||
if (vals0 < 0) {
|
||||
val0 = (-vals0);
|
||||
val0 = (-(glui32)vals0);
|
||||
value = -(val0 % val1);
|
||||
}
|
||||
else {
|
||||
|
@ -170,7 +170,7 @@ void execute_loop()
|
|||
break;
|
||||
case op_neg:
|
||||
vals0 = inst[0].value;
|
||||
value = (-vals0);
|
||||
value = (-(glui32)vals0);
|
||||
store_operand(inst[1].desttype, inst[1].value, value);
|
||||
break;
|
||||
|
||||
|
@ -527,7 +527,7 @@ void execute_loop()
|
|||
vals1 = (vals0) - vals1;
|
||||
}
|
||||
else {
|
||||
vals1 = (-vals1) % vals0;
|
||||
vals1 = (-(glui32)vals1) % vals0;
|
||||
}
|
||||
if (vals1 == 0)
|
||||
break;
|
||||
|
@ -663,7 +663,7 @@ void execute_loop()
|
|||
else if (vals0 >= 1)
|
||||
value = glulx_random() % (glui32)(vals0);
|
||||
else
|
||||
value = -(glulx_random() % (glui32)(-vals0));
|
||||
value = -(glulx_random() % (glui32)(-(glui32)vals0));
|
||||
store_operand(inst[1].desttype, inst[1].value, value);
|
||||
break;
|
||||
case op_setrandom:
|
||||
|
|
|
@ -81,10 +81,10 @@ typedef int16_t glsi16;
|
|||
/* Some macros to read and write integers to memory, always in big-endian
|
||||
format. */
|
||||
#define Read4(ptr) \
|
||||
( (glui32)(((unsigned char *)(ptr))[0] << 24) \
|
||||
| (glui32)(((unsigned char *)(ptr))[1] << 16) \
|
||||
| (glui32)(((unsigned char *)(ptr))[2] << 8) \
|
||||
| (glui32)(((unsigned char *)(ptr))[3]))
|
||||
( (glui32)((glui32)((unsigned char *)(ptr))[0] << 24) \
|
||||
| (glui32)((glui32)((unsigned char *)(ptr))[1] << 16) \
|
||||
| (glui32)((glui32)((unsigned char *)(ptr))[2] << 8) \
|
||||
| (glui32)((glui32)((unsigned char *)(ptr))[3]))
|
||||
#define Read2(ptr) \
|
||||
( (glui16)(((unsigned char *)(ptr))[0] << 8) \
|
||||
| (glui16)(((unsigned char *)(ptr))[1]))
|
||||
|
@ -195,6 +195,7 @@ extern void (*stream_char_handler)(unsigned char ch);
|
|||
extern void (*stream_unichar_handler)(glui32 ch);
|
||||
|
||||
/* main.c */
|
||||
extern glui32 init_rng_seed;
|
||||
extern void set_library_start_hook(void (*)(void));
|
||||
extern void set_library_autorestore_hook(void (*)(void));
|
||||
extern void fatal_error_handler(char *str, char *arg, int useval, glsi32 val) GLK_ATTRIBUTE_NORETURN;
|
||||
|
|
|
@ -14,6 +14,8 @@ glui32 gamefile_len = 0; /* The length within the stream. */
|
|||
char *init_err = NULL;
|
||||
char *init_err2 = NULL;
|
||||
|
||||
glui32 init_rng_seed = 0;
|
||||
|
||||
/* The library_start_hook is called at the beginning of glk_main. This
|
||||
is not normally necessary -- the library can do all its setup work
|
||||
before calling glk_main -- but iosglk has some weird cases which
|
||||
|
@ -49,7 +51,7 @@ void glk_main()
|
|||
return;
|
||||
}
|
||||
|
||||
glulx_setrandom(0);
|
||||
glulx_setrandom(init_rng_seed);
|
||||
#ifdef FLOAT_SUPPORT
|
||||
if (!init_float()) {
|
||||
return;
|
||||
|
|
|
@ -14,6 +14,19 @@
|
|||
symbol. Code contributions welcome.
|
||||
*/
|
||||
|
||||
/* Always use Glulxe's random number generator for MacOS and Windows.
|
||||
For Unix and anything else, it is optional: define
|
||||
COMPILE_RANDOM_CODE to use it.
|
||||
*/
|
||||
#if (defined(OS_MAC) || defined (WIN32)) && !defined(COMPILE_RANDOM_CODE)
|
||||
#define COMPILE_RANDOM_CODE
|
||||
#endif
|
||||
|
||||
#ifdef COMPILE_RANDOM_CODE
|
||||
static glui32 lo_random(void);
|
||||
static void lo_seed_random(glui32 seed);
|
||||
#endif
|
||||
|
||||
#ifdef OS_UNIX
|
||||
|
||||
#include <time.h>
|
||||
|
@ -45,13 +58,21 @@ void glulx_setrandom(glui32 seed)
|
|||
{
|
||||
if (seed == 0)
|
||||
seed = time(NULL);
|
||||
#ifdef COMPILE_RANDOM_CODE
|
||||
lo_seed_random(seed);
|
||||
#else
|
||||
srandom(seed);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Return a random number in the range 0 to 2^32-1. */
|
||||
glui32 glulx_random()
|
||||
{
|
||||
#ifdef COMPILE_RANDOM_CODE
|
||||
return (lo_random() << 16) ^ lo_random();
|
||||
#else
|
||||
return (random() << 16) ^ random();
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif /* OS_UNIX */
|
||||
|
@ -81,10 +102,6 @@ void glulx_free(void *ptr)
|
|||
free(ptr);
|
||||
}
|
||||
|
||||
#define COMPILE_RANDOM_CODE
|
||||
static glui32 lo_random(void);
|
||||
static void lo_seed_random(glui32 seed);
|
||||
|
||||
/* Return a random number in the range 0 to 2^32-1. */
|
||||
glui32 glulx_random()
|
||||
{
|
||||
|
@ -127,10 +144,6 @@ void glulx_free(void *ptr)
|
|||
free(ptr);
|
||||
}
|
||||
|
||||
#define COMPILE_RANDOM_CODE
|
||||
static glui32 lo_random(void);
|
||||
static void lo_seed_random(glui32 seed);
|
||||
|
||||
/* Return a random number in the range 0 to 2^32-1. */
|
||||
glui32 glulx_random()
|
||||
{
|
||||
|
|
|
@ -142,7 +142,7 @@ void stream_num(glsi32 val, int inmiddle, int charnum)
|
|||
}
|
||||
else {
|
||||
if (val < 0)
|
||||
ival = -val;
|
||||
ival = -(glui32)val;
|
||||
else
|
||||
ival = val;
|
||||
|
||||
|
|
|
@ -34,6 +34,7 @@ static void glkunix_game_autorestore(void);
|
|||
glkunix_argumentlist_t glkunix_arguments[] = {
|
||||
|
||||
{ "--undo", glkunix_arg_ValueFollows, "Number of undo states to store." },
|
||||
{ "--rngseed", glkunix_arg_ValueFollows, "Fix initial RNG if nonzero." },
|
||||
|
||||
#if GLKUNIX_AUTOSAVE_FEATURES
|
||||
{ "--autosave", glkunix_arg_NoValue, "Autosave every turn." },
|
||||
|
@ -82,8 +83,9 @@ int glkunix_startup_code(glkunix_startup_t *data)
|
|||
if (!strcmp(data->argv[ix], "--undo")) {
|
||||
ix++;
|
||||
if (ix<data->argc) {
|
||||
int val = atoi(data->argv[ix]);
|
||||
if (val <= 0) {
|
||||
char *endptr = NULL;
|
||||
int val = strtol(data->argv[ix], &endptr, 10);
|
||||
if (*endptr) {
|
||||
init_err = "--undo must be a number.";
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -92,6 +94,20 @@ int glkunix_startup_code(glkunix_startup_t *data)
|
|||
continue;
|
||||
}
|
||||
|
||||
if (!strcmp(data->argv[ix], "--rngseed")) {
|
||||
ix++;
|
||||
if (ix<data->argc) {
|
||||
char *endptr = NULL;
|
||||
int val = strtol(data->argv[ix], &endptr, 10);
|
||||
if (*endptr) {
|
||||
init_err = "--rngseed must be a number.";
|
||||
return TRUE;
|
||||
}
|
||||
init_rng_seed = val;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
#if GLKUNIX_AUTOSAVE_FEATURES
|
||||
if (!strcmp(data->argv[ix], "--autosave")) {
|
||||
pref_autosave = TRUE;
|
||||
|
|
|
@ -75,20 +75,6 @@ interpreters: $(INTERPRETERS)/dumb-frotz/dumb-frotz $(INTERPRETERS)/dumb-glulx/g
|
|||
# that story files in Z format perform as intended. It's written in old C,
|
||||
# and is dumb in the sense that it uses a dumb terminal.
|
||||
|
||||
GLKLIB = libcheapglk.a
|
||||
GLKINCLUDEDIR = ../cheapglk
|
||||
GLKLIBDIR = ../cheapglk
|
||||
GLKMAKEFILE = Make.cheapglk
|
||||
|
||||
CHEAPGLK_OBJS = \
|
||||
cgfref.o cggestal.o cgmisc.o cgstream.o cgstyle.o cgwindow.o cgschan.o \
|
||||
cgunicod.o main.o gi_dispa.o gi_blorb.o cgblorb.o
|
||||
|
||||
GLULXE_OBJS = main.o files.o vm.o exec.o float.o funcs.o operand.o string.o glkop.o \
|
||||
heap.o serial.o search.o gestalt.o osdepend.o unixstrt.o accel.o profile.o
|
||||
|
||||
CHEAPGLK_HEADERS = cheapglk.h gi_dispa.h
|
||||
|
||||
$(INTERPRETERS)/dumb-frotz/dumb-frotz: \
|
||||
$(INTERPRETERS)/dumb-frotz/*.c \
|
||||
$(INTERPRETERS)/dumb-frotz/*.h
|
||||
|
@ -127,7 +113,7 @@ $(INTERPRETERS)/dumb-glulx/glulxe/glulxe: \
|
|||
cd $(INTERPRETERS)/dumb-glulx/cheapglk; make clean
|
||||
cd $(INTERPRETERS)/dumb-glulx/cheapglk; make
|
||||
cd $(INTERPRETERS)/dumb-glulx/glulxe; make clean
|
||||
cd $(INTERPRETERS)/dumb-glulx/glulxe; make
|
||||
cd $(INTERPRETERS)/dumb-glulx/glulxe; make OPTIONS=-g\ -Wall\ -Wno-unused\ -DOS_UNIX\ -UWIN32\ -DCOMPILE_RANDOM_CODE
|
||||
|
||||
# Cleaning up:
|
||||
|
||||
|
@ -138,9 +124,9 @@ clean:
|
|||
.PHONY: purge
|
||||
purge:
|
||||
$(call clean-up)
|
||||
rm -f $(ME)/Tangled/$(ME)
|
||||
rm -f $(INTERPRETERS)/dumb-frotz/dumb-frotz
|
||||
rm -f $(INTERPRETERS)/dumb-glulx/glulxe/glulxe
|
||||
rm -f $(ME)/Tangled/$(ME)$(EXEEXTENSION)
|
||||
rm -f $(INTERPRETERS)/dumb-frotz/dumb-frotz$(EXEEXTENSION)
|
||||
rm -f $(INTERPRETERS)/dumb-glulx/glulxe/glulxe$(EXEEXTENSION)
|
||||
|
||||
define clean-up
|
||||
rm -f $(SANDBOX)/*.o
|
||||
|
|
|
@ -1,29 +1,29 @@
|
|||
100.0% in inform7 run
|
||||
67.6% in compilation to Inter
|
||||
45.7% in //Sequence::undertake_queued_tasks//
|
||||
4.6% in //MajorNodes::pre_pass//
|
||||
3.8% in //MajorNodes::pass_1//
|
||||
1.5% in //ImperativeDefinitions::assess_all//
|
||||
1.5% in //RTKindConstructors::compile//
|
||||
1.1% in //RTPhrasebook::compile_entries//
|
||||
1.1% in //Sequence::lint_inter//
|
||||
68.8% in compilation to Inter
|
||||
46.3% in //Sequence::undertake_queued_tasks//
|
||||
5.0% in //MajorNodes::pre_pass//
|
||||
3.6% in //MajorNodes::pass_1//
|
||||
1.8% in //ImperativeDefinitions::assess_all//
|
||||
1.4% in //RTKindConstructors::compile//
|
||||
1.4% in //RTPhrasebook::compile_entries//
|
||||
1.0% in //Sequence::lint_inter//
|
||||
0.7% in //ImperativeDefinitions::compile_first_block//
|
||||
0.7% in //MajorNodes::pass_2//
|
||||
0.7% in //World::stage_V//
|
||||
0.3% in //CompletionModule::compile//
|
||||
0.3% in //ImperativeDefinitions::compile_first_block//
|
||||
0.3% in //MajorNodes::pass_2//
|
||||
0.3% in //RTKindConstructors::compile_permissions//
|
||||
0.3% in //Sequence::undertake_queued_tasks//
|
||||
0.3% in //Sequence::undertake_queued_tasks//
|
||||
0.3% in //World::stage_V//
|
||||
5.3% not specifically accounted for
|
||||
28.0% in running Inter pipeline
|
||||
9.6% in step 14/15: generate inform6 -> auto.inf
|
||||
7.3% in step 5/15: load-binary-kits
|
||||
5.7% in step 6/15: make-synoptic-module
|
||||
1.9% in step 9/15: make-identifiers-unique
|
||||
4.4% not specifically accounted for
|
||||
26.8% in running Inter pipeline
|
||||
9.0% in step 14/15: generate inform6 -> auto.inf
|
||||
6.8% in step 5/15: load-binary-kits
|
||||
5.4% in step 6/15: make-synoptic-module
|
||||
1.8% in step 9/15: make-identifiers-unique
|
||||
0.3% in step 12/15: eliminate-redundant-operations
|
||||
0.3% in step 4/15: compile-splats
|
||||
0.3% in step 7/15: shorten-wiring
|
||||
0.3% in step 8/15: detect-indirect-calls
|
||||
1.9% not specifically accounted for
|
||||
3.4% in supervisor
|
||||
0.8% not specifically accounted for
|
||||
2.2% not specifically accounted for
|
||||
3.9% in supervisor
|
||||
0.4% not specifically accounted for
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "Architecture16Kit",
|
||||
"version": "10.2.0-beta+6W67"
|
||||
"version": "10.2.0-beta+6W68"
|
||||
},
|
||||
"compatibility": "16-bit",
|
||||
"kit-details": {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "Architecture32Kit",
|
||||
"version": "10.2.0-beta+6W67"
|
||||
"version": "10.2.0-beta+6W68"
|
||||
},
|
||||
"compatibility": "32-bit",
|
||||
"kit-details": {
|
||||
|
|
|
@ -404,11 +404,6 @@ This calculates a hash value for the string, using Bernstein's algorithm.
|
|||
];
|
||||
|
||||
@h Printing.
|
||||
Unicode is not the native character set on Glulx: it came along as a late
|
||||
addition to Glulx's specification. The deal is that we have to explicitly
|
||||
tell the Glk interface layer to perform certain operations in a Unicode way;
|
||||
if we simply perform |print (char) ch;| then the character |ch| will be
|
||||
printed in ZSCII rather than Unicode.
|
||||
|
||||
=
|
||||
[ TEXT_TY_Say txt ch i dsize;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "BasicInformKit",
|
||||
"version": "10.2.0-beta+6W67"
|
||||
"version": "10.2.0-beta+6W68"
|
||||
},
|
||||
"needs": [ {
|
||||
"need": {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "CommandParserKit",
|
||||
"version": "10.2.0-beta+6W67"
|
||||
"version": "10.2.0-beta+6W68"
|
||||
},
|
||||
"needs": [ {
|
||||
"need": {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "EnglishLanguageKit",
|
||||
"version": "10.2.0-beta+6W67"
|
||||
"version": "10.2.0-beta+6W68"
|
||||
},
|
||||
"needs": [ {
|
||||
"need": {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "WorldModelKit",
|
||||
"version": "10.2.0-beta+6W67"
|
||||
"version": "10.2.0-beta+6W68"
|
||||
},
|
||||
"needs": [ {
|
||||
"need": {
|
||||
|
|
|
@ -4,7 +4,7 @@ L sorts to {-7, -7, 0, 2, 3, 5, 11, 16}.
|
|||
L then reverses to {16, 11, 5, 3, 2, 0, -7, -7}.
|
||||
L then rotates to {-7, 16, 11, 5, 3, 2, 0, -7}.
|
||||
L then rotates backwards to {16, 11, 5, 3, 2, 0, -7, -7}.
|
||||
L sorts randomly to {3, 5, 11, 2, 16, -7, -7, 0}.
|
||||
L sorts randomly to {3, 16, 2, 11, -7, -7, 0, 5}.
|
||||
L sorts in reverse order to {16, 11, 5, 3, 2, 0, -7, -7}.
|
||||
"F" = list of fruits: {apple, pear, orange}
|
||||
F sorts in size order to {orange, pear, apple}.
|
||||
|
|
|
@ -1,26 +1,26 @@
|
|||
"a random fruit" = fruit: yuzu
|
||||
"a random fruit" = fruit: apple
|
||||
"a random fruit" = fruit: yuzu
|
||||
"a random fruit" = fruit: pear
|
||||
"a random fruit" = fruit: yuzu
|
||||
"a random fruit between pear and yuzu" = fruit: yuzu
|
||||
"a random fruit" = fruit: persimmon
|
||||
"a random fruit between pear and yuzu" = fruit: persimmon
|
||||
"a random fruit from pear to yuzu" = fruit: yuzu
|
||||
"a random fruit from pear to yuzu" = fruit: yuzu
|
||||
"a random number between 10 and 19" = number: 19
|
||||
"a random fruit between pear and yuzu" = fruit: pear
|
||||
"a random fruit from pear to yuzu" = fruit: pear
|
||||
"a random fruit from pear to yuzu" = fruit: pear
|
||||
"a random number between 10 and 19" = number: 17
|
||||
"a random number between 10 and 19" = number: 16
|
||||
"a random number between 10 and 19" = number: 13
|
||||
"a random number from 10 to 19" = number: 10
|
||||
"a random number from 10 to 19" = number: 14
|
||||
"a random number from 10 to 19" = number: 11
|
||||
"a random number from 10 to 19" = number: 13
|
||||
"a random number from 10 to 19" = number: 13
|
||||
"a random number from 10 to 19" = number: 12
|
||||
"whether or not a random chance of 1 in 3 succeeds" = truth state: false
|
||||
"whether or not a random chance of 1 in 3 succeeds" = truth state: false
|
||||
"whether or not a random chance of 1 in 3 succeeds" = truth state: true
|
||||
"whether or not a random chance of 1 in 3 succeeds" = truth state: false
|
||||
"whether or not a random chance of 1 in 3 succeeds" = truth state: false
|
||||
"whether or not a random chance of 1 in 3 succeeds" = truth state: false
|
||||
"whether or not a random chance of 1 in 3 succeeds" = truth state: false
|
||||
"whether or not a random chance of 1 in 3 succeeds" = truth state: false
|
||||
"a random number between 1 and 100" = number: 2
|
||||
"a random number between 1 and 100" = number: 54
|
||||
"a random number between 1 and 100" = number: 36
|
||||
"a random number between 1 and 100" = number: 2
|
||||
"a random number between 1 and 100" = number: 54
|
||||
"a random number between 1 and 100" = number: 36
|
||||
"whether or not a random chance of 1 in 3 succeeds" = truth state: true
|
||||
"a random number between 1 and 100" = number: 26
|
||||
"a random number between 1 and 100" = number: 66
|
||||
"a random number between 1 and 100" = number: 75
|
||||
"a random number between 1 and 100" = number: 26
|
||||
"a random number between 1 and 100" = number: 66
|
||||
"a random number between 1 and 100" = number: 75
|
||||
|
|
|
@ -11,90 +11,90 @@ This is Summer.
|
|||
This is Autumn.
|
||||
This is Winter.
|
||||
This is Spring.
|
||||
This is a rainy day.
|
||||
This is a rainy day.
|
||||
This is a scorching hot day.
|
||||
This is a cloudy day.
|
||||
This is a cloudy day.
|
||||
This is a cloudy day.
|
||||
This is a cloudy day.
|
||||
This is a cloudy day.
|
||||
This is a cloudy day.
|
||||
This is a cloudy day.
|
||||
This is a cloudy day.
|
||||
This is a cloudy day.
|
||||
This is a rainy day.
|
||||
This is a cloudy day.
|
||||
This is a rainy day.
|
||||
This is a rainy day.
|
||||
This is a sunny day.
|
||||
This is a cloudy day.
|
||||
This is a rainy day.
|
||||
This is a cloudy day.
|
||||
This is a rainy day.
|
||||
This is a scorching hot day.
|
||||
This is a rainy day.
|
||||
This is a sunny day.
|
||||
This is a rainy day.
|
||||
This is a cloudy day.
|
||||
This is a cloudy day.
|
||||
This is a rainy day.
|
||||
This is a cloudy day.
|
||||
Clearly it's Epitaph.
|
||||
Clearly it's Level Five.
|
||||
Clearly it's Nuages.
|
||||
Clearly it's Lizard.
|
||||
Clearly it's Starless.
|
||||
Clearly it's Level Five.
|
||||
Clearly it's Fracture.
|
||||
Clearly it's Lizard.
|
||||
Clearly it's Level Five.
|
||||
Clearly it's Starless.
|
||||
Clearly it's Level Five.
|
||||
Clearly it's Lizard.
|
||||
Clearly it's Epitaph.
|
||||
Clearly it's Fracture.
|
||||
Clearly it's Lizard.
|
||||
Clearly it's Epitaph.
|
||||
Clearly it's Lizard.
|
||||
Clearly it's Nuages.
|
||||
Clearly it's Lizard.
|
||||
Clearly it's Epitaph.
|
||||
Clearly it's Starless.
|
||||
Clearly it's Epitaph.
|
||||
Clearly it's Nuages.
|
||||
Clearly it's Epitaph.
|
||||
The digit is 2.
|
||||
Clearly it's Starless.
|
||||
Clearly it's Epitaph.
|
||||
Clearly it's Lizard.
|
||||
Clearly it's Fracture.
|
||||
Clearly it's Lizard.
|
||||
Clearly it's Nuages.
|
||||
The digit is 3.
|
||||
The digit is 1.
|
||||
The digit is 5.
|
||||
The digit is 2.
|
||||
The digit is 4.
|
||||
The digit is 4.
|
||||
The digit is 1.
|
||||
The digit is 3.
|
||||
The digit is 1.
|
||||
The digit is 4.
|
||||
The digit is 3.
|
||||
The digit is 2.
|
||||
The digit is 5.
|
||||
The letter is A.
|
||||
The letter is A.
|
||||
The letter is A.
|
||||
The letter is A.
|
||||
The light changes randomly again; now it's red.
|
||||
The light changes randomly again; now it's green.
|
||||
The light changes randomly again; now it's red.
|
||||
The letter is B.
|
||||
The letter is B.
|
||||
The letter is B.
|
||||
The letter is B.
|
||||
The light changes randomly again; now it's green.
|
||||
The light changes randomly again; now it's amber.
|
||||
The light changes randomly again; now it's green.
|
||||
The light changes randomly again; now it's amber.
|
||||
The light changes randomly again; now it's green.
|
||||
The coin comes up tails.
|
||||
The coin comes up tails.
|
||||
The coin comes up heads.
|
||||
The coin comes up heads.
|
||||
The coin comes up tails.
|
||||
The coin comes up heads.
|
||||
The coin comes up tails.
|
||||
The coin comes up heads.
|
||||
Maybe the murderer is Colonel Mustard.
|
||||
Maybe the murderer is Professor Plum.
|
||||
Maybe the murderer is Cardinal Cerise.
|
||||
Maybe the murderer is Colonel Mustard.
|
||||
Maybe the murderer is Cardinal Cerise.
|
||||
Maybe the murderer is Professor Plum.
|
||||
Maybe the murderer is Cardinal Cerise.
|
||||
Maybe the murderer is Professor Plum.
|
||||
Maybe the murderer is Colonel Mustard.
|
||||
Maybe the murderer is Cardinal Cerise.
|
||||
Maybe the murderer is Professor Plum.
|
||||
Maybe the murderer is Colonel Mustard.
|
||||
Maybe the murderer is Cardinal Cerise.
|
||||
Maybe the murderer is Colonel Mustard.
|
||||
Maybe the murderer is Professor Plum.
|
||||
Maybe the victim is Colonel Mustard.
|
||||
Maybe the victim is Professor Plum.
|
||||
Maybe the victim is Cardinal Cerise.
|
||||
Maybe the victim is Colonel Mustard.
|
||||
Maybe the victim is Cardinal Cerise.
|
||||
Maybe the victim is Professor Plum.
|
||||
Maybe the victim is Professor Plum.
|
||||
Maybe the victim is Cardinal Cerise.
|
||||
Maybe the victim is Colonel Mustard.
|
||||
Maybe the victim is Professor Plum.
|
||||
Maybe the victim is Cardinal Cerise.
|
||||
Maybe the victim is Cardinal Cerise.
|
||||
Maybe the victim is Cardinal Cerise.
|
||||
Maybe the victim is Professor Plum.
|
||||
Maybe the victim is Cardinal Cerise.
|
||||
Maybe the victim is Colonel Mustard.
|
||||
The screen door squeaks surprisingly loudly.
|
||||
|
|
|
@ -491,10 +491,10 @@ Table of Zoggle
|
|||
(row 4) | 4.4 |
|
||||
Table of Selected Numbers
|
||||
(row 1) | 9 | nine |
|
||||
(row 2) | 154 | one hundred and fifty-four |
|
||||
(row 3) | 3 | three |
|
||||
(row 4) | 4 | four |
|
||||
(row 5) | 27 | twenty-seven |
|
||||
(row 2) | 27 | twenty-seven |
|
||||
(row 3) | 4 | four |
|
||||
(row 4) | 3 | three |
|
||||
(row 5) | 154 | one hundred and fifty-four |
|
||||
(row 6) | -- --
|
||||
(row 7) | -- --
|
||||
(row 8) | -- --
|
||||
|
|
|
@ -1 +1 @@
|
|||
-dataresourcetext '3:inform7/Tests/Test Filings/_internal_files/Nettles.txt'
|
||||
-dataresourcetext "3:inform7/Tests/Test Filings/_internal_files/Nettles.txt"
|
||||
|
|
|
@ -345,7 +345,7 @@ void RTInstances::set_translation(instance *I, text_stream *identifier) {
|
|||
inter_name *iname = RTInstances::value_iname(I);
|
||||
InterNames::set_translation(iname, identifier);
|
||||
InterNames::clear_flag(iname, MAKE_NAME_UNIQUE_ISYMF);
|
||||
Hierarchy::make_available(iname);
|
||||
Hierarchy::make_available_one_per_name_only(iname);
|
||||
}
|
||||
|
||||
@ When names are abbreviated for use on the World Index map (for instance,
|
||||
|
|
|
@ -82,7 +82,7 @@
|
|||
|
||||
show: $A
|
||||
|
||||
match text: $A $I
|
||||
match platform text: $A $I
|
||||
or: 'produced incorrect output'
|
||||
|
||||
-end
|
||||
|
@ -110,10 +110,10 @@
|
|||
|
||||
show: $A
|
||||
|
||||
match text: $AA $IA
|
||||
match platform text: $AA $IA
|
||||
or: 'produced incorrect output on A'
|
||||
|
||||
match text: $AB $IB
|
||||
match platform text: $AB $IB
|
||||
or: 'produced incorrect output on B'
|
||||
|
||||
-end
|
||||
|
|
|
@ -6,14 +6,14 @@ Gelato's Syndrome. It's struck, and it's struck hard. In these sticky summer mon
|
|||
|
||||
Patient Zero
|
||||
An Interactive Fiction
|
||||
Release 1 / Serial number 160428 / Inform 7 v10.1.0 / D
|
||||
Release 1 / Serial number 160428 / Inform 7 v10.2.0 / D
|
||||
|
||||
Alfred Cralle Pool Hall
|
||||
The town's most popular gathering-place, the pool hall is decorated in honor of the inventor of the ice cream scoop.
|
||||
|
||||
An air conditioner sits in the corner, unhappily inert.
|
||||
|
||||
You can see Lewis and Linnea here.
|
||||
You can see Lewis and Linnea here. The latter looks as though dipped in french vanilla.
|
||||
|
||||
>(Testing.)
|
||||
|
||||
|
@ -58,7 +58,7 @@ Vanessa watches serenely as the metal door slides automatically back in place, s
|
|||
>[6] ask vanessa for french vanilla
|
||||
"Do you have a coupon?" Vanessa demands. You admit you do not. "No french vanilla for you!"
|
||||
|
||||
Antony trades in the coupon and receives a chocolate chip ice cream cone from Vanessa.
|
||||
Antony trades in the coupon and receives a blackberry sorbet ice cream cone from Vanessa.
|
||||
|
||||
>[7] ask vanessa for chocolate
|
||||
"Do you have a coupon?" Vanessa demands. You admit you do not. "No chocolate for you!"
|
||||
|
@ -77,6 +77,6 @@ Vanessa watches serenely as the metal door slides automatically back in place, s
|
|||
>[9] ask vanessa for chocolate chocolate chip
|
||||
"Do you have a coupon?" Vanessa demands. You admit you do not. "No chocolate chocolate chip for you!"
|
||||
|
||||
Martin trades in the coupon and receives a dulce de leche ice cream cone from Vanessa.
|
||||
Martin trades in the coupon and receives a rocky road ice cream cone from Vanessa.
|
||||
|
||||
>Are you sure you want to quit?
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
The Speed of Thought
|
||||
An Interactive Fiction
|
||||
Release 1 / Serial number 160428 / Inform 7 v10.1.0 / D
|
||||
Release 1 / Serial number 160428 / Inform 7 v10.2.0 / D
|
||||
|
||||
Science Journalism Desk
|
||||
From here you, the Science Anchor, have the privilege of reporting the latest and most fascinating stories to an eager public.
|
||||
|
@ -14,19 +14,19 @@ Currently you have to report on the International Space Station. Your story coul
|
|||
>(Testing.)
|
||||
|
||||
>[1] report experiment module
|
||||
You turn to the camera and speak: "The experiment module has a length of about 7.34211 bathtubs."
|
||||
You turn to the camera and speak: "The experiment module has a length of roughly 7.34211 bathtubs."
|
||||
|
||||
>[2] report logistics
|
||||
"The logistics module has a length of roughly 2.76974 bathtubs." Right now the station will be cutting over to a visual of that.
|
||||
"The logistics module has a length of approximately 2.76974 bathtubs." Right now the station will be cutting over to a visual of that.
|
||||
|
||||
>[3] report height
|
||||
Turning to another camera angle, you add: "The station orbits at heights between about 627.53949 Empire State buildings and 1038.37476 Empire State buildings above the earth."
|
||||
Turning to another camera angle, you add: "The station orbits at heights between around 627.53949 Empire State buildings and 1038.37476 Empire State buildings above the earth."
|
||||
|
||||
>[4] report array
|
||||
"The solar array has a length of around 1.16 Olympic swimming pools and an area of about 125.0 queen-sized mattresses." Pity the kids in audiovisual who have to scare that image together in a hurry.
|
||||
"The solar array has a length of approximately 1.16 Olympic swimming pools and an area of about 125.0 queen-sized mattresses." Pity the kids in audiovisual who have to scare that image together in a hurry.
|
||||
|
||||
>[5] report solar cell
|
||||
"The individual solar cell has an area of roughly 0.17391 credit cards." You smile brightly.
|
||||
"The individual solar cell has an area of approximately 0.17391 credit cards." You smile brightly.
|
||||
|
||||
And that's all! The channel cuts to weather.
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
M. Melmoth's Duel
|
||||
An Interactive Fiction
|
||||
Release 1 / Serial number 160428 / Inform 7 v10.1.0 / D
|
||||
Release 1 / Serial number 160428 / Inform 7 v10.2.0 / D
|
||||
|
||||
Saint-Germain-des-Prés
|
||||
Haunt of artists, of the coffee-drinking sort, and of cafés, of the artist-haunted sort, you once again find yourself outside M. Melmoth's hotel. Today crowds of vulgar children play chase around the lampposts, and you long to be indoors.
|
||||
|
@ -16,7 +16,7 @@ Haunt of artists, of the coffee-drinking sort, and of cafés, of the artist-haun
|
|||
Hôtel d'Alsace
|
||||
Typical. Oscar writes you a letter announcing his own imminent demise - "My wallpaper and I are fighting a duel to the death. One or other of us has got to go." - and then you get there and he's out, no doubt procuring paint the colour of absinthe, if he isn't procuring the painter.
|
||||
|
||||
In this light, the wallpaper has a distinctly aquamarine wash.
|
||||
In this light, the wallpaper has a distinctly darkish purple wash. You particularly dislike purple.
|
||||
|
||||
>[2] out
|
||||
You leave, shaking your head. But within twenty-four hours, you are back, as you always knew you would be.
|
||||
|
@ -30,7 +30,7 @@ Haunt of artists, of the coffee-drinking sort, and of cafés, of the artist-haun
|
|||
Hôtel d'Alsace
|
||||
Typical. Oscar writes you a letter announcing his own imminent demise - "My wallpaper and I are fighting a duel to the death. One or other of us has got to go." - and then you get there and he's out, no doubt procuring paint the colour of absinthe, if he isn't procuring the painter.
|
||||
|
||||
In this light, the wallpaper has a distinctly green wash.
|
||||
In this light, the wallpaper has a distinctly aquamarine wash.
|
||||
|
||||
>[5] out
|
||||
You leave, shaking your head. But within twenty-four hours, you are back, as you always knew you would be.
|
||||
|
|
Loading…
Reference in a new issue