Spread documentation from init.c It was empty without anything to document. Reindented, too

This commit is contained in:
NHOrus 2017-07-01 14:36:54 +03:00 committed by Eric S. Raymond
parent 7f2c118e56
commit 0a87fc9f78
5 changed files with 95 additions and 101 deletions

View file

@ -110,7 +110,15 @@ struct game_t {
bool closng; // whether it's closing time yet bool closng; // whether it's closing time yet
long conds; // min value for cond(loc) if loc has any hints long conds; // min value for cond(loc) if loc has any hints
long detail; long detail;
/* dflag controls the level of activation of dwarves:
* 0 No dwarf stuff yet (wait until reaches Hall Of Mists)
* 1 Reached Hall Of Mists, but hasn't met first dwarf
* 2 Met first dwarf, others start moving, no knives thrown yet
* 3 A knife has been thrown (first set always misses)
* 3+ Dwarves are mad (increases their accuracy) */
long dflag; long dflag;
long dkill; long dkill;
long dtotal; long dtotal;
long foobar; // current progress in saying "FEE FIE FOE FOO". long foobar; // current progress in saying "FEE FIE FOE FOO".
@ -138,14 +146,14 @@ struct game_t {
bool blooded; // has player drunk of dragon's blood? bool blooded; // has player drunk of dragon's blood?
long abbrev[NLOCATIONS + 1]; long abbrev[NLOCATIONS + 1];
long atloc[NLOCATIONS + 1]; long atloc[NLOCATIONS + 1];
long dseen[NDWARVES + 1]; long dseen[NDWARVES + 1]; // true if dwarf has seen him
long dloc[NDWARVES + 1]; long dloc[NDWARVES + 1]; // location of dwarves, initially hard-wired in
long odloc[NDWARVES + 1]; long odloc[NDWARVES + 1]; // prior loc of each dwarf, initially garbage
long fixed[NOBJECTS + 1]; long fixed[NOBJECTS + 1];
long link[NOBJECTS * 2 + 1]; long link[NOBJECTS * 2 + 1];
long place[NOBJECTS + 1]; long place[NOBJECTS + 1];
long hinted[NHINTS]; long hinted[NHINTS]; // hintlc[i] is how long he's been at LOC with cond bit i
long hintlc[NHINTS]; long hintlc[NHINTS]; // hinted[i] is true iff hint i has been used.
long prop[NOBJECTS + 1]; long prop[NOBJECTS + 1];
}; };

View file

@ -8,14 +8,19 @@
#include "dungeon.h" #include "dungeon.h"
struct game_t game = { struct game_t game = {
.chloc = LOC_DEADEND12,
.chloc2 = LOC_DEADEND13,
.dloc[1] = LOC_KINGHALL, .dloc[1] = LOC_KINGHALL,
.dloc[2] = LOC_WESTBANK, .dloc[2] = LOC_WESTBANK,
.dloc[3] = LOC_Y2, .dloc[3] = LOC_Y2,
.dloc[4] = LOC_ALIKE3, .dloc[4] = LOC_ALIKE3,
.dloc[5] = LOC_COMPLEX, .dloc[5] = LOC_COMPLEX,
/* Sixth dwarf is special (the pirate). He always starts at his
* chest's eventual location inside the maze. This loc is saved
* in chloc for ref. The dead end in the other maze has its
* loc stored in chloc2. */
.dloc[6] = LOC_DEADEND12, .dloc[6] = LOC_DEADEND12,
.chloc = LOC_DEADEND12,
.chloc2 = LOC_DEADEND13,
.abbnum = 5, .abbnum = 5,
.clock1 = WARNTIME, .clock1 = WARNTIME,
.clock2 = FLASHTIME, .clock2 = FLASHTIME,

31
init.c
View file

@ -30,9 +30,8 @@ void initialise(void)
* We'll use the DROP subroutine, which prefaces new objects on the * We'll use the DROP subroutine, which prefaces new objects on the
* lists. Since we want things in the other order, we'll run the * lists. Since we want things in the other order, we'll run the
* loop backwards. If the object is in two locs, we drop it twice. * loop backwards. If the object is in two locs, we drop it twice.
* This also sets up "game.place" and "fixed" as copies of "PLAC" and * Also, since two-placed objects are typically best described
* "FIXD". Also, since two-placed objects are typically best * last, we'll drop them first. */
* described last, we'll drop them first. */
for (int i = NOBJECTS; i >= 1; i--) { for (int i = NOBJECTS; i >= 1; i--) {
if (objects[i].fixd > 0) { if (objects[i].fixd > 0) {
drop(i + NOBJECTS, objects[i].fixd); drop(i + NOBJECTS, objects[i].fixd);
@ -57,31 +56,5 @@ void initialise(void)
game.tally = game.tally - game.prop[treasure]; game.tally = game.tally - game.prop[treasure];
} }
} }
/* Clear the hint stuff. game.hintlc[i] is how long he's been at LOC
* with cond bit i. game.hinted[i] is true iff hint i has been
* used. */
for (int i = 0; i < NHINTS; i++) {
game.hinted[i] = false;
game.hintlc[i] = 0;
}
/* Initialise the dwarves. game.dloc is loc of dwarves,
* hard-wired in. game.odloc is prior loc of each dwarf,
* initially garbage. DALTLC is alternate initial loc for dwarf,
* in case one of them starts out on top of the adventurer. (No
* 2 of the 5 initial locs are adjacent.) game.dseen is true if
* dwarf has seen him. game.dflag controls the level of
* activation of all this:
* 0 No dwarf stuff yet (wait until reaches Hall Of Mists)
* 1 Reached Hall Of Mists, but hasn't met first dwarf
* 2 Met first dwarf, others start moving, no knives thrown yet
* 3 A knife has been thrown (first set always misses)
* 3+ Dwarves are mad (increases their accuracy)
* Sixth dwarf is special (the pirate). He always starts at his
* chest's eventual location inside the maze. This loc is saved
* in game.chloc for ref. the dead end in the other maze has its
* loc stored in game.chloc2. */
game.conds = setbit(11); game.conds = setbit(11);
} }

