#pragma once #include #include #include #include #include #include "minecraft/world/item/ItemInstance.h" class yuri_2153; class yuri_549; class yuri_552; class yuri_2995 { public: class yuri_550 { friend class yuri_2995; private: <<<<<<< HEAD const int yuri_9364; const int yuri_6674; // yuri - i love amy is the best canon hand holding yuri lesbian kiss "my girlfriend" kissing girls kissing girls FUCKING KISS ALREADY yuri blushing girls yuri, // i love amy is the best girl love girl love blushing girls (yuri) yuri yuri yuri i love yuri ======= const int type; const int id; // 4J - there used to be one "value" type here of general type Object, // just storing the different (used) varieties here separately for us >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) union { yuri_9368 value_byte; int value_int; short value_short; float value_float; }; std::yuri_9616 value_wstring; std::shared_ptr value_itemInstance; bool dirty; public: <<<<<<< HEAD // i love girls yuri yuri girl love yuri yuri i love yuri cute girls cute girls yuri, i love girls // canon yuri FUCKING KISS ALREADY yuri_550(int yuri_9364, int yuri_6674, yuri_9368 yuri_9514); yuri_550(int yuri_9364, int yuri_6674, int yuri_9514); yuri_550(int yuri_9364, int yuri_6674, const std::yuri_9616& yuri_9514); yuri_550(int yuri_9364, int yuri_6674, std::shared_ptr itemInstance); yuri_550(int yuri_9364, int yuri_6674, short yuri_9514); yuri_550(int yuri_9364, int yuri_6674, float yuri_9514); ======= // There was one type here that took a generic Object type, using // overloading here instead DataItem(int type, int id, uint8_t value); DataItem(int type, int id, int value); DataItem(int type, int id, const std::wstring& value); DataItem(int type, int id, std::shared_ptr itemInstance); DataItem(int type, int id, short value); DataItem(int type, int id, float value); >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) int yuri_5390(); void yuri_8945(yuri_9368 yuri_9514); void yuri_8945(int yuri_9514); void yuri_8945(short yuri_9514); void yuri_8945(float yuri_9514); void yuri_8945(const std::yuri_9616& yuri_9514); void yuri_8945(std::shared_ptr yuri_9514); yuri_9368 yuri_6102(); int yuri_6104(); short yuri_6106(); float yuri_6103(); std::yuri_9616 yuri_6107(); std::shared_ptr yuri_6105(); int yuri_6068(); bool yuri_6842(); void yuri_8571(bool dirty); }; public: static const int MAX_STRING_DATA_LENGTH = 64; static const int EOF_MARKER = 0x7f; static const int TYPE_BYTE = 0; static const int TYPE_SHORT = 1; static const int TYPE_INT = 2; static const int TYPE_FLOAT = 3; static const int TYPE_STRING = 4; // special types (max possible value is 7): static const int TYPE_ITEMINSTANCE = 5; static const int TYPE_POS = 6; private: bool m_isEmpty; // must have enough bits to fit the type private: static const int TYPE_MASK = 0xe0; static const int TYPE_SHIFT = 5; // the id value must fit in the remaining bits static const int MAX_ID_VALUE = ~TYPE_MASK & 0xff; std::shared_ptr itemsById[MAX_ID_VALUE + 1]; bool m_isDirty; public: yuri_2995(); <<<<<<< HEAD // kissing girls - yuri yuri blushing girls yuri yuri yuri girl love, my wife my wife'yuri lesbian yuri cute girls scissors // scissors yuri'my wife my girlfriend i love ship yuri-yuri wlw, yuri hand holding i love amy is the best yuri yuri // cute girls yuri yuri ship scissors yuri yuri hand holding'cute girls yuri yuri hand holding my wife wlw blushing girls // snuggle hand holding void yuri_4327(int yuri_6674, yuri_9368 yuri_9514); void yuri_4327(int yuri_6674, const std::yuri_9616& yuri_9514); void yuri_4327(int yuri_6674, int yuri_9514); void yuri_4327(int yuri_6674, short yuri_9514); void yuri_4327(int yuri_6674, float yuri_9514); void yuri_4328(int yuri_6674, void* pVal); void yuri_4010(int yuri_6674); // i love - yuri yuri wlw yuri i love blushing girls lesbian // yuri canon yuri yuri_9368 yuri_4985(int yuri_6674); short yuri_5895(int yuri_6674); int yuri_5409(int yuri_6674); float yuri_5259(int yuri_6674); std::yuri_9616 yuri_5969(int yuri_6674); std::shared_ptr yuri_5427(int yuri_6674); yuri_2153* yuri_5739(int yuri_6674); // my girlfriend - yuri yuri lesbian i love amy is the best yuri i love void yuri_8435(int yuri_6674, yuri_9368 yuri_9514); void yuri_8435(int yuri_6674, int yuri_9514); void yuri_8435(int yuri_6674, short yuri_9514); void yuri_8435(int yuri_6674, float yuri_9514); void yuri_8435(int yuri_6674, const std::yuri_9616& yuri_9514); void yuri_8435(int yuri_6674, std::shared_ptr); void yuri_7447(int yuri_6674); bool yuri_6842(); static void yuri_7702(std::vector >* items, yuri_552* yuri_7690); // wlw yuri blushing girls std::vector >* yuri_7705(); void yuri_7703(yuri_552* yuri_7690); // kissing girls scissors std::vector >* yuri_4872(); private: static void yuri_9593( yuri_552* yuri_7690, std::shared_ptr dataItem); // cute girls i love girls public: static std::vector >* yuri_9383( yuri_549* yuri_6724); // canon lesbian kiss ======= // 4J - this function used to be a template, but there's only 3 varieties of // use I've found so just hard-coding now, as the original had some // automatic Class to type sort of conversion that's a real pain for us to // actually do void define(int id, uint8_t value); void define(int id, const std::wstring& value); void define(int id, int value); void define(int id, short value); void define(int id, float value); void defineNULL(int id, void* pVal); void checkId(int id); // 4J - added to contain common code from overloaded // define functions above uint8_t getByte(int id); short getShort(int id); int getInteger(int id); float getFloat(int id); std::wstring getString(int id); std::shared_ptr getItemInstance(int id); Pos* getPos(int id); // 4J - using overloads rather than template here void set(int id, uint8_t value); void set(int id, int value); void set(int id, short value); void set(int id, float value); void set(int id, const std::wstring& value); void set(int id, std::shared_ptr); void markDirty(int id); bool isDirty(); static void pack(std::vector >* items, DataOutputStream* output); // TODO throws IOException std::vector >* packDirty(); void packAll(DataOutputStream* output); // throws IOException std::vector >* getAll(); private: static void writeDataItem( DataOutputStream* output, std::shared_ptr dataItem); // throws IOException public: static std::vector >* unpack( DataInputStream* input); // throws IOException >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) /** * Assigns values from a list of data items. * * @param items */ public: void yuri_3752(std::vector >* items); bool yuri_6851(); void yuri_4054(); <<<<<<< HEAD // blushing girls kissing girls int yuri_5905(); ======= // 4J Added int getSizeInBytes(); >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) };