[9198] Replace targeted movegen by 2 new: chase/follow movegens.

NOTE: this is mostly just formal adding 2 movegens with very limited cleanups.
Real result from adding 2 new movegens possible after apply more deep cleanups/fixes
in UNIT_STAT_CHASE/UNIT_STAT_FOLLOW set. But this will need more cereful changes
because we have currently sometime strange dependences and places for set for this flags.
Similar cleanups required for other movegen related flags. Infact i have related patches but
need more testing before apply step by step.
This commit is contained in:
VladimirMangos 2010-01-17 09:28:49 +03:00
parent 2e9bf5ad6a
commit 8a03785470
17 changed files with 232 additions and 138 deletions

View file

@ -5571,26 +5571,37 @@ bool ChatHandler::HandleMovegensCommand(const char* /*args*/)
case WAYPOINT_MOTION_TYPE: SendSysMessage(LANG_MOVEGENS_WAYPOINT); break;
case ANIMAL_RANDOM_MOTION_TYPE: SendSysMessage(LANG_MOVEGENS_ANIMAL_RANDOM); break;
case CONFUSED_MOTION_TYPE: SendSysMessage(LANG_MOVEGENS_CONFUSED); break;
case TARGETED_MOTION_TYPE:
case CHASE_MOTION_TYPE:
{
Unit* target = NULL;
if(unit->GetTypeId()==TYPEID_PLAYER)
{
TargetedMovementGenerator<Player> const* mgen = static_cast<TargetedMovementGenerator<Player> const*>(*itr);
Unit* target = mgen->GetTarget();
if(target)
PSendSysMessage(LANG_MOVEGENS_TARGETED_PLAYER,target->GetName(),target->GetGUIDLow());
else
SendSysMessage(LANG_MOVEGENS_TARGETED_NULL);
}
target = static_cast<ChaseMovementGenerator<Player> const*>(*itr)->GetTarget();
else
{
TargetedMovementGenerator<Creature> const* mgen = static_cast<TargetedMovementGenerator<Creature> const*>(*itr);
Unit* target = mgen->GetTarget();
if(target)
PSendSysMessage(LANG_MOVEGENS_TARGETED_CREATURE,target->GetName(),target->GetGUIDLow());
else
SendSysMessage(LANG_MOVEGENS_TARGETED_NULL);
}
target = static_cast<ChaseMovementGenerator<Creature> const*>(*itr)->GetTarget();
if (!target)
SendSysMessage(LANG_MOVEGENS_CHASE_NULL);
else if (target->GetTypeId()==TYPEID_PLAYER)
PSendSysMessage(LANG_MOVEGENS_CHASE_PLAYER,target->GetName(),target->GetGUIDLow());
else
PSendSysMessage(LANG_MOVEGENS_CHASE_CREATURE,target->GetName(),target->GetGUIDLow());
break;
}
case FOLLOW_MOTION_TYPE:
{
Unit* target = NULL;
if(unit->GetTypeId()==TYPEID_PLAYER)
target = static_cast<FollowMovementGenerator<Player> const*>(*itr)->GetTarget();
else
target = static_cast<FollowMovementGenerator<Creature> const*>(*itr)->GetTarget();
if (!target)
SendSysMessage(LANG_MOVEGENS_FOLLOW_NULL);
else if (target->GetTypeId()==TYPEID_PLAYER)
PSendSysMessage(LANG_MOVEGENS_FOLLOW_PLAYER,target->GetName(),target->GetGUIDLow());
else
PSendSysMessage(LANG_MOVEGENS_FOLLOW_CREATURE,target->GetName(),target->GetGUIDLow());
break;
}
case HOME_MOTION_TYPE: