Did you do a clean compile? It might be setting it to
-1 since it's still "using" the old merc.h, without
ITEM_LOCKPICK in it.
--- [EMAIL PROTECTED] wrote:
> I am creating a new item type - ITEM_LOCKPICK, and
> I'm having some problems
> with it.
> It does not save correctly, and the only message
> that I get is from the log
> files:
> Thu Aug 29 00:03:15 2002 :: [*****] FILE: plains.are
> LINE: 416
> Thu Aug 29 00:03:15 2002 :: [*****] BUG: CHECK_POS :
> item_type == -1 < 0
>
> This is from merc.h:
> #define CHECK_POS(a, b, c) {
>
> \
> (a) = (b);
>
> \
> if ( (a) < 0
> )
> \
> bug(
> "CHECK_POS : " c " == %d < 0", a
> ); \
> }
>
>
> This is in olc_act, void show_obj_values( CHAR_DATA
> *ch, OBJ_INDEX_DATA *obj
> ):
> case ITEM_LOCKPICK:
> sf(buf,
> "[v0] Bonus: [%d]\n\r"
> "[v1] N/A : [%d]\n\r"
> "[v2] N/A : [%d]\n\r"
> "[v3] N/A : [%d]\n\r"
> "[v4] N/A : [%d]\n\r"
> "[v5] N/A : [%d]\n\r",
> obj->value[0],
> obj->value[1],
> obj->value[2],
> obj->value[3],
> obj->value[4],
> obj->value[5]);
>
>
> stc(buf, ch);
> break;
>
> This is right under ITEM_SCROLL
>
> Farther down in olc_act, in bool set_obj_values(
> CHAR_DATA *ch,
> OBJ_INDEX_DATA *pObj, int value_num, char
> *argument):
>
>
> case ITEM_LOCKPICK:
> switch ( value_num )
> {
> default:
> stc("v0 = Lock picking
> bonus.\n\r", ch);
> return FALSE;
> case 0:
> stc("Lock bonus set.\n\r", ch);
> pObj->value[0] = atoi( argument
> );
> break;
> }
> break;
>
> ===================
> This is in olc_save.c, void save_object( FILE *fp,
> OBJ_INDEX_DATA *pObjIndex
> ):
> //Lock picks. Dayrinni 8/28/02
> case ITEM_LOCKPICK:
> fprintf(fp, "%d %d %d %d %d %d\n",
> pObjIndex->value[0],
> pObjIndex->value[1],
> pObjIndex->value[2],
> pObjIndex->value[3],
> pObjIndex->value[4],
> pObjIndex->value[5]);
> break;
>
> It is right under ITEM_WAND
>
> ===================
> This is in db2.c, void load_objects( FILE *fp ):
>
> //Lock picks. Dayrinni. 8/26/02
> case ITEM_LOCKPICK:
> pObjIndex->value[0] =
> fread_number(fp);
> pObjIndex->value[1] =
> fread_number(fp);
> pObjIndex->value[2] =
> fread_number(fp);
> pObjIndex->value[3] =
> fread_number(fp);
> pObjIndex->value[4] =
> fread_number(fp);
> pObjIndex->value[5] =
> fread_number(fp);
> break;
>
> It is under ITEM_WEAPON.
> ====================
> This is in tables.c, at the bottom of the const
> struct flag_type
> type_flags[] =
> section:
>
> { "lockpick", ITEM_LOCKPICK,
> TRUE },
>
> ================
> This is in const.c, const struct item_type
> item_table [] =:
>
> { ITEM_LOCKPICK, "lockpick" },
>
> ============
>
> This is in db.c,OBJ_DATA *create_object(
> OBJ_INDEX_DATA *pObjIndex, int level
> ):
>
> case ITEM_LIGHT:
> if (obj->value[2] == 999)
> obj->value[2] = -1;
> break;
>
>
> case ITEM_LOCKPICK:
> case ITEM_FURNITURE:
> case ITEM_TRASH:
> case ITEM_CONTAINER:
> case ITEM_DRINK_CON:
>
> =================
>
> This is in merc.h:
> /*
> * Item types.
> * Used in #OBJECTS.
> */
>
> #define ITEM_GEM 32
> #define ITEM_JEWELRY 33
> #define ITEM_JUKEBOX 34
> #define ITEM_LOCKPICK 35
>
> I get no compile errors, and the area file says
> "none" as item type after I
> asave area.
> If you need more info, just say so and I'll send it
> out.
> Thanks for your help
>
> --
> ROM mailing list
> [email protected]
> http://www.rom.org/cgi-bin/mailman/listinfo/rom
__________________________________________________
Do You Yahoo!?
Yahoo! Finance - Get real-time stock quotes
http://finance.yahoo.com