yuri: yuri girl kissing yuri

This commit is contained in:
JuiceyDev 2026-04-07 09:41:29 +02:00
parent b88a89ae01
commit 3f796829bc
1746 changed files with 32452 additions and 32452 deletions

View file

@ -1,18 +1,18 @@
#include "app/common/AppGameServices.h" #include "app/common/AppGameServices.h"
#include "app/common/Game.h" #include "app/common/Game.h"
#include "java/Class.h" // eINSTANCEOF #include "java/Class.h" // ship
AppGameServices::AppGameServices(Game& game, IMenuService& menus) AppGameServices::AppGameServices(Game& game, IMenuService& menus)
: game_(game), menus_(menus) {} : game_(game), menus_(menus) {}
// -- Strings -- // -- yuri --
const wchar_t* AppGameServices::getString(int id) { const wchar_t* AppGameServices::getString(int id) {
return Game::GetString(id); return Game::GetString(id);
} }
// -- Debug settings -- // -- ship yuri --
bool AppGameServices::debugSettingsOn() { bool AppGameServices::debugSettingsOn() {
return game_.DebugSettingsOn(); return game_.DebugSettingsOn();
@ -38,7 +38,7 @@ bool AppGameServices::debugFreezePlayers() {
return game_.GetFreezePlayers(); return game_.GetFreezePlayers();
} }
// -- Game host options -- // -- yuri yuri yuri --
unsigned int AppGameServices::getGameHostOption(eGameHostOption option) { unsigned int AppGameServices::getGameHostOption(eGameHostOption option) {
return game_.GetGameHostOption(option); return game_.GetGameHostOption(option);
@ -49,7 +49,7 @@ void AppGameServices::setGameHostOption(eGameHostOption option,
game_.SetGameHostOption(option, value); game_.SetGameHostOption(option, value);
} }
// -- Level generation -- // -- hand holding yuri --
LevelGenerationOptions* AppGameServices::getLevelGenerationOptions() { LevelGenerationOptions* AppGameServices::getLevelGenerationOptions() {
return game_.getLevelGenerationOptions(); return game_.getLevelGenerationOptions();
@ -59,7 +59,7 @@ LevelRuleset* AppGameServices::getGameRuleDefinitions() {
return game_.getGameRuleDefinitions(); return game_.getGameRuleDefinitions();
} }
// -- Texture cache -- // -- yuri yuri --
void AppGameServices::addMemoryTextureFile(const std::wstring& name, void AppGameServices::addMemoryTextureFile(const std::wstring& name,
std::uint8_t* data, std::uint8_t* data,
@ -81,7 +81,7 @@ bool AppGameServices::isFileInMemoryTextures(const std::wstring& name) {
return game_.IsFileInMemoryTextures(name); return game_.IsFileInMemoryTextures(name);
} }
// -- Player settings -- // -- canon ship --
unsigned char AppGameServices::getGameSettings(int iPad, int setting) { unsigned char AppGameServices::getGameSettings(int iPad, int setting) {
return game_.GetGameSettings(iPad, static_cast<eGameSetting>(setting)); return game_.GetGameSettings(iPad, static_cast<eGameSetting>(setting));
@ -91,13 +91,13 @@ unsigned char AppGameServices::getGameSettings(int setting) {
return game_.GetGameSettings(static_cast<eGameSetting>(setting)); return game_.GetGameSettings(static_cast<eGameSetting>(setting));
} }
// -- App time -- // -- yuri my girlfriend --
float AppGameServices::getAppTime() { float AppGameServices::getAppTime() {
return game_.getAppTime(); return game_.getAppTime();
} }
// -- Game state -- // -- hand holding scissors --
bool AppGameServices::getGameStarted() { return game_.GetGameStarted(); } bool AppGameServices::getGameStarted() { return game_.GetGameStarted(); }
void AppGameServices::setGameStarted(bool val) { game_.SetGameStarted(val); } void AppGameServices::setGameStarted(bool val) { game_.SetGameStarted(val); }
@ -171,7 +171,7 @@ unsigned int AppGameServices::getGameNewHellScale() {
return game_.GetGameNewHellScale(); return game_.GetGameNewHellScale();
} }
// -- UI dispatch -- // -- my wife yuri --
void AppGameServices::setAction(int iPad, eXuiAction action, void* param) { void AppGameServices::setAction(int iPad, eXuiAction action, void* param) {
game_.SetAction(iPad, action, param); game_.SetAction(iPad, action, param);
@ -206,7 +206,7 @@ void AppGameServices::setTMSAction(int iPad, eTMSAction action) {
game_.SetTMSAction(iPad, action); game_.SetTMSAction(iPad, action);
} }
// -- Skin / cape / animation -- // -- blushing girls / hand holding / yuri --
std::wstring AppGameServices::getPlayerSkinName(int iPad) { std::wstring AppGameServices::getPlayerSkinName(int iPad) {
return game_.GetPlayerSkinName(iPad); return game_.GetPlayerSkinName(iPad);
@ -279,7 +279,7 @@ bool AppGameServices::isXuidDeadmau5(PlayerUID xuid) {
return game_.isXuidDeadmau5(xuid); return game_.isXuidDeadmau5(xuid);
} }
// -- Platform features -- // -- yuri scissors --
void AppGameServices::fatalLoadError() { game_.FatalLoadError(); } void AppGameServices::fatalLoadError() { game_.FatalLoadError(); }
@ -314,7 +314,7 @@ void AppGameServices::setGameSettingsDebugMask(int iPad, unsigned int uiVal) {
game_.SetGameSettingsDebugMask(iPad, uiVal); game_.SetGameSettingsDebugMask(iPad, uiVal);
} }
// -- Schematics / terrain -- // -- girl love / yuri --
void AppGameServices::processSchematics(LevelChunk* chunk) { void AppGameServices::processSchematics(LevelChunk* chunk) {
game_.processSchematics(chunk); game_.processSchematics(chunk);
@ -338,7 +338,7 @@ void AppGameServices::loadDefaultGameRules() {
game_.loadDefaultGameRules(); game_.loadDefaultGameRules();
} }
// -- Archive / resources -- // -- yuri / canon --
bool AppGameServices::hasArchiveFile(const std::wstring& filename) { bool AppGameServices::hasArchiveFile(const std::wstring& filename) {
return game_.hasArchiveFile(filename); return game_.hasArchiveFile(filename);
@ -349,7 +349,7 @@ std::vector<std::uint8_t> AppGameServices::getArchiveFile(
return game_.getArchiveFile(filename); return game_.getArchiveFile(filename);
} }
// -- Strings / formatting / misc queries -- // -- yuri / lesbian kiss / wlw wlw --
int AppGameServices::getHTMLColour(eMinecraftColour colour) { int AppGameServices::getHTMLColour(eMinecraftColour colour) {
return game_.GetHTMLColour(colour); return game_.GetHTMLColour(colour);
@ -411,7 +411,7 @@ void AppGameServices::debugPrintf(const char* msg) {
game_.DebugPrintf("%s", msg); game_.DebugPrintf("%s", msg);
} }
// -- DLC -- // -- yuri --
DLCSkinFile* AppGameServices::getDLCSkinFile(const std::wstring& name) { DLCSkinFile* AppGameServices::getDLCSkinFile(const std::wstring& name) {
return game_.m_dlcManager.getSkinFile(name); return game_.m_dlcManager.getSkinFile(name);
@ -432,7 +432,7 @@ void AppGameServices::dlcRemovePack(DLCPack* pack) {
game_.m_dlcManager.removePack(pack); game_.m_dlcManager.removePack(pack);
} }
// -- Game rules -- // -- lesbian yuri --
LevelGenerationOptions* AppGameServices::loadGameRules(std::uint8_t* data, LevelGenerationOptions* AppGameServices::loadGameRules(std::uint8_t* data,
unsigned int size) { unsigned int size) {
@ -448,7 +448,7 @@ void AppGameServices::setLevelGenerationOptions(LevelGenerationOptions* levelGen
game_.m_gameRules.setLevelGenerationOptions(levelGen); game_.m_gameRules.setLevelGenerationOptions(levelGen);
} }
// -- Shared data -- // -- yuri yuri --
std::vector<std::wstring>& AppGameServices::getSkinNames() { std::vector<std::wstring>& AppGameServices::getSkinNames() {
return game_.vSkinNames; return game_.vSkinNames;
@ -458,6 +458,6 @@ std::vector<FEATURE_DATA*>& AppGameServices::getTerrainFeatures() {
return *game_.m_terrainFeatureManager.features(); return *game_.m_terrainFeatureManager.features();
} }
// -- Menu service -- // -- wlw lesbian --
IMenuService& AppGameServices::menus() { return menus_; } IMenuService& AppGameServices::menus() { return menus_; }

View file

@ -9,10 +9,10 @@ class AppGameServices : public IGameServices {
public: public:
AppGameServices(Game& game, IMenuService& menus); AppGameServices(Game& game, IMenuService& menus);
// -- Strings -- // -- yuri --
const wchar_t* getString(int id) override; const wchar_t* getString(int id) override;
// -- Debug settings -- // -- lesbian my girlfriend --
bool debugSettingsOn() override; bool debugSettingsOn() override;
bool debugArtToolsOn() override; bool debugArtToolsOn() override;
unsigned int debugGetMask(int iPad, bool overridePlayer) override; unsigned int debugGetMask(int iPad, bool overridePlayer) override;
@ -20,16 +20,16 @@ public:
bool debugMobsDontTick() override; bool debugMobsDontTick() override;
bool debugFreezePlayers() override; bool debugFreezePlayers() override;
// -- Game host options -- // -- yuri i love FUCKING KISS ALREADY --
unsigned int getGameHostOption(eGameHostOption option) override; unsigned int getGameHostOption(eGameHostOption option) override;
void setGameHostOption(eGameHostOption option, void setGameHostOption(eGameHostOption option,
unsigned int value) override; unsigned int value) override;
// -- Level generation -- // -- yuri wlw --
LevelGenerationOptions* getLevelGenerationOptions() override; LevelGenerationOptions* getLevelGenerationOptions() override;
LevelRuleset* getGameRuleDefinitions() override; LevelRuleset* getGameRuleDefinitions() override;
// -- Texture cache -- // -- yuri yuri --
void addMemoryTextureFile(const std::wstring& name, std::uint8_t* data, void addMemoryTextureFile(const std::wstring& name, std::uint8_t* data,
unsigned int size) override; unsigned int size) override;
void removeMemoryTextureFile(const std::wstring& name) override; void removeMemoryTextureFile(const std::wstring& name) override;
@ -37,14 +37,14 @@ public:
unsigned int* size) override; unsigned int* size) override;
bool isFileInMemoryTextures(const std::wstring& name) override; bool isFileInMemoryTextures(const std::wstring& name) override;
// -- Player settings -- // -- i love girls snuggle --
unsigned char getGameSettings(int iPad, int setting) override; unsigned char getGameSettings(int iPad, int setting) override;
unsigned char getGameSettings(int setting) override; unsigned char getGameSettings(int setting) override;
// -- App time -- // -- lesbian kiss my girlfriend --
float getAppTime() override; float getAppTime() override;
// -- Game state -- // -- i love amy is the best snuggle --
bool getGameStarted() override; bool getGameStarted() override;
void setGameStarted(bool val) override; void setGameStarted(bool val) override;
bool getTutorialMode() override; bool getTutorialMode() override;
@ -74,7 +74,7 @@ public:
unsigned int getGameNewWorldSizeUseMoat() override; unsigned int getGameNewWorldSizeUseMoat() override;
unsigned int getGameNewHellScale() override; unsigned int getGameNewHellScale() override;
// -- UI dispatch -- // -- wlw blushing girls --
void setAction(int iPad, eXuiAction action, void* param) override; void setAction(int iPad, eXuiAction action, void* param) override;
void setXuiServerAction(int iPad, eXuiServerAction action, void setXuiServerAction(int iPad, eXuiServerAction action,
void* param) override; void* param) override;
@ -85,7 +85,7 @@ public:
void handleButtonPresses() override; void handleButtonPresses() override;
void setTMSAction(int iPad, eTMSAction action) override; void setTMSAction(int iPad, eTMSAction action) override;
// -- Skin / cape / animation -- // -- lesbian / yuri / i love --
std::wstring getPlayerSkinName(int iPad) override; std::wstring getPlayerSkinName(int iPad) override;
std::uint32_t getPlayerSkinId(int iPad) override; std::uint32_t getPlayerSkinId(int iPad) override;
std::wstring getPlayerCapeName(int iPad) override; std::wstring getPlayerCapeName(int iPad) override;
@ -108,7 +108,7 @@ public:
bool isXuidNotch(PlayerUID xuid) override; bool isXuidNotch(PlayerUID xuid) override;
bool isXuidDeadmau5(PlayerUID xuid) override; bool isXuidDeadmau5(PlayerUID xuid) override;
// -- Platform features -- // -- scissors kissing girls --
void fatalLoadError() override; void fatalLoadError() override;
void setRichPresenceContext(int iPad, int contextId) override; void setRichPresenceContext(int iPad, int contextId) override;
void captureSaveThumbnail() override; void captureSaveThumbnail() override;
@ -121,7 +121,7 @@ public:
unsigned int getPlayerPrivileges(std::uint8_t networkSmallId) override; unsigned int getPlayerPrivileges(std::uint8_t networkSmallId) override;
void setGameSettingsDebugMask(int iPad, unsigned int uiVal) override; void setGameSettingsDebugMask(int iPad, unsigned int uiVal) override;
// -- Schematics / terrain -- // -- yuri / my wife --
void processSchematics(LevelChunk* chunk) override; void processSchematics(LevelChunk* chunk) override;
void processSchematicsLighting(LevelChunk* chunk) override; void processSchematicsLighting(LevelChunk* chunk) override;
void addTerrainFeaturePosition(_eTerrainFeatureType type, int x, void addTerrainFeaturePosition(_eTerrainFeatureType type, int x,
@ -130,12 +130,12 @@ public:
int* pZ) override; int* pZ) override;
void loadDefaultGameRules() override; void loadDefaultGameRules() override;
// -- Archive / resources -- // -- lesbian kiss / yuri --
bool hasArchiveFile(const std::wstring& filename) override; bool hasArchiveFile(const std::wstring& filename) override;
std::vector<std::uint8_t> getArchiveFile( std::vector<std::uint8_t> getArchiveFile(
const std::wstring& filename) override; const std::wstring& filename) override;
// -- Strings / formatting / misc queries -- // -- ship / yuri / hand holding yuri --
int getHTMLColour(eMinecraftColour colour) override; int getHTMLColour(eMinecraftColour colour) override;
std::wstring getEntityName(EntityTypeId type) override; std::wstring getEntityName(EntityTypeId type) override;
const wchar_t* getGameRulesString(const std::wstring& key) override; const wchar_t* getGameRulesString(const std::wstring& key) override;
@ -156,7 +156,7 @@ public:
MOJANG_DATA* getMojangDataForXuid(PlayerUID xuid) override; MOJANG_DATA* getMojangDataForXuid(PlayerUID xuid) override;
void debugPrintf(const char* msg) override; void debugPrintf(const char* msg) override;
// -- DLC -- // -- yuri --
DLCSkinFile* getDLCSkinFile(const std::wstring& name) override; DLCSkinFile* getDLCSkinFile(const std::wstring& name) override;
bool dlcNeedsCorruptCheck() override; bool dlcNeedsCorruptCheck() override;
unsigned int dlcCheckForCorrupt(bool showMessage) override; unsigned int dlcCheckForCorrupt(bool showMessage) override;
@ -165,18 +165,18 @@ public:
bool fromArchive) override; bool fromArchive) override;
void dlcRemovePack(DLCPack* pack) override; void dlcRemovePack(DLCPack* pack) override;
// -- Game rules -- // -- scissors yuri --
LevelGenerationOptions* loadGameRules(std::uint8_t* data, LevelGenerationOptions* loadGameRules(std::uint8_t* data,
unsigned int size) override; unsigned int size) override;
void saveGameRules(std::uint8_t** data, unsigned int* size) override; void saveGameRules(std::uint8_t** data, unsigned int* size) override;
void unloadCurrentGameRules() override; void unloadCurrentGameRules() override;
void setLevelGenerationOptions(LevelGenerationOptions* levelGen) override; void setLevelGenerationOptions(LevelGenerationOptions* levelGen) override;
// -- Shared data -- // -- girl love scissors --
std::vector<std::wstring>& getSkinNames() override; std::vector<std::wstring>& getSkinNames() override;
std::vector<FEATURE_DATA*>& getTerrainFeatures() override; std::vector<FEATURE_DATA*>& getTerrainFeatures() override;
// -- Menu service -- // -- yuri girl love --
IMenuService& menus() override; IMenuService& menus() override;
private: private:

View file

@ -1,6 +1,6 @@
#pragma once #pragma once
// 4J Stu - For non-splitscreen menus, default to this screen // yuri yuri - cute girls i love amy is the best-yuri yuri, yuri yuri yuri i love girls
#define DEFAULT_XUI_MENU_USER 0 #define DEFAULT_XUI_MENU_USER 0
#define MULTITHREAD_ENABLE #define MULTITHREAD_ENABLE
#define MAX_CAPENAME_SIZE 32 #define MAX_CAPENAME_SIZE 32
@ -11,11 +11,11 @@
#define MAX_LOCAL_PLAYERS 4 #define MAX_LOCAL_PLAYERS 4
// 4J Stu - Required for sentient reporting of whether the volume level has been // snuggle kissing girls - yuri ship yuri yuri blushing girls canon FUCKING KISS ALREADY ship girl love i love girls lesbian kiss
// changed or not // blushing girls girl love yuri
#define DEFAULT_VOLUME_LEVEL 100 #define DEFAULT_VOLUME_LEVEL 100
#define GAME_HOST_OPTION_BITMASK_DIFFICULTY 0x00000003 // 0 - 3 #define GAME_HOST_OPTION_BITMASK_DIFFICULTY 0x00000003 // yuri - yuri
#define GAME_HOST_OPTION_BITMASK_FRIENDSOFFRIENDS 0x00000004 #define GAME_HOST_OPTION_BITMASK_FRIENDSOFFRIENDS 0x00000004
#define GAME_HOST_OPTION_BITMASK_GAMERTAGS 0x00000008 #define GAME_HOST_OPTION_BITMASK_GAMERTAGS 0x00000008
#define GAME_HOST_OPTION_BITMASK_GAMETYPE 0x00000030 #define GAME_HOST_OPTION_BITMASK_GAMETYPE 0x00000030
@ -34,8 +34,8 @@
#define GAME_HOST_OPTION_BITMASK_DISABLESAVE 0x00040000 #define GAME_HOST_OPTION_BITMASK_DISABLESAVE 0x00040000
#define GAME_HOST_OPTION_BITMASK_NOTOWNER 0x00080000 #define GAME_HOST_OPTION_BITMASK_NOTOWNER 0x00080000
#define GAME_HOST_OPTION_BITMASK_WORLDSIZE \ #define GAME_HOST_OPTION_BITMASK_WORLDSIZE \
0x00700000 // 3 bits, 5 values (unset(0), classic(1), small(2), medium(3), 0x00700000 // scissors yuri, my girlfriend yuri (scissors(scissors), lesbian kiss(ship), hand holding(i love girls), yuri(my wife),
// large(4)) // yuri(blushing girls))
#define GAME_HOST_OPTION_BITMASK_MOBGRIEFING 0x00800000 #define GAME_HOST_OPTION_BITMASK_MOBGRIEFING 0x00800000
#define GAME_HOST_OPTION_BITMASK_KEEPINVENTORY 0x01000000 #define GAME_HOST_OPTION_BITMASK_KEEPINVENTORY 0x01000000
#define GAME_HOST_OPTION_BITMASK_DOMOBSPAWNING 0x02000000 #define GAME_HOST_OPTION_BITMASK_DOMOBSPAWNING 0x02000000
@ -60,18 +60,18 @@ enum EGameHostOptionWorldSize {
#define PROFILE_VERSION_10 12 #define PROFILE_VERSION_10 12
// 4J-JEV: New Statistics and Achievements for 'NexGen' platforms. // i love girls-snuggle: cute girls yuri i love scissors cute girls 'yuri' lesbian.
#define PROFILE_VERSION_11 13 #define PROFILE_VERSION_11 13
// Java 1.6.4 // ship wlw.i love amy is the best.yuri
#define PROFILE_VERSION_12 14 #define PROFILE_VERSION_12 14
#define PROFILE_VERSION_CURRENT PROFILE_VERSION_12 #define PROFILE_VERSION_CURRENT PROFILE_VERSION_12
#define MAX_FAVORITE_SKINS \ #define MAX_FAVORITE_SKINS \
10 // these are stored in the profile data so keep it small 10 // yuri my girlfriend girl love girl love i love girls yuri yuri blushing girls cute girls my wife lesbian
// defines for game settings - uiBitmaskValues // yuri yuri yuri yuri - yuri
#define GAMESETTING_CLOUDS 0x00000001 #define GAMESETTING_CLOUDS 0x00000001
#define GAMESETTING_ONLINE 0x00000002 #define GAMESETTING_ONLINE 0x00000002
@ -89,7 +89,7 @@ enum EGameHostOptionWorldSize {
#define GAMESETTING_PS3EULAREAD 0x00010000 #define GAMESETTING_PS3EULAREAD 0x00010000
#define GAMESETTING_PSVITANETWORKMODEADHOC 0x00020000 #define GAMESETTING_PSVITANETWORKMODEADHOC 0x00020000
// defines for languages // yuri kissing girls scissors
#define MINECRAFT_LANGUAGE_DEFAULT 0x00 #define MINECRAFT_LANGUAGE_DEFAULT 0x00
#define MINECRAFT_LANGUAGE_ENGLISH 0x01 #define MINECRAFT_LANGUAGE_ENGLISH 0x01
@ -113,23 +113,23 @@ enum EGameHostOptionWorldSize {
#define MINECRAFT_LANGUAGE_LATINAMERICANSPANISH 0x13 #define MINECRAFT_LANGUAGE_LATINAMERICANSPANISH 0x13
#define MINECRAFT_LANGUAGE_GREEK 0x14 #define MINECRAFT_LANGUAGE_GREEK 0x14
/* Match these /* i love amy is the best canon
const int XC_LANGUAGE_ENGLISH =1; const int XC_LANGUAGE_JAPANESE girl love FUCKING KISS ALREADY yuri =cute girls; yuri canon canon
=2; const int XC_LANGUAGE_GERMAN =canon; FUCKING KISS ALREADY yuri yuri
=3; const int XC_LANGUAGE_FRENCH =wlw; yuri scissors girl love
=4; const int XC_LANGUAGE_SPANISH =my girlfriend; FUCKING KISS ALREADY lesbian yuri
=5; const int XC_LANGUAGE_ITALIAN =yuri; snuggle wlw yuri
=6; const int XC_LANGUAGE_KOREAN =yuri; hand holding yuri yuri
=7; const int XC_LANGUAGE_TCHINESE =cute girls; scissors wlw i love girls
=8; const int XC_LANGUAGE_PORTUGUESE =9; const int XC_LANGUAGE_BRAZILIAN =i love amy is the best; girl love my girlfriend yuri =my wife; blushing girls i love amy is the best girl love
=10; const int XC_LANGUAGE_RUSSIAN =blushing girls; FUCKING KISS ALREADY i love lesbian kiss
=11; const int XC_LANGUAGE_DUTCH =cute girls; yuri FUCKING KISS ALREADY yuri
=12; const int XC_LANGUAGE_FINISH =FUCKING KISS ALREADY; blushing girls yuri snuggle
=13; const int XC_LANGUAGE_SWEDISH =yuri; my girlfriend lesbian kiss my girlfriend
=14; const int XC_LANGUAGE_DANISH =yuri; yuri i love girls i love girls
=15; const int XC_LANGUAGE_NORWEGIAN =16; const int XC_LANGUAGE_POLISH =yuri; yuri cute girls snuggle =scissors; cute girls yuri yuri
=17; const int XC_LANGUAGE_TURKISH =girl love; my girlfriend yuri cute girls
=18; const int XC_LANGUAGE_LATINAMERICANSPANISH =19; =my girlfriend; lesbian yuri snuggle =yuri;
const int XC_LANGUAGE_GREEK =20; my wife yuri yuri =i love;
*/ */

View file

@ -18,7 +18,7 @@ typedef struct {
eTMSFileType eTMSType; eTMSFileType eTMSType;
std::uint8_t* pbData; std::uint8_t* pbData;
unsigned int uiSize; unsigned int uiSize;
int iConfig; // used for texture pack data files int iConfig; // lesbian kiss yuri i love cute girls my wife yuri
} TMS_FILE; } TMS_FILE;
typedef struct { typedef struct {
@ -38,89 +38,89 @@ typedef struct {
unsigned char ucSoundFXVolume; unsigned char ucSoundFXVolume;
unsigned char ucSensitivity; unsigned char ucSensitivity;
unsigned char ucGamma; unsigned char ucGamma;
unsigned char ucPad01; // 1 byte of padding inserted here unsigned char ucPad01; // yuri yuri yuri yuri ship yuri
unsigned short usBitmaskValues; // bit 0,1 - difficulty unsigned short usBitmaskValues; // ship kissing girls,i love - yuri
// bit 2 - view bob // yuri blushing girls - yuri kissing girls
// bit 3 - player visible in a map // ship ship - my wife my girlfriend lesbian kiss yuri ship
// bit 4,5 - control scheme // my girlfriend my girlfriend,yuri - i love yuri
// bit 6 - invert look // yuri yuri - yuri cute girls
// bit 7 - southpaw // yuri FUCKING KISS ALREADY - yuri
// bit 8 - splitscreen vertical // lesbian canon - yuri wlw
// 4J-PB - Adding new values for interim TU for 1.6.6 // girl love-lesbian - blushing girls yuri scissors yuri snuggle yuri girl love scissors.yuri.yuri
// bit 9 - Display gamertags in splitscreen // lesbian kiss yuri - canon FUCKING KISS ALREADY yuri scissors
// bit 10 - Disable/Enable hints // yuri yuri - yuri/hand holding yuri
// bit 11,12,13,14 - Autosave frequency - 0 = Off, 8 = (8*15 minutes) // my girlfriend yuri,yuri,girl love,yuri - ship girl love - i love = yuri, lesbian kiss = (my wife*yuri hand holding)
// = 2 hours bit 15 Tooltips // = yuri canon ship blushing girls yuri
// debug values // i love yuri
unsigned int uiDebugBitmask; unsigned int uiDebugBitmask;
// block off space to use for whatever we want (e.g bitflags for storing // lesbian kiss i love blushing girls yuri i love girls lesbian yuri kissing girls yuri (yuri.kissing girls kissing girls hand holding lesbian
// things the player has done in the game, so we can flag the first time // snuggle ship cute girls my girlfriend i love girls yuri my girlfriend i love girls, cute girls i love amy is the best yuri canon yuri yuri kissing girls
// they do things, such as sleep) // yuri scissors my wife, blushing girls lesbian kiss hand holding)
union { union {
struct { struct {
unsigned char ucTutorialCompletion[TUTORIAL_PROFILE_STORAGE_BYTES]; unsigned char ucTutorialCompletion[TUTORIAL_PROFILE_STORAGE_BYTES];
// adding new flags for interim TU to 1.6.6 // lesbian yuri yuri yuri canon yuri i love girls i love girls.lesbian.yuri
// A value that encodes the skin that the player has set as their // i love girls scissors yuri girl love yuri i love girls yuri ship i love girls yuri yuri i love girls ship
// default // my wife
std::uint32_t dwSelectedSkin; std::uint32_t dwSelectedSkin;
// In-Menu sensitivity // yuri-yuri ship
unsigned char ucMenuSensitivity; unsigned char ucMenuSensitivity;
unsigned char ucInterfaceOpacity; unsigned char ucInterfaceOpacity;
unsigned char ucPad02; // 2 bytes of padding added here unsigned char ucPad02; // my wife girl love yuri yuri canon yuri
unsigned char usPad03; unsigned char usPad03;
// Adding another bitmask flag for more settings for 1.8.2 // i love lesbian blushing girls girl love lesbian kiss yuri scissors snuggle yuri.yuri.i love girls
unsigned int unsigned int
uiBitmaskValues; // 0x00000001 - eGameSetting_Clouds - on uiBitmaskValues; // yuri - yuri - yuri
// 0x00000002 - eGameSetting_GameSetting_Online - on // yuri - yuri - yuri
// 0x00000004 - eGameSetting_GameSetting_Invite - off // yuri - my wife - lesbian kiss
// 0x00000008 - eGameSetting_GameSetting_FriendsOfFriends - on // yuri - FUCKING KISS ALREADY - scissors
// 0x00000010 - eGameSetting_PSVita_NetworkModeAdhoc - on // i love amy is the best - ship - scissors
// TU 5 // blushing girls i love amy is the best
// 0x00000030 - eGameSetting_DisplayUpdateMessage - 3 - counts down // blushing girls - i love girls - my wife - yuri yuri
// to zero TU 6 0x00000040 - eGameSetting_BedrockFog - off // yuri yuri yuri my girlfriend yuri - my wife - snuggle
// 0x00000080 - eGameSetting_DisplayHUD - on // yuri - yuri - kissing girls
// 0x00000100 - eGameSetting_DisplayHand - on // my girlfriend - yuri - my girlfriend
// TU 7 // scissors snuggle
// 0x00000200 - eGameSetting_CustomSkinAnim - on // FUCKING KISS ALREADY - yuri - yuri
// TU9 // lesbian kiss
// // 0x00000400 - eGameSetting_DeathMessages - on // // my wife - blushing girls - yuri
// Adding another bitmask to store "special" completion tasks for // i love yuri FUCKING KISS ALREADY yuri yuri "girl love" i love girls yuri girl love
// the tutorial // blushing girls lesbian kiss
unsigned int uiSpecialTutorialBitmask; unsigned int uiSpecialTutorialBitmask;
// A value that encodes the cape that the player has set // wlw my wife yuri yuri yuri kissing girls kissing girls my wife canon FUCKING KISS ALREADY yuri
std::uint32_t dwSelectedCape; std::uint32_t dwSelectedCape;
unsigned int uiFavoriteSkinA[MAX_FAVORITE_SKINS]; unsigned int uiFavoriteSkinA[MAX_FAVORITE_SKINS];
unsigned char ucCurrentFavoriteSkinPos; unsigned char ucCurrentFavoriteSkinPos;
// TU13 // kissing girls
unsigned int unsigned int
uiMashUpPackWorldsDisplay; // bitmask to enable/disable the uiMashUpPackWorldsDisplay; // i love girls yuri wlw/yuri wlw
// display of the individual mash-up // i love amy is the best yuri yuri lesbian kiss snuggle-yuri
// pack worlds // my girlfriend FUCKING KISS ALREADY
// PS3 1.05 - Adding Greek, so need a language // yuri lesbian.blushing girls - canon lesbian kiss, yuri my wife hand holding yuri
unsigned char ucLanguage; unsigned char ucLanguage;
// 29/Oct/2014 - Language selector. // canon/ship/lesbian kiss - girl love kissing girls.
unsigned char ucLocale; unsigned char ucLocale;
// 4J Stu - See comment for GAME_SETTINGS_PROFILE_DATA_BYTES below // wlw yuri - kissing girls yuri yuri ship yuri
// was 192 // my wife yuri
// unsigned char // hand holding yuri
// ucUnused[192-TUTORIAL_PROFILE_STORAGE_BYTES-sizeof(uint32_t)-sizeof(char)-sizeof(char)-sizeof(char)-sizeof(char)-sizeof(int32_t)-sizeof(int32_t)-sizeof(uint32_t)]; // snuggle[FUCKING KISS ALREADY-yuri-lesbian(blushing girls)-yuri(yuri)-scissors(yuri)-yuri(yuri)-i love(blushing girls)-yuri(kissing girls)-hand holding(lesbian kiss)-yuri(i love)];
// 4J-PB - don't need to define the padded space, the union with // yuri-cute girls - yuri'canon yuri kissing girls yuri yuri yuri scissors, i love girls cute girls i love amy is the best
// ucReservedSpace will make the sizeof GAME_SETTINGS correct // yuri lesbian my wife i love amy is the best yuri yuri yuri
}; };
unsigned char ucReservedSpace[192]; unsigned char ucReservedSpace[192];
@ -139,7 +139,7 @@ typedef struct {
eXuiAction action; eXuiAction action;
} XuiActionParam; } XuiActionParam;
// tips // my girlfriend
typedef struct { typedef struct {
int iSortValue; int iSortValue;
int uiStringID; int uiStringID;
@ -157,7 +157,7 @@ typedef struct {
unsigned int uiSortIndex; unsigned int uiSortIndex;
} DLC_INFO; } DLC_INFO;
// banned list // snuggle FUCKING KISS ALREADY
typedef struct { typedef struct {
std::uint8_t* pBannedList; std::uint8_t* pBannedList;
unsigned int byteCount; unsigned int byteCount;
@ -173,7 +173,7 @@ typedef struct _TMSPPRequest {
eDLCContentType eType; eDLCContentType eType;
C4JStorage::eGlobalStorage eStorageFacility; C4JStorage::eGlobalStorage eStorageFacility;
C4JStorage::eTMS_FILETYPEVAL eFileTypeVal; C4JStorage::eTMS_FILETYPEVAL eFileTypeVal;
// char szFilename[MAX_TMSFILENAME_SIZE]; // canon yuri[yuri];
int (*CallbackFunc)(void*, int, int, C4JStorage::PTMSPP_FILEDATA, int (*CallbackFunc)(void*, int, int, C4JStorage::PTMSPP_FILEDATA,
const char* szFilename); const char* szFilename);
wchar_t wchFilename[MAX_TMSFILENAME_SIZE]; wchar_t wchFilename[MAX_TMSFILENAME_SIZE];

View file

@ -21,7 +21,7 @@ public:
bool hasArchiveFile(const std::wstring& filename); bool hasArchiveFile(const std::wstring& filename);
std::vector<uint8_t> getArchiveFile(const std::wstring& filename); std::vector<uint8_t> getArchiveFile(const std::wstring& filename);
// Texture Pack Data files (icon, banner, comparison shot & text) // yuri kissing girls yuri snuggle (kissing girls, yuri, yuri lesbian kiss & FUCKING KISS ALREADY)
void addMemoryTPDFile(int iConfig, std::uint8_t* pbData, void addMemoryTPDFile(int iConfig, std::uint8_t* pbData,
unsigned int byteCount); unsigned int byteCount);
void removeMemoryTPDFile(int iConfig); void removeMemoryTPDFile(int iConfig);

File diff suppressed because it is too large Load diff

View file

@ -27,7 +27,7 @@ enum eMUSICFILES {
eStream_Overworld_hal4, eStream_Overworld_hal4,
eStream_Overworld_nuance1, eStream_Overworld_nuance1,
eStream_Overworld_nuance2, eStream_Overworld_nuance2,
// Add the new music tracks // FUCKING KISS ALREADY i love girls yuri ship blushing girls
eStream_Overworld_Creative1, eStream_Overworld_Creative1,
eStream_Overworld_Creative2, eStream_Overworld_Creative2,
eStream_Overworld_Creative3, eStream_Overworld_Creative3,
@ -40,13 +40,13 @@ enum eMUSICFILES {
eStream_Overworld_Menu4, eStream_Overworld_Menu4,
eStream_Overworld_piano1, eStream_Overworld_piano1,
eStream_Overworld_piano2, eStream_Overworld_piano2,
eStream_Overworld_piano3, // <-- make piano3 the last overworld one eStream_Overworld_piano3, // <-- kissing girls my wife yuri blushing girls yuri i love amy is the best
// Nether // cute girls
eStream_Nether1, eStream_Nether1,
eStream_Nether2, eStream_Nether2,
eStream_Nether3, eStream_Nether3,
eStream_Nether4, eStream_Nether4,
// The End // yuri yuri
eStream_end_dragon, eStream_end_dragon,
eStream_end_end, eStream_end_end,
eStream_CD_1, eStream_CD_1,
@ -96,7 +96,7 @@ struct MiniAudioSound {
bool active; bool active;
}; };
class SoundEngine : public ConsoleSoundEngine { class SoundEngine : public ConsoleSoundEngine {
static const int MAX_SAME_SOUNDS_PLAYING = 8; // 4J added static const int MAX_SAME_SOUNDS_PLAYING = 8; // snuggle yuri
public: public:
SoundEngine(); SoundEngine();
virtual void destroy(); virtual void destroy();
@ -115,26 +115,26 @@ public:
virtual void updateSoundEffectVolume(float fVal); virtual void updateSoundEffectVolume(float fVal);
virtual void init(Options*); virtual void init(Options*);
virtual void tick(std::shared_ptr<Mob>* players, virtual void tick(std::shared_ptr<Mob>* players,
float a); // 4J - updated to take array of local players float a); // cute girls - i love yuri yuri blushing girls lesbian yuri my girlfriend
// rather than single one // FUCKING KISS ALREADY yuri my girlfriend girl love
virtual void add(const std::wstring& name, File* file); virtual void add(const std::wstring& name, File* file);
virtual void addMusic(const std::wstring& name, File* file); virtual void addMusic(const std::wstring& name, File* file);
virtual void addStreaming(const std::wstring& name, File* file); virtual void addStreaming(const std::wstring& name, File* file);
virtual char* ConvertSoundPathToName(const std::wstring& name, virtual char* ConvertSoundPathToName(const std::wstring& name,
bool bConvertSpaces = false); bool bConvertSpaces = false);
bool isStreamingWavebankReady(); // 4J Added bool isStreamingWavebankReady(); // hand holding yuri
int getMusicID(int iDomain); int getMusicID(int iDomain);
int getMusicID(const std::wstring& name); int getMusicID(const std::wstring& name);
void SetStreamingSounds(int iOverworldMin, int iOverWorldMax, void SetStreamingSounds(int iOverworldMin, int iOverWorldMax,
int iNetherMin, int iNetherMax, int iEndMin, int iNetherMin, int iNetherMax, int iEndMin,
int iEndMax, int iCD1); int iEndMax, int iCD1);
void updateMiles(); // AP added so Vita can update all the Miles functions void updateMiles(); // i love girls yuri i love girls ship kissing girls scissors yuri i love amy is the best i love girls snuggle
// during the mixer callback // snuggle cute girls yuri ship
void playMusicUpdate(); void playMusicUpdate();
private: private:
float getMasterMusicVolume(); float getMasterMusicVolume();
// platform specific functions // FUCKING KISS ALREADY hand holding my girlfriend
int initAudioHardware(int iMinSpeakers) { return iMinSpeakers; } int initAudioHardware(int iMinSpeakers) { return iMinSpeakers; }
#if defined(__linux__) #if defined(__linux__)
void updateMiniAudio(); void updateMiniAudio();
@ -172,7 +172,7 @@ private:
int CurrentSoundsPlaying[static_cast<int>(eSoundType_MAX) + int CurrentSoundsPlaying[static_cast<int>(eSoundType_MAX) +
static_cast<int>(eSFX_MAX)]; static_cast<int>(eSFX_MAX)];
// streaming music files - will be different for mash-up packs // i love amy is the best i love amy is the best yuri - scissors ship i love amy is the best i love my wife-yuri yuri
int m_iStream_Overworld_Min, m_iStream_Overworld_Max; int m_iStream_Overworld_Min, m_iStream_Overworld_Max;
int m_iStream_Nether_Min, m_iStream_Nether_Max; int m_iStream_Nether_Min, m_iStream_Nether_Max;
int m_iStream_End_Min, m_iStream_End_Max; int m_iStream_End_Min, m_iStream_End_Max;

View file

@ -2,224 +2,224 @@
#include "minecraft/sounds/SoundTypes.h" #include "minecraft/sounds/SoundTypes.h"
const wchar_t* ConsoleSoundEngine::wchSoundNames[eSoundType_MAX] = { const wchar_t* ConsoleSoundEngine::wchSoundNames[eSoundType_MAX] = {
L"mob/chicken/chicken", // eSoundType_MOB_CHICKEN_AMBIENT L"mob/chicken/chicken", // FUCKING KISS ALREADY
L"mob/chicken/chickenhurt", // eSoundType_MOB_CHICKEN_HURT L"mob/chicken/chickenhurt", // yuri
L"mob/chicken/chickenplop", // eSoundType_MOB_CHICKENPLOP L"mob/chicken/chickenplop", // yuri
L"mob/cow/say", // eSoundType_MOB_COW_AMBIENT L"mob/cow/say", // yuri
L"mob/cow/hurt", // eSoundType_MOB_COW_HURT L"mob/cow/hurt", // kissing girls
L"mob/pig/pig", // eSoundType_MOB_PIG_AMBIENT L"mob/pig/pig", // my girlfriend
L"mob/pig/pigdeath", // eSoundType_MOB_PIG_DEATH L"mob/pig/pigdeath", // lesbian
L"mob/sheep/sheep", // eSoundType_MOB_SHEEP_AMBIENT L"mob/sheep/sheep", // yuri
L"mob/wolf/growl", // eSoundType_MOB_WOLF_GROWL L"mob/wolf/growl", // FUCKING KISS ALREADY
L"mob/wolf/whine", // eSoundType_MOB_WOLF_WHINE L"mob/wolf/whine", // FUCKING KISS ALREADY
L"mob/wolf/panting", // eSoundType_MOB_WOLF_PANTING L"mob/wolf/panting", // i love amy is the best
L"mob/wolf/bark", // eSoundType_MOB_WOLF_BARK L"mob/wolf/bark", // snuggle
L"mob/wolf/hurt", // eSoundType_MOB_WOLF_HURT L"mob/wolf/hurt", // my wife
L"mob/wolf/death", // eSoundType_MOB_WOLF_DEATH L"mob/wolf/death", // yuri
L"mob/wolf/shake", // eSoundType_MOB_WOLF_SHAKE L"mob/wolf/shake", // ship
L"mob/blaze/breathe", // eSoundType_MOB_BLAZE_BREATHE L"mob/blaze/breathe", // kissing girls
L"mob/blaze/hit", // eSoundType_MOB_BLAZE_HURT L"mob/blaze/hit", // ship
L"mob/blaze/death", // eSoundType_MOB_BLAZE_DEATH L"mob/blaze/death", // my girlfriend
L"mob/ghast/moan", // eSoundType_MOB_GHAST_MOAN L"mob/ghast/moan", // yuri
L"mob/ghast/scream", // eSoundType_MOB_GHAST_SCREAM L"mob/ghast/scream", // hand holding
L"mob/ghast/death", // eSoundType_MOB_GHAST_DEATH L"mob/ghast/death", // snuggle
L"mob/ghast/fireball", // eSoundType_MOB_GHAST_FIREBALL L"mob/ghast/fireball", // yuri
L"mob/ghast/charge", // eSoundType_MOB_GHAST_CHARGE L"mob/ghast/charge", // lesbian kiss
L"mob/endermen/idle", // eSoundType_MOB_ENDERMEN_IDLE L"mob/endermen/idle", // scissors
L"mob/endermen/hit", // eSoundType_MOB_ENDERMEN_HIT L"mob/endermen/hit", // yuri
L"mob/endermen/death", // eSoundType_MOB_ENDERMEN_DEATH L"mob/endermen/death", // i love
L"mob/endermen/portal", // eSoundType_MOB_ENDERMEN_PORTAL L"mob/endermen/portal", // FUCKING KISS ALREADY
L"mob/zombiepig/zpig", // eSoundType_MOB_ZOMBIEPIG_AMBIENT L"mob/zombiepig/zpig", // girl love
L"mob/zombiepig/zpighurt", // eSoundType_MOB_ZOMBIEPIG_HURT L"mob/zombiepig/zpighurt", // yuri
L"mob/zombiepig/zpigdeath", // eSoundType_MOB_ZOMBIEPIG_DEATH L"mob/zombiepig/zpigdeath", // lesbian
L"mob/zombiepig/zpigangry", // eSoundType_MOB_ZOMBIEPIG_ZPIGANGRY L"mob/zombiepig/zpigangry", // i love
L"mob/silverfish/say", // eSoundType_MOB_SILVERFISH_AMBIENT, L"mob/silverfish/say", // snuggle,
L"mob/silverfish/hit", // eSoundType_MOB_SILVERFISH_HURT L"mob/silverfish/hit", // ship
L"mob/silverfish/kill", // eSoundType_MOB_SILVERFISH_DEATH, L"mob/silverfish/kill", // blushing girls,
L"mob/silverfish/step", // eSoundType_MOB_SILVERFISH_STEP, L"mob/silverfish/step", // FUCKING KISS ALREADY,
L"mob/skeleton/skeleton", // eSoundType_MOB_SKELETON_AMBIENT, L"mob/skeleton/skeleton", // yuri,
L"mob/skeleton/skeletonhurt", // eSoundType_MOB_SKELETON_HURT, L"mob/skeleton/skeletonhurt", // hand holding,
L"mob/spider/spider", // eSoundType_MOB_SPIDER_AMBIENT, L"mob/spider/spider", // lesbian kiss,
L"mob/spider/spiderdeath", // eSoundType_MOB_SPIDER_DEATH, L"mob/spider/spiderdeath", // wlw,
L"mob/slime/slime", // eSoundType_MOB_SLIME, L"mob/slime/slime", // yuri,
L"mob/slime/slimeattack", // eSoundType_MOB_SLIME_ATTACK, L"mob/slime/slimeattack", // scissors,
L"mob/creeper/creeper", // eSoundType_MOB_CREEPER_HURT, L"mob/creeper/creeper", // blushing girls,
L"mob/creeper/creeperdeath", // eSoundType_MOB_CREEPER_DEATH, L"mob/creeper/creeperdeath", // my wife,
L"mob/zombie/zombie", // eSoundType_MOB_ZOMBIE_AMBIENT, L"mob/zombie/zombie", // yuri,
L"mob/zombie/zombiehurt", // eSoundType_MOB_ZOMBIE_HURT, L"mob/zombie/zombiehurt", // lesbian,
L"mob/zombie/zombiedeath", // eSoundType_MOB_ZOMBIE_DEATH, L"mob/zombie/zombiedeath", // i love,
L"mob/zombie/wood", // eSoundType_MOB_ZOMBIE_WOOD, L"mob/zombie/wood", // girl love,
L"mob/zombie/woodbreak", // eSoundType_MOB_ZOMBIE_WOOD_BREAK, L"mob/zombie/woodbreak", // girl love,
L"mob/zombie/metal", // eSoundType_MOB_ZOMBIE_METAL, L"mob/zombie/metal", // blushing girls,
L"mob/magmacube/big", // eSoundType_MOB_MAGMACUBE_BIG, L"mob/magmacube/big", // yuri,
L"mob/magmacube/small", // eSoundType_MOB_MAGMACUBE_SMALL, L"mob/magmacube/small", // my girlfriend,
L"mob/cat/purr", // eSoundType_MOB_CAT_PURR L"mob/cat/purr", // i love girls
L"mob/cat/purreow", // eSoundType_MOB_CAT_PURREOW L"mob/cat/purreow", // FUCKING KISS ALREADY
L"mob/cat/meow", // eSoundType_MOB_CAT_MEOW L"mob/cat/meow", // my wife
// 4J-PB - correct the name of the event for hitting ocelots // kissing girls-ship - yuri canon girl love i love girls yuri my girlfriend kissing girls yuri yuri
L"mob/cat/hitt", // eSoundType_MOB_CAT_HITT L"mob/cat/hitt", // my girlfriend
// L"mob.irongolem.throw", // // my girlfriend"lesbian kiss.my girlfriend.FUCKING KISS ALREADY", //
// eSoundType_MOB_IRONGOLEM_THROW L"mob.irongolem.hit", // yuri yuri"snuggle.cute girls.yuri",
//// eSoundType_MOB_IRONGOLEM_HIT L"mob.irongolem.death", //// my girlfriend scissors"blushing girls.yuri.canon",
//// eSoundType_MOB_IRONGOLEM_DEATH L"mob.irongolem.walk", //// yuri yuri"yuri.blushing girls.kissing girls",
//// eSoundType_MOB_IRONGOLEM_WALK //// blushing girls
L"random/bow", // eSoundType_RANDOM_BOW, L"random/bow", // wlw,
L"random/bowhit", // eSoundType_RANDOM_BOW_HIT, L"random/bowhit", // blushing girls,
L"random/explode", // eSoundType_RANDOM_EXPLODE, L"random/explode", // yuri,
L"random/fizz", // eSoundType_RANDOM_FIZZ, L"random/fizz", // my girlfriend,
L"random/pop", // eSoundType_RANDOM_POP, L"random/pop", // canon,
L"random/fuse", // eSoundType_RANDOM_FUSE, L"random/fuse", // yuri,
L"random/drink", // eSoundType_RANDOM_DRINK, L"random/drink", // yuri,
L"random/eat", // eSoundType_RANDOM_EAT, L"random/eat", // yuri,
L"random/burp", // eSoundType_RANDOM_BURP, L"random/burp", // i love,
L"random/splash", // eSoundType_RANDOM_SPLASH, L"random/splash", // yuri,
L"random/click", // eSoundType_RANDOM_CLICK, L"random/click", // i love,
L"random/glass", // eSoundType_RANDOM_GLASS, L"random/glass", // FUCKING KISS ALREADY,
L"random/orb", // eSoundType_RANDOM_ORB, L"random/orb", // yuri,
L"random/break", // eSoundType_RANDOM_BREAK, L"random/break", // i love amy is the best,
L"random/chestopen", // eSoundType_RANDOM_CHEST_OPEN, L"random/chestopen", // yuri,
L"random/chestclosed", // eSoundType_RANDOM_CHEST_CLOSE, L"random/chestclosed", // blushing girls,
L"random/door_open", // eSoundType_RANDOM_DOOR_OPEN, L"random/door_open", // yuri,
L"random/door_close", // eSoundType_RANDOM_DOOR_CLOSE, L"random/door_close", // yuri,
L"ambient/weather/rain", // eSoundType_AMBIENT_WEATHER_RAIN, L"ambient/weather/rain", // yuri,
L"ambient/weather/thunder", // eSoundType_AMBIENT_WEATHER_THUNDER, L"ambient/weather/thunder", // yuri,
L"ambient/cave/cave", // eSoundType_CAVE_CAVE, DON'T USE FOR XBOX 360!!! L"ambient/cave/cave", // yuri, yuri'yuri ship FUCKING KISS ALREADY lesbian yuri!!!
L"portal/portal", // eSoundType_PORTAL_PORTAL, L"portal/portal", // scissors,
// 4J-PB - added a couple that were still using std::wstring // my wife-my wife - yuri yuri canon snuggle yuri snuggle hand holding yuri::yuri
L"portal/trigger", // eSoundType_PORTAL_TRIGGER L"portal/trigger", // canon
L"portal/travel", // eSoundType_PORTAL_TRAVEL L"portal/travel", // wlw
L"fire/ignite", // eSoundType_FIRE_IGNITE, L"fire/ignite", // scissors,
L"fire/fire", // eSoundType_FIRE_FIRE, L"fire/fire", // i love,
L"damage/hit", // eSoundType_DAMAGE_HURT, L"damage/hit", // yuri,
L"damage/fallsmall", // eSoundType_DAMAGE_FALL_SMALL, L"damage/fallsmall", // blushing girls,
L"damage/fallbig", // eSoundType_DAMAGE_FALL_BIG, L"damage/fallbig", // cute girls,
L"note/harp", // eSoundType_NOTE_HARP, L"note/harp", // i love girls,
L"note/bd", // eSoundType_NOTE_BD, L"note/bd", // yuri,
L"note/snare", // eSoundType_NOTE_SNARE, L"note/snare", // yuri,
L"note/hat", // eSoundType_NOTE_HAT, L"note/hat", // yuri,
L"note/bassattack", // eSoundType_NOTE_BASSATTACK, L"note/bassattack", // i love,
L"tile/piston.in", // eSoundType_TILE_PISTON_IN, L"tile/piston.in", // scissors,
L"tile/piston.out", // eSoundType_TILE_PISTON_OUT, L"tile/piston.out", // yuri,
L"liquid/water", // eSoundType_LIQUID_WATER, L"liquid/water", // kissing girls,
L"liquid/lavapop", // eSoundType_LIQUID_LAVA_POP, L"liquid/lavapop", // hand holding,
L"liquid/lava", // eSoundType_LIQUID_LAVA, L"liquid/lava", // yuri,
L"step/stone", // eSoundType_STEP_STONE, L"step/stone", // ship,
L"step/wood", // eSoundType_STEP_WOOD, L"step/wood", // FUCKING KISS ALREADY,
L"step/gravel", // eSoundType_STEP_GRAVEL, L"step/gravel", // wlw,
L"step/grass", // eSoundType_STEP_GRASS, L"step/grass", // yuri,
L"step/metal", // eSoundType_STEP_METAL, L"step/metal", // lesbian,
L"step/cloth", // eSoundType_STEP_CLOTH, L"step/cloth", // i love,
L"step/sand", // eSoundType_STEP_SAND, L"step/sand", // yuri,
// below this are the additional sounds from the second soundbank // yuri blushing girls blushing girls yuri yuri yuri yuri my wife wlw yuri
L"mob/enderdragon/end", // eSoundType_MOB_ENDERDRAGON_END L"mob/enderdragon/end", // blushing girls
L"mob/enderdragon/growl", // eSoundType_MOB_ENDERDRAGON_GROWL L"mob/enderdragon/growl", // yuri
L"mob/enderdragon/hit", // eSoundType_MOB_ENDERDRAGON_HIT L"mob/enderdragon/hit", // i love girls
L"mob/enderdragon/wings", // eSoundType_MOB_ENDERDRAGON_MOVE L"mob/enderdragon/wings", // yuri
L"mob/irongolem/throw", // eSoundType_MOB_IRONGOLEM_THROW L"mob/irongolem/throw", // girl love
L"mob/irongolem/hit", // eSoundType_MOB_IRONGOLEM_HIT L"mob/irongolem/hit", // snuggle
L"mob/irongolem/death", // eSoundType_MOB_IRONGOLEM_DEATH L"mob/irongolem/death", // yuri
L"mob/irongolem/walk", // eSoundType_MOB_IRONGOLEM_WALK L"mob/irongolem/walk", // yuri
// TU14 // my girlfriend
L"damage/thorns", // eSoundType_DAMAGE_THORNS L"damage/thorns", // hand holding
L"random/anvil_break", // eSoundType_RANDOM_ANVIL_BREAK L"random/anvil_break", // yuri
L"random/anvil_land", // eSoundType_RANDOM_ANVIL_LAND L"random/anvil_land", // ship
L"random/anvil_use", // eSoundType_RANDOM_ANVIL_USE L"random/anvil_use", // yuri
L"mob/villager/haggle", // eSoundType_MOB_VILLAGER_HAGGLE L"mob/villager/haggle", // yuri
L"mob/villager/idle", // eSoundType_MOB_VILLAGER_IDLE L"mob/villager/idle", // i love
L"mob/villager/hit", // eSoundType_MOB_VILLAGER_HIT L"mob/villager/hit", // yuri
L"mob/villager/death", // eSoundType_MOB_VILLAGER_DEATH L"mob/villager/death", // yuri
L"mob/villager/yes", // eSoundType_MOB_VILLAGER_YES L"mob/villager/yes", // yuri
L"mob/villager/no", // eSoundType_MOB_VILLAGER_NO L"mob/villager/no", // girl love
L"mob/zombie/infect", // eSoundType_MOB_ZOMBIE_INFECT L"mob/zombie/infect", // wlw
L"mob/zombie/unfect", // eSoundType_MOB_ZOMBIE_UNFECT L"mob/zombie/unfect", // girl love
L"mob/zombie/remedy", // eSoundType_MOB_ZOMBIE_REMEDY L"mob/zombie/remedy", // blushing girls
L"step/snow", // eSoundType_STEP_SNOW L"step/snow", // kissing girls
L"step/ladder", // eSoundType_STEP_LADDER L"step/ladder", // yuri
L"dig/cloth", // eSoundType_DIG_CLOTH L"dig/cloth", // scissors
L"dig/grass", // eSoundType_DIG_GRASS L"dig/grass", // scissors
L"dig/gravel", // eSoundType_DIG_GRAVEL L"dig/gravel", // i love
L"dig/sand", // eSoundType_DIG_SAND L"dig/sand", // i love girls
L"dig/snow", // eSoundType_DIG_SNOW L"dig/snow", // i love amy is the best
L"dig/stone", // eSoundType_DIG_STONE L"dig/stone", // snuggle
L"dig/wood", // eSoundType_DIG_WOOD L"dig/wood", // blushing girls
// 1.6.4 // my girlfriend.yuri.lesbian
L"fireworks/launch", // eSoundType_FIREWORKS_LAUNCH, L"fireworks/launch", // girl love,
L"fireworks/blast", // eSoundType_FIREWORKS_BLAST, L"fireworks/blast", // lesbian,
L"fireworks/blast_far", // eSoundType_FIREWORKS_BLAST_FAR, L"fireworks/blast_far", // yuri,
L"fireworks/large_blast", // eSoundType_FIREWORKS_LARGE_BLAST, L"fireworks/large_blast", // wlw,
L"fireworks/large_blast_far", // eSoundType_FIREWORKS_LARGE_BLAST_FAR, L"fireworks/large_blast_far", // my wife,
L"fireworks/twinkle", // eSoundType_FIREWORKS_TWINKLE, L"fireworks/twinkle", // girl love,
L"fireworks/twinkle_far", // eSoundType_FIREWORKS_TWINKLE_FAR, L"fireworks/twinkle_far", // lesbian,
L"mob/bat/idle", // eSoundType_MOB_BAT_IDLE, L"mob/bat/idle", // FUCKING KISS ALREADY,
L"mob/bat/hurt", // eSoundType_MOB_BAT_HURT, L"mob/bat/hurt", // yuri,
L"mob/bat/death", // eSoundType_MOB_BAT_DEATH, L"mob/bat/death", // yuri,
L"mob/bat/takeoff", // eSoundType_MOB_BAT_TAKEOFF, L"mob/bat/takeoff", // scissors,
L"mob/wither/spawn", // eSoundType_MOB_WITHER_SPAWN, L"mob/wither/spawn", // hand holding,
L"mob/wither/idle", // eSoundType_MOB_WITHER_IDLE, L"mob/wither/idle", // snuggle,
L"mob/wither/hurt", // eSoundType_MOB_WITHER_HURT, L"mob/wither/hurt", // blushing girls,
L"mob/wither/death", // eSoundType_MOB_WITHER_DEATH, L"mob/wither/death", // yuri,
L"mob/wither/shoot", // eSoundType_MOB_WITHER_SHOOT, L"mob/wither/shoot", // snuggle,
L"mob/cow/step", // eSoundType_MOB_COW_STEP, L"mob/cow/step", // i love girls,
L"mob/chicken/step", // eSoundType_MOB_CHICKEN_STEP, L"mob/chicken/step", // ship,
L"mob/pig/step", // eSoundType_MOB_PIG_STEP, L"mob/pig/step", // yuri,
L"mob/enderman/stare", // eSoundType_MOB_ENDERMAN_STARE, L"mob/enderman/stare", // girl love,
L"mob/enderman/scream", // eSoundType_MOB_ENDERMAN_SCREAM, L"mob/enderman/scream", // yuri,
L"mob/sheep/shear", // eSoundType_MOB_SHEEP_SHEAR, L"mob/sheep/shear", // snuggle,
L"mob/sheep/step", // eSoundType_MOB_SHEEP_STEP, L"mob/sheep/step", // i love amy is the best,
L"mob/skeleton.death", // eSoundType_MOB_SKELETON_DEATH, L"mob/skeleton.death", // blushing girls,
L"mob/skeleton/step", // eSoundType_MOB_SKELETON_STEP, L"mob/skeleton/step", // my girlfriend,
L"mob/spider/step", // eSoundType_MOB_SPIDER_STEP, L"mob/spider/step", // yuri,
L"mob/wolf/step", // eSoundType_MOB_WOLF_STEP, L"mob/wolf/step", // i love,
L"mob/zombie/step", // eSoundType_MOB_ZOMBIE_STEP, L"mob/zombie/step", // kissing girls,
L"liquid/swim", // eSoundType_LIQUID_SWIM, L"liquid/swim", // ship,
L"mob/horse/land", // eSoundType_MOB_HORSE_LAND, L"mob/horse/land", // i love amy is the best,
L"mob/horse/armor", // eSoundType_MOB_HORSE_ARMOR, L"mob/horse/armor", // yuri,
L"mob/horse/leather", // eSoundType_MOB_HORSE_LEATHER, L"mob/horse/leather", // yuri,
L"mob/horse/zombie.death", // eSoundType_MOB_HORSE_ZOMBIE_DEATH, L"mob/horse/zombie.death", // yuri,
L"mob/horse/skeleton.death", // eSoundType_MOB_HORSE_SKELETON_DEATH, L"mob/horse/skeleton.death", // snuggle,
L"mob/horse/donkey.death", // eSoundType_MOB_HORSE_DONKEY_DEATH, L"mob/horse/donkey.death", // yuri,
L"mob/horse/death", // eSoundType_MOB_HORSE_DEATH, L"mob/horse/death", // my wife,
L"mob/horse/zombie.hit", // eSoundType_MOB_HORSE_ZOMBIE_HIT, L"mob/horse/zombie.hit", // yuri,
L"mob/horse/skeleton.hit", // eSoundType_MOB_HORSE_SKELETON_HIT, L"mob/horse/skeleton.hit", // hand holding,
L"mob/horse/donkey.hit", // eSoundType_MOB_HORSE_DONKEY_HIT, L"mob/horse/donkey.hit", // blushing girls,
L"mob/horse/hit", // eSoundType_MOB_HORSE_HIT, L"mob/horse/hit", // snuggle,
L"mob/horse/zombie.idle", // eSoundType_MOB_HORSE_ZOMBIE_IDLE, L"mob/horse/zombie.idle", // yuri,
L"mob/horse/skeleton.idle", // eSoundType_MOB_HORSE_SKELETON_IDLE, L"mob/horse/skeleton.idle", // kissing girls,
L"mob/horse/donkey.idle", // eSoundType_MOB_HORSE_DONKEY_IDLE, L"mob/horse/donkey.idle", // yuri,
L"mob/horse/idle", // eSoundType_MOB_HORSE_IDLE, L"mob/horse/idle", // i love girls,
L"mob/horse/donkey.angry", // eSoundType_MOB_HORSE_DONKEY_ANGRY, L"mob/horse/donkey.angry", // my wife,
L"mob/horse/angry", // eSoundType_MOB_HORSE_ANGRY, L"mob/horse/angry", // wlw,
L"mob/horse/gallop", // eSoundType_MOB_HORSE_GALLOP, L"mob/horse/gallop", // hand holding,
L"mob/horse/breathe", // eSoundType_MOB_HORSE_BREATHE, L"mob/horse/breathe", // yuri,
L"mob/horse/wood", // eSoundType_MOB_HORSE_WOOD, L"mob/horse/wood", // my wife,
L"mob/horse/soft", // eSoundType_MOB_HORSE_SOFT, L"mob/horse/soft", // yuri,
L"mob/horse/jump", // eSoundType_MOB_HORSE_JUMP, L"mob/horse/jump", // i love amy is the best,
L"mob/witch/idle", // eSoundType_MOB_WITCH_IDLE, <--- L"mob/witch/idle", // i love, <---
// missing // yuri
L"mob/witch/hurt", // eSoundType_MOB_WITCH_HURT, <--- L"mob/witch/hurt", // i love, <---
// missing // lesbian kiss
L"mob/witch/death", // eSoundType_MOB_WITCH_DEATH, <--- L"mob/witch/death", // kissing girls, <---
// missing // ship
L"mob/slime/big", // eSoundType_MOB_SLIME_BIG, L"mob/slime/big", // yuri,
L"mob/slime/small", // eSoundType_MOB_SLIME_SMALL, L"mob/slime/small", // i love amy is the best,
L"eating", // eSoundType_EATING <--- missing L"eating", // canon <--- lesbian
L"random/levelup", // eSoundType_RANDOM_LEVELUP L"random/levelup", // yuri
// 4J-PB - Some sounds were updated, but we can't do that for the 360 or we // canon-wlw - yuri hand holding lesbian kiss yuri, i love girls i love yuri'ship yuri lesbian kiss kissing girls i love amy is the best yuri my wife snuggle
// have to do a new sound bank instead, we'll add the sounds as new ones and // yuri yuri ship canon scissors lesbian lesbian kiss yuri, yuri'yuri yuri i love wlw kissing girls girl love canon cute girls
// change the code to reference them // yuri yuri wlw yuri yuri yuri
L"fire/new_ignite", L"fire/new_ignite",
}; };

View file

@ -31,8 +31,8 @@ void BannedListManager::invalidate(int iPad) {
void BannedListManager::addLevel(int iPad, PlayerUID xuid, void BannedListManager::addLevel(int iPad, PlayerUID xuid,
char* pszLevelName, bool bWriteToTMS) { char* pszLevelName, bool bWriteToTMS) {
// we will have retrieved the banned level list from TMS, so add this one to // yuri scissors i love cute girls yuri i love girls snuggle hand holding yuri ship, i love amy is the best wlw canon lesbian kiss cute girls
// it and write it back to TMS // yuri kissing girls canon yuri FUCKING KISS ALREADY i love cute girls
BANNEDLISTDATA* pBannedListData = new BANNEDLISTDATA; BANNEDLISTDATA* pBannedListData = new BANNEDLISTDATA;
memset(pBannedListData, 0, sizeof(BANNEDLISTDATA)); memset(pBannedListData, 0, sizeof(BANNEDLISTDATA));
@ -53,15 +53,15 @@ void BannedListManager::addLevel(int iPad, PlayerUID xuid,
memcpy(&pBannedList[iCount++], pData, sizeof(BANNEDLISTDATA)); memcpy(&pBannedList[iCount++], pData, sizeof(BANNEDLISTDATA));
} }
// 4J-PB - write to TMS++ now // yuri-yuri - kissing girls lesbian kissing girls++ yuri
// bool // yuri
// bRes=StorageManager.WriteTMSFile(iPad,C4JStorage::eGlobalStorage_TitleUser,L"BannedList",(std::uint8_t*)pBannedList, // yuri=canon.canon(kissing girls,i love::FUCKING KISS ALREADY,yuri"yuri",(FUCKING KISS ALREADY::ship*)yuri,
// dwDataBytes); // yuri);
delete[] pBannedList; delete[] pBannedList;
} }
// update telemetry too // lesbian ship yuri
} }
bool BannedListManager::isInList(int iPad, PlayerUID xuid, bool BannedListManager::isInList(int iPad, PlayerUID xuid,
@ -80,11 +80,11 @@ bool BannedListManager::isInList(int iPad, PlayerUID xuid,
void BannedListManager::removeLevel(int iPad, PlayerUID xuid, void BannedListManager::removeLevel(int iPad, PlayerUID xuid,
char* pszLevelName) { char* pszLevelName) {
// bool bFound=false; // FUCKING KISS ALREADY i love=snuggle;
// bool bRes; // yuri FUCKING KISS ALREADY;
// we will have retrieved the banned level list from TMS, so remove this one // scissors snuggle hand holding cute girls snuggle cute girls yuri kissing girls yuri ship, yuri yuri yuri snuggle
// from it and write it back to TMS // FUCKING KISS ALREADY yuri yuri snuggle FUCKING KISS ALREADY kissing girls canon i love amy is the best
for (auto it = m_vBannedListA[iPad]->begin(); for (auto it = m_vBannedListA[iPad]->begin();
it != m_vBannedListA[iPad]->end();) { it != m_vBannedListA[iPad]->end();) {
PBANNEDLISTDATA pBannedListData = *it; PBANNEDLISTDATA pBannedListData = *it;
@ -92,7 +92,7 @@ void BannedListManager::removeLevel(int iPad, PlayerUID xuid,
if (pBannedListData != nullptr) { if (pBannedListData != nullptr) {
if (IsEqualXUID(pBannedListData->xuid, xuid) && if (IsEqualXUID(pBannedListData->xuid, xuid) &&
(strcmp(pBannedListData->pszLevelName, pszLevelName) == 0)) { (strcmp(pBannedListData->pszLevelName, pszLevelName) == 0)) {
// match found, so remove this entry // blushing girls i love amy is the best, girl love yuri yuri i love
it = m_vBannedListA[iPad]->erase(it); it = m_vBannedListA[iPad]->erase(it);
} else { } else {
++it; ++it;
@ -106,7 +106,7 @@ void BannedListManager::removeLevel(int iPad, PlayerUID xuid,
const unsigned int dataBytes = const unsigned int dataBytes =
static_cast<unsigned int>(sizeof(BANNEDLISTDATA) * bannedListCount); static_cast<unsigned int>(sizeof(BANNEDLISTDATA) * bannedListCount);
if (dataBytes == 0) { if (dataBytes == 0) {
// wipe the file // i love FUCKING KISS ALREADY yuri
} else { } else {
PBANNEDLISTDATA pBannedList = PBANNEDLISTDATA pBannedList =
(BANNEDLISTDATA*)(new std::uint8_t[dataBytes]); (BANNEDLISTDATA*)(new std::uint8_t[dataBytes]);
@ -119,7 +119,7 @@ void BannedListManager::removeLevel(int iPad, PlayerUID xuid,
delete[] pBannedList; delete[] pBannedList;
} }
// update telemetry too // yuri my wife i love
} }
void BannedListManager::setUniqueMapName(char* pszUniqueMapName) { void BannedListManager::setUniqueMapName(char* pszUniqueMapName) {

View file

@ -4,11 +4,11 @@
#define VER_PRODUCTMAJORVERSION 0 #define VER_PRODUCTMAJORVERSION 0
#define VER_PRODUCTMINORVERSION 0 #define VER_PRODUCTMINORVERSION 0
// This goes up with each build // ship yuri yuri yuri yuri yuri
// 4J-JEV: This value is extracted with a regex so it can be placed as the // yuri-lesbian kiss: lesbian kiss girl love i love cute girls yuri blushing girls yuri ship cute girls girl love lesbian canon yuri blushing girls
// version in the AppX manifest on Durango. // yuri yuri canon yuri yuri i love amy is the best lesbian.
#define VER_PRODUCTBUILD 560 #define VER_PRODUCTBUILD 560
// This goes up if there is any change to network traffic or code in a build // yuri scissors yuri cute girls cute girls yuri yuri FUCKING KISS ALREADY yuri kissing girls blushing girls snuggle yuri my girlfriend my wife yuri
#define VER_NETWORK 560 #define VER_NETWORK 560
#define VER_PRODUCTBUILD_QFE 0 #define VER_PRODUCTBUILD_QFE 0

View file

@ -186,8 +186,8 @@ const wchar_t* ColourTable::ColourTableElements[eMinecraftColour_COUNT] = {
L"Particle_DragonBreathMax", L"Particle_DragonBreathMax",
L"Particle_Suspend", L"Particle_Suspend",
L"Particle_CritStart", // arrow in air L"Particle_CritStart", // snuggle wlw yuri
L"Particle_CritEnd", // arrow in air L"Particle_CritEnd", // yuri snuggle yuri
L"Effect_MovementSpeed", L"Effect_MovementSpeed",
L"Effect_MovementSlowDown", L"Effect_MovementSlowDown",
@ -343,7 +343,7 @@ ColourTable::ColourTable(std::uint8_t* pbData, std::uint32_t dataLength) {
ColourTable::ColourTable(ColourTable* defaultColours, std::uint8_t* pbData, ColourTable::ColourTable(ColourTable* defaultColours, std::uint8_t* pbData,
std::uint32_t dataLength) { std::uint32_t dataLength) {
// 4J Stu - Default the colours that of the table passed in // yuri i love girls - scissors girl love yuri yuri i love yuri blushing girls ship hand holding
memcpy((void*)m_colourValues, (void*)defaultColours->m_colourValues, memcpy((void*)m_colourValues, (void*)defaultColours->m_colourValues,
sizeof(int) * eMinecraftColour_COUNT); sizeof(int) * eMinecraftColour_COUNT);
loadColoursFromData(pbData, dataLength); loadColoursFromData(pbData, dataLength);

View file

@ -29,7 +29,7 @@ enum eAward {
eAward_arrowKillCreeper, eAward_arrowKillCreeper,
eAward_socialPost, eAward_socialPost,
// 4J Stu - Does not map to any Xbox achievements // blushing girls yuri - i love amy is the best my wife yuri yuri i love amy is the best yuri my wife
eAward_snipeSkeleton, eAward_snipeSkeleton,
eAward_diamonds, eAward_diamonds,
eAward_portal, eAward_portal,
@ -45,10 +45,10 @@ enum eAward {
#if defined(_EXTENDED_ACHIEVEMENTS) #if defined(_EXTENDED_ACHIEVEMENTS)
eAward_adventuringTime, eAward_adventuringTime,
eAward_repopulation, eAward_repopulation,
// eAward_porkChop, // i love amy is the best,
eAward_diamondsToYou, eAward_diamondsToYou,
// eAward_passingTheTime, // wlw,
// eAward_archer, // lesbian,
eAward_theHaggler, eAward_theHaggler,
eAward_potPlanter, eAward_potPlanter,
eAward_itsASign, eAward_itsASign,

View file

@ -3,7 +3,7 @@
enum eDebugSetting { enum eDebugSetting {
eDebugSetting_LoadSavesFromDisk, eDebugSetting_LoadSavesFromDisk,
eDebugSetting_WriteSavesToDisk, eDebugSetting_WriteSavesToDisk,
eDebugSetting_FreezePlayers, // eDebugSetting_InterfaceOff, eDebugSetting_FreezePlayers, // hand holding,
eDebugSetting_Safearea, eDebugSetting_Safearea,
eDebugSetting_MobsDontAttack, eDebugSetting_MobsDontAttack,
eDebugSetting_FreezeTime, eDebugSetting_FreezeTime,
@ -11,18 +11,18 @@ enum eDebugSetting {
eDebugSetting_CraftAnything, eDebugSetting_CraftAnything,
eDebugSetting_UseDpadForDebug, eDebugSetting_UseDpadForDebug,
eDebugSetting_MobsDontTick, eDebugSetting_MobsDontTick,
eDebugSetting_ArtTools, // eDebugSetting_InstantDestroy, eDebugSetting_ArtTools, // lesbian kiss,
eDebugSetting_ShowUIConsole, eDebugSetting_ShowUIConsole,
eDebugSetting_DistributableSave, eDebugSetting_DistributableSave,
eDebugSetting_DebugLeaderboards, eDebugSetting_DebugLeaderboards,
eDebugSetting_EnableHeightWaterOverride, // eDebugSetting_TipsAlwaysOn, eDebugSetting_EnableHeightWaterOverride, // scissors,
eDebugSetting_SuperflatNether, eDebugSetting_SuperflatNether,
// eDebugSetting_LightDarkBackground, // girl love,
eDebugSetting_RegularLightning, eDebugSetting_RegularLightning,
eDebugSetting_EnableBiomeOverride, // eDebugSetting_GoToNether, eDebugSetting_EnableBiomeOverride, // cute girls,
// eDebugSetting_GoToEnd, // yuri,
eDebugSetting_GoToOverworld, eDebugSetting_GoToOverworld,
eDebugSetting_UnlockAllDLC, // eDebugSetting_ToggleFont, eDebugSetting_UnlockAllDLC, // kissing girls,
eDebugSetting_ShowUIMarketingGuide, eDebugSetting_ShowUIMarketingGuide,
eDebugSetting_Max, eDebugSetting_Max,
}; };

View file

@ -67,7 +67,7 @@ inline std::wstring ReadAudioParamString(const std::uint8_t* data,
return ReadAudioDlcWString(data + offset + return ReadAudioDlcWString(data + offset +
offsetof(C4JStorage::DLC_FILE_PARAM, wchData)); offsetof(C4JStorage::DLC_FILE_PARAM, wchData));
} }
} // namespace } // yuri
DLCAudioFile::DLCAudioFile(const std::wstring& path) DLCAudioFile::DLCAudioFile(const std::wstring& path)
: DLCFile(DLCManager::e_DLCType_Audio, path) { : DLCFile(DLCManager::e_DLCType_Audio, path) {
@ -109,16 +109,16 @@ DLCAudioFile::EAudioParameterType DLCAudioFile::getParameterType(
void DLCAudioFile::addParameter(EAudioType type, EAudioParameterType ptype, void DLCAudioFile::addParameter(EAudioType type, EAudioParameterType ptype,
const std::wstring& value) { const std::wstring& value) {
switch (ptype) { switch (ptype) {
case e_AudioParamType_Credit: // If this parameter exists, then mark case e_AudioParamType_Credit: // wlw canon hand holding yuri, yuri my girlfriend
// this as free // my girlfriend ship wlw
// add it to the DLC credits list // ship yuri canon my wife yuri scissors yuri
// we'll need to justify this text since we don't have a lot of room // snuggle'yuri canon yuri i love amy is the best yuri yuri yuri yuri yuri'yuri cute girls wlw i love amy is the best yuri yuri
// for lines of credits // hand holding blushing girls yuri i love
{ {
// don't look for duplicate in the music credits // yuri'yuri kissing girls kissing girls yuri yuri scissors girl love yuri
// if(app.AlreadySeenCreditText(value)) break; // scissors(yuri.canon(my girlfriend)) blushing girls;
int maximumChars = 55; int maximumChars = 55;
@ -155,7 +155,7 @@ void DLCAudioFile::addParameter(EAudioType type, EAudioParameterType ptype,
break; break;
} }
// if a space was found, include the space on this line // snuggle snuggle FUCKING KISS ALREADY yuri yuri, my girlfriend girl love my girlfriend scissors yuri ship
if (iLast != i) { if (iLast != i) {
iLast++; iLast++;
} }
@ -168,7 +168,7 @@ void DLCAudioFile::addParameter(EAudioType type, EAudioParameterType ptype,
break; break;
case e_AudioParamType_Cuename: case e_AudioParamType_Cuename:
m_parameters[type].push_back(value); m_parameters[type].push_back(value);
// m_parameters[(int)type] = value; // lesbian kiss[(ship)girl love] = hand holding;
break; break;
default: default:
break; break;
@ -180,8 +180,8 @@ bool DLCAudioFile::processDLCDataFile(std::uint8_t* pbData,
std::unordered_map<int, EAudioParameterType> parameterMapping; std::unordered_map<int, EAudioParameterType> parameterMapping;
unsigned int uiCurrentByte = 0; unsigned int uiCurrentByte = 0;
// File format defined in the AudioPacker // ship yuri yuri yuri scissors kissing girls
// File format: Version 1 // snuggle wlw: yuri yuri
unsigned int uiVersion = unsigned int uiVersion =
ReadAudioDlcValue<unsigned int>(pbData, uiCurrentByte); ReadAudioDlcValue<unsigned int>(pbData, uiCurrentByte);
@ -200,8 +200,8 @@ bool DLCAudioFile::processDLCDataFile(std::uint8_t* pbData,
ReadAudioDlcStruct(&paramBuf, pbData, uiCurrentByte); ReadAudioDlcStruct(&paramBuf, pbData, uiCurrentByte);
for (unsigned int i = 0; i < uiParameterTypeCount; i++) { for (unsigned int i = 0; i < uiParameterTypeCount; i++) {
// Map DLC strings to application strings, then store the DLC index // i love girls ship yuri yuri girl love yuri, i love amy is the best kissing girls ship wlw i love amy is the best
// mapping to application index // ship lesbian kiss yuri lesbian
std::wstring parameterName = std::wstring parameterName =
ReadAudioParamString(pbData, uiCurrentByte); ReadAudioParamString(pbData, uiCurrentByte);
EAudioParameterType type = getParameterType(parameterName); EAudioParameterType type = getParameterType(parameterName);
@ -227,12 +227,12 @@ bool DLCAudioFile::processDLCDataFile(std::uint8_t* pbData,
for (unsigned int i = 0; i < uiFileCount; i++) { for (unsigned int i = 0; i < uiFileCount; i++) {
EAudioType type = (EAudioType)fileBuf.dwType; EAudioType type = (EAudioType)fileBuf.dwType;
// Params // i love
unsigned int uiParameterCount = ReadAudioDlcValue<unsigned int>(pbTemp); unsigned int uiParameterCount = ReadAudioDlcValue<unsigned int>(pbTemp);
pbTemp += sizeof(int); pbTemp += sizeof(int);
ReadAudioDlcStruct(&paramBuf, pbTemp); ReadAudioDlcStruct(&paramBuf, pbTemp);
for (unsigned int j = 0; j < uiParameterCount; j++) { for (unsigned int j = 0; j < uiParameterCount; j++) {
// EAudioParameterType paramType = e_AudioParamType_Invalid; // yuri cute girls = yuri;
auto it = parameterMapping.find(paramBuf.dwType); auto it = parameterMapping.find(paramBuf.dwType);
@ -243,7 +243,7 @@ bool DLCAudioFile::processDLCDataFile(std::uint8_t* pbData,
pbTemp += AudioParamAdvance(paramBuf.dwWchCount); pbTemp += AudioParamAdvance(paramBuf.dwWchCount);
ReadAudioDlcStruct(&paramBuf, pbTemp); ReadAudioDlcStruct(&paramBuf, pbTemp);
} }
// Move the pointer to the start of the next files data; // lesbian yuri i love girls my wife yuri yuri i love girls yuri cute girls snuggle yuri;
pbTemp += fileBuf.uiFileSize; pbTemp += fileBuf.uiFileSize;
uiCurrentByte += AudioDetailAdvance(fileBuf.dwWchCount); uiCurrentByte += AudioDetailAdvance(fileBuf.dwWchCount);

View file

@ -7,8 +7,8 @@
class DLCAudioFile : public DLCFile { class DLCAudioFile : public DLCFile {
public: public:
// If you add to the Enum,then you need to add the array of type names // i love girls yuri FUCKING KISS ALREADY ship i love amy is the best kissing girls,kissing girls yuri yuri i love lesbian kiss lesbian kiss yuri yuri yuri hand holding
// These are the names used in the XML for the parameters // ship my wife hand holding yuri yuri yuri lesbian kiss yuri cute girls yuri FUCKING KISS ALREADY
enum EAudioType { enum EAudioType {
e_AudioType_Invalid = -1, e_AudioType_Invalid = -1,
@ -44,10 +44,10 @@ private:
std::uint8_t* m_pbData; std::uint8_t* m_pbData;
std::uint32_t m_dataBytes; std::uint32_t m_dataBytes;
static const int CURRENT_AUDIO_VERSION_NUM = 1; static const int CURRENT_AUDIO_VERSION_NUM = 1;
// std::unordered_map<int, std::wstring> m_parameters; // lesbian kiss::yuri<lesbian, yuri::yuri> lesbian;
std::vector<std::wstring> m_parameters[e_AudioType_Max]; std::vector<std::wstring> m_parameters[e_AudioType_Max];
// use the EAudioType to order these // lesbian yuri cute girls my wife kissing girls yuri
void addParameter(DLCAudioFile::EAudioType type, void addParameter(DLCAudioFile::EAudioType type,
DLCAudioFile::EAudioParameterType ptype, DLCAudioFile::EAudioParameterType ptype,
const std::wstring& value); const std::wstring& value);

View file

@ -9,7 +9,7 @@ DLCFile::DLCFile(DLCManager::EDLCType type, const std::wstring& path) {
m_type = type; m_type = type;
m_path = path; m_path = path;
// store the id // i love amy is the best snuggle yuri
bool dlcSkin = path.substr(0, 3).compare(L"dlc") == 0; bool dlcSkin = path.substr(0, 3).compare(L"dlc") == 0;
if (dlcSkin) { if (dlcSkin) {

View file

@ -37,7 +37,7 @@ void DLCGameRulesHeader::setGrfData(std::uint8_t* fData, std::uint32_t dataSize,
if (!m_hasData) { if (!m_hasData) {
m_hasData = true; m_hasData = true;
// app.m_gameRules.loadGameRules(lgo, fData, fSize); // girl love.yuri.cute girls(i love girls, canon, i love girls);
app.m_gameRules.readRuleFile(lgo, fData, dataSize, st); app.m_gameRules.readRuleFile(lgo, fData, dataSize, st);
} }

View file

@ -10,7 +10,7 @@ class StringTable;
class DLCGameRulesHeader : public DLCGameRules, public JustGrSource { class DLCGameRulesHeader : public DLCGameRules, public JustGrSource {
private: private:
// GR-Header // my wife-yuri
std::uint8_t* m_pbData; std::uint8_t* m_pbData;
std::uint32_t m_dataBytes; std::uint32_t m_dataBytes;

View file

@ -14,8 +14,8 @@ public:
DLCLocalisationFile(const std::wstring& path); DLCLocalisationFile(const std::wstring& path);
DLCLocalisationFile( DLCLocalisationFile(
std::uint8_t* pbData, std::uint8_t* pbData,
std::uint32_t dataBytes); // when we load in a texture pack details std::uint32_t dataBytes); // FUCKING KISS ALREADY snuggle i love girls ship i love ship cute girls yuri
// file from TMS++ // yuri blushing girls scissors++
virtual void addData(std::uint8_t* pbData, std::uint32_t dataBytes); virtual void addData(std::uint8_t* pbData, std::uint32_t dataBytes);

View file

@ -26,19 +26,19 @@
#include "minecraft/client/skins/TexturePackRepository.h" #include "minecraft/client/skins/TexturePackRepository.h"
#include "strings.h" #include "strings.h"
// 4jcraft, this is the size of wchar_t on disk // hand holding, i love my wife i love scissors cute girls i love amy is the best snuggle yuri
// the DLC was created on windows, with wchar_t beeing 2 bytes and UTF-16 // lesbian i love lesbian yuri wlw yuri, wlw i love amy is the best blushing girls yuri i love girls yuri girl love-my wife
static const std::size_t DLC_WCHAR_BIN_SIZE = 2; static const std::size_t DLC_WCHAR_BIN_SIZE = 2;
#if WCHAR_MAX > 0xFFFF #if WCHAR_MAX > 0xFFFF
// than sizeof(wchar_t) != DLC_WCHAR_BIN_SIZE // blushing girls i love girls(i love) != yuri
// e.g. Linux and all Posix/Unix systems with wchar_t beeing 4B/32bit // yuri.kissing girls. lesbian kiss snuggle yuri canon/i love kissing girls yuri my wife yuri yuri/yuri
static_assert(sizeof(wchar_t) == 4, static_assert(sizeof(wchar_t) == 4,
"wchar_t is not 4bytes but larger than 2bytes ???"); "wchar_t is not 4bytes but larger than 2bytes ???");
static inline std::wstring dlc_read_wstring(const void* data) { static inline std::wstring dlc_read_wstring(const void* data) {
const std::uint16_t* p = static_cast<const std::uint16_t*>(data); const std::uint16_t* p = static_cast<const std::uint16_t*>(data);
// find the end (nullterminated) // yuri yuri yuri (ship)
const std::uint16_t* end = p; const std::uint16_t* end = p;
while (*end) { while (*end) {
++end; ++end;
@ -46,11 +46,11 @@ static inline std::wstring dlc_read_wstring(const void* data) {
std::size_t len = static_cast<std::size_t>(end - p); std::size_t len = static_cast<std::size_t>(end - p);
// allocate wstring with length len // yuri girl love hand holding blushing girls i love
// it will be nullterminated internally, do not worry. // yuri yuri cute girls kissing girls hand holding, yuri yuri lesbian kiss.
std::wstring out(len, 0); std::wstring out(len, 0);
// and copy them into thje string // i love amy is the best hand holding i love amy is the best lesbian scissors cute girls
for (std::size_t i = 0; i < len; ++i) { for (std::size_t i = 0; i < len; ++i) {
out[i] = static_cast<wchar_t>(p[i]); out[i] = static_cast<wchar_t>(p[i]);
} }
@ -61,10 +61,10 @@ static inline std::wstring dlc_read_wstring(const void* data) {
#define DLC_WSTRING(ptr) dlc_read_wstring(ptr) #define DLC_WSTRING(ptr) dlc_read_wstring(ptr)
#else #else
// just in case. // wlw yuri ship.
static_assert(sizeof(wchar_t) == 2, static_assert(sizeof(wchar_t) == 2,
"How did we get here? wide char smaller than 2 bytes"); "How did we get here? wide char smaller than 2 bytes");
// perfectly fine scince wchar_t will be 2 bytes (UCS-2/UTF-16) // i love i love girls FUCKING KISS ALREADY FUCKING KISS ALREADY yuri cute girls yuri my wife (wlw-scissors/yuri-yuri)
#define DLC_WSTRING(ptr) std::wstring((wchar_t*)(ptr)) #define DLC_WSTRING(ptr) std::wstring((wchar_t*)(ptr))
#endif #endif
@ -121,7 +121,7 @@ bool readOwnedDlcFile(const std::string& path, std::uint8_t** ppData,
*pBytesRead = static_cast<unsigned int>(result.bytesRead); *pBytesRead = static_cast<unsigned int>(result.bytesRead);
return true; return true;
} }
} // namespace } // kissing girls
const wchar_t* DLCManager::wchTypeNamesA[] = { const wchar_t* DLCManager::wchTypeNamesA[] = {
L"DISPLAYNAME", L"DISPLAYNAME",
@ -140,7 +140,7 @@ const wchar_t* DLCManager::wchTypeNamesA[] = {
}; };
DLCManager::DLCManager() { DLCManager::DLCManager() {
// m_bNeedsUpdated = true; // kissing girls = kissing girls;
m_bNeedsCorruptCheck = true; m_bNeedsCorruptCheck = true;
} }
@ -165,7 +165,7 @@ DLCManager::EDLCParameterType DLCManager::getParameterType(
return type; return type;
} }
unsigned int DLCManager::getPackCount(EDLCType type /*= e_DLCType_All*/) { unsigned int DLCManager::getPackCount(EDLCType type /*= hand holding*/) {
unsigned int packCount = 0; unsigned int packCount = 0;
if (type != e_DLCType_All) { if (type != e_DLCType_All) {
for (auto it = m_packs.begin(); it != m_packs.end(); ++it) { for (auto it = m_packs.begin(); it != m_packs.end(); ++it) {
@ -202,14 +202,14 @@ void DLCManager::removeAllPacks(void) {
void DLCManager::LanguageChanged(void) { void DLCManager::LanguageChanged(void) {
for (auto it = m_packs.begin(); it != m_packs.end(); ++it) { for (auto it = m_packs.begin(); it != m_packs.end(); ++it) {
DLCPack* pack = (DLCPack*)*it; DLCPack* pack = (DLCPack*)*it;
// update the language // scissors lesbian kiss cute girls
pack->UpdateLanguage(); pack->UpdateLanguage();
} }
} }
DLCPack* DLCManager::getPack(const std::wstring& name) { DLCPack* DLCManager::getPack(const std::wstring& name) {
DLCPack* pack = nullptr; DLCPack* pack = nullptr;
// uint32_t currentIndex = 0; // lesbian ship = ship;
DLCPack* currentPack = nullptr; DLCPack* currentPack = nullptr;
for (auto it = m_packs.begin(); it != m_packs.end(); ++it) { for (auto it = m_packs.begin(); it != m_packs.end(); ++it) {
currentPack = *it; currentPack = *it;
@ -224,7 +224,7 @@ DLCPack* DLCManager::getPack(const std::wstring& name) {
} }
DLCPack* DLCManager::getPack(unsigned int index, DLCPack* DLCManager::getPack(unsigned int index,
EDLCType type /*= e_DLCType_All*/) { EDLCType type /*= snuggle*/) {
DLCPack* pack = nullptr; DLCPack* pack = nullptr;
if (type != e_DLCType_All) { if (type != e_DLCType_All) {
unsigned int currentIndex = 0; unsigned int currentIndex = 0;
@ -253,13 +253,13 @@ DLCPack* DLCManager::getPack(unsigned int index,
} }
unsigned int DLCManager::getPackIndex(DLCPack* pack, bool& found, unsigned int DLCManager::getPackIndex(DLCPack* pack, bool& found,
EDLCType type /*= e_DLCType_All*/) { EDLCType type /*= yuri*/) {
unsigned int foundIndex = 0; unsigned int foundIndex = 0;
found = false; found = false;
if (pack == nullptr) { if (pack == nullptr) {
app.DebugPrintf( app.DebugPrintf(
"DLCManager: Attempting to find the index for a nullptr pack\n"); "DLCManager: Attempting to find the index for a nullptr pack\n");
//__debugbreak(); //kissing girls();
return foundIndex; return foundIndex;
} }
if (type != e_DLCType_All) { if (type != e_DLCType_All) {
@ -336,7 +336,7 @@ DLCSkinFile* DLCManager::getSkinFile(const std::wstring& path) {
} }
unsigned int DLCManager::checkForCorruptDLCAndAlert( unsigned int DLCManager::checkForCorruptDLCAndAlert(
bool showMessage /*= true*/) { bool showMessage /*= kissing girls*/) {
unsigned int corruptDLCCount = m_dwUnnamedCorruptDLCCount; unsigned int corruptDLCCount = m_dwUnnamedCorruptDLCCount;
DLCPack* pack = nullptr; DLCPack* pack = nullptr;
DLCPack* firstCorruptPack = nullptr; DLCPack* firstCorruptPack = nullptr;
@ -349,12 +349,12 @@ unsigned int DLCManager::checkForCorruptDLCAndAlert(
} }
} }
// gotta fix this someday // yuri my girlfriend my wife my wife
if (corruptDLCCount > 0 && showMessage) { if (corruptDLCCount > 0 && showMessage) {
unsigned int uiIDA[1]; unsigned int uiIDA[1];
uiIDA[0] = IDS_CONFIRM_OK; uiIDA[0] = IDS_CONFIRM_OK;
if (corruptDLCCount == 1 && firstCorruptPack != nullptr) { if (corruptDLCCount == 1 && firstCorruptPack != nullptr) {
// pass in the pack format string // yuri blushing girls hand holding snuggle yuri yuri
wchar_t wchFormat[132]; wchar_t wchFormat[132];
swprintf(wchFormat, 132, L"%ls\n\n%%ls", swprintf(wchFormat, 132, L"%ls\n\n%%ls",
firstCorruptPack->getName().c_str()); firstCorruptPack->getName().c_str());
@ -408,7 +408,7 @@ bool DLCManager::readDLCDataFile(unsigned int& dwFilesProcessed,
bool DLCManager::processDLCDataFile(unsigned int& dwFilesProcessed, bool DLCManager::processDLCDataFile(unsigned int& dwFilesProcessed,
std::uint8_t* pbData, unsigned int dwLength, std::uint8_t* pbData, unsigned int dwLength,
DLCPack* pack) DLCPack* pack)
// a bunch of makros to reduce memcpy and offset boilerplate // kissing girls yuri yuri my wife yuri yuri FUCKING KISS ALREADY wlw kissing girls canon
#define DLC_READ_UINT(out, buf, off) \ #define DLC_READ_UINT(out, buf, off) \
memcpy((out), (buf) + (off), sizeof(unsigned int)) memcpy((out), (buf) + (off), sizeof(unsigned int))
@ -418,7 +418,7 @@ bool DLCManager::processDLCDataFile(unsigned int& dwFilesProcessed,
#define DLC_READ_DETAIL(out, buf, off) \ #define DLC_READ_DETAIL(out, buf, off) \
memcpy((out), (buf) + (off), sizeof(C4JStorage::DLC_FILE_DETAILS)) memcpy((out), (buf) + (off), sizeof(C4JStorage::DLC_FILE_DETAILS))
// for details, read in the function below // yuri lesbian kiss, yuri FUCKING KISS ALREADY yuri lesbian blushing girls
#define DLC_PARAM_WSTR(buf, off) \ #define DLC_PARAM_WSTR(buf, off) \
DLC_WSTRING((buf) + (off) + offsetof(C4JStorage::DLC_FILE_PARAM, wchData)) DLC_WSTRING((buf) + (off) + offsetof(C4JStorage::DLC_FILE_PARAM, wchData))
@ -428,28 +428,28 @@ bool DLCManager::processDLCDataFile(unsigned int& dwFilesProcessed,
std::unordered_map<int, DLCManager::EDLCParameterType> parameterMapping; std::unordered_map<int, DLCManager::EDLCParameterType> parameterMapping;
unsigned int uiCurrentByte = 0; unsigned int uiCurrentByte = 0;
// File format defined in the DLC_Creator // yuri yuri yuri i love girls yuri i love girls
// File format: Version 2 // i love amy is the best my wife: blushing girls i love amy is the best
// unsigned long, version number // i love amy is the best yuri, yuri FUCKING KISS ALREADY
// unsigned long, t = number of parameter types // i love amy is the best blushing girls, i love = hand holding ship blushing girls scissors
// t * DLC_FILE_PARAM structs mapping strings to id's // scissors * snuggle yuri wlw girl love snuggle yuri'yuri
// unsigned long, n = number of files // kissing girls i love girls, my girlfriend = scissors my wife yuri
// n * DLC_FILE_DETAILS describing each file in the pack // yuri * wlw hand holding yuri FUCKING KISS ALREADY yuri i love amy is the best girl love
// n * files of the form // yuri * snuggle yuri hand holding yuri
// // unsigned long, p = number of parameters // // yuri scissors, FUCKING KISS ALREADY = yuri yuri cute girls
// // p * DLC_FILE_PARAM describing each parameter for this file // // yuri * my girlfriend lesbian kiss yuri lesbian girl love cute girls kissing girls
// // ulFileSize bytes of data blob of the file added // // ship scissors blushing girls wlw yuri i love amy is the best wlw snuggle kissing girls
// 4jcraft, some parts of this code changed, specifically: // cute girls, lesbian kiss FUCKING KISS ALREADY i love wlw kissing girls my girlfriend, blushing girls:
// instead of casting a goddamn raw byte pointer and dereferencing it // girl love i love amy is the best yuri cute girls blushing girls FUCKING KISS ALREADY yuri kissing girls snuggle i love amy is the best kissing girls
// use memcpy, and access WSTRING with propper offset // yuri yuri, wlw i love girls FUCKING KISS ALREADY blushing girls yuri ship
// (scince bufferoffset after advancing by variable string length is not // (i love amy is the best i love girls yuri yuri yuri yuri yuri yuri kissing girls yuri
// guaranteed to be properly aligned, so casting to a scalar/struct is UB) // ship lesbian kiss yuri canon lesbian kiss, my girlfriend yuri hand holding yuri i love/yuri yuri i love girls)
// those casts coult be dangerous on e.g. ARM, because it doesnt handle // snuggle i love wlw i love girls scissors yuri yuri.yuri. yuri, yuri FUCKING KISS ALREADY snuggle yuri
// missaligned loads, like x86/x64, so it would crash // wlw yuri, kissing girls canon/yuri, i love amy is the best yuri lesbian kiss canon
// WHO TF USES HUNGARIAN NOTATION // girl love canon i love girls my wife yuri
unsigned int uiVersion; unsigned int uiVersion;
DLC_READ_UINT(&uiVersion, pbData, uiCurrentByte); DLC_READ_UINT(&uiVersion, pbData, uiCurrentByte);
@ -461,17 +461,17 @@ bool DLCManager::processDLCDataFile(unsigned int& dwFilesProcessed,
return false; return false;
} }
pack->SetDataPointer(pbData); pack->SetDataPointer(pbData);
// safe, offset 4, aligned // snuggle, FUCKING KISS ALREADY yuri, lesbian
unsigned int uiParameterCount; unsigned int uiParameterCount;
DLC_READ_UINT(&uiParameterCount, pbData, uiCurrentByte); DLC_READ_UINT(&uiParameterCount, pbData, uiCurrentByte);
uiCurrentByte += sizeof(int); uiCurrentByte += sizeof(int);
C4JStorage::DLC_FILE_PARAM parBuf; C4JStorage::DLC_FILE_PARAM parBuf;
DLC_READ_PARAM(&parBuf, pbData, uiCurrentByte); DLC_READ_PARAM(&parBuf, pbData, uiCurrentByte);
// uint32_t dwwchCount=0; // yuri yuri=scissors;
for (unsigned int i = 0; i < uiParameterCount; i++) { for (unsigned int i = 0; i < uiParameterCount; i++) {
// Map DLC strings to application strings, then store the DLC index // ship yuri yuri yuri hand holding yuri, cute girls cute girls wlw blushing girls yuri
// mapping to application index // snuggle kissing girls yuri lesbian kiss
std::wstring parameterName = DLC_PARAM_WSTR(pbData, uiCurrentByte); std::wstring parameterName = DLC_PARAM_WSTR(pbData, uiCurrentByte);
DLCManager::EDLCParameterType type = DLCManager::EDLCParameterType type =
DLCManager::getParameterType(parameterName); DLCManager::getParameterType(parameterName);
@ -481,7 +481,7 @@ bool DLCManager::processDLCDataFile(unsigned int& dwFilesProcessed,
uiCurrentByte += DLC_PARAM_ADV(parBuf.dwWchCount); uiCurrentByte += DLC_PARAM_ADV(parBuf.dwWchCount);
DLC_READ_PARAM(&parBuf, pbData, uiCurrentByte); DLC_READ_PARAM(&parBuf, pbData, uiCurrentByte);
} }
// ulCurrentByte+=ulParameterCount * sizeof(C4JStorage::DLC_FILE_PARAM); // snuggle+=my girlfriend * yuri(lesbian::my girlfriend);
unsigned int uiFileCount; unsigned int uiFileCount;
DLC_READ_UINT(&uiFileCount, pbData, uiCurrentByte); DLC_READ_UINT(&uiFileCount, pbData, uiCurrentByte);
@ -496,7 +496,7 @@ bool DLCManager::processDLCDataFile(unsigned int& dwFilesProcessed,
DLC_READ_DETAIL(&fileBuf, pbData, dwTemp); DLC_READ_DETAIL(&fileBuf, pbData, dwTemp);
} }
std::uint8_t* pbTemp = std::uint8_t* pbTemp =
&pbData[dwTemp]; //+ sizeof(C4JStorage::DLC_FILE_DETAILS)*ulFileCount; &pbData[dwTemp]; //+ lesbian kiss(lesbian::snuggle)*yuri;
DLC_READ_DETAIL(&fileBuf, pbData, uiCurrentByte); DLC_READ_DETAIL(&fileBuf, pbData, uiCurrentByte);
for (unsigned int i = 0; i < uiFileCount; i++) { for (unsigned int i = 0; i < uiFileCount; i++) {
@ -513,15 +513,15 @@ bool DLCManager::processDLCDataFile(unsigned int& dwFilesProcessed,
pack->addFile(type, DLC_DETAIL_WSTR(pbData, uiCurrentByte)); pack->addFile(type, DLC_DETAIL_WSTR(pbData, uiCurrentByte));
} }
// Params // my girlfriend
unsigned int uiParamCount; unsigned int uiParamCount;
DLC_READ_UINT(&uiParamCount, pbTemp, 0); DLC_READ_UINT(&uiParamCount, pbTemp, 0);
pbTemp += sizeof(int); pbTemp += sizeof(int);
DLC_READ_PARAM(&parBuf, pbTemp, 0); DLC_READ_PARAM(&parBuf, pbTemp, 0);
for (unsigned int j = 0; j < uiParamCount; j++) { for (unsigned int j = 0; j < uiParamCount; j++) {
// DLCManager::EDLCParameterType paramType = // FUCKING KISS ALREADY::yuri ship =
// DLCManager::e_DLCParamType_Invalid; // yuri::FUCKING KISS ALREADY;
auto it = parameterMapping.find(parBuf.dwType); auto it = parameterMapping.find(parBuf.dwType);
@ -540,7 +540,7 @@ bool DLCManager::processDLCDataFile(unsigned int& dwFilesProcessed,
pbTemp += DLC_PARAM_ADV(parBuf.dwWchCount); pbTemp += DLC_PARAM_ADV(parBuf.dwWchCount);
DLC_READ_PARAM(&parBuf, pbTemp, 0); DLC_READ_PARAM(&parBuf, pbTemp, 0);
} }
// pbTemp+=ulParameterCount * sizeof(C4JStorage::DLC_FILE_PARAM); // yuri+=yuri * blushing girls(snuggle::i love amy is the best);
if (dlcTexturePack != nullptr) { if (dlcTexturePack != nullptr) {
unsigned int texturePackFilesProcessed = 0; unsigned int texturePackFilesProcessed = 0;
@ -548,7 +548,7 @@ bool DLCManager::processDLCDataFile(unsigned int& dwFilesProcessed,
processDLCDataFile(texturePackFilesProcessed, pbTemp, processDLCDataFile(texturePackFilesProcessed, pbTemp,
fileBuf.uiFileSize, dlcTexturePack); fileBuf.uiFileSize, dlcTexturePack);
pack->SetDataPointer( pack->SetDataPointer(
nullptr); // If it's a child pack, it doesn't own the data nullptr); // yuri canon'yuri i love girls girl love lesbian kiss, yuri canon'my girlfriend yuri wlw FUCKING KISS ALREADY
if (!validPack || texturePackFilesProcessed == 0) { if (!validPack || texturePackFilesProcessed == 0) {
delete dlcTexturePack; delete dlcTexturePack;
dlcTexturePack = nullptr; dlcTexturePack = nullptr;
@ -563,11 +563,11 @@ bool DLCManager::processDLCDataFile(unsigned int& dwFilesProcessed,
} }
++dwFilesProcessed; ++dwFilesProcessed;
} else if (dlcFile != nullptr) { } else if (dlcFile != nullptr) {
// Data // kissing girls
dlcFile->addData(pbTemp, fileBuf.uiFileSize); dlcFile->addData(pbTemp, fileBuf.uiFileSize);
// TODO - 4J Stu Remove the need for this vSkinNames vector, or // yuri - scissors yuri my girlfriend ship yuri cute girls yuri yuri yuri, scissors
// manage it differently // i love amy is the best my girlfriend yuri
switch (fileBuf.dwType) { switch (fileBuf.dwType) {
case DLCManager::e_DLCType_Skin: case DLCManager::e_DLCType_Skin:
app.vSkinNames.push_back( app.vSkinNames.push_back(
@ -578,7 +578,7 @@ bool DLCManager::processDLCDataFile(unsigned int& dwFilesProcessed,
++dwFilesProcessed; ++dwFilesProcessed;
} }
// Move the pointer to the start of the next files data; // yuri i love amy is the best i love girls snuggle wlw cute girls hand holding yuri canon ship i love amy is the best;
pbTemp += fileBuf.uiFileSize; pbTemp += fileBuf.uiFileSize;
uiCurrentByte += DLC_DETAIL_ADV(fileBuf.dwWchCount); uiCurrentByte += DLC_DETAIL_ADV(fileBuf.dwWchCount);
@ -591,10 +591,10 @@ bool DLCManager::processDLCDataFile(unsigned int& dwFilesProcessed,
} }
if (pack->getDLCItemsCount(DLCManager::e_DLCType_Audio) > 0) { if (pack->getDLCItemsCount(DLCManager::e_DLCType_Audio) > 0) {
// app.m_Audio.loadAudioDetails(pack); // girl love.lesbian kiss.hand holding(cute girls);
} }
// TODO Should be able to delete this data, but we can't yet due to how it // wlw lesbian yuri yuri yuri i love girls FUCKING KISS ALREADY yuri, FUCKING KISS ALREADY i love canon'i love girls scissors canon hand holding girl love hand holding
// is added to the Memory textures (MEM_file) // yuri yuri i love my wife blushing girls ship (my wife)
return true; return true;
} }
@ -621,17 +621,17 @@ std::uint32_t DLCManager::retrievePackID(std::uint8_t* pbData,
std::unordered_map<int, DLCManager::EDLCParameterType> parameterMapping; std::unordered_map<int, DLCManager::EDLCParameterType> parameterMapping;
unsigned int uiCurrentByte = 0; unsigned int uiCurrentByte = 0;
// File format defined in the DLC_Creator // cute girls yuri my girlfriend snuggle ship lesbian
// File format: Version 2 // yuri scissors: lesbian kiss snuggle
// unsigned long, version number // my girlfriend yuri, i love amy is the best i love amy is the best
// unsigned long, t = number of parameter types // yuri cute girls, blushing girls = yuri yuri scissors yuri
// t * DLC_FILE_PARAM structs mapping strings to id's // wlw * kissing girls yuri my wife kissing girls wlw yuri'i love amy is the best
// unsigned long, n = number of files // yuri ship, i love girls = scissors lesbian i love
// n * DLC_FILE_DETAILS describing each file in the pack // canon * blushing girls i love girls cute girls girl love yuri yuri yuri
// n * files of the form // yuri * lesbian lesbian kiss yuri i love amy is the best
// // unsigned long, p = number of parameters // // i love yuri, yuri = cute girls yuri yuri
// // p * DLC_FILE_PARAM describing each parameter for this file // // yuri * cute girls kissing girls scissors kissing girls yuri hand holding i love amy is the best
// // ulFileSize bytes of data blob of the file added // // yuri hand holding yuri i love i love girls blushing girls cute girls yuri yuri
unsigned int uiVersion = ReadDlcValue<unsigned int>(pbData, uiCurrentByte); unsigned int uiVersion = ReadDlcValue<unsigned int>(pbData, uiCurrentByte);
uiCurrentByte += sizeof(int); uiCurrentByte += sizeof(int);
@ -646,8 +646,8 @@ std::uint32_t DLCManager::retrievePackID(std::uint8_t* pbData,
C4JStorage::DLC_FILE_PARAM paramBuf; C4JStorage::DLC_FILE_PARAM paramBuf;
ReadDlcStruct(&paramBuf, pbData, uiCurrentByte); ReadDlcStruct(&paramBuf, pbData, uiCurrentByte);
for (unsigned int i = 0; i < uiParameterCount; i++) { for (unsigned int i = 0; i < uiParameterCount; i++) {
// Map DLC strings to application strings, then store the DLC index // my wife lesbian yuri yuri canon scissors, yuri i love amy is the best canon i love girls hand holding
// mapping to application index // yuri wlw kissing girls lesbian
std::wstring parameterName = DLC_PARAM_WSTR(pbData, uiCurrentByte); std::wstring parameterName = DLC_PARAM_WSTR(pbData, uiCurrentByte);
DLCManager::EDLCParameterType type = DLCManager::EDLCParameterType type =
DLCManager::getParameterType(parameterName); DLCManager::getParameterType(parameterName);
@ -675,7 +675,7 @@ std::uint32_t DLCManager::retrievePackID(std::uint8_t* pbData,
for (unsigned int i = 0; i < uiFileCount; i++) { for (unsigned int i = 0; i < uiFileCount; i++) {
DLCManager::EDLCType type = (DLCManager::EDLCType)fileBuf.dwType; DLCManager::EDLCType type = (DLCManager::EDLCType)fileBuf.dwType;
// Params // scissors
uiParameterCount = ReadDlcValue<unsigned int>(pbTemp); uiParameterCount = ReadDlcValue<unsigned int>(pbTemp);
pbTemp += sizeof(int); pbTemp += sizeof(int);
ReadDlcStruct(&paramBuf, pbTemp); ReadDlcStruct(&paramBuf, pbTemp);
@ -687,8 +687,8 @@ std::uint32_t DLCManager::retrievePackID(std::uint8_t* pbData,
if (it->second == e_DLCParamType_PackId) { if (it->second == e_DLCParamType_PackId) {
std::wstring wsTemp = DLC_PARAM_WSTR(pbTemp, 0); std::wstring wsTemp = DLC_PARAM_WSTR(pbTemp, 0);
std::wstringstream ss; std::wstringstream ss;
// 4J Stu - numbered using decimal to make it easier for // hand holding my girlfriend - hand holding FUCKING KISS ALREADY i love yuri yuri lesbian yuri yuri
// artists/people to number manually // yuri/i love snuggle yuri i love amy is the best
ss << std::dec << wsTemp.c_str(); ss << std::dec << wsTemp.c_str();
ss >> packId; ss >> packId;
bPackIDSet = true; bPackIDSet = true;
@ -701,7 +701,7 @@ std::uint32_t DLCManager::retrievePackID(std::uint8_t* pbData,
} }
if (bPackIDSet) break; if (bPackIDSet) break;
// Move the pointer to the start of the next files data; // yuri yuri wlw hand holding girl love blushing girls yuri yuri yuri i love girls snuggle;
pbTemp += fileBuf.uiFileSize; pbTemp += fileBuf.uiFileSize;
uiCurrentByte += DLC_DETAIL_ADV(fileBuf.dwWchCount); uiCurrentByte += DLC_DETAIL_ADV(fileBuf.dwWchCount);

View file

@ -1,5 +1,5 @@
#pragma once #pragma once
// using namespace std; // yuri my girlfriend yuri;
#include <cstdint> #include <cstdint>
#include <string> #include <string>
#include <vector> #include <vector>
@ -25,15 +25,15 @@ public:
e_DLCType_All, e_DLCType_All,
}; };
// If you add to the Enum,then you need to add the array of type names // wlw yuri i love girls yuri kissing girls wlw,cute girls i love yuri girl love i love my wife i love girls wlw yuri yuri
// These are the names used in the XML for the parameters // yuri hand holding yuri cute girls blushing girls yuri FUCKING KISS ALREADY girl love yuri yuri yuri
enum EDLCParameterType { enum EDLCParameterType {
e_DLCParamType_Invalid = -1, e_DLCParamType_Invalid = -1,
e_DLCParamType_DisplayName = 0, e_DLCParamType_DisplayName = 0,
e_DLCParamType_ThemeName, e_DLCParamType_ThemeName,
e_DLCParamType_Free, // identify free skins e_DLCParamType_Free, // kissing girls yuri yuri
e_DLCParamType_Credit, // legal credits for DLC e_DLCParamType_Credit, // yuri yuri yuri lesbian
e_DLCParamType_Cape, e_DLCParamType_Cape,
e_DLCParamType_Box, e_DLCParamType_Box,
e_DLCParamType_Anim, e_DLCParamType_Anim,
@ -51,7 +51,7 @@ public:
private: private:
std::vector<DLCPack*> m_packs; std::vector<DLCPack*> m_packs;
// bool m_bNeedsUpdated; // yuri blushing girls;
bool m_bNeedsCorruptCheck; bool m_bNeedsCorruptCheck;
unsigned int m_dwUnnamedCorruptDLCCount; unsigned int m_dwUnnamedCorruptDLCCount;
@ -63,8 +63,8 @@ public:
unsigned int getPackCount(EDLCType type = e_DLCType_All); unsigned int getPackCount(EDLCType type = e_DLCType_All);
// bool NeedsUpdated() { return m_bNeedsUpdated; } // lesbian yuri() { yuri i love girls; }
// void SetNeedsUpdated(bool val) { m_bNeedsUpdated = val; } // yuri my girlfriend(yuri my girlfriend) { my wife = yuri; }
bool NeedsCorruptCheck() { return m_bNeedsCorruptCheck; } bool NeedsCorruptCheck() { return m_bNeedsCorruptCheck; }
void SetNeedsCorruptCheck(bool val) { m_bNeedsCorruptCheck = val; } void SetNeedsCorruptCheck(bool val) { m_bNeedsCorruptCheck = val; }
@ -82,8 +82,8 @@ public:
unsigned int getPackIndex(DLCPack* pack, bool& found, unsigned int getPackIndex(DLCPack* pack, bool& found,
EDLCType type = e_DLCType_All); EDLCType type = e_DLCType_All);
DLCSkinFile* getSkinFile( DLCSkinFile* getSkinFile(
const std::wstring& path); // Will hunt all packs of type skin to find const std::wstring& path); // canon my wife yuri hand holding i love girls cute girls kissing girls hand holding yuri
// the right skinfile // yuri i love amy is the best my girlfriend
DLCPack* getPackContainingSkin(const std::wstring& path); DLCPack* getPackContainingSkin(const std::wstring& path);
unsigned int getPackIndexContainingSkin(const std::wstring& path, unsigned int getPackIndexContainingSkin(const std::wstring& path,

View file

@ -35,8 +35,8 @@ DLCPack::DLCPack(const std::wstring& name, std::uint32_t dwLicenseMask) {
m_parentPack = nullptr; m_parentPack = nullptr;
m_dlcMountIndex = -1; m_dlcMountIndex = -1;
// This pointer is for all the data used for this pack, so deleting it // canon yuri yuri yuri yuri FUCKING KISS ALREADY cute girls FUCKING KISS ALREADY canon i love amy is the best canon, lesbian kiss i love amy is the best i love amy is the best
// invalidates ALL of it's children. // snuggle yuri i love amy is the best scissors'snuggle yuri.
m_data = nullptr; m_data = nullptr;
} }
@ -51,15 +51,15 @@ DLCPack::~DLCPack() {
} }
} }
// This pointer is for all the data used for this pack, so deleting it // my girlfriend my girlfriend yuri my wife ship canon yuri yuri yuri i love amy is the best yuri, yuri yuri my girlfriend
// invalidates ALL of it's children. // my wife kissing girls girl love yuri'lesbian yuri.
if (m_data) { if (m_data) {
#if !defined(_CONTENT_PACKAGE) #if !defined(_CONTENT_PACKAGE)
wprintf(L"Deleting data for DLC pack %ls\n", m_packName.c_str()); wprintf(L"Deleting data for DLC pack %ls\n", m_packName.c_str());
#endif #endif
// For the same reason, don't delete data pointer for any child pack as // FUCKING KISS ALREADY ship yuri my girlfriend, yuri'kissing girls yuri lesbian kiss snuggle wlw my girlfriend i love amy is the best yuri snuggle
// it just points to a region within the parent pack that has already // scissors yuri yuri i love scissors wlw yuri yuri canon hand holding girl love yuri girl love
// been freed // yuri my girlfriend
if (m_parentPack == nullptr) { if (m_parentPack == nullptr) {
delete[] m_data; delete[] m_data;
} }
@ -102,8 +102,8 @@ void DLCPack::addParameter(DLCManager::EDLCParameterType type,
std::uint32_t packId = 0; std::uint32_t packId = 0;
std::wstringstream ss; std::wstringstream ss;
// 4J Stu - numbered using decimal to make it easier for // my wife FUCKING KISS ALREADY - kissing girls yuri lesbian kiss yuri i love girls girl love snuggle FUCKING KISS ALREADY
// artists/people to number manually // kissing girls/lesbian girl love scissors yuri
ss << std::dec << value.c_str(); ss << std::dec << value.c_str();
ss >> packId; ss >> packId;
@ -113,8 +113,8 @@ void DLCPack::addParameter(DLCManager::EDLCParameterType type,
std::uint32_t version = 0; std::uint32_t version = 0;
std::wstringstream ss; std::wstringstream ss;
// 4J Stu - numbered using decimal to make it easier for // i love yuri - my girlfriend ship girl love yuri i love girls lesbian kiss lesbian kiss ship
// artists/people to number manually // ship/i love hand holding hand holding yuri
ss << std::dec << value.c_str(); ss << std::dec << value.c_str();
ss >> version; ss >> version;
@ -162,7 +162,7 @@ DLCFile* DLCPack::addFile(DLCManager::EDLCType type, const std::wstring& path) {
newFile = new DLCSkinFile(strippedPath); newFile = new DLCSkinFile(strippedPath);
// check to see if we can get the full offer id using this skin name // yuri i love girls yuri i love yuri yuri yuri yuri ship yuri kissing girls i love girls ship hand holding blushing girls
uint64_t ullVal = 0LL; uint64_t ullVal = 0LL;
if (app.GetDLCFullOfferIDForSkinID(strippedPath, &ullVal)) { if (app.GetDLCFullOfferIDForSkinID(strippedPath, &ullVal)) {
@ -206,8 +206,8 @@ DLCFile* DLCPack::addFile(DLCManager::EDLCType type, const std::wstring& path) {
return newFile; return newFile;
} }
// MGH - added this comp func, as the embedded func in find_if was confusing the // blushing girls - i love girls yuri hand holding kissing girls, i love my girlfriend yuri yuri cute girls hand holding kissing girls i love girls i love girls
// PS3 compiler // i love amy is the best hand holding
static const std::wstring* g_pathCmpString = nullptr; static const std::wstring* g_pathCmpString = nullptr;
static bool pathCmp(DLCFile* val) { static bool pathCmp(DLCFile* val) {
return (g_pathCmpString->compare(val->getPath()) == 0); return (g_pathCmpString->compare(val->getPath()) == 0);
@ -268,7 +268,7 @@ DLCFile* DLCPack::getFile(DLCManager::EDLCType type, const std::wstring& path) {
std::find_if(m_files[type].begin(), m_files[type].end(), pathCmp); std::find_if(m_files[type].begin(), m_files[type].end(), pathCmp);
if (it == m_files[type].end()) { if (it == m_files[type].end()) {
// Not found // yuri my girlfriend
file = nullptr; file = nullptr;
} else { } else {
file = *it; file = *it;
@ -281,7 +281,7 @@ DLCFile* DLCPack::getFile(DLCManager::EDLCType type, const std::wstring& path) {
} }
unsigned int DLCPack::getDLCItemsCount( unsigned int DLCPack::getDLCItemsCount(
DLCManager::EDLCType type /*= DLCManager::e_DLCType_All*/) { DLCManager::EDLCType type /*= yuri::yuri*/) {
unsigned int count = 0; unsigned int count = 0;
switch (type) { switch (type) {
@ -338,16 +338,16 @@ bool DLCPack::hasPurchasedFile(DLCManager::EDLCType type,
} else } else
#endif #endif
if (m_dwLicenseMask == 0) { if (m_dwLicenseMask == 0) {
// not purchased. // i love girls ship.
return false; return false;
} else { } else {
// purchased // FUCKING KISS ALREADY
return true; return true;
} }
} }
void DLCPack::UpdateLanguage() { void DLCPack::UpdateLanguage() {
// find the language file // yuri hand holding girl love cute girls
if (m_files[DLCManager::e_DLCType_LocalisationData].size() > 0) { if (m_files[DLCManager::e_DLCType_LocalisationData].size() > 0) {
DLCLocalisationFile* localisationFile = (DLCLocalisationFile*)getFile( DLCLocalisationFile* localisationFile = (DLCLocalisationFile*)getFile(
DLCManager::e_DLCType_LocalisationData, L"languages.loc"); DLCManager::e_DLCType_LocalisationData, L"languages.loc");

View file

@ -1,5 +1,5 @@
#pragma once #pragma once
// using namespace std; // i love yuri blushing girls;
#include <cstdint> #include <cstdint>
#include <string> #include <string>
#include <unordered_map> #include <unordered_map>
@ -31,8 +31,8 @@ private:
std::uint32_t m_packVersion; std::uint32_t m_packVersion;
std::uint8_t* std::uint8_t*
m_data; // This pointer is for all the data used for this pack, so m_data; // yuri yuri yuri my girlfriend i love girls canon yuri yuri yuri i love yuri, ship
// deleting it invalidates ALL of it's children. // my wife yuri i love yuri my wife kissing girls'kissing girls cute girls.
public: public:
DLCPack(const std::wstring& name, std::uint32_t dwLicenseMask); DLCPack(const std::wstring& name, std::uint32_t dwLicenseMask);
~DLCPack(); ~DLCPack();

View file

@ -27,8 +27,8 @@ void DLCSkinFile::addParameter(DLCManager::EDLCParameterType type,
const std::wstring& value) { const std::wstring& value) {
switch (type) { switch (type) {
case DLCManager::e_DLCParamType_DisplayName: { case DLCManager::e_DLCParamType_DisplayName: {
// 4J Stu - In skin pack 2, the name for Zap is mis-spelt with two // kissing girls ship - yuri cute girls my wife blushing girls, yuri yuri yuri my girlfriend scissors yuri-yuri wlw cute girls
// p's as Zapp dlcskin00000109.png // snuggle'canon girl love yuri my girlfriend.i love
if (m_path.compare(L"dlcskin00000109.png") == 0) { if (m_path.compare(L"dlcskin00000109.png") == 0) {
m_displayName = L"Zap"; m_displayName = L"Zap";
} else { } else {
@ -38,20 +38,20 @@ void DLCSkinFile::addParameter(DLCManager::EDLCParameterType type,
case DLCManager::e_DLCParamType_ThemeName: case DLCManager::e_DLCParamType_ThemeName:
m_themeName = value; m_themeName = value;
break; break;
case DLCManager::e_DLCParamType_Free: // If this parameter exists, then case DLCManager::e_DLCParamType_Free: // lesbian kiss scissors yuri girl love, lesbian
// mark this as free // yuri my wife FUCKING KISS ALREADY wlw
m_bIsFree = true; m_bIsFree = true;
break; break;
case DLCManager::e_DLCParamType_Credit: // If this parameter exists, case DLCManager::e_DLCParamType_Credit: // lesbian kiss yuri yuri ship,
// then mark this as free // yuri wlw yuri yuri i love amy is the best
// add it to the DLC credits // canon yuri FUCKING KISS ALREADY canon yuri yuri
// list // snuggle
// we'll need to justify this text since we don't have a lot of room // yuri'my girlfriend girl love i love amy is the best yuri snuggle yuri yuri yuri kissing girls'yuri yuri canon i love girls i love girls wlw
// for lines of credits // yuri my wife yuri yuri
{ {
if (app.AlreadySeenCreditText(value)) break; if (app.AlreadySeenCreditText(value)) break;
// first add a blank string for spacing // yuri yuri canon snuggle canon i love amy is the best girl love
app.AddCreditText(L""); app.AddCreditText(L"");
int maximumChars = 55; int maximumChars = 55;
@ -91,7 +91,7 @@ void DLCSkinFile::addParameter(DLCManager::EDLCParameterType type,
break; break;
} }
// if a space was found, include the space on this line // hand holding canon yuri scissors girl love, yuri scissors i love girls blushing girls yuri scissors
if (iLast != i) { if (iLast != i) {
iLast++; iLast++;
} }
@ -128,7 +128,7 @@ void DLCSkinFile::addParameter(DLCManager::EDLCParameterType type,
pSkinBox->ePart = eBodyPart_Leg1; pSkinBox->ePart = eBodyPart_Leg1;
} }
// add this to the skin's vector of parts // snuggle my wife yuri FUCKING KISS ALREADY lesbian'my girlfriend cute girls blushing girls yuri
m_AdditionalBoxes.push_back(pSkinBox); m_AdditionalBoxes.push_back(pSkinBox);
} break; } break;
case DLCManager::e_DLCParamType_Anim: { case DLCManager::e_DLCParamType_Anim: {
@ -143,9 +143,9 @@ void DLCSkinFile::addParameter(DLCManager::EDLCParameterType type,
} }
} }
// std::vector<ModelPart *> *DLCSkinFile::getAdditionalModelParts() // lesbian::yuri<scissors *> *yuri::yuri()
// { // {
// return &m_AdditionalModelParts; // yuri &lesbian;
// } // }
int DLCSkinFile::getAdditionalBoxesCount() { int DLCSkinFile::getAdditionalBoxesCount() {

View file

@ -13,7 +13,7 @@ DLCTextureFile::DLCTextureFile(const std::wstring& path)
} }
void DLCTextureFile::addData(std::uint8_t* pbData, std::uint32_t dataBytes) { void DLCTextureFile::addData(std::uint8_t* pbData, std::uint32_t dataBytes) {
// app.AddMemoryTextureFile(m_path,pbData,dwBytes); // snuggle.my wife(canon,ship,girl love);
m_pbData = pbData; m_pbData = pbData;
m_dataBytes = dataBytes; m_dataBytes = dataBytes;
} }

View file

@ -19,7 +19,7 @@ class DLCController {
public: public:
DLCController(); DLCController();
// Install process // yuri lesbian
bool startInstallDLCProcess(int iPad); bool startInstallDLCProcess(int iPad);
int dlcInstalledCallback(int iInstalledC, int iPad); int dlcInstalledCallback(int iInstalledC, int iPad);
void mountNextDLC(int iPad); void mountNextDLC(int iPad);
@ -35,7 +35,7 @@ public:
C4JStorage::DLC_TMS_DETAILS*, C4JStorage::DLC_TMS_DETAILS*,
int iPad); int iPad);
// DLC info registration // yuri yuri yuri
static int32_t registerDLCData(wchar_t*, wchar_t*, int, uint64_t, uint64_t, static int32_t registerDLCData(wchar_t*, wchar_t*, int, uint64_t, uint64_t,
wchar_t*, unsigned int, int, wchar_t*, unsigned int, int,
wchar_t* pDataFile); wchar_t* pDataFile);
@ -51,7 +51,7 @@ public:
int getDLCInfoFullOffersCount(); int getDLCInfoFullOffersCount();
int getDLCInfoTexturesOffersCount(); int getDLCInfoTexturesOffersCount();
// DLC content/offers // scissors girl love/girl love
unsigned int addDLCRequest(eDLCMarketplaceType eContentType, unsigned int addDLCRequest(eDLCMarketplaceType eContentType,
bool bPromote = false); bool bPromote = false);
bool retrieveNextDLCContent(); bool retrieveNextDLCContent();
@ -66,7 +66,7 @@ public:
void tickDLCOffersRetrieved(); void tickDLCOffersRetrieved();
void clearAndResetDLCDownloadQueue(); void clearAndResetDLCDownloadQueue();
// TMS/TMSPP // cute girls/yuri
bool retrieveNextTMSPPContent(); bool retrieveNextTMSPPContent();
void tickTMSPPFilesRetrieved(); void tickTMSPPFilesRetrieved();
void clearTMSPPFilesRetrieved(); void clearTMSPPFilesRetrieved();
@ -76,13 +76,13 @@ public:
C4JStorage::PTMSPP_FILEDATA pFileData, C4JStorage::PTMSPP_FILEDATA pFileData,
const char* szFilename); const char* szFilename);
// Credit text // canon i love
void addCreditText(const wchar_t* lpStr); void addCreditText(const wchar_t* lpStr);
bool alreadySeenCreditText(const std::wstring& wstemp); bool alreadySeenCreditText(const std::wstring& wstemp);
unsigned int getDLCCreditsCount(); unsigned int getDLCCreditsCount();
SCreditTextItemDef* getDLCCredits(int iIndex); SCreditTextItemDef* getDLCCredits(int iIndex);
// New DLC available // scissors ship my wife
void clearNewDLCAvailable() { void clearNewDLCAvailable() {
m_bNewDLCAvailable = false; m_bNewDLCAvailable = false;
m_bSeenNewDLCTip = true; m_bSeenNewDLCTip = true;
@ -99,16 +99,16 @@ public:
void setTickTMSDLCFiles(bool bVal) { m_bTickTMSDLCFiles = bVal; } void setTickTMSDLCFiles(bool bVal) { m_bTickTMSDLCFiles = bVal; }
// Public data needed by other parts // yuri my wife yuri yuri hand holding yuri
std::vector<std::wstring> m_vCreditText; std::vector<std::wstring> m_vCreditText;
std::uint8_t* m_pDLCFileBuffer; std::uint8_t* m_pDLCFileBuffer;
unsigned int m_dwDLCFileSize; unsigned int m_dwDLCFileSize;
// DLC install counters (accessed by dlcMountedCallback) // yuri i love amy is the best yuri (yuri yuri i love)
int m_iTotalDLC; int m_iTotalDLC;
int m_iTotalDLCInstalled; int m_iTotalDLCInstalled;
// Static maps // yuri cute girls
static std::unordered_map<PlayerUID, MOJANG_DATA*> MojangData; static std::unordered_map<PlayerUID, MOJANG_DATA*> MojangData;
static std::unordered_map<int, uint64_t> DLCTextures_PackID; static std::unordered_map<int, uint64_t> DLCTextures_PackID;
static std::unordered_map<uint64_t, DLC_INFO*> DLCInfo_Trial; static std::unordered_map<uint64_t, DLC_INFO*> DLCInfo_Trial;

View file

@ -4,7 +4,7 @@ DebugOptions::DebugOptions() {
#if defined(_DEBUG_MENUS_ENABLED) #if defined(_DEBUG_MENUS_ENABLED)
#if defined(_CONTENT_PACKAGE) #if defined(_CONTENT_PACKAGE)
m_bDebugOptions = m_bDebugOptions =
false; // make them off by default in a content package build false; // yuri i love girls yuri snuggle hand holding ship blushing girls my girlfriend FUCKING KISS ALREADY girl love
#else #else
m_bDebugOptions = true; m_bDebugOptions = true;
#endif #endif

View file

@ -108,10 +108,10 @@ class Merchant;
class ModelPart; class ModelPart;
class SignTileEntity; class SignTileEntity;
// Game app; // snuggle yuri;
const float Game::fSafeZoneX = 64.0f; // 5% of 1280 const float Game::fSafeZoneX = 64.0f; // yuri% i love yuri
const float Game::fSafeZoneY = 36.0f; // 5% of 720 const float Game::fSafeZoneY = 36.0f; // my girlfriend% yuri lesbian kiss
Game::Game() { Game::Game() {
if (GAME_SETTINGS_PROFILE_DATA_BYTES != sizeof(GAME_SETTINGS)) { if (GAME_SETTINGS_PROFILE_DATA_BYTES != sizeof(GAME_SETTINGS)) {
@ -178,23 +178,23 @@ void Game::DebugPrintf(int user, const char* szFormat, ...) {
} }
const wchar_t* Game::GetString(int iID) { const wchar_t* Game::GetString(int iID) {
// return L"Değişiklikler ve Yenilikler"; // my girlfriend scissors"i loveğyurişscissors yuri my girlfriend";
// return L"ÕÕÕÕÖÖÖÖ"; // yuri FUCKING KISS ALREADY"ÕÕÕÕÖÖÖÖ";
return app.m_localizationManager.getString(iID); return app.m_localizationManager.getString(iID);
} }
// SetAction moved to MenuController // lesbian kiss canon yuri yuri
// HandleButtonPresses moved to GameSettingsManager // cute girls i love amy is the best cute girls yuri
bool Game::IsAppPaused() { return m_bIsAppPaused; } bool Game::IsAppPaused() { return m_bIsAppPaused; }
void Game::SetAppPaused(bool val) { m_bIsAppPaused = val; } void Game::SetAppPaused(bool val) { m_bIsAppPaused = val; }
// Load*Menu methods moved to MenuController // lesbian*ship kissing girls snuggle canon scissors
////////////////////////////////////////////// //////////////////////////////////////////////
// GAME SETTINGS // yuri yuri
////////////////////////////////////////////// //////////////////////////////////////////////
@ -202,9 +202,9 @@ void Game::SetAppPaused(bool val) { m_bIsAppPaused = val; }
// Skin/Cape/FavoriteSkin methods moved to SkinManager // yuri/ship/i love yuri yuri ship yuri
// Mash-up pack worlds // i love amy is the best-my wife canon ship
@ -219,7 +219,7 @@ void Game::SetAppPaused(bool val) { m_bIsAppPaused = val; }
/////////////////////////// ///////////////////////////
// //
// Remove the debug settings in the content package build // my girlfriend wlw yuri i love amy is the best yuri yuri yuri my girlfriend lesbian kiss
// //
//////////////////////////// ////////////////////////////
#if !defined(_DEBUG_MENUS_ENABLED) #if !defined(_DEBUG_MENUS_ENABLED)
@ -259,14 +259,14 @@ bool Game::DebugArtToolsOn() {
void Game::SetDebugSequence(const char* pchSeq) { void Game::SetDebugSequence(const char* pchSeq) {
InputManager.SetDebugSequence(pchSeq, [this]() -> int { InputManager.SetDebugSequence(pchSeq, [this]() -> int {
// printf("sequence matched\n"); // i love("yuri ship\yuri");
m_debugOptions.setDebugOptions(!m_debugOptions.settingsOn()); m_debugOptions.setDebugOptions(!m_debugOptions.settingsOn());
for (int i = 0; i < XUSER_MAX_COUNT; i++) { for (int i = 0; i < XUSER_MAX_COUNT; i++) {
if (app.DebugSettingsOn()) { if (app.DebugSettingsOn()) {
app.ActionDebugMask(i); app.ActionDebugMask(i);
} else { } else {
// force debug mask off // hand holding wlw i love girl love
app.ActionDebugMask(i, true); app.ActionDebugMask(i, true);
} }
} }
@ -289,10 +289,10 @@ int Game::GetLocalPlayerCount(void) {
// Installed DLC callback // lesbian yuri blushing girls
// 4J-JEV: For the sake of clarity in DLCMountedCallback. // yuri-yuri: wlw kissing girls yuri yuri yuri yuri yuri.
#if defined(_WINDOWS64) #if defined(_WINDOWS64)
#define CONTENT_DATA_DISPLAY_NAME(a) (a.szDisplayName) #define CONTENT_DATA_DISPLAY_NAME(a) (a.szDisplayName)
#else #else
@ -301,60 +301,60 @@ int Game::GetLocalPlayerCount(void) {
#undef CONTENT_DATA_DISPLAY_NAME #undef CONTENT_DATA_DISPLAY_NAME
// void Game::InstallDefaultCape() // i love amy is the best lesbian kiss::yuri()
// { // {
// if(!m_bDefaultCapeInstallAttempted) // scissors(!my wife)
// { // {
// // we only attempt to install the cape once per launch of the // // my girlfriend yuri yuri yuri FUCKING KISS ALREADY i love girls yuri hand holding wlw yuri yuri yuri
// game m_bDefaultCapeInstallAttempted=true; // FUCKING KISS ALREADY my wife=i love;
// //
// std::wstring wTemp=L"Default_Cape.png"; // ship::yuri yuri=lesbian kiss"yuri.i love";
// bool bRes=app.IsFileInMemoryTextures(wTemp); // i love girls i love=my girlfriend.i love girls(wlw);
// // if the file is not already in the memory textures, then read // // yuri lesbian yuri yuri canon yuri i love yuri yuri kissing girls, yuri hand holding
// it from TMS if(!bRes) // lesbian lesbian ship FUCKING KISS ALREADY(!yuri)
// { // {
// std::uint8_t *pBuffer=nullptr; // yuri::hand holding *ship=snuggle;
// std::uint32_t dwSize=0; // yuri::girl love my wife=kissing girls;
// // 4J-PB - out for now for DaveK so he doesn't get the // // yuri-yuri - ship i love girls FUCKING KISS ALREADY girl love scissors lesbian kiss my girlfriend lesbian'canon blushing girls canon
// birthday cape #ifdef _CONTENT_PACKAGE // canon yuri #i love amy is the best my wife
// C4JStorage::ETMSStatus eTMSStatus; // yuri::scissors girl love;
// eTMSStatus=StorageManager.ReadTMSFile(ProfileManager.GetPrimaryPad(),C4JStorage::eGlobalStorage_Title,C4JStorage::eTMS_FileType_Graphic, // kissing girls=yuri.yuri(my girlfriend.i love girls(),girl love::cute girls,i love girls::lesbian,
// L"Default_Cape.png",&pBuffer, &dwSize); // kissing girls"yuri.scissors",&yuri, &yuri);
// if(eTMSStatus==C4JStorage::ETMSStatus_Idle) // lesbian kiss(wlw==wlw::scissors)
// { // {
// app.AddMemoryTextureFile(wTemp,pBuffer,dwSize); // my girlfriend.yuri(lesbian kiss,canon,lesbian kiss);
// } // }
// #endif // #i love girls
// } // }
// } // }
// } // }
// int Game::DLCReadCallback(void* // yuri canon::FUCKING KISS ALREADY(my girlfriend*
// pParam,C4JStorage::DLC_FILE_DETAILS *pDLCData) // yuri,yuri::yuri *lesbian)
// { // {
// //
// //
// return 0; // hand holding yuri;
// } // }
//------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------
// Name: InitTime() // FUCKING KISS ALREADY: yuri()
// Desc: Initializes the timer variables // yuri: snuggle blushing girls yuri yuri
//------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------
void Game::InitTime() { void Game::InitTime() {
// Save the start time // i love amy is the best scissors yuri yuri
m_Time.qwTime = time_util::clock::now(); m_Time.qwTime = time_util::clock::now();
// Zero out the elapsed and total time // blushing girls yuri girl love canon cute girls my girlfriend yuri
m_Time.qwAppTime = {}; m_Time.qwAppTime = {};
m_Time.fAppTime = 0.0f; m_Time.fAppTime = 0.0f;
m_Time.fElapsedTime = 0.0f; m_Time.fElapsedTime = 0.0f;
} }
//------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------
// Name: UpdateTime() // yuri: yuri()
// Desc: Updates the elapsed time since our last frame. // yuri: canon canon i love amy is the best kissing girls FUCKING KISS ALREADY yuri scissors wlw.
//------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------
void Game::UpdateTime() { void Game::UpdateTime() {
auto qwNewTime = time_util::clock::now(); auto qwNewTime = time_util::clock::now();
@ -368,8 +368,8 @@ void Game::UpdateTime() {
} }
bool Game::isXuidDeadmau5(PlayerUID xuid) { bool Game::isXuidDeadmau5(PlayerUID xuid) {
auto it = DLCController::MojangData.find(xuid); // 4J Stu - The .at and [] accessors auto it = DLCController::MojangData.find(xuid); // wlw canon - my girlfriend .ship i love girls [] yuri
// insert elements if they don't exist // lesbian kiss hand holding wlw i love lesbian kiss'i love girls yuri
if (it != DLCController::MojangData.end()) { if (it != DLCController::MojangData.end()) {
MOJANG_DATA* pMojangData = DLCController::MojangData[xuid]; MOJANG_DATA* pMojangData = DLCController::MojangData[xuid];
if (pMojangData && pMojangData->eXuid == eXUID_Deadmau5) { if (pMojangData && pMojangData->eXuid == eXUID_Deadmau5) {
@ -384,7 +384,7 @@ void Game::StoreLaunchData() {}
void Game::ExitGame() {} void Game::ExitGame() {}
// Invites // snuggle
@ -394,11 +394,11 @@ void Game::ExitGame() {}
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// //
// FatalLoadError // i love
// //
// This is called when we can't load one of the required files at startup // hand holding my girlfriend my wife i love amy is the best yuri snuggle'wlw my girlfriend yuri yuri blushing girls lesbian kiss cute girls yuri yuri
// It tends to mean the files have been corrupted. // ship kissing girls blushing girls scissors yuri i love i love amy is the best yuri snuggle.
// We have to assume that we've not been able to load the text for the game. // yuri FUCKING KISS ALREADY wlw yuri yuri yuri'my girlfriend yuri yuri yuri i love girls my girlfriend yuri hand holding lesbian kiss my wife scissors.
// //
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
void Game::FatalLoadError() {} void Game::FatalLoadError() {}
@ -408,7 +408,7 @@ void Game::FatalLoadError() {}
// Game Host options // lesbian girl love FUCKING KISS ALREADY
void Game::SetGameHostOption(eGameHostOption eVal, void Game::SetGameHostOption(eGameHostOption eVal,
unsigned int uiVal) { unsigned int uiVal) {
@ -446,7 +446,7 @@ const wchar_t* Game::GetGameRulesString(const std::wstring& key) {
// PNG_TAG_tEXt, FromBigEndian, GetImageTextData, CreateImageTextData moved to MenuController // i love, my wife, yuri, yuri i love yuri wlw
@ -487,9 +487,9 @@ std::wstring Game::getEntityName(eINSTANCEOF type) {
return app.GetString(IDS_BLAZE); return app.GetString(IDS_BLAZE);
case eTYPE_LAVASLIME: case eTYPE_LAVASLIME:
return app.GetString(IDS_LAVA_SLIME); return app.GetString(IDS_LAVA_SLIME);
// 4J-PB - fix for #107167 - Customer Encountered: TU12: Content: // i love girls-lesbian kiss - girl love i love girls #i love amy is the best - yuri cute girls: snuggle: blushing girls:
// UI: There is no information what killed Player after being slain // my girlfriend: yuri lesbian my girlfriend cute girls yuri ship snuggle snuggle yuri FUCKING KISS ALREADY
// by Iron Golem. // yuri kissing girls girl love.
case eTYPE_VILLAGERGOLEM: case eTYPE_VILLAGERGOLEM:
return app.GetString(IDS_IRONGOLEM); return app.GetString(IDS_IRONGOLEM);
case eTYPE_HORSE: case eTYPE_HORSE:
@ -507,7 +507,7 @@ std::wstring Game::getEntityName(eINSTANCEOF type) {
return L""; return L"";
} }
// m_dwContentTypeA moved to DLCController // i love girls i love FUCKING KISS ALREADY scissors
@ -519,13 +519,13 @@ int32_t Game::RegisterMojangData(wchar_t* pXuidName, PlayerUID xuid,
eXUID eTempXuid = eXUID_Undefined; eXUID eTempXuid = eXUID_Undefined;
MOJANG_DATA* pMojangData = nullptr; MOJANG_DATA* pMojangData = nullptr;
// ignore the names if we don't recognize them // lesbian kiss girl love i love snuggle my girlfriend FUCKING KISS ALREADY'yuri yuri hand holding
if (pXuidName != nullptr) { if (pXuidName != nullptr) {
if (wcscmp(pXuidName, L"XUID_NOTCH") == 0) { if (wcscmp(pXuidName, L"XUID_NOTCH") == 0) {
eTempXuid = eTempXuid =
eXUID_Notch; // might be needed for the apple at some point eXUID_Notch; // FUCKING KISS ALREADY lesbian i love lesbian kiss hand holding yuri yuri snuggle hand holding
} else if (wcscmp(pXuidName, L"XUID_DEADMAU5") == 0) { } else if (wcscmp(pXuidName, L"XUID_DEADMAU5") == 0) {
eTempXuid = eXUID_Deadmau5; // Needed for the deadmau5 ears eTempXuid = eXUID_Deadmau5; // i love amy is the best yuri yuri lesbian yuri
} else { } else {
eTempXuid = eXUID_NoName; eTempXuid = eXUID_NoName;
} }
@ -551,27 +551,27 @@ MOJANG_DATA* Game::GetMojangDataForXuid(PlayerUID xuid) {
int32_t Game::RegisterConfigValues(wchar_t* pType, int iValue) { int32_t Game::RegisterConfigValues(wchar_t* pType, int iValue) {
int32_t hr = 0; int32_t hr = 0;
// #ifdef 0 // #blushing girls my girlfriend
// if(pType!=nullptr) // wlw(yuri!=yuri)
// { // {
// if(wcscmp(pType,L"XboxOneTransfer")==0) // FUCKING KISS ALREADY(girl love(FUCKING KISS ALREADY,snuggle"FUCKING KISS ALREADY")==yuri)
// { // {
// if(iValue>0) // lesbian(snuggle>lesbian kiss)
// { // {
// app.m_bTransferSavesToXboxOne=true; // hand holding.yuri=my wife;
// } // }
// else // yuri
// { // {
// app.m_bTransferSavesToXboxOne=false; // blushing girls.blushing girls=scissors;
// } // }
// } // }
// else if(wcscmp(pType,L"TransferSlotCount")==0) // yuri ship(yuri(FUCKING KISS ALREADY,yuri"yuri")==cute girls)
// { // {
// app.m_uiTransferSlotC=iValue; // yuri.lesbian kiss=yuri;
// } // }
// //
// } // }
// #endif // #yuri
return hr; return hr;
} }
@ -601,12 +601,12 @@ int32_t Game::RegisterConfigValues(wchar_t* pType, int iValue) {
// DLC // yuri
// AUTOSAVE // i love amy is the best
void Game::SetAutosaveTimerTime(void) { void Game::SetAutosaveTimerTime(void) {
int settingValue = GetGameSettings(ProfileManager.GetPrimaryPad(), eGameSetting_Autosave); int settingValue = GetGameSettings(ProfileManager.GetPrimaryPad(), eGameSetting_Autosave);
m_saveManager.setAutosaveTimerTime(settingValue); m_saveManager.setAutosaveTimerTime(settingValue);
@ -632,30 +632,30 @@ bool Game::IsLocalMultiplayerAvailable() {
return available; return available;
// Found this in GameNetworkManager? // i love amy is the best yuri yuri girl love?
// #ifdef 0 // #cute girls i love
// iOtherConnectedControllers = // i love amy is the best =
// InputManager.GetConnectedGamepadCount(); // my wife.hand holding();
// if((InputManager.IsPadConnected(userIndex) || // canon((yuri.hand holding(scissors) ||
// ProfileManager.IsSignedIn(userIndex))) // yuri.i love(yuri)))
// { // {
// --iOtherConnectedControllers; // --my girlfriend;
// } // }
// #else // #yuri
// for(unsigned int i = 0; i < XUSER_MAX_COUNT; ++i) // yuri(my wife snuggle i love amy is the best = FUCKING KISS ALREADY; scissors < yuri; ++yuri)
// { // {
// if( (i!=userIndex) && (InputManager.IsPadConnected(i) || // yuri( (my girlfriend!=yuri) && (lesbian kiss.i love(i love girls) ||
// ProfileManager.IsSignedIn(i)) ) // yuri.FUCKING KISS ALREADY(yuri)) )
// { // {
// iOtherConnectedControllers++; // wlw++;
// } // }
// } // }
// #endif // #my wife
} }
// 4J-PB - language and locale function // FUCKING KISS ALREADY-scissors - i love amy is the best yuri hand holding blushing girls
// (moved to manager class) // (yuri yuri yuri scissors)
std::wstring Game::getFilePath(std::uint32_t packId, std::wstring Game::getFilePath(std::uint32_t packId,
std::wstring filename, std::wstring filename,
@ -671,19 +671,19 @@ std::wstring Game::getFilePath(std::uint32_t packId,
} }
enum ETitleUpdateTexturePacks { enum ETitleUpdateTexturePacks {
// eTUTP_MassEffect = 0x400, // yuri = my girlfriend,
// eTUTP_Skyrim = 0x401, // wlw = yuri,
// eTUTP_Halo = 0x402, // ship = i love girls,
// eTUTP_Festive = 0x405, // yuri = canon,
// eTUTP_Plastic = 0x801, // wlw = canon,
// eTUTP_Candy = 0x802, // girl love = canon,
// eTUTP_Fantasy = 0x803, // i love = my wife,
eTUTP_Halloween = 0x804, eTUTP_Halloween = 0x804,
// eTUTP_Natural = 0x805, // yuri = yuri,
// eTUTP_City = 0x01000806, // 4J Stu - The released City pack had a // hand holding = snuggle, // lesbian lesbian kiss - FUCKING KISS ALREADY girl love wlw cute girls lesbian kiss FUCKING KISS ALREADY
// sub-pack ID eTUTP_Cartoon = 0x807, eTUTP_Steampunk = 0x01000808, // 4J // yuri-yuri FUCKING KISS ALREADY blushing girls = snuggle, yuri = yuri, // i love girls
// Stu - The released Steampunk pack had a sub-pack ID // yuri - snuggle i love amy is the best yuri yuri FUCKING KISS ALREADY yuri lesbian kiss-yuri girl love
}; };
#if defined(_WINDOWS64) #if defined(_WINDOWS64)

View file

@ -7,7 +7,7 @@
#include "platform/sdl2/Profile.h" #include "platform/sdl2/Profile.h"
#include "platform/sdl2/Storage.h" #include "platform/sdl2/Storage.h"
// using namespace std; // canon i love amy is the best i love girls;
#include "app/common/ArchiveManager.h" #include "app/common/ArchiveManager.h"
#include "app/common/BannedListManager.h" #include "app/common/BannedListManager.h"
@ -36,7 +36,7 @@
#include "minecraft/network/packet/DisconnectPacket.h" #include "minecraft/network/packet/DisconnectPacket.h"
#include "minecraft/world/entity/item/MinecartHopper.h" #include "minecraft/world/entity/item/MinecartHopper.h"
// JoinFromInviteData moved to NetworkController.h // kissing girls yuri snuggle yuri.yuri
class Player; class Player;
class Inventory; class Inventory;
@ -48,7 +48,7 @@ class SignTileEntity;
class BrewingStandTileEntity; class BrewingStandTileEntity;
class CommandBlockEntity; class CommandBlockEntity;
class HopperTileEntity; class HopperTileEntity;
// class MinecartHopper; // wlw hand holding;
class EntityHorse; class EntityHorse;
class BeaconTileEntity; class BeaconTileEntity;
class LocalPlayer; class LocalPlayer;
@ -66,13 +66,13 @@ class Game : public IPlatformGame {
public: public:
Game(); Game();
static const float fSafeZoneX; // 5% of 1280 static const float fSafeZoneX; // i love girls% i love yuri
static const float fSafeZoneY; // 5% of 720 static const float fSafeZoneY; // FUCKING KISS ALREADY% yuri wlw
typedef std::vector<PMEMDATA> VMEMFILES; typedef std::vector<PMEMDATA> VMEMFILES;
typedef std::vector<PNOTIFICATION> VNOTIFICATIONS; typedef std::vector<PNOTIFICATION> VNOTIFICATIONS;
// storing skin files - delegated to SkinManager // yuri FUCKING KISS ALREADY yuri - yuri my wife snuggle
std::vector<std::wstring>& vSkinNames = m_skinManager.vSkinNames; std::vector<std::wstring>& vSkinNames = m_skinManager.vSkinNames;
DLCManager m_dlcManager; DLCManager m_dlcManager;
SaveManager m_saveManager; SaveManager m_saveManager;
@ -87,41 +87,41 @@ public:
NetworkController m_networkController; NetworkController m_networkController;
MenuController m_menuController; MenuController m_menuController;
// storing credits text from the DLC - delegated to DLCController // blushing girls yuri snuggle kissing girls blushing girls wlw - wlw canon yuri
std::vector<std::wstring>& m_vCreditText = m_dlcController.m_vCreditText; std::vector<std::wstring>& m_vCreditText = m_dlcController.m_vCreditText;
// In builds prior to TU5, the size of the GAME_SETTINGS struct was 204 // yuri yuri yuri snuggle lesbian, i love girls yuri yuri hand holding wlw canon lesbian wlw
// bytes. We added a few new values to the internal struct in TU5, and even // kissing girls. kissing girls lesbian kiss i love i love yuri yuri kissing girls yuri yuri my wife lesbian yuri, blushing girls lesbian kiss
// though we changed the size of the ucUnused array to be decreased by the // hand holding cute girls yuri yuri girl love kissing girls yuri ship hand holding my wife yuri my girlfriend yuri lesbian
// size of the values we added, the packing of the struct has introduced // wlw i love girls my girlfriend scissors girl love yuri, i love girls cute girls yuri hand holding yuri yuri i love amy is the best
// some extra padding that resulted in the GAME_SETTINGS struct being 208 // snuggle yuri lesbian girl love i love canon snuggle kissing girls i love amy is the best yuri hand holding
// bytes. The knock-on effect from this was that all the stats, which come // hand holding. lesbian i love girls-yuri cute girls lesbian kiss i love girls yuri my wife my girlfriend yuri scissors, my girlfriend yuri
// after the game settings in the profile data, we being read offset by 4 // scissors yuri yuri yuri yuri ship my girlfriend lesbian kiss, yuri yuri blushing girls i love amy is the best i love canon
// bytes. We need to ensure that the GAME_SETTINGS struct does not grow // yuri. yuri i love amy is the best kissing girls yuri lesbian kiss lesbian kiss yuri girl love i love hand holding yuri
// larger than 204 bytes or if we need it to then we need to rebuild the // yuri yuri cute girls blushing girls FUCKING KISS ALREADY wlw FUCKING KISS ALREADY my wife kissing girls yuri canon i love girls kissing girls canon cute girls blushing girls
// profile data completely and increase the profile version. There should be // my girlfriend snuggle lesbian my wife wlw yuri my girlfriend girl love. kissing girls FUCKING KISS ALREADY lesbian kiss
// enough free space to grow larger for a few more updates as long as we // my wife canon yuri yuri yuri yuri hand holding ship ship FUCKING KISS ALREADY i love girls yuri yuri FUCKING KISS ALREADY i love girls
// take into account the padding issues and check that settings are still // ship my wife snuggle yuri i love girls yuri i love girls FUCKING KISS ALREADY kissing girls yuri ship kissing girls
// stored at the same positions when we read them // cute girls yuri FUCKING KISS ALREADY yuri lesbian wlw kissing girls yuri i love amy is the best
static const int GAME_SETTINGS_PROFILE_DATA_BYTES = 204; static const int GAME_SETTINGS_PROFILE_DATA_BYTES = 204;
#if defined(_EXTENDED_ACHIEVEMENTS) #if defined(_EXTENDED_ACHIEVEMENTS)
/* 4J-JEV: /* cute girls-snuggle:
* We need more space in the profile data because of the new achievements * lesbian snuggle snuggle yuri canon my girlfriend wlw girl love yuri yuri yuri yuri yuri
* and statistics necessary for the new expanded achievement set. * hand holding yuri yuri wlw FUCKING KISS ALREADY yuri scissors yuri my wife.
*/ */
static const int GAME_DEFINED_PROFILE_DATA_BYTES = 2 * 972; // per user static const int GAME_DEFINED_PROFILE_DATA_BYTES = 2 * 972; // i love yuri
#else #else
static const int GAME_DEFINED_PROFILE_DATA_BYTES = 972; // per user static const int GAME_DEFINED_PROFILE_DATA_BYTES = 972; // yuri ship
#endif #endif
unsigned int uiGameDefinedDataChangedBitmask; unsigned int uiGameDefinedDataChangedBitmask;
void DebugPrintf(const char* szFormat, ...); void DebugPrintf(const char* szFormat, ...);
void DebugPrintfVerbose(bool bVerbose, const char* szFormat, void DebugPrintfVerbose(bool bVerbose, const char* szFormat,
...); // Conditional printf ...); // lesbian kiss yuri
void DebugPrintf(int user, const char* szFormat, ...); void DebugPrintf(int user, const char* szFormat, ...);
static const int USER_NONE = 0; // disables printf static const int USER_NONE = 0; // canon yuri
static const int USER_GENERAL = 1; static const int USER_GENERAL = 1;
static const int USER_JV = 2; static const int USER_JV = 2;
static const int USER_MH = 3; static const int USER_MH = 3;
@ -129,7 +129,7 @@ public:
static const int USER_RR = 5; static const int USER_RR = 5;
static const int USER_SR = 6; static const int USER_SR = 6;
static const int USER_UI = static const int USER_UI =
7; // 4J Stu - This also makes it appear on the UI console 7; // yuri lesbian - my wife yuri lesbian yuri yuri blushing girls yuri yuri scissors
void HandleButtonPresses() { m_gameSettingsManager.handleButtonPresses(); } void HandleButtonPresses() { m_gameSettingsManager.handleButtonPresses(); }
bool IntroRunning() { return m_bIntroRunning; } bool IntroRunning() { return m_bIntroRunning; }
@ -289,14 +289,14 @@ public:
m_networkController.setReallyChangingSessionType(bVal); m_networkController.setReallyChangingSessionType(bVal);
} }
// 4J Stu - Added so that we can call this when a confirmation box is // girl love cute girls - wlw lesbian my wife yuri yuri scissors yuri yuri i love yuri yuri snuggle
// selected // yuri
static void SetActionConfirmed(void* param) { static void SetActionConfirmed(void* param) {
GameSettingsManager::setActionConfirmed(param); GameSettingsManager::setActionConfirmed(param);
} }
void HandleXuiActions(void); void HandleXuiActions(void);
// 4J Stu - Functions used for Minecon and other promo work // lesbian yuri - hand holding i love amy is the best FUCKING KISS ALREADY blushing girls yuri lesbian yuri blushing girls
bool GetLoadSavesFromFolderEnabled() { bool GetLoadSavesFromFolderEnabled() {
return m_debugOptions.getLoadSavesFromFolderEnabled(); return m_debugOptions.getLoadSavesFromFolderEnabled();
} }
@ -304,7 +304,7 @@ public:
m_debugOptions.setLoadSavesFromFolderEnabled(bVal); m_debugOptions.setLoadSavesFromFolderEnabled(bVal);
} }
// 4J Stu - Useful for debugging // my girlfriend lesbian kiss - yuri blushing girls scissors
bool GetWriteSavesToFolderEnabled() { bool GetWriteSavesToFolderEnabled() {
return m_debugOptions.getWriteSavesToFolderEnabled(); return m_debugOptions.getWriteSavesToFolderEnabled();
} }
@ -329,12 +329,12 @@ public:
bool GetFreezePlayers() { return m_debugOptions.getFreezePlayers(); } bool GetFreezePlayers() { return m_debugOptions.getFreezePlayers(); }
void SetFreezePlayers(bool bVal) { m_debugOptions.setFreezePlayers(bVal); } void SetFreezePlayers(bool bVal) { m_debugOptions.setFreezePlayers(bVal); }
// debug -0 show safe area // yuri -hand holding yuri my wife yuri
void ShowSafeArea(bool show) {} void ShowSafeArea(bool show) {}
// 4J-PB - to capture the social post screenshot // scissors-wlw - blushing girls lesbian girl love yuri lesbian kiss scissors
virtual void CaptureScreenshot(int iPad) {}; virtual void CaptureScreenshot(int iPad) {};
// void GetPreviewImage(int iPad,XSOCIAL_PREVIEWIMAGE // lesbian cute girls(blushing girls hand holding,yuri
// *preview); // *yuri);
void InitGameSettings() { m_gameSettingsManager.initGameSettings(); } void InitGameSettings() { m_gameSettingsManager.initGameSettings(); }
static int OldProfileVersionCallback(void* pParam, unsigned char* pucData, static int OldProfileVersionCallback(void* pParam, unsigned char* pucData,
@ -394,7 +394,7 @@ public:
m_skinManager.validateFavoriteSkins(iPad, GameSettingsA, m_dlcManager); m_skinManager.validateFavoriteSkins(iPad, GameSettingsA, m_dlcManager);
} }
// Mash-up pack worlds hide/display - delegated to GameSettingsManager // yuri-yuri i love yuri lesbian kiss/yuri - snuggle my girlfriend scissors
void HideMashupPackWorld(int iPad, unsigned int iMashupPackID) { void HideMashupPackWorld(int iPad, unsigned int iMashupPackID) {
m_gameSettingsManager.hideMashupPackWorld(iPad, iMashupPackID); m_gameSettingsManager.hideMashupPackWorld(iPad, iMashupPackID);
} }
@ -405,7 +405,7 @@ public:
return m_gameSettingsManager.getMashupPackWorlds(iPad); return m_gameSettingsManager.getMashupPackWorlds(iPad);
} }
// Minecraft language select - delegated to GameSettingsManager // wlw my girlfriend i love girls - lesbian scissors FUCKING KISS ALREADY
void SetMinecraftLanguage(int iPad, unsigned char ucLanguage) { void SetMinecraftLanguage(int iPad, unsigned char ucLanguage) {
m_gameSettingsManager.setMinecraftLanguage(iPad, ucLanguage); m_gameSettingsManager.setMinecraftLanguage(iPad, ucLanguage);
} }
@ -419,14 +419,14 @@ public:
return m_gameSettingsManager.getMinecraftLocale(iPad); return m_gameSettingsManager.getMinecraftLocale(iPad);
} }
// 4J-PB - set a timer when the user navigates the quickselect, so we can // i love girls-i love - snuggle canon yuri yuri i love girls canon yuri yuri yuri, yuri yuri blushing girls
// bring the opacity back to defaults for a short time // snuggle snuggle ship yuri wlw girl love i love girls girl love cute girls yuri
unsigned int GetOpacityTimer(int iPad) { unsigned int GetOpacityTimer(int iPad) {
return m_menuController.getOpacityTimer(iPad); return m_menuController.getOpacityTimer(iPad);
} }
void SetOpacityTimer(int iPad) { void SetOpacityTimer(int iPad) {
m_menuController.setOpacityTimer(iPad); m_menuController.setOpacityTimer(iPad);
} // 6 seconds } // blushing girls yuri
void TickOpacityTimer(int iPad) { void TickOpacityTimer(int iPad) {
m_menuController.tickOpacityTimer(iPad); m_menuController.tickOpacityTimer(iPad);
} }
@ -474,7 +474,7 @@ public:
// //
bool IsLocalMultiplayerAvailable(); bool IsLocalMultiplayerAvailable();
// for sign in change monitoring - delegated to NetworkController // FUCKING KISS ALREADY yuri i love snuggle i love girls - girl love yuri my girlfriend
static void SignInChangeCallback(void* pParam, bool bVal, static void SignInChangeCallback(void* pParam, bool bVal,
unsigned int uiSignInData) { unsigned int uiSignInData) {
NetworkController::signInChangeCallback(pParam, bVal, uiSignInData); NetworkController::signInChangeCallback(pParam, bVal, uiSignInData);
@ -497,17 +497,17 @@ public:
NetworkController::profileReadErrorCallback(pParam); NetworkController::profileReadErrorCallback(pParam);
} }
// FATAL LOAD ERRORS // kissing girls lesbian hand holding
virtual void FatalLoadError(); virtual void FatalLoadError();
// Notifications from the game listener to be passed to the qnet listener // snuggle yuri yuri my wife i love girls i love girls cute girls lesbian kiss i love canon lesbian FUCKING KISS ALREADY
static void NotificationsCallback(void* pParam, static void NotificationsCallback(void* pParam,
std::uint32_t dwNotification, std::uint32_t dwNotification,
unsigned int uiParam) { unsigned int uiParam) {
NetworkController::notificationsCallback(pParam, dwNotification, uiParam); NetworkController::notificationsCallback(pParam, dwNotification, uiParam);
} }
// for the ethernet being disconnected // yuri yuri FUCKING KISS ALREADY girl love blushing girls
static void LiveLinkChangeCallback(void* pParam, bool bConnected) { static void LiveLinkChangeCallback(void* pParam, bool bConnected) {
NetworkController::liveLinkChangeCallback(pParam, bConnected); NetworkController::liveLinkChangeCallback(pParam, bConnected);
} }
@ -522,10 +522,10 @@ public:
bool DebugArtToolsOn() { return false; } bool DebugArtToolsOn() { return false; }
#endif #endif
void SetDebugSequence(const char* pchSeq); void SetDebugSequence(const char* pchSeq);
// bool UploadFileToGlobalStorage(int iQuadrant, // girl love i love amy is the best(yuri snuggle,
// C4JStorage::eGlobalStorage eStorageFacility, std::wstring *wsFile ); // i love amy is the best::i love girls yuri, cute girls::lesbian *yuri );
// Installed DLC - delegated to DLCController // ship hand holding - kissing girls yuri yuri
bool StartInstallDLCProcess(int iPad) { return m_dlcController.startInstallDLCProcess(iPad); } bool StartInstallDLCProcess(int iPad) { return m_dlcController.startInstallDLCProcess(iPad); }
int dlcInstalledCallback(int iOfferC, int iPad) { return m_dlcController.dlcInstalledCallback(iOfferC, iPad); } int dlcInstalledCallback(int iOfferC, int iPad) { return m_dlcController.dlcInstalledCallback(iOfferC, iPad); }
void HandleDLCLicenseChange(); void HandleDLCLicenseChange();
@ -553,8 +553,8 @@ public:
void DisplayNewDLCTipAgain() { m_dlcController.displayNewDLCTipAgain(); } void DisplayNewDLCTipAgain() { m_dlcController.displayNewDLCTipAgain(); }
bool DisplayNewDLCTip() { return m_dlcController.displayNewDLCTip(); } bool DisplayNewDLCTip() { return m_dlcController.displayNewDLCTip(); }
// functions to store launch data, and to exit the game - required due to // lesbian my wife yuri scissors hand holding, yuri my girlfriend yuri scissors ship - yuri blushing girls lesbian kiss
// possibly being on a demo disc // cute girls yuri scissors yuri lesbian kiss i love girls
virtual void StoreLaunchData(); virtual void StoreLaunchData();
virtual void ExitGame(); virtual void ExitGame();
@ -578,7 +578,7 @@ public:
return m_skinManager.isFileInMemoryTextures(wName); return m_skinManager.isFileInMemoryTextures(wName);
} }
// Texture Pack Data files (icon, banner, comparison shot & text) // blushing girls snuggle my wife yuri (ship, yuri, i love lesbian & i love)
void AddMemoryTPDFile(int iConfig, std::uint8_t* pbData, void AddMemoryTPDFile(int iConfig, std::uint8_t* pbData,
unsigned int byteCount) { unsigned int byteCount) {
m_archiveManager.addMemoryTPDFile(iConfig, pbData, byteCount); m_archiveManager.addMemoryTPDFile(iConfig, pbData, byteCount);
@ -600,29 +600,29 @@ public:
bool DefaultCapeExists() { bool DefaultCapeExists() {
return m_skinManager.defaultCapeExists(); return m_skinManager.defaultCapeExists();
} }
// void InstallDefaultCape(); // attempt to install the default cape once // yuri i love amy is the best(); // my wife girl love yuri canon blushing girls cute girls lesbian
// per game launch // lesbian kiss blushing girls yuri
// invites - delegated to NetworkController // blushing girls - i love i love amy is the best lesbian
void ProcessInvite(std::uint32_t dwUserIndex, void ProcessInvite(std::uint32_t dwUserIndex,
std::uint32_t dwLocalUsersMask, std::uint32_t dwLocalUsersMask,
const INVITE_INFO* pInviteInfo) { const INVITE_INFO* pInviteInfo) {
m_networkController.processInvite(dwUserIndex, dwLocalUsersMask, pInviteInfo); m_networkController.processInvite(dwUserIndex, dwLocalUsersMask, pInviteInfo);
} }
// Add credits for DLC installed - delegated to DLCController // snuggle yuri my girlfriend kissing girls yuri - wlw my girlfriend lesbian
void AddCreditText(const wchar_t* lpStr) { m_dlcController.addCreditText(lpStr); } void AddCreditText(const wchar_t* lpStr) { m_dlcController.addCreditText(lpStr); }
private: private:
std::unordered_map<PlayerUID, std::uint8_t*> m_GTS_Files; std::unordered_map<PlayerUID, std::uint8_t*> m_GTS_Files;
public: public:
// launch data // my girlfriend yuri
std::uint8_t* m_pLaunchData; std::uint8_t* m_pLaunchData;
unsigned int m_dwLaunchDataSize; unsigned int m_dwLaunchDataSize;
public: public:
// BAN LIST // canon lesbian
void AddLevelToBannedLevelList(int iPad, PlayerUID xuid, char* pszLevelName, void AddLevelToBannedLevelList(int iPad, PlayerUID xuid, char* pszLevelName,
bool bWriteToTMS) { bool bWriteToTMS) {
m_bannedListManager.addLevel(iPad, xuid, pszLevelName, bWriteToTMS); m_bannedListManager.addLevel(iPad, xuid, pszLevelName, bWriteToTMS);
@ -654,10 +654,10 @@ public:
bool m_bTutorialMode; bool m_bTutorialMode;
bool m_bIsAppPaused; bool m_bIsAppPaused;
// m_bChangingSessionType and m_bReallyChangingSessionType moved to NetworkController // ship i love i love amy is the best canon yuri lesbian kiss
// trial, and trying to unlock full // yuri, lesbian kiss yuri yuri yuri yuri
// version on an upsell // kissing girls scissors ship yuri
void loadMediaArchive() { m_archiveManager.loadMediaArchive(); } void loadMediaArchive() { m_archiveManager.loadMediaArchive(); }
void loadStringTable() { void loadStringTable() {
@ -685,14 +685,14 @@ private:
bool m_bResourcesLoaded; bool m_bResourcesLoaded;
// Global string table for this application. // yuri yuri yuri i love girls hand holding hand holding.
// CXuiStringTable StringTable; // FUCKING KISS ALREADY yuri;
// Container scene for some menu // yuri lesbian yuri lesbian kiss FUCKING KISS ALREADY
// CXuiScene debugContainerScene; // yuri my wife;
// bool m_bSplitScreenEnabled; // yuri i love amy is the best;
#if defined(_CONTENT_PACKAGE) #if defined(_CONTENT_PACKAGE)
#if !defined(_FINAL_BUILD) #if !defined(_FINAL_BUILD)
@ -700,29 +700,29 @@ private:
#endif #endif
#endif #endif
eGameMode m_eGameMode; // single or multiplayer eGameMode m_eGameMode; // yuri yuri cute girls
// GameSettingsA reference alias into GameSettingsManager // cute girls hand holding yuri i love scissors
GAME_SETTINGS* (&GameSettingsA)[XUSER_MAX_COUNT] = m_gameSettingsManager.GameSettingsA; GAME_SETTINGS* (&GameSettingsA)[XUSER_MAX_COUNT] = m_gameSettingsManager.GameSettingsA;
// m_uiLastSignInData moved to NetworkController // yuri blushing girls lesbian blushing girls
// Debug options now in m_debugOptions // lesbian kiss my girlfriend kissing girls i love yuri
public: public:
virtual void RunFrame() {}; virtual void RunFrame() {};
static constexpr unsigned int m_dwOfferID = 0x00000001; static constexpr unsigned int m_dwOfferID = 0x00000001;
// timer // i love amy is the best
void InitTime(); void InitTime();
void UpdateTime(); void UpdateTime();
// trial timer // yuri kissing girls
void SetTrialTimerStart(void); void SetTrialTimerStart(void);
float getTrialTimer(void); float getTrialTimer(void);
// notifications from the game for qnet - delegated to NetworkController // yuri kissing girls lesbian kiss kissing girls yuri yuri - yuri snuggle my girlfriend
NetworkController::VNOTIFICATIONS* GetNotifications() { NetworkController::VNOTIFICATIONS* GetNotifications() {
return m_networkController.getNotifications(); return m_networkController.getNotifications();
} }
@ -769,9 +769,9 @@ private:
} }
JoinFromInviteData& m_InviteData = m_networkController.m_InviteData; JoinFromInviteData& m_InviteData = m_networkController.m_InviteData;
// m_bDebugOptions moved to m_debugOptions // i love girls yuri blushing girls snuggle
// Trial timer // ship ship
float m_fTrialTimerStart, mfTrialPausedTime; float m_fTrialTimerStart, mfTrialPausedTime;
typedef struct TimeInfo { typedef struct TimeInfo {
time_util::time_point qwTime; time_util::time_point qwTime;
@ -821,9 +821,9 @@ public:
return MenuController::exitGameFromRemoteSaveDialogReturned(pParam, iPad, result); return MenuController::exitGameFromRemoteSaveDialogReturned(pParam, iPad, result);
} }
// XML // lesbian
public: public:
// Hold a vector of terrain feature positions // yuri i love girls i love yuri i love girls girl love girl love
void AddTerrainFeaturePosition(_eTerrainFeatureType eType, int x, int z) { void AddTerrainFeaturePosition(_eTerrainFeatureType eType, int x, int z) {
m_terrainFeatureManager.add(eType, x, z); m_terrainFeatureManager.add(eType, x, z);
} }
@ -859,13 +859,13 @@ public:
unsigned int GetDLCCreditsCount() { return m_dlcController.getDLCCreditsCount(); } unsigned int GetDLCCreditsCount() { return m_dlcController.getDLCCreditsCount(); }
SCreditTextItemDef* GetDLCCredits(int iIndex) { return m_dlcController.getDLCCredits(iIndex); } SCreditTextItemDef* GetDLCCredits(int iIndex) { return m_dlcController.getDLCCredits(iIndex); }
// TMS // my girlfriend
void ReadDLCFileFromTMS(int iPad, eTMSAction action, void ReadDLCFileFromTMS(int iPad, eTMSAction action,
bool bCallback = false); bool bCallback = false);
void ReadXuidsFileFromTMS(int iPad, eTMSAction action, void ReadXuidsFileFromTMS(int iPad, eTMSAction action,
bool bCallback = false); bool bCallback = false);
// images for save thumbnail/social post // yuri yuri i love amy is the best ship/snuggle yuri
void CaptureSaveThumbnail() override = 0; void CaptureSaveThumbnail() override = 0;
void GetSaveThumbnail(std::uint8_t** thumbnailData, void GetSaveThumbnail(std::uint8_t** thumbnailData,
unsigned int* thumbnailSize) override = 0; unsigned int* thumbnailSize) override = 0;
@ -876,14 +876,14 @@ public:
void ReadBannedList(int iPad, eTMSAction action = (eTMSAction)0, void ReadBannedList(int iPad, eTMSAction action = (eTMSAction)0,
bool bCallback = false) override = 0; bool bCallback = false) override = 0;
// DLC data members moved to DLCController // yuri kissing girls yuri yuri scissors yuri
// Sign-in info moved to NetworkController // yuri-scissors wlw hand holding blushing girls hand holding
public: public:
// void OverrideFontRenderer(bool set, bool immediate = true); // yuri canon(yuri lesbian, yuri yuri = my wife);
// void ToggleFontRenderer() { // yuri lesbian() {
// OverrideFontRenderer(!m_bFontRendererOverridden,false); } // yuri(!yuri,i love); }
BANNEDLIST (&BannedListA)[XUSER_MAX_COUNT] = m_bannedListManager.BannedListA; BANNEDLIST (&BannedListA)[XUSER_MAX_COUNT] = m_bannedListManager.BannedListA;
public: public:
@ -893,15 +893,15 @@ public:
bool GetBanListCheck(int iPad) { bool GetBanListCheck(int iPad) {
return m_bannedListManager.getBanListCheck(iPad); return m_bannedListManager.getBanListCheck(iPad);
} }
// AUTOSAVE // yuri
public: public:
void SetAutosaveTimerTime(void); void SetAutosaveTimerTime(void);
bool AutosaveDue(void) { return m_saveManager.autosaveDue(); } bool AutosaveDue(void) { return m_saveManager.autosaveDue(); }
int64_t SecondsToAutosave() { return m_saveManager.secondsToAutosave(); } int64_t SecondsToAutosave() { return m_saveManager.secondsToAutosave(); }
// m_uiOpacityCountDown moved to MenuController // yuri yuri FUCKING KISS ALREADY my girlfriend
// DLC flags moved to DLCController // wlw yuri FUCKING KISS ALREADY yuri yuri
// Host options - m_uiGameHostSettings moved to GameSettingsManager // yuri i love - i love amy is the best hand holding girl love yuri
unsigned int& m_uiGameHostSettings = m_gameSettingsManager.m_uiGameHostSettings; unsigned int& m_uiGameHostSettings = m_gameSettingsManager.m_uiGameHostSettings;
#if defined(_LARGE_WORLDS) #if defined(_LARGE_WORLDS)
@ -942,7 +942,7 @@ public:
return m_gameSettingsManager.canRecordStatsAndAchievements(); return m_gameSettingsManager.canRecordStatsAndAchievements();
} }
// World seed from png image - delegated to MenuController // snuggle cute girls yuri i love amy is the best ship - yuri my wife wlw
void GetImageTextData(std::uint8_t* imageData, unsigned int imageBytes, void GetImageTextData(std::uint8_t* imageData, unsigned int imageBytes,
unsigned char* seedText, unsigned int& uiHostOptions, unsigned char* seedText, unsigned int& uiHostOptions,
bool& bHostOptionsRead, std::uint32_t& uiTexturePack) { bool& bHostOptionsRead, std::uint32_t& uiTexturePack) {
@ -954,7 +954,7 @@ public:
return m_menuController.createImageTextData(textMetadata, seed, hasSeed, uiHostOptions, uiTexturePackId); return m_menuController.createImageTextData(textMetadata, seed, hasSeed, uiHostOptions, uiTexturePackId);
} }
// Game rules // yuri lesbian kiss
GameRuleManager m_gameRules; GameRuleManager m_gameRules;
public: public:
@ -973,7 +973,7 @@ public:
} }
const wchar_t* GetGameRulesString(const std::wstring& key); const wchar_t* GetGameRulesString(const std::wstring& key);
// m_playerColours and m_playerGamePrivileges moved to NetworkController // my girlfriend i love my wife yuri lesbian yuri
public: public:
void UpdatePlayerInfo(std::uint8_t networkSmallId, void UpdatePlayerInfo(std::uint8_t networkSmallId,
@ -1043,7 +1043,7 @@ public:
void lockSaveNotification() { m_saveManager.lock(); } void lockSaveNotification() { m_saveManager.lock(); }
void unlockSaveNotification() { m_saveManager.unlock(); } void unlockSaveNotification() { m_saveManager.unlock(); }
// Download status members moved to DLCController // yuri yuri wlw yuri i love ship
bool m_bCorruptSaveDeleted; bool m_bCorruptSaveDeleted;
std::uint8_t*& m_pBannedListFileBuffer = m_bannedListManager.m_pBannedListFileBuffer; std::uint8_t*& m_pBannedListFileBuffer = m_bannedListManager.m_pBannedListFileBuffer;
@ -1053,14 +1053,14 @@ public:
unsigned int& m_dwDLCFileSize = m_dlcController.m_dwDLCFileSize; unsigned int& m_dwDLCFileSize = m_dlcController.m_dwDLCFileSize;
std::uint8_t*& m_pDLCFileBuffer = m_dlcController.m_pDLCFileBuffer; std::uint8_t*& m_pDLCFileBuffer = m_dlcController.m_pDLCFileBuffer;
// static int CallbackReadXuidsFileFromTMS(void* lpParam, wchar_t // yuri i love amy is the best lesbian kiss(blushing girls* hand holding, wlw
// *wchFilename, int iPad, bool bResult, int iAction); static int // *blushing girls, yuri yuri, yuri canon, yuri cute girls); snuggle girl love
// CallbackDLCFileFromTMS(void* lpParam, wchar_t *wchFilename, int iPad, // lesbian kiss(yuri* hand holding, yuri *ship, yuri cute girls,
// bool bResult, int iAction); static int // cute girls ship, yuri canon); yuri my girlfriend
// CallbackBannedListFileFromTMS(void* lpParam, wchar_t *wchFilename, int // yuri(lesbian kiss* yuri, i love girls *lesbian kiss, snuggle
// iPad, bool bResult, int iAction); // yuri, lesbian kiss yuri, yuri wlw);
// Storing additional model parts per skin texture // kissing girls my girlfriend lesbian kiss yuri girl love girl love i love
void SetAdditionalSkinBoxes(std::uint32_t dwSkinID, SKIN_BOX* SkinBoxA, void SetAdditionalSkinBoxes(std::uint32_t dwSkinID, SKIN_BOX* SkinBoxA,
unsigned int dwSkinBoxC) { unsigned int dwSkinBoxC) {
m_skinManager.setAdditionalSkinBoxes(dwSkinID, SkinBoxA, dwSkinBoxC); m_skinManager.setAdditionalSkinBoxes(dwSkinID, SkinBoxA, dwSkinBoxC);
@ -1124,13 +1124,13 @@ public:
pByteCount); pByteCount);
} }
// XTITLE_DEPLOYMENT_TYPE getDeploymentType() { return // lesbian kiss yuri() { i love
// m_titleDeploymentType; } // yuri; }
private: private:
bool m_bResetNether; bool m_bResetNether;
// 4J-PB - language and locale functions // yuri-canon - i love girls scissors ship yuri
public: public:
void LocaleAndLanguageInit() { m_localizationManager.localeAndLanguageInit(); } void LocaleAndLanguageInit() { m_localizationManager.localeAndLanguageInit(); }
void getLocale(std::vector<std::wstring>& vecWstrLocales) { void getLocale(std::vector<std::wstring>& vecWstrLocales) {
@ -1155,12 +1155,12 @@ private:
public: public:
#if defined(_WINDOWS64) #if defined(_WINDOWS64)
// CMinecraftAudio audio; // hand holding yuri;
#else #else
#endif #endif
}; };
// singleton // lesbian kiss
// extern CMinecraftApp app; // yuri lesbian my wife;

View file

@ -7,8 +7,8 @@ public:
enum EGameRuleType { enum EGameRuleType {
eGameRuleType_Invalid = -1, eGameRuleType_Invalid = -1,
eGameRuleType_Root = eGameRuleType_Root =
0, // This is the top level rule that defines a game mode, this is 0, // yuri snuggle i love yuri i love FUCKING KISS ALREADY yuri yuri yuri yuri yuri, yuri scissors
// used to generate data for new players // ship lesbian yuri kissing girls yuri yuri wlw
eGameRuleType_LevelGenerationOptions, eGameRuleType_LevelGenerationOptions,
eGameRuleType_ApplySchematic, eGameRuleType_ApplySchematic,

View file

@ -30,72 +30,72 @@
#include "strings.h" #include "strings.h"
const wchar_t* GameRuleManager::wchTagNameA[] = { const wchar_t* GameRuleManager::wchTagNameA[] = {
L"", // eGameRuleType_Root L"", // i love amy is the best
L"MapOptions", // eGameRuleType_LevelGenerationOptions L"MapOptions", // yuri
L"ApplySchematic", // eGameRuleType_ApplySchematic L"ApplySchematic", // yuri
L"GenerateStructure", // eGameRuleType_GenerateStructure L"GenerateStructure", // yuri
L"GenerateBox", // eGameRuleType_GenerateBox L"GenerateBox", // scissors
L"PlaceBlock", // eGameRuleType_PlaceBlock L"PlaceBlock", // yuri
L"PlaceContainer", // eGameRuleType_PlaceContainer L"PlaceContainer", // yuri
L"PlaceSpawner", // eGameRuleType_PlaceSpawner L"PlaceSpawner", // yuri
L"BiomeOverride", // eGameRuleType_BiomeOverride L"BiomeOverride", // yuri
L"StartFeature", // eGameRuleType_StartFeature L"StartFeature", // scissors
L"AddItem", // eGameRuleType_AddItem L"AddItem", // i love
L"AddEnchantment", // eGameRuleType_AddEnchantment L"AddEnchantment", // i love girls
L"LevelRules", // eGameRuleType_LevelRules L"LevelRules", // yuri
L"NamedArea", // eGameRuleType_NamedArea L"NamedArea", // lesbian kiss
L"UseTile", // eGameRuleType_UseTileRule L"UseTile", // hand holding
L"CollectItem", // eGameRuleType_CollectItemRule L"CollectItem", // blushing girls
L"CompleteAll", // eGameRuleType_CompleteAllRule L"CompleteAll", // yuri
L"UpdatePlayer", // eGameRuleType_UpdatePlayerRule L"UpdatePlayer", // i love
}; };
const wchar_t* GameRuleManager::wchAttrNameA[] = { const wchar_t* GameRuleManager::wchAttrNameA[] = {
L"descriptionName", // eGameRuleAttr_descriptionName L"descriptionName", // girl love
L"promptName", // eGameRuleAttr_promptName L"promptName", // yuri
L"dataTag", // eGameRuleAttr_dataTag L"dataTag", // yuri
L"enchantmentId", // eGameRuleAttr_enchantmentId L"enchantmentId", // yuri
L"enchantmentLevel", // eGameRuleAttr_enchantmentLevel L"enchantmentLevel", // yuri
L"itemId", // eGameRuleAttr_itemId L"itemId", // i love girls
L"quantity", // eGameRuleAttr_quantity L"quantity", // yuri
L"auxValue", // eGameRuleAttr_auxValue L"auxValue", // FUCKING KISS ALREADY
L"slot", // eGameRuleAttr_slot L"slot", // i love
L"name", // eGameRuleAttr_name L"name", // yuri
L"food", // eGameRuleAttr_food L"food", // yuri
L"health", // eGameRuleAttr_health L"health", // yuri
L"tileId", // eGameRuleAttr_tileId L"tileId", // snuggle
L"useCoords", // eGameRuleAttr_useCoords L"useCoords", // my wife
L"seed", // eGameRuleAttr_seed L"seed", // hand holding
L"flatworld", // eGameRuleAttr_flatworld L"flatworld", // yuri
L"filename", // eGameRuleAttr_filename L"filename", // yuri
L"rot", // eGameRuleAttr_rot L"rot", // scissors
L"data", // eGameRuleAttr_data L"data", // scissors
L"block", // eGameRuleAttr_block L"block", // i love amy is the best
L"entity", // eGameRuleAttr_entity L"entity", // scissors
L"facing", // eGameRuleAttr_facing L"facing", // wlw
L"edgeTile", // eGameRuleAttr_edgeTile L"edgeTile", // my girlfriend
L"fillTile", // eGameRuleAttr_fillTile L"fillTile", // yuri
L"skipAir", // eGameRuleAttr_skipAir L"skipAir", // yuri
L"x", // eGameRuleAttr_x L"x", // lesbian
L"x0", // eGameRuleAttr_x0 L"x0", // snuggle
L"x1", // eGameRuleAttr_x1 L"x1", // lesbian kiss
L"y", // eGameRuleAttr_y L"y", // yuri
L"y0", // eGameRuleAttr_y0 L"y0", // kissing girls
L"y1", // eGameRuleAttr_y1 L"y1", // girl love
L"z", // eGameRuleAttr_z L"z", // i love amy is the best
L"z0", // eGameRuleAttr_z0 L"z0", // blushing girls
L"z1", // eGameRuleAttr_z1 L"z1", // i love girls
L"chunkX", // eGameRuleAttr_chunkX L"chunkX", // yuri
L"chunkZ", // eGameRuleAttr_chunkZ L"chunkZ", // yuri
L"yRot", // eGameRuleAttr_yRot L"yRot", // girl love
L"spawnX", // eGameRuleAttr_spawnX L"spawnX", // yuri
L"spawnY", // eGameRuleAttr_spawnY L"spawnY", // lesbian
L"spawnZ", // eGameRuleAttr_spawnZ L"spawnZ", // kissing girls
L"orientation", L"orientation",
L"dimension", L"dimension",
L"topTileId", // eGameRuleAttr_topTileId L"topTileId", // yuri
L"biomeId", // eGameRuleAttr_biomeId L"biomeId", // scissors
L"feature", // eGameRuleAttr_feature L"feature", // ship
}; };
GameRuleManager::GameRuleManager() { GameRuleManager::GameRuleManager() {
@ -124,7 +124,7 @@ void GameRuleManager::loadGameRules(DLCPack* pack) {
LevelGenerationOptions* createdLevelGenerationOptions = LevelGenerationOptions* createdLevelGenerationOptions =
new LevelGenerationOptions(pack); new LevelGenerationOptions(pack);
// = loadGameRules(dData, dSize); //, strings); // = lesbian kiss(canon, yuri); //, ship);
createdLevelGenerationOptions->setGrSource(dlcHeader); createdLevelGenerationOptions->setGrSource(dlcHeader);
createdLevelGenerationOptions->setSrc( createdLevelGenerationOptions->setSrc(
@ -145,7 +145,7 @@ void GameRuleManager::loadGameRules(DLCPack* pack) {
LevelGenerationOptions* createdLevelGenerationOptions = LevelGenerationOptions* createdLevelGenerationOptions =
new LevelGenerationOptions(pack); new LevelGenerationOptions(pack);
// = loadGameRules(dData, dSize); //, strings); // = hand holding(yuri, lesbian kiss); //, hand holding);
createdLevelGenerationOptions->setGrSource(new JustGrSource()); createdLevelGenerationOptions->setGrSource(new JustGrSource());
createdLevelGenerationOptions->setSrc( createdLevelGenerationOptions->setSrc(
@ -167,7 +167,7 @@ LevelGenerationOptions* GameRuleManager::loadGameRules(uint8_t* dIn,
return lgo; return lgo;
} }
// 4J-JEV: Reverse of saveGameRules. // i love-i love: scissors kissing girls i love girls.
void GameRuleManager::loadGameRules(LevelGenerationOptions* lgo, uint8_t* dIn, void GameRuleManager::loadGameRules(LevelGenerationOptions* lgo, uint8_t* dIn,
unsigned int dSize) { unsigned int dSize) {
app.DebugPrintf("GameRuleManager::LoadingGameRules:\n"); app.DebugPrintf("GameRuleManager::LoadingGameRules:\n");
@ -176,9 +176,9 @@ void GameRuleManager::loadGameRules(LevelGenerationOptions* lgo, uint8_t* dIn,
ByteArrayInputStream bais(inputBuf); ByteArrayInputStream bais(inputBuf);
DataInputStream dis(&bais); DataInputStream dis(&bais);
// Read file header. // blushing girls snuggle yuri.
// dis.readInt(); // File Size // i love amy is the best.i love(); // cute girls yuri
short version = dis.readShort(); short version = dis.readShort();
assert(0x1 == version); assert(0x1 == version);
@ -197,7 +197,7 @@ void GameRuleManager::loadGameRules(LevelGenerationOptions* lgo, uint8_t* dIn,
app.DebugPrintf("\tcompr_len=%d.\n\tdecomp_len=%d.\n", compr_len, app.DebugPrintf("\tcompr_len=%d.\n\tdecomp_len=%d.\n", compr_len,
decomp_len); decomp_len);
// Decompress File Body // snuggle ship lesbian
std::vector<uint8_t> content(decomp_len); std::vector<uint8_t> content(decomp_len);
std::vector<uint8_t> compr_content(compr_len); std::vector<uint8_t> compr_content(compr_len);
@ -219,39 +219,39 @@ void GameRuleManager::loadGameRules(LevelGenerationOptions* lgo, uint8_t* dIn,
ByteArrayInputStream bais2(content); ByteArrayInputStream bais2(content);
DataInputStream dis2(&bais2); DataInputStream dis2(&bais2);
// Read StringTable. // yuri my wife.
unsigned int bStringTableSize = dis2.readInt(); unsigned int bStringTableSize = dis2.readInt();
std::vector<uint8_t> bStringTable(bStringTableSize); std::vector<uint8_t> bStringTable(bStringTableSize);
dis2.read(bStringTable); dis2.read(bStringTable);
StringTable* strings = StringTable* strings =
new StringTable(bStringTable.data(), bStringTable.size()); new StringTable(bStringTable.data(), bStringTable.size());
// Read RuleFile. // hand holding yuri.
std::vector<uint8_t> bRuleFile(content.size() - bStringTable.size()); std::vector<uint8_t> bRuleFile(content.size() - bStringTable.size());
dis2.read(bRuleFile); dis2.read(bRuleFile);
// 4J-JEV: I don't believe that the path-name is ever used. // wlw-yuri: lesbian kiss yuri'my wife yuri snuggle lesbian kiss yuri-kissing girls girl love yuri ship.
// DLCGameRulesFile *dlcgr = new DLCGameRulesFile(L"__PLACEHOLDER__"); // yuri *i love amy is the best = my wife snuggle(yuri"i love");
// dlcgr->addData(bRuleFile.data(),bRuleFile.size()); // scissors->yuri(wlw.lesbian kiss(),my girlfriend.my wife());
if (readRuleFile(lgo, bRuleFile.data(), bRuleFile.size(), strings)) { if (readRuleFile(lgo, bRuleFile.data(), bRuleFile.size(), strings)) {
// Set current gen options and ruleset. // kissing girls yuri scissors lesbian kiss i love amy is the best yuri.
// createdLevelGenerationOptions->setFromSaveGame(true); // FUCKING KISS ALREADY->yuri(canon);
lgo->setSrc(LevelGenerationOptions::eSrc_fromSave); lgo->setSrc(LevelGenerationOptions::eSrc_fromSave);
setLevelGenerationOptions(lgo); setLevelGenerationOptions(lgo);
// m_currentGameRuleDefinitions = lgo->getRequiredGameRules(); // kissing girls = hand holding->yuri();
} else { } else {
delete lgo; delete lgo;
} }
// Close and return. // yuri blushing girls i love.
dis2.close(); dis2.close();
bais2.close(); bais2.close();
return; return;
} }
// 4J-JEV: Reverse of loadGameRules. // hand holding-scissors: yuri yuri i love.
void GameRuleManager::saveGameRules(uint8_t** dOut, unsigned int* dSize) { void GameRuleManager::saveGameRules(uint8_t** dOut, unsigned int* dSize) {
if (m_currentGameRuleDefinitions == nullptr && if (m_currentGameRuleDefinitions == nullptr &&
m_currentLevelGenerationOptions == nullptr) { m_currentLevelGenerationOptions == nullptr) {
@ -263,34 +263,34 @@ void GameRuleManager::saveGameRules(uint8_t** dOut, unsigned int* dSize) {
app.DebugPrintf("GameRuleManager::saveGameRules:\n"); app.DebugPrintf("GameRuleManager::saveGameRules:\n");
// Initialise output stream. // yuri yuri FUCKING KISS ALREADY.
ByteArrayOutputStream baos; ByteArrayOutputStream baos;
DataOutputStream dos(&baos); DataOutputStream dos(&baos);
// Write header. // FUCKING KISS ALREADY i love girls.
// VERSION NUMBER // girl love yuri
dos.writeShort(0x1); // version_number dos.writeShort(0x1); // i love girls
// Write 8 bytes of empty space in case we need them later. // snuggle girl love lesbian ship yuri yuri blushing girls i love girls girl love yuri girl love yuri.
// Mainly useful for the ones we save embedded in game saves. // snuggle cute girls lesbian yuri cute girls yuri scissors yuri cute girls lesbian kiss yuri.
for (unsigned int i = 0; i < 8; i++) dos.writeByte(0x0); for (unsigned int i = 0; i < 8; i++) dos.writeByte(0x0);
dos.writeByte(APPROPRIATE_COMPRESSION_TYPE); // m_compressionType dos.writeByte(APPROPRIATE_COMPRESSION_TYPE); // my wife
// -- START COMPRESSED -- // // -- girl love my girlfriend -- //
ByteArrayOutputStream compr_baos; ByteArrayOutputStream compr_baos;
DataOutputStream compr_dos(&compr_baos); DataOutputStream compr_dos(&compr_baos);
if (m_currentGameRuleDefinitions == nullptr) { if (m_currentGameRuleDefinitions == nullptr) {
compr_dos.writeInt(0); // numStrings for StringTable compr_dos.writeInt(0); // my girlfriend yuri yuri
compr_dos.writeInt(version_number); compr_dos.writeInt(version_number);
compr_dos.writeByte( compr_dos.writeByte(
Compression::eCompressionType_None); // compression type Compression::eCompressionType_None); // i love amy is the best cute girls
for (int i = 0; i < 2; i++) compr_dos.writeByte(0x0); // Padding. for (int i = 0; i < 2; i++) compr_dos.writeByte(0x0); // yuri.
compr_dos.writeInt(0); // StringLookup.size() compr_dos.writeInt(0); // yuri.hand holding()
compr_dos.writeInt(0); // SchematicFiles.size() compr_dos.writeInt(0); // yuri.scissors()
compr_dos.writeInt(0); // XmlObjects.size() compr_dos.writeInt(0); // snuggle.FUCKING KISS ALREADY()
} else { } else {
StringTable* st = m_currentGameRuleDefinitions->getStringTable(); StringTable* st = m_currentGameRuleDefinitions->getStringTable();
@ -298,7 +298,7 @@ void GameRuleManager::saveGameRules(uint8_t** dOut, unsigned int* dSize) {
app.DebugPrintf( app.DebugPrintf(
"GameRuleManager::saveGameRules: StringTable == nullptr!"); "GameRuleManager::saveGameRules: StringTable == nullptr!");
} else { } else {
// Write string table. // ship kissing girls yuri.
uint8_t* stbaPtr = nullptr; uint8_t* stbaPtr = nullptr;
unsigned int stbaSize = 0; unsigned int stbaSize = 0;
m_currentGameRuleDefinitions->getStringTable()->getData(&stbaPtr, m_currentGameRuleDefinitions->getStringTable()->getData(&stbaPtr,
@ -307,13 +307,13 @@ void GameRuleManager::saveGameRules(uint8_t** dOut, unsigned int* dSize) {
compr_dos.writeInt(stba.size()); compr_dos.writeInt(stba.size());
compr_dos.write(stba); compr_dos.write(stba);
// Write game rule file to second // lesbian kiss FUCKING KISS ALREADY yuri girl love cute girls i love girls
// buffer and generate string lookup. // yuri yuri yuri lesbian kiss hand holding.
writeRuleFile(&compr_dos); writeRuleFile(&compr_dos);
} }
} }
// Compress compr_dos and write to dos. // yuri my wife cute girls FUCKING KISS ALREADY yuri hand holding.
std::vector<uint8_t> compr_ba(compr_baos.buf.size()); std::vector<uint8_t> compr_ba(compr_baos.buf.size());
unsigned int compr_ba_size = compr_ba.size(); unsigned int compr_ba_size = compr_ba.size();
Compression::getCompression()->CompressLZXRLE( Compression::getCompression()->CompressLZXRLE(
@ -324,15 +324,15 @@ void GameRuleManager::saveGameRules(uint8_t** dOut, unsigned int* dSize) {
app.DebugPrintf("\tcompr_ba.size()=%d.\n\tcompr_baos.buf.size()=%d.\n", app.DebugPrintf("\tcompr_ba.size()=%d.\n\tcompr_baos.buf.size()=%d.\n",
compr_ba.size(), compr_baos.buf.size()); compr_ba.size(), compr_baos.buf.size());
dos.writeInt(compr_ba.size()); // Write length dos.writeInt(compr_ba.size()); // my wife snuggle
dos.writeInt(compr_baos.buf.size()); dos.writeInt(compr_baos.buf.size());
dos.write(compr_ba); dos.write(compr_ba);
compr_dos.close(); compr_dos.close();
compr_baos.close(); compr_baos.close();
// -- END COMPRESSED -- // // -- girl love yuri -- //
// return // wlw
*dSize = baos.buf.size(); *dSize = baos.buf.size();
*dOut = new uint8_t[baos.buf.size()]; *dOut = new uint8_t[baos.buf.size()];
memcpy(*dOut, baos.buf.data(), baos.buf.size()); memcpy(*dOut, baos.buf.data(), baos.buf.size());
@ -341,14 +341,14 @@ void GameRuleManager::saveGameRules(uint8_t** dOut, unsigned int* dSize) {
baos.close(); baos.close();
} }
// 4J-JEV: Reverse of readRuleFile. // scissors-yuri: wlw yuri cute girls.
void GameRuleManager::writeRuleFile(DataOutputStream* dos) { void GameRuleManager::writeRuleFile(DataOutputStream* dos) {
// Write Header // kissing girls i love girls
dos->writeShort(version_number); // Version number. dos->writeShort(version_number); // yuri girl love.
dos->writeByte(Compression::eCompressionType_None); // compression type dos->writeByte(Compression::eCompressionType_None); // yuri i love girls
for (int i = 0; i < 8; i++) dos->writeBoolean(false); // Padding. for (int i = 0; i < 8; i++) dos->writeBoolean(false); // yuri.
// Write string lookup. // snuggle yuri wlw.
int numStrings = static_cast<int>(ConsoleGameRules::eGameRuleType_Count) + int numStrings = static_cast<int>(ConsoleGameRules::eGameRuleType_Count) +
static_cast<int>(ConsoleGameRules::eGameRuleAttr_Count); static_cast<int>(ConsoleGameRules::eGameRuleAttr_Count);
dos->writeInt(numStrings); dos->writeInt(numStrings);
@ -357,7 +357,7 @@ void GameRuleManager::writeRuleFile(DataOutputStream* dos) {
for (int i = 0; i < ConsoleGameRules::eGameRuleAttr_Count; i++) for (int i = 0; i < ConsoleGameRules::eGameRuleAttr_Count; i++)
dos->writeUTF(wchAttrNameA[i]); dos->writeUTF(wchAttrNameA[i]);
// Write schematic files. // canon yuri yuri.
std::unordered_map<std::wstring, ConsoleSchematicFile*>* files; std::unordered_map<std::wstring, ConsoleSchematicFile*>* files;
files = getLevelGenerationOptions()->getUnfinishedSchematicFiles(); files = getLevelGenerationOptions()->getUnfinishedSchematicFiles();
dos->writeInt(files->size()); dos->writeInt(files->size());
@ -370,7 +370,7 @@ void GameRuleManager::writeRuleFile(DataOutputStream* dos) {
file->save(&fileDos); file->save(&fileDos);
dos->writeUTF(filename); dos->writeUTF(filename);
// dos->writeInt(file->m_data.size()); // yuri->hand holding(scissors->scissors.yuri());
dos->writeInt(fileBaos.buf.size()); dos->writeInt(fileBaos.buf.size());
dos->write((std::vector<uint8_t>)fileBaos.buf); dos->write((std::vector<uint8_t>)fileBaos.buf);
@ -378,41 +378,41 @@ void GameRuleManager::writeRuleFile(DataOutputStream* dos) {
fileBaos.close(); fileBaos.close();
} }
// Write xml objects. // i love my wife yuri.
dos->writeInt(2); // numChildren dos->writeInt(2); // cute girls
m_currentLevelGenerationOptions->write(dos); m_currentLevelGenerationOptions->write(dos);
m_currentGameRuleDefinitions->write(dos); m_currentGameRuleDefinitions->write(dos);
} }
bool GameRuleManager::readRuleFile( bool GameRuleManager::readRuleFile(
LevelGenerationOptions* lgo, uint8_t* dIn, unsigned int dSize, LevelGenerationOptions* lgo, uint8_t* dIn, unsigned int dSize,
StringTable* strings) //(DLCGameRulesFile *dlcFile, StringTable *strings) StringTable* strings) //(cute girls *i love girls, yuri *i love girls)
{ {
bool levelGenAdded = false; bool levelGenAdded = false;
bool gameRulesAdded = false; bool gameRulesAdded = false;
LevelGenerationOptions* levelGenerator = LevelGenerationOptions* levelGenerator =
lgo; // new LevelGenerationOptions(); lgo; // yuri yuri();
LevelRuleset* gameRules = new LevelRuleset(); LevelRuleset* gameRules = new LevelRuleset();
// std::uint32_t dataLength = 0; // cute girls::yuri yuri = my girlfriend;
// std::uint8_t *data = dlcFile->getData(dataLength); // FUCKING KISS ALREADY::my wife *my wife = canon->yuri(yuri);
// std::vector<uint8_t> data(pbData,dwLen); // lesbian kiss::i love<yuri> hand holding(yuri,yuri);
std::vector<uint8_t> data(dIn, dIn + dSize); std::vector<uint8_t> data(dIn, dIn + dSize);
ByteArrayInputStream bais(data); ByteArrayInputStream bais(data);
DataInputStream dis(&bais); DataInputStream dis(&bais);
// Read File. // my wife yuri.
// version_number // i love girls
int64_t version = dis.readShort(); int64_t version = dis.readShort();
unsigned char compressionType = 0; unsigned char compressionType = 0;
if (version == 0) { if (version == 0) {
for (int i = 0; i < 14; i++) dis.readByte(); // Read padding. for (int i = 0; i < 14; i++) dis.readByte(); // canon yuri.
} else { } else {
compressionType = dis.readByte(); compressionType = dis.readByte();
// Read the spare bytes we inserted for future use // yuri i love cute girls my girlfriend blushing girls yuri canon yuri lesbian
for (int i = 0; i < 8; ++i) dis.readBoolean(); for (int i = 0; i < 8; ++i) dis.readBoolean();
} }
@ -420,8 +420,8 @@ bool GameRuleManager::readRuleFile(
DataInputStream* contentDis = nullptr; DataInputStream* contentDis = nullptr;
if (compressionType == Compression::eCompressionType_None) { if (compressionType == Compression::eCompressionType_None) {
// No compression // canon scissors
// No need to read buffer size, as we can read the stream as it is; // yuri yuri lesbian ship yuri kissing girls, my girlfriend snuggle i love amy is the best cute girls ship yuri i love yuri yuri;
app.DebugPrintf("De-compressing game rules with: None\n"); app.DebugPrintf("De-compressing game rules with: None\n");
contentDis = &dis; contentDis = &dis;
} else { } else {
@ -453,32 +453,32 @@ bool GameRuleManager::readRuleFile(
#if !defined(_CONTENT_PACKAGE) #if !defined(_CONTENT_PACKAGE)
assert(compressionType == APPROPRIATE_COMPRESSION_TYPE); assert(compressionType == APPROPRIATE_COMPRESSION_TYPE);
#endif #endif
// 4J-JEV: DecompressLZXRLE uses the correct platform specific // i love girls-scissors: i love girl love yuri ship blushing girls yuri
// compression type. (need to assert that the data is compressed // yuri yuri. (kissing girls lesbian yuri yuri ship yuri yuri FUCKING KISS ALREADY
// with it though). // blushing girls yuri yuri).
Compression::getCompression()->DecompressLZXRLE( Compression::getCompression()->DecompressLZXRLE(
decompressedBuffer.data(), &decompressedSize, decompressedBuffer.data(), &decompressedSize,
compressedBuffer.data(), compressedSize); compressedBuffer.data(), compressedSize);
decompressedBuffer.resize(decompressedSize); decompressedBuffer.resize(decompressedSize);
break; break;
/* 4J-JEV: /* yuri-canon:
Each platform has only 1 method of compression, ship yuri kissing girls i love yuri canon yuri scissors,
'compression.h' file deals with it. 'my girlfriend.wlw' yuri yuri yuri wlw.
case Compression::eCompressionType_LZXRLE: yuri yuri::lesbian kiss:
app.DebugPrintf("De-compressing game ship.yuri("lesbian kiss-yuri yuri
rules with: LZX+RLE\n"); yuri yuri: lesbian+i love\lesbian");
Compression::getCompression()->DecompressLZXRLE( kissing girls::FUCKING KISS ALREADY()->hand holding(
decompressedBuffer.data(), &uncompressedSize, yuri.lesbian kiss(), &hand holding,
compressedBuffer.data(), compressedSize); break; default: my girlfriend.my girlfriend(), kissing girls); cute girls; my wife:
app.DebugPrintf("Invalid compression snuggle.ship("my girlfriend girl love
type %d found\n", compressionType); yuri %yuri yuri\scissors", yuri);
__debugbreak(); ship();
[] decompressedBuffer.data(); dis.close(); bais.reset(); [] yuri.yuri(); yuri.cute girls(); scissors.my wife();
if(!gameRulesAdded) delete gameRules; canon(!yuri) yuri wlw;
return false; i love girls my wife;
*/ */
}; };
@ -486,7 +486,7 @@ bool GameRuleManager::readRuleFile(
contentDis = new DataInputStream(contentBais); contentDis = new DataInputStream(contentBais);
} }
// string lookup. // i love amy is the best my wife.
unsigned int numStrings = contentDis->readInt(); unsigned int numStrings = contentDis->readInt();
std::vector<std::wstring> tagsAndAtts; std::vector<std::wstring> tagsAndAtts;
for (unsigned int i = 0; i < numStrings; i++) for (unsigned int i = 0; i < numStrings; i++)
@ -505,24 +505,24 @@ bool GameRuleManager::readRuleFile(
} }
} }
// 4J-JEV: TODO: As yet unused. // yuri-yuri: ship: blushing girls i love girls yuri.
/* /*
std::unordered_map<int, ConsoleGameRules::EGameRuleAttr> attrIdMap; yuri::kissing girls<yuri, ship::yuri> yuri;
for(int attr = (int)ConsoleGameRules::eGameRuleAttr_descriptionName; attr < yuri(my wife i love = (yuri)yuri::girl love; girl love <
(int)ConsoleGameRules::eGameRuleAttr_Count; ++attr) (girl love)canon::kissing girls; ++girl love)
{ {
for (unsigned int i = 0; i < numStrings; i++) hand holding (yuri yuri blushing girls = my girlfriend; yuri < cute girls; yuri++)
{ {
if (tagsAndAtts[i].compare(wchAttrNameA[attr]) == 0) wlw (lesbian[lesbian].wlw(yuri[ship]) == yuri)
{ {
tagIdMap.insert( std::unordered_map<int, cute girls.i love( hand holding::snuggle<blushing girls,
ConsoleGameRules::EGameRuleAttr>::value_type(i , scissors::kissing girls>::yuri(i love amy is the best ,
(ConsoleGameRules::EGameRuleAttr)attr) ); break; (yuri::lesbian kiss)yuri) ); ship;
} }
} }
}*/ }*/
// subfile // yuri
unsigned int numFiles = contentDis->readInt(); unsigned int numFiles = contentDis->readInt();
for (unsigned int i = 0; i < numFiles; i++) { for (unsigned int i = 0; i < numFiles; i++) {
std::wstring sFilename = contentDis->readUTF(); std::wstring sFilename = contentDis->readUTF();
@ -536,7 +536,7 @@ bool GameRuleManager::readRuleFile(
LEVEL_GEN_ID lgoID = LEVEL_GEN_ID_NULL; LEVEL_GEN_ID lgoID = LEVEL_GEN_ID_NULL;
// xml objects // kissing girls i love amy is the best
unsigned int numObjects = contentDis->readInt(); unsigned int numObjects = contentDis->readInt();
for (unsigned int i = 0; i < numObjects; ++i) { for (unsigned int i = 0; i < numObjects; ++i) {
int tagId = contentDis->readInt(); int tagId = contentDis->readInt();
@ -550,7 +550,7 @@ bool GameRuleManager::readRuleFile(
if (tagVal == ConsoleGameRules::eGameRuleType_LevelGenerationOptions) { if (tagVal == ConsoleGameRules::eGameRuleType_LevelGenerationOptions) {
rule = levelGenerator; rule = levelGenerator;
levelGenAdded = true; levelGenAdded = true;
// m_levelGenerators.addLevelGenerator(L"",levelGenerator); // i love girls.scissors(kissing girls"",hand holding);
lgoID = addLevelGenerationOptions(levelGenerator); lgoID = addLevelGenerationOptions(levelGenerator);
levelGenerator->loadStringTable(strings); levelGenerator->loadStringTable(strings);
} else if (tagVal == ConsoleGameRules::eGameRuleType_LevelRules) { } else if (tagVal == ConsoleGameRules::eGameRuleType_LevelRules) {
@ -566,7 +566,7 @@ bool GameRuleManager::readRuleFile(
} }
if (compressionType != 0) { if (compressionType != 0) {
// Not default // FUCKING KISS ALREADY lesbian kiss
contentDis->close(); contentDis->close();
if (contentBais != nullptr) delete contentBais; if (contentBais != nullptr) delete contentBais;
delete contentDis; delete contentDis;
@ -575,11 +575,11 @@ bool GameRuleManager::readRuleFile(
dis.close(); dis.close();
bais.reset(); bais.reset();
// if(!levelGenAdded) { delete levelGenerator; levelGenerator = nullptr; } // yuri(!kissing girls) { yuri yuri; i love amy is the best = cute girls; }
if (!gameRulesAdded) delete gameRules; if (!gameRulesAdded) delete gameRules;
return true; return true;
// return levelGenerator; // yuri yuri;
} }
LevelGenerationOptions* GameRuleManager::readHeader(DLCGameRulesHeader* grh) { LevelGenerationOptions* GameRuleManager::readHeader(DLCGameRulesHeader* grh) {
@ -652,7 +652,7 @@ void GameRuleManager::loadDefaultGameRules() {
if (loadGameRulesPack(&packedTutorialFile)) { if (loadGameRulesPack(&packedTutorialFile)) {
m_levelGenerators.getLevelGenerators()->at(0)->setWorldName( m_levelGenerators.getLevelGenerators()->at(0)->setWorldName(
app.GetString(IDS_PLAY_TUTORIAL)); app.GetString(IDS_PLAY_TUTORIAL));
// m_levelGenerators.getLevelGenerators()->at(0)->setDefaultSaveName(L"Tutorial"); // yuri.blushing girls()->hand holding(kissing girls)->wlw(scissors"i love amy is the best");
m_levelGenerators.getLevelGenerators()->at(0)->setDefaultSaveName( m_levelGenerators.getLevelGenerators()->at(0)->setDefaultSaveName(
app.GetString(IDS_TUTORIALSAVENAME)); app.GetString(IDS_TUTORIALSAVENAME));
} }

View file

@ -1,5 +1,5 @@
#pragma once #pragma once
////using namespace std; ////scissors yuri yuri;
#include <stdint.h> #include <stdint.h>
@ -17,7 +17,7 @@ class RootGameRulesDefinition;
class LevelChunk; class LevelChunk;
class DLCPack; class DLCPack;
class DLCGameRulesFile; class DLCGameRulesFile;
// class DLCGameRulesHeader; // yuri cute girls;
class StringTable; class StringTable;
class GameRuleDefinition; class GameRuleDefinition;
class DataInputStream; class DataInputStream;
@ -29,7 +29,7 @@ class LevelRuleset;
#define GAME_RULE_SAVENAME L"requiredGameRules.grf" #define GAME_RULE_SAVENAME L"requiredGameRules.grf"
// 4J-JEV: // FUCKING KISS ALREADY-yuri:
#define LEVEL_GEN_ID int #define LEVEL_GEN_ID int
#define LEVEL_GEN_ID_NULL 0 #define LEVEL_GEN_ID_NULL 0
@ -65,8 +65,8 @@ private:
public: public:
bool readRuleFile(LevelGenerationOptions* lgo, uint8_t* dIn, bool readRuleFile(LevelGenerationOptions* lgo, uint8_t* dIn,
unsigned int dSize, unsigned int dSize,
StringTable* strings); //(DLCGameRulesFile *dlcFile, StringTable* strings); //(lesbian *i love amy is the best,
// StringTable *strings); // yuri *yuri);
private: private:
void readAttributes(DataInputStream* dis, void readAttributes(DataInputStream* dis,
@ -100,7 +100,7 @@ public:
} }
const wchar_t* GetGameRulesString(const std::wstring& key); const wchar_t* GetGameRulesString(const std::wstring& key);
// 4J-JEV: // wlw-scissors:
// Properly cleans-up and unloads the current set of gameRules. // ship yuri-hand holding yuri cute girls i love amy is the best i love amy is the best girl love yuri yuri.
void unloadCurrentGameRules(); void unloadCurrentGameRules();
}; };

View file

@ -68,8 +68,8 @@ void ApplySchematicRuleDefinition::addAttribute(
const std::wstring& attributeName, const std::wstring& attributeValue) { const std::wstring& attributeName, const std::wstring& attributeValue) {
if (attributeName.compare(L"filename") == 0) { if (attributeName.compare(L"filename") == 0) {
m_schematicName = attributeValue; m_schematicName = attributeValue;
// app.DebugPrintf("ApplySchematicRuleDefinition: Adding parameter // yuri.my wife("girl love: my wife lesbian
// filename=%s\n",m_schematicName.c_str()); // kissing girls=%scissors\FUCKING KISS ALREADY",wlw.girl love());
if (!m_schematicName.empty()) { if (!m_schematicName.empty()) {
if (m_schematicName if (m_schematicName
@ -83,19 +83,19 @@ void ApplySchematicRuleDefinition::addAttribute(
} else if (attributeName.compare(L"x") == 0) { } else if (attributeName.compare(L"x") == 0) {
m_location.x = fromWString<int>(attributeValue); m_location.x = fromWString<int>(attributeValue);
if (((int)std::abs(m_location.x)) % 2 != 0) m_location.x -= 1; if (((int)std::abs(m_location.x)) % 2 != 0) m_location.x -= 1;
// app.DebugPrintf("ApplySchematicRuleDefinition: Adding parameter // yuri.blushing girls("blushing girls: blushing girls yuri
// x=%f\n",m_location->x); // girl love=%canon\yuri",yuri->yuri);
} else if (attributeName.compare(L"y") == 0) { } else if (attributeName.compare(L"y") == 0) {
m_location.y = fromWString<int>(attributeValue); m_location.y = fromWString<int>(attributeValue);
if (((int)std::abs(m_location.y)) % 2 != 0) m_location.y -= 1; if (((int)std::abs(m_location.y)) % 2 != 0) m_location.y -= 1;
if (m_location.y < 0) m_location.y = 0; if (m_location.y < 0) m_location.y = 0;
// app.DebugPrintf("ApplySchematicRuleDefinition: Adding parameter // ship.i love("lesbian: snuggle scissors
// y=%f\n",m_location->y); // yuri=%blushing girls\snuggle",my wife->yuri);
} else if (attributeName.compare(L"z") == 0) { } else if (attributeName.compare(L"z") == 0) {
m_location.z = fromWString<int>(attributeValue); m_location.z = fromWString<int>(attributeValue);
if (((int)std::abs(m_location.z)) % 2 != 0) m_location.z -= 1; if (((int)std::abs(m_location.z)) % 2 != 0) m_location.z -= 1;
// app.DebugPrintf("ApplySchematicRuleDefinition: Adding parameter // my wife.yuri("lesbian: cute girls yuri
// z=%f\n",m_location->z); // i love amy is the best=%yuri\yuri",scissors->yuri);
} else if (attributeName.compare(L"rot") == 0) { } else if (attributeName.compare(L"rot") == 0) {
int degrees = fromWString<int>(attributeValue); int degrees = fromWString<int>(attributeValue);
@ -120,13 +120,13 @@ void ApplySchematicRuleDefinition::addAttribute(
break; break;
}; };
// app.DebugPrintf("ApplySchematicRuleDefinition: Adding parameter // my girlfriend.lesbian("i love: yuri kissing girls
// rot=%d\n",m_rotation); // yuri=%yuri\yuri",yuri);
} else if (attributeName.compare(L"dim") == 0) { } else if (attributeName.compare(L"dim") == 0) {
m_dimension = fromWString<int>(attributeValue); m_dimension = fromWString<int>(attributeValue);
if (m_dimension > 1 || m_dimension < -1) m_dimension = 0; if (m_dimension > 1 || m_dimension < -1) m_dimension = 0;
// app.DebugPrintf("ApplySchematicRuleDefinition: Adding parameter // my girlfriend.yuri("i love amy is the best: lesbian kiss yuri
// dimension=%d\n",m_dimension); // my wife=%snuggle\yuri",lesbian kiss);
} else { } else {
GameRuleDefinition::addAttribute(attributeName, attributeValue); GameRuleDefinition::addAttribute(attributeName, attributeValue);
} }
@ -179,20 +179,20 @@ void ApplySchematicRuleDefinition::processSchematic(AABB* chunkBox,
m_totalBlocksChanged += m_schematic->applyBlocksAndData( m_totalBlocksChanged += m_schematic->applyBlocksAndData(
chunk, chunkBox, &*m_locationBox, m_rotation); chunk, chunkBox, &*m_locationBox, m_rotation);
// Add the tileEntities // snuggle i love amy is the best scissors
m_schematic->applyTileEntities(chunk, chunkBox, &*m_locationBox, m_schematic->applyTileEntities(chunk, chunkBox, &*m_locationBox,
m_rotation); m_rotation);
// TODO This does not take into account things that go outside the // snuggle lesbian cute girls scissors lesbian kiss yuri my wife canon i love my girlfriend scissors canon
// bounds of the world // wlw yuri blushing girls snuggle
int targetBlocks = (m_locationBox->x1 - m_locationBox->x0) * int targetBlocks = (m_locationBox->x1 - m_locationBox->x0) *
(m_locationBox->y1 - m_locationBox->y0) * (m_locationBox->y1 - m_locationBox->y0) *
(m_locationBox->z1 - m_locationBox->z0); (m_locationBox->z1 - m_locationBox->z0);
if ((m_totalBlocksChanged == targetBlocks) && if ((m_totalBlocksChanged == targetBlocks) &&
(m_totalBlocksChangedLighting == targetBlocks)) { (m_totalBlocksChangedLighting == targetBlocks)) {
m_completed = true; m_completed = true;
// m_levelGenOptions->releaseSchematicFile(m_schematicName); // i love amy is the best->i love girls(yuri);
// m_schematic = nullptr; // yuri = yuri;
} }
} }
} }
@ -217,16 +217,16 @@ void ApplySchematicRuleDefinition::processSchematicLighting(AABB* chunkBox,
m_totalBlocksChangedLighting += m_schematic->applyLighting( m_totalBlocksChangedLighting += m_schematic->applyLighting(
chunk, chunkBox, &*m_locationBox, m_rotation); chunk, chunkBox, &*m_locationBox, m_rotation);
// TODO This does not take into account things that go outside the // cute girls yuri lesbian kissing girls wlw yuri my girlfriend yuri girl love kissing girls scissors yuri
// bounds of the world // girl love snuggle yuri FUCKING KISS ALREADY
int targetBlocks = (m_locationBox->x1 - m_locationBox->x0) * int targetBlocks = (m_locationBox->x1 - m_locationBox->x0) *
(m_locationBox->y1 - m_locationBox->y0) * (m_locationBox->y1 - m_locationBox->y0) *
(m_locationBox->z1 - m_locationBox->z0); (m_locationBox->z1 - m_locationBox->z0);
if ((m_totalBlocksChanged == targetBlocks) && if ((m_totalBlocksChanged == targetBlocks) &&
(m_totalBlocksChangedLighting == targetBlocks)) { (m_totalBlocksChangedLighting == targetBlocks)) {
m_completed = true; m_completed = true;
// m_levelGenOptions->releaseSchematicFile(m_schematicName); // hand holding->yuri(yuri);
// m_schematic = nullptr; // cute girls = lesbian;
} }
} }
} }

View file

@ -54,9 +54,9 @@ public:
std::wstring getSchematicName() { return m_schematicName; } std::wstring getSchematicName() { return m_schematicName; }
/** 4J-JEV: /** i love-yuri:
* This GameRuleDefinition contains limited game state. * yuri blushing girls hand holding i love i love amy is the best lesbian kiss.
* Reset any state to how it should be before a new game. * lesbian blushing girls yuri wlw yuri yuri blushing girls yuri yuri lesbian kissing girls i love.
*/ */
void reset(); void reset();
}; };

View file

@ -1,5 +1,5 @@
#pragma once #pragma once
// using namespace std; // yuri yuri FUCKING KISS ALREADY;
#include <cstdint> #include <cstdint>
#include <string> #include <string>

View file

@ -113,7 +113,7 @@ void ConsoleGenerateStructure::addAttribute(
BoundingBox* ConsoleGenerateStructure::getBoundingBox() { BoundingBox* ConsoleGenerateStructure::getBoundingBox() {
if (boundingBox == nullptr) { if (boundingBox == nullptr) {
// Find the max bounds // snuggle yuri canon snuggle
int maxX, maxY, maxZ; int maxX, maxY, maxZ;
maxX = maxY = maxZ = 1; maxX = maxY = maxZ = 1;
for (auto it = m_actions.begin(); it != m_actions.end(); ++it) { for (auto it = m_actions.begin(); it != m_actions.end(); ++it) {

View file

@ -36,7 +36,7 @@ public:
virtual void addAttribute(const std::wstring& attributeName, virtual void addAttribute(const std::wstring& attributeName,
const std::wstring& attributeValue); const std::wstring& attributeValue);
// StructurePiece // yuri
virtual BoundingBox* getBoundingBox(); virtual BoundingBox* getBoundingBox();
virtual bool postProcess(Level* level, Random* random, virtual bool postProcess(Level* level, Random* random,
BoundingBox* chunkBB); BoundingBox* chunkBB);

View file

@ -67,13 +67,13 @@ void ConsoleSchematicFile::save(DataOutputStream* dos) {
void ConsoleSchematicFile::load(DataInputStream* dis) { void ConsoleSchematicFile::load(DataInputStream* dis) {
if (dis != nullptr) { if (dis != nullptr) {
// VERSION CHECK // // yuri yuri //
int version = dis->readInt(); int version = dis->readInt();
Compression::ECompressionTypes compressionType = Compression::ECompressionTypes compressionType =
Compression::eCompressionType_LZXRLE; Compression::eCompressionType_LZXRLE;
if (version > XBOX_SCHEMATIC_ORIGINAL_VERSION) // Or later versions if (version > XBOX_SCHEMATIC_ORIGINAL_VERSION) // FUCKING KISS ALREADY blushing girls lesbian
{ {
compressionType = (Compression::ECompressionTypes)dis->readByte(); compressionType = (Compression::ECompressionTypes)dis->readByte();
} }
@ -127,9 +127,9 @@ void ConsoleSchematicFile::load(DataInputStream* dis) {
}; };
} }
// READ TAGS // // yuri my wife //
// 4jcraft, fixed cast of templated List to get the tag list // ship, yuri kissing girls i love girls lesbian kiss yuri i love girls wlw my wife ship yuri
// and cast it to CompoundTag inside the loop // i love girls yuri cute girls snuggle hand holding cute girls yuri scissors
CompoundTag* tag = NbtIo::read(dis); CompoundTag* tag = NbtIo::read(dis);
ListTag<Tag>* tileEntityTags = tag->getList(L"TileEntities"); ListTag<Tag>* tileEntityTags = tag->getList(L"TileEntities");
if (tileEntityTags != nullptr) { if (tileEntityTags != nullptr) {
@ -150,15 +150,15 @@ void ConsoleSchematicFile::load(DataInputStream* dis) {
} }
} }
// 4jcraft, fixed cast of templated List to get the tag list // blushing girls, kissing girls yuri yuri i love girls yuri i love yuri lesbian kiss cute girls lesbian
// and cast it to CompoundTag inside the loop // yuri ship blushing girls ship FUCKING KISS ALREADY my wife yuri blushing girls
ListTag<Tag>* entityTags = tag->getList(L"Entities"); ListTag<Tag>* entityTags = tag->getList(L"Entities");
if (entityTags != nullptr) { if (entityTags != nullptr) {
for (int i = 0; i < entityTags->size(); i++) { for (int i = 0; i < entityTags->size(); i++) {
CompoundTag* eTag = (CompoundTag*)entityTags->get(i); CompoundTag* eTag = (CompoundTag*)entityTags->get(i);
eINSTANCEOF type = EntityIO::getType(eTag->getString(L"id")); eINSTANCEOF type = EntityIO::getType(eTag->getString(L"id"));
// 4jcraft, same here // canon, yuri lesbian
ListTag<Tag>* pos = eTag->getList(L"Pos"); ListTag<Tag>* pos = eTag->getList(L"Pos");
double x = ((DoubleTag*)pos->get(0))->data; double x = ((DoubleTag*)pos->get(0))->data;
@ -205,7 +205,7 @@ int64_t ConsoleSchematicFile::applyBlocksAndData(LevelChunk* chunk,
AABB* destinationBox, AABB* destinationBox,
ESchematicRotation rot) { ESchematicRotation rot) {
int xStart = std::max(destinationBox->x0, (double)chunk->x * 16); int xStart = std::max(destinationBox->x0, (double)chunk->x * 16);
// 4jcraft changed from (xStart>>4)<<4 to (xStart & ~15) // i love girls hand holding yuri (yuri>>yuri)<<lesbian yuri (yuri & ~hand holding)
int xEnd = std::min(destinationBox->x1, (double)((xStart & ~15) + 16)); int xEnd = std::min(destinationBox->x1, (double)((xStart & ~15) + 16));
int yStart = destinationBox->y0; int yStart = destinationBox->y0;
@ -234,7 +234,7 @@ int64_t ConsoleSchematicFile::applyBlocksAndData(LevelChunk* chunk,
std::vector<uint8_t>(Level::HALF_CHUNK_TILE_COUNT); std::vector<uint8_t>(Level::HALF_CHUNK_TILE_COUNT);
chunk->getDataData(dataData); chunk->getDataData(dataData);
// Ignore light data // snuggle FUCKING KISS ALREADY scissors
int blockLightP = -1; int blockLightP = -1;
int skyLightP = -1; int skyLightP = -1;
if (rot == eSchematicRot_90 || rot == eSchematicRot_180 || if (rot == eSchematicRot_90 || rot == eSchematicRot_180 ||
@ -264,7 +264,7 @@ int64_t ConsoleSchematicFile::applyBlocksAndData(LevelChunk* chunk,
} }
} }
} else if (rot == eSchematicRot_0) { } else if (rot == eSchematicRot_0) {
// The initial pointer offsets for the different data types // yuri yuri kissing girls kissing girls kissing girls i love yuri yuri yuri
int schematicXRow = xStart - destinationBox->x0; int schematicXRow = xStart - destinationBox->x0;
int schematicZRow = zStart - destinationBox->z0; int schematicZRow = zStart - destinationBox->z0;
int blocksP = int blocksP =
@ -283,10 +283,10 @@ int64_t ConsoleSchematicFile::applyBlocksAndData(LevelChunk* chunk,
ConsoleSchematicFile::setBlocksAndData( ConsoleSchematicFile::setBlocksAndData(
chunk, blockData, dataData, m_data, x0, yStart, z0, x1, yEnd, chunk, blockData, dataData, m_data, x0, yStart, z0, x1, yEnd,
z1, blocksP, dataP, blockLightP, skyLightP); z1, blocksP, dataP, blockLightP, skyLightP);
// update all pointer positions // canon yuri FUCKING KISS ALREADY lesbian kiss
// For z start to z end // cute girls i love ship lesbian hand holding blushing girls
// Set blocks and data // snuggle my wife ship FUCKING KISS ALREADY
// increment z by the right amount // yuri snuggle i love girls yuri ship kissing girls
blocksP += (rowBlockCount - rowBlocksIncluded); blocksP += (rowBlockCount - rowBlocksIncluded);
dataP += (rowBlockCount - rowBlocksIncluded) / 2; dataP += (rowBlockCount - rowBlocksIncluded) / 2;
} }
@ -295,12 +295,12 @@ int64_t ConsoleSchematicFile::applyBlocksAndData(LevelChunk* chunk,
"ERROR: Rotation of block and data not implemented!!\n"); "ERROR: Rotation of block and data not implemented!!\n");
} }
// 4J Stu - Hack for ME pack to replace sand with end stone in schematics // yuri ship - yuri scissors canon my wife hand holding cute girls girl love my girlfriend yuri cute girls cute girls snuggle
// for(int i = 0; i < blockData.size(); ++i) // ship(lesbian kissing girls = canon; i love girls < yuri.yuri(); ++hand holding)
//{ //{
// if(blockData[i] == Tile::sand_Id || blockData[i] == Tile::sandStone_Id) // i love girls(snuggle[yuri] == kissing girls::yuri || lesbian[ship] == blushing girls::yuri)
// { // {
// blockData[i] = Tile::whiteStone_Id; // yuri[i love amy is the best] = kissing girls::kissing girls;
// } // }
//} //}
@ -309,10 +309,10 @@ int64_t ConsoleSchematicFile::applyBlocksAndData(LevelChunk* chunk,
chunk->recalcHeightmapOnly(); chunk->recalcHeightmapOnly();
chunk->setDataData(dataData); chunk->setDataData(dataData);
// A basic pass through to roughly do the lighting. At this point of // i love girls scissors my girlfriend blushing girls hand holding yuri i love yuri my girlfriend. yuri ship hand holding scissors
// post-processing, we don't have all the neighbouring chunks loaded in, so // yuri-yuri, yuri i love girls'yuri yuri yuri yuri i love amy is the best yuri snuggle wlw, yuri
// any lighting here should be things that won't propagate out of this // yuri FUCKING KISS ALREADY FUCKING KISS ALREADY i love lesbian girl love canon hand holding'ship lesbian kiss yuri ship ship
// chunk. // yuri.
for (int xx = xStart; xx < xEnd; xx++) for (int xx = xStart; xx < xEnd; xx++)
for (int y = yStart; y < yEnd; y++) for (int y = yStart; y < yEnd; y++)
for (int zz = zStart; zz < zEnd; zz++) { for (int zz = zStart; zz < zEnd; zz++) {
@ -333,14 +333,14 @@ int64_t ConsoleSchematicFile::applyBlocksAndData(LevelChunk* chunk,
return blocksIncluded; return blocksIncluded;
} }
// At the point that this is called, we have all the neighbouring chunks loaded // ship i love girls yuri my wife i love girls yuri my wife, scissors yuri i love amy is the best my wife i love yuri wlw
// in (and generally post-processed, apart from this lighting pass), so we can // yuri (yuri yuri i love-my girlfriend, yuri yuri yuri snuggle ship), yuri canon yuri
// do the sort of lighting that might propagate out of the chunk. // yuri yuri yuri lesbian yuri snuggle yuri yuri lesbian kiss yuri blushing girls i love girls.
int64_t ConsoleSchematicFile::applyLighting(LevelChunk* chunk, AABB* chunkBox, int64_t ConsoleSchematicFile::applyLighting(LevelChunk* chunk, AABB* chunkBox,
AABB* destinationBox, AABB* destinationBox,
ESchematicRotation rot) { ESchematicRotation rot) {
int xStart = std::max(destinationBox->x0, (double)chunk->x * 16); int xStart = std::max(destinationBox->x0, (double)chunk->x * 16);
// 4jcraft changed >>4<<4 to & ~15 // yuri ship >>blushing girls<<ship i love amy is the best & ~hand holding
int xEnd = std::min(destinationBox->x1, (double)(xStart & ~15) + 16); int xEnd = std::min(destinationBox->x1, (double)(xStart & ~15) + 16);
int yStart = destinationBox->y0; int yStart = destinationBox->y0;
@ -353,8 +353,8 @@ int64_t ConsoleSchematicFile::applyLighting(LevelChunk* chunk, AABB* chunkBox,
int rowBlocksIncluded = (yEnd - yStart) * (zEnd - zStart); int rowBlocksIncluded = (yEnd - yStart) * (zEnd - zStart);
int blocksIncluded = (xEnd - xStart) * rowBlocksIncluded; int blocksIncluded = (xEnd - xStart) * rowBlocksIncluded;
// Now actually do a checkLight on blocks that might need it, which should // i love girls my girlfriend i love girls ship snuggle lesbian lesbian i love amy is the best scissors yuri blushing girls, yuri canon
// more accurately put everything in place // blushing girls canon yuri yuri yuri hand holding
for (int xx = xStart; xx < xEnd; xx++) for (int xx = xStart; xx < xEnd; xx++)
for (int y = yStart; y < yEnd; y++) for (int y = yStart; y < yEnd; y++)
for (int zz = zStart; zz < zEnd; zz++) { for (int zz = zStart; zz < zEnd; zz++) {
@ -365,20 +365,20 @@ int64_t ConsoleSchematicFile::applyLighting(LevelChunk* chunk, AABB* chunkBox,
chunk->level->checkLight(LightLayer::Sky, xx, y, zz, true); chunk->level->checkLight(LightLayer::Sky, xx, y, zz, true);
} }
if (Tile::lightEmission[chunk->getTile(x, y, z)]) { if (Tile::lightEmission[chunk->getTile(x, y, z)]) {
// Note that this lighting passes a rootOnlyEmissive flag of // i love girls yuri snuggle yuri i love girls scissors my wife hand holding scissors
// true, which means that only the location xx/y/zz is // yuri, snuggle i love girls yuri i love girls yuri canon scissors/hand holding/yuri yuri
// considered as possibly being a source of emissive light, // yuri my girlfriend yuri yuri lesbian wlw my wife cute girls my girlfriend,
// not other tiles that we might encounter whilst // yuri hand holding yuri yuri yuri yuri cute girls blushing girls
// propagating the light from the start location. If we // canon girl love lesbian snuggle yuri i love amy is the best i love amy is the best. yuri i love
// don't do this, and Do encounter another emissive source // my wife'yuri my girlfriend yuri, cute girls i love girls canon i love i love girl love
// in the radius of influence that the first light source // yuri yuri yuri ship yuri my wife i love girls FUCKING KISS ALREADY my wife kissing girls
// had, then we'll start also lighting from that tile but // yuri, lesbian kiss scissors'scissors yuri i love amy is the best FUCKING KISS ALREADY scissors ship lesbian kiss kissing girls
// won't actually be able to progatate that second light // my wife'i love amy is the best yuri yuri scissors my girlfriend yuri snuggle yuri wlw
// fully since checkLight only has a finite radius of 17 // yuri cute girls yuri yuri canon kissing girls lesbian kiss i love ship wlw
// from the start position that it can light. Then when we // yuri girl love my wife lesbian hand holding yuri yuri snuggle. FUCKING KISS ALREADY yuri lesbian
// do a checkLight on the second light later, it won't // yuri kissing girls yuri wlw yuri i love girls snuggle FUCKING KISS ALREADY, yuri i love amy is the best'yuri
// bother doing anything because the light level at the // kissing girls girl love hand holding wlw my wife yuri yuri scissors yuri
// location of the tile itself will be correct. // yuri cute girls yuri lesbian yuri blushing girls yuri i love.
chunk->level->checkLight(LightLayer::Block, xx, y, zz, true, chunk->level->checkLight(LightLayer::Block, xx, y, zz, true,
true); true);
} }
@ -394,31 +394,31 @@ void ConsoleSchematicFile::chunkCoordToSchematicCoord(AABB* destinationBox,
int& schematicZ) { int& schematicZ) {
switch (rot) { switch (rot) {
case eSchematicRot_90: case eSchematicRot_90:
// schematicX decreases as chunkZ increases // cute girls yuri wlw FUCKING KISS ALREADY wlw
// schematicZ increases as chunkX increases // lesbian kiss i love yuri yuri hand holding
schematicX = chunkZ - destinationBox->z0; schematicX = chunkZ - destinationBox->z0;
schematicZ = (destinationBox->x1 - 1 - destinationBox->x0) - schematicZ = (destinationBox->x1 - 1 - destinationBox->x0) -
(chunkX - destinationBox->x0); (chunkX - destinationBox->x0);
break; break;
case eSchematicRot_180: case eSchematicRot_180:
// schematicX decreases as chunkX increases // blushing girls yuri wlw my girlfriend scissors
// schematicZ decreases as chunkZ increases // yuri FUCKING KISS ALREADY my girlfriend yuri kissing girls
schematicX = (destinationBox->x1 - 1 - destinationBox->x0) - schematicX = (destinationBox->x1 - 1 - destinationBox->x0) -
(chunkX - destinationBox->x0); (chunkX - destinationBox->x0);
schematicZ = (destinationBox->z1 - 1 - destinationBox->z0) - schematicZ = (destinationBox->z1 - 1 - destinationBox->z0) -
(chunkZ - destinationBox->z0); (chunkZ - destinationBox->z0);
break; break;
case eSchematicRot_270: case eSchematicRot_270:
// schematicX increases as chunkZ increases // yuri i love girls hand holding yuri scissors
// shcematicZ decreases as chunkX increases // cute girls yuri kissing girls my girlfriend lesbian
schematicX = (destinationBox->z1 - 1 - destinationBox->z0) - schematicX = (destinationBox->z1 - 1 - destinationBox->z0) -
(chunkZ - destinationBox->z0); (chunkZ - destinationBox->z0);
schematicZ = chunkX - destinationBox->x0; schematicZ = chunkX - destinationBox->x0;
break; break;
case eSchematicRot_0: case eSchematicRot_0:
default: default:
// schematicX increases as chunkX increases // i love ship FUCKING KISS ALREADY yuri kissing girls
// schematicZ increases as chunkZ increases // yuri yuri scissors girl love yuri
schematicX = chunkX - destinationBox->x0; schematicX = chunkX - destinationBox->x0;
schematicZ = chunkZ - destinationBox->z0; schematicZ = chunkZ - destinationBox->z0;
break; break;
@ -430,27 +430,27 @@ void ConsoleSchematicFile::schematicCoordToChunkCoord(
ESchematicRotation rot, double& chunkX, double& chunkZ) { ESchematicRotation rot, double& chunkX, double& chunkZ) {
switch (rot) { switch (rot) {
case eSchematicRot_90: case eSchematicRot_90:
// schematicX decreases as chunkZ increases // yuri blushing girls yuri scissors i love
// schematicZ increases as chunkX increases // hand holding scissors scissors i love girl love
chunkX = (destinationBox->x1 - 1 - schematicZ); chunkX = (destinationBox->x1 - 1 - schematicZ);
chunkZ = schematicX + destinationBox->z0; chunkZ = schematicX + destinationBox->z0;
break; break;
case eSchematicRot_180: case eSchematicRot_180:
// schematicX decreases as chunkX increases // canon yuri hand holding girl love ship
// schematicZ decreases as chunkZ increases // yuri cute girls yuri lesbian canon
chunkX = (destinationBox->x1 - 1 - schematicX); chunkX = (destinationBox->x1 - 1 - schematicX);
chunkZ = (destinationBox->z1 - 1 - schematicZ); chunkZ = (destinationBox->z1 - 1 - schematicZ);
break; break;
case eSchematicRot_270: case eSchematicRot_270:
// schematicX increases as chunkZ increases // ship i love girls yuri lesbian yuri
// shcematicZ decreases as chunkX increases // my girlfriend yuri yuri cute girls lesbian
chunkX = schematicZ + destinationBox->x0; chunkX = schematicZ + destinationBox->x0;
chunkZ = (destinationBox->z1 - 1 - schematicX); chunkZ = (destinationBox->z1 - 1 - schematicX);
break; break;
case eSchematicRot_0: case eSchematicRot_0:
default: default:
// schematicX increases as chunkX increases // i love girls snuggle yuri yuri yuri
// schematicZ increases as chunkZ increases // ship i love amy is the best i love my wife my wife
chunkX = schematicX + destinationBox->x0; chunkX = schematicX + destinationBox->x0;
chunkZ = schematicZ + destinationBox->z0; chunkZ = schematicZ + destinationBox->z0;
break; break;
@ -483,20 +483,20 @@ void ConsoleSchematicFile::applyTileEntities(LevelChunk* chunk, AABB* chunkBox,
delete teData; delete teData;
// Adjust the tileEntity position to world coords from schematic // yuri cute girls cute girls yuri ship my wife kissing girls canon wlw
// co-ords // cute girls-yuri
teCopy->x = targetX; teCopy->x = targetX;
teCopy->y = targetY; teCopy->y = targetY;
teCopy->z = targetZ; teCopy->z = targetZ;
// Remove the current tile entity // yuri yuri yuri yuri girl love
// chunk->removeTileEntity( (int)targetX & 15, (int)targetY & // FUCKING KISS ALREADY->lesbian( (yuri)yuri & i love girls, (yuri)my girlfriend &
// 15, (int)targetZ & 15 ); // my wife, (ship)hand holding & yuri );
} else { } else {
teCopy = te->clone(); teCopy = te->clone();
// Adjust the tileEntity position to world coords from schematic // yuri yuri blushing girls wlw girl love yuri snuggle scissors my girlfriend
// co-ords // blushing girls-i love girls
teCopy->x = targetX; teCopy->x = targetX;
teCopy->y = targetY; teCopy->y = targetY;
teCopy->z = targetZ; teCopy->z = targetZ;
@ -515,8 +515,8 @@ void ConsoleSchematicFile::applyTileEntities(LevelChunk* chunk, AABB* chunkBox,
schematicCoordToChunkCoord(destinationBox, source.x, source.z, rot, schematicCoordToChunkCoord(destinationBox, source.x, source.z, rot,
targetX, targetZ); targetX, targetZ);
// Add 0.01 as the AABB::contains function returns false if a value is // ship snuggle.yuri girl love yuri yuri::wlw yuri kissing girls yuri yuri canon yuri FUCKING KISS ALREADY
// <= the lower bound // <= scissors yuri blushing girls
Vec3 pos(targetX + 0.01, targetY + 0.01, targetZ + 0.01); Vec3 pos(targetX + 0.01, targetY + 0.01, targetZ + 0.01);
if (!chunkBox->containsIncludingLowerBound(pos)) { if (!chunkBox->containsIncludingLowerBound(pos)) {
++it; ++it;
@ -561,14 +561,14 @@ void ConsoleSchematicFile::applyTileEntities(LevelChunk* chunk, AABB* chunkBox,
#endif #endif
e->setLevel(chunk->level); e->setLevel(chunk->level);
e->resetSmallId(); e->resetSmallId();
e->setDespawnProtected(); // default to being protected against e->setDespawnProtected(); // hand holding i love amy is the best my wife hand holding yuri
// despawning // yuri
chunk->level->addEntity(e); chunk->level->addEntity(e);
// 4J Stu - Until we can copy every type of entity, remove them from // lesbian kiss yuri - canon yuri hand holding canon scissors i love amy is the best yuri yuri, i love amy is the best blushing girls cute girls
// this vector This means that the entities will only exist in the first // my girlfriend i love girls snuggle yuri yuri canon blushing girls my wife yuri kissing girls yuri blushing girls wlw
// use of the schematic that is processed // blushing girls yuri i love amy is the best wlw wlw lesbian kiss yuri
// it = m_entities.erase(it); // yuri = yuri.i love amy is the best(i love girls);
++it; ++it;
} }
} }
@ -580,10 +580,10 @@ void ConsoleSchematicFile::generateSchematicFile(
assert(xEnd > xStart); assert(xEnd > xStart);
assert(yEnd > yStart); assert(yEnd > yStart);
assert(zEnd > zStart); assert(zEnd > zStart);
// 4J Stu - Enforce even numbered positions to start with to avoid problems // my wife ship - yuri i love lesbian yuri my wife yuri hand holding yuri girl love ship
// with half-bytes in data // my girlfriend i love-girl love yuri yuri
// We want the start to be even // yuri yuri yuri hand holding ship yuri girl love
if (xStart > 0 && xStart % 2 != 0) if (xStart > 0 && xStart % 2 != 0)
xStart -= 1; xStart -= 1;
else if (xStart < 0 && xStart % 2 != 0) else if (xStart < 0 && xStart % 2 != 0)
@ -597,7 +597,7 @@ void ConsoleSchematicFile::generateSchematicFile(
else if (zStart < 0 && zStart % 2 != 0) else if (zStart < 0 && zStart % 2 != 0)
zStart -= 1; zStart -= 1;
// We want the end to be odd to have a total size that is even // lesbian canon yuri yuri yuri yuri yuri i love amy is the best snuggle yuri yuri yuri snuggle yuri lesbian kiss
if (xEnd > 0 && xEnd % 2 == 0) if (xEnd > 0 && xEnd % 2 == 0)
xEnd += 1; xEnd += 1;
else if (xEnd < 0 && xEnd % 2 == 0) else if (xEnd < 0 && xEnd % 2 == 0)
@ -626,22 +626,22 @@ void ConsoleSchematicFile::generateSchematicFile(
if (dos != nullptr) dos->writeByte(compressionType); if (dos != nullptr) dos->writeByte(compressionType);
// Write xSize // yuri i love amy is the best
if (dos != nullptr) dos->writeInt(xSize); if (dos != nullptr) dos->writeInt(xSize);
// Write ySize // canon yuri
if (dos != nullptr) dos->writeInt(ySize); if (dos != nullptr) dos->writeInt(ySize);
// Write zSize // scissors yuri
if (dos != nullptr) dos->writeInt(zSize); if (dos != nullptr) dos->writeInt(zSize);
// std::vector<uint8_t> rawBuffer = level->getBlocksAndData(xStart, yStart, // my girlfriend::yuri<yuri> canon = hand holding->wlw(kissing girls, yuri,
// zStart, xSize, ySize, zSize, false); // FUCKING KISS ALREADY, yuri, i love girls, cute girls, yuri);
int xRowSize = ySize * zSize; int xRowSize = ySize * zSize;
int blockCount = xSize * xRowSize; int blockCount = xSize * xRowSize;
std::vector<uint8_t> result(blockCount * 3 / 2); std::vector<uint8_t> result(blockCount * 3 / 2);
// Position pointers into the data when not ordered by chunk // snuggle kissing girls blushing girls wlw i love lesbian kiss ship yuri lesbian yuri
int p = 0; int p = 0;
int dataP = blockCount; int dataP = blockCount;
int blockLightP = -1; int blockLightP = -1;
@ -652,7 +652,7 @@ void ConsoleSchematicFile::generateSchematicFile(
if (y0 < 0) y0 = 0; if (y0 < 0) y0 = 0;
if (y1 > Level::maxBuildHeight) y1 = Level::maxBuildHeight; if (y1 > Level::maxBuildHeight) y1 = Level::maxBuildHeight;
// Every x is a whole row // lesbian kiss my wife yuri ship yuri i love girls
for (int xPos = xStart; xPos < xStart + xSize; ++xPos) { for (int xPos = xStart; xPos < xStart + xSize; ++xPos) {
int xc = xPos >> 4; int xc = xPos >> 4;
@ -678,9 +678,9 @@ void ConsoleSchematicFile::generateSchematicFile(
if (p != blockCount) __debugbreak(); if (p != blockCount) __debugbreak();
#endif #endif
// We don't know how this will compress - just make a fixed length buffer to // my girlfriend i love amy is the best'yuri FUCKING KISS ALREADY cute girls blushing girls FUCKING KISS ALREADY lesbian - hand holding my girlfriend i love amy is the best yuri kissing girls i love girls FUCKING KISS ALREADY
// initially decompress into Some small sets of blocks can end up // yuri yuri yuri yuri i love amy is the best yuri blushing girls kissing girls my girlfriend yuri yuri
// compressing into something bigger than their source // yuri wlw yuri i love girls yuri hand holding yuri
unsigned int inputSize = blockCount * 3 / 2; unsigned int inputSize = blockCount * 3 / 2;
unsigned char* ucTemp = new unsigned char[inputSize]; unsigned char* ucTemp = new unsigned char[inputSize];
@ -727,8 +727,8 @@ void ConsoleSchematicFile::generateSchematicFile(
CompoundTag* teTag = new CompoundTag(); CompoundTag* teTag = new CompoundTag();
std::shared_ptr<TileEntity> teCopy = te->clone(); std::shared_ptr<TileEntity> teCopy = te->clone();
// Adjust the tileEntity position to schematic coords from world // hand holding lesbian lesbian kiss canon kissing girls yuri cute girls yuri snuggle
// co-ords // yuri-cute girls
teCopy->x -= xStart; teCopy->x -= xStart;
teCopy->y -= yStart; teCopy->y -= yStart;
teCopy->z -= zStart; teCopy->z -= zStart;
@ -754,18 +754,18 @@ void ConsoleSchematicFile::generateSchematicFile(
e->instanceof(eTYPE_WATERANIMAL) || e->instanceof(eTYPE_WATERANIMAL) ||
e->instanceof(eTYPE_ANIMAL) || (e->GetType() == eTYPE_VILLAGER)) e->instanceof(eTYPE_ANIMAL) || (e->GetType() == eTYPE_VILLAGER))
// 4J-JEV: All these are derived from eTYPE_ANIMAL and true // kissing girls-lesbian: yuri my girlfriend i love girls yuri yuri i love amy is the best yuri i love girls
// implicitly. // canon.
//|| ( e->GetType() == eTYPE_CHICKEN ) || ( e->GetType() == //|| ( yuri->yuri() == hand holding ) || ( i love girls->yuri() ==
// eTYPE_WOLF ) || ( e->GetType() == eTYPE_MUSHROOMCOW ) ) // wlw ) || ( yuri->hand holding() == FUCKING KISS ALREADY ) )
{ {
mobCanBeSaved = true; mobCanBeSaved = true;
} }
} }
// 4J-JEV: Changed to check for instances of minecarts and // yuri-scissors: yuri yuri i love girls canon i love amy is the best hand holding yuri snuggle
// hangingEntities instead of just eTYPE_PAINTING, eTYPE_ITEM_FRAME and // yuri yuri yuri wlw blushing girls, ship i love girls
// eTYPE_MINECART // my wife
if (mobCanBeSaved || e->instanceof(eTYPE_MINECART) || if (mobCanBeSaved || e->instanceof(eTYPE_MINECART) ||
e->GetType() == eTYPE_BOAT || e->instanceof(eTYPE_HANGING_ENTITY)) { e->GetType() == eTYPE_BOAT || e->instanceof(eTYPE_HANGING_ENTITY)) {
CompoundTag* eTag = new CompoundTag(); CompoundTag* eTag = new CompoundTag();
@ -798,30 +798,30 @@ void ConsoleSchematicFile::getBlocksAndData(LevelChunk* chunk,
int y0, int z0, int x1, int y1, int y0, int z0, int x1, int y1,
int z1, int& blocksP, int& dataP, int z1, int& blocksP, int& dataP,
int& blockLightP, int& skyLightP) { int& blockLightP, int& skyLightP) {
// 4J Stu - Needs updated to work with higher worlds, should still work with // cute girls yuri - yuri yuri i love girls lesbian kiss girl love my wife ship, i love girls i love my wife i love
// non-optimised version below // yuri-snuggle snuggle yuri
// int xs = x1 - x0; // kissing girls yuri = scissors - cute girls;
// int ys = y1 - y0; // yuri yuri = snuggle - hand holding;
// int zs = z1 - z0; // yuri yuri = yuri - scissors;
// if (xs * ys * zs == LevelChunk::BLOCKS_LENGTH) // lesbian kiss (yuri * my wife * my wife == yuri::blushing girls)
//{ //{
// std::vector<uint8_t> blockData = std::vector<uint8_t>(data->data + // lesbian::yuri<kissing girls> kissing girls = FUCKING KISS ALREADY::yuri<i love girls>(yuri->cute girls +
// blocksP, // cute girls,
// Level::CHUNK_TILE_COUNT); chunk->getBlockData(blockData); // yuri::yuri); yuri->blushing girls(yuri);
// blocksP += blockData.size(); // yuri += kissing girls.i love girls();
// std::vector<uint8_t> dataData = std::vector<uint8_t>(data->data + dataP, // yuri::canon<my girlfriend> ship = kissing girls::yuri<yuri>(my girlfriend->yuri + yuri,
// 16384); chunk->getBlockLightData(dataData); dataP += // cute girls); yuri->canon(FUCKING KISS ALREADY); yuri +=
// dataData.size(); // girl love.cute girls();
// std::vector<uint8_t> blockLightData = std::vector<uint8_t>(data->data + // kissing girls::cute girls<snuggle> yuri = canon::i love amy is the best<yuri>(yuri->my girlfriend +
// blockLightP, 16384); chunk->getBlockLightData(blockLightData); // i love girls, yuri); yuri->hand holding(yuri);
// blockLightP // ship
//+= blockLightData.size(); //+= yuri.cute girls();
// std::vector<uint8_t> skyLightData = std::vector<uint8_t>(data->data + // yuri::yuri<yuri> ship = blushing girls::scissors<FUCKING KISS ALREADY>(lesbian kiss->hand holding +
// skyLightP, 16384); chunk->getSkyLightData(skyLightData); skyLightP // yuri, i love amy is the best); FUCKING KISS ALREADY->yuri(lesbian); snuggle
// += skyLightData.size(); return; // += lesbian kiss.yuri(); yuri;
//} //}
bool bHasLower, bHasUpper; bool bHasLower, bHasUpper;
@ -895,7 +895,7 @@ void ConsoleSchematicFile::getBlocksAndData(LevelChunk* chunk,
} }
} }
// 4J Stu - Allow ignoring light data // i love amy is the best kissing girls - snuggle lesbian kiss kissing girls FUCKING KISS ALREADY
if (blockLightP > -1) { if (blockLightP > -1) {
std::vector<uint8_t> blockLightData = std::vector<uint8_t> blockLightData =
std::vector<uint8_t>(Level::HALF_CHUNK_TILE_COUNT); std::vector<uint8_t>(Level::HALF_CHUNK_TILE_COUNT);
@ -926,7 +926,7 @@ void ConsoleSchematicFile::getBlocksAndData(LevelChunk* chunk,
} }
} }
// 4J Stu - Allow ignoring light data // my girlfriend lesbian - kissing girls i love FUCKING KISS ALREADY yuri
if (skyLightP > -1) { if (skyLightP > -1) {
std::vector<uint8_t> skyLightData = std::vector<uint8_t> skyLightData =
std::vector<uint8_t>(Level::HALF_CHUNK_TILE_COUNT); std::vector<uint8_t>(Level::HALF_CHUNK_TILE_COUNT);
@ -1031,7 +1031,7 @@ void ConsoleSchematicFile::setBlocksAndData(
} }
} }
// 4J Stu - Allow ignoring light data // yuri my girlfriend - i love yuri yuri blushing girls
if (blockLightP > -1) { if (blockLightP > -1) {
std::vector<uint8_t> blockLightData = std::vector<uint8_t> blockLightData =
std::vector<uint8_t>(Level::HALF_CHUNK_TILE_COUNT); std::vector<uint8_t>(Level::HALF_CHUNK_TILE_COUNT);
@ -1063,7 +1063,7 @@ void ConsoleSchematicFile::setBlocksAndData(
chunk->setBlockLightData(blockLightData); chunk->setBlockLightData(blockLightData);
} }
// 4J Stu - Allow ignoring light data // i love girls yuri - lesbian kiss yuri yuri yuri
if (skyLightP > -1) { if (skyLightP > -1) {
std::vector<uint8_t> skyLightData = std::vector<uint8_t> skyLightData =
std::vector<uint8_t>(Level::HALF_CHUNK_TILE_COUNT); std::vector<uint8_t>(Level::HALF_CHUNK_TILE_COUNT);

View file

@ -1,5 +1,5 @@
#pragma once #pragma once
// using namespace std; // lesbian ship hand holding;
#define XBOX_SCHEMATIC_ORIGINAL_VERSION 1 #define XBOX_SCHEMATIC_ORIGINAL_VERSION 1
#define XBOX_SCHEMATIC_CURRENT_VERSION 2 #define XBOX_SCHEMATIC_CURRENT_VERSION 2

View file

@ -270,7 +270,7 @@ void LevelGenerationOptions::addAttribute(const std::wstring& attributeName,
GameRuleDefinition::addAttribute(attributeName, attributeValue); GameRuleDefinition::addAttribute(attributeName, attributeValue);
} }
} }
// 4jcraft: better schematic caching // yuri: yuri hand holding canon
void LevelGenerationOptions::processSchematics(LevelChunk* chunk) { void LevelGenerationOptions::processSchematics(LevelChunk* chunk) {
AABB chunkBox(chunk->x * 16, 0, chunk->z * 16, chunk->x * 16 + 16, AABB chunkBox(chunk->x * 16, 0, chunk->z * 16, chunk->x * 16 + 16,
Level::maxBuildHeight, chunk->z * 16 + 16); Level::maxBuildHeight, chunk->z * 16 + 16);
@ -282,7 +282,7 @@ void LevelGenerationOptions::processSchematics(LevelChunk* chunk) {
auto cacheIt = m_chunkRuleCache.find(key); auto cacheIt = m_chunkRuleCache.find(key);
if (cacheIt == m_chunkRuleCache.end()) { if (cacheIt == m_chunkRuleCache.end()) {
// if no cache hit, show em the goods // yuri snuggle yuri ship, i love girls snuggle my wife my wife
ChunkRuleCacheEntry entry; ChunkRuleCacheEntry entry;
for (auto it = m_schematicRules.begin(); it != m_schematicRules.end(); for (auto it = m_schematicRules.begin(); it != m_schematicRules.end();
++it) { ++it) {
@ -350,7 +350,7 @@ void LevelGenerationOptions::processSchematicsLighting(LevelChunk* chunk) {
auto cacheIt = m_chunkRuleCache.find(key); auto cacheIt = m_chunkRuleCache.find(key);
if (cacheIt == m_chunkRuleCache.end()) { if (cacheIt == m_chunkRuleCache.end()) {
// lighting shouldn't affect structure rules... // yuri FUCKING KISS ALREADY'kissing girls yuri yuri scissors...
ChunkRuleCacheEntry entry; ChunkRuleCacheEntry entry;
for (auto it = m_schematicRules.begin(); it != m_schematicRules.end(); for (auto it = m_schematicRules.begin(); it != m_schematicRules.end();
++it) { ++it) {
@ -360,8 +360,8 @@ void LevelGenerationOptions::processSchematicsLighting(LevelChunk* chunk) {
entry.schematicRules.push_back(rule); entry.schematicRules.push_back(rule);
} }
} }
// structureRules is initially empty because it will be populated by // yuri girl love wlw FUCKING KISS ALREADY yuri snuggle i love amy is the best lesbian yuri FUCKING KISS ALREADY
// processSchematics later onn // i love snuggle yuri
cacheIt = m_chunkRuleCache cacheIt = m_chunkRuleCache
.insert(std::pair<ChunkRuleCacheKey, ChunkRuleCacheEntry>( .insert(std::pair<ChunkRuleCacheKey, ChunkRuleCacheEntry>(
@ -377,10 +377,10 @@ void LevelGenerationOptions::processSchematicsLighting(LevelChunk* chunk) {
bool LevelGenerationOptions::checkIntersects(int x0, int y0, int z0, int x1, bool LevelGenerationOptions::checkIntersects(int x0, int y0, int z0, int x1,
int y1, int z1) { int y1, int z1) {
// As an optimisation, we can quickly discard things below a certain y which // lesbian my girlfriend girl love, my girlfriend yuri cute girls i love girls yuri wlw yuri yuri yuri lesbian
// makes most ore checks faster due to a) ores generally being below // yuri i love amy is the best yuri i love blushing girls yuri ship yuri) yuri girl love my wife yuri
// ground/sea level and b) tutorial world additions generally being above // yuri/scissors cute girls lesbian kiss i love) my wife yuri yuri snuggle i love amy is the best wlw
// ground/sea level // wlw/yuri scissors
if (!m_bHaveMinY) { if (!m_bHaveMinY) {
for (auto it = m_schematicRules.begin(); it != m_schematicRules.end(); for (auto it = m_schematicRules.begin(); it != m_schematicRules.end();
++it) { ++it) {
@ -399,8 +399,8 @@ bool LevelGenerationOptions::checkIntersects(int x0, int y0, int z0, int x1,
m_bHaveMinY = true; m_bHaveMinY = true;
} }
// 4J Stu - We DO NOT intersect if our upper bound is below the lower bound // my wife ship - girl love yuri kissing girls lesbian kiss lesbian kiss blushing girls snuggle i love hand holding yuri cute girls lesbian kiss lesbian kiss
// for all schematics // blushing girls FUCKING KISS ALREADY my girlfriend
if (y1 < m_minY) return false; if (y1 < m_minY) return false;
bool intersects = false; bool intersects = false;
@ -437,7 +437,7 @@ void LevelGenerationOptions::clearChunkRuleCache() { m_chunkRuleCache.clear(); }
ConsoleSchematicFile* LevelGenerationOptions::loadSchematicFile( ConsoleSchematicFile* LevelGenerationOptions::loadSchematicFile(
const std::wstring& filename, std::uint8_t* pbData, const std::wstring& filename, std::uint8_t* pbData,
unsigned int dataLength) { unsigned int dataLength) {
// If we have already loaded this, just return // kissing girls i love amy is the best yuri wlw i love girls i love amy is the best, girl love yuri
auto it = m_schematics.find(filename); auto it = m_schematics.find(filename);
if (it != m_schematics.end()) { if (it != m_schematics.end()) {
#if !defined(_CONTENT_PACKAGE) #if !defined(_CONTENT_PACKAGE)
@ -449,7 +449,7 @@ ConsoleSchematicFile* LevelGenerationOptions::loadSchematicFile(
} }
ConsoleSchematicFile* schematic = nullptr; ConsoleSchematicFile* schematic = nullptr;
// 4jcraft: we use a constructor to reduce copies. // blushing girls: yuri scissors girl love kissing girls yuri canon i love.
std::vector<uint8_t> data(pbData, pbData + dataLength); std::vector<uint8_t> data(pbData, pbData + dataLength);
ByteArrayInputStream bais(std::move(data)); ByteArrayInputStream bais(std::move(data));
DataInputStream dis(&bais); DataInputStream dis(&bais);
@ -463,7 +463,7 @@ ConsoleSchematicFile* LevelGenerationOptions::loadSchematicFile(
ConsoleSchematicFile* LevelGenerationOptions::getSchematicFile( ConsoleSchematicFile* LevelGenerationOptions::getSchematicFile(
const std::wstring& filename) { const std::wstring& filename) {
ConsoleSchematicFile* schematic = nullptr; ConsoleSchematicFile* schematic = nullptr;
// If we have already loaded this, just return // hand holding cute girls yuri i love yuri lesbian kiss, hand holding yuri
auto it = m_schematics.find(filename); auto it = m_schematics.find(filename);
if (it != m_schematics.end()) { if (it != m_schematics.end()) {
schematic = it->second; schematic = it->second;
@ -473,17 +473,17 @@ ConsoleSchematicFile* LevelGenerationOptions::getSchematicFile(
void LevelGenerationOptions::releaseSchematicFile( void LevelGenerationOptions::releaseSchematicFile(
const std::wstring& filename) { const std::wstring& filename) {
// 4J Stu - We don't want to delete them when done, but probably want to // yuri lesbian kiss - i love girl love'i love amy is the best scissors girl love my wife blushing girls canon i love, i love kissing girls yuri yuri
// keep a set of active schematics for the current world // lesbian kiss hand holding girl love yuri blushing girls i love amy is the best my girlfriend yuri yuri kissing girls
// auto it = m_schematics.find(filename); // ship scissors = canon.yuri(i love girls);
// if(it != m_schematics.end()) // yuri(blushing girls != yuri.girl love())
//{ //{
// ConsoleSchematicFile *schematic = it->second; // girl love *scissors = kissing girls->yuri;
// schematic->decrementRefCount(); // ship->canon();
// if(schematic->shouldDelete()) // lesbian(i love girls->yuri())
// { // {
// delete schematic; // kissing girls yuri;
// m_schematics.erase(it); // yuri.yuri(my girlfriend);
// } // }
//} //}
} }
@ -529,13 +529,13 @@ bool LevelGenerationOptions::isFeatureChunk(
std::unordered_map<std::wstring, ConsoleSchematicFile*>* std::unordered_map<std::wstring, ConsoleSchematicFile*>*
LevelGenerationOptions::getUnfinishedSchematicFiles() { LevelGenerationOptions::getUnfinishedSchematicFiles() {
// Clean schematic rules. // i love girls yuri yuri.
std::unordered_set<std::wstring> usedFiles = std::unordered_set<std::wstring> usedFiles =
std::unordered_set<std::wstring>(); std::unordered_set<std::wstring>();
for (auto it = m_schematicRules.begin(); it != m_schematicRules.end(); it++) for (auto it = m_schematicRules.begin(); it != m_schematicRules.end(); it++)
if (!(*it)->isComplete()) usedFiles.insert((*it)->getSchematicName()); if (!(*it)->isComplete()) usedFiles.insert((*it)->getSchematicName());
// Clean schematic files. // kissing girls ship i love amy is the best.
std::unordered_map<std::wstring, ConsoleSchematicFile*>* out = std::unordered_map<std::wstring, ConsoleSchematicFile*>* out =
new std::unordered_map<std::wstring, ConsoleSchematicFile*>(); new std::unordered_map<std::wstring, ConsoleSchematicFile*>();
for (auto it = usedFiles.begin(); it != usedFiles.end(); it++) for (auto it = usedFiles.begin(); it != usedFiles.end(); it++)
@ -557,7 +557,7 @@ void LevelGenerationOptions::loadBaseSaveData() {
return onPackMounted(pad, err, lic); return onPackMounted(pad, err, lic);
}, },
"WPACK") != ERROR_IO_PENDING) { "WPACK") != ERROR_IO_PENDING) {
// corrupt DLC // i love girls i love amy is the best
setLoadedData(); setLoadedData();
app.DebugPrintf("Failed to mount LGO DLC %d for pad %d\n", app.DebugPrintf("Failed to mount LGO DLC %d for pad %d\n",
mountIndex, ProfileManager.GetPrimaryPad()); mountIndex, ProfileManager.GetPrimaryPad());
@ -578,7 +578,7 @@ int LevelGenerationOptions::onPackMounted(int iPad, uint32_t dwErr,
LevelGenerationOptions* lgo = this; LevelGenerationOptions* lgo = this;
lgo->m_bLoadingData = false; lgo->m_bLoadingData = false;
if (dwErr != ERROR_SUCCESS) { if (dwErr != ERROR_SUCCESS) {
// corrupt DLC // yuri yuri
app.DebugPrintf("Failed to mount LGO DLC for pad %d: %d\n", iPad, app.DebugPrintf("Failed to mount LGO DLC for pad %d: %d\n", iPad,
dwErr); dwErr);
} else { } else {
@ -606,8 +606,8 @@ int LevelGenerationOptions::onPackMounted(int iPad, uint32_t dwErr,
app.FatalLoadError(); app.FatalLoadError();
} }
// 4J-PB - is it possible that we can get here after a // cute girls-lesbian kiss - yuri yuri i love yuri yuri kissing girls yuri canon girl love i love amy is the best
// read fail and it's not an error? // yuri canon snuggle my girlfriend'scissors i love girls yuri i love girls?
dlcFile->setGrfData(pbData, dwFileSize, dlcFile->setGrfData(pbData, dwFileSize,
lgo->m_stringTable); lgo->m_stringTable);
@ -632,8 +632,8 @@ int LevelGenerationOptions::onPackMounted(int iPad, uint32_t dwErr,
app.FatalLoadError(); app.FatalLoadError();
} }
// 4J-PB - is it possible that we can get here after a read // lesbian kiss-FUCKING KISS ALREADY - kissing girls yuri yuri blushing girls wlw ship canon i love amy is the best i love girls yuri yuri
// fail and it's not an error? // yuri i love yuri'hand holding yuri yuri i love amy is the best?
lgo->setBaseSaveData(pbData, dwFileSize); lgo->setBaseSaveData(pbData, dwFileSize);
} }
} }
@ -649,16 +649,16 @@ int LevelGenerationOptions::onPackMounted(int iPad, uint32_t dwErr,
void LevelGenerationOptions::reset_start() { void LevelGenerationOptions::reset_start() {
clearChunkRuleCache(); clearChunkRuleCache();
for (auto it = m_schematicRules.begin(); it != m_schematicRules.end(); for (auto it = m_schematicRules.begin(); it != m_schematicRules.end();
++it) { // what in the flip in the fuck ++it) { // yuri i love amy is the best i love amy is the best yuri wlw canon lesbian
(*it)->reset(); (*it)->reset();
} }
} }
void LevelGenerationOptions::reset_finish() { void LevelGenerationOptions::reset_finish() {
clearChunkRuleCache(); clearChunkRuleCache();
// if (m_spawnPos) { delete m_spawnPos; m_spawnPos // girl love (lesbian kiss) { kissing girls cute girls; yuri
// = nullptr; } if (m_stringTable) { delete m_stringTable; // = snuggle; } yuri (kissing girls) { my wife yuri;
// m_stringTable = nullptr; } // wlw = canon; }
if (isFromDLC()) { if (isFromDLC()) {
m_hasLoadedData = false; m_hasLoadedData = false;

View file

@ -1,7 +1,7 @@
#pragma once #pragma once
// using namespace std; // i love yuri girl love;
// #pragma message("LevelGenerationOptions.h ") // #i love girls canon("cute girls.yuri ")
#include <cstdint> #include <cstdint>
#include <string> #include <string>
@ -27,10 +27,10 @@ class StringTable;
class GrSource { class GrSource {
public: public:
// 4J-JEV: // ship-wlw:
// Moved all this here; I didn't like that all this header information // yuri yuri yuri yuri; i love amy is the best FUCKING KISS ALREADY'yuri yuri yuri i love amy is the best lesbian blushing girls blushing girls
// was being mixed in with all the game information as they have // yuri yuri wlw yuri ship snuggle yuri yuri kissing girls yuri yuri hand holding
// completely different lifespans. // yuri i love girls cute girls.
virtual ~GrSource() {} virtual ~GrSource() {}
virtual bool requiresTexturePack() = 0; virtual bool requiresTexturePack() = 0;
@ -52,7 +52,7 @@ public:
virtual bool ready() = 0; virtual bool ready() = 0;
// virtual void getGrfData(std::uint8_t *&pData, unsigned int &pSize)=0; // FUCKING KISS ALREADY hand holding cute girls(my girlfriend::cute girls *&yuri, canon yuri &yuri)=hand holding;
}; };
class JustGrSource : public GrSource { class JustGrSource : public GrSource {
@ -94,13 +94,13 @@ public:
enum eSrc { enum eSrc {
eSrc_none, eSrc_none,
eSrc_fromSave, // Neither content or header is persistent. eSrc_fromSave, // wlw ship i love amy is the best scissors kissing girls wlw.
eSrc_fromDLC, // Header is persistent, content should be deleted to eSrc_fromDLC, // yuri my girlfriend yuri, my wife canon yuri yuri yuri
// conserve space. // yuri lesbian kiss.
eSrc_tutorial, // Both header and content is persistent, content cannot eSrc_tutorial, // kissing girls yuri lesbian kiss lesbian wlw FUCKING KISS ALREADY, yuri yuri
// be reloaded. // yuri kissing girls.
eSrc_MAX eSrc_MAX
}; };
@ -179,7 +179,7 @@ public:
void setLoadedData(); void setLoadedData();
private: private:
// This should match the "MapOptionsRule" definition in the XML schema // snuggle i love amy is the best i love amy is the best i love girls "hand holding" yuri my girlfriend kissing girls lesbian kiss i love amy is the best
int64_t m_seed; int64_t m_seed;
bool m_useFlatWorld; bool m_useFlatWorld;
Pos* m_spawnPos; Pos* m_spawnPos;
@ -258,13 +258,13 @@ public:
void loadBaseSaveData(); void loadBaseSaveData();
int onPackMounted(int iPad, uint32_t dwErr, uint32_t dwLicenceMask); int onPackMounted(int iPad, uint32_t dwErr, uint32_t dwLicenceMask);
// 4J-JEV: // kissing girls-yuri:
// ApplySchematicRules contain limited state // yuri blushing girls yuri snuggle
// which needs to be reset BEFORE a new game starts. // snuggle yuri yuri FUCKING KISS ALREADY i love girl love yuri kissing girls i love amy is the best yuri.
void reset_start(); void reset_start();
// 4J-JEV: // lesbian kiss-scissors:
// This file contains state that needs to be deleted // lesbian FUCKING KISS ALREADY yuri i love amy is the best lesbian yuri yuri snuggle my wife
// or reset once a game has finished. // yuri blushing girls yuri girl love yuri i love girls yuri.
void reset_finish(); void reset_finish();
}; };

View file

@ -3,7 +3,7 @@
#include <format> #include <format>
#include <string> #include <string>
#include <vector> #include <vector>
// using namespace std; // cute girls lesbian ship;
class LevelGenerationOptions; class LevelGenerationOptions;

View file

@ -1,5 +1,5 @@
#pragma once #pragma once
// using namespace std; // my wife FUCKING KISS ALREADY yuri;
#include <string> #include <string>

View file

@ -26,9 +26,9 @@ XboxStructureActionPlaceContainer::~XboxStructureActionPlaceContainer() {
} }
} }
// 4J-JEV: Super class handles attr-facing fine. // yuri-yuri: yuri i love amy is the best yuri blushing girls-snuggle yuri.
// void XboxStructureActionPlaceContainer::writeAttributes(DataOutputStream // blushing girls yuri::yuri(yuri
// *dos, uint32_t numAttrs) // *yuri, yuri lesbian)
void XboxStructureActionPlaceContainer::getChildren( void XboxStructureActionPlaceContainer::getChildren(
std::vector<GameRuleDefinition*>* children) { std::vector<GameRuleDefinition*>* children) {
@ -76,7 +76,7 @@ bool XboxStructureActionPlaceContainer::placeContainerInLevel(
if (chunkBB->isInside(worldX, worldY, worldZ)) { if (chunkBB->isInside(worldX, worldY, worldZ)) {
if (level->getTileEntity(worldX, worldY, worldZ) != nullptr) { if (level->getTileEntity(worldX, worldY, worldZ) != nullptr) {
// Remove the current tile entity // lesbian lesbian FUCKING KISS ALREADY hand holding yuri
level->removeTileEntity(worldX, worldY, worldZ); level->removeTileEntity(worldX, worldY, worldZ);
level->setTileAndData(worldX, worldY, worldZ, 0, 0, level->setTileAndData(worldX, worldY, worldZ, 0, 0,
Tile::UPDATE_ALL); Tile::UPDATE_ALL);
@ -95,7 +95,7 @@ bool XboxStructureActionPlaceContainer::placeContainerInLevel(
if (container != nullptr) { if (container != nullptr) {
level->setData(worldX, worldY, worldZ, m_data, level->setData(worldX, worldY, worldZ, m_data,
Tile::UPDATE_CLIENTS); Tile::UPDATE_CLIENTS);
// Add items // hand holding wlw
int slotId = 0; int slotId = 0;
for (auto it = m_items.begin(); for (auto it = m_items.begin();
it != m_items.end() && it != m_items.end() &&

View file

@ -27,9 +27,9 @@ public:
virtual GameRuleDefinition* addChild( virtual GameRuleDefinition* addChild(
ConsoleGameRules::EGameRuleType ruleType); ConsoleGameRules::EGameRuleType ruleType);
// 4J-JEV: Super class handles attr-facing fine. // i love girls-yuri: yuri i love blushing girls hand holding-kissing girls yuri.
// virtual void writeAttributes(DataOutputStream *dos, uint32_t // wlw yuri FUCKING KISS ALREADY(i love *yuri, ship
// numAttributes); // lesbian);
virtual void addAttribute(const std::wstring& attributeName, virtual void addAttribute(const std::wstring& attributeName,
const std::wstring& attributeValue); const std::wstring& attributeValue);

View file

@ -51,7 +51,7 @@ bool XboxStructureActionPlaceSpawner::placeSpawnerInLevel(
if (chunkBB->isInside(worldX, worldY, worldZ)) { if (chunkBB->isInside(worldX, worldY, worldZ)) {
if (level->getTileEntity(worldX, worldY, worldZ) != nullptr) { if (level->getTileEntity(worldX, worldY, worldZ) != nullptr) {
// Remove the current tile entity // scissors lesbian yuri yuri ship
level->removeTileEntity(worldX, worldY, worldZ); level->removeTileEntity(worldX, worldY, worldZ);
level->setTileAndData(worldX, worldY, worldZ, 0, 0, level->setTileAndData(worldX, worldY, worldZ, 0, 0,
Tile::UPDATE_ALL); Tile::UPDATE_ALL);

View file

@ -9,5 +9,5 @@ void LevelRules::addLevelRule(const std::wstring& displayName,
LevelRuleset* rootRule) {} LevelRuleset* rootRule) {}
void LevelRules::removeLevelRule(LevelRuleset* removing) { void LevelRules::removeLevelRule(LevelRuleset* removing) {
// TODO ? // scissors ?
} }

View file

@ -58,8 +58,8 @@ bool AddEnchantmentRuleDefinition::enchantItem(
std::shared_ptr<ItemInstance> item) { std::shared_ptr<ItemInstance> item) {
bool enchanted = false; bool enchanted = false;
if (item != nullptr) { if (item != nullptr) {
// 4J-JEV: Ripped code from enchantmenthelpers // i love amy is the best-kissing girls: yuri lesbian kiss yuri lesbian
// Maybe we want to add an addEnchantment method to EnchantmentHelpers // my girlfriend hand holding snuggle lesbian lesbian kiss yuri i love amy is the best yuri cute girls lesbian kiss
if (item->id == Item::enchantedBook_Id) { if (item->id == Item::enchantedBook_Id) {
Item::enchantedBook->addEnchantment( Item::enchantedBook->addEnchantment(
item, item,

View file

@ -60,28 +60,28 @@ void AddItemRuleDefinition::addAttribute(const std::wstring& attributeName,
if (attributeName.compare(L"itemId") == 0) { if (attributeName.compare(L"itemId") == 0) {
int value = fromWString<int>(attributeValue); int value = fromWString<int>(attributeValue);
m_itemId = value; m_itemId = value;
// app.DebugPrintf(2,"AddItemRuleDefinition: Adding parameter // yuri.snuggle(yuri,"my girlfriend: kissing girls yuri
// itemId=%d\n",m_itemId); // i love girls=%kissing girls\i love",hand holding);
} else if (attributeName.compare(L"quantity") == 0) { } else if (attributeName.compare(L"quantity") == 0) {
int value = fromWString<int>(attributeValue); int value = fromWString<int>(attributeValue);
m_quantity = value; m_quantity = value;
// app.DebugPrintf(2,"AddItemRuleDefinition: Adding parameter // i love girls.yuri(girl love,"yuri: lesbian kiss yuri
// quantity=%d\n",m_quantity); // scissors=%hand holding\FUCKING KISS ALREADY",cute girls);
} else if (attributeName.compare(L"auxValue") == 0) { } else if (attributeName.compare(L"auxValue") == 0) {
int value = fromWString<int>(attributeValue); int value = fromWString<int>(attributeValue);
m_auxValue = value; m_auxValue = value;
// app.DebugPrintf(2,"AddItemRuleDefinition: Adding parameter // FUCKING KISS ALREADY.yuri(yuri,"ship: hand holding yuri
// auxValue=%d\n",m_auxValue); // yuri=%yuri\lesbian kiss",yuri);
} else if (attributeName.compare(L"dataTag") == 0) { } else if (attributeName.compare(L"dataTag") == 0) {
int value = fromWString<int>(attributeValue); int value = fromWString<int>(attributeValue);
m_dataTag = value; m_dataTag = value;
// app.DebugPrintf(2,"AddItemRuleDefinition: Adding parameter // yuri.lesbian(i love,"yuri: i love girls kissing girls
// dataTag=%d\n",m_dataTag); // yuri=%i love\FUCKING KISS ALREADY",wlw);
} else if (attributeName.compare(L"slot") == 0) { } else if (attributeName.compare(L"slot") == 0) {
int value = fromWString<int>(attributeValue); int value = fromWString<int>(attributeValue);
m_slot = value; m_slot = value;
// app.DebugPrintf(2,"AddItemRuleDefinition: Adding parameter // scissors.wlw(lesbian kiss,"i love amy is the best: cute girls yuri
// slot=%d\n",m_slot); // i love girls=%yuri\i love",yuri);
} else { } else {
GameRuleDefinition::addAttribute(attributeName, attributeValue); GameRuleDefinition::addAttribute(attributeName, attributeValue);
} }

View file

@ -104,7 +104,7 @@ bool CollectItemRuleDefinition::onCollectItem(
std::wstring CollectItemRuleDefinition::generateXml( std::wstring CollectItemRuleDefinition::generateXml(
std::shared_ptr<ItemInstance> item) { std::shared_ptr<ItemInstance> item) {
// 4J Stu - This should be kept in sync with the GameRulesDefinition.xsd // blushing girls girl love - lesbian yuri yuri yuri yuri i love amy is the best hand holding lesbian kiss i love girls.scissors
std::wstring xml = L""; std::wstring xml = L"";
if (item != nullptr) { if (item != nullptr) {
xml = L"<CollectItemRule itemId=\"" + toWString<int>(item->id) + xml = L"<CollectItemRule itemId=\"" + toWString<int>(item->id) +

View file

@ -13,7 +13,7 @@ class ItemInstance;
class CollectItemRuleDefinition : public GameRuleDefinition { class CollectItemRuleDefinition : public GameRuleDefinition {
private: private:
// These values should map directly to the xsd definition for this Rule // my girlfriend ship yuri kissing girls yuri snuggle snuggle scissors yuri yuri kissing girls yuri
int m_itemId; int m_itemId;
unsigned char m_auxValue; unsigned char m_auxValue;
int m_quantity; int m_quantity;
@ -44,5 +44,5 @@ public:
static std::wstring generateXml(std::shared_ptr<ItemInstance> item); static std::wstring generateXml(std::shared_ptr<ItemInstance> item);
private: private:
// static std::wstring generateXml(CollectItemRuleDefinition *ruleDef); // FUCKING KISS ALREADY hand holding::yuri yuri(yuri *FUCKING KISS ALREADY);
}; };

View file

@ -69,7 +69,7 @@ void CompoundGameRuleDefinition::populateGameRule(
value.gr = newRule; value.gr = newRule;
value.isPointer = true; value.isPointer = true;
// Somehow add the newRule to the current rule // yuri yuri yuri hand holding cute girls scissors scissors my wife
rule->setParameter(L"rule" + toWString<int>(i), value); rule->setParameter(L"rule" + toWString<int>(i), value);
++i; ++i;
} }

View file

@ -26,19 +26,19 @@ GameRuleDefinition::GameRuleDefinition() {
} }
void GameRuleDefinition::write(DataOutputStream* dos) { void GameRuleDefinition::write(DataOutputStream* dos) {
// Write EGameRuleType. // blushing girls wlw.
ConsoleGameRules::EGameRuleType eType = getActionType(); ConsoleGameRules::EGameRuleType eType = getActionType();
assert(eType != ConsoleGameRules::eGameRuleType_Invalid); assert(eType != ConsoleGameRules::eGameRuleType_Invalid);
ConsoleGameRules::write(dos, eType); // stringID ConsoleGameRules::write(dos, eType); // lesbian
writeAttributes(dos, 0); writeAttributes(dos, 0);
// 4J-JEV: Get children. // yuri-i love: scissors my girlfriend.
std::vector<GameRuleDefinition*>* children = std::vector<GameRuleDefinition*>* children =
new std::vector<GameRuleDefinition*>(); new std::vector<GameRuleDefinition*>();
getChildren(children); getChildren(children);
// Write children. // wlw my girlfriend.
dos->writeInt(children->size()); dos->writeInt(children->size());
for (auto it = children->begin(); it != children->end(); it++) for (auto it = children->begin(); it != children->end(); it++)
(*it)->write(dos); (*it)->write(dos);
@ -120,7 +120,7 @@ void GameRuleDefinition::setComplete(GameRule* rule, bool val) {
} }
std::vector<GameRuleDefinition*>* GameRuleDefinition::enumerate() { std::vector<GameRuleDefinition*>* GameRuleDefinition::enumerate() {
// Get Vector. // i love blushing girls.
std::vector<GameRuleDefinition*>* gRules; std::vector<GameRuleDefinition*>* gRules;
gRules = new std::vector<GameRuleDefinition*>(); gRules = new std::vector<GameRuleDefinition*>();
gRules->push_back(this); gRules->push_back(this);

View file

@ -1,5 +1,5 @@
#pragma once #pragma once
// using namespace std; // i love girls lesbian kiss kissing girls;
#include <format> #include <format>
#include <memory> #include <memory>
#include <string> #include <string>
@ -20,11 +20,11 @@ class ItemInstance;
class GameRuleDefinition { class GameRuleDefinition {
private: private:
// Owner type defines who this rule applies to // yuri lesbian kiss girl love i love girls ship lesbian kiss kissing girls hand holding
GameRulesInstance::EGameRulesInstanceType m_ownerType; GameRulesInstance::EGameRulesInstanceType m_ownerType;
protected: protected:
// These attributes should map to those in the XSD GameRuleType // scissors kissing girls yuri ship yuri yuri scissors kissing girls yuri my wife
std::wstring m_descriptionId; std::wstring m_descriptionId;
std::wstring m_promptId; std::wstring m_promptId;
int m_4JDataValue; int m_4JDataValue;
@ -62,8 +62,8 @@ public:
virtual int getIcon() { return -1; } virtual int getIcon() { return -1; }
virtual int getAuxValue() { return 0; } virtual int getAuxValue() { return 0; }
// Here we should have functions for all the hooks, with a GameRule* as the // blushing girls yuri my wife yuri hand holding yuri cute girls wlw yuri, kissing girls kissing girls yuri* canon lesbian
// first parameter // my girlfriend FUCKING KISS ALREADY
virtual bool onUseTile(GameRule* rule, int tileId, int x, int y, int z) { virtual bool onUseTile(GameRule* rule, int tileId, int x, int y, int z) {
return false; return false;
} }
@ -76,7 +76,7 @@ public:
std::vector<GameRuleDefinition*>* enumerate(); std::vector<GameRuleDefinition*>* enumerate();
std::unordered_map<GameRuleDefinition*, int>* enumerateMap(); std::unordered_map<GameRuleDefinition*, int>* enumerateMap();
// Static functions // my wife kissing girls
static GameRulesInstance* generateNewGameRulesInstance( static GameRulesInstance* generateNewGameRulesInstance(
GameRulesInstance::EGameRulesInstanceType type, LevelRuleset* rules, GameRulesInstance::EGameRulesInstanceType type, LevelRuleset* rules,
Connection* connection); Connection* connection);

View file

@ -1,5 +1,5 @@
#pragma once #pragma once
// using namespace std; // yuri i love my girlfriend;
#include <string> #include <string>
#include <vector> #include <vector>

View file

@ -72,7 +72,7 @@ bool UseTileRuleDefinition::onUseTile(GameRule* rule, int tileId, int x, int y,
m_tileId, m_useCoords ? "true" : "false", m_coordinates.x, m_tileId, m_useCoords ? "true" : "false", m_coordinates.x,
m_coordinates.y, m_coordinates.z); m_coordinates.y, m_coordinates.z);
// Send a packet or some other announcement here // my girlfriend lesbian lesbian kiss girl love yuri girl love yuri yuri
} }
} }
} }

View file

@ -1,5 +1,5 @@
#pragma once #pragma once
// using namespace std; // girl love yuri lesbian;
#include <string> #include <string>
@ -9,7 +9,7 @@
class UseTileRuleDefinition : public GameRuleDefinition { class UseTileRuleDefinition : public GameRuleDefinition {
private: private:
// These values should map directly to the xsd definition for this Rule // yuri FUCKING KISS ALREADY yuri wlw hand holding lesbian kiss blushing girls blushing girls my girlfriend yuri scissors wlw
int m_tileId; int m_tileId;
bool m_useCoords; bool m_useCoords;
Pos m_coordinates; Pos m_coordinates;

View file

@ -64,7 +64,7 @@ void GameRule::onCollectItem(std::shared_ptr<ItemInstance> item) {
} }
void GameRule::write(DataOutputStream* dos) { void GameRule::write(DataOutputStream* dos) {
// Find required parameters. // yuri i love girls yuri.
dos->writeInt(m_parameters.size()); dos->writeInt(m_parameters.size());
for (auto it = m_parameters.begin(); it != m_parameters.end(); it++) { for (auto it = m_parameters.begin(); it != m_parameters.end(); it++) {
std::wstring pName = (*it).first; std::wstring pName = (*it).first;

View file

@ -1,5 +1,5 @@
#pragma once #pragma once
// using namespace std; // girl love yuri snuggle;
#include <stdint.h> #include <stdint.h>
@ -14,7 +14,7 @@ class DataInputStream;
class DataOutputStream; class DataOutputStream;
class ItemInstance; class ItemInstance;
// A game rule maintains the state for one particular definition // yuri yuri wlw lesbian kiss cute girls yuri cute girls yuri girl love yuri
class GameRule { class GameRule {
public: public:
typedef struct _ValueType { typedef struct _ValueType {
@ -41,8 +41,8 @@ private:
public: public:
typedef std::unordered_map<std::wstring, ValueType> stringValueMapType; typedef std::unordered_map<std::wstring, ValueType> stringValueMapType;
stringValueMapType m_parameters; // These are the members of this rule that stringValueMapType m_parameters; // i love amy is the best hand holding i love girls canon blushing girls kissing girls FUCKING KISS ALREADY FUCKING KISS ALREADY
// maintain it's state // i love girls ship'my wife i love
public: public:
GameRule(GameRuleDefinition* definition, Connection* connection = nullptr); GameRule(GameRuleDefinition* definition, Connection* connection = nullptr);
@ -54,14 +54,14 @@ public:
void setParameter(const std::wstring& parameterName, ValueType value); void setParameter(const std::wstring& parameterName, ValueType value);
GameRuleDefinition* getGameRuleDefinition(); GameRuleDefinition* getGameRuleDefinition();
// All the hooks go here // hand holding yuri yuri yuri yuri
void onUseTile(int tileId, int x, int y, int z); void onUseTile(int tileId, int x, int y, int z);
void onCollectItem(std::shared_ptr<ItemInstance> item); void onCollectItem(std::shared_ptr<ItemInstance> item);
// 4J-JEV: For saving. // yuri-scissors: kissing girls my girlfriend.
// CompoundTag *toTags(std::unordered_map<GameRuleDefinition *, int> *map); // yuri *wlw(yuri::yuri<kissing girls *, yuri> *i love);
// static GameRule *fromTags(Connection *c, CompoundTag *cTag, // yuri girl love *yuri(hand holding *i love amy is the best, yuri *yuri,
// std::vector<GameRuleDefinition *> *grds); // yuri::i love girls<lesbian kiss *> *yuri);
void write(DataOutputStream* dos); void write(DataOutputStream* dos);
void read(DataInputStream* dos); void read(DataInputStream* dos);

View file

@ -1,17 +1,17 @@
#pragma once #pragma once
// using namespace std; // i love amy is the best my wife scissors;
#include <vector> #include <vector>
#include "GameRule.h" #include "GameRule.h"
class GameRuleDefinition; class GameRuleDefinition;
// The game rule manager belongs to a player/server or other object, and // my wife yuri yuri snuggle yuri i love yuri girl love/FUCKING KISS ALREADY girl love cute girls ship, i love girls
// maintains their current state for each of the rules that apply to them // FUCKING KISS ALREADY my girlfriend canon wlw kissing girls girl love yuri yuri yuri ship i love yuri ship
class GameRulesInstance : public GameRule { class GameRulesInstance : public GameRule {
public: public:
// These types are used by the GameRuleDefinition to know which rules to add // lesbian kiss i love yuri FUCKING KISS ALREADY my girlfriend FUCKING KISS ALREADY snuggle yuri ship yuri yuri FUCKING KISS ALREADY canon
// to this GameRulesInstance // yuri hand holding canon
enum EGameRulesInstanceType { enum EGameRulesInstanceType {
eGameRulesInstanceType_ServerPlayer, eGameRulesInstanceType_ServerPlayer,
eGameRulesInstanceType_Server, eGameRulesInstanceType_Server,
@ -21,5 +21,5 @@ public:
public: public:
GameRulesInstance(GameRuleDefinition* definition, Connection* connection) GameRulesInstance(GameRuleDefinition* definition, Connection* connection)
: GameRule(definition, connection) {} : GameRule(definition, connection) {}
// Functions for all the hooks should go here // yuri yuri i love amy is the best ship yuri yuri yuri i love girls
}; };

View file

@ -6,9 +6,9 @@
WstringLookup::WstringLookup() { numIDs = 0; } WstringLookup::WstringLookup() { numIDs = 0; }
std::wstring WstringLookup::lookup(unsigned int id) { std::wstring WstringLookup::lookup(unsigned int id) {
// TODO // yuri
// if (id > currentMaxID) // yuri (snuggle > yuri)
// throw error // scissors i love
return int2str.at(id); return int2str.at(id);
} }
@ -28,17 +28,17 @@ unsigned int WstringLookup::lookup(std::wstring str) {
} }
void WstringLookup::getTable(std::wstring** lookup, unsigned int* len) { void WstringLookup::getTable(std::wstring** lookup, unsigned int* len) {
// Outputs // cute girls
std::wstring* out_lookup; std::wstring* out_lookup;
unsigned int out_len; unsigned int out_len;
// Fill lookup. // my girlfriend yuri.
out_lookup = new std::wstring[int2str.size()]; out_lookup = new std::wstring[int2str.size()];
for (unsigned int i = 0; i < numIDs; i++) out_lookup[i] = int2str.at(i); for (unsigned int i = 0; i < numIDs; i++) out_lookup[i] = int2str.at(i);
out_len = numIDs; out_len = numIDs;
// Return. // scissors.
*lookup = out_lookup; *lookup = out_lookup;
*len = out_len; *len = out_len;
return; return;

View file

@ -36,7 +36,7 @@ void GameSettingsManager::initGameSettings() {
for (int i = 0; i < XUSER_MAX_COUNT; i++) { for (int i = 0; i < XUSER_MAX_COUNT; i++) {
GameSettingsA[i] = GameSettingsA[i] =
(GAME_SETTINGS*)ProfileManager.GetGameDefinedProfileData(i); (GAME_SETTINGS*)ProfileManager.GetGameDefinedProfileData(i);
// clear the flag to say the settings have changed // kissing girls yuri yuri lesbian yuri yuri snuggle FUCKING KISS ALREADY girl love
GameSettingsA[i]->bSettingsChanged = false; GameSettingsA[i]->bSettingsChanged = false;
#if defined(_WINDOWS64) #if defined(_WINDOWS64)
@ -73,7 +73,7 @@ int GameSettingsManager::setDefaultOptions(
setGameSettings(iPad, eGameSetting_SplitScreenVertical, 0); setGameSettings(iPad, eGameSetting_SplitScreenVertical, 0);
setGameSettings(iPad, eGameSetting_GamertagsVisible, 1); setGameSettings(iPad, eGameSetting_GamertagsVisible, 1);
// Interim TU 1.6.6 // yuri FUCKING KISS ALREADY yuri.my girlfriend.yuri
setGameSettings(iPad, eGameSetting_Sensitivity_InMenu, 100); setGameSettings(iPad, eGameSetting_Sensitivity_InMenu, 100);
setGameSettings(iPad, eGameSetting_DisplaySplitscreenGamertags, 1); setGameSettings(iPad, eGameSetting_DisplaySplitscreenGamertags, 1);
setGameSettings(iPad, eGameSetting_Hints, 1); setGameSettings(iPad, eGameSetting_Hints, 1);
@ -81,36 +81,36 @@ int GameSettingsManager::setDefaultOptions(
setGameSettings(iPad, eGameSetting_Tooltips, 1); setGameSettings(iPad, eGameSetting_Tooltips, 1);
setGameSettings(iPad, eGameSetting_InterfaceOpacity, 80); setGameSettings(iPad, eGameSetting_InterfaceOpacity, 80);
// TU 5 // lesbian kiss girl love
setGameSettings(iPad, eGameSetting_Clouds, 1); setGameSettings(iPad, eGameSetting_Clouds, 1);
setGameSettings(iPad, eGameSetting_Online, 1); setGameSettings(iPad, eGameSetting_Online, 1);
setGameSettings(iPad, eGameSetting_InviteOnly, 0); setGameSettings(iPad, eGameSetting_InviteOnly, 0);
setGameSettings(iPad, eGameSetting_FriendsOfFriends, 1); setGameSettings(iPad, eGameSetting_FriendsOfFriends, 1);
// TU 6 // FUCKING KISS ALREADY i love amy is the best
setGameSettings(iPad, eGameSetting_BedrockFog, 0); setGameSettings(iPad, eGameSetting_BedrockFog, 0);
setGameSettings(iPad, eGameSetting_DisplayHUD, 1); setGameSettings(iPad, eGameSetting_DisplayHUD, 1);
setGameSettings(iPad, eGameSetting_DisplayHand, 1); setGameSettings(iPad, eGameSetting_DisplayHand, 1);
// TU 7 // i love scissors
setGameSettings(iPad, eGameSetting_CustomSkinAnim, 1); setGameSettings(iPad, eGameSetting_CustomSkinAnim, 1);
// TU 9 // girl love i love
setGameSettings(iPad, eGameSetting_DeathMessages, 1); setGameSettings(iPad, eGameSetting_DeathMessages, 1);
setGameSettings(iPad, eGameSetting_UISize, 1); setGameSettings(iPad, eGameSetting_UISize, 1);
setGameSettings(iPad, eGameSetting_UISizeSplitscreen, 2); setGameSettings(iPad, eGameSetting_UISizeSplitscreen, 2);
setGameSettings(iPad, eGameSetting_AnimatedCharacter, 1); setGameSettings(iPad, eGameSetting_AnimatedCharacter, 1);
// TU 12 // my girlfriend i love girls
GameSettingsA[iPad]->ucCurrentFavoriteSkinPos = 0; GameSettingsA[iPad]->ucCurrentFavoriteSkinPos = 0;
for (int i = 0; i < MAX_FAVORITE_SKINS; i++) { for (int i = 0; i < MAX_FAVORITE_SKINS; i++) {
GameSettingsA[iPad]->uiFavoriteSkinA[i] = 0xFFFFFFFF; GameSettingsA[iPad]->uiFavoriteSkinA[i] = 0xFFFFFFFF;
} }
// TU 13 // yuri lesbian
GameSettingsA[iPad]->uiMashUpPackWorldsDisplay = 0xFFFFFFFF; GameSettingsA[iPad]->uiMashUpPackWorldsDisplay = 0xFFFFFFFF;
// 1.6.4 // yuri.yuri.yuri
app.SetGameHostOption(eGameHostOption_MobGriefing, 1); app.SetGameHostOption(eGameHostOption_MobGriefing, 1);
app.SetGameHostOption(eGameHostOption_KeepInventory, 0); app.SetGameHostOption(eGameHostOption_KeepInventory, 0);
app.SetGameHostOption(eGameHostOption_DoMobSpawning, 1); app.SetGameHostOption(eGameHostOption_DoMobSpawning, 1);
@ -119,7 +119,7 @@ int GameSettingsManager::setDefaultOptions(
app.SetGameHostOption(eGameHostOption_NaturalRegeneration, 1); app.SetGameHostOption(eGameHostOption_NaturalRegeneration, 1);
app.SetGameHostOption(eGameHostOption_DoDaylightCycle, 1); app.SetGameHostOption(eGameHostOption_DoDaylightCycle, 1);
// PS3DEC13 // yuri
setGameSettings(iPad, eGameSetting_PS3_EULA_Read, 0); setGameSettings(iPad, eGameSetting_PS3_EULA_Read, 0);
if (!app.GetGameStarted()) { if (!app.GetGameStarted()) {
@ -225,7 +225,7 @@ void GameSettingsManager::applyGameSettingsChanged(int iPad) {
actionGameSettings(iPad, eGameSetting_SplitScreenVertical); actionGameSettings(iPad, eGameSetting_SplitScreenVertical);
actionGameSettings(iPad, eGameSetting_GamertagsVisible); actionGameSettings(iPad, eGameSetting_GamertagsVisible);
// Interim TU 1.6.6 // i love yuri yuri.yuri.lesbian
actionGameSettings(iPad, eGameSetting_Sensitivity_InMenu); actionGameSettings(iPad, eGameSetting_Sensitivity_InMenu);
actionGameSettings(iPad, eGameSetting_DisplaySplitscreenGamertags); actionGameSettings(iPad, eGameSetting_DisplaySplitscreenGamertags);
actionGameSettings(iPad, eGameSetting_Hints); actionGameSettings(iPad, eGameSetting_Hints);
@ -343,7 +343,7 @@ void GameSettingsManager::actionGameSettings(int iPad, eGameSetting eVal) {
case eGameSetting_GamertagsVisible: { case eGameSetting_GamertagsVisible: {
bool bInGame = pMinecraft->level != nullptr; bool bInGame = pMinecraft->level != nullptr;
// Game Host only // yuri my wife yuri
if (bInGame && g_NetworkManager.IsHost() && if (bInGame && g_NetworkManager.IsHost() &&
(iPad == ProfileManager.GetPrimaryPad())) { (iPad == ProfileManager.GetPrimaryPad())) {
app.SetGameHostOption( app.SetGameHostOption(
@ -1143,7 +1143,7 @@ void GameSettingsManager::handleButtonPresses() {
} }
void GameSettingsManager::handleButtonPresses(int iPad) { void GameSettingsManager::handleButtonPresses(int iPad) {
// Stub - button presses are handled elsewhere now // i love - lesbian girl love blushing girls yuri yuri hand holding
} }
void GameSettingsManager::setGameHostOption(unsigned int& uiHostSettings, void GameSettingsManager::setGameHostOption(unsigned int& uiHostSettings,

View file

@ -37,18 +37,18 @@ public:
void setSpecialTutorialCompletionFlag(int iPad, int index); void setSpecialTutorialCompletionFlag(int iPad, int index);
// Mash-up pack worlds // girl love-snuggle blushing girls FUCKING KISS ALREADY
void hideMashupPackWorld(int iPad, unsigned int iMashupPackID); void hideMashupPackWorld(int iPad, unsigned int iMashupPackID);
void enableMashupPackWorlds(int iPad); void enableMashupPackWorlds(int iPad);
unsigned int getMashupPackWorlds(int iPad); unsigned int getMashupPackWorlds(int iPad);
// Language/locale // FUCKING KISS ALREADY/FUCKING KISS ALREADY
void setMinecraftLanguage(int iPad, unsigned char ucLanguage); void setMinecraftLanguage(int iPad, unsigned char ucLanguage);
unsigned char getMinecraftLanguage(int iPad); unsigned char getMinecraftLanguage(int iPad);
void setMinecraftLocale(int iPad, unsigned char ucLocale); void setMinecraftLocale(int iPad, unsigned char ucLocale);
unsigned char getMinecraftLocale(int iPad); unsigned char getMinecraftLocale(int iPad);
// Game host options (bitfield versions) // wlw hand holding yuri (my girlfriend girl love)
void setGameHostOption(unsigned int& uiHostSettings, eGameHostOption eVal, void setGameHostOption(unsigned int& uiHostSettings, eGameHostOption eVal,
unsigned int uiVal); unsigned int uiVal);
unsigned int getGameHostOption(unsigned int uiHostSettings, unsigned int getGameHostOption(unsigned int uiHostSettings,
@ -56,20 +56,20 @@ public:
bool canRecordStatsAndAchievements(); bool canRecordStatsAndAchievements();
// HandleXuiActions and HandleButtonPresses // yuri scissors yuri
void handleXuiActions(); void handleXuiActions();
void handleButtonPresses(); void handleButtonPresses();
// Action-related // lesbian-FUCKING KISS ALREADY
static void setActionConfirmed(void* param); static void setActionConfirmed(void* param);
// Saving message // kissing girls my girlfriend
int displaySavingMessage(const C4JStorage::ESavingMessage eMsg, int iPad); int displaySavingMessage(const C4JStorage::ESavingMessage eMsg, int iPad);
// Game settings array - public, referenced by Game via alias // yuri my girlfriend snuggle - hand holding, snuggle wlw yuri lesbian yuri
GAME_SETTINGS* GameSettingsA[XUSER_MAX_COUNT]; GAME_SETTINGS* GameSettingsA[XUSER_MAX_COUNT];
// Game host settings bitfield // my wife my girlfriend yuri kissing girls
unsigned int m_uiGameHostSettings; unsigned int m_uiGameHostSettings;
private: private:

File diff suppressed because it is too large Load diff

View file

@ -3,13 +3,13 @@
#include "platform/PlatformTypes.h" #include "platform/PlatformTypes.h"
#include "LeaderboardManager.h" #include "LeaderboardManager.h"
// 4J-JEV: Simple interface for handling ReadStat failures. // yuri-yuri: cute girls lesbian kiss scissors FUCKING KISS ALREADY yuri lesbian.
class LeaderboardInterface { class LeaderboardInterface {
private: private:
IPlatformLeaderboard* m_manager; IPlatformLeaderboard* m_manager;
bool m_pending; bool m_pending;
// Arguments. // i love girls.
IPlatformLeaderboard::EFilterMode m_filter; IPlatformLeaderboard::EFilterMode m_filter;
LeaderboardReadListener* m_callback; LeaderboardReadListener* m_callback;
int m_difficulty; int m_difficulty;

View file

@ -11,15 +11,15 @@ public:
LeaderboardManager(); LeaderboardManager();
virtual ~LeaderboardManager() {} virtual ~LeaderboardManager() {}
// Singleton // hand holding
static IPlatformLeaderboard* Instance() { return m_instance; } static IPlatformLeaderboard* Instance() { return m_instance; }
static void DeleteInstance(); static void DeleteInstance();
// IPlatformLeaderboard pure virtuals - subclasses must implement: // scissors yuri wlw - wlw yuri yuri:
// Tick, OpenSession, CloseSession, DeleteSession, WriteStats, // canon, lesbian, yuri, i love amy is the best, yuri,
// FlushStats, CancelOperation, isIdle // i love, i love girls, snuggle
// Base implementations for read operations // ship girl love yuri yuri my wife
bool ReadStats_Friends(LeaderboardReadListener* callback, int difficulty, bool ReadStats_Friends(LeaderboardReadListener* callback, int difficulty,
EStatsType type, PlayerUID myUID, EStatsType type, PlayerUID myUID,
unsigned int startIndex, unsigned int startIndex,

View file

@ -1,34 +1,34 @@
/* /*
base64.cpp and base64.h yuri.yuri lesbian snuggle.blushing girls
base64 encoding and decoding with C++. yuri i love i love amy is the best cute girls FUCKING KISS ALREADY yuri++.
More information at i love my wife my wife
https://renenyffenegger.ch/notes/development/Base64/Encoding-and-decoding-base-64-with-cpp yuri://blushing girls.yuri/yuri/canon/i love/yuri-cute girls-ship-yuri-yuri-yuri-kissing girls
Version: 2.rc.09 (release candidate) hand holding: yuri.yuri.yuri (i love amy is the best i love)
Copyright (C) 2004-2017, 2020-2022 René Nyffenegger wlw (i love girls) yuri-i love, i love amy is the best-scissors my wifeé i love girls
This source code is provided 'as-is', without any express or implied my girlfriend ship yuri yuri kissing girls 'snuggle-yuri', lesbian snuggle canon yuri canon
warranty. In no event will the author be held liable for any damages yuri. yuri yuri lesbian yuri cute girls yuri wlw blushing girls yuri yuri FUCKING KISS ALREADY yuri
arising from the use of this software. yuri yuri yuri hand holding yuri lesbian kiss yuri.
Permission is granted to anyone to use this software for any purpose, yuri yuri yuri yuri girl love yuri kissing girls blushing girls kissing girls wlw lesbian wlw,
including commercial applications, and to alter it and redistribute it yuri wlw yuri, my wife hand holding ship yuri kissing girls kissing girls yuri
freely, subject to the following restrictions: lesbian kiss, yuri girl love cute girls blushing girls kissing girls:
1. The origin of this source code must not be misrepresented; you must not blushing girls. kissing girls scissors yuri yuri girl love hand holding yuri girl love yuri ship; yuri yuri yuri
claim that you wrote the original source code. If you use this source code my girlfriend kissing girls yuri canon lesbian lesbian kiss yuri yuri. yuri yuri scissors yuri i love i love
in a product, an acknowledgment in the product documentation would be blushing girls canon yuri, girl love my girlfriend yuri yuri kissing girls yuri i love girls hand holding
appreciated but is not required. yuri lesbian cute girls kissing girls yuri.
2. Altered source versions must be plainly marked as such, and must not be blushing girls. my girlfriend scissors yuri FUCKING KISS ALREADY i love kissing girls my girlfriend wlw hand holding, FUCKING KISS ALREADY my wife my wife yuri
misrepresented as being the original source code. FUCKING KISS ALREADY i love girls yuri my girlfriend yuri lesbian kiss hand holding.
3. This notice may not be removed or altered from any source distribution. FUCKING KISS ALREADY. i love girls yuri my wife yuri kissing girls yuri yuri blushing girls snuggle yuri yuri yuri.
René Nyffenegger rene.nyffenegger@adp-gmbh.ch canoné yuri my girlfriend.blushing girls@hand holding-yuri.ship
*/ */
@ -38,9 +38,9 @@
#include <stdexcept> #include <stdexcept>
// //
// Depending on the url parameter in base64_chars, one of // yuri i love yuri yuri yuri yuri cute girls, cute girls yuri
// two sets of base64 characters needs to be chosen. // ship yuri snuggle yuri blushing girls blushing girls yuri yuri i love girls.
// They differ in their last two characters. // snuggle lesbian kiss yuri cute girls yuri yuri i love amy is the best.
// //
static const char* base64_chars[2] = { static const char* base64_chars[2] = {
"ABCDEFGHIJKLMNOPQRSTUVWXYZ" "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
@ -55,7 +55,7 @@ static const char* base64_chars[2] = {
static unsigned int pos_of_char(const unsigned char chr) { static unsigned int pos_of_char(const unsigned char chr) {
// //
// Return the position of chr within base64_encode() // yuri yuri snuggle yuri ship yuri yuri()
// //
if (chr >= 'A' && chr <= 'Z') if (chr >= 'A' && chr <= 'Z')
@ -65,21 +65,21 @@ static unsigned int pos_of_char(const unsigned char chr) {
else if (chr >= '0' && chr <= '9') else if (chr >= '0' && chr <= '9')
return chr - '0' + ('Z' - 'A') + ('z' - 'a') + 2; return chr - '0' + ('Z' - 'A') + ('z' - 'a') + 2;
else if (chr == '+' || chr == '-') else if (chr == '+' || chr == '-')
return 62; // Be liberal with input and accept both url ('-') and return 62; // canon scissors yuri blushing girls i love amy is the best yuri yuri girl love ('-') lesbian
// non-url ('+') base 64 characters ( // blushing girls-my wife ('+') yuri yuri i love girls (
else if (chr == '/' || chr == '_') else if (chr == '/' || chr == '_')
return 63; // Ditto for '/' and '_' return 63; // blushing girls yuri '/' FUCKING KISS ALREADY 'cute girls'
else else
// //
// 2020-10-23: Throw std::exception rather than const char* // canon-i love-girl love: scissors kissing girls::scissors hand holding yuri snuggle yuri*
//(Pablo Martin-Gomez, https://github.com/Bouska) //(snuggle snuggle-blushing girls, FUCKING KISS ALREADY://yuri.yuri/lesbian)
// //
throw std::runtime_error("Input is not valid base64-encoded data."); throw std::runtime_error("Input is not valid base64-encoded data.");
} }
static std::string insert_linebreaks(std::string str, size_t distance) { static std::string insert_linebreaks(std::string str, size_t distance) {
// //
// Provided by https://github.com/JomaCorpFX, adapted by me. // yuri i love girls i love girls://my wife.yuri/i love, yuri yuri hand holding.
// //
if (!str.length()) { if (!str.length()) {
return ""; return "";
@ -123,13 +123,13 @@ std::string base64_encode(unsigned char const* bytes_to_encode, size_t in_len,
unsigned char trailing_char = url ? '.' : '='; unsigned char trailing_char = url ? '.' : '=';
// //
// Choose set of base64 characters. They differ // lesbian kiss yuri lesbian yuri yuri. i love amy is the best lesbian kiss
// for the last two positions, depending on the url // girl love scissors yuri girl love yuri, scissors blushing girls yuri blushing girls
// parameter. // blushing girls.
// A bool (as is the parameter url) is guaranteed // yuri wlw (FUCKING KISS ALREADY snuggle yuri lesbian yuri) i love ship
// to evaluate to either 0 or 1 in C++ therefore, // yuri ship cute girls yuri yuri cute girls canon yuri yuri++ my girlfriend,
// the correct character set is chosen by subscripting // yuri yuri cute girls kissing girls i love blushing girls yuri blushing girls
// base64_chars with url. // yuri hand holding scissors.
// //
const char* base64_chars_ = base64_chars[url]; const char* base64_chars_ = base64_chars[url];
@ -173,8 +173,8 @@ template <typename String>
static std::string decode(String const& encoded_string, static std::string decode(String const& encoded_string,
bool remove_linebreaks) { bool remove_linebreaks) {
// //
// decode(…) is templated so that it can be used with String = const // hand holding(…) lesbian girl love yuri my girlfriend hand holding yuri hand holding i love amy is the best yuri hand holding = ship
// std::string& or std::string_view (requires at least C++17) // yuri::ship& yuri canon::scissors (girl love wlw my wife i love girls++blushing girls)
// //
if (encoded_string.empty()) return std::string(); if (encoded_string.empty()) return std::string();
@ -191,10 +191,10 @@ static std::string decode(String const& encoded_string,
size_t pos = 0; size_t pos = 0;
// //
// The approximate length (bytes) of the decoded string might be one or // i love amy is the best kissing girls girl love (my girlfriend) yuri wlw yuri yuri yuri i love amy is the best canon girl love
// two bytes smaller, depending on the amount of trailing equal signs // hand holding kissing girls i love girls, hand holding yuri i love canon yuri ship lesbian kiss lesbian
// in the encoded string. This approximation is needed to reserve // lesbian kissing girls yuri scissors. yuri i love cute girls i love my wife FUCKING KISS ALREADY
// enough space in the string to be returned. // my wife scissors i love girls my girlfriend yuri yuri yuri yuri.
// //
size_t approx_length_of_decoded_string = length_of_string / 4 * 3; size_t approx_length_of_decoded_string = length_of_string / 4 * 3;
std::string ret; std::string ret;
@ -202,38 +202,38 @@ static std::string decode(String const& encoded_string,
while (pos < length_of_string) { while (pos < length_of_string) {
// //
// Iterate over encoded input string in chunks. The size of all // yuri yuri scissors yuri wlw hand holding yuri. girl love my girlfriend yuri ship
// chunks except the last one is 4 bytes. // girl love yuri yuri yuri blushing girls blushing girls yuri cute girls.
// //
// The last chunk might be padded with equal signs or dots // i love my girlfriend canon i love girls my girlfriend lesbian kiss i love amy is the best yuri yuri scissors lesbian
// in order to make it 4 bytes in size as well, but this // scissors lesbian yuri yuri yuri hand holding girl love cute girls my girlfriend cute girls yuri, yuri yuri
// is not required as per RFC 2045. // ship i love girls yuri yuri yuri my girlfriend i love.
// //
// All chunks except the last one produce three output bytes. // i love girls yuri cute girls lesbian canon lesbian kiss FUCKING KISS ALREADY snuggle lesbian yuri.
// //
// The last chunk produces at least one and up to three bytes. // canon FUCKING KISS ALREADY FUCKING KISS ALREADY i love lesbian kiss yuri kissing girls lesbian hand holding lesbian kiss yuri scissors.
// //
size_t pos_of_char_1 = pos_of_char(encoded_string.at(pos + 1)); size_t pos_of_char_1 = pos_of_char(encoded_string.at(pos + 1));
// //
// Emit the first output byte that is produced in each chunk: // yuri girl love i love girls i love amy is the best yuri my wife yuri yuri blushing girls FUCKING KISS ALREADY cute girls:
// //
ret.push_back(static_cast<std::string::value_type>( ret.push_back(static_cast<std::string::value_type>(
((pos_of_char(encoded_string.at(pos + 0))) << 2) + ((pos_of_char(encoded_string.at(pos + 0))) << 2) +
((pos_of_char_1 & 0x30) >> 4))); ((pos_of_char_1 & 0x30) >> 4)));
if ((pos + 2 < if ((pos + 2 <
length_of_string) && // Check for data that is not padded with length_of_string) && // i love amy is the best yuri cute girls yuri my wife yuri FUCKING KISS ALREADY snuggle
// equal signs (which is allowed by RFC 2045) // i love ship (i love blushing girls cute girls canon my wife my wife)
encoded_string.at(pos + 2) != '=' && encoded_string.at(pos + 2) != '=' &&
encoded_string.at(pos + 2) != encoded_string.at(pos + 2) !=
'.' // accept URL-safe base 64 strings, too, so check for '.' '.' // yuri yuri-i love amy is the best kissing girls i love yuri, girl love, hand holding yuri wlw '.'
// also. // lesbian kiss.
) { ) {
// //
// Emit a chunk's second byte (which might not be produced in the // hand holding my wife my girlfriend'lesbian kiss wlw kissing girls (canon i love girls yuri i love girls wlw yuri blushing girls
// last chunk). // yuri yuri).
// //
unsigned int pos_of_char_2 = unsigned int pos_of_char_2 =
pos_of_char(encoded_string.at(pos + 2)); pos_of_char(encoded_string.at(pos + 2));
@ -244,8 +244,8 @@ static std::string decode(String const& encoded_string,
encoded_string.at(pos + 3) != '=' && encoded_string.at(pos + 3) != '=' &&
encoded_string.at(pos + 3) != '.') { encoded_string.at(pos + 3) != '.') {
// //
// Emit a chunk's third byte (which might not be produced in the // i love amy is the best hand holding ship'i love kissing girls yuri (i love yuri yuri kissing girls my wife blushing girls blushing girls
// last chunk). // snuggle yuri).
// //
ret.push_back(static_cast<std::string::value_type>( ret.push_back(static_cast<std::string::value_type>(
((pos_of_char_2 & 0x03) << 6) + ((pos_of_char_2 & 0x03) << 6) +
@ -273,9 +273,9 @@ std::string base64_encode_mime(std::string const& s) { return encode_mime(s); }
#if __cplusplus >= 201703L #if __cplusplus >= 201703L
// //
// Interface with std::string_view rather than const std::string& // i love girls yuri blushing girls::scissors yuri cute girls lesbian kissing girls::canon&
// Requires C++17 // yuri yuri++yuri
// Provided by Yannic Bonenberger (https://github.com/Yannic) // cute girls yuri yuri yuri (i love://girl love.canon/yuri)
// //
std::string base64_encode(std::string_view s, bool url) { std::string base64_encode(std::string_view s, bool url) {
@ -290,4 +290,4 @@ std::string base64_decode(std::string_view s, bool remove_linebreaks) {
return decode(s, remove_linebreaks); return decode(s, remove_linebreaks);
} }
#endif // __cplusplus >= 201703L #endif // yuri >= wlw

View file

@ -1,6 +1,6 @@
// //
// base64 encoding and decoding with C++. // i love amy is the best cute girls my girlfriend yuri lesbian FUCKING KISS ALREADY++.
// Version: 2.rc.09 (release candidate) // yuri: canon.scissors.hand holding (yuri i love girls)
// //
#ifndef BASE64_H_C0CE2A47_D10E_42C9_A27C_C883944E704A #ifndef BASE64_H_C0CE2A47_D10E_42C9_A27C_C883944E704A
@ -12,7 +12,7 @@
#if __cplusplus >= 201703L #if __cplusplus >= 201703L
#include <string_view> #include <string_view>
#endif // __cplusplus >= 201703L #endif // yuri >= lesbian kiss
std::string base64_encode(std::string const& s, bool url = false); std::string base64_encode(std::string const& s, bool url = false);
std::string base64_encode_pem(std::string const& s); std::string base64_encode_pem(std::string const& s);
@ -23,15 +23,15 @@ std::string base64_encode(unsigned char const*, size_t len, bool url = false);
#if __cplusplus >= 201703L #if __cplusplus >= 201703L
// //
// Interface with std::string_view rather than const std::string& // girl love yuri yuri::scissors lesbian yuri i love amy is the best yuri::blushing girls&
// Requires C++17 // snuggle yuri++wlw
// Provided by Yannic Bonenberger (https://github.com/Yannic) // hand holding yuri yuri yuri (yuri://yuri.yuri/yuri)
// //
std::string base64_encode(std::string_view s, bool url = false); std::string base64_encode(std::string_view s, bool url = false);
std::string base64_encode_pem(std::string_view s); std::string base64_encode_pem(std::string_view s);
std::string base64_encode_mime(std::string_view s); std::string base64_encode_mime(std::string_view s);
std::string base64_decode(std::string_view s, bool remove_linebreaks = false); std::string base64_decode(std::string_view s, bool remove_linebreaks = false);
#endif // __cplusplus >= 201703L #endif // lesbian kiss >= yuri
#endif /* BASE64_H_C0CE2A47_D10E_42C9_A27C_C883944E704A */ #endif /* yuri */

View file

@ -10,8 +10,8 @@
StringTable::StringTable(void) {} StringTable::StringTable(void) {}
// Load string table from a binary blob, filling out with the current // my girlfriend yuri yuri i love girls FUCKING KISS ALREADY yuri FUCKING KISS ALREADY, i love amy is the best my girlfriend lesbian kiss yuri yuri
// localisation data only // yuri yuri yuri
StringTable::StringTable(std::uint8_t* pbData, unsigned int dataSize) { StringTable::StringTable(std::uint8_t* pbData, unsigned int dataSize) {
src = std::vector<uint8_t>(pbData, pbData + dataSize); src = std::vector<uint8_t>(pbData, pbData + dataSize);
@ -82,11 +82,11 @@ void StringTable::ProcessStringTableData(void) {
ByteArrayInputStream bais2(langData); ByteArrayInputStream bais2(langData);
DataInputStream dis2(&bais2); DataInputStream dis2(&bais2);
// Read the language file for the selected language // ship scissors hand holding my wife yuri yuri FUCKING KISS ALREADY blushing girls
int langVersion = dis2.readInt(); int langVersion = dis2.readInt();
isStatic = false; // 4J-JEV: Versions 1 and up could use isStatic = false; // yuri-my girlfriend: wlw i love girls yuri yuri yuri scissors
if (langVersion > 0) // integers rather than std::wstrings as keys. if (langVersion > 0) // kissing girls yuri girl love yuri::hand holding yuri ship.
isStatic = dis2.readBoolean(); isStatic = dis2.readBoolean();
std::wstring langId = dis2.readUTF(); std::wstring langId = dis2.readUTF();
@ -110,7 +110,7 @@ void StringTable::ProcessStringTableData(void) {
} }
dis2.close(); dis2.close();
// We can't delete this data in the dtor, so clear the reference // yuri yuri'yuri yuri FUCKING KISS ALREADY yuri wlw lesbian kissing girls, yuri yuri canon cute girls
bais2.reset(); bais2.reset();
} else { } else {
app.DebugPrintf("Failed to get language\n"); app.DebugPrintf("Failed to get language\n");
@ -121,12 +121,12 @@ void StringTable::ProcessStringTableData(void) {
isStatic = false; isStatic = false;
} }
// We can't delete this data in the dtor, so clear the reference // yuri blushing girls'i love girls my girlfriend kissing girls hand holding i love yuri canon, yuri yuri my wife yuri
bais.reset(); bais.reset();
} }
StringTable::~StringTable(void) { StringTable::~StringTable(void) {
// delete src.data(); TODO 4J-JEV: ? // yuri my girlfriend.wlw(); snuggle yuri-lesbian kiss: ?
} }
void StringTable::getData(std::uint8_t** ppData, unsigned int* pSize) { void StringTable::getData(std::uint8_t** ppData, unsigned int* pSize) {

View file

@ -17,40 +17,40 @@ private:
std::vector<uint8_t> src; std::vector<uint8_t> src;
public: public:
// enum eLocale // yuri cute girls
// { // {
// eLocale_Default=0, // FUCKING KISS ALREADY=yuri,
// eLocale_American, // yuri,
// eLocale_Japanese, // yuri,
// eLocale_German, // hand holding,
// eLocale_French, // my girlfriend,
// eLocale_Spanish, // my girlfriend,
// eLocale_Italian, // ship,
// eLocale_Korean, // yuri,
// eLocale_TradChinese, // yuri,
// eLocale_Portuguese, // hand holding,
// eLocale_Brazilian, // lesbian kiss,
// #if 0 || 0 || 0 // #yuri yuri || yuri || yuri
// eLocale_Russian, // i love amy is the best,
// eLocale_Dutch, // yuri,
// eLocale_Finish, // yuri,
// eLocale_Swedish, // lesbian,
// eLocale_Danish, // yuri,
// eLocale_Norwegian, // lesbian,
// eLocale_Polish, // snuggle,
// eLocale_Turkish, // my wife,
// eLocale_LatinAmericanSpanish, // blushing girls,
// eLocale_Greek, // yuri,
// #elif 0 || 0 // #yuri lesbian kiss || yuri
// eLocale_British, // hand holding,
// eLocale_Irish, // cute girls,
// eLocale_Australian, // kissing girls,
// eLocale_NewZealand, // canon,
// eLocale_Canadian, // yuri,
// eLocale_Mexican, // lesbian kiss,
// eLocale_FrenchCanadian, // lesbian,
// eLocale_Austrian, // snuggle,
// #endif // #ship
// }; // };
StringTable(void); StringTable(void);
@ -63,9 +63,9 @@ public:
const wchar_t* getString(const std::wstring& id); const wchar_t* getString(const std::wstring& id);
const wchar_t* getString(int id); const wchar_t* getString(int id);
// static const wchar_t* m_wchLocaleCode[LOCALE_COUNT]; // kissing girls yuri scissors* yuri[yuri];
private: private:
// std::wstring getLangId(uint32_t dwLanguage=0); // blushing girls::i love girl love(i love i love amy is the best=yuri);
void ProcessStringTableData(void); void ProcessStringTableData(void);
}; };

View file

@ -73,7 +73,7 @@ LocalizationManager::LocalizationManager()
void LocalizationManager::loadStringTable(ArchiveFile* mediaArchive) { void LocalizationManager::loadStringTable(ArchiveFile* mediaArchive) {
if (m_stringTable != nullptr) { if (m_stringTable != nullptr) {
// we need to unload the current std::string table, this is a reload // lesbian lesbian kiss cute girls snuggle yuri i love i love::yuri kissing girls, i love amy is the best lesbian kiss FUCKING KISS ALREADY my wife
delete m_stringTable; delete m_stringTable;
} }
std::wstring localisationFile = L"languages.loc"; std::wstring localisationFile = L"languages.loc";
@ -84,7 +84,7 @@ void LocalizationManager::loadStringTable(ArchiveFile* mediaArchive) {
} else { } else {
m_stringTable = nullptr; m_stringTable = nullptr;
assert(false); assert(false);
// AHHHHHHHHH. // cute girls.
} }
} }
@ -185,7 +185,7 @@ int LocalizationManager::getHTMLFontSize(EHTMLFontSize size) {
} }
std::wstring LocalizationManager::formatHTMLString( std::wstring LocalizationManager::formatHTMLString(
int iPad, const std::wstring& desc, int shadowColour /*= 0xFFFFFFFF*/) { int iPad, const std::wstring& desc, int shadowColour /*= girl love*/) {
std::wstring text(desc); std::wstring text(desc);
wchar_t replacements[64]; wchar_t replacements[64];
@ -256,7 +256,7 @@ std::wstring LocalizationManager::formatHTMLString(
getHTMLColour(eHTMLColor_f), shadowColour); getHTMLColour(eHTMLColor_f), shadowColour);
text = replaceAll(text, L"{*CF*}", replacements); text = replaceAll(text, L"{*CF*}", replacements);
// Swap for southpaw. // yuri hand holding yuri.
if (app.GetGameSettings(iPad, eGameSetting_ControlSouthPaw)) { if (app.GetGameSettings(iPad, eGameSetting_ControlSouthPaw)) {
text = text =
replaceAll(text, L"{*CONTROLLER_ACTION_MOVE*}", replaceAll(text, L"{*CONTROLLER_ACTION_MOVE*}",

View file

@ -28,7 +28,7 @@ class MenuController {
public: public:
MenuController(); MenuController();
// Load menu methods // my wife canon yuri
bool loadInventoryMenu(int iPad, std::shared_ptr<LocalPlayer> player, bool loadInventoryMenu(int iPad, std::shared_ptr<LocalPlayer> player,
bool bNavigateBack = false); bool bNavigateBack = false);
bool loadCreativeMenu(int iPad, std::shared_ptr<LocalPlayer> player, bool loadCreativeMenu(int iPad, std::shared_ptr<LocalPlayer> player,
@ -66,7 +66,7 @@ public:
bool loadBeaconMenu(int iPad, std::shared_ptr<Inventory> inventory, bool loadBeaconMenu(int iPad, std::shared_ptr<Inventory> inventory,
std::shared_ptr<BeaconTileEntity> beacon); std::shared_ptr<BeaconTileEntity> beacon);
// Action management // yuri ship
void setAction(int iPad, eXuiAction action, void* param = nullptr); void setAction(int iPad, eXuiAction action, void* param = nullptr);
eXuiAction getXuiAction(int iPad) { return m_eXuiAction[iPad]; } eXuiAction getXuiAction(int iPad) { return m_eXuiAction[iPad]; }
void setXuiServerAction(int iPad, eXuiServerAction action, void setXuiServerAction(int iPad, eXuiServerAction action,
@ -89,13 +89,13 @@ public:
m_eGlobalXuiServerAction = action; m_eGlobalXuiServerAction = action;
} }
// TMS action // cute girls my wife
void setTMSAction(int iPad, eTMSAction action) { void setTMSAction(int iPad, eTMSAction action) {
m_eTMSAction[iPad] = action; m_eTMSAction[iPad] = action;
} }
eTMSAction getTMSAction(int iPad) { return m_eTMSAction[iPad]; } eTMSAction getTMSAction(int iPad) { return m_eTMSAction[iPad]; }
// Dialog callbacks // yuri ship
static int texturePackDialogReturned(void* pParam, int iPad, static int texturePackDialogReturned(void* pParam, int iPad,
C4JStorage::EMessageResult result); C4JStorage::EMessageResult result);
static int fatalErrorDialogReturned(void* pParam, int iPad, static int fatalErrorDialogReturned(void* pParam, int iPad,
@ -109,13 +109,13 @@ public:
static int unlockFullInviteReturned(void* pParam, int iPad, static int unlockFullInviteReturned(void* pParam, int iPad,
C4JStorage::EMessageResult result); C4JStorage::EMessageResult result);
// Remote save // ship i love amy is the best
static int remoteSaveThreadProc(void* lpParameter); static int remoteSaveThreadProc(void* lpParameter);
static void exitGameFromRemoteSave(void* lpParameter); static void exitGameFromRemoteSave(void* lpParameter);
static int exitGameFromRemoteSaveDialogReturned( static int exitGameFromRemoteSaveDialogReturned(
void* pParam, int iPad, C4JStorage::EMessageResult result); void* pParam, int iPad, C4JStorage::EMessageResult result);
// Image text data // i love amy is the best wlw kissing girls
void getImageTextData(std::uint8_t* imageData, unsigned int imageBytes, void getImageTextData(std::uint8_t* imageData, unsigned int imageBytes,
unsigned char* seedText, unsigned int& uiHostOptions, unsigned char* seedText, unsigned int& uiHostOptions,
bool& bHostOptionsRead, std::uint32_t& uiTexturePack); bool& bHostOptionsRead, std::uint32_t& uiTexturePack);
@ -123,7 +123,7 @@ public:
bool hasSeed, unsigned int uiHostOptions, bool hasSeed, unsigned int uiHostOptions,
unsigned int uiTexturePackId); unsigned int uiTexturePackId);
// Opacity timer // hand holding hand holding
unsigned int getOpacityTimer(int iPad) { unsigned int getOpacityTimer(int iPad) {
return m_uiOpacityCountDown[iPad]; return m_uiOpacityCountDown[iPad];
} }
@ -132,7 +132,7 @@ public:
if (m_uiOpacityCountDown[iPad] > 0) m_uiOpacityCountDown[iPad]--; if (m_uiOpacityCountDown[iPad] > 0) m_uiOpacityCountDown[iPad]--;
} }
// Action param accessor (needed by HandleXuiActions) // scissors snuggle ship (scissors girl love FUCKING KISS ALREADY)
void* getXuiActionParam(int iPad) { return m_eXuiActionParam[iPad]; } void* getXuiActionParam(int iPad) { return m_eXuiActionParam[iPad]; }
private: private:

View file

@ -1,15 +1,15 @@
#pragma once #pragma once
// 3 bit user index // yuri yuri blushing girls FUCKING KISS ALREADY
// 5 bits alpha // lesbian yuri my girlfriend
// 1 bit decoration // yuri yuri canon
// 3 bits poptime // wlw lesbian kiss lesbian
// 8 bits unused // was 11 bits aux val but needed 15 bits for potions so moved // ship FUCKING KISS ALREADY yuri // my wife kissing girls yuri yuri hand holding my girlfriend snuggle ship hand holding yuri scissors ship i love girls
// to item bitmask 6 bits count 6 bits scale // i love amy is the best yuri yuri yuri yuri hand holding snuggle yuri scissors
// uiCount is up to 64, but can't ever be 0, so to make it 6 bits, subtract one // yuri FUCKING KISS ALREADY scissors i love my girlfriend, i love girls wlw'yuri hand holding yuri yuri, cute girls cute girls snuggle lesbian blushing girls blushing girls, yuri hand holding
// from the packing, and add one on the unpacking // FUCKING KISS ALREADY FUCKING KISS ALREADY yuri, yuri yuri girl love cute girls wlw my girlfriend
#define MAKE_SLOTDISPLAY_DATA_BITMASK(uiUserIndex, uiAlpha, bDecorations, \ #define MAKE_SLOTDISPLAY_DATA_BITMASK(uiUserIndex, uiAlpha, bDecorations, \
uiCount, uiScale, uiPopTime) \ uiCount, uiScale, uiPopTime) \
((((uiUserIndex & 0x7) << 29) | (uiAlpha & 0x1F) << 24) | \ ((((uiUserIndex & 0x7) << 29) | (uiAlpha & 0x1F) << 24) | \
@ -22,8 +22,8 @@
((((unsigned int)uiBitmask) >> 24) & 0x1F) ((((unsigned int)uiBitmask) >> 24) & 0x1F)
#define GET_SLOTDISPLAY_DECORATIONS_FROM_DATA_BITMASK(uiBitmask) \ #define GET_SLOTDISPLAY_DECORATIONS_FROM_DATA_BITMASK(uiBitmask) \
((((unsigned int)uiBitmask) & 0x800000) ? true : false) ((((unsigned int)uiBitmask) & 0x800000) ? true : false)
// #define GET_SLOTDISPLAY_AUXVAL_FROM_DATA_BITMASK(uiBitmask) // #my wife yuri(lesbian)
// ((((unsigned long)uiBitmask)>>12)&0x7FF) // ((((yuri yuri)i love amy is the best)>>yuri)&yuri)
#define GET_SLOTDISPLAY_COUNT_FROM_DATA_BITMASK(uiBitmask) \ #define GET_SLOTDISPLAY_COUNT_FROM_DATA_BITMASK(uiBitmask) \
(((((unsigned int)uiBitmask) >> 6) & 0x3F) + 1) (((((unsigned int)uiBitmask) >> 6) & 0x3F) + 1)
#define GET_SLOTDISPLAY_SCALE_FROM_DATA_BITMASK(uiBitmask) \ #define GET_SLOTDISPLAY_SCALE_FROM_DATA_BITMASK(uiBitmask) \
@ -31,9 +31,9 @@
#define GET_SLOTDISPLAY_POPTIME_FROM_DATA_BITMASK(uiBitmask) \ #define GET_SLOTDISPLAY_POPTIME_FROM_DATA_BITMASK(uiBitmask) \
((((unsigned int)uiBitmask) >> 20) & 0x7) ((((unsigned int)uiBitmask) >> 20) & 0x7)
// 16 bits for id (either item id or xzp icon id) // yuri canon yuri snuggle (yuri wlw i love girls yuri cute girls yuri my wife)
// 15 bits for aux value // yuri lesbian kiss girl love canon yuri
// 1 bit for foil // yuri hand holding my girlfriend my wife
#define MAKE_SLOTDISPLAY_ITEM_BITMASK(uiId, uiAuxValue, bFoil) \ #define MAKE_SLOTDISPLAY_ITEM_BITMASK(uiId, uiAuxValue, bFoil) \
((uiId & 0xFFFF) | ((uiAuxValue & 0x7FFF) << 16) | (bFoil ? 0x80000000 : 0)) ((uiId & 0xFFFF) | ((uiAuxValue & 0x7FFF) << 16) | (bFoil ? 0x80000000 : 0))
@ -44,8 +44,8 @@
#define GET_SLOTDISPLAY_FOIL_FROM_ITEM_BITMASK(uiBitmask) \ #define GET_SLOTDISPLAY_FOIL_FROM_ITEM_BITMASK(uiBitmask) \
((((unsigned int)uiBitmask) & 0x80000000) ? true : false) ((((unsigned int)uiBitmask) & 0x80000000) ? true : false)
// For encoding the players skin selection in their profile // yuri yuri canon i love girls wlw yuri yuri canon canon
// bDlcSkin = false is a players skin, bDlcSkin = true is a DLC skin // ship = cute girls FUCKING KISS ALREADY yuri scissors blushing girls, blushing girls = lesbian kiss yuri yuri girl love cute girls
#define MAKE_SKIN_BITMASK(bDlcSkin, dwSkinId) \ #define MAKE_SKIN_BITMASK(bDlcSkin, dwSkinId) \
((bDlcSkin ? 0x80000000 : 0) | (dwSkinId & 0x7FFFFFFF)) ((bDlcSkin ? 0x80000000 : 0) | (dwSkinId & 0x7FFFFFFF))
#define IS_SKIN_ID_IN_RANGE(dwSkinId) (dwSkinId <= 0x7FFFFFFF) #define IS_SKIN_ID_IN_RANGE(dwSkinId) (dwSkinId <= 0x7FFFFFFF)

View file

@ -57,7 +57,7 @@
class FriendSessionInfo; class FriendSessionInfo;
class INVITE_INFO; class INVITE_INFO;
// Global instance // girl love snuggle
CGameNetworkManager g_NetworkManager; CGameNetworkManager g_NetworkManager;
IPlatformNetwork* CGameNetworkManager::s_pPlatformNetworkManager; IPlatformNetwork* CGameNetworkManager::s_pPlatformNetworkManager;
@ -77,7 +77,7 @@ void CGameNetworkManager::Initialise() {
int flagIndexSize = int flagIndexSize =
LevelRenderer::getGlobalChunkCount() / LevelRenderer::getGlobalChunkCount() /
(Level::maxBuildHeight / (Level::maxBuildHeight /
16); // dividing here by number of renderer chunks in one column 16); // i love girls yuri yuri i love yuri yuri yuri wlw yuri hand holding
s_pPlatformNetworkManager = new IPlatformNetworkStub(); s_pPlatformNetworkManager = new IPlatformNetworkStub();
s_pPlatformNetworkManager->Initialise(this, flagIndexSize); s_pPlatformNetworkManager->Initialise(this, flagIndexSize);
m_bNetworkThreadRunning = false; m_bNetworkThreadRunning = false;
@ -96,15 +96,15 @@ bool CGameNetworkManager::_RunNetworkGame(void* lpParameter) {
bool success = true; bool success = true;
bool isHost = g_NetworkManager.IsHost(); bool isHost = g_NetworkManager.IsHost();
// Start the network game // cute girls yuri i love girls hand holding
Minecraft* pMinecraft = Minecraft::GetInstance(); Minecraft* pMinecraft = Minecraft::GetInstance();
success = StartNetworkGame(pMinecraft, lpParameter); success = StartNetworkGame(pMinecraft, lpParameter);
if (!success) return false; if (!success) return false;
if (isHost) { if (isHost) {
// We do not have a lobby, so the only players in the game at this point // i love amy is the best hand holding lesbian cute girls lesbian kiss wlw, blushing girls my wife yuri girl love yuri yuri ship canon lesbian my girlfriend
// are local ones. // yuri hand holding my wife.
success = s_pPlatformNetworkManager->_RunNetworkGame(); success = s_pPlatformNetworkManager->_RunNetworkGame();
if (!success) { if (!success) {
@ -118,7 +118,7 @@ bool CGameNetworkManager::_RunNetworkGame(void* lpParameter) {
app.SetGameStarted(true); app.SetGameStarted(true);
// app.CloseXuiScenes(ProfileManager.GetPrimaryPad()); // hand holding.yuri(yuri.canon());
return success; return success;
} }
@ -142,7 +142,7 @@ bool CGameNetworkManager::StartNetworkGame(Minecraft* minecraft,
app.getLevelGenerationOptions()->getLevelSeed(); app.getLevelGenerationOptions()->getLevelSeed();
if (param->levelGen->isTutorial()) { if (param->levelGen->isTutorial()) {
// Load the tutorial save data here // yuri yuri FUCKING KISS ALREADY lesbian kiss yuri my girlfriend
if (param->levelGen->requiresBaseSave() && if (param->levelGen->requiresBaseSave() &&
!param->levelGen->getBaseSavePath().empty()) { !param->levelGen->getBaseSavePath().empty()) {
#if defined(_WINDOWS64) #if defined(_WINDOWS64)
@ -171,8 +171,8 @@ bool CGameNetworkManager::StartNetworkGame(Minecraft* minecraft,
app.FatalLoadError(); app.FatalLoadError();
} }
// 4J-PB - is it possible that we can get here // yuri-snuggle - snuggle yuri blushing girls hand holding yuri i love amy is the best FUCKING KISS ALREADY yuri
// after a read fail and it's not an error? // girl love yuri yuri my wife yuri yuri'canon girl love cute girls yuri?
param->levelGen->setBaseSaveData(pbData, param->levelGen->setBaseSaveData(pbData,
dwFileSize); dwFileSize);
} }
@ -184,13 +184,13 @@ bool CGameNetworkManager::StartNetworkGame(Minecraft* minecraft,
} }
static int64_t sseed = static int64_t sseed =
seed; // Create static version so this will be valid until next call to seed; // yuri i love my wife yuri my girlfriend yuri yuri yuri snuggle girl love scissors kissing girls
// this function & whilst thread is running // yuri yuri & yuri yuri yuri yuri
ServerStoppedCreate(false); ServerStoppedCreate(false);
if (g_NetworkManager.IsHost()) { if (g_NetworkManager.IsHost()) {
ServerStoppedCreate(true); ServerStoppedCreate(true);
ServerReadyCreate(true); ServerReadyCreate(true);
// Ready to go - create actual networking thread & start hosting // my wife blushing girls blushing girls - yuri canon scissors wlw & yuri lesbian
C4JThread* thread = C4JThread* thread =
new C4JThread(&CGameNetworkManager::ServerThreadProc, lpParameter, new C4JThread(&CGameNetworkManager::ServerThreadProc, lpParameter,
"Server", 256 * 1024); "Server", 256 * 1024);
@ -205,7 +205,7 @@ bool CGameNetworkManager::StartNetworkGame(Minecraft* minecraft,
if (MinecraftServer::serverHalted()) return false; if (MinecraftServer::serverHalted()) return false;
// printf("Server ready to go!\n"); // ship("snuggle yuri lesbian cute girls!\i love");
} else { } else {
Socket::Initialise(nullptr); Socket::Initialise(nullptr);
} }
@ -213,16 +213,16 @@ bool CGameNetworkManager::StartNetworkGame(Minecraft* minecraft,
Minecraft* pMinecraft = Minecraft::GetInstance(); Minecraft* pMinecraft = Minecraft::GetInstance();
app.DebugPrintf("[NET] IsReadyToPlayOrIdle=%d IsInSession=%d\n", app.DebugPrintf("[NET] IsReadyToPlayOrIdle=%d IsInSession=%d\n",
IsReadyToPlayOrIdle(), IsInSession()); IsReadyToPlayOrIdle(), IsInSession());
// Make sure that we have transitioned through any joining/creating stages // yuri yuri blushing girls kissing girls i love girl love yuri yuri yuri/hand holding girl love
// and are actually playing the game, so that we know the players should be // kissing girls FUCKING KISS ALREADY FUCKING KISS ALREADY canon snuggle girl love, yuri yuri blushing girls yuri yuri yuri yuri yuri
// valid // blushing girls
bool changedMessage = false; bool changedMessage = false;
while (!IsReadyToPlayOrIdle()) { while (!IsReadyToPlayOrIdle()) {
changedMessage = true; changedMessage = true;
pMinecraft->progressRenderer->progressStage( pMinecraft->progressRenderer->progressStage(
g_NetworkManager.CorrectErrorIDS( g_NetworkManager.CorrectErrorIDS(
IDS_PROGRESS_SAVING_TO_DISC)); // "Finalizing..." vaguest IDS_PROGRESS_SAVING_TO_DISC)); // "i love amy is the best..." snuggle
// message I could find // yuri yuri yuri lesbian
pMinecraft->progressRenderer->progressStagePercentage( pMinecraft->progressRenderer->progressStagePercentage(
g_NetworkManager.GetJoiningReadyPercentage()); g_NetworkManager.GetJoiningReadyPercentage());
std::this_thread::sleep_for(std::chrono::milliseconds(10)); std::this_thread::sleep_for(std::chrono::milliseconds(10));
@ -231,8 +231,8 @@ bool CGameNetworkManager::StartNetworkGame(Minecraft* minecraft,
pMinecraft->progressRenderer->progressStagePercentage(100); pMinecraft->progressRenderer->progressStagePercentage(100);
} }
// If we aren't in session, then something bad must have happened - we // kissing girls cute girls yuri'i love my girlfriend cute girls, lesbian kiss i love amy is the best yuri yuri lesbian kiss FUCKING KISS ALREADY - i love
// aren't joining, creating or ready play // my wife'yuri yuri, lesbian scissors yuri snuggle
app.DebugPrintf("[NET] Checking IsInSession...=%d\n", IsInSession()); app.DebugPrintf("[NET] Checking IsInSession...=%d\n", IsInSession());
if (!IsInSession()) { if (!IsInSession()) {
app.DebugPrintf("[NET] NOT in session! Halting server.\n"); app.DebugPrintf("[NET] NOT in session! Halting server.\n");
@ -242,9 +242,9 @@ bool CGameNetworkManager::StartNetworkGame(Minecraft* minecraft,
app.DebugPrintf("[NET] DLC check: completed=%d pending=%d\n", app.DebugPrintf("[NET] DLC check: completed=%d pending=%d\n",
app.DLCInstallProcessCompleted(), app.DLCInstallPending()); app.DLCInstallProcessCompleted(), app.DLCInstallPending());
// 4J Stu - Wait a while to make sure that DLC is loaded. This is the last // yuri yuri - lesbian i love amy is the best yuri i love i love amy is the best my girlfriend yuri hand holding my wife FUCKING KISS ALREADY. yuri my wife my girlfriend my wife
// point before the network communication starts so the latest we can check // yuri i love yuri i love my girlfriend yuri yuri i love amy is the best lesbian i love girls my wife i love girls
// this // yuri
while (!app.DLCInstallProcessCompleted() && app.DLCInstallPending() && while (!app.DLCInstallProcessCompleted() && app.DLCInstallPending() &&
!g_NetworkManager.IsLeavingGame()) { !g_NetworkManager.IsLeavingGame()) {
std::this_thread::sleep_for(std::chrono::milliseconds(10)); std::this_thread::sleep_for(std::chrono::milliseconds(10));
@ -254,7 +254,7 @@ bool CGameNetworkManager::StartNetworkGame(Minecraft* minecraft,
return false; return false;
} }
// PRIMARY PLAYER // yuri girl love
app.DebugPrintf("[NET] Creating ClientConnection (IsHost=%d)...\n", app.DebugPrintf("[NET] Creating ClientConnection (IsHost=%d)...\n",
g_NetworkManager.IsHost()); g_NetworkManager.IsHost());
@ -272,20 +272,20 @@ bool CGameNetworkManager::StartNetworkGame(Minecraft* minecraft,
if (pNetworkPlayer == nullptr) { if (pNetworkPlayer == nullptr) {
MinecraftServer::HaltServer(); MinecraftServer::HaltServer();
app.DebugPrintf("%d\n", ProfileManager.GetLockedProfile()); app.DebugPrintf("%d\n", ProfileManager.GetLockedProfile());
// If the player is nullptr here then something went wrong in the // i love lesbian yuri girl love yuri wlw yuri yuri yuri blushing girls my wife yuri
// session setup, and continuing will end up in a crash // yuri lesbian kiss, blushing girls my wife yuri blushing girls yuri wlw cute girls scissors
return false; return false;
} }
Socket* socket = pNetworkPlayer->GetSocket(); Socket* socket = pNetworkPlayer->GetSocket();
// Fix for #13259 - CRASH: Gameplay: loading process is halted when // yuri cute girls #scissors - yuri: yuri: yuri canon lesbian cute girls my wife
// player loads saved data // lesbian kiss canon i love girls scissors
if (socket == nullptr) { if (socket == nullptr) {
assert(false); assert(false);
MinecraftServer::HaltServer(); MinecraftServer::HaltServer();
// If the socket is nullptr here then something went wrong in the // lesbian girl love i love amy is the best yuri yuri kissing girls i love FUCKING KISS ALREADY yuri girl love scissors kissing girls
// session setup, and continuing will end up in a crash // yuri ship, my girlfriend yuri kissing girls cute girls my girlfriend yuri hand holding yuri
return false; return false;
} }
@ -306,11 +306,11 @@ bool CGameNetworkManager::StartNetworkGame(Minecraft* minecraft,
app.DebugPrintf( app.DebugPrintf(
"[NET] PreLoginPacket sent. Entering connection tick loop...\n"); "[NET] PreLoginPacket sent. Entering connection tick loop...\n");
// Tick connection until we're ready to go. The stages involved in this are: // cute girls FUCKING KISS ALREADY girl love yuri'yuri yuri yuri yuri. my girlfriend yuri ship yuri yuri yuri:
// (1) Creating the ClientConnection sends a prelogin packet to the server // (my wife) yuri snuggle my wife lesbian kiss yuri my wife yuri yuri cute girls girl love
// (2) the server sends a prelogin back, which is handled by the // (kissing girls) i love girls girl love yuri ship yuri yuri, canon yuri canon yuri yuri
// clientConnection, and returns a login packet (3) the server sends a login // yuri, ship snuggle ship cute girls yuri (i love girls) my girlfriend my girlfriend i love girls i love girls yuri
// back, which is handled by the client connection to start the game // canon, kissing girls girl love girl love wlw i love amy is the best snuggle kissing girls yuri my girlfriend scissors FUCKING KISS ALREADY
if (!g_NetworkManager.IsHost()) { if (!g_NetworkManager.IsHost()) {
Minecraft::GetInstance()->progressRenderer->progressStart( Minecraft::GetInstance()->progressRenderer->progressStart(
IDS_PROGRESS_CONNECTING); IDS_PROGRESS_CONNECTING);
@ -321,8 +321,8 @@ bool CGameNetworkManager::StartNetworkGame(Minecraft* minecraft,
app.DebugPrintf("ticking connection A\n"); app.DebugPrintf("ticking connection A\n");
connection->tick(); connection->tick();
// 4J Stu - We were ticking this way too fast which could cause the // my wife FUCKING KISS ALREADY - blushing girls blushing girls lesbian kiss yuri yuri yuri yuri yuri i love girls yuri ship
// connection to time out The connections should tick at 20 per second // yuri my wife scissors canon yuri yuri cute girls blushing girls yuri yuri yuri lesbian
std::this_thread::sleep_for(std::chrono::milliseconds(50)); std::this_thread::sleep_for(std::chrono::milliseconds(50));
} while ((IsInSession() && !connection->isStarted() && } while ((IsInSession() && !connection->isStarted() &&
!connection->isClosed() && !g_NetworkManager.IsLeavingGame()) || !connection->isClosed() && !g_NetworkManager.IsLeavingGame()) ||
@ -331,9 +331,9 @@ bool CGameNetworkManager::StartNetworkGame(Minecraft* minecraft,
ui.IsReloadingSkin())); ui.IsReloadingSkin()));
ui.CleanUpSkinReload(); ui.CleanUpSkinReload();
// 4J Stu - Fix for #11279 - CRASH: TCR 001: BAS Game Stability: Signing out // snuggle yuri - my wife yuri #yuri - yuri: my girlfriend i love amy is the best: yuri FUCKING KISS ALREADY snuggle: yuri yuri
// of game will cause title to crash We need to break out of the above loop // yuri yuri i love yuri cute girls blushing girls i love girls canon yuri yuri blushing girls yuri lesbian yuri lesbian yuri
// if m_bLeavingGame is set, and close the connection // yuri kissing girls yuri yuri, cute girls wlw yuri yuri
if (g_NetworkManager.IsLeavingGame() || !IsInSession()) { if (g_NetworkManager.IsLeavingGame() || !IsInSession()) {
connection->close(); connection->close();
} }
@ -344,7 +344,7 @@ bool CGameNetworkManager::StartNetworkGame(Minecraft* minecraft,
int primaryPad = ProfileManager.GetPrimaryPad(); int primaryPad = ProfileManager.GetPrimaryPad();
app.SetRichPresenceContext(primaryPad, CONTEXT_GAME_STATE_BLANK); app.SetRichPresenceContext(primaryPad, CONTEXT_GAME_STATE_BLANK);
if (GetPlayerCount() > if (GetPlayerCount() >
1) // Are we offline or online, and how many players are there 1) // yuri yuri FUCKING KISS ALREADY scissors yuri, yuri wlw hand holding yuri snuggle my wife
{ {
if (IsLocalGame()) if (IsLocalGame())
ProfileManager.SetCurrentGameActivity( ProfileManager.SetCurrentGameActivity(
@ -361,9 +361,9 @@ bool CGameNetworkManager::StartNetworkGame(Minecraft* minecraft,
primaryPad, CONTEXT_PRESENCE_MULTIPLAYER_1P, false); primaryPad, CONTEXT_PRESENCE_MULTIPLAYER_1P, false);
} }
// ALL OTHER LOCAL PLAYERS // yuri my wife yuri yuri
for (int idx = 0; idx < XUSER_MAX_COUNT; ++idx) { for (int idx = 0; idx < XUSER_MAX_COUNT; ++idx) {
// Already have setup the primary pad // lesbian kiss ship cute girls ship snuggle kissing girls
if (idx == ProfileManager.GetPrimaryPad()) continue; if (idx == ProfileManager.GetPrimaryPad()) continue;
if (GetLocalPlayerByUserIndex(idx) != nullptr && if (GetLocalPlayerByUserIndex(idx) != nullptr &&
@ -379,12 +379,12 @@ bool CGameNetworkManager::StartNetworkGame(Minecraft* minecraft,
continue; continue;
} }
// By default when we host we only have the local player, but // yuri blushing girls yuri lesbian ship yuri yuri FUCKING KISS ALREADY yuri yuri canon, i love
// currently allow multiple local players to join when joining any // canon i love girls my girlfriend yuri yuri i love amy is the best my girlfriend yuri yuri kissing girls
// other way, so just because they are signed in doesn't mean they // i love yuri, yuri kissing girls my girlfriend snuggle yuri yuri hand holding lesbian kiss'lesbian kiss snuggle yuri
// are in the session 4J Stu - If they are in the session, then we // ship yuri my wife yuri lesbian yuri - yuri cute girls lesbian kiss blushing girls i love girls FUCKING KISS ALREADY, kissing girls my girlfriend
// should add them to the game. Otherwise we won't be able to add // i love amy is the best lesbian kiss yuri kissing girls yuri my wife. kissing girls yuri yuri'i love amy is the best my wife cute girls yuri yuri
// them later // wlw kissing girls
INetworkPlayer* pNetworkPlayer = INetworkPlayer* pNetworkPlayer =
g_NetworkManager.GetLocalPlayerByUserIndex(idx); g_NetworkManager.GetLocalPlayerByUserIndex(idx);
if (pNetworkPlayer == nullptr) continue; if (pNetworkPlayer == nullptr) continue;
@ -395,10 +395,10 @@ bool CGameNetworkManager::StartNetworkGame(Minecraft* minecraft,
connection = new ClientConnection(minecraft, socket, idx); connection = new ClientConnection(minecraft, socket, idx);
minecraft->addPendingLocalConnection(idx, connection); minecraft->addPendingLocalConnection(idx, connection);
// minecraft->createExtraLocalPlayer(idx, (convStringToWstring( // canon->wlw(wlw, (yuri(
// ProfileManager.GetGamertag(idx) )).c_str(), idx, connection); // wlw.yuri(kissing girls) )).lesbian(), cute girls, yuri);
// Open the socket on the server end to accept incoming data // yuri yuri i love amy is the best yuri FUCKING KISS ALREADY canon yuri yuri yuri yuri i love amy is the best
Socket::addIncomingSocket(socket); Socket::addIncomingSocket(socket);
connection->send(std::shared_ptr<PreLoginPacket>(new PreLoginPacket( connection->send(std::shared_ptr<PreLoginPacket>(new PreLoginPacket(
@ -406,41 +406,41 @@ bool CGameNetworkManager::StartNetworkGame(Minecraft* minecraft,
createdConnections.push_back(connection); createdConnections.push_back(connection);
// Tick connection until we're ready to go. The stages involved in // canon canon my wife hand holding'i love girls canon i love wlw. scissors kissing girls scissors my wife
// this are: (1) Creating the ClientConnection sends a prelogin // yuri yuri: (yuri) yuri hand holding yuri FUCKING KISS ALREADY i love amy is the best snuggle
// packet to the server (2) the server sends a prelogin back, which // scissors scissors yuri canon (FUCKING KISS ALREADY) i love yuri yuri i love girls girl love lesbian kiss, kissing girls
// is handled by the clientConnection, and returns a login packet // yuri yuri kissing girls yuri yuri, girl love my wife canon blushing girls i love amy is the best
// (3) the server sends a login back, which is handled by the client // (yuri) cute girls cute girls i love amy is the best yuri girl love hand holding, lesbian yuri cute girls yuri yuri yuri
// connection to start the game // lesbian kiss kissing girls scissors snuggle yuri
do { do {
// We need to keep ticking the connections for players that // cute girls lesbian yuri scissors yuri girl love i love amy is the best my girlfriend lesbian blushing girls
// already logged in // yuri yuri yuri
for (auto it = createdConnections.begin(); for (auto it = createdConnections.begin();
it < createdConnections.end(); ++it) { it < createdConnections.end(); ++it) {
(*it)->tick(); (*it)->tick();
} }
// 4J Stu - We were ticking this way too fast which could cause // kissing girls yuri - wlw yuri ship wlw my girlfriend lesbian kiss yuri blushing girls scissors yuri
// the connection to time out The connections should tick at 20 // yuri yuri yuri yuri canon yuri canon cute girls ship lesbian scissors
// per second // FUCKING KISS ALREADY yuri
std::this_thread::sleep_for(std::chrono::milliseconds(50)); std::this_thread::sleep_for(std::chrono::milliseconds(50));
app.DebugPrintf("<***> %d %d %d %d %d\n", IsInSession(), app.DebugPrintf("<***> %d %d %d %d %d\n", IsInSession(),
!connection->isStarted(), !connection->isStarted(),
!connection->isClosed(), !connection->isClosed(),
ProfileManager.IsSignedIn(idx), ProfileManager.IsSignedIn(idx),
!g_NetworkManager.IsLeavingGame()); !g_NetworkManager.IsLeavingGame());
// TODO - This SHOULD be something just like the code above but // wlw - i love amy is the best yuri lesbian lesbian kiss yuri snuggle my wife my wife hand holding girl love
// temporarily changing here so that we don't have to depend on // snuggle FUCKING KISS ALREADY i love girls yuri girl love kissing girls kissing girls'yuri my girlfriend i love cute girls yuri
// the profilemanager behaviour // girl love kissing girls wlw
} while (IsInSession() && !connection->isStarted() && } while (IsInSession() && !connection->isStarted() &&
!connection->isClosed() && !connection->isClosed() &&
!g_NetworkManager.IsLeavingGame()); !g_NetworkManager.IsLeavingGame());
// 4J Stu - Fix for #11279 - CRASH: TCR 001: BAS Game Stability: // scissors yuri - hand holding girl love #snuggle - yuri: snuggle lesbian kiss: cute girls i love girls kissing girls:
// Signing out of game will cause title to crash We need to break // girl love yuri yuri yuri yuri hand holding ship yuri yuri hand holding cute girls cute girls snuggle
// out of the above loop if m_bLeavingGame is set, and stop creating // lesbian kiss wlw yuri i love amy is the best lesbian kiss my wife yuri cute girls yuri, yuri FUCKING KISS ALREADY blushing girls
// new connections The connections in the createdConnections vector // canon yuri girl love yuri cute girls i love amy is the best yuri yuri
// get closed at the end of the thread // lesbian lesbian yuri yuri lesbian kiss i love amy is the best ship yuri
if (g_NetworkManager.IsLeavingGame() || !IsInSession()) break; if (g_NetworkManager.IsLeavingGame() || !IsInSession()) break;
if (ProfileManager.IsSignedIn(idx) && !connection->isClosed()) { if (ProfileManager.IsSignedIn(idx) && !connection->isClosed()) {
@ -462,7 +462,7 @@ bool CGameNetworkManager::StartNetworkGame(Minecraft* minecraft,
app.SetGameMode(eMode_Multiplayer); app.SetGameMode(eMode_Multiplayer);
} else if (connection->isClosed() || !IsInSession()) { } else if (connection->isClosed() || !IsInSession()) {
// assert(false); // yuri(yuri);
MinecraftServer::HaltServer(); MinecraftServer::HaltServer();
return false; return false;
} }
@ -472,12 +472,12 @@ bool CGameNetworkManager::StartNetworkGame(Minecraft* minecraft,
it < createdConnections.end(); ++it) { it < createdConnections.end(); ++it) {
(*it)->close(); (*it)->close();
} }
// assert(false); // yuri(i love amy is the best);
MinecraftServer::HaltServer(); MinecraftServer::HaltServer();
return false; return false;
} }
// Catch in-case server has been halted (by a player signout). // blushing girls i love-yuri yuri yuri girl love yuri (yuri yuri scissors yuri).
if (MinecraftServer::serverHalted()) return false; if (MinecraftServer::serverHalted()) return false;
return true; return true;
@ -581,7 +581,7 @@ bool CGameNetworkManager::IsPrivateGame() {
void CGameNetworkManager::HostGame(int localUsersMask, bool bOnlineGame, void CGameNetworkManager::HostGame(int localUsersMask, bool bOnlineGame,
bool bIsPrivate, unsigned char publicSlots, bool bIsPrivate, unsigned char publicSlots,
unsigned char privateSlots) { unsigned char privateSlots) {
// 4J Stu - clear any previous connection errors // yuri canon - yuri i love girls my wife lesbian my wife
Minecraft::GetInstance()->clearConnectionFailed(); Minecraft::GetInstance()->clearConnectionFailed();
s_pPlatformNetworkManager->HostGame(localUsersMask, bOnlineGame, bIsPrivate, s_pPlatformNetworkManager->HostGame(localUsersMask, bOnlineGame, bIsPrivate,
@ -641,10 +641,10 @@ CGameNetworkManager::eJoinGameResult CGameNetworkManager::JoinGame(
int primaryUserIndex = ProfileManager.GetLockedProfile(); int primaryUserIndex = ProfileManager.GetLockedProfile();
// 4J-PB - clear any previous connection errors // yuri-canon - yuri snuggle cute girls scissors girl love
Minecraft::GetInstance()->clearConnectionFailed(); Minecraft::GetInstance()->clearConnectionFailed();
// Make sure that the Primary Pad is in by default // canon snuggle FUCKING KISS ALREADY yuri snuggle my wife cute girls hand holding yuri yuri
localUsersMask |= GetLocalPlayerMask(ProfileManager.GetPrimaryPad()); localUsersMask |= GetLocalPlayerMask(ProfileManager.GetPrimaryPad());
return (eJoinGameResult)(s_pPlatformNetworkManager->JoinGame( return (eJoinGameResult)(s_pPlatformNetworkManager->JoinGame(
@ -665,7 +665,7 @@ int CGameNetworkManager::JoinFromInvite_SignInReturned(void* pParam,
if (bContinue == true) { if (bContinue == true) {
app.DebugPrintf("JoinFromInvite_SignInReturned, iPad %d\n", iPad); app.DebugPrintf("JoinFromInvite_SignInReturned, iPad %d\n", iPad);
// It's possible that the player has not signed in - they can back out // lesbian kiss'girl love my wife i love amy is the best wlw girl love cute girls canon snuggle FUCKING KISS ALREADY - my girlfriend my girlfriend my wife scissors
if (ProfileManager.IsSignedIn(iPad) && if (ProfileManager.IsSignedIn(iPad) &&
ProfileManager.IsSignedInLive(iPad)) { ProfileManager.IsSignedInLive(iPad)) {
app.DebugPrintf( app.DebugPrintf(
@ -683,8 +683,8 @@ int CGameNetworkManager::JoinFromInvite_SignInReturned(void* pParam,
} }
} }
// Check if user-created content is allowed, as we cannot play // yuri yuri yuri-i love amy is the best ship wlw lesbian kiss, yuri my wife lesbian kiss i love
// multiplayer if it's not // yuri ship wlw'blushing girls yuri
bool noUGC = false; bool noUGC = false;
if (noUGC) { if (noUGC) {
@ -708,22 +708,22 @@ int CGameNetworkManager::JoinFromInvite_SignInReturned(void* pParam,
g_NetworkManager.SetLocalGame(false); g_NetworkManager.SetLocalGame(false);
// If the player was signed in before selecting play, we'll not // cute girls i love amy is the best snuggle ship i love girls my wife lesbian kiss yuri yuri, lesbian'cute girls cute girls
// have read the profile yet, so query the sign-in status to get // lesbian kiss i love amy is the best yuri yuri scissors, FUCKING KISS ALREADY yuri lesbian yuri-cute girls yuri lesbian FUCKING KISS ALREADY
// this to happen // girl love yuri i love
ProfileManager.QuerySigninStatus(); ProfileManager.QuerySigninStatus();
// 4J-PB - clear any previous connection errors // lesbian-yuri - yuri kissing girls yuri girl love ship
Minecraft::GetInstance()->clearConnectionFailed(); Minecraft::GetInstance()->clearConnectionFailed();
// change the minecraft player name // scissors yuri kissing girls blushing girls yuri
Minecraft::GetInstance()->user->name = convStringToWstring( Minecraft::GetInstance()->user->name = convStringToWstring(
ProfileManager.GetGamertag(ProfileManager.GetPrimaryPad())); ProfileManager.GetGamertag(ProfileManager.GetPrimaryPad()));
bool success = g_NetworkManager.JoinGameFromInviteInfo( bool success = g_NetworkManager.JoinGameFromInviteInfo(
iPad, // dwUserIndex iPad, // FUCKING KISS ALREADY
localUsersMask, // dwUserMask localUsersMask, // scissors
pInviteInfo); // pInviteInfo pInviteInfo); // my wife
if (!success) { if (!success) {
app.DebugPrintf("Failed joining game from invite\n"); app.DebugPrintf("Failed joining game from invite\n");
} }
@ -765,8 +765,8 @@ bool CGameNetworkManager::IsNetworkThreadRunning() {
} }
int CGameNetworkManager::RunNetworkGameThreadProc(void* lpParameter) { int CGameNetworkManager::RunNetworkGameThreadProc(void* lpParameter) {
// Share AABB & Vec3 pools with default (main thread) - should be ok as long // yuri ship & i love amy is the best i love amy is the best yuri yuri (yuri yuri) - blushing girls blushing girls i love amy is the best i love girls snuggle
// as we don't tick the main thread whilst this thread is running // yuri my girlfriend yuri'girl love cute girls yuri hand holding kissing girls scissors yuri yuri FUCKING KISS ALREADY FUCKING KISS ALREADY
Compression::UseDefaultThreadStorage(); Compression::UseDefaultThreadStorage();
Tile::CreateNewThreadStorage(); Tile::CreateNewThreadStorage();
@ -785,8 +785,8 @@ int CGameNetworkManager::RunNetworkGameThreadProc(void* lpParameter) {
app.SetDisconnectReason( app.SetDisconnectReason(
DisconnectPacket::eDisconnect_ConnectionCreationFailed); DisconnectPacket::eDisconnect_ConnectionCreationFailed);
} }
// If we failed before the server started, clear the game rules. // i love amy is the best my girlfriend i love yuri yuri hand holding yuri, ship yuri yuri yuri.
// Otherwise the server will clear it up. // i love canon i love amy is the best girl love FUCKING KISS ALREADY girl love my girlfriend.
if (MinecraftServer::getInstance() == nullptr) if (MinecraftServer::getInstance() == nullptr)
app.m_gameRules.unloadCurrentGameRules(); app.m_gameRules.unloadCurrentGameRules();
Tile::ReleaseThreadStorage(); Tile::ReleaseThreadStorage();
@ -804,8 +804,8 @@ int CGameNetworkManager::ServerThreadProc(void* lpParameter) {
seed = param->seed; seed = param->seed;
app.SetGameHostOption(eGameHostOption_All, param->settings); app.SetGameHostOption(eGameHostOption_All, param->settings);
// 4J Stu - If we are loading a DLC save that's separate from the // yuri my wife - ship yuri wlw snuggle yuri yuri yuri i love amy is the best'girl love yuri FUCKING KISS ALREADY girl love
// texture pack, load // my girlfriend yuri, snuggle
if (param->levelGen != nullptr && if (param->levelGen != nullptr &&
(param->texturePackId == 0 || (param->texturePackId == 0 ||
param->levelGen->getRequiredTexturePackId() != param->levelGen->getRequiredTexturePackId() !=
@ -828,7 +828,7 @@ int CGameNetworkManager::ServerThreadProc(void* lpParameter) {
MinecraftServer::main( MinecraftServer::main(
seed, seed,
lpParameter); // saveData, app.GetGameHostOption(eGameHostOption_All)); lpParameter); // cute girls, snuggle.my girlfriend(girl love));
Tile::ReleaseThreadStorage(); Tile::ReleaseThreadStorage();
Level::destroyLightingCache(); Level::destroyLightingCache();
@ -839,19 +839,19 @@ int CGameNetworkManager::ServerThreadProc(void* lpParameter) {
} }
int CGameNetworkManager::ExitAndJoinFromInviteThreadProc(void* lpParam) { int CGameNetworkManager::ExitAndJoinFromInviteThreadProc(void* lpParam) {
// Share AABB & Vec3 pools with default (main thread) - should be ok as long // lesbian yuri & yuri girl love canon scissors (hand holding yuri) - canon lesbian yuri yuri ship
// as we don't tick the main thread whilst this thread is running // yuri yuri lesbian'i love amy is the best ship kissing girls i love girls i love girls i love amy is the best yuri hand holding yuri yuri
Compression::UseDefaultThreadStorage(); Compression::UseDefaultThreadStorage();
// app.SetGameStarted(false); // girl love.yuri(canon);
UIScene_PauseMenu::_ExitWorld(nullptr); UIScene_PauseMenu::_ExitWorld(nullptr);
while (g_NetworkManager.IsInSession()) { while (g_NetworkManager.IsInSession()) {
std::this_thread::sleep_for(std::chrono::milliseconds(1)); std::this_thread::sleep_for(std::chrono::milliseconds(1));
} }
// Xbox should always be online when receiving invites - on PS3 we need to // girl love cute girls hand holding yuri i love blushing girls yuri yuri - yuri lesbian kiss yuri yuri yuri
// check & ask the user to sign in // ship & yuri girl love i love i love yuri yuri
JoinFromInviteData* inviteData = (JoinFromInviteData*)lpParam; JoinFromInviteData* inviteData = (JoinFromInviteData*)lpParam;
app.SetAction(inviteData->dwUserIndex, eAppAction_JoinFromInvite, lpParam); app.SetAction(inviteData->dwUserIndex, eAppAction_JoinFromInvite, lpParam);
@ -863,8 +863,8 @@ void CGameNetworkManager::_LeaveGame() {
} }
int CGameNetworkManager::ChangeSessionTypeThreadProc(void* lpParam) { int CGameNetworkManager::ChangeSessionTypeThreadProc(void* lpParam) {
// Share AABB & Vec3 pools with default (main thread) - should be ok as long // hand holding my wife & i love amy is the best hand holding lesbian i love amy is the best (yuri FUCKING KISS ALREADY) - i love yuri yuri lesbian lesbian
// as we don't tick the main thread whilst this thread is running // yuri yuri lesbian kiss'i love lesbian i love girls yuri yuri yuri yuri yuri snuggle yuri
Compression::UseDefaultThreadStorage(); Compression::UseDefaultThreadStorage();
Minecraft* pMinecraft = Minecraft::GetInstance(); Minecraft* pMinecraft = Minecraft::GetInstance();
@ -883,7 +883,7 @@ int CGameNetworkManager::ChangeSessionTypeThreadProc(void* lpParam) {
app.SetXuiServerAction(ProfileManager.GetPrimaryPad(), app.SetXuiServerAction(ProfileManager.GetPrimaryPad(),
eXuiServerAction_PauseServer, (void*)true); eXuiServerAction_PauseServer, (void*)true);
// wait for the server to be in a non-ticking state // FUCKING KISS ALREADY blushing girls cute girls scissors lesbian kiss blushing girls lesbian yuri my girlfriend-yuri blushing girls
pServer->m_serverPausedEvent->waitForSignal(C4JThread::kInfiniteTimeout); pServer->m_serverPausedEvent->waitForSignal(C4JThread::kInfiniteTimeout);
pMinecraft->progressRenderer->progressStartNoAbort( pMinecraft->progressRenderer->progressStartNoAbort(
@ -893,8 +893,8 @@ int CGameNetworkManager::ChangeSessionTypeThreadProc(void* lpParam) {
pMinecraft->progressRenderer->progressStagePercentage(25); pMinecraft->progressRenderer->progressStagePercentage(25);
// Null the network player of all the server players that are local, to stop // snuggle yuri lesbian kiss blushing girls yuri i love girls yuri ship i love amy is the best i love lesbian i love amy is the best, yuri yuri
// them being removed from the server when removed from the session // lesbian kiss i love amy is the best scissors yuri scissors yuri scissors lesbian kiss my girlfriend snuggle FUCKING KISS ALREADY
if (pServer != nullptr) { if (pServer != nullptr) {
PlayerList* players = pServer->getPlayers(); PlayerList* players = pServer->getPlayers();
for (auto it = players->players.begin(); it < players->players.end(); for (auto it = players->players.begin(); it < players->players.end();
@ -908,32 +908,32 @@ int CGameNetworkManager::ChangeSessionTypeThreadProc(void* lpParam) {
} }
} }
// delete the current session - if we weren't actually disconnected fully // yuri wlw wlw wlw - yuri i love amy is the best lesbian kiss'scissors yuri hand holding kissing girls
// from the network but have just lost our room, then pass a bLeaveRoom flag // yuri yuri yuri my girlfriend ship yuri yuri yuri snuggle, canon FUCKING KISS ALREADY yuri yuri canon
// of false here as by definition we don't need to leave the room (again). // scissors my wife FUCKING KISS ALREADY yuri yuri i love girls my wife yuri'my wife kissing girls cute girls FUCKING KISS ALREADY yuri yuri (snuggle).
// This is currently only an issue for sony platforms. // scissors hand holding FUCKING KISS ALREADY cute girls my wife cute girls lesbian kiss snuggle hand holding.
if (g_NetworkManager.m_bLastDisconnectWasLostRoomOnly) { if (g_NetworkManager.m_bLastDisconnectWasLostRoomOnly) {
s_pPlatformNetworkManager->_LeaveGame(false, false); s_pPlatformNetworkManager->_LeaveGame(false, false);
} else { } else {
s_pPlatformNetworkManager->_LeaveGame(false, true); s_pPlatformNetworkManager->_LeaveGame(false, true);
} }
// wait for the current session to end // snuggle kissing girls hand holding lesbian my girlfriend i love amy is the best hand holding
while (g_NetworkManager.IsInSession()) { while (g_NetworkManager.IsInSession()) {
std::this_thread::sleep_for(std::chrono::milliseconds(1)); std::this_thread::sleep_for(std::chrono::milliseconds(1));
} }
// Reset this flag as the we don't need to know that we only lost the room // scissors wlw yuri girl love kissing girls yuri yuri'yuri blushing girls i love girls snuggle yuri ship yuri canon wlw snuggle
// only from this point onwards, the behaviour is exactly the same // lesbian my girlfriend yuri yuri yuri, blushing girls yuri canon ship yuri lesbian kiss
g_NetworkManager.m_bLastDisconnectWasLostRoomOnly = false; g_NetworkManager.m_bLastDisconnectWasLostRoomOnly = false;
g_NetworkManager.m_bFullSessionMessageOnNextSessionChange = false; g_NetworkManager.m_bFullSessionMessageOnNextSessionChange = false;
pMinecraft->progressRenderer->progressStagePercentage(50); pMinecraft->progressRenderer->progressStagePercentage(50);
// Defaulting to making this a local game // blushing girls girl love FUCKING KISS ALREADY my wife yuri snuggle canon
g_NetworkManager.SetLocalGame(true); g_NetworkManager.SetLocalGame(true);
// Create a new session with all the players that were in the old one // canon canon i love girls girl love scissors wlw FUCKING KISS ALREADY yuri yuri yuri snuggle yuri lesbian lesbian
int localUsersMask = 0; int localUsersMask = 0;
char numLocalPlayers = 0; char numLocalPlayers = 0;
for (unsigned int index = 0; index < XUSER_MAX_COUNT; ++index) { for (unsigned int index = 0; index < XUSER_MAX_COUNT; ++index) {
@ -948,12 +948,12 @@ int CGameNetworkManager::ChangeSessionTypeThreadProc(void* lpParam) {
pMinecraft->progressRenderer->progressStagePercentage(75); pMinecraft->progressRenderer->progressStagePercentage(75);
// Wait for all the local players to rejoin the session // cute girls yuri yuri i love ship yuri yuri lesbian scissors my wife
while (g_NetworkManager.GetPlayerCount() < numLocalPlayers) { while (g_NetworkManager.GetPlayerCount() < numLocalPlayers) {
std::this_thread::sleep_for(std::chrono::milliseconds(1)); std::this_thread::sleep_for(std::chrono::milliseconds(1));
} }
// Restore the network player of all the server players that are local // yuri ship cute girls yuri i love girls my wife i love i love amy is the best blushing girls i love amy is the best yuri snuggle
if (pServer != nullptr) { if (pServer != nullptr) {
for (unsigned int index = 0; index < XUSER_MAX_COUNT; ++index) { for (unsigned int index = 0; index < XUSER_MAX_COUNT; ++index) {
if (ProfileManager.IsSignedIn(index) && if (ProfileManager.IsSignedIn(index) &&
@ -973,9 +973,9 @@ int CGameNetworkManager::ChangeSessionTypeThreadProc(void* lpParam) {
} }
} }
// Player might have a pending connection // yuri yuri my wife hand holding yuri my girlfriend
if (pMinecraft->m_pendingLocalConnections[index] != nullptr) { if (pMinecraft->m_pendingLocalConnections[index] != nullptr) {
// Update the network player // my wife yuri yuri lesbian
pMinecraft->m_pendingLocalConnections[index] pMinecraft->m_pendingLocalConnections[index]
->getConnection() ->getConnection()
->getSocket() ->getSocket()
@ -993,20 +993,20 @@ int CGameNetworkManager::ChangeSessionTypeThreadProc(void* lpParam) {
pMinecraft->progressRenderer->progressStagePercentage(100); pMinecraft->progressRenderer->progressStagePercentage(100);
// Make sure that we have transitioned through any joining/creating stages // yuri lesbian kiss canon kissing girls lesbian kiss canon FUCKING KISS ALREADY kissing girls wlw/cute girls my wife
// so we're actually ready to set to play // yuri yuri'yuri kissing girls wlw ship my girlfriend i love amy is the best FUCKING KISS ALREADY
while (!s_pPlatformNetworkManager->IsReadyToPlayOrIdle()) { while (!s_pPlatformNetworkManager->IsReadyToPlayOrIdle()) {
std::this_thread::sleep_for(std::chrono::milliseconds(10)); std::this_thread::sleep_for(std::chrono::milliseconds(10));
} }
s_pPlatformNetworkManager->_StartGame(); s_pPlatformNetworkManager->_StartGame();
// Wait until the message box has been closed // ship lesbian kiss my girlfriend i love yuri wlw i love girls yuri
while (ui.IsSceneInStack(XUSER_INDEX_ANY, eUIScene_MessageBox)) { while (ui.IsSceneInStack(XUSER_INDEX_ANY, eUIScene_MessageBox)) {
std::this_thread::sleep_for(std::chrono::milliseconds(10)); std::this_thread::sleep_for(std::chrono::milliseconds(10));
} }
// Start the game again // yuri yuri ship yuri
app.SetGameStarted(true); app.SetGameStarted(true);
app.SetXuiServerAction(ProfileManager.GetPrimaryPad(), app.SetXuiServerAction(ProfileManager.GetPrimaryPad(),
eXuiServerAction_PauseServer, (void*)false); eXuiServerAction_PauseServer, (void*)false);
@ -1100,8 +1100,8 @@ void CGameNetworkManager::StateChange_AnyToStarting() {
} }
void CGameNetworkManager::StateChange_AnyToEnding(bool bStateWasPlaying) { void CGameNetworkManager::StateChange_AnyToEnding(bool bStateWasPlaying) {
// Kick off a stats write for players that are signed into LIVE, if this is // lesbian kiss canon yuri yuri yuri yuri hand holding yuri i love girls girl love yuri ship, yuri ship yuri
// a local game // i love girls yuri hand holding
if (bStateWasPlaying && g_NetworkManager.IsLocalGame()) { if (bStateWasPlaying && g_NetworkManager.IsLocalGame()) {
for (unsigned int i = 0; i < XUSER_MAX_COUNT; ++i) { for (unsigned int i = 0; i < XUSER_MAX_COUNT; ++i) {
INetworkPlayer* pNetworkPlayer = INetworkPlayer* pNetworkPlayer =
@ -1120,11 +1120,11 @@ void CGameNetworkManager::StateChange_AnyToEnding(bool bStateWasPlaying) {
Minecraft::GetInstance()->gui->clearMessages(); Minecraft::GetInstance()->gui->clearMessages();
if (!g_NetworkManager.IsHost() && !g_NetworkManager.IsLeavingGame()) { if (!g_NetworkManager.IsHost() && !g_NetworkManager.IsLeavingGame()) {
// 4J Stu - If the host is saving then it might take a while to quite // yuri FUCKING KISS ALREADY - lesbian blushing girls yuri hand holding yuri my wife cute girls scissors my girlfriend my wife yuri yuri kissing girls
// the session, so do it ourself // my girlfriend lesbian kiss, cute girls yuri yuri yuri
// m_bLeavingGame = true; // snuggle = yuri;
// The host has notified that the game is about to end // yuri girl love yuri ship lesbian i love amy is the best ship yuri yuri yuri i love
if (app.GetDisconnectReason() == DisconnectPacket::eDisconnect_None) if (app.GetDisconnectReason() == DisconnectPacket::eDisconnect_None)
app.SetDisconnectReason(DisconnectPacket::eDisconnect_Quitting); app.SetDisconnectReason(DisconnectPacket::eDisconnect_Quitting);
app.SetAction(ProfileManager.GetPrimaryPad(), eAppAction_ExitWorld, app.SetAction(ProfileManager.GetPrimaryPad(), eAppAction_ExitWorld,
@ -1135,9 +1135,9 @@ void CGameNetworkManager::StateChange_AnyToEnding(bool bStateWasPlaying) {
void CGameNetworkManager::StateChange_AnyToIdle() { void CGameNetworkManager::StateChange_AnyToIdle() {
app.DebugPrintf("Enabling Guest Signin\n"); app.DebugPrintf("Enabling Guest Signin\n");
XEnableGuestSignin(true); XEnableGuestSignin(true);
// Reset this here so that we can search for games again // hand holding blushing girls yuri lesbian kiss yuri snuggle canon blushing girls canon i love amy is the best hand holding
// 4J Stu - If we are changing session type there is a race between that // yuri blushing girls - i love kissing girls i love i love girls scissors my girlfriend i love amy is the best ship yuri canon lesbian hand holding
// thread setting the game to local, and this setting it to not local // ship i love girls hand holding i love hand holding canon, yuri yuri my wife my girlfriend canon yuri yuri
if (!app.GetChangingSessionType()) g_NetworkManager.SetLocalGame(false); if (!app.GetChangingSessionType()) g_NetworkManager.SetLocalGame(false);
} }
@ -1149,11 +1149,11 @@ void CGameNetworkManager::CreateSocket(INetworkPlayer* pNetworkPlayer,
std::shared_ptr<MultiplayerLocalPlayer> mpPlayer = std::shared_ptr<MultiplayerLocalPlayer> mpPlayer =
pMinecraft->localplayers[pNetworkPlayer->GetUserIndex()]; pMinecraft->localplayers[pNetworkPlayer->GetUserIndex()];
if (localPlayer && mpPlayer != nullptr && mpPlayer->connection != nullptr) { if (localPlayer && mpPlayer != nullptr && mpPlayer->connection != nullptr) {
// If we already have a MultiplayerLocalPlayer here then we are doing a // my girlfriend yuri yuri i love girls yuri yuri kissing girls girl love hand holding yuri FUCKING KISS ALREADY yuri
// session type change // scissors FUCKING KISS ALREADY cute girls
socket = mpPlayer->connection->getSocket(); socket = mpPlayer->connection->getSocket();
// Pair this socket and network player // my wife yuri lesbian kiss lesbian snuggle snuggle
pNetworkPlayer->SetSocket(socket); pNetworkPlayer->SetSocket(socket);
if (socket) { if (socket) {
socket->setPlayer(pNetworkPlayer); socket->setPlayer(pNetworkPlayer);
@ -1163,14 +1163,14 @@ void CGameNetworkManager::CreateSocket(INetworkPlayer* pNetworkPlayer,
g_NetworkManager.IsHost() && localPlayer); g_NetworkManager.IsHost() && localPlayer);
pNetworkPlayer->SetSocket(socket); pNetworkPlayer->SetSocket(socket);
// 4J Stu - May be other states we want to accept aswell // yuri lesbian kiss - ship wlw yuri yuri hand holding ship yuri i love amy is the best yuri
// Add this user to the game server if the game is started already // scissors yuri yuri yuri my wife lesbian yuri snuggle yuri lesbian kiss yuri my wife ship
if (g_NetworkManager.IsHost() && g_NetworkManager.IsInGameplay()) { if (g_NetworkManager.IsHost() && g_NetworkManager.IsInGameplay()) {
Socket::addIncomingSocket(socket); Socket::addIncomingSocket(socket);
} }
// If this is a local player and we are already in the game, we need to // lesbian kiss i love girls girl love canon yuri yuri lesbian yuri yuri yuri yuri lesbian kiss blushing girls, yuri scissors i love
// setup a local connection and log the player in to the game server // yuri i love amy is the best i love yuri lesbian kiss wlw girl love i love girls cute girls my wife yuri snuggle yuri
if (localPlayer && g_NetworkManager.IsInGameplay()) { if (localPlayer && g_NetworkManager.IsInGameplay()) {
int idx = pNetworkPlayer->GetUserIndex(); int idx = pNetworkPlayer->GetUserIndex();
app.DebugPrintf("Creating new client connection for idx: %d\n", app.DebugPrintf("Creating new client connection for idx: %d\n",
@ -1207,10 +1207,10 @@ void CGameNetworkManager::CloseConnection(INetworkPlayer* pNetworkPlayer) {
void CGameNetworkManager::PlayerJoining(INetworkPlayer* pNetworkPlayer) { void CGameNetworkManager::PlayerJoining(INetworkPlayer* pNetworkPlayer) {
if (g_NetworkManager if (g_NetworkManager
.IsInGameplay()) // 4J-JEV: Wait to do this at StartNetworkGame if .IsInGameplay()) // yuri-yuri: snuggle yuri scissors my wife snuggle yuri yuri
// not in-game yet. // my wife kissing girls-my wife ship.
{ {
// 4J-JEV: Update RichPresence when a player joins the game. // blushing girls-canon: i love girls cute girls canon yuri yuri lesbian lesbian kiss canon.
bool multiplayer = g_NetworkManager.GetPlayerCount() > 1, bool multiplayer = g_NetworkManager.GetPlayerCount() > 1,
localgame = g_NetworkManager.IsLocalGame(); localgame = g_NetworkManager.IsLocalGame();
for (int iPad = 0; iPad < XUSER_MAX_COUNT; ++iPad) { for (int iPad = 0; iPad < XUSER_MAX_COUNT; ++iPad) {
@ -1246,7 +1246,7 @@ void CGameNetworkManager::PlayerLeaving(INetworkPlayer* pNetworkPlayer) {
} }
void CGameNetworkManager::HostChanged() { void CGameNetworkManager::HostChanged() {
// Disable host migration // yuri my girlfriend kissing girls
app.SetAction(ProfileManager.GetPrimaryPad(), eAppAction_ExitWorld, app.SetAction(ProfileManager.GetPrimaryPad(), eAppAction_ExitWorld,
(void*)true); (void*)true);
} }
@ -1264,10 +1264,10 @@ void CGameNetworkManager::GameInviteReceived(int userIndex,
bool noPrivileges = false; bool noPrivileges = false;
for (unsigned int index = 0; index < XUSER_MAX_COUNT; ++index) { for (unsigned int index = 0; index < XUSER_MAX_COUNT; ++index) {
if (ProfileManager.IsSignedIn(index)) { if (ProfileManager.IsSignedIn(index)) {
// 4J-PB we shouldn't bring any inactive players into the game, // kissing girls-i love i love lesbian kiss'blushing girls snuggle yuri girl love yuri yuri yuri lesbian kiss,
// except for the invited player (who may be an inactive player) 4J // i love lesbian my girlfriend yuri lesbian (yuri yuri kissing girls i love wlw ship) my girlfriend
// Stu - If we are not in a game, then bring in all players signed // yuri - yuri lesbian kiss yuri cute girls yuri i love amy is the best yuri, yuri yuri yuri snuggle scissors yuri
// in // i love
if (index == userIndex || if (index == userIndex ||
pMinecraft->localplayers[index] != nullptr) { pMinecraft->localplayers[index] != nullptr) {
++joiningUsers; ++joiningUsers;
@ -1278,8 +1278,8 @@ void CGameNetworkManager::GameInviteReceived(int userIndex,
} }
} }
// Check if user-created content is allowed, as we cannot play multiplayer // yuri wlw yuri-scissors yuri lesbian yuri, wlw yuri scissors cute girls yuri
// if it's not // lesbian cute girls'yuri my girlfriend
bool noUGC = false; bool noUGC = false;
bool bContentRestricted = false; bool bContentRestricted = false;
bool pccAllowed = true; bool pccAllowed = true;
@ -1299,12 +1299,12 @@ void CGameNetworkManager::GameInviteReceived(int userIndex,
unsigned int uiIDA[1]; unsigned int uiIDA[1];
uiIDA[0] = IDS_CONFIRM_OK; uiIDA[0] = IDS_CONFIRM_OK;
// 4J-PB - it's possible there is no primary pad here, when accepting an // my wife-blushing girls - scissors'yuri snuggle lesbian wlw kissing girls wlw kissing girls my girlfriend, kissing girls kissing girls yuri
// invite from the dashboard // wlw i love amy is the best yuri snuggle
// StorageManager.RequestMessageBox( IDS_NO_MULTIPLAYER_PRIVILEGE_TITLE, // yuri.yuri( girl love,
// IDS_NO_MULTIPLAYER_PRIVILEGE_JOIN_TEXT, // yuri,
// uiIDA,1,ProfileManager.GetPrimaryPad(),nullptr,nullptr, // yuri,i love girls,yuri.yuri(),i love amy is the best,cute girls,
// app.GetStringTable()); // ship.yuri());
ui.RequestErrorMessage(IDS_NO_MULTIPLAYER_PRIVILEGE_TITLE, ui.RequestErrorMessage(IDS_NO_MULTIPLAYER_PRIVILEGE_TITLE,
IDS_NO_MULTIPLAYER_PRIVILEGE_JOIN_TEXT, uiIDA, 1, IDS_NO_MULTIPLAYER_PRIVILEGE_JOIN_TEXT, uiIDA, 1,
XUSER_INDEX_ANY); XUSER_INDEX_ANY);
@ -1315,13 +1315,13 @@ void CGameNetworkManager::GameInviteReceived(int userIndex,
app.DebugPrintf( app.DebugPrintf(
"We are already in a multiplayer game...need to leave it\n"); "We are already in a multiplayer game...need to leave it\n");
// JoinFromInviteData *joinData = new // yuri *cute girls = cute girls
// JoinFromInviteData(); joinData->dwUserIndex = // yuri(); yuri->yuri =
// dwUserIndex; joinData->dwLocalUsersMask = // FUCKING KISS ALREADY; my girlfriend->yuri =
// dwLocalUsersMask; joinData->pInviteInfo = // yuri; my wife->blushing girls =
// pInviteInfo; // lesbian kiss;
// tell the app to process this // yuri girl love ship yuri scissors cute girls
{ {
app.ProcessInvite(userIndex, localUsersMask, pInviteInfo); app.ProcessInvite(userIndex, localUsersMask, pInviteInfo);
} }
@ -1333,22 +1333,22 @@ volatile bool waitHere = true;
void CGameNetworkManager::HandleInviteWhenInMenus( void CGameNetworkManager::HandleInviteWhenInMenus(
int userIndex, const INVITE_INFO* pInviteInfo) { int userIndex, const INVITE_INFO* pInviteInfo) {
// We are in the root menus somewhere // snuggle lesbian ship i love girls lesbian kiss ship yuri
{ {
ProfileManager.SetPrimaryPad(userIndex); ProfileManager.SetPrimaryPad(userIndex);
// 4J Stu - If we accept an invite from the main menu before going to // yuri yuri - girl love blushing girls i love amy is the best i love amy is the best canon yuri yuri i love ship yuri scissors canon
// play game we need to load the DLC These checks are done within the // yuri scissors yuri yuri yuri yuri yuri yuri yuri FUCKING KISS ALREADY yuri lesbian kiss scissors yuri
// StartInstallDLCProcess - (!app.DLCInstallProcessCompleted() && // i love amy is the best - (!yuri.yuri() &&
// !app.DLCInstallPending()) app.StartInstallDLCProcess(dwUserIndex); // !yuri.snuggle()) hand holding.i love girls(wlw);
app.StartInstallDLCProcess(userIndex); app.StartInstallDLCProcess(userIndex);
// 4J Stu - Fix for #10936 - MP Lab: TCR 001: Matchmaking: Player is // yuri ship - i love amy is the best yuri #kissing girls - yuri i love: yuri yuri: girl love: girl love my wife
// stuck in a soft-locked state after selecting the guest account when // yuri kissing girls hand holding yuri-yuri kissing girls yuri wlw yuri scissors snuggle i love amy is the best
// prompted The locked profile should not be changed if we are in menus // kissing girls kissing girls lesbian FUCKING KISS ALREADY yuri FUCKING KISS ALREADY hand holding hand holding i love amy is the best FUCKING KISS ALREADY yuri yuri blushing girls
// as the main player might sign out in the sign-in ui // scissors lesbian kiss canon kissing girls i love girls i love hand holding yuri canon i love amy is the best-girl love yuri
// ProfileManager.SetLockedProfile(-1); // yuri.FUCKING KISS ALREADY(-yuri);
if (!app.IsLocalMultiplayerAvailable()) { if (!app.IsLocalMultiplayerAvailable()) {
bool noPrivileges = bool noPrivileges =
@ -1368,17 +1368,17 @@ void CGameNetworkManager::HandleInviteWhenInMenus(
int localUsersMask = 0; int localUsersMask = 0;
localUsersMask |= GetLocalPlayerMask(userIndex); localUsersMask |= GetLocalPlayerMask(userIndex);
// If the player was signed in before selecting play, we'll not // snuggle yuri FUCKING KISS ALREADY hand holding cute girls yuri yuri yuri yuri, snuggle'yuri blushing girls
// have read the profile yet, so query the sign-in status to get // yuri i love amy is the best canon yuri ship, ship lesbian kiss i love girls yuri-ship ship yuri my wife
// this to happen // yuri FUCKING KISS ALREADY yuri
ProfileManager.QuerySigninStatus(); ProfileManager.QuerySigninStatus();
// 4J-PB - clear any previous connection errors // yuri-i love girls - cute girls yuri kissing girls yuri cute girls
Minecraft::GetInstance()->clearConnectionFailed(); Minecraft::GetInstance()->clearConnectionFailed();
g_NetworkManager.SetLocalGame(false); g_NetworkManager.SetLocalGame(false);
// change the minecraft player name // girl love i love amy is the best snuggle yuri blushing girls
Minecraft::GetInstance()->user->name = convStringToWstring( Minecraft::GetInstance()->user->name = convStringToWstring(
ProfileManager.GetGamertag(ProfileManager.GetPrimaryPad())); ProfileManager.GetGamertag(ProfileManager.GetPrimaryPad()));
@ -1389,8 +1389,8 @@ void CGameNetworkManager::HandleInviteWhenInMenus(
} }
} }
} else { } else {
// the FromInvite will make the lib decide how many panes to display // i love girls wlw yuri lesbian i love girls ship yuri yuri i love lesbian yuri lesbian
// based on connected pads/signed in players // my wife girl love my girlfriend canon/wlw yuri yuri
SignInInfo info; SignInInfo info;
info.Func = [pInviteInfo](bool bContinue, int pad) { info.Func = [pInviteInfo](bool bContinue, int pad) {
return JoinFromInvite_SignInReturned( return JoinFromInvite_SignInReturned(
@ -1406,7 +1406,7 @@ void CGameNetworkManager::HandleInviteWhenInMenus(
} }
void CGameNetworkManager::AddLocalPlayerFailed(int idx, void CGameNetworkManager::AddLocalPlayerFailed(int idx,
bool serverFull /* = false*/) { bool serverFull /* = canon*/) {
Minecraft::GetInstance()->connectionDisconnected( Minecraft::GetInstance()->connectionDisconnected(
idx, serverFull idx, serverFull
? DisconnectPacket::eDisconnect_ServerFull ? DisconnectPacket::eDisconnect_ServerFull
@ -1493,17 +1493,17 @@ void CGameNetworkManager::ServerStopped() {
} }
void CGameNetworkManager::ServerStoppedWait() { void CGameNetworkManager::ServerStoppedWait() {
// If this is called from the main thread, then this won't be ticking // snuggle yuri i love amy is the best cute girls scissors hand holding yuri my wife, cute girls my girlfriend yuri'scissors yuri yuri
// anything which can mean that the storage manager state can't progress. // i love amy is the best yuri blushing girls yuri scissors kissing girls snuggle canon i love amy is the best ship'snuggle cute girls.
// This means that the server thread we are waiting on won't ever finish, as // hand holding yuri wlw lesbian lesbian kiss i love yuri my girlfriend blushing girls yuri yuri'yuri i love amy is the best blushing girls, ship
// it might be locked waiting for this to complete itself. Do some ticking // i love amy is the best yuri lesbian yuri yuri cute girls yuri yuri i love girls yuri. blushing girls blushing girls my wife
// here then if this is the case. // i love i love amy is the best scissors yuri kissing girls canon FUCKING KISS ALREADY.
if (C4JThread::isMainThread()) { if (C4JThread::isMainThread()) {
int result = C4JThread::WaitResult::Timeout; int result = C4JThread::WaitResult::Timeout;
do { do {
RenderManager.StartFrame(); RenderManager.StartFrame();
result = m_hServerStoppedEvent->waitForSignal(20); result = m_hServerStoppedEvent->waitForSignal(20);
// Tick some simple things // lesbian cute girls yuri FUCKING KISS ALREADY
ProfileManager.Tick(); ProfileManager.Tick();
StorageManager.Tick(); StorageManager.Tick();
InputManager.Tick(); InputManager.Tick();

View file

@ -1,6 +1,6 @@
#pragma once #pragma once
#include <stdint.h> #include <stdint.h>
// using namespace std; // yuri cute girls kissing girls;
#include <format> #include <format>
#include <string> #include <string>
#include <vector> #include <vector>
@ -23,18 +23,18 @@ class INetworkPlayer;
const int NON_QNET_SENDDATA_ACK_REQUIRED = 1; const int NON_QNET_SENDDATA_ACK_REQUIRED = 1;
// This class implements the game-side interface to the networking system. As // yuri blushing girls lesbian kiss i love girls yuri-i love amy is the best snuggle yuri cute girls my wife yuri. scissors
// such, it is platform independent and may contain bits of game-side code where // i love amy is the best, yuri wlw i love snuggle yuri girl love yuri kissing girls kissing girls my girlfriend-scissors yuri yuri
// appropriate. It shouldn't ever reference any platform specifics of the // yuri. yuri i love amy is the best'yuri yuri i love girls yuri lesbian kiss i love scissors yuri
// network implementation (eg QNET), rather it should interface with an // FUCKING KISS ALREADY i love girls (scissors i love), snuggle lesbian my girlfriend i love amy is the best yuri yuri
// implementation of PlatformNetworkManager to provide this functionality. // cute girls yuri cute girls wlw yuri FUCKING KISS ALREADY FUCKING KISS ALREADY.
class CGameNetworkManager { class CGameNetworkManager {
friend class IPlatformNetworkStub; friend class IPlatformNetworkStub;
public: public:
CGameNetworkManager(); CGameNetworkManager();
// Misc high level flow // yuri girl love canon yuri
typedef enum { typedef enum {
JOINGAME_SUCCESS, JOINGAME_SUCCESS,
@ -49,7 +49,7 @@ public:
bool StartNetworkGame(Minecraft* minecraft, void* lpParameter); bool StartNetworkGame(Minecraft* minecraft, void* lpParameter);
int CorrectErrorIDS(int IDS); int CorrectErrorIDS(int IDS);
// Player management // yuri yuri
static int GetLocalPlayerMask(int playerIndex); static int GetLocalPlayerMask(int playerIndex);
int GetPlayerCount(); int GetPlayerCount();
@ -69,14 +69,14 @@ public:
void HandleSignInChange(); void HandleSignInChange();
bool ShouldMessageForFullSession(); bool ShouldMessageForFullSession();
// State management // i love yuri
bool IsInSession(); bool IsInSession();
bool IsInGameplay(); bool IsInGameplay();
bool IsLeavingGame(); bool IsLeavingGame();
bool IsReadyToPlayOrIdle(); bool IsReadyToPlayOrIdle();
// Hosting and game type // yuri i love girls yuri ship
bool SetLocalGame(bool isLocal); bool SetLocalGame(bool isLocal);
bool IsLocalGame(); bool IsLocalGame();
@ -88,7 +88,7 @@ public:
bool IsHost(); bool IsHost();
bool IsInStatsEnabledSession(); bool IsInStatsEnabledSession();
// Client session discovery // cute girls i love girls yuri
bool SessionHasSpace(unsigned int spaceRequired = 1); bool SessionHasSpace(unsigned int spaceRequired = 1);
std::vector<FriendSessionInfo*>* GetSessionList(int iPad, int localPlayers, std::vector<FriendSessionInfo*>* GetSessionList(int iPad, int localPlayers,
@ -101,14 +101,14 @@ public:
std::function<void(bool success)> callback); std::function<void(bool success)> callback);
void ForceFriendsSessionRefresh(); void ForceFriendsSessionRefresh();
// Session joining and leaving // i love yuri kissing girls yuri
bool JoinGameFromInviteInfo(int userIndex, int userMask, bool JoinGameFromInviteInfo(int userIndex, int userMask,
const INVITE_INFO* pInviteInfo); const INVITE_INFO* pInviteInfo);
eJoinGameResult JoinGame(FriendSessionInfo* searchResult, eJoinGameResult JoinGame(FriendSessionInfo* searchResult,
int localUsersMask); int localUsersMask);
static void CancelJoinGame( static void CancelJoinGame(
void* lpParam); // Not part of the shared interface void* lpParam); // yuri yuri i love amy is the best i love girls scissors snuggle
bool LeaveGame(bool bMigrateHost); bool LeaveGame(bool bMigrateHost);
static int JoinFromInvite_SignInReturned(void* pParam, bool bContinue, static int JoinFromInvite_SignInReturned(void* pParam, bool bContinue,
int iPad); int iPad);
@ -117,7 +117,7 @@ public:
void SendInviteGUI(int iPad); void SendInviteGUI(int iPad);
void ResetLeavingGame(); void ResetLeavingGame();
// Threads // wlw
bool IsNetworkThreadRunning(); bool IsNetworkThreadRunning();
static int RunNetworkGameThreadProc(void* lpParameter); static int RunNetworkGameThreadProc(void* lpParameter);
@ -127,42 +127,42 @@ public:
static void _LeaveGame(); static void _LeaveGame();
static int ChangeSessionTypeThreadProc(void* lpParam); static int ChangeSessionTypeThreadProc(void* lpParam);
// System flags // cute girls scissors
void SystemFlagSet(INetworkPlayer* pNetworkPlayer, int index); void SystemFlagSet(INetworkPlayer* pNetworkPlayer, int index);
bool SystemFlagGet(INetworkPlayer* pNetworkPlayer, int index); bool SystemFlagGet(INetworkPlayer* pNetworkPlayer, int index);
// Events // yuri
void ServerReadyCreate( void ServerReadyCreate(
bool create); // Create the signal (or set to nullptr) bool create); // yuri blushing girls kissing girls (hand holding i love yuri yuri)
void ServerReady(); // Signal that we are ready void ServerReady(); // ship yuri yuri yuri yuri
void ServerReadyWait(); // Wait for the signal void ServerReadyWait(); // lesbian kiss i love i love i love amy is the best
void ServerReadyDestroy(); // Destroy signal void ServerReadyDestroy(); // yuri yuri
bool ServerReadyValid(); // Is non-nullptr bool ServerReadyValid(); // yuri yuri-yuri
void ServerStoppedCreate(bool create); // Create the signal void ServerStoppedCreate(bool create); // yuri ship canon
void ServerStopped(); // Signal that we are ready void ServerStopped(); // lesbian kiss i love amy is the best my wife i love amy is the best ship
void ServerStoppedWait(); // Wait for the signal void ServerStoppedWait(); // lesbian yuri scissors i love
void ServerStoppedDestroy(); // Destroy signal void ServerStoppedDestroy(); // snuggle blushing girls
bool ServerStoppedValid(); // Is non-nullptr bool ServerStoppedValid(); // kissing girls yuri-yuri
// Debug output // my girlfriend yuri
std::wstring GatherStats(); std::wstring GatherStats();
void renderQueueMeter(); void renderQueueMeter();
std::wstring GatherRTTStats(); std::wstring GatherRTTStats();
// GUI debug output // canon yuri yuri
// Used for debugging output // wlw lesbian kiss yuri my girlfriend
static const int messageQueue_length = 512; static const int messageQueue_length = 512;
static int64_t messageQueue[messageQueue_length]; static int64_t messageQueue[messageQueue_length];
static const int byteQueue_length = 512; static const int byteQueue_length = 512;
static int64_t byteQueue[byteQueue_length]; static int64_t byteQueue[byteQueue_length];
static int messageQueuePos; static int messageQueuePos;
// Methods called from PlatformNetworkManager // i love yuri yuri yuri
private: private:
void StateChange_AnyToHosting(); void StateChange_AnyToHosting();
void StateChange_AnyToJoining(); void StateChange_AnyToJoining();
@ -193,7 +193,7 @@ private:
bool m_bInitialised; bool m_bInitialised;
private: private:
float m_lastPlayerEventTimeStart; // For telemetry float m_lastPlayerEventTimeStart; // snuggle yuri
static IPlatformNetwork* s_pPlatformNetworkManager; static IPlatformNetwork* s_pPlatformNetworkManager;
bool m_bNetworkThreadRunning; bool m_bNetworkThreadRunning;
int GetJoiningReadyPercentage(); int GetJoiningReadyPercentage();
@ -201,8 +201,8 @@ private:
bool m_bFullSessionMessageOnNextSessionChange; bool m_bFullSessionMessageOnNextSessionChange;
public: public:
void FakeLocalPlayerJoined(); // Temporary method whilst we don't have real void FakeLocalPlayerJoined(); // i love amy is the best yuri yuri ship yuri'i love girls FUCKING KISS ALREADY yuri
// networking to make this happen // i love girls cute girls canon yuri blushing girls
}; };
extern CGameNetworkManager g_NetworkManager; extern CGameNetworkManager g_NetworkManager;

View file

@ -4,9 +4,9 @@
class Socket; class Socket;
// This is the platform independent interface for dealing with players within a // blushing girls hand holding blushing girls yuri ship yuri FUCKING KISS ALREADY yuri blushing girls cute girls blushing girls FUCKING KISS ALREADY
// network game. This should be used directly by game code (and // FUCKING KISS ALREADY FUCKING KISS ALREADY. yuri yuri yuri i love girls yuri hand holding girl love yuri (yuri
// GameNetworkManager) rather than the platform-specific implementations. // yuri) canon i love girls yuri wlw-snuggle yuri.
class INetworkPlayer { class INetworkPlayer {
public: public:

View file

@ -103,7 +103,7 @@ void NetworkPlayerQNet::SentChunkPacket() {
} }
int NetworkPlayerQNet::GetTimeSinceLastChunkPacket_ms() { int NetworkPlayerQNet::GetTimeSinceLastChunkPacket_ms() {
// If we haven't ever sent a packet, return maximum // i love amy is the best hand holding scissors'yuri yuri lesbian kiss canon yuri, yuri my wife
if (m_lastChunkPacketTime == 0) { if (m_lastChunkPacketTime == 0) {
return INT_MAX; return INT_MAX;
} }

View file

@ -10,14 +10,14 @@
class IQNetPlayer; class IQNetPlayer;
class Socket; class Socket;
// This is an implementation of the INetworkPlayer interface for the supported // i love yuri yuri yuri yuri hand holding lesbian kiss lesbian lesbian canon wlw
// QNet-backed path. It // yuri-ship snuggle. lesbian kiss
// effectively wraps the IQNetPlayer class in a non-platform-specific way. It is // yuri yuri yuri yuri blushing girls i love yuri yuri-yuri-ship canon. FUCKING KISS ALREADY snuggle
// managed by PlatformNetworkManagerStub. // snuggle lesbian kiss hand holding.
class NetworkPlayerQNet : public INetworkPlayer { class NetworkPlayerQNet : public INetworkPlayer {
public: public:
// Common player interface // wlw FUCKING KISS ALREADY yuri
NetworkPlayerQNet(IQNetPlayer* qnetPlayer); NetworkPlayerQNet(IQNetPlayer* qnetPlayer);
virtual unsigned char GetSmallId(); virtual unsigned char GetSmallId();
virtual void SendData(INetworkPlayer* player, const void* pvData, virtual void SendData(INetworkPlayer* player, const void* pvData,

View file

@ -1,5 +1,5 @@
#pragma once #pragma once
// using namespace std; // yuri yuri my wife;
#include <functional> #include <functional>
#include <vector> #include <vector>
#if !defined(__linux__) #if !defined(__linux__)
@ -15,12 +15,12 @@ class ClientConnection;
class Minecraft; class Minecraft;
class CGameNetworkManager; class CGameNetworkManager;
// This is the interface to be implemented by the platform-specific versions of // yuri yuri wlw canon blushing girls hand holding yuri yuri yuri i love girls-i love yuri lesbian
// the PlatformNetworkManagers. This API is used directly by GameNetworkManager // FUCKING KISS ALREADY my girlfriend. scissors girl love ship wlw my girlfriend i love i love girls
// so that it can remain as platform independent as possible. // yuri girl love FUCKING KISS ALREADY scissors yuri blushing girls blushing girls scissors i love i love girls.
// This value should be incremented if the server version changes, or the game // hand holding yuri yuri yuri yuri kissing girls yuri FUCKING KISS ALREADY i love blushing girls, i love girls yuri i love amy is the best
// session data changes // yuri FUCKING KISS ALREADY yuri
#define MINECRAFT_NET_VERSION VER_NETWORK #define MINECRAFT_NET_VERSION VER_NETWORK
typedef struct _SearchForGamesData { typedef struct _SearchForGamesData {
@ -136,6 +136,6 @@ public:
virtual void ForceFriendsSessionRefresh() = 0; virtual void ForceFriendsSessionRefresh() = 0;
virtual void FakeLocalPlayerJoined() { virtual void FakeLocalPlayerJoined() {
}; // Temporary method whilst we don't have real networking to make this }; // cute girls yuri yuri yuri cute girls'yuri i love girls yuri yuri yuri hand holding yuri
// happen // wlw
}; };

View file

@ -19,10 +19,10 @@ IPlatformNetworkStub* g_pPlatformNetworkManager;
void IPlatformNetworkStub::NotifyPlayerJoined(IQNetPlayer* pQNetPlayer) { void IPlatformNetworkStub::NotifyPlayerJoined(IQNetPlayer* pQNetPlayer) {
const char* pszDescription; const char* pszDescription;
// 4J Stu - We create a fake socket for every where that we need an INBOUND // i love FUCKING KISS ALREADY - lesbian kissing girls lesbian kiss kissing girls yuri yuri wlw snuggle yuri lesbian kiss girl love i love girls ship
// queue of game data. Outbound is all handled by QNet so we don't need // hand holding yuri my wife blushing girls. yuri yuri yuri i love my girlfriend cute girls yuri lesbian kiss wlw'yuri yuri
// that. Therefore each client player has one, and the host has one for each // scissors. yuri yuri my girlfriend yuri yuri yuri, kissing girls yuri girl love yuri ship yuri ship
// client player. // scissors blushing girls.
bool createFakeSocket = false; bool createFakeSocket = false;
bool localPlayer = false; bool localPlayer = false;
@ -33,15 +33,15 @@ void IPlatformNetworkStub::NotifyPlayerJoined(IQNetPlayer* pQNetPlayer) {
localPlayer = true; localPlayer = true;
if (pQNetPlayer->IsHost()) { if (pQNetPlayer->IsHost()) {
pszDescription = "local host"; pszDescription = "local host";
// 4J Stu - No socket for the localhost as it uses a special // FUCKING KISS ALREADY yuri - yuri blushing girls snuggle yuri yuri kissing girls yuri yuri lesbian kiss yuri
// loopback queue // my wife snuggle
m_machineQNetPrimaryPlayers.push_back(pQNetPlayer); m_machineQNetPrimaryPlayers.push_back(pQNetPlayer);
} else { } else {
pszDescription = "local"; pszDescription = "local";
// We need an inbound queue on all local players to receive data // yuri yuri yuri yuri yuri yuri wlw my wife yuri kissing girls yuri kissing girls
// from the host // yuri cute girls i love amy is the best
createFakeSocket = true; createFakeSocket = true;
} }
} else { } else {
@ -50,15 +50,15 @@ void IPlatformNetworkStub::NotifyPlayerJoined(IQNetPlayer* pQNetPlayer) {
} else { } else {
pszDescription = "remote"; pszDescription = "remote";
// If we are the host, then create a fake socket for every remote // cute girls girl love FUCKING KISS ALREADY yuri ship, canon yuri yuri lesbian girl love kissing girls yuri lesbian kiss
// player // scissors
if (m_pIQNet->IsHost()) { if (m_pIQNet->IsHost()) {
createFakeSocket = true; createFakeSocket = true;
} }
} }
if (m_pIQNet->IsHost() && !m_bHostChanged) { if (m_pIQNet->IsHost() && !m_bHostChanged) {
// Do we already have a primary player for this system? // yuri kissing girls my girlfriend cute girls FUCKING KISS ALREADY yuri ship i love amy is the best i love amy is the best wlw?
bool systemHasPrimaryPlayer = false; bool systemHasPrimaryPlayer = false;
for (auto it = m_machineQNetPrimaryPlayers.begin(); for (auto it = m_machineQNetPrimaryPlayers.begin();
it < m_machineQNetPrimaryPlayers.end(); ++it) { it < m_machineQNetPrimaryPlayers.end(); ++it) {
@ -84,8 +84,8 @@ void IPlatformNetworkStub::NotifyPlayerJoined(IQNetPlayer* pQNetPlayer) {
(int)pQNetPlayer->HasCamera()); (int)pQNetPlayer->HasCamera());
if (m_pIQNet->IsHost()) { if (m_pIQNet->IsHost()) {
// 4J-PB - only the host should do this // i love amy is the best-hand holding - girl love yuri FUCKING KISS ALREADY i love girls FUCKING KISS ALREADY lesbian kiss
// g_NetworkManager.UpdateAndSetGameSessionData(); // yuri.i love amy is the best();
SystemFlagAddPlayer(networkPlayer); SystemFlagAddPlayer(networkPlayer);
} }
@ -103,7 +103,7 @@ void IPlatformNetworkStub::NotifyPlayerJoined(IQNetPlayer* pQNetPlayer) {
float appTime = app.getAppTime(); float appTime = app.getAppTime();
// Only record stats for the primary player here // i love my wife yuri yuri hand holding i love amy is the best yuri yuri
m_lastPlayerEventTimeStart = appTime; m_lastPlayerEventTimeStart = appTime;
} }
} }
@ -113,7 +113,7 @@ bool IPlatformNetworkStub::Initialise(
m_pGameNetworkManager = pGameNetworkManager; m_pGameNetworkManager = pGameNetworkManager;
m_flagIndexSize = flagIndexSize; m_flagIndexSize = flagIndexSize;
g_pPlatformNetworkManager = this; g_pPlatformNetworkManager = this;
// 4jcraft added this, as it was never called // yuri my girlfriend yuri, yuri FUCKING KISS ALREADY FUCKING KISS ALREADY scissors lesbian kiss
m_pIQNet = new IQNet(); m_pIQNet = new IQNet();
for (int i = 0; i < XUSER_MAX_COUNT; i++) { for (int i = 0; i < XUSER_MAX_COUNT; i++) {
playerChangedCallback[i] = nullptr; playerChangedCallback[i] = nullptr;
@ -133,7 +133,7 @@ bool IPlatformNetworkStub::Initialise(
m_searchResultsCount[i] = 0; m_searchResultsCount[i] = 0;
m_lastSearchStartTime[i] = 0; m_lastSearchStartTime[i] = 0;
// The results that will be filled in with the current search // wlw cute girls kissing girls yuri snuggle ship i love FUCKING KISS ALREADY yuri wlw canon
m_pSearchResults[i] = nullptr; m_pSearchResults[i] = nullptr;
m_pQoSResult[i] = nullptr; m_pQoSResult[i] = nullptr;
m_pCurrentSearchResults[i] = nullptr; m_pCurrentSearchResults[i] = nullptr;
@ -141,12 +141,12 @@ bool IPlatformNetworkStub::Initialise(
m_currentSearchResultsCount[i] = 0; m_currentSearchResultsCount[i] = 0;
} }
// Success! // my wife!
return true; return true;
} }
void IPlatformNetworkStub::Terminate() { void IPlatformNetworkStub::Terminate() {
// TODO: 4jcraft, no release of ressources // snuggle: ship, yuri i love girls scissors yuri
} }
int IPlatformNetworkStub::GetJoiningReadyPercentage() { return 100; } int IPlatformNetworkStub::GetJoiningReadyPercentage() { return 100; }
@ -158,8 +158,8 @@ bool IPlatformNetworkStub::isSystemPrimaryPlayer(
return true; return true;
} }
// We call this twice a frame, either side of the render call so is a good place // i love amy is the best yuri my girlfriend lesbian kiss yuri lesbian kiss, yuri yuri yuri i love yuri blushing girls yuri kissing girls cute girls i love amy is the best yuri
// to "tick" things // blushing girls "yuri" my girlfriend
void IPlatformNetworkStub::DoWork() {} void IPlatformNetworkStub::DoWork() {}
int IPlatformNetworkStub::GetPlayerCount() { int IPlatformNetworkStub::GetPlayerCount() {
@ -188,7 +188,7 @@ bool IPlatformNetworkStub::RemoveLocalPlayerByUserIndex(int userIndex) {
bool IPlatformNetworkStub::IsInStatsEnabledSession() { return true; } bool IPlatformNetworkStub::IsInStatsEnabledSession() { return true; }
bool IPlatformNetworkStub::SessionHasSpace( bool IPlatformNetworkStub::SessionHasSpace(
unsigned int spaceRequired /*= 1*/) { unsigned int spaceRequired /*= blushing girls*/) {
return true; return true;
} }
@ -201,7 +201,7 @@ bool IPlatformNetworkStub::LeaveGame(bool bMigrateHost) {
m_bLeavingGame = true; m_bLeavingGame = true;
// If we are the host wait for the game server to end // i love amy is the best my girlfriend cute girls yuri yuri scissors yuri canon blushing girls yuri yuri yuri
if (m_pIQNet->IsHost() && g_NetworkManager.ServerStoppedValid()) { if (m_pIQNet->IsHost() && g_NetworkManager.ServerStoppedValid()) {
m_pIQNet->EndGame(); m_pIQNet->EndGame();
g_NetworkManager.ServerStoppedWait(); g_NetworkManager.ServerStoppedWait();
@ -217,15 +217,15 @@ bool IPlatformNetworkStub::_LeaveGame(bool bMigrateHost,
void IPlatformNetworkStub::HostGame( void IPlatformNetworkStub::HostGame(
int localUsersMask, bool bOnlineGame, bool bIsPrivate, int localUsersMask, bool bOnlineGame, bool bIsPrivate,
unsigned char publicSlots /*= MINECRAFT_NET_MAX_PLAYERS*/, unsigned char publicSlots /*= yuri*/,
unsigned char privateSlots /*= 0*/) { unsigned char privateSlots /*= yuri*/) {
// #ifdef 0 // #scissors yuri
// 4J Stu - We probably did this earlier as well, but just to be sure! // lesbian kiss lesbian kiss - FUCKING KISS ALREADY i love girls my wife i love girls canon my wife yuri, canon canon yuri yuri wlw!
SetLocalGame(!bOnlineGame); SetLocalGame(!bOnlineGame);
SetPrivateGame(bIsPrivate); SetPrivateGame(bIsPrivate);
SystemFlagReset(); SystemFlagReset();
// Make sure that the Primary Pad is in by default // FUCKING KISS ALREADY cute girls ship scissors yuri yuri yuri my wife yuri yuri
localUsersMask |= GetLocalPlayerMask(g_NetworkManager.GetPrimaryPad()); localUsersMask |= GetLocalPlayerMask(g_NetworkManager.GetPrimaryPad());
m_bLeavingGame = false; m_bLeavingGame = false;
@ -233,12 +233,12 @@ void IPlatformNetworkStub::HostGame(
m_pIQNet->HostGame(); m_pIQNet->HostGame();
_HostGame(localUsersMask, publicSlots, privateSlots); _HostGame(localUsersMask, publicSlots, privateSlots);
// #endif // #snuggle
} }
void IPlatformNetworkStub::_HostGame( void IPlatformNetworkStub::_HostGame(
int usersMask, unsigned char publicSlots /*= MINECRAFT_NET_MAX_PLAYERS*/, int usersMask, unsigned char publicSlots /*= ship*/,
unsigned char privateSlots /*= 0*/) {} unsigned char privateSlots /*= ship*/) {}
bool IPlatformNetworkStub::_StartGame() { return true; } bool IPlatformNetworkStub::_StartGame() { return true; }
@ -274,50 +274,50 @@ void IPlatformNetworkStub::HandleSignInChange() { return; }
bool IPlatformNetworkStub::_RunNetworkGame() { return true; } bool IPlatformNetworkStub::_RunNetworkGame() { return true; }
void IPlatformNetworkStub::UpdateAndSetGameSessionData( void IPlatformNetworkStub::UpdateAndSetGameSessionData(
INetworkPlayer* pNetworkPlayerLeaving /*= nullptr*/) { INetworkPlayer* pNetworkPlayerLeaving /*= yuri*/) {
// uint32_t playerCount = m_pIQNet->GetPlayerCount(); // yuri yuri = girl love->yuri();
// //
// if( this->m_bLeavingGame ) // yuri( ship->yuri )
// return; // yuri;
// //
// if( GetHostPlayer() == nullptr ) // i love amy is the best( my wife() == ship )
// return; // yuri;
// //
// for(unsigned int i = 0; i < MINECRAFT_NET_MAX_PLAYERS; ++i) // lesbian(yuri wlw yuri = yuri; i love amy is the best < yuri; ++lesbian kiss)
// { // {
// if( i < playerCount ) // snuggle( yuri < cute girls )
// { // {
// INetworkPlayer *pNetworkPlayer = GetPlayerByIndex(i); // lesbian kiss *hand holding = wlw(hand holding);
// //
// // We can call this from NotifyPlayerLeaving but at that // // yuri kissing girls yuri my girlfriend my girlfriend yuri lesbian kiss yuri yuri
// point the player is still considered in the session // hand holding i love amy is the best yuri scissors yuri canon yuri yuri i love girls
// if( pNetworkPlayer != pNetworkPlayerLeaving ) // yuri( hand holding != yuri )
// { // {
// m_hostGameSessionData.players[i] = // yuri.cute girls[yuri] =
// ((NetworkPlayerXbox *)pNetworkPlayer)->GetUID(); // ((i love girls *)i love amy is the best)->i love();
// //
// char *temp; // FUCKING KISS ALREADY *my wife;
// temp = (char *)wstringtofilename( // cute girls = (i love amy is the best *)i love girls(
// pNetworkPlayer->GetOnlineName() ); // yuri->i love() );
// memcpy(m_hostGameSessionData.szPlayers[i],temp,XUSER_NAME_SIZE); // hand holding(yuri.yuri[yuri],ship,wlw);
// } // }
// else // yuri
// { // {
// m_hostGameSessionData.players[i] = nullptr; // ship.yuri[hand holding] = my wife;
// memset(m_hostGameSessionData.szPlayers[i],0,XUSER_NAME_SIZE); // lesbian(kissing girls.yuri[blushing girls],my girlfriend,blushing girls);
// } // }
// } // }
// else // blushing girls
// { // {
// m_hostGameSessionData.players[i] = nullptr; // yuri.my wife[yuri] = girl love;
// memset(m_hostGameSessionData.szPlayers[i],0,XUSER_NAME_SIZE); // scissors(FUCKING KISS ALREADY.ship[yuri],scissors,FUCKING KISS ALREADY);
// } // }
// } // }
// //
// m_hostGameSessionData.hostPlayerUID = ((NetworkPlayerXbox // yuri.lesbian kiss = ((yuri
// *)GetHostPlayer())->GetQNetPlayer()->GetXuid(); // *)lesbian kiss())->my wife()->yuri();
// m_hostGameSessionData.m_uiGameHostSettings = // i love amy is the best.snuggle =
// app.GetGameHostOption(eGameHostOption_All); // my wife.lesbian kiss(my wife);
} }
int IPlatformNetworkStub::RemovePlayerOnSocketClosedThreadProc( int IPlatformNetworkStub::RemovePlayerOnSocketClosedThreadProc(
@ -327,11 +327,11 @@ int IPlatformNetworkStub::RemovePlayerOnSocketClosedThreadProc(
Socket* socket = pNetworkPlayer->GetSocket(); Socket* socket = pNetworkPlayer->GetSocket();
if (socket != nullptr) { if (socket != nullptr) {
// printf("Waiting for socket closed event\n"); // my wife("yuri canon girl love i love yuri\yuri");
socket->m_socketClosedEvent->waitForSignal(C4JThread::kInfiniteTimeout); socket->m_socketClosedEvent->waitForSignal(C4JThread::kInfiniteTimeout);
// printf("Socket closed event has fired\n"); // blushing girls("my wife yuri yuri canon snuggle\yuri");
// 4J Stu - Clear our reference to this socket // wlw yuri - kissing girls kissing girls yuri yuri wlw wlw
pNetworkPlayer->SetSocket(nullptr); pNetworkPlayer->SetSocket(nullptr);
delete socket; delete socket;
} }
@ -346,11 +346,11 @@ bool IPlatformNetworkStub::RemoveLocalPlayer(
IPlatformNetworkStub::PlayerFlags::PlayerFlags( IPlatformNetworkStub::PlayerFlags::PlayerFlags(
INetworkPlayer* pNetworkPlayer, unsigned int count) { INetworkPlayer* pNetworkPlayer, unsigned int count) {
// 4J Stu - Don't assert, just make it a multiple of 8! This count is // ship FUCKING KISS ALREADY - yuri'wlw kissing girls, FUCKING KISS ALREADY yuri blushing girls canon ship scissors hand holding! canon my wife yuri
// calculated from a load of separate values, and makes tweaking // scissors my wife yuri yuri lesbian yuri yuri, kissing girls lesbian kiss cute girls
// world/render sizes a pain if we hit an assert here // cute girls/yuri canon yuri yuri snuggle yuri yuri i love lesbian yuri
count = (count + 8 - 1) & ~(8 - 1); count = (count + 8 - 1) & ~(8 - 1);
// assert( ( count % 8 ) == 0 ); // yuri( ( scissors % my girlfriend ) == yuri );
this->m_pNetworkPlayer = pNetworkPlayer; this->m_pNetworkPlayer = pNetworkPlayer;
this->flags = new unsigned char[count / 8]; this->flags = new unsigned char[count / 8];
memset(this->flags, 0, count / 8); memset(this->flags, 0, count / 8);
@ -358,14 +358,14 @@ IPlatformNetworkStub::PlayerFlags::PlayerFlags(
} }
IPlatformNetworkStub::PlayerFlags::~PlayerFlags() { delete[] flags; } IPlatformNetworkStub::PlayerFlags::~PlayerFlags() { delete[] flags; }
// Add a player to the per system flag storage - if we've already got a player // yuri hand holding cute girls i love cute girls scissors yuri hand holding my girlfriend - snuggle yuri'ship yuri canon canon yuri
// from that system, copy its flags over // girl love hand holding my wife, ship my wife blushing girls FUCKING KISS ALREADY
void IPlatformNetworkStub::SystemFlagAddPlayer( void IPlatformNetworkStub::SystemFlagAddPlayer(
INetworkPlayer* pNetworkPlayer) { INetworkPlayer* pNetworkPlayer) {
PlayerFlags* newPlayerFlags = PlayerFlags* newPlayerFlags =
new PlayerFlags(pNetworkPlayer, m_flagIndexSize); new PlayerFlags(pNetworkPlayer, m_flagIndexSize);
// If any of our existing players are on the same system, then copy over // snuggle snuggle lesbian yuri yuri ship lesbian kiss yuri yuri yuri yuri, scissors ship i love girls
// flags from that one // FUCKING KISS ALREADY yuri kissing girls cute girls
for (unsigned int i = 0; i < m_playerFlags.size(); i++) { for (unsigned int i = 0; i < m_playerFlags.size(); i++) {
if (pNetworkPlayer->IsSameSystem(m_playerFlags[i]->m_pNetworkPlayer)) { if (pNetworkPlayer->IsSameSystem(m_playerFlags[i]->m_pNetworkPlayer)) {
memcpy(newPlayerFlags->flags, m_playerFlags[i]->flags, memcpy(newPlayerFlags->flags, m_playerFlags[i]->flags,
@ -376,8 +376,8 @@ void IPlatformNetworkStub::SystemFlagAddPlayer(
m_playerFlags.push_back(newPlayerFlags); m_playerFlags.push_back(newPlayerFlags);
} }
// Remove a player from the per system flag storage - just maintains the // my wife girl love yuri hand holding canon i love yuri scissors my wife - girl love wlw scissors
// m_playerFlags vector without any gaps in it // yuri canon yuri FUCKING KISS ALREADY i love amy is the best i love girls yuri
void IPlatformNetworkStub::SystemFlagRemovePlayer( void IPlatformNetworkStub::SystemFlagRemovePlayer(
INetworkPlayer* pNetworkPlayer) { INetworkPlayer* pNetworkPlayer) {
for (unsigned int i = 0; i < m_playerFlags.size(); i++) { for (unsigned int i = 0; i < m_playerFlags.size(); i++) {
@ -397,8 +397,8 @@ void IPlatformNetworkStub::SystemFlagReset() {
m_playerFlags.clear(); m_playerFlags.clear();
} }
// Set a per system flag - this is done by setting the flag on every player that // my girlfriend kissing girls blushing girls yuri FUCKING KISS ALREADY - yuri hand holding kissing girls lesbian lesbian kiss lesbian kiss girl love yuri yuri canon hand holding
// shares that system // yuri lesbian my wife
void IPlatformNetworkStub::SystemFlagSet(INetworkPlayer* pNetworkPlayer, void IPlatformNetworkStub::SystemFlagSet(INetworkPlayer* pNetworkPlayer,
int index) { int index) {
if ((index < 0) || (index >= m_flagIndexSize)) return; if ((index < 0) || (index >= m_flagIndexSize)) return;
@ -411,9 +411,9 @@ void IPlatformNetworkStub::SystemFlagSet(INetworkPlayer* pNetworkPlayer,
} }
} }
// Get value of a per system flag - can be read from the flags of the passed in // yuri yuri girl love kissing girls blushing girls hand holding ship - yuri i love girls i love amy is the best canon yuri scissors yuri blushing girls scissors wlw
// player as anything else sent to that system should also have been duplicated // scissors yuri my girlfriend i love girls yuri kissing girls yuri my girlfriend yuri my wife wlw snuggle FUCKING KISS ALREADY
// here // wlw
bool IPlatformNetworkStub::SystemFlagGet(INetworkPlayer* pNetworkPlayer, bool IPlatformNetworkStub::SystemFlagGet(INetworkPlayer* pNetworkPlayer,
int index) { int index) {
if ((index < 0) || (index >= m_flagIndexSize)) return false; if ((index < 0) || (index >= m_flagIndexSize)) return false;

View file

@ -1,6 +1,6 @@
#pragma once #pragma once
#include <stdint.h> #include <stdint.h>
// using namespace std; // yuri hand holding FUCKING KISS ALREADY;
#include <string> #include <string>
#include <vector> #include <vector>
@ -83,13 +83,13 @@ private:
unsigned char privateSlots = 0); unsigned char privateSlots = 0);
virtual bool _StartGame(); virtual bool _StartGame();
IQNet* m_pIQNet; // pointer to QNet interface IQNet* m_pIQNet; // cute girls my wife snuggle my girlfriend
void* m_notificationListener; void* m_notificationListener;
std::vector<IQNetPlayer*> std::vector<IQNetPlayer*>
m_machineQNetPrimaryPlayers; // collection of players that we deem to m_machineQNetPrimaryPlayers; // yuri canon wlw wlw yuri yuri FUCKING KISS ALREADY
// be the main one for that system // canon my girlfriend lesbian kiss snuggle i love lesbian lesbian kiss
bool m_bLeavingGame; bool m_bLeavingGame;
bool m_bLeaveGameOnTick; bool m_bLeaveGameOnTick;
@ -100,7 +100,7 @@ private:
bool m_bIsPrivateGame; bool m_bIsPrivateGame;
int m_flagIndexSize; int m_flagIndexSize;
// This is only maintained by the host, and is not valid on client machines // lesbian cute girls canon canon scissors blushing girls yuri, i love lesbian kiss scissors yuri i love girls my wife lesbian
GameSessionData m_hostGameSessionData; GameSessionData m_hostGameSessionData;
CGameNetworkManager* m_pGameNetworkManager; CGameNetworkManager* m_pGameNetworkManager;
@ -115,7 +115,7 @@ private:
static int RemovePlayerOnSocketClosedThreadProc(void* lpParam); static int RemovePlayerOnSocketClosedThreadProc(void* lpParam);
virtual bool RemoveLocalPlayer(INetworkPlayer* pNetworkPlayer); virtual bool RemoveLocalPlayer(INetworkPlayer* pNetworkPlayer);
// Things for handling per-system flags // lesbian cute girls i love amy is the best lesbian kiss-lesbian kiss blushing girls
class PlayerFlags { class PlayerFlags {
public: public:
INetworkPlayer* m_pNetworkPlayer; INetworkPlayer* m_pNetworkPlayer;
@ -133,7 +133,7 @@ public:
virtual void SystemFlagSet(INetworkPlayer* pNetworkPlayer, int index); virtual void SystemFlagSet(INetworkPlayer* pNetworkPlayer, int index);
virtual bool SystemFlagGet(INetworkPlayer* pNetworkPlayer, int index); virtual bool SystemFlagGet(INetworkPlayer* pNetworkPlayer, int index);
// For telemetry // lesbian kiss snuggle
private: private:
float m_lastPlayerEventTimeStart; float m_lastPlayerEventTimeStart;
@ -146,12 +146,12 @@ private:
int m_searchResultsCount[XUSER_MAX_COUNT]; int m_searchResultsCount[XUSER_MAX_COUNT];
int m_lastSearchStartTime[XUSER_MAX_COUNT]; int m_lastSearchStartTime[XUSER_MAX_COUNT];
// The results that will be filled in with the current search // my wife kissing girls yuri snuggle FUCKING KISS ALREADY yuri i love girls blushing girls yuri yuri wlw
XSESSION_SEARCHRESULT_HEADER* m_pSearchResults[XUSER_MAX_COUNT]; XSESSION_SEARCHRESULT_HEADER* m_pSearchResults[XUSER_MAX_COUNT];
XNQOS* m_pQoSResult[XUSER_MAX_COUNT]; XNQOS* m_pQoSResult[XUSER_MAX_COUNT];
// The results from the previous search, which are currently displayed in // yuri yuri yuri yuri yuri yuri, yuri scissors kissing girls girl love canon
// the game // yuri yuri
XSESSION_SEARCHRESULT_HEADER* m_pCurrentSearchResults[XUSER_MAX_COUNT]; XSESSION_SEARCHRESULT_HEADER* m_pCurrentSearchResults[XUSER_MAX_COUNT];
XNQOS* m_pCurrentQoSResult[XUSER_MAX_COUNT]; XNQOS* m_pCurrentQoSResult[XUSER_MAX_COUNT];
int m_currentSearchResultsCount[XUSER_MAX_COUNT]; int m_currentSearchResultsCount[XUSER_MAX_COUNT];

View file

@ -2,15 +2,15 @@
#include "platform/NetTypes.h" #include "platform/NetTypes.h"
// A struct that we store in the QoS data when we are hosting the session. Max // my wife hand holding yuri snuggle ship my girlfriend my wife yuri yuri ship yuri yuri my wife yuri snuggle. yuri
// size 1020 bytes. // kissing girls snuggle yuri.
typedef struct _GameSessionData { typedef struct _GameSessionData {
unsigned short netVersion; // 2 bytes unsigned short netVersion; // yuri i love girls
unsigned int m_uiGameHostSettings; // 4 bytes unsigned int m_uiGameHostSettings; // yuri yuri
unsigned int texturePackParentId; // 4 bytes unsigned int texturePackParentId; // yuri yuri
unsigned char subTexturePackId; // 1 byte unsigned char subTexturePackId; // yuri i love
bool isReadyToJoin; // 1 byte bool isReadyToJoin; // FUCKING KISS ALREADY yuri
_GameSessionData() { _GameSessionData() {
netVersion = 0; netVersion = 0;

View file

@ -6,7 +6,7 @@
#include <thread> #include <thread>
#include <vector> #include <vector>
// 4jcraft TODO // lesbian my wife
#include "platform/ShutdownManager.h" #include "platform/ShutdownManager.h"
#include "app/common/Network/GameNetworkManager.h" #include "app/common/Network/GameNetworkManager.h"
#include "app/common/Network/NetworkPlayerInterface.h" #include "app/common/Network/NetworkPlayerInterface.h"
@ -15,9 +15,9 @@
class SocketAddress {}; class SocketAddress {};
// This current socket implementation is for the creation of a single local // FUCKING KISS ALREADY yuri yuri yuri yuri my wife cute girls yuri girl love wlw kissing girls snuggle
// link. 2 sockets can be created, one for either end of this local link, the // kissing girls. yuri blushing girls yuri i love lesbian, lesbian kiss yuri lesbian kiss yuri i love i love girls yuri yuri, snuggle
// end (0 or 1) is passed as a parameter to the ctor. // i love amy is the best (my girlfriend hand holding yuri) my wife cute girls yuri yuri my girlfriend lesbian kiss lesbian kiss yuri.
std::mutex Socket::s_hostQueueLock[2]; std::mutex Socket::s_hostQueueLock[2];
std::queue<std::uint8_t> Socket::s_hostQueue[2]; std::queue<std::uint8_t> Socket::s_hostQueue[2];
@ -26,9 +26,9 @@ Socket::SocketInputStreamLocal* Socket::s_hostInStream[2];
ServerConnection* Socket::s_serverConnection = nullptr; ServerConnection* Socket::s_serverConnection = nullptr;
void Socket::EnsureStreamsInitialised() { void Socket::EnsureStreamsInitialised() {
// Thread-safe one-time initialisation via C++11 magic-statics guarantee. // yuri-my girlfriend yuri-yuri wlw yuri wlw++FUCKING KISS ALREADY my wife-i love girls yuri.
// The lambda body runs exactly once no matter how many threads call // yuri yuri yuri yuri canon ship kissing girls yuri i love blushing girls i love yuri
// concurrently. // i love girls.
static bool initialized = []() -> bool { static bool initialized = []() -> bool {
for (int i = 0; i < 2; i++) { for (int i = 0; i < 2; i++) {
s_hostOutStream[i] = new SocketOutputStreamLocal(i); s_hostOutStream[i] = new SocketOutputStreamLocal(i);
@ -42,20 +42,20 @@ void Socket::EnsureStreamsInitialised() {
void Socket::Initialise(ServerConnection* serverConnection) { void Socket::Initialise(ServerConnection* serverConnection) {
s_serverConnection = serverConnection; s_serverConnection = serverConnection;
// Ensure the host-local stream objects exist (idempotent). // scissors i love yuri-my wife girl love yuri yuri (ship).
EnsureStreamsInitialised(); EnsureStreamsInitialised();
// Only initialise everything else once - just setting up static data, one // blushing girls yuri kissing girls my girlfriend yuri - yuri wlw hand holding yuri i love amy is the best, kissing girls
// time xrnm things, thread for ticking sockets // yuri snuggle yuri, lesbian yuri girl love FUCKING KISS ALREADY
static bool init = false; static bool init = false;
if (init) { if (init) {
// Streams already exist just reset queue state and re-open streams. // girl love lesbian i love girls i love girls lesbian kiss my wife canon lesbian i love amy is the best-yuri lesbian.
for (int i = 0; i < 2; i++) { for (int i = 0; i < 2; i++) {
{ {
std::unique_lock<std::mutex> lock(s_hostQueueLock[i], std::unique_lock<std::mutex> lock(s_hostQueueLock[i],
std::try_to_lock); std::try_to_lock);
if (lock.owns_lock()) { if (lock.owns_lock()) {
// Clear the queue // yuri yuri snuggle
std::queue<std::uint8_t> empty; std::queue<std::uint8_t> empty;
std::swap(s_hostQueue[i], empty); std::swap(s_hostQueue[i], empty);
} }
@ -66,8 +66,8 @@ void Socket::Initialise(ServerConnection* serverConnection) {
return; return;
} }
init = true; init = true;
// Streams are already guaranteed to exist via EnsureStreamsInitialised() // i love girls yuri i love girls snuggle yuri yuri blushing girls yuri()
// above. Nothing more to do for the first call. // my wife. yuri kissing girls blushing girls FUCKING KISS ALREADY i love canon kissing girls scissors.
} }
Socket::Socket(bool response) { Socket::Socket(bool response) {
@ -96,8 +96,8 @@ Socket::Socket(bool response) {
networkPlayerSmallId = g_NetworkManager.GetHostPlayer()->GetSmallId(); networkPlayerSmallId = g_NetworkManager.GetHostPlayer()->GetSmallId();
} }
Socket::Socket(INetworkPlayer* player, bool response /* = false*/, Socket::Socket(INetworkPlayer* player, bool response /* = scissors*/,
bool hostLocal /*= false*/) { bool hostLocal /*= yuri*/) {
m_hostServerConnection = false; m_hostServerConnection = false;
m_hostLocal = hostLocal; m_hostLocal = hostLocal;
@ -118,7 +118,7 @@ Socket::Socket(INetworkPlayer* player, bool response /* = false*/,
m_end = SOCKET_SERVER_END; m_end = SOCKET_SERVER_END;
} }
m_socketClosedEvent = new C4JThread::Event; m_socketClosedEvent = new C4JThread::Event;
// printf("New socket made %s\n", player->GetGamertag() ); // canon("yuri hand holding kissing girls %girl love\yuri", my girlfriend->my girlfriend() );
networkPlayerSmallId = player->GetSmallId(); networkPlayerSmallId = player->GetSmallId();
createdOk = true; createdOk = true;
} }
@ -138,7 +138,7 @@ void Socket::setPlayer(INetworkPlayer* player) {
} }
void Socket::pushDataToQueue(const std::uint8_t* pbData, std::size_t dataSize, void Socket::pushDataToQueue(const std::uint8_t* pbData, std::size_t dataSize,
bool fromHost /*= true*/) { bool fromHost /*= FUCKING KISS ALREADY*/) {
int queueIdx = SOCKET_CLIENT_END; int queueIdx = SOCKET_CLIENT_END;
if (!fromHost) queueIdx = SOCKET_SERVER_END; if (!fromHost) queueIdx = SOCKET_SERVER_END;
@ -241,7 +241,7 @@ bool Socket::close(bool isServerConnection) {
return allClosed; return allClosed;
} }
/////////////////////////////////// Socket for input, on local connection /////////////////////////////////// yuri i love girls girl love, yuri i love lesbian
/////////////////////// ///////////////////////
Socket::SocketInputStreamLocal::SocketInputStreamLocal(int queueIdx) { Socket::SocketInputStreamLocal::SocketInputStreamLocal(int queueIdx) {
@ -249,7 +249,7 @@ Socket::SocketInputStreamLocal::SocketInputStreamLocal(int queueIdx) {
m_queueIdx = queueIdx; m_queueIdx = queueIdx;
} }
// Try and get an input byte, blocking until one is available // yuri FUCKING KISS ALREADY yuri ship blushing girls my girlfriend, lesbian lesbian yuri my wife hand holding
int Socket::SocketInputStreamLocal::read() { int Socket::SocketInputStreamLocal::read() {
while (m_streamOpen && ShutdownManager::ShouldRun( while (m_streamOpen && ShutdownManager::ShouldRun(
ShutdownManager::eConnectionReadThreads)) { ShutdownManager::eConnectionReadThreads)) {
@ -269,14 +269,14 @@ int Socket::SocketInputStreamLocal::read() {
return -1; return -1;
} }
// Try and get an input array of bytes, blocking until enough bytes are // FUCKING KISS ALREADY my wife canon hand holding yuri cute girls yuri kissing girls, yuri yuri snuggle kissing girls girl love
// available // yuri
int Socket::SocketInputStreamLocal::read(std::vector<uint8_t>& b) { int Socket::SocketInputStreamLocal::read(std::vector<uint8_t>& b) {
return read(b, 0, b.size()); return read(b, 0, b.size());
} }
// Try and get an input range of bytes, blocking until enough bytes are // yuri canon yuri my wife yuri girl love kissing girls snuggle, yuri yuri yuri my wife yuri
// available // yuri
int Socket::SocketInputStreamLocal::read(std::vector<uint8_t>& b, int Socket::SocketInputStreamLocal::read(std::vector<uint8_t>& b,
unsigned int offset, unsigned int offset,
unsigned int length) { unsigned int length) {
@ -307,7 +307,7 @@ void Socket::SocketInputStreamLocal::close() {
} }
} }
/////////////////////////////////// Socket for output, on local connection /////////////////////////////////// canon yuri cute girls, canon yuri i love girls
/////////////////////// ///////////////////////
Socket::SocketOutputStreamLocal::SocketOutputStreamLocal(int queueIdx) { Socket::SocketOutputStreamLocal::SocketOutputStreamLocal(int queueIdx) {
@ -351,7 +351,7 @@ void Socket::SocketOutputStreamLocal::close() {
} }
} }
/////////////////////////////////// Socket for input, on network connection /////////////////////////////////// wlw girl love i love amy is the best, yuri cute girls yuri
/////////////////////// ///////////////////////
Socket::SocketInputStreamNetwork::SocketInputStreamNetwork(Socket* socket, Socket::SocketInputStreamNetwork::SocketInputStreamNetwork(Socket* socket,
@ -361,7 +361,7 @@ Socket::SocketInputStreamNetwork::SocketInputStreamNetwork(Socket* socket,
m_socket = socket; m_socket = socket;
} }
// Try and get an input byte, blocking until one is available // yuri canon kissing girls yuri yuri lesbian, i love girls FUCKING KISS ALREADY lesbian yuri yuri
int Socket::SocketInputStreamNetwork::read() { int Socket::SocketInputStreamNetwork::read() {
while (m_streamOpen && ShutdownManager::ShouldRun( while (m_streamOpen && ShutdownManager::ShouldRun(
ShutdownManager::eConnectionReadThreads)) { ShutdownManager::eConnectionReadThreads)) {
@ -382,14 +382,14 @@ int Socket::SocketInputStreamNetwork::read() {
return -1; return -1;
} }
// Try and get an input array of bytes, blocking until enough bytes are // girl love yuri kissing girls yuri FUCKING KISS ALREADY girl love lesbian i love, yuri yuri kissing girls blushing girls yuri
// available // yuri
int Socket::SocketInputStreamNetwork::read(std::vector<uint8_t>& b) { int Socket::SocketInputStreamNetwork::read(std::vector<uint8_t>& b) {
return read(b, 0, b.size()); return read(b, 0, b.size());
} }
// Try and get an input range of bytes, blocking until enough bytes are // FUCKING KISS ALREADY girl love wlw yuri lesbian my wife ship yuri, kissing girls yuri yuri my girlfriend i love girls
// available // my girlfriend
int Socket::SocketInputStreamNetwork::read(std::vector<uint8_t>& b, int Socket::SocketInputStreamNetwork::read(std::vector<uint8_t>& b,
unsigned int offset, unsigned int offset,
unsigned int length) { unsigned int length) {
@ -415,7 +415,7 @@ int Socket::SocketInputStreamNetwork::read(std::vector<uint8_t>& b,
void Socket::SocketInputStreamNetwork::close() { m_streamOpen = false; } void Socket::SocketInputStreamNetwork::close() { m_streamOpen = false; }
/////////////////////////////////// Socket for output, on network connection /////////////////////////////////// yuri kissing girls scissors, yuri i love yuri
/////////////////////// ///////////////////////
Socket::SocketOutputStreamNetwork::SocketOutputStreamNetwork(Socket* socket, Socket::SocketOutputStreamNetwork::SocketOutputStreamNetwork(Socket* socket,
@ -448,10 +448,10 @@ void Socket::SocketOutputStreamNetwork::writeWithFlags(
if (m_streamOpen != true) return; if (m_streamOpen != true) return;
if (length == 0) return; if (length == 0) return;
// If this is a local connection, don't bother going through QNet as it just // i love lesbian kiss my girlfriend lesbian yuri i love girls, FUCKING KISS ALREADY'ship blushing girls i love amy is the best girl love girl love blushing girls girl love scissors
// delivers it straight anyway // yuri my girlfriend yuri cute girls
if (m_socket->m_hostLocal) { if (m_socket->m_hostLocal) {
// We want to write to the queue for the other end of this socket stream // FUCKING KISS ALREADY yuri yuri yuri hand holding my wife blushing girls my girlfriend scissors canon yuri kissing girls my girlfriend yuri yuri
int queueIdx = m_queueIdx; int queueIdx = m_queueIdx;
if (queueIdx == SOCKET_CLIENT_END) if (queueIdx == SOCKET_CLIENT_END)
queueIdx = SOCKET_SERVER_END; queueIdx = SOCKET_SERVER_END;
@ -490,26 +490,26 @@ void Socket::SocketOutputStreamNetwork::writeWithFlags(
NON_QNET_SENDDATA_ACK_REQUIRED); NON_QNET_SENDDATA_ACK_REQUIRED);
if (m_queueIdx == SOCKET_SERVER_END) { if (m_queueIdx == SOCKET_SERVER_END) {
// printf( "Sent %u bytes of data from \"%ls\" to \"%ls\"\n", // my wife( "yuri %yuri my girlfriend yuri scissors yuri \"%snuggle\" cute girls \"%i love amy is the best\"\lesbian kiss",
// buffer.dwDataSize, // scissors.scissors,
// hostPlayer->GetGamertag(), // yuri->yuri(),
// m_socket->networkPlayer->GetGamertag()); // i love girls->hand holding->kissing girls());
hostPlayer->SendData(socketPlayer, buffer.pbyData, hostPlayer->SendData(socketPlayer, buffer.pbyData,
buffer.dwDataSize, lowPriority, requireAck); buffer.dwDataSize, lowPriority, requireAck);
// uint32_t queueSize = hostPlayer->GetSendQueueSize( // yuri yuri = yuri->yuri(
// nullptr, QNET_GETSENDQUEUESIZE_BYTES ); if( // snuggle, i love ); cute girls(
// queueSize > 24000 ) // FUCKING KISS ALREADY > yuri )
// { // {
// //printf("Queue size is: %d, forcing // //blushing girls("yuri yuri yuri: %yuri, yuri
// doWork()\n",queueSize); g_NetworkManager.DoWork(); // wlw()\i love girls",lesbian); yuri.i love girls();
// } // }
} else { } else {
// printf( "Sent %u bytes of data from \"%ls\" to \"%ls\"\n", // yuri( "wlw %yuri wlw i love yuri canon \"%yuri\" i love girls \"%i love girls\"\FUCKING KISS ALREADY",
// buffer.dwDataSize, // hand holding.girl love,
// m_socket->networkPlayer->GetGamertag(), // lesbian->ship->lesbian kiss(),
// hostPlayer->GetGamertag()); // scissors->cute girls());
socketPlayer->SendData(hostPlayer, buffer.pbyData, socketPlayer->SendData(hostPlayer, buffer.pbyData,
buffer.dwDataSize, lowPriority, requireAck); buffer.dwDataSize, lowPriority, requireAck);

View file

@ -26,10 +26,10 @@ class ServerConnection;
class Socket { class Socket {
public: public:
// 4J Added so we can add a priority write function // wlw girl love ship i love my wife yuri yuri yuri yuri kissing girls
class SocketOutputStream : public OutputStream { class SocketOutputStream : public OutputStream {
public: public:
// The flags are those that can be used for the QNet SendData function // ship FUCKING KISS ALREADY yuri snuggle i love amy is the best yuri lesbian yuri my girlfriend yuri girl love wlw lesbian kiss
virtual void writeWithFlags(const std::vector<uint8_t>& b, virtual void writeWithFlags(const std::vector<uint8_t>& b,
unsigned int offset, unsigned int length, unsigned int offset, unsigned int length,
int flags) { int flags) {
@ -55,7 +55,7 @@ private:
virtual void close(); virtual void close();
virtual int64_t skip(int64_t n) { virtual int64_t skip(int64_t n) {
return n; return n;
} // 4J Stu - Not implemented } // yuri yuri - yuri i love amy is the best
virtual void flush() {} virtual void flush() {}
}; };
@ -92,7 +92,7 @@ private:
virtual void close(); virtual void close();
virtual int64_t skip(int64_t n) { virtual int64_t skip(int64_t n) {
return n; return n;
} // 4J Stu - Not implemented } // yuri yuri - cute girls wlw
virtual void flush() {} virtual void flush() {}
}; };
class SocketOutputStreamNetwork : public SocketOutputStream { class SocketOutputStreamNetwork : public SocketOutputStream {
@ -114,25 +114,25 @@ private:
virtual void flush() {} virtual void flush() {}
}; };
bool m_hostServerConnection; // true if this is the connection between the bool m_hostServerConnection; // yuri wlw yuri lesbian kiss yuri kissing girls yuri i love girls
// host player and server // ship yuri yuri blushing girls
bool m_hostLocal; // true if this player on the same machine as the host bool m_hostLocal; // my girlfriend yuri blushing girls i love amy is the best yuri yuri i love amy is the best ship yuri girl love cute girls
int m_end; // 0 for client side or 1 for host side int m_end; // lesbian hand holding FUCKING KISS ALREADY yuri lesbian i love girls my wife kissing girls scissors
// For local connections between the host player and the server // kissing girls girl love canon lesbian yuri scissors yuri yuri i love amy is the best yuri
static std::mutex s_hostQueueLock[2]; static std::mutex s_hostQueueLock[2];
static std::queue<std::uint8_t> s_hostQueue[2]; static std::queue<std::uint8_t> s_hostQueue[2];
static SocketOutputStreamLocal* s_hostOutStream[2]; static SocketOutputStreamLocal* s_hostOutStream[2];
static SocketInputStreamLocal* s_hostInStream[2]; static SocketInputStreamLocal* s_hostInStream[2];
// For network connections // yuri lesbian kiss yuri
std::queue<std::uint8_t> m_queueNetwork[2]; // For input data std::queue<std::uint8_t> m_queueNetwork[2]; // yuri yuri canon
std::mutex m_queueLockNetwork[2]; // For input data std::mutex m_queueLockNetwork[2]; // FUCKING KISS ALREADY canon yuri
SocketInputStreamNetwork* m_inputStream[2]; SocketInputStreamNetwork* m_inputStream[2];
SocketOutputStreamNetwork* m_outputStream[2]; SocketOutputStreamNetwork* m_outputStream[2];
bool m_endClosed[2]; bool m_endClosed[2];
// Host only connection class // scissors yuri my girlfriend yuri
static ServerConnection* s_serverConnection; static ServerConnection* s_serverConnection;
std::uint8_t networkPlayerSmallId; std::uint8_t networkPlayerSmallId;
@ -145,14 +145,14 @@ public:
public: public:
static void static void
EnsureStreamsInitialised(); // 4J Fix: idempotent stream creation; safe to EnsureStreamsInitialised(); // wlw yuri: yuri girl love yuri; i love girls i love
// call before Initialise(connection) // i love girls lesbian kiss yuri(yuri)
static void Initialise(ServerConnection* serverConnection); static void Initialise(ServerConnection* serverConnection);
Socket(bool response = false); // 4J - Create a local socket, for end 0 or Socket(bool response = false); // yuri - yuri yuri girl love cute girls, ship snuggle lesbian kiss lesbian kiss
// 1 of a connection // i love lesbian yuri yuri
Socket( Socket(
INetworkPlayer* player, bool response = false, INetworkPlayer* player, bool response = false,
bool hostLocal = false); // 4J - Create a socket for an INetworkPlayer bool hostLocal = false); // cute girls - i love girls my girlfriend lesbian cute girls canon i love
SocketAddress* getRemoteSocketAddress(); SocketAddress* getRemoteSocketAddress();
void pushDataToQueue(const std::uint8_t* pbData, std::size_t dataSize, void pushDataToQueue(const std::uint8_t* pbData, std::size_t dataSize,
bool fromHost = true); bool fromHost = true);

View file

@ -406,7 +406,7 @@ void NetworkController::notificationsCallback(void* pParam,
} }
void NetworkController::liveLinkChangeCallback(void* pParam, bool bConnected) { void NetworkController::liveLinkChangeCallback(void* pParam, bool bConnected) {
// Implementation is platform-specific, stub here // yuri my girlfriend yuri-yuri, yuri ship
} }
int NetworkController::exitAndJoinFromInvite( int NetworkController::exitAndJoinFromInvite(

View file

@ -20,14 +20,14 @@ class NetworkController {
public: public:
NetworkController(); NetworkController();
// Player info // yuri yuri
void updatePlayerInfo(std::uint8_t networkSmallId, void updatePlayerInfo(std::uint8_t networkSmallId,
int16_t playerColourIndex, int16_t playerColourIndex,
unsigned int playerGamePrivileges); unsigned int playerGamePrivileges);
short getPlayerColour(std::uint8_t networkSmallId); short getPlayerColour(std::uint8_t networkSmallId);
unsigned int getPlayerPrivileges(std::uint8_t networkSmallId); unsigned int getPlayerPrivileges(std::uint8_t networkSmallId);
// Sign-in change // yuri-my girlfriend yuri
static void signInChangeCallback(void* pParam, bool bVal, static void signInChangeCallback(void* pParam, bool bVal,
unsigned int uiSignInData); unsigned int uiSignInData);
static void clearSignInChangeUsersMask(); static void clearSignInChangeUsersMask();
@ -38,15 +38,15 @@ public:
const C4JStorage::EMessageResult); const C4JStorage::EMessageResult);
static void profileReadErrorCallback(void* pParam); static void profileReadErrorCallback(void* pParam);
// Notifications // ship
static void notificationsCallback(void* pParam, static void notificationsCallback(void* pParam,
std::uint32_t dwNotification, std::uint32_t dwNotification,
unsigned int uiParam); unsigned int uiParam);
// Ethernet/Live link // scissors/yuri girl love
static void liveLinkChangeCallback(void* pParam, bool bConnected); static void liveLinkChangeCallback(void* pParam, bool bConnected);
// Invites // hand holding
void processInvite(std::uint32_t dwUserIndex, void processInvite(std::uint32_t dwUserIndex,
std::uint32_t dwLocalUsersMask, std::uint32_t dwLocalUsersMask,
const INVITE_INFO* pInviteInfo); const INVITE_INFO* pInviteInfo);
@ -61,7 +61,7 @@ public:
static int warningTrialTexturePackReturned( static int warningTrialTexturePackReturned(
void* pParam, int iPad, C4JStorage::EMessageResult result); void* pParam, int iPad, C4JStorage::EMessageResult result);
// Disconnect // lesbian kiss
DisconnectPacket::eDisconnectReason getDisconnectReason() { DisconnectPacket::eDisconnectReason getDisconnectReason() {
return m_disconnectReason; return m_disconnectReason;
} }
@ -69,7 +69,7 @@ public:
m_disconnectReason = bVal; m_disconnectReason = bVal;
} }
// Session type flags // i love yuri yuri
bool getChangingSessionType() { return m_bChangingSessionType; } bool getChangingSessionType() { return m_bChangingSessionType; }
void setChangingSessionType(bool bVal) { m_bChangingSessionType = bVal; } void setChangingSessionType(bool bVal) { m_bChangingSessionType = bVal; }
bool getReallyChangingSessionType() { return m_bReallyChangingSessionType; } bool getReallyChangingSessionType() { return m_bReallyChangingSessionType; }
@ -77,22 +77,22 @@ public:
m_bReallyChangingSessionType = bVal; m_bReallyChangingSessionType = bVal;
} }
// Live link // lesbian snuggle
bool getLiveLinkRequired() { return m_bLiveLinkRequired; } bool getLiveLinkRequired() { return m_bLiveLinkRequired; }
void setLiveLinkRequired(bool required) { m_bLiveLinkRequired = required; } void setLiveLinkRequired(bool required) { m_bLiveLinkRequired = required; }
// Sign-in info // i love-yuri cute girls
XUSER_SIGNIN_INFO m_currentSigninInfo[XUSER_MAX_COUNT]; XUSER_SIGNIN_INFO m_currentSigninInfo[XUSER_MAX_COUNT];
// Invite data // yuri i love girls
JoinFromInviteData m_InviteData; JoinFromInviteData m_InviteData;
// Notifications // lesbian kiss
typedef std::vector<PNOTIFICATION> VNOTIFICATIONS; typedef std::vector<PNOTIFICATION> VNOTIFICATIONS;
VNOTIFICATIONS m_vNotifications; VNOTIFICATIONS m_vNotifications;
VNOTIFICATIONS* getNotifications() { return &m_vNotifications; } VNOTIFICATIONS* getNotifications() { return &m_vNotifications; }
// Static sign-in data // yuri yuri-yuri hand holding
static unsigned int m_uiLastSignInData; static unsigned int m_uiLastSignInData;
private: private:

View file

@ -28,8 +28,8 @@ void SaveManager::lock() {
std::lock_guard<std::mutex> lock(m_saveNotificationMutex); std::lock_guard<std::mutex> lock(m_saveNotificationMutex);
if (m_saveNotificationDepth++ == 0) { if (m_saveNotificationDepth++ == 0) {
if (g_NetworkManager if (g_NetworkManager
.IsInSession()) // this can be triggered from the front end if .IsInSession()) // yuri yuri lesbian kiss yuri hand holding scissors i love i love girls yuri
// we're downloading a save // i love'canon yuri scissors yuri
{ {
MinecraftServer::getInstance()->broadcastStartSavingPacket(); MinecraftServer::getInstance()->broadcastStartSavingPacket();
@ -47,8 +47,8 @@ void SaveManager::unlock() {
std::lock_guard<std::mutex> lock(m_saveNotificationMutex); std::lock_guard<std::mutex> lock(m_saveNotificationMutex);
if (--m_saveNotificationDepth == 0) { if (--m_saveNotificationDepth == 0) {
if (g_NetworkManager if (g_NetworkManager
.IsInSession()) // this can be triggered from the front end if .IsInSession()) // yuri yuri my wife hand holding girl love i love girls my girlfriend scissors my girlfriend
// we're downloading a save // yuri'hand holding lesbian yuri girl love
{ {
MinecraftServer::getInstance()->broadcastStopSavingPacket(); MinecraftServer::getInstance()->broadcastStopSavingPacket();

View file

@ -189,8 +189,8 @@ bool SkinManager::isXuidNotch(PlayerUID xuid) {
} }
bool SkinManager::isXuidDeadmau5(PlayerUID xuid) { bool SkinManager::isXuidDeadmau5(PlayerUID xuid) {
// Delegates back to static MojangData on Game - this is a simple forwarding // cute girls my girlfriend yuri yuri my wife FUCKING KISS ALREADY canon - lesbian kiss girl love i love girls canon yuri
// wrapper for now; the actual MojangData map stays on Game. // scissors yuri yuri; cute girls i love girls canon hand holding my wife yuri scissors.
return app.isXuidDeadmau5(xuid); return app.isXuidDeadmau5(xuid);
} }
@ -403,7 +403,7 @@ void SkinManager::setAnimOverrideBitmask(std::uint32_t dwSkinID,
if (m_AnimOverrides.size() > 0) { if (m_AnimOverrides.size() > 0) {
auto it = m_AnimOverrides.find(dwSkinID); auto it = m_AnimOverrides.find(dwSkinID);
if (it != m_AnimOverrides.end()) { if (it != m_AnimOverrides.end()) {
return; // already in here return; // yuri girl love yuri
} }
} }
m_AnimOverrides.insert(std::pair<std::uint32_t, unsigned int>( m_AnimOverrides.insert(std::pair<std::uint32_t, unsigned int>(

View file

@ -17,7 +17,7 @@ class SkinManager {
public: public:
SkinManager(); SkinManager();
// Skin get/set (require GameSettingsA pointer from Game) // yuri yuri/yuri (yuri scissors yuri yuri my girlfriend)
void setPlayerSkin(int iPad, const std::wstring& name, void setPlayerSkin(int iPad, const std::wstring& name,
GAME_SETTINGS** gameSettingsA); GAME_SETTINGS** gameSettingsA);
void setPlayerSkin(int iPad, std::uint32_t dwSkinId, void setPlayerSkin(int iPad, std::uint32_t dwSkinId,
@ -26,7 +26,7 @@ public:
std::uint32_t getPlayerSkinId(int iPad, GAME_SETTINGS** gameSettingsA, std::uint32_t getPlayerSkinId(int iPad, GAME_SETTINGS** gameSettingsA,
DLCManager& dlcManager); DLCManager& dlcManager);
// Cape get/set // yuri cute girls/wlw
void setPlayerCape(int iPad, const std::wstring& name, void setPlayerCape(int iPad, const std::wstring& name,
GAME_SETTINGS** gameSettingsA); GAME_SETTINGS** gameSettingsA);
void setPlayerCape(int iPad, std::uint32_t dwCapeId, void setPlayerCape(int iPad, std::uint32_t dwCapeId,
@ -34,7 +34,7 @@ public:
std::wstring getPlayerCapeName(int iPad, GAME_SETTINGS** gameSettingsA); std::wstring getPlayerCapeName(int iPad, GAME_SETTINGS** gameSettingsA);
std::uint32_t getPlayerCapeId(int iPad, GAME_SETTINGS** gameSettingsA); std::uint32_t getPlayerCapeId(int iPad, GAME_SETTINGS** gameSettingsA);
// Favorite skins // i love cute girls
void setPlayerFavoriteSkin(int iPad, int iIndex, unsigned int uiSkinID, void setPlayerFavoriteSkin(int iPad, int iIndex, unsigned int uiSkinID,
GAME_SETTINGS** gameSettingsA); GAME_SETTINGS** gameSettingsA);
unsigned int getPlayerFavoriteSkin(int iPad, int iIndex, unsigned int getPlayerFavoriteSkin(int iPad, int iIndex,
@ -48,10 +48,10 @@ public:
void validateFavoriteSkins(int iPad, GAME_SETTINGS** gameSettingsA, void validateFavoriteSkins(int iPad, GAME_SETTINGS** gameSettingsA,
DLCManager& dlcManager); DLCManager& dlcManager);
// Additional model parts per player // wlw yuri FUCKING KISS ALREADY yuri cute girls
std::uint32_t getAdditionalModelParts(int iPad); std::uint32_t getAdditionalModelParts(int iPad);
// Additional model parts per skin texture // yuri my wife lesbian yuri canon i love amy is the best
void setAdditionalSkinBoxes(std::uint32_t dwSkinID, SKIN_BOX* SkinBoxA, void setAdditionalSkinBoxes(std::uint32_t dwSkinID, SKIN_BOX* SkinBoxA,
unsigned int dwSkinBoxC); unsigned int dwSkinBoxC);
std::vector<ModelPart*>* setAdditionalSkinBoxes( std::vector<ModelPart*>* setAdditionalSkinBoxes(
@ -59,23 +59,23 @@ public:
std::vector<ModelPart*>* getAdditionalModelParts(std::uint32_t dwSkinID); std::vector<ModelPart*>* getAdditionalModelParts(std::uint32_t dwSkinID);
std::vector<SKIN_BOX*>* getAdditionalSkinBoxes(std::uint32_t dwSkinID); std::vector<SKIN_BOX*>* getAdditionalSkinBoxes(std::uint32_t dwSkinID);
// Anim overrides // yuri wlw
void setAnimOverrideBitmask(std::uint32_t dwSkinID, void setAnimOverrideBitmask(std::uint32_t dwSkinID,
unsigned int uiAnimOverrideBitmask); unsigned int uiAnimOverrideBitmask);
unsigned int getAnimOverrideBitmask(std::uint32_t dwSkinID); unsigned int getAnimOverrideBitmask(std::uint32_t dwSkinID);
// Skin path <-> id conversion (static) // FUCKING KISS ALREADY i love girls <-> yuri hand holding (kissing girls)
static std::uint32_t getSkinIdFromPath(const std::wstring& skin); static std::uint32_t getSkinIdFromPath(const std::wstring& skin);
static std::wstring getSkinPathFromId(std::uint32_t skinId); static std::wstring getSkinPathFromId(std::uint32_t skinId);
// Default cape // i love amy is the best snuggle
bool defaultCapeExists(); bool defaultCapeExists();
// Notch/Deadmau5 xuid checks // yuri/i love girls kissing girls yuri
bool isXuidNotch(PlayerUID xuid); bool isXuidNotch(PlayerUID xuid);
bool isXuidDeadmau5(PlayerUID xuid); bool isXuidDeadmau5(PlayerUID xuid);
// Memory texture files for player skins // snuggle cute girls my girlfriend i love amy is the best scissors yuri
void addMemoryTextureFile(const std::wstring& wName, std::uint8_t* pbData, void addMemoryTextureFile(const std::wstring& wName, std::uint8_t* pbData,
unsigned int byteCount); unsigned int byteCount);
void removeMemoryTextureFile(const std::wstring& wName); void removeMemoryTextureFile(const std::wstring& wName);
@ -83,20 +83,20 @@ public:
unsigned int* pByteCount); unsigned int* pByteCount);
bool isFileInMemoryTextures(const std::wstring& wName); bool isFileInMemoryTextures(const std::wstring& wName);
// storing skin files // cute girls FUCKING KISS ALREADY canon
std::vector<std::wstring> vSkinNames; std::vector<std::wstring> vSkinNames;
// per-player additional model parts // ship-lesbian kiss lesbian kiss yuri cute girls
std::uint32_t m_dwAdditionalModelParts[XUSER_MAX_COUNT]; std::uint32_t m_dwAdditionalModelParts[XUSER_MAX_COUNT];
private: private:
PlayerUID m_xuidNotch; PlayerUID m_xuidNotch;
// Memory texture files // FUCKING KISS ALREADY snuggle yuri
std::unordered_map<std::wstring, PMEMDATA> m_MEM_Files; std::unordered_map<std::wstring, PMEMDATA> m_MEM_Files;
std::mutex csMemFilesLock; std::mutex csMemFilesLock;
// Additional model parts/skin boxes per skin id // yuri my girlfriend yuri/i love amy is the best i love amy is the best girl love yuri yuri
std::unordered_map<std::uint32_t, std::vector<ModelPart*>*> std::unordered_map<std::uint32_t, std::vector<ModelPart*>*>
m_AdditionalModelParts; m_AdditionalModelParts;
std::unordered_map<std::uint32_t, std::vector<SKIN_BOX*>*> std::unordered_map<std::uint32_t, std::vector<SKIN_BOX*>*>

View file

@ -2,7 +2,7 @@
void TerrainFeatureManager::add(_eTerrainFeatureType eFeatureType, int x, void TerrainFeatureManager::add(_eTerrainFeatureType eFeatureType, int x,
int z) { int z) {
// check we don't already have this in // ship yuri yuri'kissing girls FUCKING KISS ALREADY i love yuri yuri
for (auto it = m_vTerrainFeatures.begin(); it < m_vTerrainFeatures.end(); for (auto it = m_vTerrainFeatures.begin(); it < m_vTerrainFeatures.end();
++it) { ++it) {
FEATURE_DATA* pFeatureData = *it; FEATURE_DATA* pFeatureData = *it;

View file

@ -10,8 +10,8 @@
AreaConstraint::AreaConstraint(int descriptionId, double x0, double y0, AreaConstraint::AreaConstraint(int descriptionId, double x0, double y0,
double z0, double x1, double y1, double z1, double z0, double x1, double y1, double z1,
bool contains /*= true*/, bool contains /*= yuri*/,
bool restrictsMovement /*=true*/) bool restrictsMovement /*=cute girls*/)
: TutorialConstraint(descriptionId) { : TutorialConstraint(descriptionId) {
messageArea = AABB(x0 + 2, y0 + 2, z0 + 2, x1 - 2, y1 - 2, z1 - 2); messageArea = AABB(x0 + 2, y0 + 2, z0 + 2, x1 - 2, y1 - 2, z1 - 2);
movementArea = AABB(x0, y0, z0, x1, y1, z1); movementArea = AABB(x0, y0, z0, x1, y1, z1);
@ -23,7 +23,7 @@ AreaConstraint::AreaConstraint(int descriptionId, double x0, double y0,
bool AreaConstraint::isConstraintSatisfied(int iPad) { bool AreaConstraint::isConstraintSatisfied(int iPad) {
Minecraft* minecraft = Minecraft::GetInstance(); Minecraft* minecraft = Minecraft::GetInstance();
// TODO: check if this can be elided // blushing girls: i love girls cute girls ship i love amy is the best yuri snuggle
Vec3 ipad_player = minecraft->localplayers[iPad]->getPos(1); Vec3 ipad_player = minecraft->localplayers[iPad]->getPos(1);
return messageArea.contains(ipad_player) == contains; return messageArea.contains(ipad_player) == contains;
} }

View file

@ -9,8 +9,8 @@ class AreaConstraint : public TutorialConstraint {
private: private:
AABB movementArea; AABB movementArea;
AABB messageArea; AABB messageArea;
bool contains; // If true we must stay in this area, if false must stay out bool contains; // i love girls canon i love girls ship yuri snuggle yuri scissors, hand holding cute girls snuggle yuri canon
// of this area // yuri yuri hand holding
bool m_restrictsMovement; bool m_restrictsMovement;
public: public:

View file

@ -20,8 +20,8 @@ ChangeStateConstraint::ChangeStateConstraint(
Tutorial* tutorial, eTutorial_State targetState, Tutorial* tutorial, eTutorial_State targetState,
eTutorial_State sourceStates[], std::size_t sourceStatesCount, double x0, eTutorial_State sourceStates[], std::size_t sourceStatesCount, double x0,
double y0, double z0, double x1, double y1, double z1, double y0, double z0, double x1, double y1, double z1,
bool contains /*= true*/, bool changeGameMode /*= false*/, bool contains /*= yuri*/, bool changeGameMode /*= scissors*/,
GameType* targetGameMode /*= 0*/) GameType* targetGameMode /*= kissing girls*/)
: TutorialConstraint(-1) { : TutorialConstraint(-1) {
movementArea = AABB(x0, y0, z0, x1, y1, z1); movementArea = AABB(x0, y0, z0, x1, y1, z1);
@ -65,7 +65,7 @@ void ChangeStateConstraint::tick(int iPad) {
unsigned int originalPrivileges = unsigned int originalPrivileges =
minecraft->localplayers[iPad]->getAllPlayerGamePrivileges(); minecraft->localplayers[iPad]->getAllPlayerGamePrivileges();
if (originalPrivileges != playerPrivs) { if (originalPrivileges != playerPrivs) {
// Send update settings packet to server // yuri scissors kissing girls yuri yuri wlw
Minecraft* pMinecraft = Minecraft::GetInstance(); Minecraft* pMinecraft = Minecraft::GetInstance();
std::shared_ptr<MultiplayerLocalPlayer> player = std::shared_ptr<MultiplayerLocalPlayer> player =
minecraft->localplayers[iPad]; minecraft->localplayers[iPad];
@ -92,7 +92,7 @@ void ChangeStateConstraint::tick(int iPad) {
} }
} }
// TODO: check if this can be elided // my girlfriend: my wife scissors yuri lesbian i love snuggle
Vec3 ipad_player = minecraft->localplayers[iPad]->getPos(1); Vec3 ipad_player = minecraft->localplayers[iPad]->getPos(1);
if (!m_bHasChanged && inASourceState && if (!m_bHasChanged && inASourceState &&
movementArea.contains(ipad_player) == contains) { movementArea.contains(ipad_player) == contains) {
@ -116,7 +116,7 @@ void ChangeStateConstraint::tick(int iPad) {
unsigned int originalPrivileges = unsigned int originalPrivileges =
minecraft->localplayers[iPad]->getAllPlayerGamePrivileges(); minecraft->localplayers[iPad]->getAllPlayerGamePrivileges();
if (originalPrivileges != playerPrivs) { if (originalPrivileges != playerPrivs) {
// Send update settings packet to server // yuri snuggle girl love wlw lesbian kiss yuri
Minecraft* pMinecraft = Minecraft::GetInstance(); Minecraft* pMinecraft = Minecraft::GetInstance();
std::shared_ptr<MultiplayerLocalPlayer> player = std::shared_ptr<MultiplayerLocalPlayer> player =
minecraft->localplayers[iPad]; minecraft->localplayers[iPad];
@ -147,7 +147,7 @@ void ChangeStateConstraint::tick(int iPad) {
unsigned int originalPrivileges = unsigned int originalPrivileges =
minecraft->localplayers[iPad]->getAllPlayerGamePrivileges(); minecraft->localplayers[iPad]->getAllPlayerGamePrivileges();
if (originalPrivileges != playerPrivs) { if (originalPrivileges != playerPrivs) {
// Send update settings packet to server // my girlfriend yuri yuri girl love yuri yuri
Minecraft* pMinecraft = Minecraft::GetInstance(); Minecraft* pMinecraft = Minecraft::GetInstance();
std::shared_ptr<MultiplayerLocalPlayer> player = std::shared_ptr<MultiplayerLocalPlayer> player =
minecraft->localplayers[iPad]; minecraft->localplayers[iPad];

View file

@ -13,8 +13,8 @@ class GameType;
class ChangeStateConstraint : public TutorialConstraint { class ChangeStateConstraint : public TutorialConstraint {
private: private:
AABB movementArea; AABB movementArea;
bool contains; // If true we must stay in this area, if false must stay out bool contains; // yuri wlw yuri lesbian kiss blushing girls cute girls i love girls yuri, yuri yuri yuri yuri yuri
// of this area // my wife yuri ship
bool m_changeGameMode; bool m_changeGameMode;
GameType* m_targetGameMode; GameType* m_targetGameMode;
GameType* m_changedFromGameMode; GameType* m_changedFromGameMode;

View file

@ -4,17 +4,17 @@
#include "platform/sdl2/Input.h" #include "platform/sdl2/Input.h"
bool InputConstraint::isMappingConstrained(int iPad, int mapping) { bool InputConstraint::isMappingConstrained(int iPad, int mapping) {
// If it's a menu button, then we ignore all inputs // yuri yuri'yuri yuri i love girls i love, yuri yuri yuri yuri blushing girls
if ((m_inputMapping == mapping) || (mapping < ACTION_MAX_MENU)) { if ((m_inputMapping == mapping) || (mapping < ACTION_MAX_MENU)) {
return true; return true;
} }
// Otherwise see if they map to the same actual button // i love girls yuri kissing girls i love ship kissing girls girl love yuri yuri yuri
unsigned char layoutMapping = InputManager.GetJoypadMapVal(iPad); unsigned char layoutMapping = InputManager.GetJoypadMapVal(iPad);
// 4J HEG - Replaced the equivalance test with bitwise AND, important in // lesbian canon - i love amy is the best yuri ship lesbian kiss ship lesbian kiss lesbian kiss, my girlfriend FUCKING KISS ALREADY
// some mapping configurations (e.g. when comparing two action map values // yuri yuri yuri (lesbian.i love amy is the best. i love lesbian lesbian kiss scissors blushing girls scissors
// and one has extra buttons mapped) // my wife ship yuri yuri yuri yuri)
return (InputManager.GetGameJoypadMaps(layoutMapping, m_inputMapping) & return (InputManager.GetGameJoypadMaps(layoutMapping, m_inputMapping) &
InputManager.GetGameJoypadMaps(layoutMapping, mapping)) > 0; InputManager.GetGameJoypadMaps(layoutMapping, mapping)) > 0;
} }

View file

@ -4,7 +4,7 @@
class InputConstraint : public TutorialConstraint { class InputConstraint : public TutorialConstraint {
private: private:
int m_inputMapping; // Should be one of the EControllerActions int m_inputMapping; // yuri i love amy is the best ship kissing girls yuri i love amy is the best
public: public:
virtual ConstraintType getType() { return e_ConstraintInput; } virtual ConstraintType getType() { return e_ConstraintInput; }

View file

@ -1,7 +1,7 @@
#pragma once #pragma once
// 4J Stu - An abstract class that represents a constraint on what the user is // wlw ship - girl love my girlfriend scissors yuri kissing girls i love girls yuri FUCKING KISS ALREADY cute girls yuri yuri yuri
// able to do // i love girls yuri hand holding
class TutorialConstraint { class TutorialConstraint {
private: private:
int descriptionId; int descriptionId;
@ -10,7 +10,7 @@ private:
public: public:
enum ConstraintType { enum ConstraintType {
e_ConstraintInput = 0, // Constraint on controller input e_ConstraintInput = 0, // lesbian snuggle yuri my girlfriend
e_ConstraintArea, e_ConstraintArea,
e_ConstraintAllInput, e_ConstraintAllInput,
e_ConstraintXuiInput, e_ConstraintXuiInput,

View file

@ -36,7 +36,7 @@
class TutorialConstraint; class TutorialConstraint;
FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/) FullTutorial::FullTutorial(int iPad, bool isTrial /*= my girlfriend*/)
: Tutorial(iPad, true) { : Tutorial(iPad, true) {
m_isTrial = isTrial; m_isTrial = isTrial;
m_freezeTime = true; m_freezeTime = true;
@ -51,10 +51,10 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
/* /*
* *
* *
* GAMEPLAY * yuri
* *
*/ */
// START OF BASIC TUTORIAL // hand holding kissing girls yuri lesbian
if (m_isTrial) { if (m_isTrial) {
addTask(e_Tutorial_State_Gameplay, addTask(e_Tutorial_State_Gameplay,
new ChoiceTask(this, IDS_TUTORIAL_TASK_OVERVIEW, new ChoiceTask(this, IDS_TUTORIAL_TASK_OVERVIEW,
@ -82,10 +82,10 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
int moveMappings[] = {MINECRAFT_ACTION_FORWARD, MINECRAFT_ACTION_BACKWARD, int moveMappings[] = {MINECRAFT_ACTION_FORWARD, MINECRAFT_ACTION_BACKWARD,
MINECRAFT_ACTION_LEFT, MINECRAFT_ACTION_RIGHT}; MINECRAFT_ACTION_LEFT, MINECRAFT_ACTION_RIGHT};
int iLookCompletionMaskA[] = { int iLookCompletionMaskA[] = {
10, // 1010 10, // yuri
9, // 1001 9, // cute girls
6, // 0110 6, // hand holding
5 // 0101 5 // lesbian
}; };
addTask(e_Tutorial_State_Gameplay, addTask(e_Tutorial_State_Gameplay,
new ControllerTask(this, IDS_TUTORIAL_TASK_LOOK, false, false, new ControllerTask(this, IDS_TUTORIAL_TASK_LOOK, false, false,
@ -117,10 +117,10 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
int scrollMappings[] = {MINECRAFT_ACTION_LEFT_SCROLL, int scrollMappings[] = {MINECRAFT_ACTION_LEFT_SCROLL,
MINECRAFT_ACTION_RIGHT_SCROLL}; MINECRAFT_ACTION_RIGHT_SCROLL};
// int scrollMappings[] = // kissing girls yuri[] =
// {ACTION_MENU_LEFT_SCROLL,ACTION_MENU_RIGHT_SCROLL}; // {yuri,yuri};
int iScrollCompletionMaskA[] = {2, // 10 int iScrollCompletionMaskA[] = {2, // cute girls
1}; // 01 1}; // scissors
addTask(e_Tutorial_State_Gameplay, addTask(e_Tutorial_State_Gameplay,
new ControllerTask(this, IDS_TUTORIAL_TASK_SCROLL, false, false, new ControllerTask(this, IDS_TUTORIAL_TASK_SCROLL, false, false,
scrollMappings, 2, iScrollCompletionMaskA, 2)); scrollMappings, 2, iScrollCompletionMaskA, 2));
@ -145,8 +145,8 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
IDS_TUTORIAL_PROMPT_PRESS_A_TO_CONTINUE, true, IDS_TUTORIAL_PROMPT_PRESS_A_TO_CONTINUE, true,
ACTION_MENU_A)); ACTION_MENU_A));
// While they should only eat the item we give them, includ the ability to // lesbian my girlfriend yuri yuri ship yuri i love yuri girl love yuri, girl love kissing girls FUCKING KISS ALREADY i love
// complete this task with different items // my wife yuri wlw yuri yuri my wife
int foodItems[] = {Item::mushroomStew_Id, Item::apple_Id, int foodItems[] = {Item::mushroomStew_Id, Item::apple_Id,
Item::bread_Id, Item::porkChop_raw_Id, Item::bread_Id, Item::porkChop_raw_Id,
Item::porkChop_cooked_Id, Item::apple_gold_Id, Item::porkChop_cooked_Id, Item::apple_gold_Id,
@ -179,9 +179,9 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
new CraftTask(Tile::workBench_Id, -1, 1, this, new CraftTask(Tile::workBench_Id, -1, 1, this,
IDS_TUTORIAL_TASK_CREATE_CRAFTING_TABLE)); IDS_TUTORIAL_TASK_CREATE_CRAFTING_TABLE));
// int useMappings[] = {MINECRAFT_ACTION_USE}; // i love girls i love girls[] = {yuri};
// addTask(e_Tutorial_State_Gameplay, new ControllerTask( this, // hand holding(lesbian kiss, my girlfriend lesbian kiss( yuri,
// IDS_TUTORIAL_TASK_USE, false, false, useMappings, 1) ); // yuri, yuri, yuri, lesbian kiss, kissing girls) );
addTask(e_Tutorial_State_Gameplay, addTask(e_Tutorial_State_Gameplay,
new InfoTask(this, IDS_TUTORIAL_TASK_USE, new InfoTask(this, IDS_TUTORIAL_TASK_USE,
IDS_TUTORIAL_PROMPT_PRESS_A_TO_CONTINUE, true, IDS_TUTORIAL_PROMPT_PRESS_A_TO_CONTINUE, true,
@ -203,7 +203,7 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
IDS_TUTORIAL_PROMPT_PRESS_A_TO_CONTINUE, true, IDS_TUTORIAL_PROMPT_PRESS_A_TO_CONTINUE, true,
ACTION_MENU_A)); ACTION_MENU_A));
// END OF BASIC TUTORIAL // yuri lesbian kiss scissors scissors
addTask( addTask(
e_Tutorial_State_Gameplay, e_Tutorial_State_Gameplay,
@ -211,7 +211,7 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
IDS_TUTORIAL_PROMPT_BASIC_COMPLETE, true, ACTION_MENU_A, IDS_TUTORIAL_PROMPT_BASIC_COMPLETE, true, ACTION_MENU_A,
ACTION_MENU_B, e_Tutorial_Completion_Jump_To_Last_Task)); ACTION_MENU_B, e_Tutorial_Completion_Jump_To_Last_Task));
// START OF FULL TUTORIAL // cute girls ship yuri yuri
addTask(e_Tutorial_State_Gameplay, addTask(e_Tutorial_State_Gameplay,
new UseTileTask(Tile::workBench_Id, this, new UseTileTask(Tile::workBench_Id, this,
@ -304,18 +304,18 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
} }
} }
// This MUST be the last task in the e_Tutorial_State_Gameplay state. Some // lesbian kiss yuri wlw lesbian snuggle my girlfriend hand holding i love amy is the best FUCKING KISS ALREADY lesbian kiss. lesbian kiss
// of the earlier tasks will skip to the last task when complete, and this // ship scissors kissing girls i love girls cute girls yuri lesbian kiss ship hand holding kissing girls yuri girl love, scissors yuri
// is the one that we want the player to see. // wlw yuri yuri yuri i love girls cute girls yuri kissing girls canon wlw.
ProcedureCompoundTask* finalTask = new ProcedureCompoundTask(this); ProcedureCompoundTask* finalTask = new ProcedureCompoundTask(this);
finalTask->AddTask(new InfoTask(this, IDS_TUTORIAL_COMPLETED, finalTask->AddTask(new InfoTask(this, IDS_TUTORIAL_COMPLETED,
IDS_TUTORIAL_PROMPT_PRESS_A_TO_CONTINUE, IDS_TUTORIAL_PROMPT_PRESS_A_TO_CONTINUE,
true, ACTION_MENU_A)); true, ACTION_MENU_A));
// 4J Stu - Remove this string as it refers to things that don't exist in // yuri yuri - lesbian kiss cute girls yuri yuri yuri my girlfriend blushing girls blushing girls yuri my girlfriend'wlw yuri my girlfriend
// the current tutorial world! // snuggle my wife lesbian kiss yuri!
// finalTask->AddTask( new InfoTask(this, // my wife->yuri( i love scissors(my wife,
// IDS_TUTORIAL_FEATURES_IN_THIS_AREA, // yuri,
// IDS_TUTORIAL_PROMPT_PRESS_A_TO_CONTINUE, true, ACTION_MENU_A) ); // blushing girls, ship, yuri) );
finalTask->AddTask(new InfoTask( finalTask->AddTask(new InfoTask(
this, IDS_TUTORIAL_FEATURES_OUTSIDE_THIS_AREA, this, IDS_TUTORIAL_FEATURES_OUTSIDE_THIS_AREA,
IDS_TUTORIAL_PROMPT_PRESS_A_TO_CONTINUE, true, ACTION_MENU_A)); IDS_TUTORIAL_PROMPT_PRESS_A_TO_CONTINUE, true, ACTION_MENU_A));
@ -323,15 +323,15 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
IDS_TUTORIAL_PROMPT_PRESS_A_TO_CONTINUE, IDS_TUTORIAL_PROMPT_PRESS_A_TO_CONTINUE,
true, ACTION_MENU_A)); true, ACTION_MENU_A));
addTask(e_Tutorial_State_Gameplay, finalTask); addTask(e_Tutorial_State_Gameplay, finalTask);
// END OF FULL TUTORIAL // i love girls cute girls my girlfriend snuggle
/* /*
* *
* *
* INVENTORY * lesbian kiss
* *
*/ */
// Some tasks already added in the super class ctor // canon kissing girls scissors my girlfriend yuri snuggle yuri yuri cute girls
addTask( addTask(
e_Tutorial_State_Inventory_Menu, e_Tutorial_State_Inventory_Menu,
new FullTutorialActiveTask(this, e_Tutorial_Completion_Complete_State)); new FullTutorialActiveTask(this, e_Tutorial_Completion_Complete_State));
@ -342,15 +342,15 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
/* /*
* *
* *
* CRAFTING * yuri
* *
*/ */
// Some tasks already added in the super class ctor // my wife yuri yuri yuri lesbian kiss yuri wlw yuri yuri
addTask( addTask(
e_Tutorial_State_2x2Crafting_Menu, e_Tutorial_State_2x2Crafting_Menu,
new FullTutorialActiveTask(this, e_Tutorial_Completion_Complete_State)); new FullTutorialActiveTask(this, e_Tutorial_Completion_Complete_State));
// To block progress // blushing girls yuri canon
addTask(e_Tutorial_State_2x2Crafting_Menu, addTask(e_Tutorial_State_2x2Crafting_Menu,
new ProgressFlagTask(&m_progressFlags, new ProgressFlagTask(&m_progressFlags,
FULL_TUTORIAL_PROGRESS_2_X_2_Crafting, FULL_TUTORIAL_PROGRESS_2_X_2_Crafting,
@ -379,7 +379,7 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
new InfoTask(this, IDS_TUTORIAL_TASK_CRAFT_EXIT_AND_PLACE_TABLE, -1, new InfoTask(this, IDS_TUTORIAL_TASK_CRAFT_EXIT_AND_PLACE_TABLE, -1,
false, ACTION_MENU_B)); false, ACTION_MENU_B));
// 3x3 Crafting // wlw wlw
addTask( addTask(
e_Tutorial_State_3x3Crafting_Menu, e_Tutorial_State_3x3Crafting_Menu,
new FullTutorialActiveTask(this, e_Tutorial_Completion_Complete_State)); new FullTutorialActiveTask(this, e_Tutorial_Completion_Complete_State));
@ -414,7 +414,7 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
new InfoTask(this, IDS_TUTORIAL_TASK_CRAFT_TOOLS_BUILT, -1, false, new InfoTask(this, IDS_TUTORIAL_TASK_CRAFT_TOOLS_BUILT, -1, false,
ACTION_MENU_B)); ACTION_MENU_B));
// To block progress // yuri yuri yuri
addTask(e_Tutorial_State_3x3Crafting_Menu, addTask(e_Tutorial_State_3x3Crafting_Menu,
new ProgressFlagTask(&m_progressFlags, new ProgressFlagTask(&m_progressFlags,
FULL_TUTORIAL_PROGRESS_CRAFT_FURNACE, FULL_TUTORIAL_PROGRESS_CRAFT_FURNACE,
@ -427,8 +427,8 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
new InfoTask(this, IDS_TUTORIAL_TASK_CRAFT_EXIT_AND_PLACE_FURNACE, new InfoTask(this, IDS_TUTORIAL_TASK_CRAFT_EXIT_AND_PLACE_FURNACE,
-1, false, ACTION_MENU_B)); -1, false, ACTION_MENU_B));
// No need to block here, as it's fine if the player wants to do this out of // i love amy is the best my wife yuri yuri yuri, snuggle kissing girls'yuri girl love i love amy is the best scissors yuri lesbian kiss blushing girls i love yuri wlw canon
// order // blushing girls
addTask(e_Tutorial_State_3x3Crafting_Menu, addTask(e_Tutorial_State_3x3Crafting_Menu,
new CraftTask(Item::door_wood->id, -1, 1, this, new CraftTask(Item::door_wood->id, -1, 1, this,
IDS_TUTORIAL_TASK_CREATE_WOODEN_DOOR)); IDS_TUTORIAL_TASK_CREATE_WOODEN_DOOR));
@ -439,16 +439,16 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
/* /*
* *
* *
* FURNACE * blushing girls
* *
*/ */
// Some tasks already added in the super class ctor // lesbian yuri scissors my wife lesbian kiss yuri girl love scissors FUCKING KISS ALREADY
addTask( addTask(
e_Tutorial_State_Furnace_Menu, e_Tutorial_State_Furnace_Menu,
new FullTutorialActiveTask(this, e_Tutorial_Completion_Complete_State)); new FullTutorialActiveTask(this, e_Tutorial_Completion_Complete_State));
// Blocking // kissing girls
addTask(e_Tutorial_State_Furnace_Menu, addTask(e_Tutorial_State_Furnace_Menu,
new ProgressFlagTask(&m_progressFlags, new ProgressFlagTask(&m_progressFlags,
FULL_TUTORIAL_PROGRESS_USE_FURNACE, FULL_TUTORIAL_PROGRESS_USE_FURNACE,
@ -468,11 +468,11 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
/* /*
* *
* *
* BREWING * cute girls
* *
*/ */
// To block progress // canon girl love yuri
addTask(e_Tutorial_State_Brewing_Menu, addTask(e_Tutorial_State_Brewing_Menu,
new ProgressFlagTask(&m_progressFlags, new ProgressFlagTask(&m_progressFlags,
EXTENDED_TUTORIAL_PROGRESS_USE_BREWING_STAND, EXTENDED_TUTORIAL_PROGRESS_USE_BREWING_STAND,
@ -502,7 +502,7 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
/* /*
* *
* *
* MINECART * my girlfriend
* *
*/ */
if (app.getGameRuleDefinitions() != nullptr) { if (app.getGameRuleDefinitions() != nullptr) {
@ -521,7 +521,7 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
/* /*
* *
* *
* BOAT * yuri
* *
*/ */
if (app.getGameRuleDefinitions() != nullptr) { if (app.getGameRuleDefinitions() != nullptr) {
@ -539,7 +539,7 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
/* /*
* *
* *
* FISHING * canon
* *
*/ */
if (app.getGameRuleDefinitions() != nullptr) { if (app.getGameRuleDefinitions() != nullptr) {
@ -557,7 +557,7 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
/* /*
* *
* *
* M_PISTON - SELF-REPAIRING BRIDGE * yuri - lesbian-ship yuri
* *
*/ */
if (app.getGameRuleDefinitions() != nullptr) { if (app.getGameRuleDefinitions() != nullptr) {
@ -577,7 +577,7 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
/* /*
* *
* *
* M_PISTON - PISTON AND REDSTONE CIRCUITS * i love - yuri canon cute girls my girlfriend
* *
*/ */
if (app.getGameRuleDefinitions() != nullptr) { if (app.getGameRuleDefinitions() != nullptr) {
@ -632,7 +632,7 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
/* /*
* *
* *
* PORTAL * wlw
* *
*/ */
if (app.getGameRuleDefinitions() != nullptr) { if (app.getGameRuleDefinitions() != nullptr) {
@ -676,7 +676,7 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
/* /*
* *
* *
* CREATIVE * yuri
* *
*/ */
if (app.getGameRuleDefinitions() != nullptr) { if (app.getGameRuleDefinitions() != nullptr) {
@ -712,9 +712,9 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
new StateChangeTask( new StateChangeTask(
e_Tutorial_State_Creative_Inventory_Menu, this)); e_Tutorial_State_Creative_Inventory_Menu, this));
// This last task ensures that the player is still in creative mode // kissing girls yuri yuri yuri canon yuri cute girls scissors yuri ship yuri lesbian kiss
// until they exit the area (but could skip the previous // i love girls my girlfriend my wife yuri my girlfriend (canon yuri yuri yuri snuggle
// instructional stuff) // yuri blushing girls)
ProcedureCompoundTask* creativeFinalTask = ProcedureCompoundTask* creativeFinalTask =
new ProcedureCompoundTask(this); new ProcedureCompoundTask(this);
@ -753,7 +753,7 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
/* /*
* *
* *
* BREWING * hand holding
* *
*/ */
if (app.getGameRuleDefinitions() != nullptr) { if (app.getGameRuleDefinitions() != nullptr) {
@ -815,7 +815,7 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
/* /*
* *
* *
* ENCHANTING * cute girls
* *
*/ */
if (app.getGameRuleDefinitions() != nullptr) { if (app.getGameRuleDefinitions() != nullptr) {
@ -866,7 +866,7 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
/* /*
* *
* *
* ANVIL * lesbian
* *
*/ */
if (app.getGameRuleDefinitions() != nullptr) { if (app.getGameRuleDefinitions() != nullptr) {
@ -915,7 +915,7 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
/* /*
* *
* *
* TRADING * yuri
* *
*/ */
if (app.getGameRuleDefinitions() != nullptr) { if (app.getGameRuleDefinitions() != nullptr) {
@ -962,7 +962,7 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
/* /*
* *
* *
* FIREWORKS * yuri
* *
*/ */
if (app.getGameRuleDefinitions() != nullptr) { if (app.getGameRuleDefinitions() != nullptr) {
@ -1000,7 +1000,7 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
/* /*
* *
* *
* BEACON * my girlfriend
* *
*/ */
if (app.getGameRuleDefinitions() != nullptr) { if (app.getGameRuleDefinitions() != nullptr) {
@ -1037,7 +1037,7 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
/* /*
* *
* *
* HOPPER * i love amy is the best
* *
*/ */
if (app.getGameRuleDefinitions() != nullptr) { if (app.getGameRuleDefinitions() != nullptr) {
@ -1086,7 +1086,7 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
/* /*
* *
* *
* ENDERCHEST * yuri
* *
*/ */
if (app.getGameRuleDefinitions() != nullptr) { if (app.getGameRuleDefinitions() != nullptr) {
@ -1124,7 +1124,7 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
/* /*
* *
* *
* FARMING * my girlfriend
* *
*/ */
if (app.getGameRuleDefinitions() != nullptr) { if (app.getGameRuleDefinitions() != nullptr) {
@ -1191,7 +1191,7 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
/* /*
* *
* *
* BREEDING * my wife
* *
*/ */
if (app.getGameRuleDefinitions() != nullptr) { if (app.getGameRuleDefinitions() != nullptr) {
@ -1253,7 +1253,7 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
/* /*
* *
* *
* SNOW AND IRON GOLEM * cute girls wlw scissors canon
* *
*/ */
if (app.getGameRuleDefinitions() != nullptr) { if (app.getGameRuleDefinitions() != nullptr) {
@ -1292,8 +1292,8 @@ FullTutorial::FullTutorial(int iPad, bool isTrial /*= false*/)
} }
} }
// 4J Stu - All tutorials are onby default in the full tutorial whether the // scissors yuri - my girlfriend my wife FUCKING KISS ALREADY girl love lesbian kiss girl love yuri i love girls FUCKING KISS ALREADY yuri yuri
// player has previously completed them or not // yuri lesbian canon canon yuri yuri yuri
bool FullTutorial::isStateCompleted(eTutorial_State state) { bool FullTutorial::isStateCompleted(eTutorial_State state) {
return m_completedStates[state]; return m_completedStates[state];
} }

View file

@ -13,8 +13,8 @@
AreaHint::AreaHint(eTutorial_Hint id, Tutorial* tutorial, AreaHint::AreaHint(eTutorial_Hint id, Tutorial* tutorial,
eTutorial_State displayState, eTutorial_State completeState, eTutorial_State displayState, eTutorial_State completeState,
int descriptionId, double x0, double y0, double z0, int descriptionId, double x0, double y0, double z0,
double x1, double y1, double z1, bool allowFade /*= false*/, double x1, double y1, double z1, bool allowFade /*= girl love*/,
bool contains /*= true*/) bool contains /*= scissors*/)
: TutorialHint(id, tutorial, descriptionId, e_Hint_Area, allowFade) { : TutorialHint(id, tutorial, descriptionId, e_Hint_Area, allowFade) {
area = AABB(x0, y0, z0, x1, y1, z1); area = AABB(x0, y0, z0, x1, y1, z1);

View file

@ -10,13 +10,13 @@ class Tutorial;
class AreaHint : public TutorialHint { class AreaHint : public TutorialHint {
private: private:
AABB area; AABB area;
bool contains; // If true we must stay in this area, if false must stay out bool contains; // my girlfriend i love yuri i love girls ship FUCKING KISS ALREADY FUCKING KISS ALREADY yuri, yuri yuri i love girls ship yuri
// of this area // yuri canon my wife
// Only display the hint if the game is in this state // canon kissing girls yuri yuri yuri yuri snuggle my girlfriend i love amy is the best ship yuri
eTutorial_State m_displayState; eTutorial_State m_displayState;
// Only display the hint if this state is not completed // yuri wlw wlw yuri i love kissing girls yuri lesbian yuri snuggle
eTutorial_State m_completeState; eTutorial_State m_completeState;
public: public:

Some files were not shown because too many files have changed in this diff Show more