The layout and naming conventions for the contents of the main/synoptic module.


§1. This section gives a map of what resources will be made in the synoptic module. The definitions here enable code generated by inform7 or inter to call functions or use constants defined in the synoptic module, and also allow them to be referred to from kits linked in.

Because the synoptic module exists only to provide resources, this section is in effect a specification for it.

enum SYNOPTIC_HIERARCHY_MADE_ITHBIT
void SynopticHierarchy::establish(inter_tree *I) {
    if (InterTree::test_history(I, SYNOPTIC_HIERARCHY_MADE_ITHBIT)) return;
    InterTree::set_history(I, SYNOPTIC_HIERARCHY_MADE_ITHBIT);
    location_requirement req;
    Resources for actions1.2;
    Resources for activities1.4;
    Resources for chronology1.6;
    Resources for conjugations1.8;
    Resources for dialogue1.10;
    Resources for extensions1.12;
    Resources for instances1.14;
    Resources for kinds1.16;
    Resources for multimedia1.18;
    Resources for properties1.20;
    Resources for relations1.22;
    Resources for rulebooks1.24;
    Resources for rules1.26;
    Resources for scenes1.28;
    Resources for tables1.30;
    Resources for tests1.32;
    Resources for use options1.34;
}

§1.1. The notation here is a little cryptic, but see Hierarchy (in runtime) for a fuller explanation.

define SYN_SUBMD(r)
    req = LocationRequirements::synoptic_submodule(I, LargeScale::register_submodule_identity(r));
define SYN_CONST(id, n) {
        HierarchyLocations::con(I, id, n, req);
        inter_name *iname = HierarchyLocations::iname(I, id);
        inter_symbol *S = InterNames::to_symbol(iname);
        Wiring::socket(I, InterNames::to_text(iname), S);
    }
define SYN_FUNCT(id, n, t) {
        HierarchyLocations::fun(I, id, n, Translation::to(t), req);
        inter_name *iname = HierarchyLocations::iname(I, id);
        inter_symbol *S = InterNames::to_symbol(iname);
        Wiring::socket(I, InterNames::get_translation(iname), S);
    }

§1.2. Actions. The /main/synoptic/actions submodule.

enum ACTIONCODING_HL
enum ACTIONDATA_HL
enum ACTIONHAPPENED_HL
enum AD_RECORDS_HL
enum CCOUNT_ACTION_NAME_HL
enum DB_ACTION_DETAILS_HL

Resources for actions1.2 =

    SYN_SUBMD(I"actions")
        SYN_CONST(ACTIONCODING_HL,                I"ActionCoding")
        SYN_CONST(ACTIONDATA_HL,                  I"ActionData")
        SYN_CONST(ACTIONHAPPENED_HL,              I"ActionHappened")
        SYN_CONST(AD_RECORDS_HL,                  I"AD_RECORDS")
        SYN_CONST(CCOUNT_ACTION_NAME_HL,          I"CCOUNT_ACTION_NAME")
        SYN_FUNCT(DB_ACTION_DETAILS_HL,           I"DB_Action_Details_fn", I"DB_Action_Details")

§1.3. Activities. The /main/synoptic/activities submodule.

enum ACTIVITY_AFTER_RULEBOOKS_HL
enum ACTIVITY_BEFORE_RULEBOOKS_HL
enum ACTIVITY_FOR_RULEBOOKS_HL
enum ACTIVITY_FLAGS_HL
enum ACTIVITY_VAR_CREATORS_HL

§1.4. Resources for activities1.4 =

    SYN_SUBMD(I"activities")
        SYN_CONST(ACTIVITY_AFTER_RULEBOOKS_HL,    I"Activity_after_rulebooks")
        SYN_CONST(ACTIVITY_BEFORE_RULEBOOKS_HL,   I"Activity_before_rulebooks")
        SYN_CONST(ACTIVITY_FOR_RULEBOOKS_HL,      I"Activity_for_rulebooks")
        SYN_CONST(ACTIVITY_VAR_CREATORS_HL,       I"activity_var_creators")
        SYN_CONST(ACTIVITY_FLAGS_HL,              I"Activity_flags")

§1.5. Chronology. The /main/synoptic/chronology submodule.

enum TIMEDEVENTSTABLE_HL
enum TIMEDEVENTTIMESTABLE_HL
enum PASTACTIONSI6ROUTINES_HL
enum NO_PAST_TENSE_CONDS_HL
enum NO_PAST_TENSE_ACTIONS_HL
enum TESTSINGLEPASTSTATE_HL

