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.

enumerate 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.1;
    Resources for activities1.2;
    Resources for chronology1.3;
    Resources for conjugations1.4;
    Resources for dialogue1.5;
    Resources for extensions1.6;
    Resources for instances1.7;
    Resources for kinds1.8;
    Resources for multimedia1.9;
    Resources for properties1.10;
    Resources for relations1.11;
    Resources for rulebooks1.12;
    Resources for rules1.13;
    Resources for scenes1.14;
    Resources for tables1.15;
    Resources for tests1.16;
    Resources for use options1.17;
}

§2. 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.1. Actions. The /main/synoptic/actions submodule.

enumerate ACTIONCODING_HL 
enumerate ACTIONDATA_HL 
enumerate ACTIONHAPPENED_HL 
enumerate AD_RECORDS_HL 
enumerate CCOUNT_ACTION_NAME_HL 
enumerate DB_ACTION_DETAILS_HL 

Resources for actions1.1 =

    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.2. Activities. The /main/synoptic/activities submodule.

enumerate ACTIVITY_AFTER_RULEBOOKS_HL 
enumerate ACTIVITY_BEFORE_RULEBOOKS_HL 
enumerate ACTIVITY_FOR_RULEBOOKS_HL 
enumerate ACTIVITY_FLAGS_HL 
enumerate ACTIVITY_VAR_CREATORS_HL 

Resources for activities1.2 =

    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.3. Chronology. The /main/synoptic/chronology submodule.

enumerate TIMEDEVENTSTABLE_HL 
enumerate TIMEDEVENTTIMESTABLE_HL 
enumerate PASTACTIONSI6ROUTINES_HL 
enumerate NO_PAST_TENSE_CONDS_HL 
enumerate NO_PAST_TENSE_ACTIONS_HL 
enumerate TESTSINGLEPASTSTATE_HL 

Resources for chronology1.3 =

    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.4. Conjugations. The /main/synoptic/conjugations submodule.

enumerate TABLEOFVERBS_HL 

Resources for conjugations1.4 =

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

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

enumerate DIALOGUEBEATS_HL 
enumerate DIALOGUELINES_HL 
enumerate DIALOGUECHOICES_HL 
enumerate NO_DIALOGUE_BEATS_HL 
enumerate NO_DIALOGUE_LINES_HL 
enumerate NO_DIALOGUE_CHOICES_HL 

Resources for dialogue1.5 =

    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.6. Extensions. The /main/synoptic/extensions submodule.

enumerate SHOWEXTENSIONVERSIONS_HL 
enumerate SHOWFULLEXTENSIONVERSIONS_HL 
enumerate SHOWONEEXTENSION_HL 

Resources for extensions1.6 =

    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.7. Instances. The /main/synoptic/instances submodule.

enumerate SHOWMEINSTANCEDETAILS_HL 

Resources for instances1.7 =

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

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

enumerate DEFAULTVALUEFINDER_HL 
enumerate I7_KIND_NAME_HL 
enumerate SHOWMEKINDDETAILS_HL 
enumerate BASE_KIND_HWM_HL 
enumerate RUCKSACK_CLASS_HL 
enumerate KINDHIERARCHY_HL 
enumerate KINDMETADATA_HL 

Resources for kinds1.8 =

    SYN_SUBMD(I"kinds")
        SYN_CONST(BASE_KIND_HWM_HL,               I"BASE_KIND_HWM")
        SYN_FUNCT(DEFAULTVALUEFINDER_HL,          I"defaultvaluefinder_fn", I"DefaultValueFinder")
        SYN_FUNCT(I7_KIND_NAME_HL,                I"printkindname_fn", I"I7_Kind_Name")
        SYN_FUNCT(SHOWMEKINDDETAILS_HL,           I"showmekinddetails_fn", I"ShowMeKindDetails")
        SYN_CONST(RUCKSACK_CLASS_HL,              I"RUCKSACK_CLASS")
        SYN_CONST(KINDHIERARCHY_HL,               I"KindHierarchy")
        SYN_CONST(KINDMETADATA_HL,                I"KindMetadata")

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

enumerate RESOURCEIDSOFFIGURES_HL 
enumerate RESOURCEIDSOFSOUNDS_HL 
enumerate NO_EXTERNAL_FILES_HL 
enumerate NO_INTERNAL_FILES_HL 
enumerate TABLEOFEXTERNALFILES_HL 
enumerate TABLEOFINTERNALFILES_HL 

Resources for multimedia1.9 =

    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.10. Properties. The /main/synoptic/properties submodule.

enumerate CCOUNT_PROPERTY_HL 

Resources for properties1.10 =

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

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

enumerate CREATEDYNAMICRELATIONS_HL 
enumerate CCOUNT_BINARY_PREDICATE_HL 
enumerate ITERATERELATIONS_HL 
enumerate RPROPERTY_HL 

Resources for relations1.11 =

    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.12. Rulebooks. The /main/synoptic/rulebooks submodule.

enumerate NUMBER_RULEBOOKS_CREATED_HL 
enumerate RULEBOOK_VAR_CREATORS_HL 
enumerate SLOW_LOOKUP_HL 
enumerate RULEBOOKS_ARRAY_HL 
enumerate RULEBOOKNAMES_HL 

Resources for rulebooks1.12 =

    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.13. Rules. The /main/synoptic/rules and /main/synoptic/responses submodule.

enumerate RULEPRINTINGRULE_HL 
enumerate RESPONSETEXTS_HL 
enumerate NO_RESPONSES_HL 
enumerate RESPONSEDIVISIONS_HL 
enumerate PRINT_RESPONSE_HL 

Resources for rules1.13 =

    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.14. Scenes. The /main/synoptic/scenes submodule.

enumerate SHOWSCENESTATUS_HL 
enumerate DETECTSCENECHANGE_HL 

Resources for scenes1.14 =

    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.15. Tables. The /main/synoptic/tables submodule.

enumerate PRINT_TABLE_HL 
enumerate TABLEOFTABLES_HL 
enumerate TB_BLANKS_HL 
enumerate RANKING_TABLE_HL 
enumerate TC_KOV_HL 

Resources for tables1.15 =

    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.16. Tests. The /main/synoptic/tests submodule.

enumerate TESTSCRIPTSUB_HL 

Resources for tests1.16 =

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

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

enumerate NO_USE_OPTIONS_HL 
enumerate TESTUSEOPTION_HL 
enumerate PRINT_USE_OPTION_HL 
enumerate USE_OPTION_VALUES_HL 

Resources for use options1.17 =

    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")

§3. 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