Posted: Sun Dec 14, 2008 3:32 pm
I’m about two thirds of the way through writing a tool to convert the system_descriptions array into something more human-friendly and back again. (At least, I find ““its [exciting_adj] [tharg_creature_noun_2] [tharg_food_type_noun]” more friendly than, “its [12] [31] [33]”; if you disagree, you can always keep working on the raw form.)
The “back again” isn’t done yet, but that code will be very similar to what I’ve got. I intend to integrate it into the trunk as a command-line option (something like --export-sysdesc to convert to human-friendly form and --compile-sysdesc to convert back to array form). If you ask nicely, I’m sure another_commander can send you a build when it’s done.
What it does is replace an numerical cross-references with textual ones. See attached example below. The names are taken from a separate plist file, sysdesc_key_table.plist, which can be edited and contains a description of the various blocks and how they interrelate.
I’ve also updated the SystemDescription.dot generator to use the labels from sysdesc_key_table.plist if it’s present, as seen here.
The “back again” isn’t done yet, but that code will be very similar to what I’ve got. I intend to integrate it into the trunk as a command-line option (something like --export-sysdesc to convert to human-friendly form and --compile-sysdesc to convert back to array form). If you ask nicely, I’m sure another_commander can send you a build when it’s done.
What it does is replace an numerical cross-references with textual ones. See attached example below. The names are taken from a separate plist file, sysdesc_key_table.plist, which can be edited and contains a description of the various blocks and how they interrelate.
I’ve also updated the SystemDescription.dot generator to use the labels from sysdesc_key_table.plist if it’s present, as seen here.
Code: Select all
{
"-oid_prefix_creature_noun" =
(
"talking tree",
crab,
bat,
lobst,
"%R"
);
"behaviour_adj" =
(
ancient,
exceptional,
eccentric,
ingrained,
"[tharg_strange_adj]"
);
"boring_adj" =
(
"n unremarkable",
" boring",
" dull",
" tedious",
" revolting"
);
"creature_attr_adj" =
(
"[dangerous_adj]",
mountain,
edible,
tree,
spotted
);
"creature_noun_1" =
(
shrew,
beast,
bison,
snake,
wolf
);
"creature_noun_3" =
(
wasp,
moth,
grub,
ant,
"%R"
);
"cursed_adj" =
(
beset,
plagued,
ravaged,
cursed,
scourged,
);
"dangerous_adj" =
(
killer,
deadly,
evil,
lethal,
vicious,
);
"degree_adj" =
(
very,
mildly,
most,
reasonably,
""
);
"disaster_frequency_adj" =
(
frequent,
occasional,
unpredictable,
dreadful,
deadly
);
"disaster_noun_phrase" =
(
"[disaster_frequency_adj] civil war",
"[dangerous_adj] [creature_attr_adj] [tharg_creature_noun_root]s",
"[dangerous_adj] disease",
"[disaster_frequency_adj] earthquakes",
"[disaster_frequency_adj] solar activity"
);
"drink_attribute" =
(
"%R",
"%I [tharg_creature_noun_root]",
"%I %R",
"%I [dangerous_adj]",
"[dangerous_adj] %R"
);
"drink_type_noun" = (
juice,
brandy,
water,
brew,
"gargle blasters",
);
"entertainment_noun" =
(
cuisine,
"night life",
casinos,
"sit coms",
"[secondary_dispatch]"
);
"exciting_adj" =
(
fabulous,
exotic,
hoopy,
unusual,
exciting
);
"famous_adj" =
(
fabled,
notable,
"well known",
famous,
noted
);
"forest_adj" =
(
tropical,
dense,
rain,
impenetrable,
exuberant
);
"main_dispatch" =
(
"its [tourist_attraction_adj] [tourist_attraction_noun]",
"the %I [creature_attr_adj] [tharg_creature_noun_root]",
"its inhabitants\U2019 [behaviour_adj] [tharg_behaviour_noun]",
"[secondary_dispatch]",
"its [exciting_adj] [entertainment_noun]"
);
"planet_attr_root" =
(
"[degree_adj] [famous_adj] for [main_dispatch]",
"[degree_adj] [famous_adj] for [main_dispatch] and [main_dispatch]",
"[cursed_adj] by [disaster_noun_phrase]",
"[degree_adj] [famous_adj] for [main_dispatch] but [cursed_adj] by [disaster_noun_phrase]",
"a[boring_adj] [planet_noun]"
);
"planet_noun" =
(
planet,
world,
place,
"little planet",
dump
);
"planet_root" =
(
"%H",
"The planet %H",
"The world %H",
"This planet",
"This world"
);
"plantation_1" =
(
"%R",
"%I %R",
"%I [dangerous_adj]",
inhabitant,
"%I %R"
);
"plantation_2" =
(
plant,
tulip,
banana,
corn,
"%Rweed"
);
"secondary_dispatch" =
(
"[drink_attribute] [drink_type_noun]",
"%I [creature_noun_1] [tharg_food_type_noun]",
"its [exciting_adj] [tharg_creature_noun_2] [tharg_food_type_noun]",
"[sport_adj] [sport_noun]",
"[drink_attribute] [drink_type_noun]"
);
"sport_adj" =
(
ice,
mud,
"Zero-G",
vacuum,
"%I ultra"
);
"sport_noun" =
(
hockey,
cricket,
karate,
polo,
tennis
);
"tharg_behaviour_noun" =
(
shyness,
silliness,
"mating traditions",
"loathing of [tharg_object_of_emotion_noun]",
"love for [tharg_object_of_emotion_noun]"
);
"tharg_creature_noun_2" =
(
leopard,
cat,
monkey,
goat,
fish
);
"tharg_creature_noun_4" =
(
poet,
"arts graduate",
yak,
snail,
slug
);
"tharg_creature_noun_root" =
(
"[creature_noun_1]",
"[tharg_creature_noun_2]",
"[-oid_prefix_creature_noun]oid",
"[tharg_creature_noun_4]",
"[creature_noun_3]"
);
"tharg_food_type_noun" =
(
meat,
cutlet,
steak,
burgers,
soup
);
"tharg_object_of_emotion_noun" =
(
"food blenders",
tourists,
poetry,
discos,
"[entertainment_noun]"
);
"tharg_strange_adj" =
(
funny,
weird,
unusual,
strange,
peculiar
);
"tharg_tourist_attraction_2_noun" =
(
"parking meters",
"dust clouds",
"ice bergs",
"rock formations",
volcanoes
);
"tourist_attraction_adj" =
(
ancient,
"[tharg_strange_adj]",
great,
vast,
pink
);
"tourist_attraction_noun" =
(
"[plantation_1] [plantation_2] plantations",
mountains,
"[tharg_tourist_attraction_2_noun]",
"[forest_adj] forests",
oceans
);
}