From 195dffc20af1fb32c7e4119988911b72955aeabc Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@54d463be-8e91-2dee-dedb-b68131a5f0ec> Date: Thu, 4 Nov 2004 23:25:09 +0000 Subject: git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/athena@2 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/itemdb.h | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 src/map/itemdb.h (limited to 'src/map/itemdb.h') diff --git a/src/map/itemdb.h b/src/map/itemdb.h new file mode 100644 index 000000000..05ecc572f --- /dev/null +++ b/src/map/itemdb.h @@ -0,0 +1,84 @@ +// $Id: itemdb.h,v 1.3 2004/09/25 05:32:18 MouseJstr Exp $ +#ifndef _ITEMDB_H_ +#define _ITEMDB_H_ + +#include "map.h" + +struct item_data { + int nameid; + char name[24],jname[24]; + char prefix[24],suffix[24]; + char cardillustname[64]; + int value_buy; + int value_sell; + int type; + int class; + int sex; + int equip; + int weight; + int atk; + int def; + int range; + int slot; + int look; + int elv; + int wlv; + int refine; + char *use_script; // 回復とかも全部この中でやろうかなと + char *equip_script; // 攻撃,防御の属性設定もこの中で可能かな? + struct { + unsigned available : 1; + unsigned value_notdc : 1; + unsigned value_notoc : 1; + unsigned no_equip : 3; + unsigned no_drop : 1; + unsigned no_use : 1; + } flag; + int view_id; +}; + +struct random_item_data { + int nameid; + int per; +}; + +struct item_data* itemdb_searchname(const char *name); +struct item_data* itemdb_search(int nameid); +struct item_data* itemdb_exists(int nameid); +#define itemdb_type(n) itemdb_search(n)->type +#define itemdb_atk(n) itemdb_search(n)->atk +#define itemdb_def(n) itemdb_search(n)->def +#define itemdb_look(n) itemdb_search(n)->look +#define itemdb_weight(n) itemdb_search(n)->weight +#define itemdb_equip(n) itemdb_search(n)->equip +#define itemdb_usescript(n) itemdb_search(n)->use_script +#define itemdb_equipscript(n) itemdb_search(n)->equip_script +#define itemdb_wlv(n) itemdb_search(n)->wlv +#define itemdb_range(n) itemdb_search(n)->range +#define itemdb_slot(n) itemdb_search(n)->slot +#define itemdb_available(n) (itemdb_exists(n) && itemdb_search(n)->flag.available) +#define itemdb_viewid(n) (itemdb_search(n)->view_id) + +int itemdb_searchrandomid(int flags); + +#define itemdb_value_buy(n) itemdb_search(n)->value_buy +#define itemdb_value_sell(n) itemdb_search(n)->value_sell +#define itemdb_value_notdc(n) itemdb_search(n)->flag.value_notdc +#define itemdb_value_notoc(n) itemdb_search(n)->flag.value_notoc + +int itemdb_isequip(int); +int itemdb_isequip2(struct item_data *); +int itemdb_isequip3(int); +int itemdb_isdropable(int nameid); + +// itemdb_equipマクロとitemdb_equippointとの違いは +// 前者が鯖側dbで定義された値そのものを返すのに対し +// 後者はsessiondataを考慮した鞍側での装備可能場所 +// すべての組み合わせを返す + +void itemdb_reload(void); + +void do_final_itemdb(void); +int do_init_itemdb(void); + +#endif -- cgit v1.2.3-60-g2f50