00001
00002
00003 #ifndef _ITEMDB_H_
00004 #define _ITEMDB_H_
00005
00006 #include "map.h"
00007
00008 struct item_data
00009 {
00010 int nameid;
00011 char name[25], jname[25];
00012 char cardillustname[64];
00013 int value_buy;
00014 int value_sell;
00015 char type;
00016 int class;
00017 char sex;
00018 int equip;
00019 int weight;
00020 int atk;
00021 int def;
00022 char range;
00023 char slot;
00024 short look;
00025 short elv;
00026 char wlv;
00027 unsigned char *use_script;
00028 unsigned char *equip_script;
00029 struct
00030 {
00031 unsigned available : 1;
00032 unsigned value_notdc : 1;
00033 unsigned value_notoc : 1;
00034 unsigned no_equip : 3;
00035 unsigned no_drop : 1;
00036 unsigned no_use : 1;
00037 unsigned no_refine : 1;
00038 unsigned no_trade : 2;
00039 } flag;
00040 int view_id;
00041 };
00042
00043 struct random_item_data {
00044 int nameid;
00045 int per;
00046 };
00047
00048 struct item_data* itemdb_searchname(const char *name);
00049 struct item_data* itemdb_search(intptr_t nameid);
00050 struct item_data* itemdb_exists(intptr_t nameid);
00051 #define itemdb_type(n) itemdb_search(n)->type
00052 #define itemdb_atk(n) itemdb_search(n)->atk
00053 #define itemdb_def(n) itemdb_search(n)->def
00054 #define itemdb_look(n) itemdb_search(n)->look
00055 #define itemdb_weight(n) itemdb_search(n)->weight
00056 #define itemdb_equip(n) itemdb_search(n)->equip
00057 #define itemdb_usescript(n) itemdb_search(n)->use_script
00058 #define itemdb_equipscript(n) itemdb_search(n)->equip_script
00059 #define itemdb_wlv(n) itemdb_search(n)->wlv
00060 #define itemdb_range(n) itemdb_search(n)->range
00061 #define itemdb_slot(n) itemdb_search(n)->slot
00062 #define itemdb_available(n) (itemdb_exists(n) && itemdb_search(n)->flag.available)
00063 #define itemdb_viewid(n) (itemdb_search(n)->view_id)
00064
00065 int itemdb_searchrandomid(int flags);
00066
00067 int itemdb_isequip(int);
00068 int itemdb_isequip2(struct item_data *);
00069 int itemdb_isequip3(int);
00070 int itemdb_isdropable(int nameid);
00071
00072
00073
00074
00075
00076
00077 void itemdb_reload(void);
00078
00079 void do_final_itemdb(void);
00080 int do_init_itemdb(void);
00081
00082 #endif // _ITEMDB_H_