From 9ddaa876323fc9346e7d73764ae3245dd35de720 Mon Sep 17 00:00:00 2001 From: David Griffith Date: Sat, 21 Sep 2019 15:34:32 -0700 Subject: [PATCH] Convert frotz.h to K&R style. --- src/common/frotz.h | 590 ++++++++++++++++++++++----------------------- 1 file changed, 288 insertions(+), 302 deletions(-) diff --git a/src/common/frotz.h b/src/common/frotz.h index bef4e1b..5306c61 100644 --- a/src/common/frotz.h +++ b/src/common/frotz.h @@ -10,10 +10,6 @@ #include "defs.h" -/* Unfortunately, frotz's bool definition conflicts with that of curses. - But since no os_* function uses it, it's safe to let the frotz core see - this definition, but have the unix port see the curses version. */ - #ifdef MSDOS_16BIT #ifdef USE_UTF8 #error UTF-8 is not supported in DOS Frotz @@ -70,57 +66,56 @@ typedef unsigned short zchar; #endif enum story { - ZORK1, - ZORK2, - ZORK3, - ZORK1G, - MINIZORK, - SAMPLER1, - SAMPLER2, - ENCHANTER, - SORCERER, - SPELLBREAKER, - PLANETFALL, - STATIONFALL, - BALLYHOO, - BORDER_ZONE, - AMFV, - HHGG, - LGOP, - SUSPECT, - BEYOND_ZORK, - SHERLOCK, - ZORK_ZERO, - SHOGUN, - ARTHUR, - JOURNEY, - LURKING_HORROR, - BUREAUCRACY, - TRINITY, - UNKNOWN + ZORK1, + ZORK2, + ZORK3, + ZORK1G, + MINIZORK, + SAMPLER1, + SAMPLER2, + ENCHANTER, + SORCERER, + SPELLBREAKER, + PLANETFALL, + STATIONFALL, + BALLYHOO, + BORDER_ZONE, + AMFV, + HHGG, + LGOP, + SUSPECT, + BEYOND_ZORK, + SHERLOCK, + ZORK_ZERO, + SHOGUN, + ARTHUR, + JOURNEY, + LURKING_HORROR, + BUREAUCRACY, + TRINITY, + UNKNOWN }; /*** screen window ***/ - typedef struct { - zword y_pos; - zword x_pos; - zword y_size; - zword x_size; - zword y_cursor; - zword x_cursor; - zword left; - zword right; - zword nl_routine; - zword nl_countdown; - zword style; - zword colour; - zword font; - zword font_size; - zword attribute; - zword line_count; - zword true_fore; - zword true_back; + zword y_pos; + zword x_pos; + zword y_size; + zword x_size; + zword y_cursor; + zword x_cursor; + zword left; + zword right; + zword nl_routine; + zword nl_countdown; + zword style; + zword colour; + zword font; + zword font_size; + zword attribute; + zword line_count; + zword true_fore; + zword true_back; } Zwindow; @@ -129,7 +124,6 @@ typedef struct { #include "unused.h" /*** Constants that may be set at compile time ***/ - #ifndef MAX_UNDO_SLOTS #define MAX_UNDO_SLOTS 500 #endif @@ -149,7 +143,6 @@ typedef struct { extern const char build_timestamp[]; /* Assorted filename extensions */ - #define EXT_SAVE ".qzl" #define EXT_SCRIPT ".scr" #define EXT_BLORB ".blb" @@ -176,7 +169,6 @@ extern const char build_timestamp[]; #endif /*** Story file header format ***/ - #define H_VERSION 0 #define H_CONFIG 1 #define H_RELEASE 2 @@ -217,7 +209,6 @@ extern const char build_timestamp[]; #define HX_UNICODE_TABLE 3 /*** Various Z-machine constants ***/ - #define V1 1 #define V2 2 #define V3 3 @@ -298,13 +289,11 @@ extern const char build_timestamp[]; #define BEEP_LOW 2 /*** Constants for os_restart_game */ - #define RESTART_BEGIN 0 #define RESTART_WPROP_SET 1 #define RESTART_END 2 /*** Character codes ***/ - #define ZC_TIME_OUT 0x00 #define ZC_NEW_STYLE 0x01 #define ZC_NEW_FONT 0x02 @@ -409,68 +398,68 @@ extern zbyte *zmp; #define hi(v) ((zbyte *)&v)[1] #define SET_WORD(addr,v) asm {\ - les bx,zmp;\ - add bx,addr;\ - mov ax,v;\ - xchg al,ah;\ - mov es:[bx],ax } + les bx,zmp;\ + add bx,addr;\ + mov ax,v;\ + xchg al,ah;\ + mov es:[bx],ax } #define LOW_WORD(addr,v) asm {\ - les bx,zmp;\ - add bx,addr;\ - mov ax,es:[bx];\ - xchg al,ah;\ - mov v,ax } + les bx,zmp;\ + add bx,addr;\ + mov ax,es:[bx];\ + xchg al,ah;\ + mov v,ax } #define HIGH_WORD(addr,v) asm {\ - mov bx,word ptr zmp;\ - add bx,word ptr addr;\ - mov al,bh;\ - mov bh,0;\ - mov ah,0;\ - adc ah,byte ptr addr+2;\ - mov cl,4;\ - shl ax,cl;\ - add ax,word ptr zmp+2;\ - mov es,ax;\ - mov ax,es:[bx];\ - xchg al,ah;\ - mov v,ax } + mov bx,word ptr zmp;\ + add bx,word ptr addr;\ + mov al,bh;\ + mov bh,0;\ + mov ah,0;\ + adc ah,byte ptr addr+2;\ + mov cl,4;\ + shl ax,cl;\ + add ax,word ptr zmp+2;\ + mov es,ax;\ + mov ax,es:[bx];\ + xchg al,ah;\ + mov v,ax } #define CODE_WORD(v) asm {\ - les bx,pcp;\ - mov ax,es:[bx];\ - xchg al,ah;\ - mov v,ax;\ - add word ptr pcp,2 } + les bx,pcp;\ + mov ax,es:[bx];\ + xchg al,ah;\ + mov v,ax;\ + add word ptr pcp,2 } #define GET_PC(v) asm {\ - mov bx,word ptr pcp+2;\ - sub bx,word ptr zmp+2;\ - mov ax,bx;\ - mov cl,4;\ - shl bx,cl;\ - mov cl,12;\ - shr ax,cl;\ - add bx,word ptr pcp;\ - adc al,0;\ - sub bx,word ptr zmp;\ - sbb al,0;\ - mov word ptr v,bx;\ - mov word ptr v+2,ax } + mov bx,word ptr pcp+2;\ + sub bx,word ptr zmp+2;\ + mov ax,bx;\ + mov cl,4;\ + shl bx,cl;\ + mov cl,12;\ + shr ax,cl;\ + add bx,word ptr pcp;\ + adc al,0;\ + sub bx,word ptr zmp;\ + sbb al,0;\ + mov word ptr v,bx;\ + mov word ptr v+2,ax } #define SET_PC(v) asm {\ - mov bx,word ptr zmp;\ - add bx,word ptr v;\ - mov al,bh;\ - mov bh,0;\ - mov ah,0;\ - adc ah,byte ptr v+2;\ - mov cl,4;\ - shl ax,cl;\ - add ax,word ptr zmp+2;\ - mov word ptr pcp,bx;\ - mov word ptr pcp+2,ax } + mov bx,word ptr zmp;\ + add bx,word ptr v;\ + mov al,bh;\ + mov bh,0;\ + mov ah,0;\ + adc ah,byte ptr v+2;\ + mov cl,4;\ + shl ax,cl;\ + add ax,word ptr zmp+2;\ + mov word ptr pcp,bx;\ + mov word ptr pcp+2,ax } #endif /* MSDOS_16BIT */ @@ -577,125 +566,123 @@ extern long reserve_mem; /*** Z-machine opcodes ***/ +void z_add(void); +void z_and(void); +void z_art_shift(void); +void z_buffer_mode(void); +void z_call_n(void); +void z_call_s(void); +void z_catch(void); +void z_check_arg_count(void); +void z_check_unicode(void); +void z_clear_attr(void); +void z_copy_table(void); +void z_dec(void); +void z_dec_chk(void); +void z_div(void); +void z_draw_picture(void); +void z_encode_text(void); +void z_erase_line(void); +void z_erase_picture(void); +void z_erase_window(void); +void z_get_child(void); +void z_get_cursor(void); +void z_get_next_prop(void); +void z_get_parent(void); +void z_get_prop(void); +void z_get_prop_addr(void); +void z_get_prop_len(void); +void z_get_sibling(void); +void z_get_wind_prop(void); +void z_inc(void); +void z_inc_chk(void); +void z_input_stream(void); +void z_insert_obj(void); +void z_je(void); +void z_jg(void); +void z_jin(void); +void z_jl(void); +void z_jump(void); +void z_jz(void); +void z_load(void); +void z_loadb(void); +void z_loadw(void); +void z_log_shift(void); +void z_make_menu(void); +void z_mod(void); +void z_mouse_window(void); +void z_move_window(void); +void z_mul(void); +void z_new_line(void); +void z_nop(void); +void z_not(void); +void z_or(void); +void z_output_stream(void); +void z_picture_data(void); +void z_picture_table(void); +void z_piracy(void); +void z_pop(void); +void z_pop_stack(void); +void z_print(void); +void z_print_addr(void); +void z_print_char(void); +void z_print_form(void); +void z_print_num(void); +void z_print_obj(void); +void z_print_paddr(void); +void z_print_ret(void); +void z_print_table(void); +void z_print_unicode(void); +void z_pull(void); +void z_push(void); +void z_push_stack(void); +void z_put_prop(void); +void z_put_wind_prop(void); +void z_quit(void); +void z_random(void); +void z_read(void); +void z_read_char(void); +void z_read_mouse(void); +void z_remove_obj(void); +void z_restart(void); +void z_restore(void); +void z_restore_undo(void); +void z_ret(void); +void z_ret_popped(void); +void z_rfalse(void); +void z_rtrue(void); +void z_save(void); +void z_save_undo(void); +void z_scan_table(void); +void z_scroll_window(void); +void z_set_attr(void); +void z_set_font(void); +void z_set_colour(void); +void z_set_cursor(void); +void z_set_margins(void); +void z_set_window(void); +void z_set_text_style(void); +void z_show_status(void); +void z_sound_effect(void); +void z_split_window(void); +void z_store(void); +void z_storeb(void); +void z_storew(void); +void z_sub(void); +void z_test(void); +void z_test_attr(void); +void z_throw(void); +void z_tokenise(void); +void z_verify(void); +void z_window_size(void); +void z_window_style(void); -void z_add (void); -void z_and (void); -void z_art_shift (void); -void z_buffer_mode (void); -void z_call_n (void); -void z_call_s (void); -void z_catch (void); -void z_check_arg_count (void); -void z_check_unicode (void); -void z_clear_attr (void); -void z_copy_table (void); -void z_dec (void); -void z_dec_chk (void); -void z_div (void); -void z_draw_picture (void); -void z_encode_text (void); -void z_erase_line (void); -void z_erase_picture (void); -void z_erase_window (void); -void z_get_child (void); -void z_get_cursor (void); -void z_get_next_prop (void); -void z_get_parent (void); -void z_get_prop (void); -void z_get_prop_addr (void); -void z_get_prop_len (void); -void z_get_sibling (void); -void z_get_wind_prop (void); -void z_inc (void); -void z_inc_chk (void); -void z_input_stream (void); -void z_insert_obj (void); -void z_je (void); -void z_jg (void); -void z_jin (void); -void z_jl (void); -void z_jump (void); -void z_jz (void); -void z_load (void); -void z_loadb (void); -void z_loadw (void); -void z_log_shift (void); -void z_make_menu (void); -void z_mod (void); -void z_mouse_window (void); -void z_move_window (void); -void z_mul (void); -void z_new_line (void); -void z_nop (void); -void z_not (void); -void z_or (void); -void z_output_stream (void); -void z_picture_data (void); -void z_picture_table (void); -void z_piracy (void); -void z_pop (void); -void z_pop_stack (void); -void z_print (void); -void z_print_addr (void); -void z_print_char (void); -void z_print_form (void); -void z_print_num (void); -void z_print_obj (void); -void z_print_paddr (void); -void z_print_ret (void); -void z_print_table (void); -void z_print_unicode (void); -void z_pull (void); -void z_push (void); -void z_push_stack (void); -void z_put_prop (void); -void z_put_wind_prop (void); -void z_quit (void); -void z_random (void); -void z_read (void); -void z_read_char (void); -void z_read_mouse (void); -void z_remove_obj (void); -void z_restart (void); -void z_restore (void); -void z_restore_undo (void); -void z_ret (void); -void z_ret_popped (void); -void z_rfalse (void); -void z_rtrue (void); -void z_save (void); -void z_save_undo (void); -void z_scan_table (void); -void z_scroll_window (void); -void z_set_attr (void); -void z_set_font (void); -void z_set_colour (void); -void z_set_cursor (void); -void z_set_margins (void); -void z_set_window (void); -void z_set_text_style (void); -void z_show_status (void); -void z_sound_effect (void); -void z_split_window (void); -void z_store (void); -void z_storeb (void); -void z_storew (void); -void z_sub (void); -void z_test (void); -void z_test_attr (void); -void z_throw (void); -void z_tokenise (void); -void z_verify (void); -void z_window_size (void); -void z_window_style (void); /* Definitions for error handling functions and error codes. */ - /* extern int err_report_mode; */ +void init_err(void); +void runtime_error(int); -void init_err (void); -void runtime_error (int); - /* Error codes */ #define ERR_TEXT_BUF_OVF 1 /* Text buffer overflow */ #define ERR_STORE_RANGE 2 /* Store out of dynamic memory */ @@ -735,115 +722,114 @@ void runtime_error (int); #define ERR_PLAY_SOUND 33 /* @play_sound called without SOUND_FLAG or OLD_SOUND_FLAG set */ #define ERR_NUM_ERRORS (33) -/* There are four error reporting modes: never report errors; - report only the first time a given error type occurs; report - every time an error occurs; or treat all errors as fatal - errors, killing the interpreter. I strongly recommend - "report once" as the default. But you can compile in a - different default by changing the definition of - ERR_DEFAULT_REPORT_MODE. In any case, the player can - specify a report mode on the command line by typing "-Z 0" - through "-Z 3". */ - +/* + * There are four error reporting modes: never report errors; + * report only the first time a given error type occurs; report + * every time an error occurs; or treat all errors as fatal + * errors, killing the interpreter. I strongly recommend + * "report once" as the default. But you can compile in a + * different default by changing the definition of + * ERR_DEFAULT_REPORT_MODE. In any case, the player can + * specify a report mode on the command line by typing "-Z 0" + * through "-Z 3". + * + */ #define ERR_REPORT_NEVER (0) #define ERR_REPORT_ONCE (1) #define ERR_REPORT_ALWAYS (2) #define ERR_REPORT_FATAL (3) - #define ERR_DEFAULT_REPORT_MODE ERR_REPORT_ONCE /*** Assorted initialization functions ***/ -void init_buffer (void); -void init_process (void); -void init_sound (void); +void init_buffer(void); +void init_process(void); +void init_sound(void); /*** Various global functions ***/ +zchar translate_from_zscii(zbyte); +zbyte translate_to_zscii(zchar); -zchar translate_from_zscii (zbyte); -zbyte translate_to_zscii (zchar); +void flush_buffer(void); +void new_line(void); +void print_char(zchar); +void print_num(zword); +void print_object(zword); +void print_string(const char *); -void flush_buffer (void); -void new_line (void); -void print_char (zchar); -void print_num (zword); -void print_object (zword); -void print_string (const char *); +void stream_mssg_on(void); +void stream_mssg_off(void); -void stream_mssg_on (void); -void stream_mssg_off (void); +void ret(zword); +void store(zword); +void branch(bool); -void ret (zword); -void store (zword); -void branch (bool); +void storeb(zword, zbyte); +void storew(zword, zword); -void storeb (zword, zbyte); -void storew (zword, zword); +void end_of_sound(void); -void end_of_sound (void); +int completion(const zchar *buffer, zchar *result); -int completion (const zchar *buffer, zchar *result); +bool is_terminator(zchar); +void read_string(int max, zchar *buffer); +bool read_yes_or_no(const char *); -bool is_terminator (zchar); -void read_string (int max, zchar *buffer); -bool read_yes_or_no (const char *); +void screen_new_line(void); -void screen_new_line (void); - - /*** returns the current window ***/ -Zwindow * curwinrec( void); +/*** returns the current window ***/ +Zwindow * curwinrec(void); /*** Interface functions ***/ - -void os_beep (int); -int os_char_width (zchar); -int os_check_unicode (int, zchar); -void os_display_char (zchar); -void os_display_string (const zchar *); -void os_draw_picture (int, int, int); -void os_erase_area (int, int, int, int, int); -void os_fatal (const char *, ...); -void os_finish_with_sample (); -int os_font_data (int, int *, int *); -void os_init_screen (void); -void os_init_sound (void); -FILE *os_load_story (void); -void os_more_prompt (void); -int os_peek_colour (void); -int os_picture_data (int, int *, int *); -void os_prepare_sample (int); -void os_process_arguments (int, char *[]); -int os_random_seed (void); -char *os_read_file_name (const char *, int); -zchar os_read_key (int, int); -zchar os_read_line (int, zchar *, int, int, int); -void os_reset_screen (void); -void os_restart_game (int); -void os_scroll_area (int, int, int, int, int); -void os_set_colour (int, int); -void os_set_cursor (int, int); -void os_set_font (int); -void os_set_text_style (int); -void os_start_sample (int, int, int, zword); -void os_stop_sample (); -int os_storyfile_seek (FILE *, long, int); -int os_storyfile_tell (FILE *); -int os_string_width (const zchar *); -void os_init_setup (void); -void os_warn (const char *, ...); -void os_quit (void); +void os_beep(int); +int os_char_width(zchar); +int os_check_unicode(int, zchar); +void os_display_char(zchar); +void os_display_string(const zchar *); +void os_draw_picture(int, int, int); +void os_erase_area(int, int, int, int, int); +void os_fatal(const char *, ...); +void os_finish_with_sample(int); +int os_font_data(int, int *, int *); +void os_init_screen(void); +void os_init_sound(void); +FILE *os_load_story(void); +void os_more_prompt(void); +int os_peek_colour(void); +int os_picture_data(int, int *, int *); +void os_prepare_sample(int); +void os_process_arguments(int, char *[]); +int os_random_seed(void); +char *os_read_file_name(const char *, int); +zchar os_read_key(int, int); +zchar os_read_line(int, zchar *, int, int, int); +void os_reset_screen(void); +void os_restart_game(int); +void os_scroll_area(int, int, int, int, int); +void os_set_colour(int, int); +void os_set_cursor(int, int); +void os_set_font(int); +void os_set_text_style(int); +void os_start_sample(int, int, int, zword); +void os_stop_sample(int); +int os_storyfile_seek(FILE *, long, int); +int os_storyfile_tell(FILE *); +int os_string_width(const zchar *); +void os_init_setup(void); +void os_warn(const char *, ...); +void os_quit(void); /** * Called regularly by the interpreter, at least every few instructions * (only when interpreting: e.g., not when waiting for input). */ -void os_tick (void); +void os_tick(void); /* Front ends call this if the terminal size changes. */ void resize_screen(void); /* This is callable only from resize_screen. */ -bool os_repaint_window (int win, int ypos_old, int ypos_new, int xpos, - int ysize, int xsize); +bool os_repaint_window(int win, int ypos_old, int ypos_new, int xpos, + int ysize, int xsize); #endif -- 2.34.1