open-adventure.git
6 years agoUpdate cheat.c to unbreak the build. 139/head
Jason S. Ninneman [Mon, 26 Jun 2017 20:40:38 +0000 (13:40 -0700)]
Update cheat.c to unbreak the build.

6 years agoCreate a cheater to test strange save/resume cases.
Eric S. Raymond [Mon, 26 Jun 2017 19:03:37 +0000 (15:03 -0400)]
Create a cheater to test strange save/resume cases.

Patch due to Aaron Traas, but needed modification because of code
drift since submission.

6 years agoJettison some disused macros. 138/head
Jason S. Ninneman [Mon, 26 Jun 2017 18:30:46 +0000 (11:30 -0700)]
Jettison some disused macros.

6 years agoUse enums for object number mnemonics instead of VOCWRD() calls.
Jason S. Ninneman [Mon, 26 Jun 2017 18:27:27 +0000 (11:27 -0700)]
Use enums for object number mnemonics instead of VOCWRD() calls.

6 years agoFold object vocab words into the objects[] structure. 137/head
Jason S. Ninneman [Mon, 26 Jun 2017 17:25:01 +0000 (10:25 -0700)]
Fold object vocab words into the objects[] structure.

6 years agoobject_descriptions[] is now objects[]. 136/head
Jason S. Ninneman [Mon, 26 Jun 2017 16:42:43 +0000 (09:42 -0700)]
object_descriptions[] is now objects[].

6 years agoAdd vocab length define to newdb.
Jason S. Ninneman [Mon, 26 Jun 2017 15:47:30 +0000 (08:47 -0700)]
Add vocab length define to newdb.

6 years agoSquash a compiler warning.
Eric S. Raymond [Mon, 26 Jun 2017 16:15:55 +0000 (12:15 -0400)]
Squash a compiler warning.

6 years agoChange the name of the KEY array to avoid an upcoming macro clash.
Eric S. Raymond [Mon, 26 Jun 2017 14:44:19 +0000 (10:44 -0400)]
Change the name of the KEY array to avoid an upcoming macro clash.

6 years agoTake FORTRANish upper-case function names to C-style lowercase...
Eric S. Raymond [Mon, 26 Jun 2017 14:19:33 +0000 (10:19 -0400)]
Take FORTRANish upper-case function names to C-style lowercase...

...except for a few we're planning to get rid of.  This will avoid some
upcoming collisions with macros defined from YAML.

6 years agoWire Section 8 YAML to runtime.
Eric S. Raymond [Mon, 26 Jun 2017 04:09:50 +0000 (00:09 -0400)]
Wire Section 8 YAML to runtime.

6 years agoSubsume Section 8 into YAML.
Eric S. Raymond [Mon, 26 Jun 2017 03:41:36 +0000 (23:41 -0400)]
Subsume Section 8 into YAML.

6 years agoRemove duped const keywords. 135/head
Jason S. Ninneman [Mon, 26 Jun 2017 03:22:38 +0000 (20:22 -0700)]
Remove duped const keywords.

6 years agoFix typo and type mismatch.
Jason S. Ninneman [Mon, 26 Jun 2017 03:20:44 +0000 (20:20 -0700)]
Fix typo and type mismatch.

6 years agoExpose a vocabulary[] array in newdb.c.
Jason S. Ninneman [Mon, 26 Jun 2017 03:18:39 +0000 (20:18 -0700)]
Expose a vocabulary[] array in newdb.c.

6 years agoInline the hint messages. 134/head
Jason S. Ninneman [Mon, 26 Jun 2017 01:50:47 +0000 (18:50 -0700)]
Inline the hint messages.

6 years agoUnsnarl the motion code some more.
Eric S. Raymond [Mon, 26 Jun 2017 00:50:41 +0000 (20:50 -0400)]
Unsnarl the motion code some more.

6 years agoBegin toounsnarl the way the TRAVEL array is used.
Eric S. Raymond [Sun, 25 Jun 2017 23:21:14 +0000 (19:21 -0400)]
Begin toounsnarl the way the TRAVEL array is used.

6 years agoMagic-number elimination.
Eric S. Raymond [Sun, 25 Jun 2017 22:37:14 +0000 (18:37 -0400)]
Magic-number elimination.

6 years agoCapture Section 3 in YAML.
Eric S. Raymond [Sun, 25 Jun 2017 20:05:44 +0000 (16:05 -0400)]
Capture Section 3 in YAML.

The temporary script travel.py emitted this YAML from the Section 3 data.
It will be removed when the compilation from YAML to an initializer is done.

6 years agoA step forward in definining YAML for the travel array.
Eric S. Raymond [Sun, 25 Jun 2017 18:46:01 +0000 (14:46 -0400)]
A step forward in definining YAML for the travel array.

6 years agoDeal with some compiler warnings. 133/head
Jason S. Ninneman [Sun, 25 Jun 2017 19:54:22 +0000 (12:54 -0700)]
Deal with some compiler warnings.

6 years agoComment polishing.
Eric S. Raymond [Sun, 25 Jun 2017 17:54:07 +0000 (13:54 -0400)]
Comment polishing.

6 years agoFix a report of conpile-time error.
Eric S. Raymond [Sun, 25 Jun 2017 17:31:19 +0000 (13:31 -0400)]
Fix a report of conpile-time error.

6 years agoDix off-by-one errors induced by tightening some array bounds.
Eric S. Raymond [Sun, 25 Jun 2017 17:17:35 +0000 (13:17 -0400)]
Dix off-by-one errors induced by tightening some array bounds.

6 years agoChange structure of vocabulary YAML to cope with multiply-loaded words.
Eric S. Raymond [Sun, 25 Jun 2017 16:36:40 +0000 (12:36 -0400)]
Change structure of vocabulary YAML to cope with multiply-loaded words.

6 years agoAdd some sanity checking to newdungeon.py.
Eric S. Raymond [Sun, 25 Jun 2017 13:25:44 +0000 (09:25 -0400)]
Add some sanity checking to newdungeon.py.

6 years agoComment polishing in adventure.yaml.
Eric S. Raymond [Sun, 25 Jun 2017 12:18:06 +0000 (08:18 -0400)]
Comment polishing in adventure.yaml.

6 years agoVocabulary (adventure.txt section 4) is now in YAML...
Eric S. Raymond [Sun, 25 Jun 2017 12:08:25 +0000 (08:08 -0400)]
Vocabulary (adventure.txt section 4) is now in YAML...

...but no code to use that structure yet.

6 years agoProof of concept for Section 3 report generator.
Eric S. Raymond [Sun, 25 Jun 2017 11:12:05 +0000 (07:12 -0400)]
Proof of concept for Section 3 report generator.

6 years agoFully subsume section 7 into YAML.
Eric S. Raymond [Sun, 25 Jun 2017 00:05:14 +0000 (20:05 -0400)]
Fully subsume section 7 into YAML.

6 years agoRemove unused error codes.
Eric S. Raymond [Sat, 24 Jun 2017 16:59:08 +0000 (12:59 -0400)]
Remove unused error codes.

6 years agoMove the description of string escapes to where the strings now live.
Eric S. Raymond [Sat, 24 Jun 2017 16:49:25 +0000 (12:49 -0400)]
Move the description of string escapes to where the strings now live.

6 years agoRemove unused code.
Eric S. Raymond [Sat, 24 Jun 2017 16:43:31 +0000 (12:43 -0400)]
Remove unused code.

6 years agoSection 13 is now all YAML, so objsound.py can go.
Eric S. Raymond [Sat, 24 Jun 2017 16:24:56 +0000 (12:24 -0400)]
Section 13 is now all YAML, so objsound.py can go.

6 years agoImprove comments, eliminate magic numbers.
Eric S. Raymond [Sat, 24 Jun 2017 16:22:25 +0000 (12:22 -0400)]
Improve comments, eliminate magic numbers.

6 years agoGive generate constant arrays the const specifier.
Eric S. Raymond [Sat, 24 Jun 2017 15:07:07 +0000 (11:07 -0400)]
Give generate constant arrays the const specifier.

Also, move the adventure.txt format documentation to dungeon.c to be
removed when that file is.

6 years agoReplace magic MINTRS/MAXTRS with a treasure attribute in YAML.
Eric S. Raymond [Sat, 24 Jun 2017 14:42:23 +0000 (10:42 -0400)]
Replace magic MINTRS/MAXTRS with a treasure attribute in YAML.

6 years agoLOCSIZ -> NLOCATIONS, finishing limit-name cleanup.
Eric S. Raymond [Sat, 24 Jun 2017 14:20:36 +0000 (10:20 -0400)]
LOCSIZ -> NLOCATIONS, finishing limit-name cleanup.

6 years agoMore fixed limits (NOBJECTS, LOCSIZ) stop being fixed.
Eric S. Raymond [Sat, 24 Jun 2017 14:18:33 +0000 (10:18 -0400)]
More fixed limits (NOBJECTS, LOCSIZ) stop being fixed.

6 years agoRationalize names of structure array sizes.
Eric S. Raymond [Sat, 24 Jun 2017 13:55:32 +0000 (09:55 -0400)]
Rationalize names of structure array sizes.

Everything that camn be #define become one, in all caps to signify that
it's a constant.

6 years agoElimination of OBJTXT.
Eric S. Raymond [Sat, 24 Jun 2017 13:41:39 +0000 (09:41 -0400)]
Elimination of OBJTXT.

This means eveything in Section 13 of adventure.text has moved to YAML.

6 years agoCorrect buggy behavior of sign in endgame. Add a test for this.
Eric S. Raymond [Sat, 24 Jun 2017 13:30:15 +0000 (09:30 -0400)]
Correct buggy behavior of sign in endgame. Add a test for this.

6 years agoExtend test coverage. read sign in endgame.
Eric S. Raymond [Sat, 24 Jun 2017 13:15:40 +0000 (09:15 -0400)]
Extend test coverage. read sign in endgame.

6 years agoElimination of OBJSND.
Eric S. Raymond [Sat, 24 Jun 2017 12:45:22 +0000 (08:45 -0400)]
Elimination of OBJSND.

6 years agoExtend test coverage of vending-machine actions.
Eric S. Raymond [Sat, 24 Jun 2017 12:06:42 +0000 (08:06 -0400)]
Extend test coverage of vending-machine actions.

6 years agoImprove test coverage.
Eric S. Raymond [Sat, 24 Jun 2017 03:30:17 +0000 (23:30 -0400)]
Improve test coverage.

6 years agoEliminate setting of OBJTXT sell for oyster - OBJTXT is now static.
Eric S. Raymond [Fri, 23 Jun 2017 19:50:15 +0000 (15:50 -0400)]
Eliminate setting of OBJTXT sell for oyster - OBJTXT is now static.

A necessary step towards getting rid of it.

6 years agoAbolish unclean operation on OBJSOUND - it's now static.
Eric S. Raymond [Fri, 23 Jun 2017 19:13:47 +0000 (15:13 -0400)]
Abolish unclean operation on OBJSOUND - it's now static.

Save/Restore no longer needs to treat it specially.

6 years agoName the lamp, grate, and bird states.
Eric S. Raymond [Fri, 23 Jun 2017 18:21:25 +0000 (14:21 -0400)]
Name the lamp, grate, and bird states.

6 years agoProof of cobcept for state defines.
Eric S. Raymond [Fri, 23 Jun 2017 18:07:44 +0000 (14:07 -0400)]
Proof of cobcept for state defines.

It is now possible in the YAML to declare defines for all state values
associated with an object.  This are visible in the C code and can be used
to replace magic numbers.

6 years agoDocumentation polishing.
Eric S. Raymond [Fri, 23 Jun 2017 15:27:20 +0000 (11:27 -0400)]
Documentation polishing.

6 years agoSupport loud locations.
Eric S. Raymond [Fri, 23 Jun 2017 15:16:37 +0000 (11:16 -0400)]
Support loud locations.

6 years agoLocation sounds are now declared by YAML.
Eric S. Raymond [Fri, 23 Jun 2017 14:10:48 +0000 (10:10 -0400)]
Location sounds are now declared by YAML.

6 years agoobjsound.py: add a (temporary) YAML transformer for translating Section 13.
Eric S. Raymond [Fri, 23 Jun 2017 13:19:50 +0000 (09:19 -0400)]
objsound.py: add a (temporary) YAML transformer for translating Section 13.

This will go away after it's applied/

6 years agoAdd YAML markup for location sounds.
Eric S. Raymond [Fri, 23 Jun 2017 11:54:49 +0000 (07:54 -0400)]
Add YAML markup for location sounds.

6 years agoToss unused parts of dungeon.c and init.c
Eric S. Raymond [Fri, 23 Jun 2017 02:33:24 +0000 (22:33 -0400)]
Toss unused parts of dungeon.c and init.c

6 years agoReplace macros with condition bits.
Eric S. Raymond [Thu, 22 Jun 2017 22:30:36 +0000 (18:30 -0400)]
Replace macros with condition bits.

6 years agoGive the FORCED property a real cond bit. Delete some unused code.
Eric S. Raymond [Thu, 22 Jun 2017 21:49:06 +0000 (17:49 -0400)]
Give the FORCED property a real cond bit.  Delete some unused code.

6 years agoSwitch fully over to YAML generation of condition bits. COND is gone.
Eric S. Raymond [Thu, 22 Jun 2017 21:28:39 +0000 (17:28 -0400)]
Switch fully over to YAML generation of condition bits. COND is gone.

6 years agoGenerate initializer from YAML for Section 9 bits.
Eric S. Raymond [Thu, 22 Jun 2017 19:56:42 +0000 (15:56 -0400)]
Generate initializer from YAML for Section 9 bits.

6 years agoUse YAML references to tie hints to locations.
Eric S. Raymond [Thu, 22 Jun 2017 18:27:22 +0000 (14:27 -0400)]
Use YAML references to tie hints to locations.

This change makes locbit.py obsolete; it's deleted.

6 years agoFixups to the adventure.yaml commentary.
Jason S. Ninneman [Thu, 22 Jun 2017 17:20:42 +0000 (10:20 -0700)]
Fixups to the adventure.yaml commentary.

6 years agoLocation YAML now has conditions.
Eric S. Raymond [Thu, 22 Jun 2017 15:59:41 +0000 (11:59 -0400)]
Location YAML now has conditions.

COND initionalization doesn't use these yet. That's the next step.

6 years agolocbit.py: Can't set a FORCED attribute in the YAML...
Eric S. Raymond [Thu, 22 Jun 2017 15:24:00 +0000 (11:24 -0400)]
locbit.py: Can't set a FORCED attribute in the YAML...

...it has to be computed from the travel arrays.

6 years agoRepair a check file.
Eric S. Raymond [Thu, 22 Jun 2017 15:14:42 +0000 (11:14 -0400)]
Repair a check file.

6 years agoCheck in the tool for folding Section 9 COND bits into YAML.
Eric S. Raymond [Thu, 22 Jun 2017 13:46:09 +0000 (09:46 -0400)]
Check in the tool for folding Section 9 COND bits into YAML.

Needs to be in the repo history for reference, though it won't
be manifest after the conversion.

We shouldn't actually apply this until the murk around FORCED has been
dispelled.

6 years agoImprove namespace hygiene.
Eric S. Raymond [Thu, 22 Jun 2017 12:58:11 +0000 (08:58 -0400)]
Improve namespace hygiene.

6 years agoPatch around non-working pillo bug fix.
Eric S. Raymond [Thu, 22 Jun 2017 11:24:45 +0000 (07:24 -0400)]
Patch around non-working pillo bug fix.

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().