Allow heroforge textures to be manipulated via perl

This commit is contained in:
Akkadius 2016-03-28 21:13:37 -05:00
parent 6c5d686b22
commit a82f5f8bf6
3 changed files with 15 additions and 6 deletions

View File

@ -3317,13 +3317,22 @@ XS(XS__wearchange);
XS(XS__wearchange)
{
dXSARGS;
if (items != 2)
Perl_croak(aTHX_ "Usage: wearchange(slot, texture)");
if (items < 4)
Perl_croak(aTHX_ "Usage: wearchange(slot, texture, [hero_forge_model], [elite_material])");
uint8 slot = (int)SvUV(ST(0));
uint16 texture = (int)SvUV(ST(1));
quest_manager.wearchange(slot, texture);
uint32 hero_forge_model = 0;
uint32 elite_material = 0;
if (items > 2)
hero_forge_model = (int)SvUV(ST(2));
if (items > 3)
elite_material = (int)SvUV(ST(3));
quest_manager.wearchange(slot, texture, hero_forge_model, elite_material);
XSRETURN_EMPTY;
}

View File

@ -2881,11 +2881,11 @@ void QuestManager::removetitle(int titleset) {
initiator->RemoveTitle(titleset);
}
void QuestManager::wearchange(uint8 slot, uint16 texture)
void QuestManager::wearchange(uint8 slot, uint16 texture, uint32 hero_forge_model /*= 0*/, uint32 elite_material /*= 0*/)
{
QuestManagerCurrentQuestVars();
if(owner){
owner->SendTextureWC(slot, texture);
owner->SendTextureWC(slot, texture, hero_forge_model, elite_material);
if(owner->IsNPC()) {
owner->CastToNPC()->NPCSlotTexture(slot, texture);
}

View File

@ -240,7 +240,7 @@ public:
bool IsRunning();
void FlyMode(uint8 flymode);
uint8 FactionValue();
void wearchange(uint8 slot, uint16 texture);
void wearchange(uint8 slot, uint16 texture, uint32 hero_forge_model = 0, uint32 elite_material = 0);
void voicetell(const char *str, int macronum, int racenum, int gendernum);
void LearnRecipe(uint32 recipe_id);
void SendMail(const char *to, const char *from, const char *subject, const char *message);