diff --git a/Minecraft.Client/Common/App_Defines.h b/Minecraft.Client/Common/App_Defines.h index 80688990..ac1e2c48 100644 --- a/Minecraft.Client/Common/App_Defines.h +++ b/Minecraft.Client/Common/App_Defines.h @@ -84,9 +84,6 @@ enum EGameHostOptionWorldSize #define MAX_FAVORITE_SKINS 10 // these are stored in the profile data so keep it small - - - // defines for game settings - uiBitmaskValues #define GAMESETTING_CLOUDS 0x00000001 @@ -104,9 +101,13 @@ enum EGameHostOptionWorldSize #define GAMESETTING_ANIMATEDCHARACTER 0x00008000 #define GAMESETTING_PS3EULAREAD 0x00010000 #define GAMESETTING_PSVITANETWORKMODEADHOC 0x00020000 +//TU25 #define GAMESETTING_CAVESOUNDS 0x00100000 #define GAMESETTING_CLASSICCRAFTING 0x00200000 -#define GAMESETTING_OLDSWINGANIMATION 0x04000000 +//New +#define GAMESETTING_OLDSWINGANIMATION 0x00400000 //Bit 22 +#define GAMESETTING_FULLSCREEN 0x00800000 //Bit 23 +#define GAMESETTING_VSYNC 0x01000000 //Bit 24 // defines for languages diff --git a/Minecraft.Client/Common/App_enums.h b/Minecraft.Client/Common/App_enums.h index 9e18a99d..07d8b0db 100644 --- a/Minecraft.Client/Common/App_enums.h +++ b/Minecraft.Client/Common/App_enums.h @@ -133,9 +133,7 @@ enum eGameSetting { eGameSetting_MusicVolume=0, eGameSetting_SoundFXVolume, - eGameSetting_RenderDistance, eGameSetting_Gamma, - eGameSetting_FOV, eGameSetting_Difficulty, eGameSetting_Sensitivity_InGame, eGameSetting_Sensitivity_InMenu, @@ -145,8 +143,6 @@ enum eGameSetting eGameSetting_ControlSouthPaw, eGameSetting_SplitScreenVertical, eGameSetting_GamertagsVisible, - eGameSetting_OldSwingAnimation, - eGameSetting_GraphicsMode, // Interim TU 1.6.6 eGameSetting_Autosave, eGameSetting_DisplaySplitscreenGamertags, @@ -183,6 +179,14 @@ enum eGameSetting // TU25 eGameSetting_CaveSounds, eGameSetting_ClassicCrafting, + + // New + eGameSetting_OldSwingAnimation, + eGameSetting_RenderDistance, + eGameSetting_GraphicsMode, + eGameSetting_Fullscreen, + eGameSetting_Vsync, + eGameSetting_FOV, }; diff --git a/Minecraft.Client/Common/Consoles_App.cpp b/Minecraft.Client/Common/Consoles_App.cpp index 331d5d37..4ddf9301 100644 --- a/Minecraft.Client/Common/Consoles_App.cpp +++ b/Minecraft.Client/Common/Consoles_App.cpp @@ -844,9 +844,7 @@ int CMinecraftApp::SetDefaultOptions(C_4JProfile::PROFILESETTINGS *pSettings,con { SetGameSettings(iPad,eGameSetting_MusicVolume,DEFAULT_VOLUME_LEVEL); SetGameSettings(iPad,eGameSetting_SoundFXVolume,DEFAULT_VOLUME_LEVEL); - SetGameSettings(iPad,eGameSetting_RenderDistance,16); SetGameSettings(iPad,eGameSetting_Gamma,50); - SetGameSettings(iPad,eGameSetting_FOV,0); // 4J-PB - Don't reset the difficult level if we're in-game if(Minecraft::GetInstance()->level==nullptr) @@ -918,8 +916,12 @@ int CMinecraftApp::SetDefaultOptions(C_4JProfile::PROFILESETTINGS *pSettings,con SetGameSettings(iPad,eGameSetting_ClassicCrafting, 0); // New - SetGameSettings(iPad,eGameSetting_GraphicsMode, 2); SetGameSettings(iPad,eGameSetting_OldSwingAnimation, 0); + SetGameSettings(iPad,eGameSetting_RenderDistance,16); + SetGameSettings(iPad,eGameSetting_GraphicsMode, 2); + SetGameSettings(iPad,eGameSetting_Fullscreen, 0); + SetGameSettings(iPad,eGameSetting_Vsync, 1); + SetGameSettings(iPad,eGameSetting_FOV,0); // 4J-PB - leave these in, or remove from everywhere they are referenced! // Although probably best to leave in unless we split the profile settings into platform specific classes - having different meaning per platform for the same bitmask could get confusing @@ -1071,7 +1073,6 @@ int CMinecraftApp::OldProfileVersionCallback(LPVOID pParam,unsigned char *pucDat pGameSettings->uiBitmaskValues|=(GAMESETTING_UISIZE&0x00000800); // uisize 2 pGameSettings->uiBitmaskValues|=(GAMESETTING_UISIZE_SPLITSCREEN&0x00004000); // splitscreen ui size 3 pGameSettings->uiBitmaskValues|=GAMESETTING_ANIMATEDCHARACTER; //eGameSetting_AnimatedCharacter - on - pGameSettings->uiBitmaskValues|=GAMESETTING_OLDSWINGANIMATION; //eGameSetting_OldSwingAnimation - off // TU12 // favorite skins added, but only set in TU12 - set to FFs for(int i=0;iuiMashUpPackWorldsDisplay = 0xFFFFFFFF; - // TU25 - pGameSettings->uiBitmaskValues|=GAMESETTING_CAVESOUNDS; //eGameSetting_CaveSounds - on - pGameSettings->uiBitmaskValues|=GAMESETTING_CLASSICCRAFTING; //eGameSetting_ClassicCrafting - off - // PS3 1.05 - added Greek pGameSettings->ucLanguage = MINECRAFT_LANGUAGE_DEFAULT; // use the system language } @@ -1353,9 +1350,7 @@ void CMinecraftApp::ApplyGameSettingsChanged(int iPad) { ActionGameSettings(iPad,eGameSetting_MusicVolume); ActionGameSettings(iPad,eGameSetting_SoundFXVolume); - ActionGameSettings(iPad,eGameSetting_RenderDistance); ActionGameSettings(iPad,eGameSetting_Gamma); - ActionGameSettings(iPad,eGameSetting_FOV); ActionGameSettings(iPad,eGameSetting_Difficulty); ActionGameSettings(iPad,eGameSetting_Sensitivity_InGame); ActionGameSettings(iPad,eGameSetting_ViewBob); @@ -1388,8 +1383,13 @@ void CMinecraftApp::ApplyGameSettingsChanged(int iPad) ActionGameSettings(iPad,eGameSetting_CaveSounds); ActionGameSettings(iPad,eGameSetting_ClassicCrafting); + // New ActionGameSettings(iPad,eGameSetting_OldSwingAnimation); + ActionGameSettings(iPad,eGameSetting_RenderDistance); ActionGameSettings(iPad,eGameSetting_GraphicsMode); + ActionGameSettings(iPad,eGameSetting_Fullscreen); + ActionGameSettings(iPad,eGameSetting_Vsync); + ActionGameSettings(iPad,eGameSetting_FOV); } void CMinecraftApp::ActionGameSettings(int iPad,eGameSetting eVal) @@ -1409,15 +1409,6 @@ void CMinecraftApp::ActionGameSettings(int iPad,eGameSetting eVal) pMinecraft->options->set(Options::Option::SOUND, static_cast(GameSettingsA[iPad]->ucSoundFXVolume) / 100.0f); } break; - case eGameSetting_RenderDistance: - if (iPad == ProfileManager.GetPrimaryPad()) - { - int dist = (GameSettingsA[iPad]->uiBitmaskValues >> 16) & 0xFF; - - int level = UIScene_SettingsGraphicsMenu::DistanceToLevel(dist); - pMinecraft->options->set(Options::Option::RENDER_DISTANCE, 3 - level); - }; - break; case eGameSetting_Gamma: if(iPad==ProfileManager.GetPrimaryPad()) { @@ -1430,14 +1421,6 @@ void CMinecraftApp::ActionGameSettings(int iPad,eGameSetting eVal) #endif } - break; - case eGameSetting_FOV: - if(iPad==ProfileManager.GetPrimaryPad()) - { - float fovDeg = 70.0f + (float)GameSettingsA[iPad]->ucFov * 40.0f / 100.0f; - pMinecraft->gameRenderer->SetFovVal(fovDeg); - pMinecraft->options->set(Options::Option::FOV, (float)GameSettingsA[iPad]->ucFov / 100.0f); - } break; case eGameSetting_Difficulty: if(iPad==ProfileManager.GetPrimaryPad()) @@ -1633,6 +1616,15 @@ void CMinecraftApp::ActionGameSettings(int iPad,eGameSetting eVal) case eGameSetting_OldSwingAnimation: //nothing to do here break; + case eGameSetting_RenderDistance: + if (iPad == ProfileManager.GetPrimaryPad()) + { + int dist = (GameSettingsA[iPad]->uiBitmaskValues >> 25) & 0x3F; + + int level = UIScene_SettingsGraphicsMenu::DistanceToLevel(dist); + pMinecraft->options->set(Options::Option::RENDER_DISTANCE, 3 - level); + }; + break; case eGameSetting_GraphicsMode: if(iPad == ProfileManager.GetPrimaryPad()) { @@ -1657,7 +1649,6 @@ void CMinecraftApp::ActionGameSettings(int iPad,eGameSetting eVal) pMinecraft->options->set(Options::Option::GRAPHICS, true); pMinecraft->options->set(Options::Option::MIPMAPS_BLEND, false); pMinecraft->options->set(Options::Option::AMBIENT_OCCLUSION, true); - RenderManager.DisableVsync(); pMinecraft->options->set(Options::Option::PARTICLES, 0); pMinecraft->textures->reloadAll(); } @@ -1666,7 +1657,6 @@ void CMinecraftApp::ActionGameSettings(int iPad,eGameSetting eVal) pMinecraft->options->set(Options::Option::GRAPHICS, true); pMinecraft->options->set(Options::Option::MIPMAPS_BLEND, true); pMinecraft->options->set(Options::Option::AMBIENT_OCCLUSION, true); - RenderManager.EnableVsync(); pMinecraft->options->set(Options::Option::PARTICLES, 0); pMinecraft->textures->reloadAll(); } @@ -1678,6 +1668,25 @@ void CMinecraftApp::ActionGameSettings(int iPad,eGameSetting eVal) } } break; + case eGameSetting_Fullscreen: + //nothing to do here + break; + case eGameSetting_Vsync: + { + if ((GameSettingsA[iPad]->uiBitmaskValues & GAMESETTING_VSYNC) == 1) + RenderManager.EnableVsync(); + else + RenderManager.DisableVsync(); + } + break; + case eGameSetting_FOV: + if(iPad==ProfileManager.GetPrimaryPad()) + { + float fovDeg = 70.0f + (float)GameSettingsA[iPad]->ucFov * 40.0f / 100.0f; + pMinecraft->gameRenderer->SetFovVal(fovDeg); + pMinecraft->options->set(Options::Option::FOV, (float)GameSettingsA[iPad]->ucFov / 100.0f); + } + break; } } @@ -1939,17 +1948,6 @@ void CMinecraftApp::SetGameSettings(int iPad,eGameSetting eVal,unsigned char ucV GameSettingsA[iPad]->bSettingsChanged=true; } break; - case eGameSetting_RenderDistance: - { - unsigned int val = ucVal & 0xFF; - - GameSettingsA[iPad]->uiBitmaskValues &= ~(0xFF << 16); - GameSettingsA[iPad]->uiBitmaskValues |= val << 16; - if(iPad == ProfileManager.GetPrimaryPad()) - ActionGameSettings(iPad,eVal); - GameSettingsA[iPad]->bSettingsChanged = true; - } - break; case eGameSetting_Gamma: if(GameSettingsA[iPad]->ucGamma!=ucVal) { @@ -1961,17 +1959,6 @@ void CMinecraftApp::SetGameSettings(int iPad,eGameSetting eVal,unsigned char ucV GameSettingsA[iPad]->bSettingsChanged=true; } break; - case eGameSetting_FOV: - if(GameSettingsA[iPad]->ucFov!=ucVal) - { - GameSettingsA[iPad]->ucFov=ucVal; - if(iPad==ProfileManager.GetPrimaryPad()) - { - ActionGameSettings(iPad,eVal); - } - GameSettingsA[iPad]->bSettingsChanged=true; - } - break; case eGameSetting_Difficulty: if((GameSettingsA[iPad]->usBitmaskValues&0x03)!=(ucVal&0x03)) { @@ -2421,7 +2408,7 @@ void CMinecraftApp::SetGameSettings(int iPad,eGameSetting eVal,unsigned char ucV break; case eGameSetting_OldSwingAnimation: - if((GameSettingsA[iPad]->uiBitmaskValues & GAMESETTING_OLDSWINGANIMATION)!=(ucVal & 0x01)<<26) + if((GameSettingsA[iPad]->uiBitmaskValues & GAMESETTING_OLDSWINGANIMATION)!=(ucVal & 0x01)<<22) { if(ucVal==1) { @@ -2435,6 +2422,17 @@ void CMinecraftApp::SetGameSettings(int iPad,eGameSetting eVal,unsigned char ucV GameSettingsA[iPad]->bSettingsChanged=true; } break; + case eGameSetting_RenderDistance: + { + unsigned int val = ucVal & 0x3F; + + GameSettingsA[iPad]->uiBitmaskValues &= ~(0x3F << 25); + GameSettingsA[iPad]->uiBitmaskValues |= val << 25; + if(iPad == ProfileManager.GetPrimaryPad()) + ActionGameSettings(iPad,eVal); + GameSettingsA[iPad]->bSettingsChanged = true; + } + break; case eGameSetting_GraphicsMode: if(GameSettingsA[iPad]->ucGraphicsMode != ucVal) { @@ -2446,6 +2444,47 @@ void CMinecraftApp::SetGameSettings(int iPad,eGameSetting eVal,unsigned char ucV GameSettingsA[iPad]->bSettingsChanged = true; } break; + case eGameSetting_Fullscreen: + if((GameSettingsA[iPad]->uiBitmaskValues & GAMESETTING_FULLSCREEN)!=(ucVal & 0x01)<<23) + { + if(ucVal==1) + { + GameSettingsA[iPad]->uiBitmaskValues|=GAMESETTING_FULLSCREEN; + } + else + { + GameSettingsA[iPad]->uiBitmaskValues&=~GAMESETTING_FULLSCREEN; + } + ActionGameSettings(iPad,eVal); + GameSettingsA[iPad]->bSettingsChanged=true; + } + break; + case eGameSetting_Vsync: + if((GameSettingsA[iPad]->uiBitmaskValues & GAMESETTING_VSYNC)!=(ucVal & 0x01)<<24) + { + if(ucVal==1) + { + GameSettingsA[iPad]->uiBitmaskValues|=GAMESETTING_VSYNC; + } + else + { + GameSettingsA[iPad]->uiBitmaskValues&=~GAMESETTING_VSYNC; + } + ActionGameSettings(iPad,eVal); + GameSettingsA[iPad]->bSettingsChanged=true; + } + break; + case eGameSetting_FOV: + if(GameSettingsA[iPad]->ucFov!=ucVal) + { + GameSettingsA[iPad]->ucFov=ucVal; + if(iPad==ProfileManager.GetPrimaryPad()) + { + ActionGameSettings(iPad,eVal); + } + GameSettingsA[iPad]->bSettingsChanged=true; + } + break; } } @@ -2466,19 +2505,9 @@ unsigned char CMinecraftApp::GetGameSettings(int iPad,eGameSetting eVal) case eGameSetting_SoundFXVolume: return GameSettingsA[iPad]->ucSoundFXVolume; break; - case eGameSetting_RenderDistance: - { - int val = (GameSettingsA[iPad]->uiBitmaskValues >> 16) & 0xFF; - if(val == 0) return val = 16; //brain - return val; - break; - } case eGameSetting_Gamma: return GameSettingsA[iPad]->ucGamma; break; - case eGameSetting_FOV: - return GameSettingsA[iPad]->ucFov; - break; case eGameSetting_Difficulty: return GameSettingsA[iPad]->usBitmaskValues&0x0003; break; @@ -2589,11 +2618,26 @@ unsigned char CMinecraftApp::GetGameSettings(int iPad,eGameSetting eVal) // New case eGameSetting_OldSwingAnimation: - return (GameSettingsA[iPad]->uiBitmaskValues&GAMESETTING_OLDSWINGANIMATION)>>26; + return (GameSettingsA[iPad]->uiBitmaskValues&GAMESETTING_OLDSWINGANIMATION)>>22; + break; + case eGameSetting_RenderDistance: + { + unsigned char ucVal=(GameSettingsA[iPad]->uiBitmaskValues >> 25) & 0x3F; + return ucVal; + } break; case eGameSetting_GraphicsMode: return GameSettingsA[iPad]->ucGraphicsMode; break; + case eGameSetting_Fullscreen: + return (GameSettingsA[iPad]->uiBitmaskValues&GAMESETTING_FULLSCREEN)>>23; + break; + case eGameSetting_Vsync: + return (GameSettingsA[iPad]->uiBitmaskValues&GAMESETTING_VSYNC)>>24; + break; + case eGameSetting_FOV: + return GameSettingsA[iPad]->ucFov; + break; } return 0; } diff --git a/Minecraft.Client/Extrax64Stubs.cpp b/Minecraft.Client/Extrax64Stubs.cpp index c0a36698..2389b971 100644 --- a/Minecraft.Client/Extrax64Stubs.cpp +++ b/Minecraft.Client/Extrax64Stubs.cpp @@ -668,6 +668,8 @@ void C_4JProfile::Initialise(DWORD dwTitleID, // New pGameSettings->uiBitmaskValues |= GAMESETTING_OLDSWINGANIMATION; //eGameSetting_OldSwingAnimation - off + pGameSettings->uiBitmaskValues |= GAMESETTING_FULLSCREEN; //eGameSetting_Fullscreen - off + pGameSettings->uiBitmaskValues |= GAMESETTING_VSYNC; //eGameSetting_Vsync - on // Tutorials for most menus, and a few other things pGameSettings->ucTutorialCompletion[0] = 0xFF;