What it's doing is writting QQ as the zone number, and then writing the zone number right after.
Fix:
/* Save the numeric and string section of the file. */
fprintf(room_file, "#QQ%02d\n"
"%s%c\n"
"%s%c\n"
- "QQ %d %d %d %d %d %d\n",
+ "QQ %d %d %d %d %d\n",
room->number%100,
room->name ? room->name : "Untitled", STRING_TERMINATOR,
buf, STRING_TERMINATOR,
- zone_table[room->zone].number, room->room_flags[0], room->room_flags[1],
+ room->room_flags[0], room->room_flags[1],
room->room_flags[2], room->room_flags[3], room->sector_type
);




