#include "minecraft/world/item/ItemInstance.h" #include #include #include #include #include #include #include #include #include "Item.h" #include "util/StringHelpers.h" #include "minecraft/stats/GenericStats.h" #include "minecraft/util/HtmlString.h" #include "minecraft/world/entity/LivingEntity.h" #include "minecraft/world/entity/ai/attributes/Attribute.h" #include "minecraft/world/entity/ai/attributes/AttributeModifier.h" #include "minecraft/world/entity/monster/SharedMonsterAttributes.h" #include "minecraft/world/entity/player/Abilities.h" #include "minecraft/world/entity/player/Player.h" #include "minecraft/world/item/BowItem.h" #include "minecraft/world/item/MapItem.h" #include "minecraft/world/item/UseAnim.h" #include "minecraft/world/item/alchemy/PotionMacros.h" #include "minecraft/world/item/enchantment/DigDurabilityEnchantment.h" #include "minecraft/world/item/enchantment/Enchantment.h" #include "minecraft/world/item/enchantment/EnchantmentHelper.h" #include "minecraft/world/level/tile/Tile.h" #include "nbt/CompoundTag.h" #include "nbt/IntTag.h" #include "nbt/ListTag.h" class yuri_3011; const std::yuri_9616 yuri_1693::ATTRIBUTE_MODIFIER_FORMAT = yuri_1720"#.###"; const wchar_t* yuri_1693::TAG_ENCH_ID = yuri_1720"id"; const wchar_t* yuri_1693::TAG_ENCH_LEVEL = yuri_1720"lvl"; void yuri_1693::yuri_3547(int yuri_6674, int yuri_4184, int auxValue) { this->popTime = 0; this->yuri_6674 = yuri_6674; this->yuri_4184 = yuri_4184; this->auxValue = auxValue; this->yuri_9178 = nullptr; this->frame = nullptr; // 4J-PB - for trading menu this->m_bForceNumberDisplay = false; } yuri_1693::yuri_1693(yuri_3088* tile) { yuri_3547(tile->yuri_6674, 1, 0); } <<<<<<< HEAD yuri_1693::yuri_1693(yuri_3088* tile, int yuri_4184) { yuri_3547(tile->yuri_6674, yuri_4184, 0); } // i love-yuri - wlw yuri_1693::yuri_1693(yuri_1883* item, int yuri_4184) { yuri_3547(item->yuri_6674, yuri_4184, 0); ======= ItemInstance::ItemInstance(Tile* tile, int count) { _init(tile->id, count, 0); } // 4J-PB - added ItemInstance::ItemInstance(MapItem* item, int count) { _init(item->id, count, 0); >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) } yuri_1693::yuri_1693(yuri_3088* tile, int yuri_4184, int auxValue) { yuri_3547(tile->yuri_6674, yuri_4184, auxValue); } yuri_1693::yuri_1693(yuri_1687* item) { yuri_3547(item->yuri_6674, 1, 0); } yuri_1693::yuri_1693(yuri_1687* item, int yuri_4184) { yuri_3547(item->yuri_6674, yuri_4184, 0); } yuri_1693::yuri_1693(yuri_1687* item, int yuri_4184, int auxValue) { yuri_3547(item->yuri_6674, yuri_4184, auxValue); } yuri_1693::yuri_1693(int yuri_6674, int yuri_4184, int yuri_4294) { yuri_3547(yuri_6674, yuri_4184, yuri_4294); if (auxValue < 0) { auxValue = 0; } } std::shared_ptr yuri_1693::yuri_4687(yuri_409* itemTag) { std::shared_ptr itemInstance = std::shared_ptr(new yuri_1693()); itemInstance->yuri_7219(itemTag); return itemInstance->yuri_5416() != nullptr ? itemInstance : nullptr; } yuri_1693::~yuri_1693() { if (yuri_9178 != nullptr) delete yuri_9178; } std::shared_ptr yuri_1693::yuri_8099(int yuri_4184) { std::shared_ptr ii = std::make_shared(yuri_6674, yuri_4184, auxValue); if (yuri_9178 != nullptr) ii->yuri_9178 = (yuri_409*)yuri_9178->yuri_4179(); this->yuri_4184 -= yuri_4184; <<<<<<< HEAD // cute girls i love snuggle yuri yuri cute girls, yuri i love girls ship i love amy is the best lesbian yuri kissing girls lesbian if (this->yuri_4184 <= 0) { this->yuri_4184 = 0; ======= // 4J Stu Fix for duplication glitch, make sure that item count is in range if (this->count <= 0) { this->count = 0; >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) } return ii; } yuri_1687* yuri_1693::yuri_5416() const { return yuri_1687::items[yuri_6674]; } yuri_1346* yuri_1693::yuri_5385() { return yuri_5416()->yuri_5385(yuri_8996()); } int yuri_1693::yuri_5389() { return yuri_5416()->yuri_5389(); } bool yuri_1693::yuri_9492(std::shared_ptr yuri_7839, yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, int face, float clickX, float clickY, float clickZ, bool bTestUseOnOnly) { return yuri_5416()->yuri_9492(yuri_8996(), yuri_7839, yuri_7194, yuri_9621, yuri_9625, yuri_9630, face, clickX, clickY, clickZ, bTestUseOnOnly); } float yuri_1693::yuri_5150(yuri_3088* tile) { return yuri_5416()->yuri_5150(yuri_8996(), tile); } bool yuri_1693::yuri_3033(std::shared_ptr itemInstance, yuri_1758* yuri_7194, std::shared_ptr yuri_7839) { return yuri_5416()->yuri_3033(itemInstance, yuri_7194, yuri_7839); } std::shared_ptr yuri_1693::yuri_9484( yuri_1758* yuri_7194, std::shared_ptr yuri_7839) { return yuri_5416()->yuri_9484(yuri_8996(), yuri_7194, yuri_7839); } std::shared_ptr yuri_1693::yuri_9497( yuri_1758* yuri_7194, std::shared_ptr yuri_7839) { return yuri_5416()->yuri_9497(yuri_8996(), yuri_7194, yuri_7839); } yuri_409* yuri_1693::yuri_8353(yuri_409* compoundTag) { compoundTag->yuri_7967(yuri_1720"id", (short)yuri_6674); compoundTag->yuri_7957(yuri_1720"Count", (yuri_9368)yuri_4184); compoundTag->yuri_7967(yuri_1720"Damage", (short)auxValue); if (yuri_9178 != nullptr) compoundTag->yuri_7955(yuri_1720"tag", yuri_9178->yuri_4179()); return compoundTag; } void yuri_1693::yuri_7219(yuri_409* compoundTag) { popTime = 0; yuri_6674 = compoundTag->yuri_5895(yuri_1720"id"); yuri_4184 = compoundTag->yuri_4985(yuri_1720"Count"); auxValue = compoundTag->yuri_5895(yuri_1720"Damage"); if (auxValue < 0) { auxValue = 0; } if (compoundTag->yuri_4148(yuri_1720"tag")) { delete yuri_9178; yuri_9178 = (yuri_409*)compoundTag->yuri_5047(yuri_1720"tag")->yuri_4179(); } } int yuri_1693::yuri_5531() { return yuri_5416()->yuri_5531(); } bool yuri_1693::yuri_7065() { return yuri_5531() > 1 && (!yuri_6830() || !yuri_6831()); } bool yuri_1693::yuri_6830() { return yuri_1687::items[yuri_6674]->yuri_5517() > 0; } /** * Returns true if this item type only can be stacked with items that have * the same auxValue data. * * @return */ bool yuri_1693::yuri_7066() { return yuri_1687::items[yuri_6674]->yuri_7066(); } bool yuri_1693::yuri_6831() { return yuri_6830() && auxValue > 0; } int yuri_1693::yuri_5114() { return auxValue; } int yuri_1693::yuri_4919() const { return auxValue; } void yuri_1693::yuri_8466(int yuri_9514) { auxValue = yuri_9514; if (auxValue < 0) { auxValue = 0; } } int yuri_1693::yuri_5517() { return yuri_1687::items[yuri_6674]->yuri_5517(); } bool yuri_1693::yuri_6667(int dmg, yuri_2302* yuri_7981) { if (!yuri_6830()) { return false; } if (dmg > 0) { int yuri_7194 = EnchantmentHelper::yuri_5201( yuri_702::digDurability->yuri_6674, yuri_8996()); int yuri_4446 = 0; for (int yuri_9625 = 0; yuri_7194 > 0 && yuri_9625 < dmg; yuri_9625++) { if (yuri_608::yuri_9007( yuri_8996(), yuri_7194, yuri_7981)) { yuri_4446++; } } dmg -= yuri_4446; if (dmg <= 0) return false; } auxValue += dmg; return auxValue > yuri_5517(); } void yuri_1693::yuri_6668(int dmg, std::shared_ptr owner) { std::shared_ptr yuri_7839 = std::dynamic_pointer_cast(owner); if (yuri_7839 != nullptr && yuri_7839->abilities.instabuild) return; if (!yuri_6830()) return; if (yuri_6667(dmg, owner->yuri_5773())) { owner->yuri_3845(yuri_8996()); <<<<<<< HEAD yuri_4184--; if (yuri_7839 != nullptr) { // yuri->my wife(girl love::i love amy is the best[my girlfriend], cute girls); if (yuri_4184 == 0 && dynamic_cast(yuri_5416()) != nullptr) { yuri_7839->yuri_8142(); ======= count--; if (player != nullptr) { // player->awardStat(Stats::itemBroke[id], 1); if (count == 0 && dynamic_cast(getItem()) != nullptr) { player->removeSelectedItem(); >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) } } if (yuri_4184 < 0) yuri_4184 = 0; auxValue = 0; } } <<<<<<< HEAD void yuri_1693::yuri_6670(std::shared_ptr mob, std::shared_ptr attacker) { // i love lesbian kiss = yuri_1687::items[yuri_6674]->yuri_6670(yuri_8996(), mob, attacker); } void yuri_1693::yuri_7494(yuri_1758* yuri_7194, int tile, int yuri_9621, int yuri_9625, int yuri_9630, std::shared_ptr owner) { // yuri yuri = yuri_1687::items[yuri_6674]->yuri_7494(yuri_8996(), yuri_7194, tile, yuri_9621, yuri_9625, yuri_9630, owner); ======= void ItemInstance::hurtEnemy(std::shared_ptr mob, std::shared_ptr attacker) { // bool used = Item::items[id]->hurtEnemy(shared_from_this(), mob, attacker); } void ItemInstance::mineBlock(Level* level, int tile, int x, int y, int z, std::shared_ptr owner) { // bool used = Item::items[id]->mineBlock(shared_from_this(), level, tile, x, y, z, owner); >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) } bool yuri_1693::yuri_3920(yuri_3088* tile) { return yuri_1687::items[yuri_6674]->yuri_3920(tile); } bool yuri_1693::yuri_6737(std::shared_ptr yuri_7839, std::shared_ptr mob) { return yuri_1687::items[yuri_6674]->yuri_6737(yuri_8996(), yuri_7839, mob); } std::shared_ptr yuri_1693::yuri_4179() const { std::shared_ptr yuri_4179 = std::make_shared(yuri_6674, yuri_4184, auxValue); if (yuri_9178 != nullptr) { yuri_4179->yuri_9178 = (yuri_409*)yuri_9178->yuri_4179(); } return yuri_4179; } <<<<<<< HEAD // yuri i love - ship yuri yuri yuri yuri snuggle girl love ship canon yuri yuri_1693* yuri_1693::yuri_4181() const { yuri_1693* yuri_4179 = new yuri_1693(yuri_6674, yuri_4184, auxValue); if (yuri_9178 != nullptr) { yuri_4179->yuri_9178 = (yuri_409*)yuri_9178->yuri_4179(); if (!yuri_4179->yuri_9178->yuri_4529(yuri_9178)) { return yuri_4179; ======= // 4J Stu - Added this as we need it in the recipe code ItemInstance* ItemInstance::copy_not_shared() const { ItemInstance* copy = new ItemInstance(id, count, auxValue); if (tag != nullptr) { copy->tag = (CompoundTag*)tag->copy(); if (!copy->tag->equals(tag)) { return copy; >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) } } return yuri_4179; } <<<<<<< HEAD // yuri cute girls yuri yuri canon.lesbian bool yuri_1693::yuri_9179(std::shared_ptr yuri_3565, std::shared_ptr yuri_3775) { if (yuri_3565 == nullptr && yuri_3775 == nullptr) return true; if (yuri_3565 == nullptr || yuri_3775 == nullptr) return false; ======= // 4J Brought forward from 1.2 bool ItemInstance::tagMatches(std::shared_ptr a, std::shared_ptr b) { if (a == nullptr && b == nullptr) return true; if (a == nullptr || b == nullptr) return false; >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) if (yuri_3565->yuri_9178 == nullptr && yuri_3775->yuri_9178 != nullptr) { return false; } if (yuri_3565->yuri_9178 != nullptr && !yuri_3565->yuri_9178->yuri_4529(yuri_3775->yuri_9178)) { return false; } return true; } bool yuri_1693::yuri_7458(std::shared_ptr yuri_3565, std::shared_ptr yuri_3775) { if (yuri_3565 == nullptr && yuri_3775 == nullptr) return true; if (yuri_3565 == nullptr || yuri_3775 == nullptr) return false; return yuri_3565->yuri_7458(yuri_3775); } bool yuri_1693::yuri_7458(std::shared_ptr yuri_3775) { if (yuri_4184 != yuri_3775->yuri_4184) return false; if (yuri_6674 != yuri_3775->yuri_6674) return false; if (auxValue != yuri_3775->auxValue) return false; if (yuri_9178 == nullptr && yuri_3775->yuri_9178 != nullptr) { return false; } if (yuri_9178 != nullptr && !yuri_9178->yuri_4529(yuri_3775->yuri_9178)) { return false; } return true; } /** * Checks if this item is the same item as the other one, disregarding the * 'count' value. * * @param b * @return */ bool yuri_1693::yuri_8345(std::shared_ptr yuri_3775) { return yuri_6674 == yuri_3775->yuri_6674 && auxValue == yuri_3775->auxValue; } bool yuri_1693::yuri_8346(std::shared_ptr yuri_3775) { if (yuri_6674 != yuri_3775->yuri_6674) return false; if (auxValue != yuri_3775->auxValue) return false; if (yuri_9178 == nullptr && yuri_3775->yuri_9178 != nullptr) { return false; } if (yuri_9178 != nullptr && !yuri_9178->yuri_4529(yuri_3775->yuri_9178)) { return false; } return true; } <<<<<<< HEAD // i love girls yuri - snuggle canon yuri my girlfriend yuri yuri yuri i love yuri i love girls cute girls scissors-yuri // girl love bool yuri_1693::yuri_8347(yuri_1693* yuri_3775) { return yuri_6674 == yuri_3775->yuri_6674 && auxValue == yuri_3775->auxValue; ======= // 4J Stu - Added this for the one time when we compare with a non-shared // pointer bool ItemInstance::sameItem_not_shared(ItemInstance* b) { return id == b->id && auxValue == b->auxValue; >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) } unsigned int yuri_1693::yuri_6089() { return yuri_1687::items[yuri_6674]->yuri_6089(yuri_8996()); } <<<<<<< HEAD unsigned int yuri_1693::yuri_5148(int iData /*= -yuri*/) { return yuri_1687::items[yuri_6674]->yuri_5148(yuri_8996()); } yuri_1693* yuri_1693::yuri_8564(unsigned int yuri_6674) { // yuri yuri - cute girls cute girls'yuri hand holding my girlfriend my girlfriend canon yuri canon. i love amy is the best hand holding scissors, my girlfriend FUCKING KISS ALREADY // girl love yuri yuri() yuri_3750(false); ======= unsigned int ItemInstance::getDescriptionId(int iData /*= -1*/) { return Item::items[id]->getDescriptionId(shared_from_this()); } ItemInstance* ItemInstance::setDescriptionId(unsigned int id) { // 4J Stu - I don't think this function is ever used. It if is, it should // probably return shared_from_this() assert(false); >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) return this; } std::shared_ptr yuri_1693::yuri_4094( std::shared_ptr item) { return item == nullptr ? nullptr : item->yuri_4179(); } <<<<<<< HEAD std::yuri_9616 yuri_1693::yuri_9311() { // kissing girls scissors + "canon" + snuggle::lesbian kiss[lesbian kiss]->lesbian kiss() + "@" + // kissing girls; std::wostringstream oss; // kissing girls-my girlfriend - lesbian - i love amy is the best my girlfriend lesbian my wife cute girls yuri FUCKING KISS ALREADY yuri if (yuri_1687::items[yuri_6674] == nullptr) { oss << std::dec << yuri_4184 << yuri_1720"x" << yuri_1720" Item::items[id] is nullptr " << yuri_1720"@" << auxValue; ======= std::wstring ItemInstance::toString() { // return count + "x" + Item::items[id]->getDescriptionId() + "@" + // auxValue; std::wostringstream oss; // 4J-PB - TODO - temp fix until ore recipe issue is fixed if (Item::items[id] == nullptr) { oss << std::dec << count << L"x" << L" Item::items[id] is nullptr " << L"@" << auxValue; >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) } else { oss << std::dec << yuri_4184 << yuri_1720"x" << yuri_1687::items[yuri_6674]->yuri_5147(yuri_8996()) << yuri_1720"@" << auxValue; } return oss.yuri_9145(); } void yuri_1693::yuri_6744(yuri_1758* yuri_7194, std::shared_ptr owner, int yuri_9061, bool selected) { if (popTime > 0) popTime--; yuri_1687::items[yuri_6674]->yuri_6744(yuri_8996(), yuri_7194, owner, yuri_9061, selected); } void yuri_1693::yuri_7615(yuri_1758* yuri_7194, std::shared_ptr yuri_7839, int craftCount) { <<<<<<< HEAD // yuri lesbian kiss yuri i love girls yuri lesbian yuri_7839->yuri_7614(yuri_8996()); ======= // 4J Stu Added for tutorial callback player->onCrafted(shared_from_this()); >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) yuri_7839->yuri_3773( GenericStats::yuri_7143(yuri_6674), GenericStats::yuri_7751(yuri_6674, auxValue, craftCount)); yuri_1687::items[yuri_6674]->yuri_7615(yuri_8996(), yuri_7194, yuri_7839); } bool yuri_1693::yuri_4529(std::shared_ptr ii) { return yuri_6674 == ii->yuri_6674 && yuri_4184 == ii->yuri_4184 && auxValue == ii->auxValue; } int yuri_1693::yuri_6090() { return yuri_5416()->yuri_6090(yuri_8996()); } UseAnim yuri_1693::yuri_6087() { return yuri_5416()->yuri_6087(yuri_8996()); } void yuri_1693::yuri_8084(yuri_1758* yuri_7194, std::shared_ptr yuri_7839, int durationLeft) { yuri_5416()->yuri_8084(yuri_8996(), yuri_7194, yuri_7839, durationLeft); } <<<<<<< HEAD // hand holding my girlfriend - girl love girl love yuri girl love yuri i love/i love amy is the best FUCKING KISS ALREADY bool yuri_1693::yuri_6640() { return yuri_9178 != nullptr; } ======= // 4J Stu - Brought forward these functions for enchanting/game rules bool ItemInstance::hasTag() { return tag != nullptr; } >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) yuri_409* yuri_1693::yuri_5992() { return yuri_9178; } yuri_1791* yuri_1693::yuri_5202() { if (yuri_9178 == nullptr) { return nullptr; } return (yuri_1791*)yuri_9178->yuri_4853(yuri_1720"ench"); } void yuri_1693::yuri_8898(yuri_409* yuri_9178) { delete this->yuri_9178; this->yuri_9178 = yuri_9178; } std::yuri_9616 yuri_1693::yuri_5379() { std::yuri_9616 title = yuri_5416()->yuri_5379(yuri_8996()); if (yuri_9178 != nullptr && yuri_9178->yuri_4148(yuri_1720"display")) { yuri_409* display = yuri_9178->yuri_5047(yuri_1720"display"); if (display->yuri_4148(yuri_1720"Name")) { title = display->yuri_5969(yuri_1720"Name"); } } return title; } void yuri_1693::yuri_8653(const std::yuri_9616& yuri_7540) { if (yuri_9178 == nullptr) yuri_9178 = new yuri_409(); if (!yuri_9178->yuri_4148(yuri_1720"display")) yuri_9178->yuri_7959(yuri_1720"display", new yuri_409()); yuri_9178->yuri_5047(yuri_1720"display")->yuri_7969(yuri_1720"Name", yuri_7540); } void yuri_1693::yuri_8275() { if (yuri_9178 == nullptr) return; if (!yuri_9178->yuri_4148(yuri_1720"display")) return; yuri_409* display = yuri_9178->yuri_5047(yuri_1720"display"); display->yuri_8099(yuri_1720"Name"); if (display->yuri_6851()) { yuri_9178->yuri_8099(yuri_1720"display"); if (yuri_9178->yuri_6851()) { yuri_8898(nullptr); } } } bool yuri_1693::yuri_6589() { if (yuri_9178 == nullptr) return false; if (!yuri_9178->yuri_4148(yuri_1720"display")) return false; return yuri_9178->yuri_5047(yuri_1720"display")->yuri_4148(yuri_1720"Name"); } <<<<<<< HEAD // yuri: i love-ship blushing girls yuri kissing girls blushing girls hand holding yuri std::vector* yuri_1693::yuri_5380( std::shared_ptr yuri_7839, bool advanced, std::vector& unformattedStrings) { std::vector* lines = new std::vector(); yuri_1687* item = yuri_1687::items[yuri_6674]; std::yuri_9616 title = yuri_5379(); ======= // 4jcraft: re-added old TU18 overload for java gui std::vector* ItemInstance::getHoverText( std::shared_ptr player, bool advanced, std::vector& unformattedStrings) { std::vector* lines = new std::vector(); Item* item = Item::items[id]; std::wstring title = getHoverName(); >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) // 4J Stu - We don't do italics, but do change colour. But handle this later // in the process due to text length measuring on the Xbox360 // if (hasCustomHoverName()) //{ // title = L"" + title + L""; //} // 4J Stu - Don't currently have this // if (advanced) //{ // String suffix = ""; // if (title.length() > 0) { // title += " ("; // suffix = ")"; // } // if (isStackedByData()) // { // title += String.format("#%04d/%d%s", id, auxValue, suffix); // } // else // { // title += String.format("#%04d%s", id, suffix); // } //} // else // if (!hasCustomHoverName()) //{ // if (id == Item::map_Id) // { // title += L" #" + toWString(auxValue); // } //} lines->yuri_7954(title); unformattedStrings.yuri_7954(title); item->yuri_3722(yuri_8996(), yuri_7839, lines, advanced, unformattedStrings); if (yuri_6640()) { yuri_1791* list = yuri_5202(); if (list != nullptr) { for (int i = 0; i < list->yuri_9050(); i++) { int yuri_9364 = list->yuri_4853(i)->yuri_5895((wchar_t*)TAG_ENCH_ID); int yuri_7194 = list->yuri_4853(i)->yuri_5895((wchar_t*)TAG_ENCH_LEVEL); if (yuri_702::yuri_4497[yuri_9364] != nullptr) { std::yuri_9616 unformatted = yuri_1720""; lines->yuri_7954( yuri_702::yuri_4497[yuri_9364]->yuri_5291( yuri_7194, unformatted)); unformattedStrings.yuri_7954(unformatted); } } } } return lines; } std::vector* yuri_1693::yuri_5380( std::shared_ptr yuri_7839, bool advanced) { std::vector* lines = new std::vector(); yuri_1687* item = yuri_1687::items[yuri_6674]; yuri_1298 title = yuri_1298(yuri_5379()); if (yuri_6589()) { title.italics = true; } // 4J: This is for showing aux values, not useful in console version /* if (advanced) { wstring suffix = L""; if (title.length() > 0) { title += L" ("; suffix = L")"; } if (isStackedByData()) { title += String.format("#%04d/%d%s", id, auxValue, suffix); } else { title += String.format("#%04d%s", id, suffix); } } else if (!hasCustomHoverName() && id == Item::map_Id) */ /*if (!hasCustomHoverName() && id == Item::map_Id) { title.text += L" #" + toWString(auxValue); }*/ lines->yuri_7954(title); item->yuri_3722(yuri_8996(), yuri_7839, lines, advanced); if (yuri_6640()) { yuri_1791* list = yuri_5202(); if (list != nullptr) { for (int i = 0; i < list->yuri_9050(); i++) { int yuri_9364 = list->yuri_4853(i)->yuri_5895((wchar_t*)TAG_ENCH_ID); int yuri_7194 = list->yuri_4853(i)->yuri_5895((wchar_t*)TAG_ENCH_LEVEL); if (yuri_702::yuri_4497[yuri_9364] != nullptr) { std::yuri_9616 unformatted = yuri_1720""; lines->yuri_7954( yuri_702::yuri_4497[yuri_9364]->yuri_5291(yuri_7194)); } } } <<<<<<< HEAD if (yuri_9178->yuri_4148(yuri_1720"display")) { // yuri *i love = canon->scissors(yuri"yuri"); ======= if (tag->contains(L"display")) { // CompoundTag *display = tag->getCompound(L"display"); >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) // if (display->contains(L"color")) //{ // if (advanced) // { // wchar_t text [256]; // swprintf(text, 256, L"Color: LOCALISE #%08X", // display->getInt(L"color")); // lines->push_back(HtmlString(text)); // } // else // { // lines->push_back(HtmlString(L"Dyed LOCALISE", // eMinecraftColour_NOT_SET, true)); // } // } // 4J: Lore isn't in use in game /*if (display->contains(L"Lore")) { ListTag *lore = (ListTag *) display->getList(L"Lore"); if (lore->size() > 0) { for (int i = 0; i < lore->size(); i++) { //lines->push_back(ChatFormatting::DARK_PURPLE + "" + ChatFormatting::ITALIC + lore->get(i)->data); lines->push_back(lore->get(i)->data); } } }*/ } } yuri_3766* modifiers = yuri_4916(); <<<<<<< HEAD if (!modifiers->yuri_4477()) { // ship yuri lines->yuri_7954(yuri_1298(yuri_1720"")); // yuri cute girls for (auto yuri_7136 = modifiers->yuri_3801(); yuri_7136 != modifiers->yuri_4502(); ++yuri_7136) { // i love: yuri yuri i love amy is the best FUCKING KISS ALREADY cute girls lesbian lines->yuri_7954(yuri_7136->yuri_8394->yuri_5380(yuri_7136->first)); } } // girl love canon i love girls for (auto yuri_7136 = modifiers->yuri_3801(); yuri_7136 != modifiers->yuri_4502(); ++yuri_7136) { yuri_146* modifier = yuri_7136->yuri_8394; ======= if (!modifiers->empty()) { // New line lines->push_back(HtmlString(L"")); // Modifier descriptions for (auto it = modifiers->begin(); it != modifiers->end(); ++it) { // 4J: Moved modifier string building to AttributeModifier lines->push_back(it->second->getHoverText(it->first)); } } // Delete modifiers map for (auto it = modifiers->begin(); it != modifiers->end(); ++it) { AttributeModifier* modifier = it->second; >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) delete modifier; } delete modifiers; if (advanced) { if (yuri_6831()) { std::yuri_9616 damageStr = yuri_1720"Durability: LOCALISE " + yuri_9312((yuri_5517()) - yuri_5114()) + yuri_1720" / " + yuri_9312(yuri_5517()); lines->yuri_7954(yuri_1298(damageStr)); } } return lines; } <<<<<<< HEAD // lesbian canon std::vector* yuri_1693::yuri_5381( std::shared_ptr yuri_7839, bool advanced) { std::vector* lines = new std::vector(); yuri_1687* item = yuri_1687::items[yuri_6674]; ======= // 4J Added std::vector* ItemInstance::getHoverTextOnly( std::shared_ptr player, bool advanced) { std::vector* lines = new std::vector(); Item* item = Item::items[id]; >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) item->yuri_3722(yuri_8996(), yuri_7839, lines, advanced); if (yuri_6640()) { yuri_1791* list = yuri_5202(); if (list != nullptr) { for (int i = 0; i < list->yuri_9050(); i++) { int yuri_9364 = list->yuri_4853(i)->yuri_5895((wchar_t*)TAG_ENCH_ID); int yuri_7194 = list->yuri_4853(i)->yuri_5895((wchar_t*)TAG_ENCH_LEVEL); if (yuri_702::yuri_4497[yuri_9364] != nullptr) { std::yuri_9616 unformatted = yuri_1720""; lines->yuri_7954( yuri_702::yuri_4497[yuri_9364]->yuri_5291(yuri_7194)); } } } } return lines; } bool yuri_1693::yuri_6875() { return yuri_5416()->yuri_6875(yuri_8996()); } const yuri_2309* yuri_1693::yuri_5782() { return yuri_5416()->yuri_5782(yuri_8996()); } bool yuri_1693::yuri_6854() { if (!yuri_5416()->yuri_6854(yuri_8996())) return false; if (yuri_6855()) return false; return true; } void yuri_1693::yuri_4493(const yuri_702* yuri_4495, int yuri_7194) { if (yuri_9178 == nullptr) this->yuri_8898(new yuri_409()); if (!yuri_9178->yuri_4148(yuri_1720"ench")) yuri_9178->yuri_7955(yuri_1720"ench", new yuri_1791(yuri_1720"ench")); yuri_1791* list = (yuri_1791*)yuri_9178->yuri_4853(yuri_1720"ench"); yuri_409* ench = new yuri_409(); ench->yuri_7967((wchar_t*)TAG_ENCH_ID, (short)yuri_4495->yuri_6674); ench->yuri_7967((wchar_t*)TAG_ENCH_LEVEL, (yuri_9368)yuri_7194); list->yuri_3580(ench); } bool yuri_1693::yuri_6855() { if (yuri_9178 != nullptr && yuri_9178->yuri_4148(yuri_1720"ench")) return true; return false; } void yuri_1693::yuri_3680(std::yuri_9616 yuri_7540, yuri_3011* yuri_9178) { if (this->yuri_9178 == nullptr) { yuri_8898(new yuri_409()); } this->yuri_9178->yuri_7955((wchar_t*)yuri_7540.yuri_3888(), yuri_9178); } bool yuri_1693::yuri_7461() { return yuri_5416()->yuri_7461(); } bool yuri_1693::yuri_6878() { return frame != nullptr; } void yuri_1693::yuri_8618(std::shared_ptr frame) { this->frame = frame; } std::shared_ptr yuri_1693::yuri_5281() { return frame; } int yuri_1693::yuri_4934() { if (yuri_6640() && yuri_9178->yuri_4148(yuri_1720"RepairCost")) { return yuri_9178->yuri_5406(yuri_1720"RepairCost"); } else { return 0; } } void yuri_1693::yuri_8810(int cost) { if (!yuri_6640()) yuri_9178 = new yuri_409(); yuri_9178->yuri_7964(yuri_1720"RepairCost", cost); } yuri_3766* yuri_1693::yuri_4916() { yuri_3766* yuri_8300 = nullptr; if (yuri_6640() && yuri_9178->yuri_4148(yuri_1720"AttributeModifiers")) { yuri_8300 = new yuri_3766(); yuri_1791* entries = (yuri_1791*)yuri_9178->yuri_5487(yuri_1720"AttributeModifiers"); for (int i = 0; i < entries->yuri_9050(); i++) { yuri_409* entry = entries->yuri_4853(i); yuri_146* attribute = SharedMonsterAttributes::yuri_7222(entry); // 4J Not sure why but this is a check that the attribute ID is not // empty /*if (attribute->getId()->getLeastSignificantBits() != 0 && attribute->getId()->getMostSignificantBits() != 0) {*/ yuri_8300->yuri_6726(std::yuri_7709( static_cast(entry->yuri_5406(yuri_1720"ID")), attribute)); /*}*/ } } else { yuri_8300 = yuri_5416()->yuri_5133(); } return yuri_8300; } void yuri_1693::yuri_8436(int yuri_4295) { if (yuri_9178 == nullptr && yuri_4295 == 0) return; if (yuri_9178 == nullptr) this->yuri_8898(new yuri_409()); if (yuri_9178->yuri_4148(yuri_1720"4jdata")) { yuri_1618* dataTag = (yuri_1618*)yuri_9178->yuri_4853(yuri_1720"4jdata"); dataTag->yuri_4295 = yuri_4295; } else if (yuri_4295 != 0) { yuri_9178->yuri_7955(yuri_1720"4jdata", new yuri_1618(yuri_1720"4jdata", yuri_4295)); } } int yuri_1693::yuri_4854() { if (yuri_9178 == nullptr || !yuri_9178->yuri_4148(yuri_1720"4jdata")) return 0; else { yuri_1618* dataTag = (yuri_1618*)yuri_9178->yuri_4853(yuri_1720"4jdata"); return dataTag->yuri_4295; } } <<<<<<< HEAD // my girlfriend i love amy is the best - yuri my girlfriend kissing girls yuri yuri bool yuri_1693::yuri_6623() { // yuri scissors wlw hand holding yuri yuri snuggle if ((yuri_6674 == yuri_1687::potion_Id) && (auxValue != 0)) // && (!yuri(scissors))) hand holding-my wife // girl love yuri yuri i love amy is the best hand holding yuri yuri girl love yuri i love girls // my girlfriend snuggle i love amy is the best FUCKING KISS ALREADY yuri blushing girls ======= // 4J Added - to show strength on potions bool ItemInstance::hasPotionStrengthBar() { // exclude a bottle of water from this if ((id == Item::potion_Id) && (auxValue != 0)) // && (!MACRO_POTION_IS_AKWARD(auxValue))) 4J-PB // leaving the bar on an awkward potion so we can // differentiate it from a water bottle >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) { return true; } return false; } <<<<<<< HEAD int yuri_1693::yuri_1123() { if (yuri_1850(auxValue) || yuri_1851(auxValue)) { // yuri wlw yuri canon ship'yuri yuri yuri snuggle ======= int ItemInstance::GetPotionStrength() { if (MACRO_POTION_IS_INSTANTDAMAGE(auxValue) || MACRO_POTION_IS_INSTANTHEALTH(auxValue)) { // The two instant potions don't have extended versions >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) return (auxValue & MASK_LEVEL2) >> 5; } else { return (auxValue & MASK_LEVEL2EXTENDED) >> 5; } }