void Creature::setOutfit(const Outfit& outfit) { if(outfit.getCategory() != ThingCategoryCreature) { if(!g_things.isValidDatId(outfit.getAuxId(), outfit.getCategory())) return; m_outfit.setAuxId(outfit.getAuxId()); m_outfit.setCategory(outfit.getCategory()); } else { if(outfit.getId() > 0 && !g_things.isValidDatId(outfit.getId(), ThingCategoryCreature)) return; m_outfit = outfit; } m_walkAnimationPhase = 0; // might happen when player is walking and outfit is changed. }
int push_luavalue(const Outfit& outfit) { g_lua.createTable(0, 8); g_lua.pushInteger(outfit.getId()); g_lua.setField("type"); g_lua.pushInteger(outfit.getAuxId()); g_lua.setField("auxType"); if(g_game.getFeature(Otc::GamePlayerAddons)) { g_lua.pushInteger(outfit.getAddons()); g_lua.setField("addons"); } g_lua.pushInteger(outfit.getHead()); g_lua.setField("head"); g_lua.pushInteger(outfit.getBody()); g_lua.setField("body"); g_lua.pushInteger(outfit.getLegs()); g_lua.setField("legs"); g_lua.pushInteger(outfit.getFeet()); g_lua.setField("feet"); if(g_game.getFeature(Otc::GamePlayerMounts)) { g_lua.pushInteger(outfit.getMount()); g_lua.setField("mount"); } return 1; }