open-adventure.git
6 years agoQuick-fix the 'pillo bug'. 130/head
Jason S. Ninneman [Thu, 22 Jun 2017 05:43:16 +0000 (22:43 -0700)]
Quick-fix the 'pillo bug'.

Once parsing no longer depends on text being broken up into
5-char tokens, the ugly hack to adventure.yaml must go away.

6 years agoSimple fix for GitLab issue #14: Behaviour of magic words changed
Eric S. Raymond [Wed, 21 Jun 2017 21:23:28 +0000 (17:23 -0400)]
Simple fix for GitLab issue #14: Behaviour of magic words changed

Say "Nothing happens" on "foo" not in Giant Room, rather than "What's
the matter, can't you read?  Now you'd best start over." which only
makes sense there.

It would be funnier to say something like "Well, that was remarkably
pointless." Maybe later.

6 years agoFix GitLab issue #13 - The "eat" command exhibits strange behavior
Eric S. Raymond [Wed, 21 Jun 2017 20:54:10 +0000 (16:54 -0400)]
Fix GitLab issue #13 - The "eat" command exhibits strange behavior

The problem wasn't actually with "eat" but with "grate".  Processing
of any two-word command with an object of "grate", when given at certain
locations including the start, inappropriately jumped directly
to the movement code (ignoring the verb).

There was a similar bug in the ancestral 2.5, though it manifested slightly
differently.

6 years agoRevert "Test coverage - Almost all of score.c". It's breaking tests.
Eric S. Raymond [Wed, 21 Jun 2017 20:43:27 +0000 (16:43 -0400)]
Revert "Test coverage - Almost all of score.c".  It's breaking tests.

6 years agoRevert "Test coverage - 100% score.c". It's breaking tests.
Eric S. Raymond [Wed, 21 Jun 2017 20:37:59 +0000 (16:37 -0400)]
Revert "Test coverage - 100% score.c". It's breaking tests.

6 years agoTest coverage - 100% score.c 129/head
Aaron Traas [Wed, 21 Jun 2017 19:10:23 +0000 (15:10 -0400)]
Test coverage - 100% score.c

6 years agoTest coverage - Almost all of score.c
Aaron Traas [Wed, 21 Jun 2017 19:04:41 +0000 (15:04 -0400)]
Test coverage - Almost all of score.c

6 years agoxstrdup() not called anywhere in source. Removed.
Aaron Traas [Wed, 21 Jun 2017 17:50:13 +0000 (13:50 -0400)]
xstrdup() not called anywhere in source. Removed.

6 years agoSwitch to 0-indexing for hint handling code. 127/head
Jason S. Ninneman [Wed, 21 Jun 2017 17:22:45 +0000 (10:22 -0700)]
Switch to 0-indexing for hint handling code.

6 years agoAbolish HNTMAX and HNTSIZ in favor of HINT_COUNT.
Jason S. Ninneman [Wed, 21 Jun 2017 17:01:16 +0000 (10:01 -0700)]
Abolish HNTMAX and HNTSIZ in favor of HINT_COUNT.

This change necessitated include guards on newdb.h.

6 years agoReplace SETPRM/[PR]SPEAK with variadic [pr]speak
Peje Nilsson [Wed, 21 Jun 2017 16:34:07 +0000 (18:34 +0200)]
Replace SETPRM/[PR]SPEAK with variadic [pr]speak

Rename/rewrite old speak to vspeak and take a va_list
Add new speak that takes variadic parameters

Remove SETPRM & PARMS[]

6 years agoResolve GitLab issue #3. Applies MISRA and CERT guidelines.
David James Sherman [Wed, 21 Jun 2017 15:09:02 +0000 (17:09 +0200)]
Resolve GitLab issue #3.  Applies MISRA and CERT guidelines.

MISRA C++:2008, 2-13-4 - Literal suffixes shall be upper case

MISRA C:2012, 7.3 - The lowercase character "l" shall not be used in a
literal suffix

CERT DCL16-C. - Use "L," not "l," to indicate a long value

CERT DCL16-CPP. - Use "L," not "l," to indicate a long value

CERT, DCL50-J. - Use visually distinct identifiers

6 years agoTest Coverage -- lots of new pieces of actions.c 125/head
Aaron Traas [Wed, 21 Jun 2017 16:14:24 +0000 (12:14 -0400)]
Test Coverage -- lots of new pieces of actions.c

6 years agoDocumentation polishing.
Eric S. Raymond [Wed, 21 Jun 2017 15:58:58 +0000 (11:58 -0400)]
Documentation polishing.

6 years agoDocumentation and polishing.
Eric S. Raymond [Wed, 21 Jun 2017 15:45:16 +0000 (11:45 -0400)]
Documentation and polishing.

6 years agoYAMLify section 11 (hints).
Eric S. Raymond [Wed, 21 Jun 2017 13:41:01 +0000 (09:41 -0400)]
YAMLify section 11 (hints).

6 years agoDocument the YAML, remove some dead code, fix typos.
Eric S. Raymond [Wed, 21 Jun 2017 11:39:10 +0000 (07:39 -0400)]
Document the YAML, remove some dead code, fix typos.

6 years agoSection 10 (class thresholds) is now parsed entirely from YAML.
Eric S. Raymond [Wed, 21 Jun 2017 10:17:20 +0000 (06:17 -0400)]
Section 10 (class thresholds) is now parsed entirely from YAML.

6 years agoFurther code simplification.
Eric S. Raymond [Wed, 21 Jun 2017 00:44:21 +0000 (20:44 -0400)]
Further code simplification.

6 years agoCode simplification.
Eric S. Raymond [Wed, 21 Jun 2017 00:39:45 +0000 (20:39 -0400)]
Code simplification.

6 years agoChage read handler argument to by-value.
Eric S. Raymond [Wed, 21 Jun 2017 00:24:30 +0000 (20:24 -0400)]
Chage read handler argument to by-value.

This (sort of) documents the fact that, unlike say() and attack(),
read() never scribbles on the interpreter's command block.

What those other functions are doing is unclean - though less so than
fully exposed globals. I don't see a way to fix it that isn't pretty
intrusive, alas.

6 years agoWD* globals abolished. They're now members of the command block.
Eric S. Raymond [Wed, 21 Jun 2017 00:06:32 +0000 (20:06 -0400)]
WD* globals abolished. They're now members of the command block.

6 years agoFix another ob1 error.
Jason S. Ninneman [Tue, 20 Jun 2017 23:09:33 +0000 (16:09 -0700)]
Fix another ob1 error.

6 years agoClean out some disused variables.
Jason S. Ninneman [Tue, 20 Jun 2017 22:46:25 +0000 (15:46 -0700)]
Clean out some disused variables.

6 years agoFix off-by-one error.
Jason S. Ninneman [Tue, 20 Jun 2017 22:43:08 +0000 (15:43 -0700)]
Fix off-by-one error.

6 years agoRefactor how turn threshold penalties are accounted for.
Jason S. Ninneman [Tue, 20 Jun 2017 22:35:30 +0000 (15:35 -0700)]
Refactor how turn threshold penalties are accounted for.

6 years agoTest coverage -- more corner cases in actions.c 120/head
Aaron Traas [Tue, 20 Jun 2017 22:43:19 +0000 (18:43 -0400)]
Test coverage -- more corner cases in actions.c

6 years agoIntroduce command encapsulation structure.
Eric S. Raymond [Tue, 20 Jun 2017 20:04:50 +0000 (16:04 -0400)]
Introduce command encapsulation structure.

6 years agoRefactored dungeon generator. 119/head
Jason S. Ninneman [Tue, 20 Jun 2017 21:31:35 +0000 (14:31 -0700)]
Refactored dungeon generator.

