diff --git a/.github/workflows/nightly-server.yml b/.github/workflows/nightly-server.yml index bab025be..86dfbb39 100644 --- a/.github/workflows/nightly-server.yml +++ b/.github/workflows/nightly-server.yml @@ -57,11 +57,6 @@ jobs: New-Item -ItemType Directory -Force -Path staging Copy-Item LCEServer${{ matrix.platform }}.zip staging/ - - name: Stage exe and pdb - if: matrix.platform == 'Windows64' - run: | - Copy-Item ./build/${{ env.MATRIX_PLATFORM }}/Minecraft.Server/Release/Minecraft.Server.exe staging/ - - name: Upload artifacts uses: actions/upload-artifact@v6 with: diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index ea385745..c3d97f07 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -56,11 +56,6 @@ jobs: New-Item -ItemType Directory -Force -Path staging Copy-Item LCE${{ matrix.platform }}.zip staging/ - - name: Stage exe and pdb - if: matrix.platform == 'Windows64' - run: | - Copy-Item ./build/${{ env.MATRIX_PLATFORM }}/Minecraft.Client/Release/Minecraft.Client.exe staging/ - - name: Upload artifacts uses: actions/upload-artifact@v6 with: @@ -87,9 +82,6 @@ jobs: name: Nightly Renewed Client Release body: | Requires at least Windows 7 and DirectX 11 compatible GPU to run. - - # 🚨 First time here? 🚨 - If you've never downloaded the game before, you need to download `LCEWindows64.zip` and extract it to the folder where you'd like to keep the game. The other files are included in this `.zip` file! files: | artifacts/* diff --git a/CMakePresets.json b/CMakePresets.json index eb37f11b..28b9f0fc 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -12,7 +12,7 @@ "displayName": "Windows64", "inherits": "base", "cacheVariables": { - "PLATFORM_DEFINES": "_WINDOWS64", + "PLATFORM_DEFINES": "_WINDOWS64;_WIN64", "PLATFORM_NAME": "Windows64", "IGGY_LIBS": "iggy_w64.lib;iggyperfmon_w64.lib;iggyexpruntime_w64.lib" } diff --git a/Minecraft.Client/Chunk.cpp b/Minecraft.Client/Chunk.cpp index bda5b4cf..42b32f56 100644 --- a/Minecraft.Client/Chunk.cpp +++ b/Minecraft.Client/Chunk.cpp @@ -24,16 +24,6 @@ int Chunk::updates = 0; #ifdef _LARGE_WORLDS static thread_local unsigned char s_tlsTileIds[16 * 16 * Level::maxBuildHeight]; -void Chunk::CreateNewThreadStorage() -{ - // No-op: thread_local handles per-thread allocation automatically -} - -void Chunk::ReleaseThreadStorage() -{ - // No-op: thread_local handles per-thread cleanup automatically -} - unsigned char *Chunk::GetTileIdsStorage() { return s_tlsTileIds; @@ -499,6 +489,7 @@ void Chunk::rebuild() if((currentLayer==0)&&(!renderNextLayer)) { levelRenderer->setGlobalChunkFlag(this->x, this->y, this->z, level, LevelRenderer::CHUNK_FLAG_EMPTY1 | LevelRenderer::CHUNK_FLAG_NOTSKYLIT); + RenderManager.CBuffClear(lists + 1); RenderManager.CBuffClear(lists + 2); break; } @@ -632,6 +623,18 @@ void Chunk::rebuild() #endif // 4J - These removed items are now also removed from globalRenderableTileEntities +/* + // @Patoke: this is now unused in favour of the new render layer + if( LevelChunk::touchedSky ) + { + levelRenderer->clearGlobalChunkFlag(x, y, z, level, LevelRenderer::CHUNK_FLAG_NOTSKYLIT); + } + else + { + levelRenderer->setGlobalChunkFlag(x, y, z, level, LevelRenderer::CHUNK_FLAG_NOTSKYLIT); + } +*/ + levelRenderer->setGlobalChunkFlag(x, y, z, level, LevelRenderer::CHUNK_FLAG_COMPILED); PIXEndNamedEvent(); return; @@ -695,7 +698,7 @@ void Chunk::rebuild_SPU() Region region(level, x0 - r, y0 - r, z0 - r, x1 + r, y1 + r, z1 + r, r); TileRenderer tileRenderer(®ion); - int lists = levelRenderer->getGlobalIndexForChunk(this->x,this->y,this->z,level) * 2; + int lists = levelRenderer->getGlobalIndexForChunk(this->x,this->y,this->z,level) * 3; lists += levelRenderer->chunkLists; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/Minecraft.Client/Chunk.h b/Minecraft.Client/Chunk.h index 379aa08a..21219257 100644 --- a/Minecraft.Client/Chunk.h +++ b/Minecraft.Client/Chunk.h @@ -33,8 +33,6 @@ private: static Tesselator *t; #else public: - static void CreateNewThreadStorage(); - static void ReleaseThreadStorage(); static unsigned char *GetTileIdsStorage(); #endif diff --git a/Minecraft.Client/Common/Audio/SoundEngine.cpp b/Minecraft.Client/Common/Audio/SoundEngine.cpp index b138b1a6..e5f4de86 100644 --- a/Minecraft.Client/Common/Audio/SoundEngine.cpp +++ b/Minecraft.Client/Common/Audio/SoundEngine.cpp @@ -37,13 +37,8 @@ #if defined _XBOX SoundEngine::SoundEngine() {} -void SoundEngine::init(Options *pOptions) -{ -} - -void SoundEngine::tick(shared_ptr *players, float a) -{ -} +void SoundEngine::init(Options *pOptions) {} +void SoundEngine::tick(shared_ptr *players, float a) {} void SoundEngine::destroy() {} void SoundEngine::play(int iSound, float x, float y, float z, float volume, float pitch) { @@ -67,11 +62,9 @@ void SoundEngine::playMusicTick() {}; #ifdef _WINDOWS64 char SoundEngine::m_szSoundPath[]={"Windows64Media\\Sound\\"}; char SoundEngine::m_szMusicPath[]={"music\\"}; -char SoundEngine::m_szRedistName[]={"redist64"}; #elif defined _DURANGO char SoundEngine::m_szSoundPath[]={"Sound\\"}; char SoundEngine::m_szMusicPath[]={"music\\"}; -char SoundEngine::m_szRedistName[]={"redist64"}; #elif defined __ORBIS__ #ifdef _CONTENT_PACKAGE @@ -83,16 +76,13 @@ char SoundEngine::m_szSoundPath[]={"Sound/"}; char SoundEngine::m_szSoundPath[]={"Durango/Sound/"}; #endif char SoundEngine::m_szMusicPath[]={"music/"}; -char SoundEngine::m_szRedistName[]={"redist64"}; #elif defined __PSVITA__ char SoundEngine::m_szSoundPath[]={"PSVita/Sound/"}; char SoundEngine::m_szMusicPath[]={"music/"}; -char SoundEngine::m_szRedistName[]={"redist"}; #elif defined __PS3__ //extern const char* getPS3HomePath(); char SoundEngine::m_szSoundPath[]={"PS3/Sound/"}; char SoundEngine::m_szMusicPath[]={"music/"}; -char SoundEngine::m_szRedistName[]={"redist"}; #define USE_SPURS @@ -338,13 +328,32 @@ void SoundEngine::updateMiniAudio() ///////////////////////////////////////////// inline void SoundEngine::getGameModeMusicID(Minecraft* pMinecraft, unsigned int i) { - if (pMinecraft->localplayers[i] != nullptr && pMinecraft->localplayers[i]->abilities.instabuild && pMinecraft->localplayers[i]->abilities.mayfly) - m_musicID = getMusicID(eMusicType_Creative); - // TODO(3UR): this is a part of minigames also in the future other minigame ids will need to be handled for now TU30 only checks for BATTLE - //else if (pMinecraft->GetCustomGameMode() && CustomGameModeInst::GetId() == EMiniGameId::BATTLE) // @3UR: thanks https://github.com/GRAnimated/MinecraftLCE/blob/6947670d152582457bfe02bd909ee30a7ab7eb55/src/Minecraft.World/net/minecraft/world/level/gamemode/minigames/EMiniGameId.h#L3 - // m_musicID = getMusicID(eMusicType_Battle); - else - m_musicID = getMusicID(eMusicType_Overworld); + for(i = 0; i < MAX_LOCAL_PLAYERS; i++) + { + if(pMinecraft->localplayers[i] != nullptr && pMinecraft->localgameModes[i] != nullptr) + { + if (pMinecraft->localplayers[i]->abilities.instabuild && pMinecraft->localplayers[i]->abilities.mayfly) + { + m_musicID = getMusicID(eMusicType_Creative); + break; + } + /* + // TODO(3UR): this is a part of minigames also in the future other minigame ids will need to be handled for now TU30 only checks for BATTLE + else if (pMinecraft->GetCustomGameMode() && CustomGameModeInst::GetId() == EMiniGameId::BATTLE) // @3UR: thanks https://github.com/GRAnimated/MinecraftLCE/blob/6947670d152582457bfe02bd909ee30a7ab7eb55/src/Minecraft.World/net/minecraft/world/level/gamemode/minigames/EMiniGameId.h#L3 + { + m_musicID = getMusicID(eMusicType_Battle); + } + */ + else + { + m_musicID = getMusicID(eMusicType_Overworld); + } + } + else + { + m_musicID = getMusicID(eMusicType_Menu); + } + } } ///////////////////////////////////////////// @@ -655,24 +664,8 @@ void SoundEngine::playUI(int iSound, float volume, float pitch) } if (!found) // Toru - not found in UI folder, expand search (fixes missing portal sounds) { - sprintf_s(basePath, "Windows64Media/Sound/Minecraft/%s", ConvertSoundPathToName(name)); - sprintf_s(finalPath, "%s.wav", basePath); - - for (size_t i = 0; i < count; i++) - { - sprintf_s(finalPath, "%s%s", basePath, extensions[i]); - if (FileExists(finalPath)) - { - found = true; - break; - } - } - - if (!found) // still not found - { - app.DebugPrintf("No sound file found for UI sound: %s\n", basePath); - return; - } + app.DebugPrintf("No sound file found for UI sound: %s\n", basePath); + return; } MiniAudioSound* s = new MiniAudioSound(); @@ -765,10 +758,12 @@ void SoundEngine::playStreaming(const wstring& name, float x, float y , float z, if(pMinecraft->localplayers[i]->dimension==LevelData::DIMENSION_END) { playerInEnd = true; + break; } else if(pMinecraft->localplayers[i]->dimension==LevelData::DIMENSION_NETHER) { playerInNether = true; + break; } } } @@ -852,16 +847,7 @@ int SoundEngine::getMusicID(eMusicType iDomain) { Minecraft *pMinecraft=Minecraft::GetInstance(); - // Before the game has started? - if(pMinecraft == nullptr) - { - // any track from the overworld -// return GetRandomishTrack(m_iStream_Overworld_Min,m_iStream_Overworld_Max); - - return GetRandomishTrack(m_iStream_Menu_Min, m_iStream_Menu_Max); - } - - if(pMinecraft->skins->isUsingDefaultSkin()) + if( pMinecraft && !pMinecraft->skins->isUsingDefaultSkin() ) { // using a texture pack - may have multiple End music tracks switch( iDomain ) @@ -1361,10 +1347,12 @@ void SoundEngine::playMusicUpdate() if(pMinecraft->localplayers[i]->dimension == LevelData::DIMENSION_END) { playerInEnd = true; + break; } else if(pMinecraft->localplayers[i]->dimension == LevelData::DIMENSION_NETHER) { playerInNether = true; + break; } } } @@ -1373,7 +1361,7 @@ void SoundEngine::playMusicUpdate() { m_StreamState = eMusicStreamState_Stop; - // Set the end track + // Set the End track m_musicID = getMusicID(eMusicType_End); SetIsPlayingEndMusic(true); SetIsPlayingNetherMusic(false); @@ -1383,14 +1371,13 @@ void SoundEngine::playMusicUpdate() m_StreamState = eMusicStreamState_Stop; if(playerInNether) { - // Set the end track + // Set the Nether track m_musicID = getMusicID(eMusicType_Nether); SetIsPlayingEndMusic(false); SetIsPlayingNetherMusic(true); } else { - // Set the end track getGameModeMusicID(pMinecraft, i); SetIsPlayingEndMusic(false); SetIsPlayingNetherMusic(false); @@ -1411,14 +1398,13 @@ void SoundEngine::playMusicUpdate() if(playerInEnd) { - // set the Nether track + // set the End track m_musicID = getMusicID(eMusicType_End); SetIsPlayingNetherMusic(false); SetIsPlayingEndMusic(true); } else { - // set the Nether track getGameModeMusicID(pMinecraft, i); SetIsPlayingNetherMusic(false); SetIsPlayingEndMusic(false); @@ -1498,10 +1484,12 @@ void SoundEngine::playMusicUpdate() if(pMinecraft->localplayers[i]->dimension == LevelData::DIMENSION_END) { playerInEnd = true; + break; } else if(pMinecraft->localplayers[i]->dimension == LevelData::DIMENSION_NETHER) { playerInNether = true; + break; } } } diff --git a/Minecraft.Client/Common/Audio/SoundEngine.h b/Minecraft.Client/Common/Audio/SoundEngine.h index 2a9fb756..bcd31e25 100644 --- a/Minecraft.Client/Common/Audio/SoundEngine.h +++ b/Minecraft.Client/Common/Audio/SoundEngine.h @@ -175,7 +175,6 @@ private: static char m_szSoundPath[]; static char m_szMusicPath[]; - static char m_szRedistName[]; static const char *m_szStreamFileA[eStream_Max]; AUDIO_LISTENER m_ListenerA[MAX_LOCAL_PLAYERS]; diff --git a/Minecraft.Client/Common/Audio/SoundNames.cpp b/Minecraft.Client/Common/Audio/SoundNames.cpp index ebb7e9ee..359760b2 100644 --- a/Minecraft.Client/Common/Audio/SoundNames.cpp +++ b/Minecraft.Client/Common/Audio/SoundNames.cpp @@ -6,14 +6,14 @@ const WCHAR *ConsoleSoundEngine::wchSoundNames[eSoundType_MAX]= { - L"mob.chicken.say", // eSoundType_MOB_CHICKEN_AMBIENT - L"mob.chicken.hurt", // eSoundType_MOB_CHICKEN_HURT - L"mob.chicken.plop", // eSoundType_MOB_CHICKENPLOP - L"mob.cow.say", // eSoundType_MOB_COW_AMBIENT - L"mob.cow.hurt", // eSoundType_MOB_COW_HURT - L"mob.pig.say", // eSoundType_MOB_PIG_AMBIENT + L"mob.chicken.say", // eSoundType_MOB_CHICKEN_AMBIENT + L"mob.chicken.hurt", // eSoundType_MOB_CHICKEN_HURT + L"mob.chicken.plop", // eSoundType_MOB_CHICKENPLOP + L"mob.cow.say", // eSoundType_MOB_COW_AMBIENT + L"mob.cow.hurt", // eSoundType_MOB_COW_HURT + L"mob.pig.say", // eSoundType_MOB_PIG_AMBIENT L"mob.pig.death", // eSoundType_MOB_PIG_DEATH - L"mob.sheep.say", // eSoundType_MOB_SHEEP_AMBIENT + L"mob.sheep.say", // eSoundType_MOB_SHEEP_AMBIENT L"mob.wolf.growl", // eSoundType_MOB_WOLF_GROWL L"mob.wolf.whine", // eSoundType_MOB_WOLF_WHINE L"mob.wolf.panting", // eSoundType_MOB_WOLF_PANTING @@ -41,17 +41,16 @@ const WCHAR *ConsoleSoundEngine::wchSoundNames[eSoundType_MAX]= L"mob.silverfish.hit", // eSoundType_MOB_SILVERFISH_HURT L"mob.silverfish.kill", // eSoundType_MOB_SILVERFISH_DEATH, L"mob.silverfish.step", // eSoundType_MOB_SILVERFISH_STEP, - L"mob.skeleton", // eSoundType_MOB_SKELETON_AMBIENT, - L"mob.skeletonhurt", // eSoundType_MOB_SKELETON_HURT, - L"mob.spider.say", // eSoundType_MOB_SPIDER_AMBIENT, - L"mob.spider.death", // eSoundType_MOB_SPIDER_DEATH, - L"mob.slime", // eSoundType_MOB_SLIME, - L"mob.slime.attack", // eSoundType_MOB_SLIME_ATTACK, - L"mob.creeper.say", // eSoundType_MOB_CREEPER_HURT, + L"mob.skeleton.say", // eSoundType_MOB_SKELETON_AMBIENT, + L"mob.skeleton.hurt", // eSoundType_MOB_SKELETON_HURT, + L"mob.spider.say", // eSoundType_MOB_SPIDER_AMBIENT, + L"mob.spider.death", // eSoundType_MOB_SPIDER_DEATH, + L"mob.slime.attack", // eSoundType_MOB_SLIME_ATTACK, + L"mob.creeper.say", // eSoundType_MOB_CREEPER_HURT, L"mob.creeper.death", // eSoundType_MOB_CREEPER_DEATH, - L"mob.zombie.say", // eSoundType_MOB_ZOMBIE_AMBIENT, + L"mob.zombie.say", // eSoundType_MOB_ZOMBIE_AMBIENT, L"mob.zombie.hurt", // eSoundType_MOB_ZOMBIE_HURT, - L"mob.zombie.death", // eSoundType_MOB_ZOMBIE_DEATH, + L"mob.zombie.death", // eSoundType_MOB_ZOMBIE_DEATH, L"mob.zombie.wood", // eSoundType_MOB_ZOMBIE_WOOD, L"mob.zombie.woodbreak", // eSoundType_MOB_ZOMBIE_WOOD_BREAK, L"mob.zombie.metal", // eSoundType_MOB_ZOMBIE_METAL, @@ -61,11 +60,7 @@ const WCHAR *ConsoleSoundEngine::wchSoundNames[eSoundType_MAX]= L"mob.cat.purreow", // eSoundType_MOB_CAT_PURREOW L"mob.cat.meow", // eSoundType_MOB_CAT_MEOW // 4J-PB - correct the name of the event for hitting ocelots - L"mob.cat.hit", // eSoundType_MOB_CAT_HITT -// L"mob.irongolem.throw", // eSoundType_MOB_IRONGOLEM_THROW -// L"mob.irongolem.hit", // eSoundType_MOB_IRONGOLEM_HIT -// L"mob.irongolem.death", // eSoundType_MOB_IRONGOLEM_DEATH -// L"mob.irongolem.walk", // eSoundType_MOB_IRONGOLEM_WALK + L"mob.cat.hit", // eSoundType_MOB_CAT_HITT L"random.bow", // eSoundType_RANDOM_BOW, L"random.bowhit", // eSoundType_RANDOM_BOW_HIT, L"random.explode", // eSoundType_RANDOM_EXPLODE, @@ -86,7 +81,7 @@ const WCHAR *ConsoleSoundEngine::wchSoundNames[eSoundType_MAX]= L"random.door_close", // eSoundType_RANDOM_DOOR_CLOSE, L"ambient.weather.rain", // eSoundType_AMBIENT_WEATHER_RAIN, L"ambient.weather.thunder", // eSoundType_AMBIENT_WEATHER_THUNDER, - L"ambient.cave", // eSoundType_CAVE_CAVE, DON'T USE FOR XBOX 360!!! + L"ambient.cave.cave", // eSoundType_CAVE_CAVE, DON'T USE FOR XBOX 360!!! #ifdef _XBOX L"ambient.cave.cave2", // eSoundType_CAVE_CAVE2 - removed the two sounds that were at 192k in the first ambient cave event #endif @@ -114,7 +109,6 @@ const WCHAR *ConsoleSoundEngine::wchSoundNames[eSoundType_MAX]= L"step.wood", // eSoundType_STEP_WOOD, L"step.gravel", // eSoundType_STEP_GRAVEL, L"step.grass", // eSoundType_STEP_GRASS, - L"step.metal", // eSoundType_STEP_METAL, L"step.cloth", // eSoundType_STEP_CLOTH, L"step.sand", // eSoundType_STEP_SAND, @@ -209,20 +203,16 @@ const WCHAR *ConsoleSoundEngine::wchSoundNames[eSoundType_MAX]= L"mob.horse.wood", //eSoundType_MOB_HORSE_WOOD, L"mob.horse.soft", //eSoundType_MOB_HORSE_SOFT, L"mob.horse.jump", //eSoundType_MOB_HORSE_JUMP, + L"mob.horse.eat", //eSoundType_MOB_HORSE_EAT, - L"mob.witch.ambient", //eSoundType_MOB_WITCH_IDLE, + L"mob.witch.ambient", //eSoundType_MOB_WITCH_IDLE, L"mob.witch.hurt", //eSoundType_MOB_WITCH_HURT, L"mob.witch.death", //eSoundType_MOB_WITCH_DEATH, L"mob.slime.big", //eSoundType_MOB_SLIME_BIG, L"mob.slime.small", //eSoundType_MOB_SLIME_SMALL, - L"eating", //eSoundType_EATING <--- missing L"random.levelup", //eSoundType_RANDOM_LEVELUP - - // 4J-PB - Some sounds were updated, but we can't do that for the 360 or we have to do a new sound bank - // instead, we'll add the sounds as new ones and change the code to reference them - L"fire.new_ignite", }; diff --git a/Minecraft.Client/Common/Consoles_App.cpp b/Minecraft.Client/Common/Consoles_App.cpp index 198a090f..bf5370bd 100644 --- a/Minecraft.Client/Common/Consoles_App.cpp +++ b/Minecraft.Client/Common/Consoles_App.cpp @@ -1635,24 +1635,37 @@ void CMinecraftApp::ActionGameSettings(int iPad,eGameSetting eVal) if (graphicsLevel == 0) { pMinecraft->options->set(Options::Option::GRAPHICS, false); + pMinecraft->options->set(Options::Option::BETTER_WATER, false); pMinecraft->options->set(Options::Option::AMBIENT_OCCLUSION, false); pMinecraft->options->set(Options::Option::PARTICLES, 2); } else if (graphicsLevel == 1) { pMinecraft->options->set(Options::Option::GRAPHICS, false); + pMinecraft->options->set(Options::Option::BETTER_WATER, false); pMinecraft->options->set(Options::Option::AMBIENT_OCCLUSION, true); pMinecraft->options->set(Options::Option::PARTICLES, 1); } + else if (graphicsLevel == 2) + { + pMinecraft->options->set(Options::Option::GRAPHICS, true); + pMinecraft->options->set(Options::Option::BETTER_WATER, false); + pMinecraft->options->set(Options::Option::AMBIENT_OCCLUSION, true); + pMinecraft->options->set(Options::Option::PARTICLES, 0); + pMinecraft->textures->reloadAll(); + } else { pMinecraft->options->set(Options::Option::GRAPHICS, true); + pMinecraft->options->set(Options::Option::BETTER_WATER, true); pMinecraft->options->set(Options::Option::AMBIENT_OCCLUSION, true); pMinecraft->options->set(Options::Option::PARTICLES, 0); + pMinecraft->textures->reloadAll(); } if (pMinecraft && pMinecraft->levelRenderer && pMinecraft->level) { + // Dont reload textures here for reduce the load and prevent crashes when changing options quickly pMinecraft->levelRenderer->allChanged(); } } @@ -2387,10 +2400,10 @@ void CMinecraftApp::SetGameSettings(int iPad,eGameSetting eVal,unsigned char ucV if(GameSettingsA[iPad]->ucGraphicsMode != ucVal) { GameSettingsA[iPad]->ucGraphicsMode = ucVal; - if(iPad == ProfileManager.GetPrimaryPad()) - { - ActionGameSettings(iPad, eVal); - } + if(iPad == ProfileManager.GetPrimaryPad()) + { + ActionGameSettings(iPad, eVal); + } GameSettingsA[iPad]->bSettingsChanged = true; } break; diff --git a/Minecraft.Client/Common/DLC/DLCManager.cpp b/Minecraft.Client/Common/DLC/DLCManager.cpp index 31e72b98..6e5ff20f 100644 --- a/Minecraft.Client/Common/DLC/DLCManager.cpp +++ b/Minecraft.Client/Common/DLC/DLCManager.cpp @@ -10,6 +10,7 @@ const WCHAR *DLCManager::wchTypeNamesA[]= { + L"XMLVERSION", L"DISPLAYNAME", L"THEMENAME", L"FREE", @@ -387,36 +388,53 @@ bool DLCManager::processDLCDataFile(DWORD &dwFilesProcessed, PBYTE pbData, DWORD // // unsigned long, p = number of parameters // // p * DLC_FILE_PARAM describing each parameter for this file // // ulFileSize bytes of data blob of the file added - unsigned int uiVersion=*(unsigned int *)pbData; + unsigned int uiVersion=readUInt32(pbData, false); uiCurrentByte+=sizeof(int); - if(uiVersion < CURRENT_DLC_VERSION_NUM) + bool bSwapEndian = false; + unsigned int uiVersionSwapped = SwapInt32(uiVersion); + if (uiVersion >= 0 && uiVersion <= CURRENT_DLC_VERSION_NUM) { - if(pbData!=nullptr) delete [] pbData; - app.DebugPrintf("DLC version of %d is too old to be read\n", uiVersion); + bSwapEndian = false; + } + else if (uiVersionSwapped >= 0 && uiVersionSwapped <= CURRENT_DLC_VERSION_NUM) + { + bSwapEndian = true; + } + else + { + if(pbData!=nullptr) delete [] pbData; + app.DebugPrintf("Unknown DLC version of %d\n", uiVersion); return false; } pack->SetDataPointer(pbData); - unsigned int uiParameterCount=*(unsigned int *)&pbData[uiCurrentByte]; + unsigned int uiParameterCount=readUInt32(&pbData[uiCurrentByte], bSwapEndian); uiCurrentByte+=sizeof(int); C4JStorage::DLC_FILE_PARAM *pParams = (C4JStorage::DLC_FILE_PARAM *)&pbData[uiCurrentByte]; bool bXMLVersion = false; //DWORD dwwchCount=0; for(unsigned int i=0;idwType = bSwapEndian ? SwapInt32(pParams->dwType) : pParams->dwType; + pParams->dwWchCount = bSwapEndian ? SwapInt32(pParams->dwWchCount) : pParams->dwWchCount; + char16_t* wchData = reinterpret_cast(pParams->wchData); + if (bSwapEndian) + { + SwapUTF16Bytes(wchData, pParams->dwWchCount); + } + // Map DLC strings to application strings, then store the DLC index mapping to application index wstring parameterName(static_cast(pParams->wchData)); EDLCParameterType type = getParameterType(parameterName); if( type != e_DLCParamType_Invalid ) { parameterMapping[pParams->dwType] = type; - } - if (parameterName == L"XMLVERSION") - { - bXMLVersion = true; + if (type == e_DLCParamType_XMLVersion) + { + bXMLVersion = true; + } } - uiCurrentByte+= sizeof(C4JStorage::DLC_FILE_PARAM)+(pParams->dwWchCount*sizeof(WCHAR)); pParams = (C4JStorage::DLC_FILE_PARAM *)&pbData[uiCurrentByte]; } @@ -427,13 +445,14 @@ bool DLCManager::processDLCDataFile(DWORD &dwFilesProcessed, PBYTE pbData, DWORD uiCurrentByte += sizeof(int); } - unsigned int uiFileCount=*(unsigned int *)&pbData[uiCurrentByte]; + unsigned int uiFileCount=readUInt32(&pbData[uiCurrentByte], bSwapEndian); uiCurrentByte+=sizeof(int); C4JStorage::DLC_FILE_DETAILS *pFile = (C4JStorage::DLC_FILE_DETAILS *)&pbData[uiCurrentByte]; DWORD dwTemp=uiCurrentByte; for(unsigned int i=0;idwWchCount = bSwapEndian ? SwapInt32(pFile->dwWchCount) : pFile->dwWchCount; dwTemp+=sizeof(C4JStorage::DLC_FILE_DETAILS)+pFile->dwWchCount*sizeof(WCHAR); pFile = (C4JStorage::DLC_FILE_DETAILS *)&pbData[dwTemp]; } @@ -442,6 +461,14 @@ bool DLCManager::processDLCDataFile(DWORD &dwFilesProcessed, PBYTE pbData, DWORD for(unsigned int i=0;idwType = bSwapEndian ? SwapInt32(pFile->dwType) : pFile->dwType; + pFile->uiFileSize = bSwapEndian ? SwapInt32(pFile->uiFileSize) : pFile->uiFileSize; + char16_t* wchFile = reinterpret_cast(pFile->wchFile); + if (bSwapEndian) + { + SwapUTF16Bytes(wchFile, pFile->dwWchCount); + } + EDLCType type = static_cast(pFile->dwType); DLCFile *dlcFile = nullptr; @@ -457,12 +484,19 @@ bool DLCManager::processDLCDataFile(DWORD &dwFilesProcessed, PBYTE pbData, DWORD } // Params - uiParameterCount=*(unsigned int *)pbTemp; + uiParameterCount=readUInt32(pbTemp, bSwapEndian); pbTemp+=sizeof(int); pParams = (C4JStorage::DLC_FILE_PARAM *)pbTemp; for(unsigned int j=0;jdwType = bSwapEndian ? SwapInt32(pParams->dwType) : pParams->dwType; + pParams->dwWchCount = bSwapEndian ? SwapInt32(pParams->dwWchCount) : pParams->dwWchCount; + char16_t* wchData = reinterpret_cast(pParams->wchData); + if (bSwapEndian) + { + SwapUTF16Bytes(wchData, pParams->dwWchCount); + } auto it = parameterMapping.find(pParams->dwType); diff --git a/Minecraft.Client/Common/DLC/DLCManager.h b/Minecraft.Client/Common/DLC/DLCManager.h index d4dd2508..13743d28 100644 --- a/Minecraft.Client/Common/DLC/DLCManager.h +++ b/Minecraft.Client/Common/DLC/DLCManager.h @@ -31,7 +31,8 @@ public: { e_DLCParamType_Invalid = -1, - e_DLCParamType_DisplayName = 0, + e_DLCParamType_XMLVersion = 0, + e_DLCParamType_DisplayName, e_DLCParamType_ThemeName, e_DLCParamType_Free, // identify free skins e_DLCParamType_Credit, // legal credits for DLC @@ -94,6 +95,35 @@ public: bool readDLCDataFile(DWORD &dwFilesProcessed, const string &path, DLCPack *pack, bool fromArchive = false); DWORD retrievePackIDFromDLCDataFile(const string &path, DLCPack *pack); + static unsigned short SwapInt16(unsigned short value) + { + return (value >> 8) | (value << 8); + } + + static unsigned int SwapInt32(unsigned int value) + { + return ((value & 0xFF) << 24) | + ((value & 0xFF00) << 8) | + ((value & 0xFF0000) >> 8) | + ((value & 0xFF000000) >> 24); + } + + static void SwapUTF16Bytes(char16_t* buffer, size_t count) + { + for (size_t i = 0; i < count; ++i) + { + char16_t& c = buffer[i]; + c = (c >> 8) | (c << 8); + } + } + + static unsigned int readUInt32(unsigned char* ptr, bool endian) + { + unsigned int val = *(unsigned int*)ptr; + if (endian) val = SwapInt32(val); + return val; + } + private: bool processDLCDataFile(DWORD &dwFilesProcessed, PBYTE pbData, DWORD dwLength, DLCPack *pack); diff --git a/Minecraft.Client/Common/Media/MediaWindows64.arc b/Minecraft.Client/Common/Media/MediaWindows64.arc index edfe5a7a..41649401 100644 Binary files a/Minecraft.Client/Common/Media/MediaWindows64.arc and b/Minecraft.Client/Common/Media/MediaWindows64.arc differ diff --git a/Minecraft.Client/Common/Media/SettingsGraphicsMenu1080.swf b/Minecraft.Client/Common/Media/SettingsGraphicsMenu1080.swf index 9465a9cf..d70d49b6 100644 Binary files a/Minecraft.Client/Common/Media/SettingsGraphicsMenu1080.swf and b/Minecraft.Client/Common/Media/SettingsGraphicsMenu1080.swf differ diff --git a/Minecraft.Client/Common/Media/SettingsGraphicsMenu720.swf b/Minecraft.Client/Common/Media/SettingsGraphicsMenu720.swf index dc66d8d3..46baaf95 100644 Binary files a/Minecraft.Client/Common/Media/SettingsGraphicsMenu720.swf and b/Minecraft.Client/Common/Media/SettingsGraphicsMenu720.swf differ diff --git a/Minecraft.Client/Common/Media/SettingsOptionsMenu1080.swf b/Minecraft.Client/Common/Media/SettingsOptionsMenu1080.swf index ede96935..34ec4604 100644 Binary files a/Minecraft.Client/Common/Media/SettingsOptionsMenu1080.swf and b/Minecraft.Client/Common/Media/SettingsOptionsMenu1080.swf differ diff --git a/Minecraft.Client/Common/Media/SettingsOptionsMenu720.swf b/Minecraft.Client/Common/Media/SettingsOptionsMenu720.swf index ce8434bf..827b6966 100644 Binary files a/Minecraft.Client/Common/Media/SettingsOptionsMenu720.swf and b/Minecraft.Client/Common/Media/SettingsOptionsMenu720.swf differ diff --git a/Minecraft.Client/Common/UI/UIScene_DeathMenu.cpp b/Minecraft.Client/Common/UI/UIScene_DeathMenu.cpp index a4dbe8a8..e36a3d81 100644 --- a/Minecraft.Client/Common/UI/UIScene_DeathMenu.cpp +++ b/Minecraft.Client/Common/UI/UIScene_DeathMenu.cpp @@ -81,6 +81,8 @@ void UIScene_DeathMenu::handleInput(int iPad, int key, bool repeat, bool pressed void UIScene_DeathMenu::handlePress(F64 controlId, F64 childId) { + ui.PlayUISFX(eSFX_Press); + switch(static_cast(controlId)) { case eControl_Respawn: diff --git a/Minecraft.Client/Common/UI/UIScene_DebugOverlay.cpp b/Minecraft.Client/Common/UI/UIScene_DebugOverlay.cpp index c997fb31..550757e3 100644 --- a/Minecraft.Client/Common/UI/UIScene_DebugOverlay.cpp +++ b/Minecraft.Client/Common/UI/UIScene_DebugOverlay.cpp @@ -183,6 +183,8 @@ void UIScene_DebugOverlay::handleInput(int iPad, int key, bool repeat, bool pres void UIScene_DebugOverlay::handlePress(F64 controlId, F64 childId) { + ui.PlayUISFX(eSFX_Press); + switch(static_cast(controlId)) { case eControl_Items: diff --git a/Minecraft.Client/Common/UI/UIScene_EndPoem.cpp b/Minecraft.Client/Common/UI/UIScene_EndPoem.cpp index 5b10e8cf..ead86c3d 100644 --- a/Minecraft.Client/Common/UI/UIScene_EndPoem.cpp +++ b/Minecraft.Client/Common/UI/UIScene_EndPoem.cpp @@ -50,13 +50,18 @@ UIScene_EndPoem::UIScene_EndPoem(int iPad, void *initData, UILayer *parentLayer) Minecraft *pMinecraft = Minecraft::GetInstance(); wstring playerName = L""; - if(pMinecraft->localplayers[ui.GetWinUserIndex()] != nullptr) + unsigned int winIdx = ui.GetWinUserIndex(); + if(winIdx < XUSER_MAX_COUNT && pMinecraft->localplayers[winIdx] != nullptr) { - playerName = escapeXML( pMinecraft->localplayers[ui.GetWinUserIndex()]->getDisplayName() ); + playerName = escapeXML( pMinecraft->localplayers[winIdx]->getDisplayName() ); + } + else if(pMinecraft->localplayers[ProfileManager.GetPrimaryPad()] != nullptr) + { + playerName = escapeXML( pMinecraft->localplayers[ProfileManager.GetPrimaryPad()]->getDisplayName() ); } else { - playerName = escapeXML( pMinecraft->localplayers[ProfileManager.GetPrimaryPad()]->getDisplayName() ); + playerName = L"Player"; } noNoiseString = replaceAll(noNoiseString,L"{*PLAYER*}",playerName); diff --git a/Minecraft.Client/Common/UI/UIScene_HelpAndOptionsMenu.cpp b/Minecraft.Client/Common/UI/UIScene_HelpAndOptionsMenu.cpp index ab79b940..e35aafe1 100644 --- a/Minecraft.Client/Common/UI/UIScene_HelpAndOptionsMenu.cpp +++ b/Minecraft.Client/Common/UI/UIScene_HelpAndOptionsMenu.cpp @@ -207,6 +207,8 @@ void UIScene_HelpAndOptionsMenu::handleInput(int iPad, int key, bool repeat, boo void UIScene_HelpAndOptionsMenu::handlePress(F64 controlId, F64 childId) { + ui.PlayUISFX(eSFX_Press); + switch(static_cast(controlId)) { case BUTTON_HAO_CHANGESKIN: diff --git a/Minecraft.Client/Common/UI/UIScene_PauseMenu.cpp b/Minecraft.Client/Common/UI/UIScene_PauseMenu.cpp index 7cec38b3..7ef2a316 100644 --- a/Minecraft.Client/Common/UI/UIScene_PauseMenu.cpp +++ b/Minecraft.Client/Common/UI/UIScene_PauseMenu.cpp @@ -504,6 +504,8 @@ void UIScene_PauseMenu::handleInput(int iPad, int key, bool repeat, bool pressed void UIScene_PauseMenu::handlePress(F64 controlId, F64 childId) { + ui.PlayUISFX(eSFX_Press); + if(m_bIgnoreInput) return; switch(static_cast(controlId)) diff --git a/Minecraft.Client/Common/UI/UIScene_SettingsGraphicsMenu.cpp b/Minecraft.Client/Common/UI/UIScene_SettingsGraphicsMenu.cpp index c3291950..e2eae1a3 100644 --- a/Minecraft.Client/Common/UI/UIScene_SettingsGraphicsMenu.cpp +++ b/Minecraft.Client/Common/UI/UIScene_SettingsGraphicsMenu.cpp @@ -85,10 +85,11 @@ UIScene_SettingsGraphicsMenu::UIScene_SettingsGraphicsMenu(int iPad, void *initD const wchar_t* graphicsText = L""; if (currentGraphics == 0) graphicsText = L"Graphics: Potato"; else if (currentGraphics == 1) graphicsText = L"Graphics: Fast"; - else graphicsText = L"Graphics: Fancy"; + else if (currentGraphics == 2) graphicsText = L"Graphics: Fancy"; + else graphicsText = L"Graphics: Extra"; swprintf(TempString, 256, L"%ls", graphicsText); - m_sliderGraphicsMode.init(TempString, eControl_GraphicsMode, 0, 2, currentGraphics); + m_sliderGraphicsMode.init(TempString, eControl_GraphicsMode, 0, 3, currentGraphics); doHorizontalResizeCheck(); @@ -255,6 +256,7 @@ void UIScene_SettingsGraphicsMenu::handleSliderMove(F64 sliderId, F64 currentVal const wchar_t* modeName = L"Potato"; if (value == 1) modeName = L"Fast"; else if (value == 2) modeName = L"Fancy"; + else if (value == 3) modeName = L"Extra"; swprintf(TempString, 256, L"Graphics: %ls", modeName); diff --git a/Minecraft.Client/Common/UI/UIScene_SettingsOptionsMenu.cpp b/Minecraft.Client/Common/UI/UIScene_SettingsOptionsMenu.cpp index ec0aa2ba..e015768e 100644 --- a/Minecraft.Client/Common/UI/UIScene_SettingsOptionsMenu.cpp +++ b/Minecraft.Client/Common/UI/UIScene_SettingsOptionsMenu.cpp @@ -35,21 +35,7 @@ UIScene_SettingsOptionsMenu::UIScene_SettingsOptionsMenu(int iPad, void *initDat m_checkboxShowHints.init(IDS_HINTS,eControl_ShowHints,(app.GetGameSettings(m_iPad,eGameSetting_Hints)!=0)); m_checkboxShowTooltips.init(IDS_IN_GAME_TOOLTIPS,eControl_ShowTooltips,(app.GetGameSettings(m_iPad,eGameSetting_Tooltips)!=0)); m_checkboxInGameGamertags.init(IDS_IN_GAME_GAMERTAGS,eControl_InGameGamertags,(app.GetGameSettings(m_iPad,eGameSetting_GamertagsVisible)!=0)); - m_checkboxOldSwingAnimation.init(L"Old Swing Animation ", eControl_OldSwingAnimation,(app.GetGameSettings(m_iPad,eGameSetting_OldSwingAnimation)!=0)); - - // check if we should display the mash-up option - if(m_bNotInGame && app.GetMashupPackWorlds(m_iPad)!=0xFFFFFFFF) - { - // the mash-up option is needed - m_bMashUpWorldsUnhideOption=true; - m_checkboxMashupWorlds.init(IDS_UNHIDE_MASHUP_WORLDS,eControl_ShowMashUpWorlds,false); - } - else - { - //m_checkboxMashupWorlds.init(L"",eControl_ShowMashUpWorlds,false); - removeControl(&m_checkboxMashupWorlds, true); - m_bMashUpWorldsUnhideOption=false; - } + m_checkboxOldSwingAnimation.init(L"Old Swing Animation", eControl_OldSwingAnimation,(app.GetGameSettings(m_iPad,eGameSetting_OldSwingAnimation)!=0)); unsigned char ucValue=app.GetGameSettings(m_iPad,eGameSetting_Autosave); @@ -260,19 +246,7 @@ void UIScene_SettingsOptionsMenu::handleReload() m_checkboxShowHints.init(IDS_HINTS,eControl_ShowHints,(app.GetGameSettings(m_iPad,eGameSetting_Hints)!=0)); m_checkboxShowTooltips.init(IDS_IN_GAME_TOOLTIPS,eControl_ShowTooltips,(app.GetGameSettings(m_iPad,eGameSetting_Tooltips)!=0)); m_checkboxInGameGamertags.init(IDS_IN_GAME_GAMERTAGS,eControl_InGameGamertags,(app.GetGameSettings(m_iPad,eGameSetting_GamertagsVisible)!=0)); - - // check if we should display the mash-up option - if(m_bNotInGame && app.GetMashupPackWorlds(m_iPad)!=0xFFFFFFFF) - { - // the mash-up option is needed - m_bMashUpWorldsUnhideOption=true; - } - else - { - //m_checkboxMashupWorlds.init(L"",eControl_ShowMashUpWorlds,false); - removeControl(&m_checkboxMashupWorlds, true); - m_bMashUpWorldsUnhideOption=false; - } + m_checkboxOldSwingAnimation.init(L"Old Swing Animation", eControl_OldSwingAnimation,(app.GetGameSettings(m_iPad,eGameSetting_OldSwingAnimation)!=0)); unsigned char ucValue=app.GetGameSettings(m_iPad,eGameSetting_Autosave); @@ -418,13 +392,6 @@ void UIScene_SettingsOptionsMenu::setGameSettings() app.SetGameSettings(m_iPad,eGameSetting_Tooltips,m_checkboxShowTooltips.IsChecked()?1:0); app.SetGameSettings(m_iPad,eGameSetting_OldSwingAnimation,m_checkboxOldSwingAnimation.IsChecked()?1:0); - // the mashup option will only be shown if some worlds have been previously hidden - if(m_bMashUpWorldsUnhideOption && m_checkboxMashupWorlds.IsChecked()) - { - // unhide all worlds - app.EnableMashupPackWorlds(m_iPad); - } - // 4J-PB - don't action changes here or we might write to the profile on backing out here and then get a change in the settings all, and write again on backing out there //app.CheckGameSettingsChanged(true,pInputData->UserIndex); } \ No newline at end of file diff --git a/Minecraft.Client/Common/UI/UIScene_SettingsOptionsMenu.h b/Minecraft.Client/Common/UI/UIScene_SettingsOptionsMenu.h index 74b5fc02..9688a279 100644 --- a/Minecraft.Client/Common/UI/UIScene_SettingsOptionsMenu.h +++ b/Minecraft.Client/Common/UI/UIScene_SettingsOptionsMenu.h @@ -12,7 +12,6 @@ private: eControl_ShowTooltips, eControl_InGameGamertags, eControl_OldSwingAnimation, - eControl_ShowMashUpWorlds, eControl_Autosave, eControl_Languages, eControl_Difficulty @@ -22,7 +21,7 @@ protected: static int m_iDifficultyTitleSettingA[4]; private: - UIControl_CheckBox m_checkboxViewBob, m_checkboxShowHints, m_checkboxShowTooltips, m_checkboxInGameGamertags, m_checkboxOldSwingAnimation, m_checkboxMashupWorlds; // Checkboxes + UIControl_CheckBox m_checkboxViewBob, m_checkboxShowHints, m_checkboxShowTooltips, m_checkboxInGameGamertags, m_checkboxOldSwingAnimation; // Checkboxes UIControl_Slider m_sliderAutosave, m_sliderDifficulty; // Sliders UIControl_Label m_labelDifficultyText; //Text UIControl_Button m_buttonLanguageSelect; @@ -33,7 +32,6 @@ private: UI_MAP_ELEMENT( m_checkboxShowTooltips, "ShowTooltips") UI_MAP_ELEMENT( m_checkboxInGameGamertags, "InGameGamertags") UI_MAP_ELEMENT( m_checkboxOldSwingAnimation, "OldSwingAnimation") - UI_MAP_ELEMENT( m_checkboxMashupWorlds, "ShowMashUpWorlds") UI_MAP_ELEMENT( m_sliderAutosave, "Autosave") UI_MAP_ELEMENT( m_sliderDifficulty, "Difficulty") UI_MAP_ELEMENT( m_labelDifficultyText, "DifficultyText") @@ -41,7 +39,6 @@ private: UI_END_MAP_ELEMENTS_AND_NAMES() bool m_bNotInGame; - bool m_bMashUpWorldsUnhideOption; bool m_bNavigateToLanguageSelector; public: diff --git a/Minecraft.Client/Font.cpp b/Minecraft.Client/Font.cpp index 1040eaa0..517e8fab 100644 --- a/Minecraft.Client/Font.cpp +++ b/Minecraft.Client/Font.cpp @@ -310,6 +310,8 @@ void Font::draw(const wstring &str, bool dropShadow, int initialColor) t->begin(); t->color(currentColor & 0x00ffffff, (currentColor >> 24) & 255); + bool prev = t->setMipmapEnable(false); // Disable mipmapping for fonts, and save previous enabled value to be restored later - Botch + for (int i = 0; i < static_cast(cleanStr.length()); ++i) { // Map character @@ -371,6 +373,8 @@ void Font::draw(const wstring &str, bool dropShadow, int initialColor) addCharacterQuad(c); } + t->setMipmapEnable(prev); //Reinstates previously used enabled value - Botch + t->end(); } diff --git a/Minecraft.Client/GameRenderer.cpp b/Minecraft.Client/GameRenderer.cpp index 06611296..092b97fc 100644 --- a/Minecraft.Client/GameRenderer.cpp +++ b/Minecraft.Client/GameRenderer.cpp @@ -701,6 +701,7 @@ void GameRenderer::setupCamera(float a, int eye) void GameRenderer::renderItemInHand(float a, int eye) { if (cameraFlip > 0) return; + if (itemInHandRenderer == nullptr) return; // 4J-JEV: I'm fairly confident this method would crash if the cameratarget isnt a local player anyway, but oh well. shared_ptr localplayer = mc->cameraTargetPlayer->instanceof(eTYPE_LOCALPLAYER) ? dynamic_pointer_cast(mc->cameraTargetPlayer) : nullptr; @@ -1261,9 +1262,6 @@ int GameRenderer::runUpdate(LPVOID lpParam) Tesselator::CreateNewThreadStorage(1024*1024); Compression::UseDefaultThreadStorage(); RenderManager.InitialiseContext(); -#ifdef _LARGE_WORLDS - Chunk::CreateNewThreadStorage(); -#endif Tile::CreateNewThreadStorage(); ShutdownManager::HasStarted(ShutdownManager::eRenderChunkUpdateThread,m_updateEvents); @@ -1522,7 +1520,10 @@ void GameRenderer::renderLevel(float a, int64_t until) glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDepthMask(true); setupFog(0, a); - glEnable(GL_BLEND); + if (mc->options->fancyGraphics) + { + glEnable(GL_BLEND); + } glDisable(GL_CULL_FACE); MemSect(31); mc->textures->bindTexture(&TextureAtlas::LOCATION_BLOCKS); // 4J was L"/terrain.png" @@ -1530,32 +1531,34 @@ void GameRenderer::renderLevel(float a, int64_t until) // 4J - have changed this fancy rendering option to work with our command buffers. The original used to use frame buffer flags to disable // writing to colour when doing the z-only pass, but that value gets obliterated by our command buffers. Using alpha blend function instead // to achieve the same effect. + if (mc->options->ambientOcclusion) + { + GL11::glShadeModel(GL11::GL_SMOOTH); + } + + PIXBeginNamedEvent(0,"Fancy second pass - writing z"); + glBlendFunc(GL_ZERO, GL_ONE); + glEnable(GL_CULL_FACE); + levelRenderer->render(cameraEntity, 2, a, updateChunks); + PIXEndNamedEvent(); + + PIXBeginNamedEvent(0, "Fancy second pass - actual render"); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + levelRenderer->render(cameraEntity, 2, a, updateChunks); // 4J - chanaged, used to be renderSameAsLast but we don't support that anymore + PIXEndNamedEvent(); + if (mc->options->fancyGraphics) { - if (mc->options->ambientOcclusion) - { - GL11::glShadeModel(GL11::GL_SMOOTH); - } - - PIXBeginNamedEvent(0,"Fancy second pass - writing z"); - - glBlendFunc(GL_ZERO, GL_ONE); - glEnable(GL_CULL_FACE); - - levelRenderer->render(cameraEntity, 2, a, updateChunks); - PIXEndNamedEvent(); - PIXBeginNamedEvent(0, "Fancy second pass - actual render"); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - levelRenderer->render(cameraEntity, 2, a, updateChunks); // 4J - chanaged, used to be renderSameAsLast but we don't support that anymore - PIXEndNamedEvent(); - GL11::glShadeModel(GL11::GL_FLAT); - - PIXBeginNamedEvent(0, "Second pass level render"); - levelRenderer->render(cameraEntity, 1, a, updateChunks); - PIXEndNamedEvent(); } + // @Patoke todo: implement, this is really important for rendering of order independent alpha objects + // RenderManager.BeginOrderIndependentAlpha(); + + PIXBeginNamedEvent(0, "Second pass level render"); + levelRenderer->render(cameraEntity, 1, a, updateChunks); + PIXEndNamedEvent(); + // 4J - added - have split out translucent particle rendering so that it happens after the water is rendered, primarily for fireworks PIXBeginNamedEvent(0,"Particle render (translucent)"); Lighting::turnOn(); @@ -1566,6 +1569,8 @@ void GameRenderer::renderLevel(float a, int64_t until) particleEngine->render(cameraEntity, a, ParticleEngine::TRANSLUCENT_LIST); PIXEndNamedEvent(); turnOffLightLayer(a); // 4J - brought forward from 1.8.2 + // @Patoke todo: implement + // RenderManager.EndOrderIndependentAlpha(); ////////////////////////// End of 4J added section glDepthMask(true); @@ -1590,7 +1595,10 @@ void GameRenderer::renderLevel(float a, int64_t until) glDisable(GL_FOG); */ - glEnable(GL_BLEND); + if (mc->options->fancyGraphics) + { + glEnable(GL_BLEND); + } glBlendFunc(GL_SRC_ALPHA, GL_ONE); levelRenderer->renderDestroyAnimation(Tesselator::getInstance(), dynamic_pointer_cast(cameraEntity), a); glDisable(GL_BLEND); @@ -1608,14 +1616,12 @@ void GameRenderer::renderLevel(float a, int64_t until) PIXEndNamedEvent(); glDisable(GL_FOG); - if (zoom == 1) { glClear(GL_DEPTH_BUFFER_BIT); renderItemInHand(a, i); } - if (!mc->options->anaglyph3d) { return; @@ -1760,7 +1766,10 @@ void GameRenderer::renderSnowAndRain(float a) Tesselator *t = Tesselator::getInstance(); glDisable(GL_CULL_FACE); glNormal3f(0, 1, 0); - glEnable(GL_BLEND); + if (mc->options->fancyGraphics) + { + glEnable(GL_BLEND); + } glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glAlphaFunc(GL_GREATER, 0.01f); diff --git a/Minecraft.Client/ItemInHandRenderer.cpp b/Minecraft.Client/ItemInHandRenderer.cpp index 3cbe1ed1..b63fbfe0 100644 --- a/Minecraft.Client/ItemInHandRenderer.cpp +++ b/Minecraft.Client/ItemInHandRenderer.cpp @@ -11,6 +11,7 @@ #include "MultiplayerLocalPlayer.h" #include "Minimap.h" #include "MultiPlayerLevel.h" +#include "Options.h" #include "..\Minecraft.World\net.minecraft.world.item.h" #include "..\Minecraft.World\net.minecraft.world.level.tile.h" #include "..\Minecraft.World\net.minecraft.world.entity.h" @@ -243,8 +244,11 @@ void ItemInHandRenderer::renderItem(shared_ptr mob, shared_ptrtextures->bindTexture(minecraft->textures->getTextureLocation(Icon::TYPE_TERRAIN)); MemSect(0); - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + if (minecraft->options->fancyGraphics) + { + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + } tileRenderer->renderTile(Tile::tiles[item->id], item->getAuxValue(), SharedConstants::TEXTURE_LIGHTING ? 1.0f : mob->getBrightness(1)); // 4J - change brought forward from 1.8.2 glDisable(GL_BLEND); } diff --git a/Minecraft.Client/LevelRenderer.cpp b/Minecraft.Client/LevelRenderer.cpp index 16b0c5ba..1844bd7e 100644 --- a/Minecraft.Client/LevelRenderer.cpp +++ b/Minecraft.Client/LevelRenderer.cpp @@ -851,7 +851,7 @@ int LevelRenderer::renderChunks(int from, int to, int layer, double alpha) if( !(globalChunkFlags[pClipChunk->globalIdx] & LevelRenderer::CHUNK_FLAG_CUT_OUT) ) continue; // Does this chunk contain any cut out geometry // List can be calculated directly from the chunk's global idex - int list = pClipChunk->globalIdx * 2 + layer; + int list = pClipChunk->globalIdx * 3 + layer; list += chunkLists; if(RenderManager.CBuffCallCutOut(list, first)) @@ -3735,7 +3735,6 @@ int LevelRenderer::rebuildChunkThreadProc(LPVOID lpParam) IntCache::CreateNewThreadStorage(); Tesselator::CreateNewThreadStorage(1024*1024); RenderManager.InitialiseContext(); - Chunk::CreateNewThreadStorage(); Tile::CreateNewThreadStorage(); int index = (size_t)lpParam; diff --git a/Minecraft.Client/LocalPlayer.cpp b/Minecraft.Client/LocalPlayer.cpp index d198affb..00b1761b 100644 --- a/Minecraft.Client/LocalPlayer.cpp +++ b/Minecraft.Client/LocalPlayer.cpp @@ -227,7 +227,7 @@ void LocalPlayer::aiStep() if (portalTime == 0) { - minecraft->soundEngine->playUI(eSoundType_PORTAL_TRIGGER, 1, random->nextFloat() * 0.4f + 0.8f); + playSound(eSoundType_PORTAL_TRIGGER, 0.5f, random->nextFloat() * 0.4f + 0.8f); } portalTime += 1 / 80.0f; if (portalTime >= 1) @@ -558,7 +558,7 @@ void LocalPlayer::changeDimension(int i) { awardStat(GenericStats::theEnd(), GenericStats::param_theEnd()); - minecraft->soundEngine->playUI(eSoundType_PORTAL_TRAVEL, 1, random->nextFloat() * 0.4f + 0.8f); + playSound(eSoundType_PORTAL_TRAVEL, 0.5f, random->nextFloat() * 0.4f + 0.8f); } } } diff --git a/Minecraft.Client/Minecraft.cpp b/Minecraft.Client/Minecraft.cpp index 4d5fe33d..f63b9c21 100644 --- a/Minecraft.Client/Minecraft.cpp +++ b/Minecraft.Client/Minecraft.cpp @@ -421,7 +421,7 @@ void Minecraft::init() if (connectToIp != L"") // 4J - was nullptr comparison { - // setScreen(new ConnectScreen(this, connectToIp, connectToPort)); // 4J TODO - put back in + //setScreen(new ConnectScreen(this, connectToIp, connectToPort)); // 4J TODO - put back in } else { @@ -4514,7 +4514,7 @@ void Minecraft::prepareLevel(int title) { if(progressRenderer != nullptr) this->progressRenderer->progressStage(IDS_PROGRESS_SIMULATING_WORLD); max = 2000; -} + } } wstring Minecraft::gatherStats1() diff --git a/Minecraft.Client/MinecraftServer.cpp b/Minecraft.Client/MinecraftServer.cpp index a10d47a2..d8bb9ce5 100644 --- a/Minecraft.Client/MinecraftServer.cpp +++ b/Minecraft.Client/MinecraftServer.cpp @@ -1757,12 +1757,12 @@ void MinecraftServer::run(int64_t seed, void *lpParameter) int64_t passedTime = now - lastTime; if (passedTime > MS_PER_TICK * 40) { - // logger.warning("Can't keep up! Did the system time change, or is the server overloaded?"); + //logger.warning("Can't keep up! Did the system time change, or is the server overloaded?"); passedTime = MS_PER_TICK * 40; } if (passedTime < 0) { - // logger.warning("Time ran backwards! Did the system time change?"); + //logger.warning("Time ran backwards! Did the system time change?"); passedTime = 0; } unprocessedTime += passedTime; @@ -1779,22 +1779,23 @@ void MinecraftServer::run(int64_t seed, void *lpParameter) } else { - // int tickcount = 0; - // int64_t beforeall = System::currentTimeMillis(); + //int tickcount = 0; + //int64_t beforeall = System::currentTimeMillis(); while (unprocessedTime > MS_PER_TICK) { unprocessedTime -= MS_PER_TICK; chunkPacketManagement_PreTick(); - // int64_t before = System::currentTimeMillis(); + //int64_t before = System::currentTimeMillis(); tick(); - // int64_t after = System::currentTimeMillis(); - // PIXReportCounter(L"Server time",(float)(after-before)); + //int64_t after = System::currentTimeMillis(); + //PIXReportCounter(L"Server time",(float)(after-before)); chunkPacketManagement_PostTick(); } - // int64_t afterall = System::currentTimeMillis(); - // PIXReportCounter(L"Server time all",(float)(afterall-beforeall)); - // PIXReportCounter(L"Server ticks",(float)tickcount); + lastTime = getCurrentTimeMillis(); // Is this a good fix? + //int64_t afterall = System::currentTimeMillis(); + //PIXReportCounter(L"Server time all",(float)(afterall-beforeall)); + //PIXReportCounter(L"Server ticks",(float)tickcount); } } else @@ -1814,11 +1815,8 @@ void MinecraftServer::run(int64_t seed, void *lpParameter) MinecraftServer::setTimeAtEndOfTick = false; for (unsigned int i = 0; i < levels.length; i++) { - // if (i == 0 || settings->getBoolean(L"allow-nether", true)) // 4J removed - we always have nether - { - ServerLevel *level = levels[i]; - level->setGameTime( MinecraftServer::setTime ); - } + ServerLevel *level = levels[i]; + level->setGameTime( MinecraftServer::setTime ); } } if(MinecraftServer::setTimeOfDayAtEndOfTick) diff --git a/Minecraft.Client/MultiPlayerChunkCache.cpp b/Minecraft.Client/MultiPlayerChunkCache.cpp index 03c47fcc..62361ce3 100644 --- a/Minecraft.Client/MultiPlayerChunkCache.cpp +++ b/Minecraft.Client/MultiPlayerChunkCache.cpp @@ -139,26 +139,19 @@ bool MultiPlayerChunkCache::reallyHasChunk(int x, int z) return hasData[idx]; } -void MultiPlayerChunkCache::drop(const int x, const int z) +void MultiPlayerChunkCache::drop(int x, int z) { - const int ix = x + XZOFFSET; - const int iz = z + XZOFFSET; - if ((ix < 0) || (ix >= XZSIZE)) return; - if ((iz < 0) || (iz >= XZSIZE)) return; - const int idx = ix * XZSIZE + iz; - LevelChunk* chunk = cache[idx]; - - if (chunk != nullptr && !chunk->isEmpty()) + // 4J Stu - We do want to drop any entities in the chunks, especially for the case when a player is dead as they will + // not get the RemoveEntity packet if an entity is removed. + LevelChunk *chunk = getChunk(x, z); + if (!chunk->isEmpty()) { - // Unload chunk but keep tile entities + // Added parameter here specifies that we don't want to delete tile entities, as they won't get recreated unless they've got update packets + // The tile entities are in general only created on the client by virtue of the chunk rebuild chunk->unload(false); - const auto it = std::find(loadedChunkList.begin(), loadedChunkList.end(), chunk); - if (it != loadedChunkList.end()) loadedChunkList.erase(it); - - cache[idx] = nullptr; - hasData[idx] = false; - chunk->loaded = false; + // 4J - We just want to clear out the entities in the chunk, but everything else should be valid + chunk->loaded = true; } } diff --git a/Minecraft.Client/Options.cpp b/Minecraft.Client/Options.cpp index 5b98d441..e722c26e 100644 --- a/Minecraft.Client/Options.cpp +++ b/Minecraft.Client/Options.cpp @@ -15,7 +15,7 @@ #include "..\Minecraft.World\StringHelpers.h" // 4J - the Option sub-class used to be an java enumerated type, trying to emulate that functionality here -const Options::Option Options::Option::options[17] = +const Options::Option Options::Option::options[18] = { Options::Option(L"options.music", true, false), Options::Option(L"options.sound", true, false), @@ -29,6 +29,7 @@ const Options::Option Options::Option::options[17] = Options::Option(L"options.difficulty", false, false), Options::Option(L"options.graphics", false, false), Options::Option(L"options.ao", false, true), + Options::Option(L"options.betterWater", false, false), Options::Option(L"options.guiScale", false, false), Options::Option(L"options.fov", true, false), Options::Option(L"options.gamma", true, false), @@ -48,11 +49,12 @@ const Options::Option *Options::Option::FRAMERATE_LIMIT = &Options::Option::opti const Options::Option *Options::Option::DIFFICULTY = &Options::Option::options[9]; const Options::Option *Options::Option::GRAPHICS = &Options::Option::options[10]; const Options::Option *Options::Option::AMBIENT_OCCLUSION = &Options::Option::options[11]; -const Options::Option *Options::Option::GUI_SCALE = &Options::Option::options[12]; -const Options::Option *Options::Option::FOV = &Options::Option::options[13]; -const Options::Option *Options::Option::GAMMA = &Options::Option::options[14]; -const Options::Option *Options::Option::RENDER_CLOUDS = &Options::Option::options[15]; -const Options::Option *Options::Option::PARTICLES = &Options::Option::options[16]; +const Options::Option *Options::Option::BETTER_WATER = &Options::Option::options[12]; +const Options::Option *Options::Option::GUI_SCALE = &Options::Option::options[13]; +const Options::Option *Options::Option::FOV = &Options::Option::options[14]; +const Options::Option *Options::Option::GAMMA = &Options::Option::options[15]; +const Options::Option *Options::Option::RENDER_CLOUDS = &Options::Option::options[16]; +const Options::Option *Options::Option::PARTICLES = &Options::Option::options[17]; const Options::Option *Options::Option::getItem(int id) @@ -86,22 +88,23 @@ wstring Options::Option::getCaptionId() const const wstring Options::RENDER_DISTANCE_NAMES[] = { - L"options.renderDistance.far", L"options.renderDistance.normal", L"options.renderDistance.short", L"options.renderDistance.tiny" + L"options.renderDistance.far", L"options.renderDistance.normal", L"options.renderDistance.short", L"options.renderDistance.tiny" }; const wstring Options::DIFFICULTY_NAMES[] = { - L"options.difficulty.peaceful", L"options.difficulty.easy", L"options.difficulty.normal", L"options.difficulty.hard" + L"options.difficulty.peaceful", L"options.difficulty.easy", L"options.difficulty.normal", L"options.difficulty.hard" }; const wstring Options::GUI_SCALE[] = { - L"options.guiScale.auto", L"options.guiScale.small", L"options.guiScale.normal", L"options.guiScale.large" + L"options.guiScale.auto", L"options.guiScale.small", L"options.guiScale.normal", L"options.guiScale.large" }; const wstring Options::FRAMERATE_LIMITS[] = { - L"performance.max", L"performance.balanced", L"performance.powersaver" + L"performance.max", L"performance.balanced", L"performance.powersaver" }; -const wstring Options::PARTICLES[] = { +const wstring Options::PARTICLES[] = +{ L"options.particles.all", L"options.particles.decreased", L"options.particles.minimal" }; @@ -118,6 +121,7 @@ void Options::init() advancedOpengl = false; framerateLimit = 0; fancyGraphics = true; + betterWater = false; ambientOcclusion = true; renderClouds = true; skin = L"Default"; @@ -247,6 +251,10 @@ void Options::set(const Options::Option *item, float fVal) { fancyGraphics = fVal; } + if (item == Option::BETTER_WATER) + { + betterWater = fVal; + } if (item == Option::AMBIENT_OCCLUSION) { ambientOcclusion = fVal; @@ -292,10 +300,14 @@ void Options::toggle(const Options::Option *option, int dir) ambientOcclusion = !ambientOcclusion; minecraft->levelRenderer->allChanged(); } + if (option == Option::BETTER_WATER) + { + betterWater = !betterWater; + minecraft->textures->reloadAll(); + } // 4J-PB - don't do the file save on the xbox // save(); - } float Options::getProgressValue(const Options::Option *item) @@ -308,6 +320,7 @@ float Options::getProgressValue(const Options::Option *item) if (item == Option::RENDER_DISTANCE) return viewDistance; if (item == Option::GRAPHICS) return fancyGraphics; if (item == Option::AMBIENT_OCCLUSION) return ambientOcclusion; + if (item == Option::BETTER_WATER) return betterWater; return 0; } @@ -461,6 +474,7 @@ void Options::load() if (cmds[0] == L"difficulty") difficulty = _fromString(cmds[1]); if (cmds[0] == L"fancyGraphics") fancyGraphics = cmds[1]==L"true"; if (cmds[0] == L"ao") ambientOcclusion = cmds[1]==L"true"; + if (cmds[0] == L"betterWater") betterWater = cmds[1]==L"false"; if (cmds[0] == L"clouds") renderClouds = cmds[1]==L"true"; if (cmds[0] == L"advancedTooltips") advancedTooltips = cmds[1]==L"false"; if (cmds[0] == L"skin") skin = cmds[1]; @@ -519,6 +533,7 @@ void Options::save() dos.writeChars(L"difficulty:" + std::to_wstring(difficulty)); dos.writeChars(L"fancyGraphics:" + wstring(fancyGraphics ? L"true" : L"false")); dos.writeChars(ambientOcclusion ? L"ao:true" : L"ao:false"); + dos.writeChars(betterWater ? L"betterWater:true" : L"betterWater:false"); dos.writeChars(renderClouds ? L"clouds:true" : L"clouds:false"); dos.writeChars(advancedTooltips ? L"advancedTooltips:true" : L"advancedTooltips:false"); dos.writeChars(L"skin:" + skin); diff --git a/Minecraft.Client/Options.h b/Minecraft.Client/Options.h index 29cd83ac..ae66d0ab 100644 --- a/Minecraft.Client/Options.h +++ b/Minecraft.Client/Options.h @@ -15,7 +15,7 @@ public: class Option { public: - static const Option options[17]; + static const Option options[18]; static const Option *MUSIC; static const Option *SOUND; static const Option *INVERT_MOUSE; @@ -28,6 +28,7 @@ public: static const Option *DIFFICULTY; static const Option *GRAPHICS; static const Option *AMBIENT_OCCLUSION; + static const Option *BETTER_WATER; static const Option *GUI_SCALE; static const Option *FOV; static const Option *GAMMA; @@ -68,6 +69,7 @@ public: int framerateLimit; bool fancyGraphics; bool ambientOcclusion; + bool betterWater; bool renderClouds; wstring skin; diff --git a/Minecraft.Client/PlayerChunkMap.cpp b/Minecraft.Client/PlayerChunkMap.cpp index ddf2bae2..bcc3f6ba 100644 --- a/Minecraft.Client/PlayerChunkMap.cpp +++ b/Minecraft.Client/PlayerChunkMap.cpp @@ -792,14 +792,6 @@ void PlayerChunkMap::setRadius(int newRadius) int xc = static_cast(player->x) >> 4; int zc = static_cast(player->z) >> 4; - for (auto it = addRequests.begin(); it != addRequests.end(); ) - { - if (it->player == player) - it = addRequests.erase(it); - else - ++it; - } - for (int x = xc - newRadius; x <= xc + newRadius; x++) for (int z = zc - newRadius; z <= zc + newRadius; z++) { @@ -809,26 +801,9 @@ void PlayerChunkMap::setRadius(int newRadius) getChunkAndAddPlayer(x, z, player); } } - - // Remove chunks that are outside the new radius - for (int x = xc - radius; x <= xc + radius; x++) - { - for (int z = zc - radius; z <= zc + radius; z++) - { - if (x < xc - newRadius || x > xc + newRadius || z < zc - newRadius || z > zc + newRadius) - { - getChunkAndRemovePlayer(x, z, player); - } - } - } } } - if (newRadius < radius) - { - level->cache->dropAll(); - } - assert(radius <= MAX_VIEW_DISTANCE); assert(radius >= MIN_VIEW_DISTANCE); this->radius = newRadius; diff --git a/Minecraft.Client/PlayerList.cpp b/Minecraft.Client/PlayerList.cpp index 331539cb..ba82ec6a 100644 --- a/Minecraft.Client/PlayerList.cpp +++ b/Minecraft.Client/PlayerList.cpp @@ -1690,16 +1690,7 @@ bool PlayerList::isXuidBanned(PlayerUID xuid) } // AP added for Vita so the range can be increased once the level starts -void PlayerList::setViewDistance(const int newViewDistance) +void PlayerList::setViewDistance(int newViewDistance) { viewDistance = newViewDistance; - - for (size_t i = 0; i < server->levels.length; i++) - { - ServerLevel* level = server->levels[i]; - if (level != nullptr) - { - level->getChunkMap()->setRadius(newViewDistance); - } - } } diff --git a/Minecraft.Client/ServerChunkCache.cpp b/Minecraft.Client/ServerChunkCache.cpp index 54312ffa..eb1b284b 100644 --- a/Minecraft.Client/ServerChunkCache.cpp +++ b/Minecraft.Client/ServerChunkCache.cpp @@ -80,31 +80,55 @@ vector *ServerChunkCache::getLoadedChunkList() return &m_loadedChunkList; } -void ServerChunkCache::drop(const int x, const int z) +void ServerChunkCache::drop(int x, int z) { - const int ix = x + XZOFFSET; - const int iz = z + XZOFFSET; - if ((ix < 0) || (ix >= XZSIZE)) return; - if ((iz < 0) || (iz >= XZSIZE)) return; - const int idx = ix * XZSIZE + iz; - LevelChunk* chunk = cache[idx]; - - if (chunk != nullptr) + // 4J - we're not dropping things anymore now that we have a fixed sized cache +#ifdef _LARGE_WORLDS + bool canDrop = false; +/* + if (level->dimension->mayRespawn()) { - const auto it = std::find(m_loadedChunkList.begin(), m_loadedChunkList.end(), chunk); - if (it != m_loadedChunkList.end()) m_loadedChunkList.erase(it); - - cache[idx] = nullptr; - chunk->loaded = false; + Pos *spawnPos = level->getSharedSpawnPos(); + int xd = x * 16 + 8 - spawnPos->x; + int zd = z * 16 + 8 - spawnPos->z; + delete spawnPos; + int r = 128; + if (xd < -r || xd > r || zd < -r || zd > r) + { + canDrop = true; + } } +*/ +// else +// { + canDrop = true; +// } + if(canDrop) + { + int ix = x + XZOFFSET; + int iz = z + XZOFFSET; + // Check we're in range of the stored level + if( ( ix < 0 ) || ( ix >= XZSIZE ) ) return; + if( ( iz < 0 ) || ( iz >= XZSIZE ) ) return; + int idx = ix * XZSIZE + iz; + LevelChunk *chunk = cache[idx]; + + if(chunk) + { + m_toDrop.push_back(chunk); + } + } +#endif } void ServerChunkCache::dropAll() { +#ifdef _LARGE_WORLDS for (LevelChunk *chunk : m_loadedChunkList) { drop(chunk->x, chunk->z); } +#endif } // 4J - this is the original (and virtual) interface to create @@ -934,10 +958,6 @@ bool ServerChunkCache::tick() m_unloadedCache[idx] = chunk; cache[idx] = nullptr; } - else - { - continue; - } } m_toDrop.pop_front(); } diff --git a/Minecraft.Client/ServerLevel.cpp b/Minecraft.Client/ServerLevel.cpp index a2596911..5c0aa7f6 100644 --- a/Minecraft.Client/ServerLevel.cpp +++ b/Minecraft.Client/ServerLevel.cpp @@ -678,7 +678,7 @@ bool ServerLevel::tickPendingTicks(bool force) } else { - addToTickNextTick(td.x, td.y, td.z, td.tileId, 0); + forceAddTileTick(td.x, td.y, td.z, td.tileId, 0, td.priorityTilt); // Is this a good fix? } } @@ -1052,9 +1052,14 @@ void ServerLevel::entityAdded(shared_ptr e) vector > *es = e->getSubEntities(); if (es) { + // Reassign sub-entity IDs to be sequential from the parent's ID. + // The client assumes this layout when it applies an offset in handleAddMob. + int offset = 1; for(auto& i : *es) { + i->entityId = e->entityId + offset; entitiesById.emplace(i->entityId, i); + offset++; } } entityAddedExtra(e); // 4J added diff --git a/Minecraft.Client/Tesselator.cpp b/Minecraft.Client/Tesselator.cpp index babad52e..2ed4374b 100644 --- a/Minecraft.Client/Tesselator.cpp +++ b/Minecraft.Client/Tesselator.cpp @@ -9,21 +9,13 @@ bool Tesselator::TRIANGLE_MODE = false; bool Tesselator::USE_VBO = false; /* Things to check we are intialising in the constructor... - - - double u, v; int col; int mode; double xo, yo, zo; int normal; - - - - - - */ + static thread_local std::unique_ptr tlsInstance; Tesselator *Tesselator::getInstance() @@ -806,7 +798,7 @@ void Tesselator::vertex(float x, float y, float z) pShortData[5] = (static_cast(v * 8192.0f)&0xffff); int16_t u2 = ((int16_t*)&_tex2)[0]; int16_t v2 = ((int16_t*)&_tex2)[1]; -#if defined _XBOX_ONE || defined __ORBIS__ +#if defined _XBOX_ONE || defined __ORBIS__ // Optimisation - pack the second UVs into a single short (they could actually go in a byte), which frees up a short to store the x offset for this chunk in the vertex itself. // This means that when rendering chunks, we don't need to update the vertex constants that specify the location for a chunk, when only the x offset has changed. pShortData[6] = ( u2 << 8 ) | v2; diff --git a/Minecraft.Client/Texture.cpp b/Minecraft.Client/Texture.cpp index b7e58d5f..78dbcf4e 100644 --- a/Minecraft.Client/Texture.cpp +++ b/Minecraft.Client/Texture.cpp @@ -3,6 +3,7 @@ #include "Rect2i.h" #include "TextureManager.h" #include "Texture.h" +#include "Options.h" #ifdef __PS3__ #include "PS3\SPU_Tasks\Texture_blit\Texture_blit.h" @@ -716,38 +717,47 @@ int Texture::crispBlend(int c0, int c1) int a0 = static_cast(((c0 & 0xff000000) >> 24)) & 0xff; int a1 = static_cast(((c1 & 0xff000000) >> 24)) & 0xff; - int a = 255; - if (a0 + a1 < 255) + // continue with crisp blend if it's likely to be an opaque/cutout tile in the atlas + if (a0 >= 0xfa || a1 >= 0xfa || !Minecraft::GetInstance()->options->betterWater) { - a = 0; - a0 = 1; - a1 = 1; + int a = 255; + + if (a0 + a1 < 255) + { + a = 0; + a0 = 1; + a1 = 1; + } + else if (a0 > a1) + { + a0 = 255; + a1 = 1; + } + else + { + a0 = 1; + a1 = 255; + + } + + int r0 = ((c0 >> 16) & 0xff) * a0; + int g0 = ((c0 >> 8) & 0xff) * a0; + int b0 = ((c0) & 0xff) * a0; + + int r1 = ((c1 >> 16) & 0xff) * a1; + int g1 = ((c1 >> 8) & 0xff) * a1; + int b1 = ((c1) & 0xff) * a1; + + int r = (r0 + r1) / (a0 + a1); + int g = (g0 + g1) / (a0 + a1); + int b = (b0 + b1) / (a0 + a1); + + return (a << 24) | (r << 16) | (g << 8) | b; } - else if (a0 > a1) + else // smoothblend if it's transparent { - a0 = 255; - a1 = 1; + return (((a0 + a1) >> 1) << 24) | (((c0 & 0xfefefe) + (c1 & 0xfefefe)) >> 1); } - else - { - a0 = 1; - a1 = 255; - - } - - int r0 = ((c0 >> 16) & 0xff) * a0; - int g0 = ((c0 >> 8) & 0xff) * a0; - int b0 = ((c0) & 0xff) * a0; - - int r1 = ((c1 >> 16) & 0xff) * a1; - int g1 = ((c1 >> 8) & 0xff) * a1; - int b1 = ((c1) & 0xff) * a1; - - int r = (r0 + r1) / (a0 + a1); - int g = (g0 + g1) / (a0 + a1); - int b = (b0 + b1) / (a0 + a1); - - return (a << 24) | (r << 16) | (g << 8) | b; } int Texture::getManagerId() diff --git a/Minecraft.Client/TrackedEntity.cpp b/Minecraft.Client/TrackedEntity.cpp index a936b27a..a4d017d6 100644 --- a/Minecraft.Client/TrackedEntity.cpp +++ b/Minecraft.Client/TrackedEntity.cpp @@ -654,6 +654,14 @@ shared_ptr TrackedEntity::getAddEntityPacket() PlayerUID xuid = INVALID_XUID; PlayerUID OnlineXuid = INVALID_XUID; +#ifndef MINECRAFT_SERVER_BUILD + if( player != nullptr ) + { + xuid = player->getXuid(); + OnlineXuid = player->getOnlineXuid(); + } +#endif + // 4J Added yHeadRotp param to fix #102563 - TU12: Content: Gameplay: When one of the Players is idle for a few minutes his head turns 180 degrees. return std::make_shared(player, xuid, OnlineXuid, xp, yp, zp, yRotp, xRotp, yHeadRotp); } diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/cave/cave1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/cave/cave1.ogg index 4e4cbd6f..9f33afa2 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/cave/cave1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/cave/cave1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/cave/cave1_fixed.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/cave/cave1_fixed.ogg deleted file mode 100644 index 9f33afa2..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/cave/cave1_fixed.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/cave/cave8.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/cave/cave8.ogg index 962d8885..7bea57f0 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/cave/cave8.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/cave/cave8.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/cave/cave8_fixed.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/cave/cave8_fixed.ogg deleted file mode 100644 index 7bea57f0..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/cave/cave8_fixed.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/rain1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/rain1.ogg index c16859a6..6246c9cf 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/rain1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/rain1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/rain2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/rain2.ogg index e58fcc9b..598c30a1 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/rain2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/rain2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/rain3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/rain3.ogg index c8935e3e..5057d6bd 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/rain3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/rain3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/rain4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/rain4.ogg index 5c287989..44ce41fc 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/rain4.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/rain4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/thunder1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/thunder1.ogg index a0e56164..59af5582 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/thunder1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/thunder1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/thunder2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/thunder2.ogg index 43c0b022..2233dbfa 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/thunder2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/thunder2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/thunder3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/thunder3.ogg index aafdfa0d..abd32089 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/thunder3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/ambient/weather/thunder3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/damage/Thorns1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/damage/Thorns1.ogg new file mode 100644 index 00000000..2a6208b8 Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/damage/Thorns1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/damage/Thorns2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/damage/Thorns2.ogg new file mode 100644 index 00000000..ae3a03d9 Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/damage/Thorns2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/damage/Thorns3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/damage/Thorns3.ogg new file mode 100644 index 00000000..11bc3b2e Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/damage/Thorns3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/damage/Thorns4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/damage/Thorns4.ogg new file mode 100644 index 00000000..05e1cf5a Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/damage/Thorns4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/fire/ignite.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/fire/ignite.ogg index 86de01b4..849071b5 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/fire/ignite.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/fire/ignite.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/fire/new_ignite.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/fire/new_ignite.ogg deleted file mode 100644 index 849071b5..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/fire/new_ignite.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/lava.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/lava.ogg index 783f8e80..535de305 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/lava.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/lava.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/lavapop.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/lavapop.ogg index 782a6e73..0173bf9a 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/lavapop.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/lavapop.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/splash.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/splash.ogg index e0beb613..72820ea5 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/splash.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/splash.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/swim1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/swim1.ogg new file mode 100644 index 00000000..49837c6d Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/swim1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/swim2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/swim2.ogg new file mode 100644 index 00000000..dcef757c Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/swim2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/swim3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/swim3.ogg new file mode 100644 index 00000000..697b2b9f Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/swim3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/swim4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/swim4.ogg new file mode 100644 index 00000000..34526c5c Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/swim4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/water.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/water.ogg index d446f082..157491b2 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/water.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/liquid/water.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/breathe1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/breathe1.ogg index b1cc0b6a..7c914860 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/breathe1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/breathe1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/breathe2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/breathe2.ogg index 8361aaa8..a296c870 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/breathe2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/breathe2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/breathe3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/breathe3.ogg index a7f5dfa9..a374f1f4 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/breathe3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/breathe3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/breathe4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/breathe4.ogg index 5916b3dd..bd8cb3ee 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/breathe4.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/breathe4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/death.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/death.ogg index 4c6c8e36..6a882c59 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/death.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/death.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/hit1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/hit1.ogg index 2e12513f..78475864 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/hit1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/hit1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/hit2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/hit2.ogg index 05fbd33f..c741e7cf 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/hit2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/hit2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/hit3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/hit3.ogg index c2539dc1..fdec114f 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/hit3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/hit3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/hit4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/hit4.ogg index 01deec1e..ff31cd4d 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/hit4.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/blaze/hit4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cat/hit1/_13646_7069696.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cat/hit1/_13646_7069696.ogg deleted file mode 100644 index 24008f06..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cat/hit1/_13646_7069696.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cat/hit2/_17818_7086080.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cat/hit2/_17818_7086080.ogg deleted file mode 100644 index c2ebca01..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cat/hit2/_17818_7086080.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cat/hit3/_13260_7106560.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cat/hit3/_13260_7106560.ogg deleted file mode 100644 index 827e13f7..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cat/hit3/_13260_7106560.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/hurt1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/hurt1.ogg index 3474305c..a56a08d7 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/hurt1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/hurt1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/hurt2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/hurt2.ogg index d073ca5e..06e65d25 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/hurt2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/hurt2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/plop.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/plop.ogg index 9d853067..b609080b 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/plop.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/plop.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/say1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/say1.ogg index e766951f..05f7aa83 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/say1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/say1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/say2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/say2.ogg index 27f498bc..b181d8f1 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/say2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/say2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/say3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/say3.ogg index 05e84fa4..e2175100 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/say3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/say3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/step1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/step1.ogg index 9ce15a87..2741912b 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/step1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/step1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/step2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/step2.ogg index b0b70039..e9359dd9 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/step2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken/step2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken1.ogg deleted file mode 100644 index fc23508b..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken1.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken2.ogg deleted file mode 100644 index 0f0bef5d..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken2.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken3.ogg deleted file mode 100644 index b17d26e2..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chicken3.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chickenhurt1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chickenhurt1.ogg deleted file mode 100644 index d07c025c..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chickenhurt1.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chickenhurt2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chickenhurt2.ogg deleted file mode 100644 index 7bd44e9f..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chickenhurt2.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chickenplop.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chickenplop.ogg deleted file mode 100644 index 9dae3700..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/chickenplop.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/hurt1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/hurt1.ogg index 645bf199..c579de2a 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/hurt1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/hurt1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/hurt2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/hurt2.ogg index 3fa9d201..5e487a8b 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/hurt2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/hurt2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/hurt3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/hurt3.ogg index 89273d7a..8341bfae 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/hurt3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/hurt3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say1.ogg index 278ff272..5208de70 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say2.ogg index 86c76f8f..a252e750 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say3.ogg index 9feb0483..7345ab2e 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say4.ogg index dee0784a..80d5063d 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say4.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/say4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/step1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/step1.ogg index a7ca6983..5490deb3 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/step1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/step1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/step2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/step2.ogg index d0d071b5..16dc7fdf 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/step2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/step2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/step3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/step3.ogg index 0bfe244e..becc7ba5 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/step3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/step3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/step4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/step4.ogg index 004a71fa..d03bb1bb 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/step4.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow/step4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow1.ogg deleted file mode 100644 index 7f31ff08..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow1.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow2.ogg deleted file mode 100644 index 4f8fae5b..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow2.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow3.ogg deleted file mode 100644 index 6210e831..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow3.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow4.ogg deleted file mode 100644 index e66a7525..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cow4.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cowhurt1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cowhurt1.ogg deleted file mode 100644 index 24897881..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cowhurt1.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cowhurt2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cowhurt2.ogg deleted file mode 100644 index c40c4493..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cowhurt2.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cowhurt3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cowhurt3.ogg deleted file mode 100644 index 7fae8472..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/cowhurt3.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper/death.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper/death.ogg index 9d7f95cb..9a14fc45 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper/death.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper/death.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper/say1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper/say1.ogg index 2d529438..ceec866d 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper/say1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper/say1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper/say2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper/say2.ogg index 653adf5f..6a84ac51 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper/say2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper/say2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper/say3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper/say3.ogg index cb5b7e7f..c284dcc0 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper/say3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper/say3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper/say4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper/say4.ogg index e683b237..c115443b 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper/say4.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper/say4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper1.ogg deleted file mode 100644 index 08dd8158..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper1.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper2.ogg deleted file mode 100644 index f2623806..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper2.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper3.ogg deleted file mode 100644 index 80cfceb1..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper3.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper4.ogg deleted file mode 100644 index 5162b8bb..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeper4.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeperdeath.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeperdeath.ogg deleted file mode 100644 index 1ebda414..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/creeperdeath.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/enderdragon/end.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/enderdragon/end.ogg index 823b24e7..1f6a9d23 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/enderdragon/end.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/enderdragon/end.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/enderdragon/growl1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/enderdragon/growl1.ogg index 3767ed8a..008afdbd 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/enderdragon/growl1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/enderdragon/growl1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/enderdragon/growl2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/enderdragon/growl2.ogg index 1bac85bf..783e8453 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/enderdragon/growl2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/enderdragon/growl2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/enderdragon/growl3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/enderdragon/growl3.ogg index d0ab89d7..ae51f286 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/enderdragon/growl3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/enderdragon/growl3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/enderdragon/growl4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/enderdragon/growl4.ogg index 08af6118..bab9dad6 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/enderdragon/growl4.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/enderdragon/growl4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/angry1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/angry1.ogg index e15f0578..98159fc6 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/angry1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/angry1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/armor.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/armor.ogg index ef73b070..11645c54 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/armor.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/armor.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/breathe1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/breathe1.ogg index 9785a6a6..c4f2cc4d 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/breathe1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/breathe1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/breathe2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/breathe2.ogg index 21d0cd5c..a3bb8e50 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/breathe2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/breathe2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/breathe3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/breathe3.ogg index 228bfe14..a5d405b6 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/breathe3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/breathe3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/death.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/death.ogg index 53c22940..fa904e3c 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/death.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/death.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/angry1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/angry1.ogg index d6f922d4..5a9fa8df 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/angry1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/angry1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/angry2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/angry2.ogg index 1ad2e8ca..2e4f976e 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/angry2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/angry2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/death.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/death.ogg index 1c61118e..9e5f8fee 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/death.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/death.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/hit1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/hit1.ogg index 4587a9ab..717d5bac 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/hit1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/hit1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/hit2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/hit2.ogg index 7ae5c684..cb1bbd5a 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/hit2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/hit2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/hit3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/hit3.ogg index 89aacf36..5c27bdd6 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/hit3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/hit3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/idle1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/idle1.ogg index ad5118af..f6e5dab5 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/idle1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/idle1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/idle2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/idle2.ogg index 90286d1e..3d3e6aba 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/idle2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/idle2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/idle3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/idle3.ogg index b797b47c..ee1ba9ef 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/idle3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/donkey/idle3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/eat1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/eat1.ogg new file mode 100644 index 00000000..f6024711 Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/eat1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/eat2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/eat2.ogg new file mode 100644 index 00000000..fc672fe2 Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/eat2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/eat3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/eat3.ogg new file mode 100644 index 00000000..b8c761d9 Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/eat3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/eat4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/eat4.ogg new file mode 100644 index 00000000..1b495872 Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/eat4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/eat5.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/eat5.ogg new file mode 100644 index 00000000..1c8da51e Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/eat5.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/gallop1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/gallop1.ogg index 9b4d4527..77f1f86b 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/gallop1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/gallop1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/gallop2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/gallop2.ogg index 33463970..c0c64751 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/gallop2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/gallop2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/gallop3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/gallop3.ogg index fbf36900..b3e4e79d 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/gallop3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/gallop3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/gallop4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/gallop4.ogg index fc3759d3..d7391077 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/gallop4.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/gallop4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/hit1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/hit1.ogg index ccbb50bb..cccdeb12 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/hit1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/hit1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/hit2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/hit2.ogg index 25860477..aa319beb 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/hit2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/hit2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/hit3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/hit3.ogg index a071a3c5..e857ade3 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/hit3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/hit3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/hit4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/hit4.ogg index 1811582b..bb7e3113 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/hit4.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/hit4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/idle1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/idle1.ogg index e632d041..3b493609 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/idle1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/idle1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/idle2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/idle2.ogg index 8d90a9a0..9df94673 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/idle2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/idle2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/idle3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/idle3.ogg index 2a9f4961..829d01c7 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/idle3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/idle3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/jump.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/jump.ogg index 9c733175..20002aa2 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/jump.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/jump.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/land.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/land.ogg index 2ead60f6..886aecaf 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/land.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/land.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/leather.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/leather.ogg index ce54d578..ff886515 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/leather.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/leather.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/death.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/death.ogg index b452efe0..114eb6b2 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/death.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/death.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/hit1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/hit1.ogg index 6f8f2f0d..9cd89d77 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/hit1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/hit1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/hit2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/hit2.ogg index cae10be2..f99508b0 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/hit2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/hit2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/hit3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/hit3.ogg index 3956a340..f876c037 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/hit3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/hit3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/hit4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/hit4.ogg index 18daf923..accb0f23 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/hit4.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/hit4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/idle1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/idle1.ogg index 15f0c7b4..c2c2b2d0 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/idle1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/idle1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/idle2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/idle2.ogg index d4c6b9e5..f6f4c843 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/idle2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/idle2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/idle3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/idle3.ogg index 77a20a48..f10b0c91 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/idle3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/skeleton/idle3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/soft1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/soft1.ogg index d0ad9821..9476820c 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/soft1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/soft1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/soft2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/soft2.ogg index 73cdf974..f0f5f1c0 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/soft2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/soft2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/soft3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/soft3.ogg index 09fef94f..761b6325 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/soft3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/soft3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/soft4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/soft4.ogg index 83c0d81d..ba74fdd0 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/soft4.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/soft4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/soft5.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/soft5.ogg index 923b097d..4fd34c20 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/soft5.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/soft5.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/soft6.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/soft6.ogg index aaa86913..962957f4 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/soft6.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/soft6.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/wood1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/wood1.ogg index ae4c4515..082dadff 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/wood1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/wood1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/wood2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/wood2.ogg index f7337c92..09dab91d 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/wood2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/wood2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/wood3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/wood3.ogg index 77cfb3da..1f9c81d3 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/wood3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/wood3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/wood4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/wood4.ogg index f1117674..74f20315 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/wood4.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/wood4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/wood5.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/wood5.ogg index 6f520caf..f060cf9e 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/wood5.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/wood5.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/wood6.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/wood6.ogg index 15b2d49d..401cf177 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/wood6.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/wood6.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/death.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/death.ogg index 71980a37..3ef05315 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/death.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/death.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/hit1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/hit1.ogg index 51226ae9..2e72181b 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/hit1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/hit1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/hit2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/hit2.ogg index cc6513be..7e566e77 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/hit2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/hit2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/hit3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/hit3.ogg index c292fdc6..28e5d5b5 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/hit3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/hit3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/hit4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/hit4.ogg index 4a926d6e..eba8cf6b 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/hit4.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/hit4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/idle1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/idle1.ogg index 7a6e5e95..a854c96f 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/idle1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/idle1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/idle2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/idle2.ogg index 84f1fdfd..25234567 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/idle2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/idle2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/idle3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/idle3.ogg index 59686940..5b8c02cf 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/idle3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/horse/zombie/idle3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/death.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/death.ogg index 23cab8a8..7bff5738 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/death.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/death.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/hit1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/hit1.ogg index 2d9d5fc8..e158a0b2 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/hit1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/hit1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/hit2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/hit2.ogg index 667d35f9..474ce5ea 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/hit2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/hit2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/hit3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/hit3.ogg index 00e9de75..6fd337af 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/hit3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/hit3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/hit4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/hit4.ogg index ed86458a..2fc372fe 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/hit4.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/hit4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/throw.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/throw.ogg index 1958991a..aa504d68 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/throw.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/throw.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/throw21.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/throw21.ogg deleted file mode 100644 index 614aecea..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/throw21.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/walk1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/walk1.ogg index b593a21b..2e819f49 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/walk1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/walk1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/walk2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/walk2.ogg index 972ce7f1..1f73101b 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/walk2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/walk2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/walk3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/walk3.ogg index a7525d88..4de58b4c 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/walk3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/walk3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/walk4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/walk4.ogg index a3976379..4ee93785 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/walk4.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/irongolem/walk4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/big1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/big1.ogg index 65c114e5..47cb7ea0 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/big1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/big1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/big2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/big2.ogg index 0b43fd37..00307371 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/big2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/big2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/big3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/big3.ogg index 6c1f15fd..e68f01bb 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/big3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/big3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/big4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/big4.ogg index 858fd343..37a27aee 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/big4.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/big4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/jump1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/jump1.ogg index a3186e41..019ed197 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/jump1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/jump1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/jump2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/jump2.ogg index 8398ac11..901921a3 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/jump2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/jump2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/jump3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/jump3.ogg index 3dbc1d2e..d62a21de 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/jump3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/jump3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/jump4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/jump4.ogg index 16899f3e..5b62c4cc 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/jump4.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/jump4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/small1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/small1.ogg index 158e2ab2..2a2b685c 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/small1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/small1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/small2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/small2.ogg index 2f8d6556..a4f4f14f 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/small2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/small2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/small3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/small3.ogg index bcb94202..ccad91c6 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/small3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/small3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/small4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/small4.ogg index 47914fc9..3bf28d01 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/small4.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/small4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/small5.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/small5.ogg index 8e12dd92..26d55f73 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/small5.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/magmacube/small5.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/death.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/death.ogg index 44a04fb6..959e98b3 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/death.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/death.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/say1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/say1.ogg index 3750fb8d..8516b374 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/say1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/say1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/say2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/say2.ogg index 187b9493..bf674067 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/say2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/say2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/say3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/say3.ogg index 0076e25f..3f45533b 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/say3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/say3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/step1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/step1.ogg index 94581c66..545f24a9 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/step1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/step1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/step2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/step2.ogg index 5f7ef198..047359f5 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/step2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/step2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/step3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/step3.ogg index ebdebd71..c61d8ee8 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/step3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/step3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/step4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/step4.ogg index 00c26dd1..39b9efa8 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/step4.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/step4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/step5.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/step5.ogg index 18a56add..389490d8 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/step5.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig/step5.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig1.ogg deleted file mode 100644 index 966466cb..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig1.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig2.ogg deleted file mode 100644 index d94a6c02..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig2.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig3.ogg deleted file mode 100644 index 199f3c4a..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pig3.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pigdeath.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pigdeath.ogg deleted file mode 100644 index b2d21696..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/pigdeath.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/say1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/say1.ogg index b14b2a35..dbc3b4b0 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/say1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/say1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/say2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/say2.ogg index 6a7b57e6..d592dd24 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/say2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/say2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/say3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/say3.ogg index d4fe1680..2d333f30 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/say3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/say3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/shear.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/shear.ogg new file mode 100644 index 00000000..031c8286 Binary files /dev/null and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/shear.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/step1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/step1.ogg index 9cb4a54c..179d081f 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/step1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/step1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/step2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/step2.ogg index 8cefe0f4..bdf4fd07 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/step2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/step2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/step3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/step3.ogg index a7a75fe0..edb3df32 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/step3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/step3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/step4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/step4.ogg index e52380f3..c9b2d2b5 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/step4.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/step4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/step5.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/step5.ogg index 5f5eb10e..ba22c189 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/step5.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep/step5.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep1.ogg deleted file mode 100644 index e2107639..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep1.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep2.ogg deleted file mode 100644 index 87387b9d..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep2.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep3.ogg deleted file mode 100644 index d28e1467..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/sheep3.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/death.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/death.ogg index 0dd9d8a2..f44992bd 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/death.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/death.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/hurt1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/hurt1.ogg index c69cc798..d9f1da10 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/hurt1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/hurt1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/hurt2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/hurt2.ogg index 7b848a7b..21f675f8 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/hurt2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/hurt2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/hurt3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/hurt3.ogg index 95f2dd24..f9977810 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/hurt3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/hurt3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/hurt4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/hurt4.ogg index f3c37ca0..408598c3 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/hurt4.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/hurt4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/say1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/say1.ogg index a401e5db..e62217d3 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/say1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/say1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/say2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/say2.ogg index 53cb17a9..c2e609e8 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/say2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/say2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/say3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/say3.ogg index 26a75e07..eb926fc5 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/say3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/say3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/step1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/step1.ogg index e0d02d62..3efb5c8e 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/step1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/step1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/step2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/step2.ogg index eaccabc4..b6293a13 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/step2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/step2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/step3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/step3.ogg index 029643e4..fc7e9816 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/step3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/step3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/step4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/step4.ogg index 1982b5c8..3bbb15fd 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/step4.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton/step4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton1.ogg deleted file mode 100644 index 75cc386d..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton1.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton2.ogg deleted file mode 100644 index 32cceb57..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton2.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton3.ogg deleted file mode 100644 index 2e011ef9..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeleton3.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeletondeath.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeletondeath.ogg deleted file mode 100644 index dbe50e3e..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeletondeath.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeletonhurt1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeletonhurt1.ogg deleted file mode 100644 index 2da9ef32..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeletonhurt1.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeletonhurt2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeletonhurt2.ogg deleted file mode 100644 index b040a652..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeletonhurt2.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeletonhurt3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeletonhurt3.ogg deleted file mode 100644 index 631139ae..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeletonhurt3.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeletonhurt4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeletonhurt4.ogg deleted file mode 100644 index 2a457958..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/skeletonhurt4.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/attack1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/attack1.ogg index a5b2026b..070c7f2a 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/attack1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/attack1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/attack2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/attack2.ogg index 88a545a4..760c16b6 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/attack2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/attack2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/big1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/big1.ogg index 8a097d31..c1509d40 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/big1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/big1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/big2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/big2.ogg index 692dd688..4bd9b74f 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/big2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/big2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/big3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/big3.ogg index 86ce1f06..bef483cf 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/big3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/big3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/big4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/big4.ogg index e6fcd80c..3433521f 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/big4.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/big4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/small1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/small1.ogg index a0b5fb0e..2be6c1ca 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/small1.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/small1.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/small2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/small2.ogg index 2ece7d49..9083a22c 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/small2.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/small2.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/small3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/small3.ogg index a16421ec..abe7e282 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/small3.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/small3.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/small4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/small4.ogg index da19c146..3d1189b0 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/small4.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/small4.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/small5.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/small5.ogg index 56ce2b5c..98092f8e 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/small5.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime/small5.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime1.ogg deleted file mode 100644 index abbb63df..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime1.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime2.ogg deleted file mode 100644 index 02a2cf1e..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime2.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime3.ogg deleted file mode 100644 index e83757ab..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime3.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime4.ogg deleted file mode 100644 index 45d96dfe..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime4.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime5.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime5.ogg deleted file mode 100644 index b0b58c92..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slime5.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slimeattack1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slimeattack1.ogg deleted file mode 100644 index 62d0cb08..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slimeattack1.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slimeattack2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slimeattack2.ogg deleted file mode 100644 index d9ee055c..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/slimeattack2.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/spider1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/spider1.ogg deleted file mode 100644 index 7a59bc11..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/spider1.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/spider2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/spider2.ogg deleted file mode 100644 index 7232b324..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/spider2.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/spider3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/spider3.ogg deleted file mode 100644 index 18606a87..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/spider3.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/spider4.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/spider4.ogg deleted file mode 100644 index f0b453eb..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/spider4.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/spiderdeath.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/spiderdeath.ogg deleted file mode 100644 index 90983054..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/spiderdeath.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/zombie1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/zombie1.ogg deleted file mode 100644 index 510021f5..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/zombie1.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/zombie2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/zombie2.ogg deleted file mode 100644 index 1ce7feb9..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/zombie2.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/zombie3.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/zombie3.ogg deleted file mode 100644 index 6a27f001..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/zombie3.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/zombiedeath.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/zombiedeath.ogg deleted file mode 100644 index c2f31496..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/zombiedeath.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/zombiehurt1.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/zombiehurt1.ogg deleted file mode 100644 index e18c1b96..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/zombiehurt1.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/zombiehurt2.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/zombiehurt2.ogg deleted file mode 100644 index b16b74a8..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/mob/zombiehurt2.ogg and /dev/null differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/portal/portal.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/portal/portal.ogg index 952d7f3f..2c02f552 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/portal/portal.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/portal/portal.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/portal/travel.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/portal/travel.ogg index 7714256b..3e61de2b 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/portal/travel.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/portal/travel.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/portal/trigger.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/portal/trigger.ogg index dfbf6f21..8a4ca4b9 100644 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/portal/trigger.ogg and b/Minecraft.Client/Windows64Media/Sound/Minecraft/portal/trigger.ogg differ diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/random/old_explode.ogg b/Minecraft.Client/Windows64Media/Sound/Minecraft/random/old_explode.ogg deleted file mode 100644 index f510bf0e..00000000 Binary files a/Minecraft.Client/Windows64Media/Sound/Minecraft/random/old_explode.ogg and /dev/null differ diff --git a/Minecraft.Client/music/music/the_end_dragon_alive.ogg b/Minecraft.Client/music/music/the_end_dragon_alive.ogg index b27c7afa..01aba79a 100644 Binary files a/Minecraft.Client/music/music/the_end_dragon_alive.ogg and b/Minecraft.Client/music/music/the_end_dragon_alive.ogg differ diff --git a/Minecraft.World/Bat.cpp b/Minecraft.World/Bat.cpp index 82ebe6a7..462fef57 100644 --- a/Minecraft.World/Bat.cpp +++ b/Minecraft.World/Bat.cpp @@ -30,7 +30,7 @@ void Bat::defineSynchedData() float Bat::getSoundVolume() { - return 0.2f; + return 0.1f; } float Bat::getVoicePitch() diff --git a/Minecraft.World/Cow.cpp b/Minecraft.World/Cow.cpp index 0b959fc1..69628d64 100644 --- a/Minecraft.World/Cow.cpp +++ b/Minecraft.World/Cow.cpp @@ -72,7 +72,7 @@ void Cow::playStepSound(int xt, int yt, int zt, int t) float Cow::getSoundVolume() { - return 1.f; + return 0.4f; } int Cow::getDeathLoot() diff --git a/Minecraft.World/EntityHorse.cpp b/Minecraft.World/EntityHorse.cpp index 0c9c38ee..f4b4ea26 100644 --- a/Minecraft.World/EntityHorse.cpp +++ b/Minecraft.World/EntityHorse.cpp @@ -405,7 +405,7 @@ void EntityHorse::dropBags() void EntityHorse::eatingHorse() { openMouth(); - level->playEntitySound(shared_from_this(), eSoundType_EATING, 1.0f, 1.0f + (random->nextFloat() - random->nextFloat()) * 0.2f); + level->playEntitySound(shared_from_this(), eSoundType_MOB_HORSE_EAT, 1.0f, 1.0f + (random->nextFloat() - random->nextFloat()) * 0.2f); } /** diff --git a/Minecraft.World/FireChargeItem.cpp b/Minecraft.World/FireChargeItem.cpp index d3499cdc..c6da5033 100644 --- a/Minecraft.World/FireChargeItem.cpp +++ b/Minecraft.World/FireChargeItem.cpp @@ -42,7 +42,7 @@ bool FireChargeItem::useOn(shared_ptr instance, shared_ptr if (targetType == 0) { - level->playSound( x + 0.5, y + 0.5, z + 0.5,eSoundType_FIRE_NEWIGNITE, 1, random->nextFloat() * 0.4f + 0.8f); + level->playSound( x + 0.5, y + 0.5, z + 0.5, eSoundType_FIRE_IGNITE, 1, random->nextFloat() * 0.4f + 0.8f); level->setTileAndUpdate(x, y, z, Tile::fire_Id); } diff --git a/Minecraft.World/FlintAndSteelItem.cpp b/Minecraft.World/FlintAndSteelItem.cpp index 18f6bb18..5ace6b8c 100644 --- a/Minecraft.World/FlintAndSteelItem.cpp +++ b/Minecraft.World/FlintAndSteelItem.cpp @@ -47,7 +47,7 @@ bool FlintAndSteelItem::useOn(shared_ptr instance, shared_ptrplaySound(x + 0.5, y + 0.5, z + 0.5, eSoundType_FIRE_NEWIGNITE, 1, random->nextFloat() * 0.4f + 0.8f); + level->playSound(x + 0.5, y + 0.5, z + 0.5, eSoundType_FIRE_IGNITE, 1, random->nextFloat() * 0.4f + 0.8f); level->setTileAndUpdate(x, y, z, Tile::fire_Id); } diff --git a/Minecraft.World/MultiEntityMobPart.cpp b/Minecraft.World/MultiEntityMobPart.cpp index dfca1b2f..2ef6b3fb 100644 --- a/Minecraft.World/MultiEntityMobPart.cpp +++ b/Minecraft.World/MultiEntityMobPart.cpp @@ -33,7 +33,11 @@ bool MultiEntityMobPart::isPickable() bool MultiEntityMobPart::hurt(DamageSource *source, float damage) { - return parentMob.lock()->hurt( dynamic_pointer_cast( shared_from_this() ), source, damage); + if (auto parent = parentMob.lock()) { + return parent->hurt(dynamic_pointer_cast(shared_from_this()), source, damage); + } + // If the parent doesn't exist, safely ignore the damage to avoid the Crashing + return false; } bool MultiEntityMobPart::is(shared_ptr other) diff --git a/Minecraft.World/PigZombie.cpp b/Minecraft.World/PigZombie.cpp index 1be123d7..2e2164dc 100644 --- a/Minecraft.World/PigZombie.cpp +++ b/Minecraft.World/PigZombie.cpp @@ -105,7 +105,7 @@ shared_ptr PigZombie::findAttackTarget() bool PigZombie::hurt(DamageSource *source, float dmg) { shared_ptr sourceEntity = source->getEntity(); - if ( sourceEntity != nullptr && sourceEntity->instanceof(eTYPE_PLAYER) ) + if ( sourceEntity != nullptr && sourceEntity->instanceof(eTYPE_PLAYER) && !dynamic_pointer_cast(source->getEntity())->abilities.invulnerable ) { vector > *nearby = level->getEntities( shared_from_this(), bb->grow(32, 32, 32)); for (auto& e : *nearby) diff --git a/Minecraft.World/PistonBaseTile.cpp b/Minecraft.World/PistonBaseTile.cpp index e8e2a713..530cbf73 100644 --- a/Minecraft.World/PistonBaseTile.cpp +++ b/Minecraft.World/PistonBaseTile.cpp @@ -218,10 +218,12 @@ bool PistonBaseTile::triggerEvent(Level *level, int x, int y, int z, int param1, if (extend && param1 == TRIGGER_CONTRACT) { level->setData(x, y, z, facing | EXTENDED_BIT, UPDATE_CLIENTS); + ignoreUpdate(false); return false; } else if (!extend && param1 == TRIGGER_EXTEND) { + ignoreUpdate(false); return false; } } @@ -247,6 +249,7 @@ bool PistonBaseTile::triggerEvent(Level *level, int x, int y, int z, int param1, } else { + ignoreUpdate(false); return false; } PIXEndNamedEvent(); diff --git a/Minecraft.World/SignTileEntity.cpp b/Minecraft.World/SignTileEntity.cpp index 598621eb..b949e429 100644 --- a/Minecraft.World/SignTileEntity.cpp +++ b/Minecraft.World/SignTileEntity.cpp @@ -65,8 +65,8 @@ void SignTileEntity::load(CompoundTag *tag) TileEntity::load(tag); for (int i = 0; i < MAX_SIGN_LINES; i++) { - wchar_t *buf = new wchar_t[256]; - swprintf(buf, 256, L"Text%d", (i+1) ); + wchar_t buf[16]; + swprintf(buf, 16, L"Text%d", (i+1) ); m_wsmessages[i] = tag->getString( buf ); if (m_wsmessages[i].length() > MAX_LINE_LENGTH) m_wsmessages[i] = m_wsmessages[i].substr(0, MAX_LINE_LENGTH); } diff --git a/Minecraft.World/SoundTypes.h b/Minecraft.World/SoundTypes.h index 81e81d79..a93abb72 100644 --- a/Minecraft.World/SoundTypes.h +++ b/Minecraft.World/SoundTypes.h @@ -42,7 +42,6 @@ enum eSOUND_TYPE eSoundType_MOB_SKELETON_HURT, eSoundType_MOB_SPIDER_AMBIENT, eSoundType_MOB_SPIDER_DEATH, - eSoundType_MOB_SLIME, eSoundType_MOB_SLIME_ATTACK, eSoundType_MOB_CREEPER_HURT, eSoundType_MOB_CREEPER_DEATH, @@ -58,10 +57,6 @@ enum eSOUND_TYPE eSoundType_MOB_CAT_PURREOW, eSoundType_MOB_CAT_MEOW, eSoundType_MOB_CAT_HIT, -// eSoundType_MOB_IRONGOLEM_THROW, -// eSoundType_MOB_IRONGOLEM_HIT, -// eSoundType_MOB_IRONGOLEM_DEATH, -// eSoundType_MOB_IRONGOLEM_WALK, eSoundType_RANDOM_BOW, eSoundType_RANDOM_BOW_HIT, eSoundType_RANDOM_EXPLODE, @@ -110,7 +105,6 @@ enum eSOUND_TYPE eSoundType_STEP_WOOD, eSoundType_STEP_GRAVEL, eSoundType_STEP_GRASS, - eSoundType_STEP_METAL, eSoundType_STEP_CLOTH, eSoundType_STEP_SAND, // soundbank 2 @@ -203,16 +197,14 @@ enum eSOUND_TYPE eSoundType_MOB_HORSE_WOOD, eSoundType_MOB_HORSE_SOFT, eSoundType_MOB_HORSE_JUMP, + eSoundType_MOB_HORSE_EAT, eSoundType_MOB_WITCH_IDLE, eSoundType_MOB_WITCH_HURT, eSoundType_MOB_WITCH_DEATH, eSoundType_MOB_SLIME_BIG, eSoundType_MOB_SLIME_SMALL, - eSoundType_EATING, eSoundType_RANDOM_LEVELUP, - eSoundType_FIRE_NEWIGNITE, - eSoundType_MAX }; diff --git a/Minecraft.World/Tile.cpp b/Minecraft.World/Tile.cpp index de113714..0163433c 100644 --- a/Minecraft.World/Tile.cpp +++ b/Minecraft.World/Tile.cpp @@ -1499,7 +1499,7 @@ Tile::SoundType::SoundType(eMATERIALSOUND_TYPE eMaterialSound, float volume, flo this->iStepSound=eSoundType_STEP_GRASS; break; case eMaterialSoundType_METAL: - this->iStepSound=eSoundType_STEP_METAL; + this->iStepSound=eSoundType_STEP_STONE; break; case eMaterialSoundType_CLOTH: this->iStepSound=eSoundType_STEP_CLOTH;