projects
/
open-adventure.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Magic-number elimination.
[open-adventure.git]
/
misc.c
diff --git
a/misc.c
b/misc.c
index d601c0db0d5e6482e9b879775fd0f6d7a906118d..6f80c9d861a89bb7c8c73b9ff963ba45b1bea245 100644
(file)
--- a/
misc.c
+++ b/
misc.c
@@
-35,7
+35,7
@@
void* xmalloc(size_t size)
return (ptr);
}
return (ptr);
}
-void packed_to_token(long packed, char token[
6
])
+void packed_to_token(long packed, char token[
TOKLEN+1
])
{
// The advent->ascii mapping.
const char advent_to_ascii[] = {
{
// The advent->ascii mapping.
const char advent_to_ascii[] = {
@@
-60,14
+60,15
@@
void packed_to_token(long packed, char token[6])
// Replace trailing whitespace with \0.
for (int i = 4; i >= 0; --i) {
// Replace trailing whitespace with \0.
for (int i = 4; i >= 0; --i) {
- if (token[i] == ' ' || token[i] == '\t')
+ if (token[i] == ' ' ||
+ token[i] == '\t')
token[i] = '\0';
else
break;
}
}
token[i] = '\0';
else
break;
}
}
-long token_to_packed(const char token[
6
])
+long token_to_packed(const char token[
TOKLEN+1
])
{
const char ascii_to_advent[] = {
63, 63, 63, 63, 63, 63, 63, 63,
{
const char ascii_to_advent[] = {
63, 63, 63, 63, 63, 63, 63, 63,
@@
-112,7
+113,7
@@
void tokenize(char* raw, long tokens[4])
int word_count = sscanf(raw, "%s%s", words[0], words[1]);
// make space for substrings and zero it out
int word_count = sscanf(raw, "%s%s", words[0], words[1]);
// make space for substrings and zero it out
- char chunk_data[][
6
] = {
+ char chunk_data[][
TOKLEN+1
] = {
{"\0\0\0\0\0"},
{"\0\0\0\0\0"},
{"\0\0\0\0\0"},
{"\0\0\0\0\0"},
{"\0\0\0\0\0"},
{"\0\0\0\0\0"},
@@
-155,7
+156,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,8
+166,7
@@
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)
+ if (blank == true)
printf("\n");
int msglen = strlen(msg);
printf("\n");
int msglen = strlen(msg);
@@
-226,7
+226,8
@@
void vspeak(const char* msg, va_list ap)
}
// All-lowercase specifier.
}
// All-lowercase specifier.
- if (msg[i] == 'L' || msg[i] == 'C') {
+ if (msg[i] == 'L' ||
+ msg[i] == 'C') {
packed_to_token(arg, renderp); /* unpack directly to destination */
int len = strlen(renderp);
for (int j = 0; j < len; ++j) {
packed_to_token(arg, renderp); /* unpack directly to destination */
int len = strlen(renderp);
for (int j = 0; j < len; ++j) {
@@
-253,11
+254,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
+266,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,7
+292,7
@@
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);
}
@@
-328,9
+329,8
@@
char* get_input()
if (!settings.prompt)
input_prompt[0] = '\0';
if (!settings.prompt)
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) {
@@
-389,10
+389,12
@@
bool silent_yes()
free(firstword);
free(firstword);
- if (yes == 0 || y == 0) {
+ if (yes == 0 ||
+ y == 0) {
outcome = true;
break;
outcome = true;
break;
- } else if (no == 0 || n == 0) {
+ } else if (no == 0 ||
+ n == 0) {
outcome = false;
break;
} else
outcome = false;
break;
} else
@@
-436,11
+438,13
@@
bool yes(const char* question, const char* yes_response, const char* no_response
free(firstword);
free(firstword);
- if (yes == 0 || y == 0) {
+ if (yes == 0 ||
+ y == 0) {
speak(yes_response);
outcome = true;
break;
speak(yes_response);
outcome = true;
break;
- } else if (no == 0 || n == 0) {
+ } else if (no == 0 ||
+ n == 0) {
speak(no_response);
outcome = false;
break;
speak(no_response);
outcome = false;
break;
@@
-459,7
+463,9
@@
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 || !settings.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
+491,9
@@
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 || !settings.oldstyle))
+ if (strcasecmp(word, actions[i].words.strs[j]) == 0 && (strlen(word) > 1 ||
+ strchr(ignore, word[0]) == NULL ||
+ !settings.oldstyle))
return (i);
}
}
return (i);
}
}
@@
-671,7
+679,7
@@
long randrange(long range)
return range * get_next_lcg_value() / game.lcg_m;
}
return range * get_next_lcg_value() / game.lcg_m;
}
-void make_zzword(char zzword[
6
])
+void make_zzword(char zzword[
TOKLEN+1
])
{
for (int i = 0; i < 5; ++i) {
zzword[i] = 'A' + randrange(26);
{
for (int i = 0; i < 5; ++i) {
zzword[i] = 'A' + randrange(26);