Show
Ignore:
Timestamp:
11/19/08 13:43:15 (17 years ago)
Author:
yumileroy
Message:

[svn] Implemented player on player and player on creature possession:
* Implemented packet and vision forwarding through possessed units
* Added new OnPossess? script call alerting scripts on when possession is applied/removed
* Moved fall damage and fall under map calculations into the Player class
* Added new PossessedAI that is applied only while possession on creature is active
* Implemented summon possessed spell effect
* Fixed Eyes of the Beast

Original author: gvcoman
Date: 2008-11-05 20:51:05-06:00

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/game/GridNotifiers.h

    r102 r174  
    9090    }; 
    9191 
    92     struct TRINITY_DLL_DECL MessageDeliverer 
    93     { 
    94         Player &i_player; 
     92    struct TRINITY_DLL_DECL Deliverer 
     93    { 
     94        WorldObject &i_source; 
    9595        WorldPacket *i_message; 
     96        std::set<uint64> plr_list; 
     97        bool i_toPossessor; 
     98        float i_dist; 
     99        Deliverer(WorldObject &src, WorldPacket *msg, bool to_possessor, float dist = 0.0f) : i_source(src), i_message(msg), i_toPossessor(to_possessor), i_dist(dist) {} 
     100        void Visit(PlayerMapType &m); 
     101        void Visit(CreatureMapType &m); 
     102        virtual void VisitObject(Player* plr) = 0; 
     103        void SendPacket(Player* plr); 
     104        template<class SKIP> void Visit(GridRefManager<SKIP> &) {} 
     105    }; 
     106         
     107    struct TRINITY_DLL_DECL MessageDeliverer : public Deliverer 
     108    { 
    96109        bool i_toSelf; 
    97         MessageDeliverer(Player &pl, WorldPacket *msg, bool to_self) : i_player(pl), i_message(msg), i_toSelf(to_self) {} 
    98         void Visit(PlayerMapType &m); 
    99         template<class SKIP> void Visit(GridRefManager<SKIP> &) {} 
    100     }; 
    101  
    102     struct TRINITY_DLL_DECL ObjectMessageDeliverer 
    103     { 
    104         WorldPacket *i_message; 
    105         explicit ObjectMessageDeliverer(WorldPacket *msg) : i_message(msg) {} 
    106         void Visit(PlayerMapType &m); 
    107         template<class SKIP> void Visit(GridRefManager<SKIP> &) {} 
    108     }; 
    109  
    110     struct TRINITY_DLL_DECL MessageDistDeliverer 
    111     { 
    112         Player &i_player; 
    113         WorldPacket *i_message; 
     110        MessageDeliverer(Player &pl, WorldPacket *msg, bool to_possessor, bool to_self) : Deliverer(pl, msg, to_possessor), i_toSelf(to_self) {} 
     111        void VisitObject(Player* plr); 
     112    }; 
     113 
     114    struct TRINITY_DLL_DECL ObjectMessageDeliverer : public Deliverer 
     115    { 
     116        explicit ObjectMessageDeliverer(WorldObject &src, WorldPacket *msg, bool to_possessor) : Deliverer(src, msg, to_possessor) {} 
     117        void VisitObject(Player* plr) { SendPacket(plr); } 
     118    }; 
     119 
     120    struct TRINITY_DLL_DECL MessageDistDeliverer : public Deliverer 
     121    { 
    114122        bool i_toSelf; 
    115123        bool i_ownTeamOnly; 
    116         float i_dist; 
    117         MessageDistDeliverer(Player &pl, WorldPacket *msg, float dist, bool to_self, bool ownTeamOnly) : i_player(pl), i_message(msg), i_dist(dist), i_toSelf(to_self), i_ownTeamOnly(ownTeamOnly) {} 
    118         void Visit(PlayerMapType &m); 
    119         template<class SKIP> void Visit(GridRefManager<SKIP> &) {} 
    120     }; 
    121  
    122     struct TRINITY_DLL_DECL ObjectMessageDistDeliverer 
    123     { 
    124         WorldObject &i_object; 
    125         WorldPacket *i_message; 
    126         float i_dist; 
    127         ObjectMessageDistDeliverer(WorldObject &obj, WorldPacket *msg, float dist) : i_object(obj), i_message(msg), i_dist(dist) {} 
    128         void Visit(PlayerMapType &m); 
    129         template<class SKIP> void Visit(GridRefManager<SKIP> &) {} 
     124        MessageDistDeliverer(Player &pl, WorldPacket *msg, bool to_possessor, float dist, bool to_self, bool ownTeamOnly) : Deliverer(pl, msg, to_possessor, dist), i_toSelf(to_self), i_ownTeamOnly(ownTeamOnly) {} 
     125        void VisitObject(Player* plr); 
     126    }; 
     127 
     128    struct TRINITY_DLL_DECL ObjectMessageDistDeliverer : public Deliverer 
     129    { 
     130        ObjectMessageDistDeliverer(WorldObject &obj, WorldPacket *msg, bool to_possessor, float dist) : Deliverer(obj, msg, to_possessor, dist) {} 
     131        void VisitObject(Player* plr) { SendPacket(plr); } 
    130132    }; 
    131133