1 /* ScummVM - Graphic Adventure Engine
2  *
3  * ScummVM is the legal property of its developers, whose names
4  * are too numerous to list here. Please refer to the COPYRIGHT
5  * file distributed with this source distribution.
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20  *
21  */
22 
23 namespace Glk {
24 namespace JACL {
25 
26 #ifdef GLK
27 extern strid_t open_glk_file(uint usage, uint mode, char *filename);
28 extern glui32 glk_get_bin_line_stream(strid_t file_stream, char *buffer, glui32 max_length);
29 extern glui32 parse_utf8(unsigned char *buf, glui32 buflen, glui32 *out, glui32 outlen);
30 extern void convert_to_utf8(glui32 *text, int len);
31 extern glui32 parse_utf8(unsigned char *buf, glui32 buflen, glui32 *out, glui32 outlen);
32 #else
33 extern void update_parameters();
34 #endif
35 
36 extern int bearing(double x1, double y1, double x2, double y2);
37 extern int distance(double x1, double y1, double x2, double y2);
38 extern int strcondition();
39 extern int and_strcondition();
40 extern int logic_test(int first);
41 extern int str_test(int first);
42 extern int first_available(int list_number);
43 extern int validate(const char *string);
44 extern int noun_resolve(struct word_type *scope_word, int finding_from, int noun_number);
45 extern int get_from_object(struct word_type *scope_word, int noun_number);
46 extern int is_direct_child_of_from(int child);
47 extern int is_child_of_from(int child);
48 extern int verify_from_object(int from_object);
49 extern int find_parent(int index);
50 extern int scope(int index, const char *expected, int restricted = 0);
51 extern int object_element_resolve(const char *textstring);
52 extern int execute(const char *funcname);
53 extern int object_resolve(const char *object_string);
54 extern int random_number();
55 extern void log_error(const char *message, int console);
56 extern int parent_of(int parent_, int child, int restricted);
57 extern int grand_of(int child, int objs_only);
58 extern int check_light(int where);
59 extern int find_route(int fromRoom, int toRoom, int known);
60 extern int exit_function(int return_code);
61 extern int count_resolve(const char *textstring);
62 extern void jacl_set_window(winid_t new_window);
63 extern void create_cstring(const char *name, const char *value);
64 extern void create_string(const char *name, const char *value);
65 extern void create_integer(const char *name, int value);
66 extern void create_cinteger(const char *name, int value);
67 extern void scripting();
68 extern void undoing();
69 extern void walking_thru();
70 extern void create_paths(char *full_path);
71 extern int get_key();
72 extern char get_character(const char *message);
73 extern int get_yes_or_no();
74 extern void get_string(char *string_buffer);
75 extern int get_number(int insist, int low, int high);
76 extern int save_interaction();
77 extern int restore_interaction();
78 extern void jacl_encrypt(char *string);
79 extern void jacl_decrypt(char *string);
80 //extern void log_message(const char *message, int console);
81 extern void set_them(int noun_number);
82 extern void preparse();
83 extern void inspect(int object_num);
84 extern void add_all(struct word_type *scope_word, int noun_number);
85 extern void add_to_list(int noun_number, int resolved_object);
86 extern void call_functions(const char *base_name);
87 extern int build_object_list(struct word_type *scope_word, int noun_number);
88 extern long value_of(const char *value, int run_time = 0);
89 extern long attribute_resolve(const char *attribute);
90 extern long user_attribute_resolve(const char *name);
91 extern struct word_type *exact_match(struct word_type *pointer);
92 extern struct word_type *object_match(struct word_type *iterator, int noun_number);
93 extern struct integer_type *integer_resolve(const char *name);
94 extern struct integer_type *integer_resolve_indexed(const char *name, int index);
95 extern struct function_type *function_resolve(const char *name);
96 extern struct string_type *string_resolve(const char *name);
97 extern struct string_type *string_resolve_indexed(const char *name, int index);
98 extern struct string_type *cstring_resolve(const char *name);
99 extern struct string_type *cstring_resolve_indexed(const char *name, int index);
100 extern struct cinteger_type *cinteger_resolve(const char *name);
101 extern struct cinteger_type *cinteger_resolve_indexed(const char *name, int index);
102 extern int array_length_resolve(const char *textstring);
103 extern int legal_label_check(const char *word, int line, int type);
104 extern char *object_names(int object_index, char *names_buffer);
105 extern const char *arg_text_of(const char *string);
106 extern const char *arg_text_of_word(int wordnumber);
107 extern const char *var_text_of_word(int wordnumber);
108 extern const char *text_of(const char *string);
109 extern const char *text_of_word(int wordnumber);
110 extern const char *expand_function(const char *name);
111 extern int *container_resolve(const char *container_name);
112 extern int condition();
113 extern int and_condition();
114 extern void free_from(struct word_type *x);
115 extern void eachturn();
116 extern int jacl_whitespace(char character);
117 extern int get_here();
118 extern char *stripwhite(char *string);
119 extern void command_encapsulate();
120 extern void encapsulate();
121 extern void jacl_truncate();
122 extern void parser();
123 extern void diagnose();
124 extern void look_around();
125 extern char *macro_resolve(const char *textstring);
126 extern char *plain_output(int index, int capital);
127 extern char *sub_output(int index, int capital);
128 extern char *obj_output(int index, int capital);
129 extern char *that_output(int index, int capital);
130 extern char *sentence_output(int index, int capital);
131 extern char *isnt_output(int index, bool unused = false);
132 extern char *is_output(int index, bool unused = false);
133 extern char *it_output(int index, bool unused = false);
134 extern char *doesnt_output(int index, bool unused = false);
135 extern char *does_output(int index, bool unused = false);
136 extern char *list_output(int index, int capital);
137 extern char *long_output(int index);
138 extern void terminate(int code);
139 extern void set_arguments(const char *function_call);
140 extern void pop_stack();
141 extern void push_stack(int32 file_pointer);
142 extern void pop_proxy();
143 extern void push_proxy();
144 extern void write_text(const char *string_buffer);
145 extern void status_line();
146 extern void newline();
147 extern bool save_game(strid_t save);
148 extern bool restore_game(strid_t save, bool warn = false);
149 extern void write_integer(strid_t stream, int x);
150 extern int  read_integer(strid_t stream);
151 extern void write_long(strid_t stream, long x);
152 extern long read_long(strid_t stream);
153 extern void save_game_state();
154 extern void restore_game_state();
155 extern void add_cstring(const char *name, const char *value);
156 extern void clear_cstring(const char *name);
157 extern void add_cinteger(const char *name, int value);
158 extern void clear_cinteger(const char *name);
159 extern void restart_game();
160 extern void read_gamefile();
161 extern void new_position(double x1, double y1, double bearing, double velocity);
162 extern void build_grammar_table(struct word_type *pointer);
163 extern void unkvalerr(int line, int wordno);
164 extern void totalerrs(int errors);
165 extern void unkatterr(int line, int wordno);
166 extern void unkfunrun(const char *name);
167 extern void nofnamerr(int line);
168 extern void nongloberr(int line);
169 extern void unkkeyerr(int line, int wordno);
170 extern void maxatterr(int line, int wordno);
171 extern void unkattrun(int wordno);
172 extern void badptrrun(const char *name, int value);
173 extern void badplrrun(int value);
174 extern void badparrun();
175 extern void notintrun();
176 extern void noproprun(int unused = 0);
177 extern void noproperr(int line);
178 extern void noobjerr(int line);
179 extern void unkobjerr(int line, int wordno);
180 extern void unkobjrun(int wordno);
181 extern void unkdirrun(int wordno);
182 extern void unkscorun(const char *scope);
183 extern void unkstrrun(const char *variable);
184 extern void unkvarrun(const char *variable);
185 extern void outofmem();
186 extern void set_defaults();
187 extern void no_it();
188 extern void more(const char *message);
189 extern int jpp();
190 extern int process_file(const char *sourceFile1, char *sourceFile2);
191 extern char *strip_return(char *string);
192 extern const char *object_generator(const char *text, int state);
193 extern const char *verb_generator(const char *text, int state);
194 extern void add_word(const char *word);
195 extern void create_language_constants();
196 extern int select_next();
197 extern void jacl_sleep(unsigned int mseconds);
198 
199 } // End of namespace JACL
200 } // End of namespace Glk
201