--- deliantra/server/include/object.h 2006/09/13 02:05:19 1.34 +++ deliantra/server/include/object.h 2006/09/14 01:12:28 1.35 @@ -115,7 +115,6 @@ // these are being copied struct object_copy : attachable { - refptr ACC (RW, owner); /* Pointer to the object which controls this one */ shstr ACC (RW, name); /* The name of the object, obviously... */ shstr ACC (RW, name_pl); /* The plural name of the object */ shstr ACC (RW, title); /* Of foo, etc */ @@ -128,6 +127,13 @@ /* To get put into books and the like. */ shstr ACC (RW, materialname); /* specific material name */ shstr ACC (RW, custom_name); /* Custom name assigned by player */ + refptr ACC (RW, owner); /* Pointer to the object which controls this one */ + refptr ACC (RW, enemy); /* Monster/player to follow even if not closest */ + refptr ACC (RW, attacked_by); /* This object start to attack us! only player & monster */ + refptr ACC (RW, chosen_skill); /* the skill chosen to use */ + refptr ACC (RW, spellitem); /* Spell ability monster is choosing to use */ + refptr ACC (RW, spell); /* Spell that was being cast */ + refptr ACC (RW, current_weapon); /* Pointer to the weapon currently used */ }; // these are being copied and also cleared @@ -172,7 +178,6 @@ sint32 ACC (RW, carrying); /* How much weight this object contains */ living ACC (RO, stats); /* Str, Con, Dex, etc */ sint64 ACC (RW, perm_exp); /* Permanent exp */ - struct object *ACC (RW, current_weapon); /* Pointer to the weapon currently used */ uint32 ACC (RW, weapontype); /* type of weapon */ uint32 ACC (RW, tooltype); /* type of tool or build facility */ sint8 body_info[NUM_BODY_LOCATIONS]; /* body info as loaded from the file */ @@ -181,18 +186,13 @@ /* Following mostly refers to fields only used for monsters */ tag_t ACC (RW, ownercount); /* What count the owner had (in case owner has been freed) *///TODO: remove/fix - struct object *ACC (RW, enemy); /* Monster/player to follow even if not closest */ - struct object *ACC (RW, attacked_by); /* This object start to attack us! only player & monster */ tag_t ACC (RW, attacked_by_count); /* the tag of attacker, so we can be sure */ - struct treasureliststruct *ACC (RW, randomitems); /* Items to be generated */ - struct object *ACC (RW, chosen_skill); /* the skill chosen to use */ uint32 ACC (RW, hide); /* The object is hidden, not invisible */ /* changes made by kholland@sunlab.cit.cornell.edu */ /* allows different movement patterns for attackers */ sint32 ACC (RW, move_status); /* What stage in attack mode */ uint16 ACC (RW, attack_movement); /* What kind of attack movement */ uint16 ACC (RW, run_away); /* Monster runs away if it's hp goes below this percentage. */ - struct object *ACC (RW, spellitem); /* Spell ability monster is choosing to use */ float ACC (RW, expmul); /* needed experience = (calc_exp*expmul) - means some */ /* races/classes can need less/more exp to gain levels */ @@ -203,7 +203,6 @@ sint16 ACC (RW, duration); /* How long the spell lasts */ sint16 ACC (RW, casting_time); /* time left before spell goes off */ uint16 ACC (RW, start_holding); - struct object *ACC (RW, spell); /* Spell that was being cast */ char *ACC (RW, spellarg); uint8 ACC (RW, duration_modifier); /* how level modifies duration */ uint8 ACC (RW, dam_modifier); /* How going up in level effects damage */ @@ -211,8 +210,10 @@ uint8 ACC (RW, range_modifier); /* How going up in level effects range */ /* Following are values used by any object */ + struct treasureliststruct *ACC (RW, randomitems); /* Items to be generated */ struct archetype *ACC (RW, arch); /* Pointer to archetype */ struct archetype *ACC (RW, other_arch); /* Pointer used for various things - mostly used for what */ + key_value *key_values; /* Fields not explictly known by the loader. */ /* this objects turns into or what this object creates */ uint32 flags[4]; /* various flags */ uint16 ACC (RW, animation_id); /* An index into the animation array */ @@ -229,7 +230,6 @@ MoveType ACC (RW, move_off); /* Move types affected moving off this space */ MoveType ACC (RW, move_slow); /* Movement types this slows down */ float ACC (RW, move_slow_penalty); /* How much this slows down the object */ - key_value *key_values; /* Fields not explictly known by the loader. */ }; struct object : zero_initialised, object_keep, object_copy, object_pod