X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=interpreters%2Ffrotz%2Ffastmem.c;fp=interpreters%2Ffrotz%2Ffastmem.c;h=cb4a20e6d2ba5ff6bb8b2953098254918499cd52;hb=75009f8f40bbb580194e1722db76f4644bf18641;hp=113c50cb5580e549b7dc5988a72f64fe39eeefb1;hpb=89081782541e85e079f64839ffb26b4e74273eb7;p=projects%2Fchimara%2Fchimara.git diff --git a/interpreters/frotz/fastmem.c b/interpreters/frotz/fastmem.c index 113c50c..cb4a20e 100644 --- a/interpreters/frotz/fastmem.c +++ b/interpreters/frotz/fastmem.c @@ -180,6 +180,10 @@ void restart_header (void) SET_BYTE (H_STANDARD_HIGH, h_standard_high); SET_BYTE (H_STANDARD_LOW, h_standard_low); + set_header_extension (HX_FLAGS, hx_flags); + set_header_extension (HX_FORE_COLOUR, hx_fore_colour); + set_header_extension (HX_BACK_COLOUR, hx_back_colour); + }/* restart_header */ /* @@ -395,6 +399,7 @@ no_match: ; /* null statement */ hx_table_size = get_header_extension (HX_TABLE_SIZE); hx_unicode_table = get_header_extension (HX_UNICODE_TABLE); + hx_flags = get_header_extension (HX_FLAGS); }/* init_memory */ @@ -426,7 +431,7 @@ void init_undo (void) undo_diff = undo_mem + h_dynamic_size; memcpy (prev_zmp, zmp, h_dynamic_size); } else - f_setup.undo_slots = 0; + option_undo_slots = 0; if (reserve_mem != 0) free (reserved); @@ -569,7 +574,7 @@ void z_restart (void) sp = fp = stack + STACK_SIZE; frame_count = 0; - if (h_version != V6) { + if (h_version != V6 && h_version != V9) { long pc = (long) h_start_pc; SET_PC (pc); @@ -624,7 +629,7 @@ void z_restore (void) if ((gfp = frotzopenprompt(FILE_RESTORE)) == NULL) goto finished; - if (f_setup.save_quetzal) { + if (option_save_quetzal) { success = restore_quetzal (gfp, story_fp, blorb_ofs); } else { @@ -813,7 +818,7 @@ static void mem_undiff (zbyte *diff, long diff_length, zbyte *dest) int restore_undo (void) { - if (f_setup.undo_slots == 0) /* undo feature unavailable */ + if (option_undo_slots == 0) /* undo feature unavailable */ return -1; @@ -897,7 +902,7 @@ void z_save (void) if ((gfp = frotzopenprompt (FILE_SAVE)) == NULL) goto finished; - if (f_setup.save_quetzal) { + if (option_save_quetzal) { success = save_quetzal (gfp, story_fp, blorb_ofs); } else { /* Write game file */ @@ -971,7 +976,7 @@ int save_undo (void) zword stack_size; undo_t *p; - if (f_setup.undo_slots == 0) /* undo feature unavailable */ + if (option_undo_slots == 0) /* undo feature unavailable */ return -1; /* save undo possible */ @@ -987,7 +992,7 @@ int save_undo (void) else first_undo = NULL; - if (undo_count == f_setup.undo_slots) + if (undo_count == option_undo_slots) free_undo (1); diff_size = mem_diff (zmp, prev_zmp, h_dynamic_size, undo_diff);