diff options
author | Jordi Vilalta Prat | 2009-02-15 06:10:59 +0000 |
---|---|---|
committer | Jordi Vilalta Prat | 2009-02-15 06:10:59 +0000 |
commit | fa6e10e9cec163845aa29e7940c86e9c9ab8a2bc (patch) | |
tree | ce87338830cc8c149e1de545246bcefe4f45da00 /engines/sci/engine/message.h | |
parent | 7c148ddf021c990fa866b7600f979aac9a5b26c9 (diff) | |
download | scummvm-rg350-fa6e10e9cec163845aa29e7940c86e9c9ab8a2bc.tar.gz scummvm-rg350-fa6e10e9cec163845aa29e7940c86e9c9ab8a2bc.tar.bz2 scummvm-rg350-fa6e10e9cec163845aa29e7940c86e9c9ab8a2bc.zip |
Import the SCI engine sources from the FreeSCI Glutton branch (it doesn't compile yet)
svn-id: r38192
Diffstat (limited to 'engines/sci/engine/message.h')
-rw-r--r-- | engines/sci/engine/message.h | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/engines/sci/engine/message.h b/engines/sci/engine/message.h new file mode 100644 index 0000000000..7618e55429 --- /dev/null +++ b/engines/sci/engine/message.h @@ -0,0 +1,83 @@ +/*************************************************************************** + message.h Copyright (C) 2008 Lars Skovlund + + + This program may be modified and copied freely according to the terms of + the GNU general public license (GPL), as long as the above copyright + notice and the licensing information contained herein are preserved. + + Please refer to www.gnu.org for licensing details. + + This work is provided AS IS, without warranty of any kind, expressed or + implied, including but not limited to the warranties of merchantibility, + noninfringement, and fitness for a specific purpose. The author will not + be held liable for any damage caused by this work or derivatives of it. + + By using this source code, you agree to the licensing terms as stated + above. + + + Please contact the maintainer for bug reports or inquiries. + + Current Maintainer: + + Lars Skovlund (LS) [lskovlun@image.dk] + +***************************************************************************/ + +#include <sciresource.h> + +typedef struct +{ + int noun; + int verb; + int cond; + int seq; +} message_tuple_t; + +typedef struct +{ + byte *index_record; + int index; + byte *resource_beginning; +} index_record_cursor_t; + +typedef int index_record_size_t(void); +typedef void parse_index_record_t(index_record_cursor_t *index_record, message_tuple_t *t); +typedef int get_talker_t(index_record_cursor_t *cursor); +typedef void get_text_t(index_record_cursor_t *cursor, char *buffer, int buffer_size); +typedef int index_record_count_t(byte *header); + +typedef struct +{ + int version_id; + parse_index_record_t *parse; + get_talker_t *get_talker; + get_text_t *get_text; + index_record_count_t *index_record_count; + + int header_size; + int index_record_size; +} message_handler_t; + +typedef struct +{ + int initialized; + message_handler_t *handler; + resource_mgr_t *resmgr; + resource_t *current_res; + int module; + int record_count; + byte *index_records; + index_record_cursor_t engine_cursor; +} message_state_t; + +int message_get_specific(message_state_t *state, message_tuple_t *t); +int message_get_next(message_state_t *state); +int message_get_talker(message_state_t *state); +int message_get_length(message_state_t *state); +int message_get_text(message_state_t *state, char *buffer, int length); +int message_state_load_res(message_state_t *state, int module); +void message_state_initialize(resource_mgr_t *resmgr, message_state_t *state); + + |