Generate initializer from YAML for Section 9 bits.
This commit is contained in:
parent
94d1aa5183
commit
537c4511e2
5 changed files with 81 additions and 46 deletions
2
Makefile
2
Makefile
|
@ -65,7 +65,7 @@ newdb.o: newdb.c newdb.h
|
||||||
database.h: dungeon
|
database.h: dungeon
|
||||||
./dungeon
|
./dungeon
|
||||||
|
|
||||||
newdb.c newdb.h:
|
newdb.c newdb.h: newdungeon.py adventure.yaml
|
||||||
python3 newdungeon.py
|
python3 newdungeon.py
|
||||||
|
|
||||||
linenoise.o: linenoise/linenoise.h
|
linenoise.o: linenoise/linenoise.h
|
||||||
|
|
19
advent.h
19
advent.h
|
@ -128,25 +128,6 @@ extern int suspend(void);
|
||||||
extern int resume(void);
|
extern int resume(void);
|
||||||
extern int restore(FILE *);
|
extern int restore(FILE *);
|
||||||
|
|
||||||
/* Symbols for cond bits - used by following macros */
|
|
||||||
#define COND_LIT 0 /* Light */
|
|
||||||
#define COND_OILY 1 /* If bit 2 is on: on for oil, off for water */
|
|
||||||
#define COND_FLUID 2 /* Liquid asset, see bit 1 */
|
|
||||||
#define COND_NOARRR 3 /* Pirate doesn't go here unless following */
|
|
||||||
#define COND_NOBACK 4 /* Cannot use "back" to move away */
|
|
||||||
/* Bits past 10 indicate areas of interest to "hint" routines */
|
|
||||||
#define COND_HBASE 10 /* Base for location hint bits */
|
|
||||||
#define COND_HCAVE 11 /* Trying to get into cave */
|
|
||||||
#define COND_HBIRD 12 /* Trying to catch bird */
|
|
||||||
#define COND_HSNAKE 13 /* Trying to deal with snake */
|
|
||||||
#define COND_HMAZE 14 /* Lost in maze */
|
|
||||||
#define COND_HDARK 15 /* Pondering dark room */
|
|
||||||
#define COND_HWITT 16 /* At Witt's End */
|
|
||||||
#define COND_HCLIFF 17 /* Cliff with urn */
|
|
||||||
#define COND_HWOODS 18 /* Lost in forest */
|
|
||||||
#define COND_HOGRE 19 /* Trying to deal with ogre */
|
|
||||||
#define COND_HJADE 20 /* Found all treasures except jade */
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* MOD(N,M) = Arithmetic modulus
|
* MOD(N,M) = Arithmetic modulus
|
||||||
* AT(OBJ) = true if on either side of two-placed object
|
* AT(OBJ) = true if on either side of two-placed object
|
||||||
|
|
|
@ -69,60 +69,70 @@
|
||||||
# FIXME: Hint texts shouldn't be in arbitrary_messages, but inlined here
|
# FIXME: Hint texts shouldn't be in arbitrary_messages, but inlined here
|
||||||
hints:
|
hints:
|
||||||
- hint: &grate
|
- hint: &grate
|
||||||
|
name: CAVE
|
||||||
number: 1
|
number: 1
|
||||||
turns: 4
|
turns: 4
|
||||||
penalty: 2
|
penalty: 2
|
||||||
question: ENTRY_QUERY
|
question: ENTRY_QUERY
|
||||||
hint: HARD_GRATE
|
hint: HARD_GRATE
|
||||||
- hint: &bird
|
- hint: &bird
|
||||||
|
name: BIRD
|
||||||
number: 2
|
number: 2
|
||||||
turns: 5
|
turns: 5
|
||||||
penalty: 2
|
penalty: 2
|
||||||
question: BIRD_QUERY
|
question: BIRD_QUERY
|
||||||
hint: SKITTISH_BIRD
|
hint: SKITTISH_BIRD
|
||||||
- hint: &snake
|
- hint: &snake
|
||||||
|
name: SNAKE
|
||||||
number: 3
|
number: 3
|
||||||
turns: 8
|
turns: 8
|
||||||
penalty: 2
|
penalty: 2
|
||||||
question: SNAKE_QUERY
|
question: SNAKE_QUERY
|
||||||
hint: SNAKE_HINT
|
hint: SNAKE_HINT
|
||||||
- hint: &maze
|
- hint: &maze
|
||||||
|
name: MAZE
|
||||||
number: 4
|
number: 4
|
||||||
turns: 75
|
turns: 75
|
||||||
penalty: 4
|
penalty: 4
|
||||||
question: MAZE_HELP
|
question: MAZE_HELP
|
||||||
hint: DROP_THINGS
|
hint: DROP_THINGS
|
||||||
- hint: &dark
|
- hint: &dark
|
||||||
|
name: DARK
|
||||||
number: 5
|
number: 5
|
||||||
turns: 25
|
turns: 25
|
||||||
penalty: 5
|
penalty: 5
|
||||||
question: PLOVER_QUERY
|
question: PLOVER_QUERY
|
||||||
hint: EXPLORE_HINT
|
hint: EXPLORE_HINT
|
||||||
- hint: &witt
|
- hint: &witt
|
||||||
|
name: WITT
|
||||||
number: 6
|
number: 6
|
||||||
turns: 20
|
turns: 20
|
||||||
penalty: 3
|
penalty: 3
|
||||||
question: HELP_LEAVING
|
question: HELP_LEAVING
|
||||||
hint: NOGO_WEST
|
hint: NOGO_WEST
|
||||||
- hint: &cliff
|
- hint: &urn
|
||||||
|
name: CLIFF
|
||||||
number: 7
|
number: 7
|
||||||
turns: 8
|
turns: 8
|
||||||
penalty: 2
|
penalty: 2
|
||||||
question: WONDERING_QUERY
|
question: WONDERING_QUERY
|
||||||
hint: ADVANCED_SECTION
|
hint: ADVANCED_SECTION
|
||||||
- hint: &forest
|
- hint: &forest
|
||||||
|
name: WOODS
|
||||||
number: 8
|
number: 8
|
||||||
turns: 25
|
turns: 25
|
||||||
penalty: 2
|
penalty: 2
|
||||||
question: FOREST_QUERY
|
question: FOREST_QUERY
|
||||||
hint: GO_EAST
|
hint: GO_EAST
|
||||||
- hint: &ogre
|
- hint: &ogre
|
||||||
|
name: OGRE
|
||||||
number: 9
|
number: 9
|
||||||
turns: 10
|
turns: 10
|
||||||
penalty: 4
|
penalty: 4
|
||||||
question: OGRE_QUERY
|
question: OGRE_QUERY
|
||||||
hint: OGRE_CLUE
|
hint: OGRE_CLUE
|
||||||
- hint: &jade
|
- hint: &jade
|
||||||
|
name: JADE
|
||||||
number: 10
|
number: 10
|
||||||
turns: 1
|
turns: 1
|
||||||
penalty: 4
|
penalty: 4
|
||||||
|
@ -165,7 +175,7 @@ locations: !!omap
|
||||||
long: 'The forest thins out here to reveal a steep cliff. There is no way\ndown, but a small ledge can be seen to the west across the chasm.'
|
long: 'The forest thins out here to reveal a steep cliff. There is no way\ndown, but a small ledge can be seen to the west across the chasm.'
|
||||||
short: 'You''re at cliff.'
|
short: 'You''re at cliff.'
|
||||||
conditions: {ABOVE: true, NOBACK: true, LIT: true}
|
conditions: {ABOVE: true, NOBACK: true, LIT: true}
|
||||||
hints: [*cliff]
|
hints: [*urn]
|
||||||
- LOC_SLIT:
|
- LOC_SLIT:
|
||||||
description:
|
description:
|
||||||
long: 'At your feet all the water of the stream splashes into a 2-inch slit\nin the rock. Downstream the streambed is bare rock.'
|
long: 'At your feet all the water of the stream splashes into a 2-inch slit\nin the rock. Downstream the streambed is bare rock.'
|
||||||
|
@ -656,19 +666,19 @@ locations: !!omap
|
||||||
long: 'You are in an alcove. A small nw path seems to widen after a short\ndistance. An extremely tight tunnel leads east. It looks like a very\ntight squeeze. An eerie light can be seen at the other end.'
|
long: 'You are in an alcove. A small nw path seems to widen after a short\ndistance. An extremely tight tunnel leads east. It looks like a very\ntight squeeze. An eerie light can be seen at the other end.'
|
||||||
short: 'You''re in alcove.'
|
short: 'You''re in alcove.'
|
||||||
conditions: {DEEP: true}
|
conditions: {DEEP: true}
|
||||||
hits: [*dark]
|
hints: [*dark]
|
||||||
- LOC_PLOVER:
|
- LOC_PLOVER:
|
||||||
description:
|
description:
|
||||||
long: 'You''re in a small chamber lit by an eerie green light. An extremely\nnarrow tunnel exits to the west. A dark corridor leads ne.'
|
long: 'You''re in a small chamber lit by an eerie green light. An extremely\nnarrow tunnel exits to the west. A dark corridor leads ne.'
|
||||||
short: 'You''re in Plover Room.'
|
short: 'You''re in Plover Room.'
|
||||||
conditions: {DEEP: true, LIT: true}
|
conditions: {DEEP: true, LIT: true}
|
||||||
hits: [*dark]
|
hints: [*dark]
|
||||||
- LOC_DARKROOM:
|
- LOC_DARKROOM:
|
||||||
description:
|
description:
|
||||||
long: 'You''re in the dark-room. A corridor leading south is the only exit.'
|
long: 'You''re in the dark-room. A corridor leading south is the only exit.'
|
||||||
short: 'You''re in dark-room.'
|
short: 'You''re in dark-room.'
|
||||||
conditions: {DEEP: true}
|
conditions: {DEEP: true}
|
||||||
hits: [*dark]
|
hints: [*dark]
|
||||||
- LOC_ARCHED:
|
- LOC_ARCHED:
|
||||||
description:
|
description:
|
||||||
long: 'You are in an arched hall. A coral passage once continued up and east\nfrom here, but is now blocked by debris. The air smells of sea water.'
|
long: 'You are in an arched hall. A coral passage once continued up and east\nfrom here, but is now blocked by debris. The air smells of sea water.'
|
||||||
|
@ -882,7 +892,7 @@ locations: !!omap
|
||||||
long: 'You are in a large chamber with passages to the west and north.'
|
long: 'You are in a large chamber with passages to the west and north.'
|
||||||
short: !!null
|
short: !!null
|
||||||
conditions: {DEEP: true}
|
conditions: {DEEP: true}
|
||||||
hits: [*ogre]
|
hints: [*ogre]
|
||||||
- LOC_STOREROOM:
|
- LOC_STOREROOM:
|
||||||
description:
|
description:
|
||||||
long: 'You are in the ogre''s storeroom. The only exit is to the south.'
|
long: 'You are in the ogre''s storeroom. The only exit is to the south.'
|
||||||
|
@ -899,19 +909,19 @@ locations: !!omap
|
||||||
long: 'You are wandering aimlessly through the forest.'
|
long: 'You are wandering aimlessly through the forest.'
|
||||||
short: !!null
|
short: !!null
|
||||||
conditions: {FOREST: true, NOBACK: true, LIT: true}
|
conditions: {FOREST: true, NOBACK: true, LIT: true}
|
||||||
hits: [*forest]
|
hints: [*forest]
|
||||||
- LOC_FOREST3:
|
- LOC_FOREST3:
|
||||||
description:
|
description:
|
||||||
long: 'You are wandering aimlessly through the forest.'
|
long: 'You are wandering aimlessly through the forest.'
|
||||||
short: !!null
|
short: !!null
|
||||||
conditions: {FOREST: true, NOBACK: true, LIT: true, DEEP: true}
|
conditions: {FOREST: true, NOBACK: true, LIT: true, DEEP: true}
|
||||||
hits: [*forest]
|
hints: [*forest]
|
||||||
- LOC_FOREST4:
|
- LOC_FOREST4:
|
||||||
description:
|
description:
|
||||||
long: 'You are wandering aimlessly through the forest.'
|
long: 'You are wandering aimlessly through the forest.'
|
||||||
short: !!null
|
short: !!null
|
||||||
conditions: { FOREST: true, NOBACK: true, LIT: true, DEEP: true}
|
conditions: { FOREST: true, NOBACK: true, LIT: true, DEEP: true}
|
||||||
hits: [*forest]
|
hints: [*forest]
|
||||||
- LOC_FOREST5:
|
- LOC_FOREST5:
|
||||||
description:
|
description:
|
||||||
long: 'You are wandering aimlessly through the forest.'
|
long: 'You are wandering aimlessly through the forest.'
|
||||||
|
@ -923,19 +933,19 @@ locations: !!omap
|
||||||
long: 'You are wandering aimlessly through the forest.'
|
long: 'You are wandering aimlessly through the forest.'
|
||||||
short: !!null
|
short: !!null
|
||||||
conditions: {FOREST: true, NOBACK: true, LIT: true}
|
conditions: {FOREST: true, NOBACK: true, LIT: true}
|
||||||
hits: [*forest]
|
hints: [*forest]
|
||||||
- LOC_FOREST7:
|
- LOC_FOREST7:
|
||||||
description:
|
description:
|
||||||
long: 'You are wandering aimlessly through the forest.'
|
long: 'You are wandering aimlessly through the forest.'
|
||||||
short: !!null
|
short: !!null
|
||||||
conditions: {FOREST: true, NOBACK: true, LIT: true, DEEP: true}
|
conditions: {FOREST: true, NOBACK: true, LIT: true, DEEP: true}
|
||||||
hits: [*forest]
|
hints: [*forest]
|
||||||
- LOC_FOREST8:
|
- LOC_FOREST8:
|
||||||
description:
|
description:
|
||||||
long: 'You are wandering aimlessly through the forest.'
|
long: 'You are wandering aimlessly through the forest.'
|
||||||
short: !!null
|
short: !!null
|
||||||
conditions: {FOREST: true, NOBACK: true, LIT: true, DEEP: true}
|
conditions: {FOREST: true, NOBACK: true, LIT: true, DEEP: true}
|
||||||
hits: [*forest]
|
hints: [*forest]
|
||||||
- LOC_FOREST9:
|
- LOC_FOREST9:
|
||||||
description:
|
description:
|
||||||
long: 'You are wandering aimlessly through the forest.'
|
long: 'You are wandering aimlessly through the forest.'
|
||||||
|
@ -947,19 +957,19 @@ locations: !!omap
|
||||||
long: 'You are wandering aimlessly through the forest.'
|
long: 'You are wandering aimlessly through the forest.'
|
||||||
short: !!null
|
short: !!null
|
||||||
conditions: {FOREST: true, NOBACK: true, LIT: true}
|
conditions: {FOREST: true, NOBACK: true, LIT: true}
|
||||||
hits: [*forest]
|
hints: [*forest]
|
||||||
- LOC_FOREST11:
|
- LOC_FOREST11:
|
||||||
description:
|
description:
|
||||||
long: 'You are wandering aimlessly through the forest.'
|
long: 'You are wandering aimlessly through the forest.'
|
||||||
short: !!null
|
short: !!null
|
||||||
conditions: {FOREST: true, NOBACK: true, LIT: true, DEEP: true}
|
conditions: {FOREST: true, NOBACK: true, LIT: true, DEEP: true}
|
||||||
hits: [*forest]
|
hints: [*forest]
|
||||||
- LOC_FOREST12:
|
- LOC_FOREST12:
|
||||||
description:
|
description:
|
||||||
long: 'You are wandering aimlessly through the forest.'
|
long: 'You are wandering aimlessly through the forest.'
|
||||||
short: !!null
|
short: !!null
|
||||||
conditions: {FOREST: true, NOBACK: true, LIT: true, DEEP: true}
|
conditions: {FOREST: true, NOBACK: true, LIT: true, DEEP: true}
|
||||||
hits: [*forest]
|
hints: [*forest]
|
||||||
- LOC_FOREST13:
|
- LOC_FOREST13:
|
||||||
description:
|
description:
|
||||||
long: 'You are wandering aimlessly through the forest.'
|
long: 'You are wandering aimlessly through the forest.'
|
||||||
|
@ -971,19 +981,19 @@ locations: !!omap
|
||||||
long: 'You are wandering aimlessly through the forest.'
|
long: 'You are wandering aimlessly through the forest.'
|
||||||
short: !!null
|
short: !!null
|
||||||
conditions: {FOREST: true, NOBACK: true, LIT: true}
|
conditions: {FOREST: true, NOBACK: true, LIT: true}
|
||||||
hits: [*forest]
|
hints: [*forest]
|
||||||
- LOC_FOREST15:
|
- LOC_FOREST15:
|
||||||
description:
|
description:
|
||||||
long: 'You are wandering aimlessly through the forest.'
|
long: 'You are wandering aimlessly through the forest.'
|
||||||
short: !!null
|
short: !!null
|
||||||
conditions: {FOREST: true, NOBACK: true, LIT: true, DEEP: true}
|
conditions: {FOREST: true, NOBACK: true, LIT: true, DEEP: true}
|
||||||
hits: [*forest]
|
hints: [*forest]
|
||||||
- LOC_FOREST16:
|
- LOC_FOREST16:
|
||||||
description:
|
description:
|
||||||
long: 'You are wandering aimlessly through the forest.'
|
long: 'You are wandering aimlessly through the forest.'
|
||||||
short: !!null
|
short: !!null
|
||||||
conditions: {FOREST: true, NOBACK: true, LIT: true, DEEP: true}
|
conditions: {FOREST: true, NOBACK: true, LIT: true, DEEP: true}
|
||||||
hits: [*forest]
|
hints: [*forest]
|
||||||
- LOC_FOREST17:
|
- LOC_FOREST17:
|
||||||
description:
|
description:
|
||||||
long: 'You are wandering aimlessly through the forest.'
|
long: 'You are wandering aimlessly through the forest.'
|
||||||
|
@ -995,19 +1005,19 @@ locations: !!omap
|
||||||
long: 'You are wandering aimlessly through the forest.'
|
long: 'You are wandering aimlessly through the forest.'
|
||||||
short: !!null
|
short: !!null
|
||||||
conditions: {FOREST: true, NOBACK: true, LIT: true}
|
conditions: {FOREST: true, NOBACK: true, LIT: true}
|
||||||
hits: [*forest]
|
hints: [*forest]
|
||||||
- LOC_FOREST19:
|
- LOC_FOREST19:
|
||||||
description:
|
description:
|
||||||
long: 'You are wandering aimlessly through the forest.'
|
long: 'You are wandering aimlessly through the forest.'
|
||||||
short: !!null
|
short: !!null
|
||||||
conditions: {FOREST: true, NOBACK: true, LIT: true, DEEP: true}
|
conditions: {FOREST: true, NOBACK: true, LIT: true, DEEP: true}
|
||||||
hits: [*forest]
|
hints: [*forest]
|
||||||
- LOC_FOREST20:
|
- LOC_FOREST20:
|
||||||
description:
|
description:
|
||||||
long: 'You are wandering aimlessly through the forest.'
|
long: 'You are wandering aimlessly through the forest.'
|
||||||
short: !!null
|
short: !!null
|
||||||
conditions: {FOREST: true, NOBACK: true, LIT: true, DEEP: true}
|
conditions: {FOREST: true, NOBACK: true, LIT: true, DEEP: true}
|
||||||
hits: [*forest]
|
hints: [*forest]
|
||||||
- LOC_FOREST21:
|
- LOC_FOREST21:
|
||||||
description:
|
description:
|
||||||
long: 'You are wandering aimlessly through the forest.'
|
long: 'You are wandering aimlessly through the forest.'
|
||||||
|
@ -1019,7 +1029,7 @@ locations: !!omap
|
||||||
long: 'You are wandering aimlessly through the forest.'
|
long: 'You are wandering aimlessly through the forest.'
|
||||||
short: !!null
|
short: !!null
|
||||||
conditions: {FOREST: true, NOBACK: true, LIT: true}
|
conditions: {FOREST: true, NOBACK: true, LIT: true}
|
||||||
hits: [*forest]
|
hints: [*forest]
|
||||||
- LOC_LEDGE:
|
- LOC_LEDGE:
|
||||||
description:
|
description:
|
||||||
long: 'You are on a small ledge on one face of a sheer cliff. There are no\npaths away from the ledge. Across the chasm is a small clearing\nsurrounded by forest.'
|
long: 'You are on a small ledge on one face of a sheer cliff. There are no\npaths away from the ledge. Across the chasm is a small clearing\nsurrounded by forest.'
|
||||||
|
@ -1110,10 +1120,6 @@ locations: !!omap
|
||||||
long: '>>Foof!<<'
|
long: '>>Foof!<<'
|
||||||
short: !!null
|
short: !!null
|
||||||
conditions: {DEEP: true}
|
conditions: {DEEP: true}
|
||||||
- LOC_NUGGET5:
|
|
||||||
description:
|
|
||||||
long: !!null
|
|
||||||
short: !!null
|
|
||||||
|
|
||||||
arbitrary_messages: !!omap
|
arbitrary_messages: !!omap
|
||||||
- NO_MESSAGE: !!null
|
- NO_MESSAGE: !!null
|
||||||
|
|
22
common.h
22
common.h
|
@ -8,6 +8,28 @@
|
||||||
extern const char advent_to_ascii[128];
|
extern const char advent_to_ascii[128];
|
||||||
extern const char ascii_to_advent[128];
|
extern const char ascii_to_advent[128];
|
||||||
|
|
||||||
|
/* Symbols for cond bits - used by advent.h */
|
||||||
|
#define COND_LIT 0 /* Light */
|
||||||
|
#define COND_OILY 1 /* If bit 2 is on: on for oil, off for water */
|
||||||
|
#define COND_FLUID 2 /* Liquid asset, see bit 1 */
|
||||||
|
#define COND_NOARRR 3 /* Pirate doesn't go here unless following */
|
||||||
|
#define COND_NOBACK 4 /* Cannot use "back" to move away */
|
||||||
|
#define COND_ABOVE 5
|
||||||
|
#define COND_DEEP 6 /* Deep - e.g where dwarves are active */
|
||||||
|
#define COND_FOREST 7 /* in the forest */
|
||||||
|
/* Bits past 10 indicate areas of interest to "hint" routines */
|
||||||
|
#define COND_HBASE 10 /* Base for location hint bits */
|
||||||
|
#define COND_HCAVE 11 /* Trying to get into cave */
|
||||||
|
#define COND_HBIRD 12 /* Trying to catch bird */
|
||||||
|
#define COND_HSNAKE 13 /* Trying to deal with snake */
|
||||||
|
#define COND_HMAZE 14 /* Lost in maze */
|
||||||
|
#define COND_HDARK 15 /* Pondering dark room */
|
||||||
|
#define COND_HWITT 16 /* At Witt's End */
|
||||||
|
#define COND_HCLIFF 17 /* Cliff with urn */
|
||||||
|
#define COND_HWOODS 18 /* Lost in forest */
|
||||||
|
#define COND_HOGRE 19 /* Trying to deal with ogre */
|
||||||
|
#define COND_HJADE 20 /* Found all treasures except jade */
|
||||||
|
|
||||||
enum bugtype {
|
enum bugtype {
|
||||||
MESSAGE_LINE_GT_70_CHARACTERS, // 0
|
MESSAGE_LINE_GT_70_CHARACTERS, // 0
|
||||||
NULL_LINE_IN_MESSAGE, // 1
|
NULL_LINE_IN_MESSAGE, // 1
|
||||||
|
|
|
@ -59,6 +59,7 @@ extern const class_t classes[];
|
||||||
extern turn_threshold_t turn_thresholds[];
|
extern turn_threshold_t turn_thresholds[];
|
||||||
extern obituary_t obituaries[];
|
extern obituary_t obituaries[];
|
||||||
extern hint_t hints[];
|
extern hint_t hints[];
|
||||||
|
extern const long conditions[];
|
||||||
|
|
||||||
extern const size_t CLSSES;
|
extern const size_t CLSSES;
|
||||||
extern const int maximum_deaths;
|
extern const int maximum_deaths;
|
||||||
|
@ -82,6 +83,7 @@ enum object_descriptions_refs {{
|
||||||
|
|
||||||
c_template = """/* Generated from adventure.yaml - do not hand-hack! */
|
c_template = """/* Generated from adventure.yaml - do not hand-hack! */
|
||||||
|
|
||||||
|
#include "common.h"
|
||||||
#include "{}"
|
#include "{}"
|
||||||
|
|
||||||
const char* arbitrary_messages[] = {{
|
const char* arbitrary_messages[] = {{
|
||||||
|
@ -112,6 +114,10 @@ hint_t hints[] = {{
|
||||||
{}
|
{}
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
const long conditions[] = {{
|
||||||
|
{}
|
||||||
|
}};
|
||||||
|
|
||||||
const size_t CLSSES = {};
|
const size_t CLSSES = {};
|
||||||
const int maximum_deaths = {};
|
const int maximum_deaths = {};
|
||||||
const int turn_threshold_count = {};
|
const int turn_threshold_count = {};
|
||||||
|
@ -251,6 +257,25 @@ def get_hints(hnt, arb):
|
||||||
hnt_str = hnt_str[:-1] # trim trailing newline
|
hnt_str = hnt_str[:-1] # trim trailing newline
|
||||||
return hnt_str
|
return hnt_str
|
||||||
|
|
||||||
|
def get_condbits(locations):
|
||||||
|
cnd_str = ""
|
||||||
|
for (name, loc) in locations:
|
||||||
|
conditions = loc["conditions"]
|
||||||
|
hints = loc.get("hints") or []
|
||||||
|
flaglist = []
|
||||||
|
for flag in conditions:
|
||||||
|
if conditions[flag]:
|
||||||
|
flaglist.append(flag)
|
||||||
|
line = "|".join([("(1<<COND_%s)" % f) for f in flaglist])
|
||||||
|
trail = "|".join([("(1<<COND_H%s)" % f['name']) for f in hints])
|
||||||
|
if trail:
|
||||||
|
line += "|" + trail
|
||||||
|
if line.startswith("|"):
|
||||||
|
line = line[1:]
|
||||||
|
if not line:
|
||||||
|
line = "0"
|
||||||
|
cnd_str += " " + line + ",\t// " + name + "\n"
|
||||||
|
return cnd_str
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
with open(yaml_name, "r") as f:
|
with open(yaml_name, "r") as f:
|
||||||
|
@ -272,6 +297,7 @@ if __name__ == "__main__":
|
||||||
get_object_descriptions(db["object_descriptions"]),
|
get_object_descriptions(db["object_descriptions"]),
|
||||||
get_obituaries(db["obituaries"]),
|
get_obituaries(db["obituaries"]),
|
||||||
get_hints(db["hints"], db["arbitrary_messages"]),
|
get_hints(db["hints"], db["arbitrary_messages"]),
|
||||||
|
get_condbits(db["locations"]),
|
||||||
len(db["classes"]),
|
len(db["classes"]),
|
||||||
len(db["obituaries"]),
|
len(db["obituaries"]),
|
||||||
len(db["turn_thresholds"]),
|
len(db["turn_thresholds"]),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue