# Include

SCICompanion allows the include keyword to be used to include header files (file suffix .sh). Header files can contain define keywords, and other include keywords.

An example header file:

    /*************************************************************************
     * Example Header
     ************************************************************************/
    /************************************************************************/
    (define rsVIEW    $80)
    (define rsPIC     $81)
    (define rsSCRIPT  $82)
    (define rsTEXT    $83)
    (define rsSOUND   $84)
    (define rsMEMORY  $85)
    (define rsVOCAB   $86)
    (define rsFONT    $87)
    (define rsCURSOR  $88)
    (define rsPATCH   $89)
    /************************************************************************/

Including it:

    (include "myheader.sh")

## Message files and polygon files

In the SCI1.1 template game, message files (*.shm) and polygon files (*.shp) can also be included:

    (include "110.shp")
    (include "110.shm")

In this case, support for defining local variables in include files was added. This is needed for polygon definitions:

    // 110.shp -- Produced by SCI Companion
    // This file should only be edited with the SCI Companion polygon editor

    (local
            P_Default110[11] = (1 PContainedAccess 4 319 189 319 50 0 50 0 189 )
    )

At compile time, a script that includes .sh files that have local variables defined in them will have those local variables added to the script.