Index: alex4src/src/control.c =================================================================== --- alex4src.orig/src/control.c 2008-01-17 00:20:33.000000000 +0100 +++ alex4src/src/control.c 2008-01-17 00:29:35.000000000 +0100 @@ -93,10 +93,24 @@ // saves the control config to disk using FP void save_control(Tcontrol *c, PACKFILE *fp) { - pack_fwrite(c, sizeof(Tcontrol), fp); + pack_iputl(c->use_joy, fp); + pack_iputl(c->key_left, fp); + pack_iputl(c->key_right, fp); + pack_iputl(c->key_up, fp); + pack_iputl(c->key_down, fp); + pack_iputl(c->key_fire, fp); + pack_iputl(c->key_jump, fp); + pack_putc(c->flags, fp); } // loads the control config from disk using FP void load_control(Tcontrol *c, PACKFILE *fp) { - pack_fread(c, sizeof(Tcontrol), fp); + c->use_joy = pack_igetl(fp); + c->key_left = pack_igetl(fp); + c->key_right = pack_igetl(fp); + c->key_up = pack_igetl(fp); + c->key_down = pack_igetl(fp); + c->key_fire = pack_igetl(fp); + c->key_jump = pack_igetl(fp); + c->flags = pack_getc(fp); } Index: alex4src/src/hisc.c =================================================================== --- alex4src.orig/src/hisc.c 2008-01-17 00:29:45.000000000 +0100 +++ alex4src/src/hisc.c 2008-01-17 00:42:13.000000000 +0100 @@ -117,9 +117,12 @@ for(i=0; imax_levels, fp); + for (i = 0; i < MAX_LEVELS; ++i) + pack_iputl(o->cherries[i], fp); + for (i = 0; i < MAX_LEVELS; ++i) + pack_iputl(o->stars[i], fp); + pack_iputl(o->use_vsync, fp); + pack_iputl(o->one_hundred, fp); } // loads the data structure from disk void load_options(Toptions *o, PACKFILE *fp) { - pack_fread(o, sizeof(Toptions), fp); + int i; + o->max_levels = pack_igetl(fp); + for (i = 0; i < MAX_LEVELS; ++i) + o->cherries[i] = pack_igetl(fp); + for (i = 0; i < MAX_LEVELS; ++i) + o->stars[i] = pack_igetl(fp); + o->use_vsync = pack_igetl(fp); + o->one_hundred = pack_igetl(fp); } // resets all data