Hey guys, heres my problem, I have everything set up for some new object varibles. I added acc, ra, di, fi, they work fine, but they just dont save, oset it and it shows on the ostat, I foldarea, reboot and it sets back to 0. I have the folda code dealing with objects below. I have such a headache over this..well thanks for helping if you can.
/* save objects */
fprintf( fpout, "#OBJECTS\n" );
for ( vnum = tarea->low_o_vnum; vnum <= tarea->hi_o_vnum; vnum++ )
{
if ( (pObjIndex = get_obj_index( vnum )) == NULL )
continue;
if ( install )
xREMOVE_BIT( pObjIndex->extra_flags, ITEM_PROTOTYPE );
fprintf( fpout, "#%d\n", vnum );
fprintf( fpout, "%s~\n", pObjIndex->name );
fprintf( fpout, "%s~\n", pObjIndex->short_descr );
fprintf( fpout, "%s~\n", pObjIndex->description );
fprintf( fpout, "%s~\n", pObjIndex->action_desc );
if ( pObjIndex->layers )
fprintf( fpout, "%d %s %d %d\n", pObjIndex->item_type,
print_bitvector(&pObjIndex->extra_flags),
pObjIndex->wear_flags,
pObjIndex->layers );
else
fprintf( fpout, "%d %s %d\n", pObjIndex->item_type,
print_bitvector(&pObjIndex->extra_flags),
pObjIndex->wear_flags );
val0 = pObjIndex->value[0];
val1 = pObjIndex->value[1];
val2 = pObjIndex->value[2];
val3 = pObjIndex->value[3];
val4 = pObjIndex->value[4];
val5 = pObjIndex->value[5];
switch ( pObjIndex->item_type )
{
case ITEM_PILL:
case ITEM_POTION:
case ITEM_SCROLL:
if ( IS_VALID_SN(val1) )
{
if ( AREA_VERSION_WRITE == 0 ) val1 = skill_table[val1]->slot;
else val1 = HAS_SPELL_INDEX;
}
if ( IS_VALID_SN(val2) )
{
if ( AREA_VERSION_WRITE == 0 ) val2 = skill_table[val2]->slot;
else val2 = HAS_SPELL_INDEX;
}
if ( IS_VALID_SN(val3) )
{
if ( AREA_VERSION_WRITE == 0 ) val3 = skill_table[val3]->slot;
else val3 = HAS_SPELL_INDEX;
}
break;
case ITEM_STAFF:
case ITEM_WAND:
if ( IS_VALID_SN(val3) )
{
if ( AREA_VERSION_WRITE == 0 ) val3 = skill_table[val3]->slot;
else val3 = HAS_SPELL_INDEX;
}
break;
case ITEM_SALVE:
if ( IS_VALID_SN(val4) )
{
if ( AREA_VERSION_WRITE == 0 ) val4 = skill_table[val4]->slot;
else val4 = HAS_SPELL_INDEX;
}
if ( IS_VALID_SN(val5) )
{
if ( AREA_VERSION_WRITE == 0 ) val5 = skill_table[val5]->slot;
else val5 = HAS_SPELL_INDEX;
}
break;
}
if ( val4 || val5 )
fprintf( fpout, "%d %d %d %d %d %d\n",val0,
val1,
val2,
val3,
val4,
val5 );
else
fprintf( fpout, "%d %d %d %d\n", val0,
val1,
val2,
val3 );
fprintf( fpout, "%d %d %d %d\n", pObjIndex->acc,
pObjIndex->ra,
pObjIndex->da,
pObjIndex->fi );
fprintf( fpout, "%d %d %d\n", pObjIndex->weight,
pObjIndex->cost,
pObjIndex->rent ? pObjIndex->rent :
(int) (pObjIndex->cost / 10) );
if ( AREA_VERSION_WRITE > 0 )
switch ( pObjIndex->item_type )
{
case ITEM_PILL:
case ITEM_POTION:
case ITEM_SCROLL:
fprintf( fpout, "'%s' '%s' '%s'\n",
IS_VALID_SN(pObjIndex->value[1])?
skill_table[pObjIndex->value[1]]->name:"NONE",
IS_VALID_SN(pObjIndex->value[2])?
skill_table[pObjIndex->value[2]]->name :"NONE",
IS_VALID_SN(pObjIndex->value[3])?
skill_table[pObjIndex->value[3]]->name:"NONE" );
break;
case ITEM_STAFF:
case ITEM_WAND:
fprintf( fpout, "'%s'\n",
IS_VALID_SN(pObjIndex->value[3])?
skill_table[pObjIndex->value[3]]->name:"NONE" );
break;
case ITEM_SALVE:
fprintf( fpout, "'%s' '%s'\n",
IS_VALID_SN(pObjIndex->value[4])?
skill_table[pObjIndex->value[4]]->name:"NONE",
IS_VALID_SN(pObjIndex->value[5])?
skill_table[pObjIndex->value[5]]->name:"NONE" );
break;
}
for ( ed = pObjIndex->first_extradesc; ed; ed = ed->next )
fprintf( fpout, "E\n%s~\n%s~\n",
ed->keyword, strip_cr( ed->description ) );
for ( paf = pObjIndex->first_affect; paf; paf = paf->next )
fprintf( fpout, "A\n%d %d\n", paf->location,
((paf->location == APPLY_WEAPONSPELL
|| paf->location == APPLY_WEARSPELL
|| paf->location == APPLY_REMOVESPELL
|| paf->location == APPLY_STRIPSN
|| paf->location == APPLY_RECURRINGSPELL)
&& IS_VALID_SN(paf->modifier))
? skill_table[paf->modifier]->slot : paf->modifier );
if ( pObjIndex->mudprogs )
{
for ( mprog = pObjIndex->mudprogs; mprog; mprog = mprog->next )
fprintf( fpout, "> %s %s~\n%s~\n",
mprog_type_to_name( mprog->type ),
mprog->arglist, strip_cr(mprog->comlist) );
fprintf( fpout, "|\n" );
}
}
fprintf( fpout, "#0\n\n\n" );
if ( install && vnum < tarea->hi_o_vnum )
tarea->hi_o_vnum = vnum - 1;
|