§1.6. Resources for chronology1.6 =

    SYN_SUBMD(I"chronology")
        SYN_CONST(TIMEDEVENTSTABLE_HL,            I"TimedEventsTable")
        SYN_CONST(TIMEDEVENTTIMESTABLE_HL,        I"TimedEventTimesTable")
        SYN_CONST(PASTACTIONSI6ROUTINES_HL,       I"PastActionsI6Routines")
        SYN_CONST(NO_PAST_TENSE_CONDS_HL,         I"NO_PAST_TENSE_CONDS")
        SYN_CONST(NO_PAST_TENSE_ACTIONS_HL,       I"NO_PAST_TENSE_ACTIONS")
        SYN_FUNCT(TESTSINGLEPASTSTATE_HL,         I"test_fn", I"TestSinglePastState")

§1.7. Conjugations. The /main/synoptic/conjugations submodule.

enum TABLEOFVERBS_HL

§1.8. Resources for conjugations1.8 =

    SYN_SUBMD(I"conjugations")
        SYN_CONST(TABLEOFVERBS_HL,                I"TableOfVerbs")

§1.9. Dialogue. The /main/synoptic/dialogue submodule.

enum DIALOGUEBEATS_HL
enum DIALOGUELINES_HL
enum DIALOGUECHOICES_HL
enum NO_DIALOGUE_BEATS_HL
enum NO_DIALOGUE_LINES_HL
enum NO_DIALOGUE_CHOICES_HL

§1.10. Resources for dialogue1.10 =

    SYN_SUBMD(I"dialogue")
        SYN_CONST(DIALOGUEBEATS_HL,               I"TableOfDialogueBeats")
        SYN_CONST(DIALOGUELINES_HL,               I"TableOfDialogueLines")
        SYN_CONST(DIALOGUECHOICES_HL,             I"TableOfDialogueChoices")
        SYN_CONST(NO_DIALOGUE_BEATS_HL,           I"NO_DIALOGUE_BEATS")
        SYN_CONST(NO_DIALOGUE_LINES_HL,           I"NO_DIALOGUE_LINES")
        SYN_CONST(NO_DIALOGUE_CHOICES_HL,         I"NO_DIALOGUE_CHOICES")

§1.11. Extensions. The /main/synoptic/extensions submodule.

enum SHOWEXTENSIONVERSIONS_HL
enum SHOWFULLEXTENSIONVERSIONS_HL
enum SHOWONEEXTENSION_HL

§1.12. Resources for extensions1.12 =

    SYN_SUBMD(I"extensions")
        SYN_FUNCT(SHOWEXTENSIONVERSIONS_HL,       I"showextensionversions_fn", I"ShowExtensionVersions")
        SYN_FUNCT(SHOWFULLEXTENSIONVERSIONS_HL,   I"showfullextensionversions_fn", I"ShowFullExtensionVersions")
        SYN_FUNCT(SHOWONEEXTENSION_HL,            I"showoneextension_fn", I"ShowOneExtension")

§1.13. Instances. The /main/synoptic/instances submodule.

enum SHOWMEINSTANCEDETAILS_HL

§1.14. Resources for instances1.14 =

    SYN_SUBMD(I"instances")
        SYN_FUNCT(SHOWMEINSTANCEDETAILS_HL,       I"showmeinstancedetails_fn", I"ShowMeInstanceDetails")

§1.15. Kinds. The /main/synoptic/kinds submodule.

enum DEFAULTVALUEOFKOV_HL
enum DEFAULTVALUEFINDER_HL
enum VALUESFINDER_HL
enum PRINTKINDVALUEPAIR_HL
enum KOVCOMPARISONFUNCTION_HL
enum KOVDOMAINSIZE_HL
enum KOVISBLOCKVALUE_HL
enum I7_KIND_NAME_HL
enum KOVSUPPORTFUNCTION_HL
enum SHOWMEKINDDETAILS_HL
enum BASE_KIND_HWM_HL
enum RUCKSACK_CLASS_HL
enum KINDHIERARCHY_HL

