This is now my objsave_save_obj_record, thanks to whoever did most of the work I just deleted all the checks so every item saves all of it's data. The reason I deleted the checks is so the items won't change if it doesn't have a tag and there is a new item in proto. IDK what I am doing here heh.
Code:
int objsave_save_obj_record(struct obj_data *obj, FILE *fp, int locate)
{
int counter2;
struct extra_descr_data *ex_desc;
char buf1[MAX_STRING_LENGTH +1];
struct obj_data *temp = NULL;
if (GET_OBJ_VNUM(obj) != NOTHING)
temp=read_object(GET_OBJ_VNUM(obj), VIRTUAL);
else {
temp = create_obj();
temp->item_number = NOWHERE;
}
if (obj->action_description) {
strcpy(buf1, obj->action_description);
strip_cr(buf1);
} else
*buf1 = 0;
fprintf(fp, "#%d\n", NOTHING);// GET_OBJ_VNUM(obj));
if (locate)
fprintf(fp, "Loc : %d\n", locate);
fprintf(fp,
"Vals: %d %d %d %d\n",
GET_OBJ_VAL(obj, 0),
GET_OBJ_VAL(obj, 1),
GET_OBJ_VAL(obj, 2),
GET_OBJ_VAL(obj, 3)
);
fprintf(fp, "Flag: %d %d %d %d\n", GET_OBJ_EXTRA(obj)[0], GET_OBJ_EXTRA(obj)[1], GET_OBJ_EXTRA(obj)[2], GET_OBJ_EXTRA(obj)[3]);
fprintf(fp, "Name: %s\n", obj->name ? obj->name : "Undefined");
fprintf(fp, "Shrt: %s\n", obj->short_description ? obj->short_description : "Undefined");
/* These two could be a pain on the read... we'll see... */
fprintf(fp, "Desc: %s\n", obj->description ? obj->description : "Undefined");
/* Only even try to process this if an action desc exists */
if (obj->action_description)
fprintf(fp, "ADes:\n%s~\n", buf1);
fprintf(fp, "Type: %d\n", GET_OBJ_TYPE(obj));
fprintf(fp, "Wght: %d\n", GET_OBJ_WEIGHT(obj));
fprintf(fp, "Cost: %d\n", GET_OBJ_COST(obj));
fprintf(fp, "Rent: %d\n", GET_OBJ_RENT(obj));
fprintf(fp, "Perm: %d %d %d %d\n", GET_OBJ_AFFECT(obj)[0], GET_OBJ_AFFECT(obj)[1], GET_OBJ_AFFECT(obj)[2], GET_OBJ_AFFECT(obj)[3]);
fprintf(fp, "Wear: %d %d %d %d\n", GET_OBJ_WEAR(obj)[0], GET_OBJ_WEAR(obj)[1], GET_OBJ_WEAR(obj)[2], GET_OBJ_WEAR(obj)[3]);
/* Do we have affects? */
for (counter2 = 0; counter2 < MAX_OBJ_AFFECT; counter2++)
fprintf(fp, "Aff : %d %d %d\n",
counter2,
obj->affected[counter2].location,
obj->affected[counter2].modifier
);
/* Do we have extra descriptions? */
if (obj->ex_description) {
/* To be reimplemented. Need to handle this case in loading as
well */
for (ex_desc = obj->ex_description; ex_desc; ex_desc = ex_desc->next) {
/*. Sanity check to prevent nasty protection faults . */
if (!*ex_desc->keyword || !*ex_desc->description) {
continue;
}
strcpy(buf1, ex_desc->description);
strip_cr(buf1);
fprintf(fp, "EDes:\n"
"%s~\n"
"%s~\n",
ex_desc->keyword,
buf1
);
}
}
fprintf(fp, "\n");
extract_obj(temp);
return 1;
}