6 years agoClean up adventure.yaml.
Jason S. Ninneman [Tue, 20 Jun 2017 21:30:56 +0000 (14:30 -0700)]
Clean up adventure.yaml.

6 years agoDon't exit on EOF from get_input().
Jason S. Ninneman [Tue, 20 Jun 2017 16:02:34 +0000 (09:02 -0700)]
Don't exit on EOF from get_input().

6 years agoTest coverage - more corner cases in actions.c
Aaron Traas [Tue, 20 Jun 2017 16:06:49 +0000 (12:06 -0400)]
Test coverage - more corner cases in actions.c

6 years agoComment polishing.
Eric S. Raymond [Tue, 20 Jun 2017 17:38:11 +0000 (13:38 -0400)]
Comment polishing.

6 years agoAdd test for "cage bird".
Eric S. Raymond [Tue, 20 Jun 2017 13:32:35 +0000 (09:32 -0400)]
Add test for "cage bird".

6 years agoPolish help text.
Eric S. Raymond [Tue, 20 Jun 2017 12:41:06 +0000 (08:41 -0400)]
Polish help text.

6 years agoAdd -l to coverage testing.
Eric S. Raymond [Tue, 20 Jun 2017 12:34:01 +0000 (08:34 -0400)]
Add -l to coverage testing.

6 years agoDocumentation update.
Eric S. Raymond [Tue, 20 Jun 2017 12:20:34 +0000 (08:20 -0400)]
Documentation update.

6 years agoFix off-by-one error that enabled the fuzzer to find a crash hole.
Eric S. Raymond [Tue, 20 Jun 2017 11:20:03 +0000 (07:20 -0400)]
Fix off-by-one error that enabled the fuzzer to find a crash hole.

One has to allocate space for the trailing NUL, too.

6 years agoTest logic for lamp dimming triggering battery replacement.
Eric S. Raymond [Tue, 20 Jun 2017 10:52:52 +0000 (06:52 -0400)]
Test logic for lamp dimming triggering battery replacement.

6 years agoMerge branch 'master' into magic-number 116/head
Peje Nilsson [Mon, 19 Jun 2017 22:06:49 +0000 (00:06 +0200)]
Merge branch 'master' into magic-number

6 years agoFix typo and compiler warning. 115/head
Jason S. Ninneman [Mon, 19 Jun 2017 21:49:15 +0000 (14:49 -0700)]
Fix typo and compiler warning.

6 years agoAdd token_to_packed() utility function.
Jason S. Ninneman [Mon, 19 Jun 2017 21:45:32 +0000 (14:45 -0700)]
Add token_to_packed() utility function.

6 years agoMerge branch 'master' into magic-number
Peje Nilsson [Mon, 19 Jun 2017 21:44:48 +0000 (23:44 +0200)]
Merge branch 'master' into magic-number

6 years agoCleanup Arithmetic on message number
Peje Nilsson [Mon, 19 Jun 2017 21:44:03 +0000 (23:44 +0200)]
Cleanup Arithmetic on message number

6 years agoTest coverage More misuse of transitive verbs
Aaron Traas [Mon, 19 Jun 2017 20:26:14 +0000 (16:26 -0400)]
Test coverage More misuse of transitive verbs

6 years agoTest coverage - failure to fill
Aaron Traas [Mon, 19 Jun 2017 20:07:35 +0000 (16:07 -0400)]
Test coverage - failure to fill

6 years agoTest coverage -- intransitive carry when one object is present
Aaron Traas [Mon, 19 Jun 2017 19:36:42 +0000 (15:36 -0400)]
Test coverage -- intransitive carry when one object is present

6 years agoTest coverage - drink with no valid object
Aaron Traas [Mon, 19 Jun 2017 19:21:03 +0000 (15:21 -0400)]
Test coverage - drink with no valid object