§1.16. Resources for kinds1.16 =

    SYN_SUBMD(I"kinds")
        SYN_CONST(BASE_KIND_HWM_HL,               I"BASE_KIND_HWM")
        SYN_FUNCT(DEFAULTVALUEOFKOV_HL,           I"defaultvalue_fn", I"DefaultValueOfKOV")
        SYN_FUNCT(DEFAULTVALUEFINDER_HL,          I"defaultvaluefinder_fn", I"DefaultValueFinder")
        SYN_FUNCT(VALUESFINDER_HL,                I"valuesfinder_fn", I"ValuesFinder")
        SYN_FUNCT(PRINTKINDVALUEPAIR_HL,          I"printkindvaluepair_fn", I"PrintKindValuePair")
        SYN_FUNCT(KOVCOMPARISONFUNCTION_HL,       I"comparison_fn", I"KOVComparisonFunction")
        SYN_FUNCT(KOVDOMAINSIZE_HL,               I"domainsize_fn", I"KOVDomainSize")
        SYN_FUNCT(KOVISBLOCKVALUE_HL,             I"blockvalue_fn", I"KOVIsBlockValue")
        SYN_FUNCT(I7_KIND_NAME_HL,                I"printkindname_fn", I"I7_Kind_Name")
        SYN_FUNCT(KOVSUPPORTFUNCTION_HL,          I"support_fn", I"KOVSupportFunction")
        SYN_FUNCT(SHOWMEKINDDETAILS_HL,           I"showmekinddetails_fn", I"ShowMeKindDetails")
        SYN_CONST(RUCKSACK_CLASS_HL,              I"RUCKSACK_CLASS")
        SYN_CONST(KINDHIERARCHY_HL,               I"KindHierarchy")

§1.17. Multimedia. The /main/synoptic/multimedia submodule.

enum RESOURCEIDSOFFIGURES_HL
enum RESOURCEIDSOFSOUNDS_HL
enum NO_EXTERNAL_FILES_HL
enum NO_INTERNAL_FILES_HL
enum TABLEOFEXTERNALFILES_HL
enum TABLEOFINTERNALFILES_HL

§1.18. Resources for multimedia1.18 =

    SYN_SUBMD(I"multimedia")
        SYN_CONST(RESOURCEIDSOFFIGURES_HL,        I"ResourceIDsOfFigures")
        SYN_CONST(RESOURCEIDSOFSOUNDS_HL,         I"ResourceIDsOfSounds")
        SYN_CONST(NO_EXTERNAL_FILES_HL,           I"NO_EXTERNAL_FILES")
        SYN_CONST(NO_INTERNAL_FILES_HL,           I"NO_INTERNAL_FILES")
        SYN_CONST(TABLEOFEXTERNALFILES_HL,        I"TableOfExternalFiles")
        SYN_CONST(TABLEOFINTERNALFILES_HL,        I"TableOfInternalFiles")

§1.19. Properties. The /main/synoptic/properties submodule.

enum CCOUNT_PROPERTY_HL

§1.20. Resources for properties1.20 =

    SYN_SUBMD(I"properties")
        SYN_CONST(CCOUNT_PROPERTY_HL,             I"CCOUNT_PROPERTY")

§1.21. Relations. The /main/synoptic/relations submodule.

enum CREATEDYNAMICRELATIONS_HL
enum CCOUNT_BINARY_PREDICATE_HL
enum ITERATERELATIONS_HL
enum RPROPERTY_HL

§1.22. Resources for relations1.22 =

    SYN_SUBMD(I"relations")
        SYN_FUNCT(CREATEDYNAMICRELATIONS_HL,      I"creator_fn", I"CreateDynamicRelations")
        SYN_CONST(CCOUNT_BINARY_PREDICATE_HL,     I"CCOUNT_BINARY_PREDICATE")
        SYN_FUNCT(ITERATERELATIONS_HL,            I"iterator_fn", I"IterateRelations")
        SYN_FUNCT(RPROPERTY_HL,                   I"property_fn", I"RProperty")

§1.23. Rulebooks. The /main/synoptic/rulebooks submodule.

enum NUMBER_RULEBOOKS_CREATED_HL
enum RULEBOOK_VAR_CREATORS_HL
enum SLOW_LOOKUP_HL
enum RULEBOOKS_ARRAY_HL
enum RULEBOOKNAMES_HL

