X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=src%2Fheader.h;h=8b05f26b9a631d99943b6e7cdbe66f32103bb962;hb=d8d68d0bd4c45af6f0dc69b4fc33d37d961aca85;hp=d9e1cac3b32989e18a3a0535363c1f3c06df2eec;hpb=e536ce9e39cc1bfa82ecd1d6d73f874af655f9db;p=inform.git diff --git a/src/header.h b/src/header.h index d9e1cac..8b05f26 100644 --- a/src/header.h +++ b/src/header.h @@ -1,7 +1,10 @@ /* ------------------------------------------------------------------------- */ /* Header file for Inform: Z-machine ("Infocom" format) compiler */ /* */ -/* Copyright (c) Graham Nelson 1993 - 2020 */ +/* Inform 6.35 */ +/* */ +/* This header file and the others making up the Inform source code are */ +/* copyright (c) Graham Nelson 1993 - 2021 */ /* */ /* This file is part of Inform. */ /* */ @@ -18,6 +21,9 @@ /* You should have received a copy of the GNU General Public License */ /* along with Inform. If not, see https://gnu.org/licenses/ */ /* */ +/* For detailed documentation on how this program internally works, and */ +/* how to port it to a new environment, see the Technical Manual. */ +/* */ /* *** To compile this program in one of the existing ports, you must */ /* at least change the machine definition (on the next page). */ /* In most cases no other work will be needed. *** */ @@ -32,7 +38,9 @@ /* */ /* ------------------------------------------------------------------------- */ -#define RELEASE_NUMBER 1634 +/* For releases, set to the release date in the form "1st January 2000" */ +#define RELEASE_DATE "in development" +#define RELEASE_NUMBER 1635 #define GLULX_RELEASE_NUMBER 38 #define MODULE_VERSION_NUMBER 1 #define VNUMBER RELEASE_NUMBER @@ -477,6 +485,7 @@ static int32 unique_task_id(void) #define Transcript_File "gametext" #endif #endif + #ifndef Debugging_File #ifdef FILE_EXTENSIONS #define Debugging_File "gameinfo.dbg" @@ -485,6 +494,10 @@ static int32 unique_task_id(void) #endif #endif +#ifndef Default_Language +#define Default_Language "english" +#endif + #ifdef FILE_EXTENSIONS #ifndef Source_Extension #define Source_Extension ".inf" @@ -1932,6 +1945,23 @@ typedef struct operator_s how far back from the label to go to find the opmode byte to modify. */ +/* ------------------------------------------------------------------------- */ +/* "String contexts"; the purpose for a given string. This info gets */ +/* written to the transcript file (gametext.txt). */ +/* ------------------------------------------------------------------------- */ + +#define STRCTX_INFO 0 /* comment; not stored in game file */ +#define STRCTX_GAME 1 /* strings area */ +#define STRCTX_GAMEOPC 2 /* inline text in opcode (Z-code only) */ +#define STRCTX_VENEER 3 /* strings area, from veneer code */ +#define STRCTX_VENEEROPC 4 /* inline text, veneer code (Z-code only) */ +#define STRCTX_LOWSTRING 5 /* lowmem (Z-code); also dynamic-str literals */ +#define STRCTX_ABBREV 6 /* abbreviation */ +#define STRCTX_DICT 7 /* dictionary word */ +#define STRCTX_OBJNAME 8 /* object "hardware name" */ +#define STRCTX_SYMBOL 9 /* prop/attr/etc names */ +#define STRCTX_INFIX 10 /* text printed in asterisk traces */ + /* ========================================================================= */ /* Initialisation extern definitions */ /* */ @@ -2271,6 +2301,7 @@ extern void error_named(char *s1, char *s2); extern void error_numbered(char *s1, int val); extern void error_named_at(char *s1, char *s2, brief_location report_line); extern void ebf_error(char *s1, char *s2); +extern void ebf_symbol_error(char *s1, char *name, char *type, brief_location report_line); extern void char_error(char *s, int ch); extern void unicode_char_error(char *s, int32 uni); extern void no_such_label(char *lname); @@ -2343,7 +2374,7 @@ extern void check_temp_files(void); extern void remove_temp_files(void); extern void open_transcript_file(char *what_of); -extern void write_to_transcript_file(char *text); +extern void write_to_transcript_file(char *text, int linetype); extern void close_transcript_file(void); extern void abort_transcript_file(void); @@ -2524,7 +2555,7 @@ extern int MAX_QTEXT_SIZE, MAX_SYMBOLS, HASH_TAB_SIZE, MAX_DICT_ENTRIES, MAX_EXPRESSION_NODES, MAX_LABELS, MAX_LINESPACE, MAX_LOW_STRINGS, MAX_CLASSES, MAX_VERBS, MAX_VERBSPACE, MAX_ARRAYS, MAX_INCLUSION_DEPTH, - MAX_SOURCE_FILES; + MAX_SOURCE_FILES, MAX_DYNAMIC_STRINGS; extern int32 MAX_STATIC_STRINGS, MAX_ZCODE_SIZE, MAX_LINK_DATA_SIZE, MAX_TRANSCRIPT_SIZE, MAX_INDIV_PROP_TABLE_SIZE, @@ -2537,6 +2568,7 @@ extern int DICT_WORD_SIZE, DICT_CHAR_SIZE, DICT_WORD_BYTES; extern int ZCODE_HEADER_EXT_WORDS, ZCODE_HEADER_FLAGS_3; extern int NUM_ATTR_BYTES, GLULX_OBJECT_EXT_BYTES; extern int WARN_UNUSED_ROUTINES, OMIT_UNUSED_ROUTINES; +extern int TRANSCRIPT_FORMAT; /* These macros define offsets that depend on the value of NUM_ATTR_BYTES. (Meaningful only for Glulx.) */ @@ -2635,6 +2667,7 @@ extern void list_symbols(int level); extern void assign_marked_symbol(int index, int marker, int32 value, int type); extern void assign_symbol(int index, int32 value, int type); extern void issue_unused_warnings(void); +extern void add_config_symbol_definition(char *symbol, int32 value); extern void add_symbol_replacement_mapping(int original, int renamed); extern int find_symbol_replacement(int *value); extern void df_note_function_start(char *name, uint32 address, @@ -2731,8 +2764,6 @@ extern int32 static_strings_extent; extern int32 no_strings, no_dynamic_strings; extern int no_unicode_chars; -#define MAX_DYNAMIC_STRINGS (64) - typedef struct unicode_usage_s unicode_usage_t; struct unicode_usage_s { int32 ch; @@ -2775,8 +2806,8 @@ extern void compress_game_text(void); /* end of the Glulx string compression stuff */ extern void ao_free_arrays(void); -extern int32 compile_string(char *b, int in_low_memory, int is_abbrev); -extern uchar *translate_text(uchar *p, uchar *p_limit, char *s_text); +extern int32 compile_string(char *b, int strctx); +extern uchar *translate_text(uchar *p, uchar *p_limit, char *s_text, int strctx); extern void optimise_abbreviations(void); extern void make_abbreviation(char *text); extern void show_dictionary(void);