6 years agoMostly confine assumptions about what token_t is to misc.c
Eric S. Raymond [Mon, 19 Jun 2017 21:21:45 +0000 (17:21 -0400)]
Mostly confine assumptions about what token_t is to misc.c

The token_t things like WD* are presently longs and will someday be
char[6].  By introducing some trivial functions - wordeq(),
wordempty(), and wordclear() - we mostly hide the difference.

All runtime knowledge about packing now lives only in misc.c and the
list of magic WORD_* defines in advent.h.  Outside this, literals are
now accessed through #define names that could expand to either longs
or strings.

Still to be done: WD* values are sometiimes compated to zero in
ways implying they can be negative. Must figure out wat thus means.

6 years agoConcentrate all magic-number values for packed-string constants in one place.
Eric S. Raymond [Mon, 19 Jun 2017 20:53:55 +0000 (16:53 -0400)]
Concentrate all magic-number values for packed-string constants in one place.

6 years agoMore semantic typing - a step towards eliminating packing.
Eric S. Raymond [Mon, 19 Jun 2017 18:20:45 +0000 (14:20 -0400)]
More semantic typing - a step towards eliminating packing.

6 years agoReally 100% test coverage for saveresume.c
Aaron Traas [Mon, 19 Jun 2017 17:39:49 +0000 (13:39 -0400)]
Really 100% test coverage for saveresume.c

6 years agoShould have 100% coverage on saveresume.c now
Aaron Traas [Mon, 19 Jun 2017 17:23:24 +0000 (13:23 -0400)]
Should have 100% coverage on saveresume.c now

6 years agoPublish more things on the website.
Eric S. Raymond [Mon, 19 Jun 2017 16:53:43 +0000 (12:53 -0400)]
Publish more things on the website.

6 years agoBoolify some logical variables.
Eric S. Raymond [Mon, 19 Jun 2017 16:49:07 +0000 (12:49 -0400)]
Boolify some logical variables.

6 years agoEven less magic 111/head
NHOrus [Mon, 19 Jun 2017 17:13:50 +0000 (20:13 +0300)]
Even less magic

6 years agoSave/resume fail test coverage -- test works in Docker now 110/head
Aaron Traas [Mon, 19 Jun 2017 17:09:15 +0000 (13:09 -0400)]
Save/resume fail test coverage -- test works in Docker now

6 years ago-r doesn't show with NOSAVE build 109/head
NHOrus [Mon, 19 Jun 2017 16:29:00 +0000 (19:29 +0300)]
-r doesn't show with NOSAVE build

6 years agoNo need to tease with excluded options 108/head
NHOrus [Mon, 19 Jun 2017 16:11:07 +0000 (19:11 +0300)]
No need to tease with excluded options

6 years agoRevert "Improved test coverage -- save/resume fail"
Eric S. Raymond [Mon, 19 Jun 2017 15:37:03 +0000 (11:37 -0400)]
Revert "Improved test coverage -- save/resume fail"

Fails in GitLab CI - looks like /dev/badfilename can actually be opened there.

6 years agoImproved test coverage -- save/resume fail
Aaron Traas [Mon, 19 Jun 2017 13:25:36 +0000 (09:25 -0400)]
Improved test coverage -- save/resume fail

6 years agoMagic-number elimination.
Eric S. Raymond [Mon, 19 Jun 2017 15:09:24 +0000 (11:09 -0400)]
Magic-number elimination.

6 years agoMagic-number elimination. Fix possible glitch in troll-bridge death.
Eric S. Raymond [Mon, 19 Jun 2017 15:00:23 +0000 (11:00 -0400)]
Magic-number elimination. Fix possible glitch in troll-bridge death.

6 years agoAdd axeorama log, extending test coverage.
Eric S. Raymond [Mon, 19 Jun 2017 14:32:58 +0000 (10:32 -0400)]
Add axeorama log, extending test coverage.

6 years agoRestructure some code.
Eric S. Raymond [Mon, 19 Jun 2017 13:46:04 +0000 (09:46 -0400)]
Restructure some code.

6 years agoL12 is gone again. Magic numbers have been almost eliminated.
Eric S. Raymond [Mon, 19 Jun 2017 12:43:51 +0000 (08:43 -0400)]
L12 is gone again. Magic numbers have been almost eliminated.

6 years agoMagic number elimination, repair some careless replace damage.
Eric S. Raymond [Mon, 19 Jun 2017 12:37:19 +0000 (08:37 -0400)]
Magic number elimination, repair some careless replace damage.

6 years agoDocumentation tweak.
Eric S. Raymond [Mon, 19 Jun 2017 11:41:59 +0000 (07:41 -0400)]
Documentation tweak.

6 years agoRemove goto L12 - take two
Peje Nilsson [Mon, 19 Jun 2017 08:24:48 +0000 (10:24 +0200)]
Remove goto L12 - take two

On't know if you let me near this code again but here is a second
stab at removing "goto L12"

Previous attempt failed because of trying to continue the outer
do{}while(false)
Adding an extra for(;;) loop where the only repeat is the former
"goto L12" is replaced by continue. All other exits are returns
and a break;

6 years agoImprove test coverage.
Eric S. Raymond [Mon, 19 Jun 2017 11:07:45 +0000 (07:07 -0400)]
Improve test coverage.

6 years agoReorganize debug build options. 105/head
Jason S. Ninneman [Mon, 19 Jun 2017 04:11:06 +0000 (21:11 -0700)]
Reorganize debug build options.

* 'make advent' by itself can be considered the 'release' build.
* 'make debug' now does 'make linty'.

6 years agoGet usage message into coverage tests.
Eric S. Raymond [Mon, 19 Jun 2017 03:31:59 +0000 (23:31 -0400)]
Get usage message into coverage tests.

6 years agoAbolish MAXDIE in favor of maximum_deaths. 104/head
Jason S. Ninneman [Mon, 19 Jun 2017 03:02:03 +0000 (20:02 -0700)]
Abolish MAXDIE in favor of maximum_deaths.

6 years agoClean old obit messages from adventure.yaml.
Jason S. Ninneman [Mon, 19 Jun 2017 02:59:43 +0000 (19:59 -0700)]
Clean old obit messages from adventure.yaml.

6 years agoRemove message pointer math in croak().
Jason S. Ninneman [Mon, 19 Jun 2017 02:54:48 +0000 (19:54 -0700)]
Remove  message pointer math in croak().

6 years agoChange YES() to take const char* arguments.
Jason S. Ninneman [Mon, 19 Jun 2017 02:51:59 +0000 (19:51 -0700)]
Change YES() to take const char* arguments.

6 years agoGive obituary messages their own data structure.
Jason S. Ninneman [Mon, 19 Jun 2017 02:44:15 +0000 (19:44 -0700)]
Give obituary messages their own data structure.

6 years agoTypo fix.
Eric S. Raymond [Mon, 19 Jun 2017 02:35:03 +0000 (22:35 -0400)]
Typo fix.

6 years agoMore repairs on search-replace results.
Eric S. Raymond [Mon, 19 Jun 2017 02:31:58 +0000 (22:31 -0400)]
More repairs on search-replace results.

6 years agoFix search-and-replace error.
Eric S. Raymond [Mon, 19 Jun 2017 02:24:16 +0000 (22:24 -0400)]
Fix search-and-replace error.

6 years agoNo longer restricted to 6-character FORTRAN identifiers.
Eric S. Raymond [Mon, 19 Jun 2017 01:17:57 +0000 (21:17 -0400)]
No longer restricted to 6-character FORTRAN identifiers.

6 years agoAttempt to deconfuse the coverage analyzer.
Eric S. Raymond [Mon, 19 Jun 2017 00:33:36 +0000 (20:33 -0400)]
Attempt to deconfuse the coverage analyzer.