§1.24. Resources for rulebooks1.24 =

    SYN_SUBMD(I"rulebooks")
        SYN_CONST(NUMBER_RULEBOOKS_CREATED_HL,    I"NUMBER_RULEBOOKS_CREATED")
        SYN_CONST(RULEBOOK_VAR_CREATORS_HL,       I"rulebook_var_creators")
        SYN_FUNCT(SLOW_LOOKUP_HL,                 I"slow_lookup_fn", I"MStack_GetRBVarCreator")
        SYN_CONST(RULEBOOKS_ARRAY_HL,             I"rulebooks_array")
        SYN_CONST(RULEBOOKNAMES_HL,               I"RulebookNames")

§1.25. Rules. The /main/synoptic/rules and /main/synoptic/responses submodule.

enum RULEPRINTINGRULE_HL
enum RESPONSETEXTS_HL
enum NO_RESPONSES_HL
enum RESPONSEDIVISIONS_HL
enum PRINT_RESPONSE_HL

§1.26. Resources for rules1.26 =

    SYN_SUBMD(I"rules")
        SYN_FUNCT(RULEPRINTINGRULE_HL,            I"print_fn", I"RulePrintingRule")

    SYN_SUBMD(I"responses")
        SYN_CONST(RESPONSEDIVISIONS_HL,           I"ResponseDivisions")
        SYN_CONST(RESPONSETEXTS_HL,               I"ResponseTexts")
        SYN_CONST(NO_RESPONSES_HL,                I"NO_RESPONSES")
        SYN_FUNCT(PRINT_RESPONSE_HL,              I"print_fn", I"PrintResponse")

§1.27. Scenes. The /main/synoptic/scenes submodule.

enum SHOWSCENESTATUS_HL
enum DETECTSCENECHANGE_HL

§1.28. Resources for scenes1.28 =

    SYN_SUBMD(I"scenes")
        SYN_FUNCT(SHOWSCENESTATUS_HL,             I"show_scene_status_fn", I"ShowSceneStatus")
        SYN_FUNCT(DETECTSCENECHANGE_HL,           I"detect_scene_change_fn", I"DetectSceneChange")

§1.29. Tables. The /main/synoptic/tables submodule.

enum PRINT_TABLE_HL
enum TABLEOFTABLES_HL
enum TB_BLANKS_HL
enum RANKING_TABLE_HL
enum TC_KOV_HL

§1.30. Resources for tables1.30 =

    SYN_SUBMD(I"tables")
        SYN_FUNCT(PRINT_TABLE_HL,                 I"print_fn", I"PrintTableName")
        SYN_CONST(TABLEOFTABLES_HL,               I"TableOfTables")
        SYN_CONST(TB_BLANKS_HL,                   I"TB_Blanks")
        SYN_CONST(RANKING_TABLE_HL,               I"RANKING_TABLE")

    SYN_SUBMD(I"table_columns")
        SYN_FUNCT(TC_KOV_HL,                      I"weak_kind_ID_of_column_entry_fn", I"TC_KOV")

§1.31. Tests. The /main/synoptic/tests submodule.

enum TESTSCRIPTSUB_HL

§1.32. Resources for tests1.32 =

    SYN_SUBMD(I"tests")
        SYN_FUNCT(TESTSCRIPTSUB_HL,               I"TestScriptSub_fn", I"TestScriptSub")

§1.33. Use options. The /main/synoptic/use_options submodule.

enum NO_USE_OPTIONS_HL
enum TESTUSEOPTION_HL
enum PRINT_USE_OPTION_HL
enum USE_OPTION_VALUES_HL

§1.34. Resources for use options1.34 =

    SYN_SUBMD(I"use_options")
        SYN_CONST(NO_USE_OPTIONS_HL,              I"NO_USE_OPTIONS")
        SYN_FUNCT(TESTUSEOPTION_HL,               I"test_fn", I"TestUseOption")
        SYN_FUNCT(PRINT_USE_OPTION_HL,            I"print_fn", I"PrintUseOption")
        SYN_CONST(USE_OPTION_VALUES_HL,           I"USE_OPTION_VALUES")

§2. Synoptic printing functions.

#ifdef CORE_MODULE
inter_name *SynopticHierarchy::printing_function_iname(inter_tree *I, kind *K) {
    if (Kinds::eq(K, K_use_option)) return HierarchyLocations::iname(I, PRINT_USE_OPTION_HL);
    if (Kinds::eq(K, K_table)) return HierarchyLocations::iname(I, PRINT_TABLE_HL);
    if (Kinds::eq(K, K_response)) return HierarchyLocations::iname(I, PRINT_RESPONSE_HL);
    return NULL;
}
#endif