Core/Commands: Implement .debug moveflags command. With params you can set MoveFlags and MoveFlagsExtra for targeted unit. Without params it will display the current MoveFlags and MoveFlagsExtra. Useful for debugging upcoming changes.

This commit is contained in:
Machiavelli committed 2012-03-03 16:12:28 +01:00
1 parent a08fe16d69
commit d1e4eb0512
3 files changed
+46 -1

No files matched your search

+34
View File
@@ -89,6 +89,7 @@ public:
{ "itemexpire", SEC_ADMINISTRATOR, false, &HandleDebugItemExpireCommand, "", NULL },
{ "areatriggers", SEC_ADMINISTRATOR, false, &HandleDebugAreaTriggersCommand, "", NULL },
{ "los", SEC_MODERATOR, false, &HandleDebugLoSCommand, "", NULL },
{ "moveflags", SEC_ADMINISTRATOR, false, &HandleDebugMoveflagsCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
@@ -1283,6 +1284,39 @@ public:
handler->PSendSysMessage(LANG_SET_32BIT_FIELD, opcode, value);
return true;
}
static bool HandleDebugMoveflagsCommand(ChatHandler* handler, char const* args)
{
Unit* target = handler->getSelectedUnit();
if (!target)
target = handler->GetSession()->GetPlayer();
if (!*args)
{
//! Display case
handler->PSendSysMessage(LANG_MOVEFLAGS_GET, target->GetUnitMovementFlags(), target->GetExtraUnitMovementFlags());
}
else
{
char* mask1 = strtok((char*)args, " ");
if (!mask1)
return false;
char* mask2 = strtok(NULL, " \n");
uint32 moveFlags = (uint32)atoi(mask1);
target->SetUnitMovementFlags(moveFlags);
if (mask2)
{
uint32 moveFlagsExtra = uint32(atoi(mask2));
target->SetExtraUnitMovementFlags(moveFlagsExtra);
}
target->SendMovementFlagUpdate();
handler->PSendSysMessage(LANG_MOVEFLAGS_SET, target->GetUnitMovementFlags(), target->GetExtraUnitMovementFlags());
}
}
};
void AddSC_debug_commandscript()