projects
/
open-adventure.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
More tests, multilined yaml
[open-adventure.git]
/
misc.c
diff --git
a/misc.c
b/misc.c
index 5eb1fa2f3d074ad3734e205723b836cb8ef8c789..dc6cec50a2704b1631ab23f5a8af3ace5a27f71d 100644
(file)
--- a/
misc.c
+++ b/
misc.c
@@
-155,7
+155,7
@@
void wordclear(token_t *v)
/* I/O routines (speak, pspeak, rspeak, get_input, yes) */
/* I/O routines (speak, pspeak, rspeak, get_input, yes) */
-void vspeak(const char* msg, va_list ap)
+void vspeak(const char* msg,
bool blank,
va_list ap)
{
// Do nothing if we got a null pointer.
if (msg == NULL)
{
// Do nothing if we got a null pointer.
if (msg == NULL)
@@
-165,9
+165,8
@@
void vspeak(const char* msg, va_list ap)
if (strlen(msg) == 0)
return;
if (strlen(msg) == 0)
return;
- // Print a newline if the global game.blklin says to.
- if (game.blklin == true)
- printf("\n");
+ if (blank == true)
+ printf("\n");
int msglen = strlen(msg);
int msglen = strlen(msg);
@@
-187,7
+186,7
@@
void vspeak(const char* msg, va_list ap)
} else {
long arg = va_arg(ap, long);
if (arg == -1)
} else {
long arg = va_arg(ap, long);
if (arg == -1)
- arg = 0;
+ arg = 0;
// LCOV_EXCL_LINE - don't think we can get here.
i++;
// Integer specifier. In order to accommodate the fact
// that PARMS can have both legitimate integers *and*
i++;
// Integer specifier. In order to accommodate the fact
// that PARMS can have both legitimate integers *and*
@@
-253,11
+252,11
@@
void speak(const char* msg, ...)
{
va_list ap;
va_start(ap, msg);
{
va_list ap;
va_start(ap, msg);
- vspeak(msg, ap);
+ vspeak(msg,
true,
ap);
va_end(ap);
}
va_end(ap);
}
-void pspeak(vocab_t msg, enum speaktype mode, int skip, ...)
+void pspeak(vocab_t msg, enum speaktype mode, int skip,
bool blank,
...)
/* Find the skip+1st message from msg and print it. Modes are:
* feel = for inventory, what you can touch
* look = the long description for the state the object is in
/* Find the skip+1st message from msg and print it. Modes are:
* feel = for inventory, what you can touch
* look = the long description for the state the object is in
@@
-265,22
+264,22
@@
void pspeak(vocab_t msg, enum speaktype mode, int skip, ...)
* study = text on the object. */
{
va_list ap;
* study = text on the object. */
{
va_list ap;
- va_start(ap,
skip
);
+ va_start(ap,
blank
);
switch (mode) {
case touch:
switch (mode) {
case touch:
-
vspeak(objects[msg].inventory
, ap);
+
vspeak(objects[msg].inventory, blank
, ap);
break;
case look:
break;
case look:
-
vspeak(objects[msg].descriptions[skip]
, ap);
+
vspeak(objects[msg].descriptions[skip], blank
, ap);
break;
case hear:
break;
case hear:
-
vspeak(objects[msg].sounds[skip]
, ap);
+
vspeak(objects[msg].sounds[skip], blank
, ap);
break;
case study:
break;
case study:
-
vspeak(objects[msg].texts[skip]
, ap);
+
vspeak(objects[msg].texts[skip], blank
, ap);
break;
case change:
break;
case change:
-
vspeak(objects[msg].changes[skip]
, ap);
+
vspeak(objects[msg].changes[skip], blank
, ap);
break;
}
va_end(ap);
break;
}
va_end(ap);
@@
-291,11
+290,11
@@
void rspeak(vocab_t i, ...)
{
va_list ap;
va_start(ap, i);
{
va_list ap;
va_start(ap, i);
- vspeak(arbitrary_messages[i], ap);
+ vspeak(arbitrary_messages[i],
true,
ap);
va_end(ap);
}
va_end(ap);
}
-void echo_input(FILE* destination, c
har* input_prompt,
char* input)
+void echo_input(FILE* destination, c
onst char* input_prompt, const
char* input)
{
size_t len = strlen(input_prompt) + strlen(input) + 1;
char* prompt_and_input = (char*) xmalloc(len);
{
size_t len = strlen(input_prompt) + strlen(input) + 1;
char* prompt_and_input = (char*) xmalloc(len);
@@
-325,12
+324,11
@@
char* get_input()
{
// Set up the prompt
char input_prompt[] = "> ";
{
// Set up the prompt
char input_prompt[] = "> ";
- if (!prompt)
+ if (!
settings.
prompt)
input_prompt[0] = '\0';
input_prompt[0] = '\0';
- // Print a blank line if game.blklin tells us to.
- if (game.blklin == true)
- printf("\n");
+ // Print a blank line
+ printf("\n");
char* input;
while (true) {
char* input;
while (true) {
@@
-353,8
+351,8
@@
char* get_input()
if (!isatty(0))
echo_input(stdout, input_prompt, input);
if (!isatty(0))
echo_input(stdout, input_prompt, input);
- if (logfp)
- echo_input(
logfp, input_prompt
, input);
+ if (
settings.
logfp)
+ echo_input(
settings.logfp, ""
, input);
return (input);
}
return (input);
}
@@
-459,7
+457,7
@@
int get_motion_vocab_id(const char* word)
{
for (int i = 0; i < NMOTIONS; ++i) {
for (int j = 0; j < motions[i].words.n; ++j) {
{
for (int i = 0; i < NMOTIONS; ++i) {
for (int j = 0; j < motions[i].words.n; ++j) {
- if (strcasecmp(word, motions[i].words.strs[j]) == 0 && (strlen(word) > 1 || strchr(ignore, word[0]) == NULL || !oldstyle))
+ if (strcasecmp(word, motions[i].words.strs[j]) == 0 && (strlen(word) > 1 || strchr(ignore, word[0]) == NULL || !
settings.
oldstyle))
return (i);
}
}
return (i);
}
}
@@
-485,7
+483,7
@@
int get_action_vocab_id(const char* word)
{
for (int i = 0; i < NACTIONS; ++i) {
for (int j = 0; j < actions[i].words.n; ++j) {
{
for (int i = 0; i < NACTIONS; ++i) {
for (int j = 0; j < actions[i].words.n; ++j) {
- if (strcasecmp(word, actions[i].words.strs[j]) == 0 && (strlen(word) > 1 || strchr(ignore, word[0]) == NULL || !oldstyle))
+ if (strcasecmp(word, actions[i].words.strs[j]) == 0 && (strlen(word) > 1 || strchr(ignore, word[0]) == NULL || !
settings.
oldstyle))
return (i);
}
}
return (i);
}
}
@@
-633,8
+631,8
@@
long atdwrf(long where)
return (at);
}
return (at);
}
-/* Utility routines (
SETBIT, TSTBIT
, set_seed, get_next_lcg_value,
- * randrange
, RNDVOC
) */
+/* Utility routines (
setbit, tstbit
, set_seed, get_next_lcg_value,
+ * randrange) */
long setbit(long bit)
/* Returns 2**bit for use in constructing bit-masks. */
long setbit(long bit)
/* Returns 2**bit for use in constructing bit-masks. */
@@
-652,6
+650,9
@@
void set_seed(long seedval)
/* Set the LCG seed */
{
game.lcg_x = (unsigned long) seedval % game.lcg_m;
/* Set the LCG seed */
{
game.lcg_x = (unsigned long) seedval % game.lcg_m;
+
+ // once seed is set, we need to generate the Z`ZZZ word
+ make_zzword(game.zzword);
}
unsigned long get_next_lcg_value(void)
}
unsigned long get_next_lcg_value(void)
@@
-677,14
+678,6
@@
void make_zzword(char zzword[6])
zzword[5] = '\0';
}
zzword[5] = '\0';
}
-void datime(long* d, long* t)
-{
- struct timeval tv;
- gettimeofday(&tv, NULL);
- *d = (long) tv.tv_sec;
- *t = (long) tv.tv_usec;
-}
-
// LCOV_EXCL_START
void bug(enum bugtype num, const char *error_string)
{
// LCOV_EXCL_START
void bug(enum bugtype num, const char *error_string)
{