--- deliantra/server/include/object.h 2010/03/26 00:53:26 1.228 +++ deliantra/server/include/object.h 2010/04/04 02:51:56 1.233 @@ -2,8 +2,8 @@ * This file is part of Deliantra, the Roguelike Realtime MMORPG. * * Copyright (©) 2005,2006,2007,2008,2009,2010 Marc Alexander Lehmann / Robin Redeker / the Deliantra team - * Copyright (©) 2001,2007 Mark Wedel & Crossfire Development Team - * Copyright (©) 1992,2007 Frank Tore Johansen + * Copyright (©) 2001 Mark Wedel & Crossfire Development Team + * Copyright (©) 1992 Frank Tore Johansen * * Deliantra is free software: you can redistribute it and/or modify it under * the terms of the Affero GNU General Public License as published by the @@ -34,6 +34,7 @@ typedef int tag_t; +// also see common/item.C enum { body_skill, body_combat, @@ -52,13 +53,6 @@ NUM_BODY_LOCATIONS }; -enum slottype_t -{ - slot_none, - slot_combat, - slot_ranged, -}; - /* See common/item.c */ typedef struct Body_Locations @@ -291,6 +285,16 @@ const_utf8_string query_short_name (const object *op); const_utf8_string query_name (const object *op); const_utf8_string query_base_name (const object *op, int plural); +sint64 query_cost (const object *tmp, object *who, int flag); +const char *query_cost_string (const object *tmp, object *who, int flag); + +int change_ability_duration (object *spell, object *caster); +int min_casting_level (object *caster, object *spell); +int casting_level (object *caster, object *spell); +sint16 SP_level_spellpoint_cost (object *caster, object *spell, int flags); +int SP_level_dam_adjust (object *caster, object *spob); +int SP_level_duration_adjust (object *caster, object *spob); +int SP_level_range_adjust (object *caster, object *spob); struct object : zero_initialised, object_copy { @@ -362,7 +366,6 @@ static object *read (object_thawer &f, maptile *map = 0); // map argument due to toal design bogosity, must go. bool write (object_freezer &f); - MTH int slottype () const; MTH static object *create (); const mapxy &operator =(const mapxy &pos); MTH void copy_to (object *dst); @@ -431,8 +434,7 @@ MTH void set_owner (object *owner); MTH void set_speed (float speed); MTH void set_glow_radius (sint8 rad); - MTH bool change_weapon (object *ob); - MTH bool change_skill (object *ob); + MTH bool change_skill (object *ob); // deprecated? MTH void open_container (object *new_container); MTH void close_container () @@ -613,6 +615,9 @@ return !!contr; } + /* elmex: this method checks whether the object is in a shop */ + MTH bool is_in_shop () const; + MTH bool affects_los () const { return glow_radius || flag [FLAG_BLOCKSVIEW]; @@ -662,6 +667,7 @@ void enter_exit (object *exit);//Perl MTH void enter_map (maptile *newmap, int x, int y); void player_goto (const_utf8_string path, int x, int y); // only for players + MTH bool apply (object *ob, int aflags = AP_APPLY); // ob may be 0 // returns the mapspace this object is in mapspace &ms () const;