14
main.c
View file

@ -28,14 +28,19 @@
#define DIM(a) (sizeof(a)/sizeof(a[0])) #define DIM(a) (sizeof(a)/sizeof(a[0]))
struct game_t game = { struct game_t game = {
.chloc = LOC_DEADEND12,
.chloc2 = LOC_DEADEND13,
.dloc[1] = LOC_KINGHALL, .dloc[1] = LOC_KINGHALL,
.dloc[2] = LOC_WESTBANK, .dloc[2] = LOC_WESTBANK,
.dloc[3] = LOC_Y2, .dloc[3] = LOC_Y2,
.dloc[4] = LOC_ALIKE3, .dloc[4] = LOC_ALIKE3,
.dloc[5] = LOC_COMPLEX, .dloc[5] = LOC_COMPLEX,
/* Sixth dwarf is special (the pirate). He always starts at his
* chest's eventual location inside the maze. This loc is saved
* in chloc for ref. The dead end in the other maze has its
* loc stored in chloc2. */
.dloc[6] = LOC_DEADEND12, .dloc[6] = LOC_DEADEND12,
.chloc = LOC_DEADEND12,
.chloc2 = LOC_DEADEND13,
.abbnum = 5, .abbnum = 5,
.clock1 = WARNTIME, .clock1 = WARNTIME,
.clock2 = FLASHTIME, .clock2 = FLASHTIME,
@ -384,9 +389,12 @@ static bool dwarfmove(void)
if (PCT(50)) if (PCT(50))
game.dloc[j] = 0; game.dloc[j] = 0;
} }
/* Alternate initial loc for dwarf, in case one of them
* starts out on top of the adventurer. */
for (int i = 1; i <= NDWARVES - 1; i++) { for (int i = 1; i <= NDWARVES - 1; i++) {
if (game.dloc[i] == game.loc) if (game.dloc[i] == game.loc)
game.dloc[i] = DALTLC; game.dloc[i] = DALTLC; //
game.odloc[i] = game.dloc[i]; game.odloc[i] = game.dloc[i];
} }
rspeak(DWARF_RAN); rspeak(DWARF_RAN);

4
misc.c
View file

@ -47,7 +47,7 @@ void packed_to_token(long packed, char token[6])
'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
'X', 'Y', 'Z', '\0', '\0', '\0', '\0', '\0', 'X', 'Y', 'Z', '\0', '\0', '\0', '\0', '\0',
}; };
// Unpack and map back to ASCII. // Unpack and map back to ASCII.
for (int i = 0; i < 5; ++i) { for (int i = 0; i < 5; ++i) {
@ -88,7 +88,7 @@ long token_to_packed(const char token[6])
63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
}; };
size_t t_len = strlen(token); size_t t_len = strlen(token);
long packed = 0; long packed = 0;