6 years agoReindent and cleanup.
Eric S. Raymond [Mon, 19 Jun 2017 00:24:37 +0000 (20:24 -0400)]
Reindent and cleanup.

6 years agoAdd project logo. It'll have to do until we find an image of a miner's lamp.
Eric S. Raymond [Mon, 19 Jun 2017 00:09:39 +0000 (20:09 -0400)]
Add project logo. It'll have to do until we find an image of a miner's lamp.

6 years agomagic numbers, show usage, fixed linty warnings 103/head
Bob Little [Sun, 18 Jun 2017 23:33:21 +0000 (19:33 -0400)]
magic numbers, show usage, fixed linty warnings

Show usage when using bad parameter with ./advent
Converted magic numbers to enums for BUG().  Also bug now shows
stringify'ed version of bug enumeration (not just a number).

6 years agoFix bug that made YES() case-sensitive. 102/head
Jason S. Ninneman [Sun, 18 Jun 2017 21:14:13 +0000 (14:14 -0700)]
Fix bug that made YES() case-sensitive.

Also fix a related memory leak.

6 years agoGut and rebuild YES() with cleaner approach that doesn't rely on packing. 101/head
Jason S. Ninneman [Sun, 18 Jun 2017 20:37:51 +0000 (13:37 -0700)]
Gut and rebuild YES() with cleaner approach that doesn't rely on packing.

The new support functions get_input() and echo_input() (and others not made yet) will eventually replace GETIN() and MAPLIN().

6 years agoThis should get test coverage to 93%.
Eric S. Raymond [Sun, 18 Jun 2017 20:39:01 +0000 (16:39 -0400)]
This should get test coverage to 93%.

6 years agoImprove test coverage.
Eric S. Raymond [Sun, 18 Jun 2017 20:27:12 +0000 (16:27 -0400)]
Improve test coverage.

6 years agoImprove test coverage.
Eric S. Raymond [Sun, 18 Jun 2017 20:08:09 +0000 (16:08 -0400)]
Improve test coverage.

6 years agoImprove test coverage
Eric S. Raymond [Sun, 18 Jun 2017 19:50:52 +0000 (15:50 -0400)]
Improve test coverage

6 years agoRepair plover teleport and add a test for it.
Eric S. Raymond [Sun, 18 Jun 2017 19:05:17 +0000 (15:05 -0400)]
Repair plover teleport and add a test for it.

6 years agoExtent test coverage to plover room access.
Eric S. Raymond [Sun, 18 Jun 2017 18:15:54 +0000 (14:15 -0400)]
Extent test coverage to plover room access.

6 years agoCode simplification.
Eric S. Raymond [Sun, 18 Jun 2017 18:02:24 +0000 (14:02 -0400)]
Code simplification.

6 years agoRemove unused code.
Eric S. Raymond [Sun, 18 Jun 2017 17:20:04 +0000 (13:20 -0400)]
Remove unused code.

6 years agoRename newspeak() to speak(). 100/head
Jason S. Ninneman [Sun, 18 Jun 2017 17:06:14 +0000 (10:06 -0700)]
Rename newspeak() to speak().

6 years agoRefactor scoring so score() does not conditionally exit.
Eric S. Raymond [Sun, 18 Jun 2017 16:51:05 +0000 (12:51 -0400)]
Refactor scoring so score() does not conditionally exit.

6 years agoImprove test coverage.
Eric S. Raymond [Sun, 18 Jun 2017 15:55:10 +0000 (11:55 -0400)]
Improve test coverage.

6 years agoImprove test coverage.
Eric S. Raymond [Sun, 18 Jun 2017 15:36:03 +0000 (11:36 -0400)]
Improve test coverage.

6 years agoImprove test coverage.
Eric S. Raymond [Sun, 18 Jun 2017 15:14:44 +0000 (11:14 -0400)]
Improve test coverage.