Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions Minecraft.Client/Common/App_Defines.h
Original file line number Diff line number Diff line change
Expand Up @@ -102,8 +102,9 @@ enum EGameHostOptionWorldSize
#define GAMESETTING_UISIZE 0x00001800
#define GAMESETTING_UISIZE_SPLITSCREEN 0x00006000
#define GAMESETTING_ANIMATEDCHARACTER 0x00008000
#define GAMESETTING_PS3EULAREAD 0x00010000
#define GAMESETTING_PSVITANETWORKMODEADHOC 0x00020000
#define GAMESETTING_PS3EULAREAD 0x01000000
#define GAMESETTING_PSVITANETWORKMODEADHOC 0x02000000
#define GAMESETTING_JAVAFLIGHTCONTROLS 0x04000000


// defines for languages
Expand Down
2 changes: 2 additions & 0 deletions Minecraft.Client/Common/App_enums.h
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,8 @@ enum eGameSetting
// PSVita
eGameSetting_PSVita_NetworkModeAdhoc,

// Windows64
eGameSetting_JavaFlightControls,

};

Expand Down
18 changes: 14 additions & 4 deletions Minecraft.Client/Common/Consoles_App.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2277,7 +2277,7 @@ void CMinecraftApp::SetGameSettings(int iPad,eGameSetting eVal,unsigned char ucV
}
break;
case eGameSetting_PS3_EULA_Read:
if((GameSettingsA[iPad]->uiBitmaskValues&GAMESETTING_PS3EULAREAD)!=(ucVal&0x01)<<16)
if((GameSettingsA[iPad]->uiBitmaskValues&GAMESETTING_PS3EULAREAD)!=(ucVal&0x01)<<24)
{
if(ucVal==1)
{
Expand All @@ -2292,7 +2292,7 @@ void CMinecraftApp::SetGameSettings(int iPad,eGameSetting eVal,unsigned char ucV
}
break;
case eGameSetting_PSVita_NetworkModeAdhoc:
if((GameSettingsA[iPad]->uiBitmaskValues&GAMESETTING_PSVITANETWORKMODEADHOC)!=(ucVal&0x01)<<17)
if((GameSettingsA[iPad]->uiBitmaskValues&GAMESETTING_PSVITANETWORKMODEADHOC)!=(ucVal&0x01)<<25)
{
if(ucVal==1)
{
Expand All @@ -2306,6 +2306,13 @@ void CMinecraftApp::SetGameSettings(int iPad,eGameSetting eVal,unsigned char ucV
GameSettingsA[iPad]->bSettingsChanged=true;
}
break;
case eGameSetting_JavaFlightControls:
if(ucVal==1)
GameSettingsA[iPad]->uiBitmaskValues|=GAMESETTING_JAVAFLIGHTCONTROLS;
else
GameSettingsA[iPad]->uiBitmaskValues&=~GAMESETTING_JAVAFLIGHTCONTROLS;
GameSettingsA[iPad]->bSettingsChanged=true;
break;

}
}
Expand Down Expand Up @@ -2437,10 +2444,13 @@ unsigned char CMinecraftApp::GetGameSettings(int iPad,eGameSetting eVal)
return (GameSettingsA[iPad]->uiBitmaskValues&GAMESETTING_ANIMATEDCHARACTER)>>15;

case eGameSetting_PS3_EULA_Read:
return (GameSettingsA[iPad]->uiBitmaskValues&GAMESETTING_PS3EULAREAD)>>16;
return (GameSettingsA[iPad]->uiBitmaskValues&GAMESETTING_PS3EULAREAD)>>24;

case eGameSetting_PSVita_NetworkModeAdhoc:
return (GameSettingsA[iPad]->uiBitmaskValues&GAMESETTING_PSVITANETWORKMODEADHOC)>>17;
return (GameSettingsA[iPad]->uiBitmaskValues&GAMESETTING_PSVITANETWORKMODEADHOC)>>25;

case eGameSetting_JavaFlightControls:
return (GameSettingsA[iPad]->uiBitmaskValues&GAMESETTING_JAVAFLIGHTCONTROLS)?1:0;

}
return 0;
Expand Down
Binary file modified Minecraft.Client/Common/Media/MediaWindows64.arc
Binary file not shown.
Binary file modified Minecraft.Client/Common/Media/SettingsOptionsMenu1080.swf
Binary file not shown.
Binary file modified Minecraft.Client/Common/Media/SettingsOptionsMenu480.swf
Binary file not shown.
Binary file modified Minecraft.Client/Common/Media/SettingsOptionsMenu720.swf
Binary file not shown.
Binary file modified Minecraft.Client/Common/Media/SettingsOptionsMenuSplit1080.swf
Binary file not shown.
Binary file modified Minecraft.Client/Common/Media/SettingsOptionsMenuSplit720.swf
Binary file not shown.
Binary file modified Minecraft.Client/Common/Media/SettingsOptionsMenuVita.swf
Binary file not shown.
3 changes: 3 additions & 0 deletions Minecraft.Client/Common/UI/UIScene_SettingsOptionsMenu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +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_checkboxJavaFlightControls.init(L"Java Flight Controls",eControl_JavaFlightControls,(app.GetGameSettings(m_iPad,eGameSetting_JavaFlightControls)!=0));

// check if we should display the mash-up option
if(m_bNotInGame && app.GetMashupPackWorlds(m_iPad)!=0xFFFFFFFF)
Expand Down Expand Up @@ -259,6 +260,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));
m_checkboxJavaFlightControls.init(L"Java Flight Controls",eControl_JavaFlightControls,(app.GetGameSettings(m_iPad,eGameSetting_JavaFlightControls)!=0));

// check if we should display the mash-up option
if(m_bNotInGame && app.GetMashupPackWorlds(m_iPad)!=0xFFFFFFFF)
Expand Down Expand Up @@ -415,6 +417,7 @@ void UIScene_SettingsOptionsMenu::setGameSettings()
app.SetGameSettings(m_iPad,eGameSetting_GamertagsVisible,m_checkboxInGameGamertags.IsChecked()?1:0);
app.SetGameSettings(m_iPad,eGameSetting_Hints,m_checkboxShowHints.IsChecked()?1:0);
app.SetGameSettings(m_iPad,eGameSetting_Tooltips,m_checkboxShowTooltips.IsChecked()?1:0);
app.SetGameSettings(m_iPad,eGameSetting_JavaFlightControls,m_checkboxJavaFlightControls.IsChecked()?1:0);

// the mashup option will only be shown if some worlds have been previously hidden
if(m_bMashUpWorldsUnhideOption && m_checkboxMashupWorlds.IsChecked())
Expand Down
4 changes: 3 additions & 1 deletion Minecraft.Client/Common/UI/UIScene_SettingsOptionsMenu.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class UIScene_SettingsOptionsMenu : public UIScene
eControl_ShowHints,
eControl_ShowTooltips,
eControl_InGameGamertags,
eControl_JavaFlightControls,
eControl_ShowMashUpWorlds,
eControl_Autosave,
eControl_Languages,
Expand All @@ -21,7 +22,7 @@ class UIScene_SettingsOptionsMenu : public UIScene
static int m_iDifficultyTitleSettingA[4];

private:
UIControl_CheckBox m_checkboxViewBob, m_checkboxShowHints, m_checkboxShowTooltips, m_checkboxInGameGamertags, m_checkboxMashupWorlds; // Checkboxes
UIControl_CheckBox m_checkboxViewBob, m_checkboxShowHints, m_checkboxShowTooltips, m_checkboxInGameGamertags, m_checkboxJavaFlightControls, m_checkboxMashupWorlds; // Checkboxes
UIControl_Slider m_sliderAutosave, m_sliderDifficulty; // Sliders
UIControl_Label m_labelDifficultyText; //Text
UIControl_Button m_buttonLanguageSelect;
Expand All @@ -31,6 +32,7 @@ class UIScene_SettingsOptionsMenu : public UIScene
UI_MAP_ELEMENT( m_checkboxShowHints, "ShowHints")
UI_MAP_ELEMENT( m_checkboxShowTooltips, "ShowTooltips")
UI_MAP_ELEMENT( m_checkboxInGameGamertags, "InGameGamertags")
UI_MAP_ELEMENT( m_checkboxJavaFlightControls, "JavaFlightControls")
UI_MAP_ELEMENT( m_checkboxMashupWorlds, "ShowMashUpWorlds")
UI_MAP_ELEMENT( m_sliderAutosave, "Autosave")
UI_MAP_ELEMENT( m_sliderDifficulty, "Difficulty")
Expand Down
73 changes: 46 additions & 27 deletions Minecraft.Client/LocalPlayer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,8 @@ void LocalPlayer::aiStep()
bool forwardEnoughToContinueSprint = input->ya >= runTreshold;

// 4J - altered this slightly to make sure that the joypad returns to below returnTreshold in between registering two movements up to runThreshold
if (onGround && !isSprinting() && enoughFoodToSprint && !isUsingItem() && !hasEffect(MobEffect::blindness))
bool javaFlight = app.GetGameSettings(m_iPad, eGameSetting_JavaFlightControls) != 0;
if ((onGround || (javaFlight && abilities.flying)) && !isSprinting() && enoughFoodToSprint && !isUsingItem() && !hasEffect(MobEffect::blindness))
{
if( !wasRunning && forwardEnoughToTriggerSprint )
{
Expand All @@ -278,7 +279,7 @@ void LocalPlayer::aiStep()
}
if (isSneaking()) sprintTriggerTime = 0;
#ifdef _WINDOWS64
if (input->sprinting && !isSprinting() && onGround && enoughFoodToSprint && !isUsingItem() && !hasEffect(MobEffect::blindness) && !isSneaking())
if (input->sprinting && (onGround || (javaFlight && abilities.flying)) && enoughFoodToSprint && !isUsingItem() && !hasEffect(MobEffect::blindness) && !isSneaking())
{
setSprinting(true);
}
Expand Down Expand Up @@ -334,12 +335,20 @@ void LocalPlayer::aiStep()
if (abilities.flying)
{
// yd = 0;
// 4J - note that the 0.42 added for going down is to make it match with what happens when you jump - jumping itself adds 0.42 to yd in Mob::jumpFromGround
if (ullButtonsPressed & (1LL<<MINECRAFT_ACTION_SNEAK_TOGGLE) ) yd -= ( 0.15 + 0.42 ); // 4J - for flying mode, MINECRAFT_ACTION_SNEAK_TOGGLE isn't a toggle but just indicates that this button is down
if (input->jumping)
if (javaFlight)
{
noJumpDelay = 0;
yd += 0.15;
if (ullButtonsPressed & (1LL<<MINECRAFT_ACTION_SNEAK_TOGGLE) ) yd -= 0.15f;
if (input->jumping) yd += 0.15f;
}
else
{
// 4J - note that the 0.42 added for going down is to make it match with what happens when you jump - jumping itself adds 0.42 to yd in Mob::jumpFromGround
if (ullButtonsPressed & (1LL<<MINECRAFT_ACTION_SNEAK_TOGGLE) ) yd -= ( 0.15 + 0.42 );
if (input->jumping)
{
noJumpDelay = 0;
yd += 0.15;
}
}

// snap y rotation to nearest 90 degree axis aligned value
Expand Down Expand Up @@ -434,40 +443,50 @@ void LocalPlayer::aiStep()
else
#endif
{
if( isSprinting() )
{
// Accelrate up to full speed if we are sprinting, moving in the direction of the view vector
flyX = static_cast<float>(viewVector->x) * input->ya;
flyY = static_cast<float>(viewVector->y) * input->ya;
flyZ = static_cast<float>(viewVector->z) * input->ya;

float scale = static_cast<float>(SPRINT_DURATION - sprintTime)/10.0f;
scale = scale * scale;
if ( scale > 1.0f ) scale = 1.0f;
flyX *= scale;
flyY *= scale;
flyZ *= scale;
}
else
if (javaFlight)
{
// Java Edition style: no sprint-fly viewVector overlay, simple dpad up/down
flyX = 0.0f;
flyY = 0.0f;
flyZ = 0.0f;
if( ullDpad_filtered & (1LL<<MINECRAFT_ACTION_DPAD_UP))
{
flyY = 0.1f;
}
if( ullDpad_filtered & (1LL<<MINECRAFT_ACTION_DPAD_DOWN))
{
flyY = -0.1f;
}
else
{
if( isSprinting() )
{
// 4J: Accelrate up to full speed if we are sprinting, moving in the direction of the view vector
flyX = static_cast<float>(viewVector->x) * input->ya;
flyY = static_cast<float>(viewVector->y) * input->ya;
flyZ = static_cast<float>(viewVector->z) * input->ya;

float scale = static_cast<float>(SPRINT_DURATION - sprintTime)/10.0f;
scale = scale * scale;
if ( scale > 1.0f ) scale = 1.0f;
flyX *= scale;
flyY *= scale;
flyZ *= scale;
}
else
{
flyX = 0.0f;
flyY = 0.0f;
flyZ = 0.0f;
if( ullDpad_filtered & (1LL<<MINECRAFT_ACTION_DPAD_UP))
flyY = 0.1f;
if( ullDpad_filtered & (1LL<<MINECRAFT_ACTION_DPAD_DOWN))
flyY = -0.1f;
}
}
}

Player::move(flyX, flyY, flyZ);

fallDistance = 0.0f;
yd = 0.0f;
if (!javaFlight) yd = 0.0f;
onGround = true;
}

Expand Down Expand Up @@ -1695,4 +1714,4 @@ void LocalPlayer::handleCollectItem(shared_ptr<ItemInstance> item)
void LocalPlayer::SetPlayerAdditionalModelParts(vector<ModelPart *>pAdditionalModelParts)
{
m_pAdditionalModelParts=pAdditionalModelParts;
}
}
27 changes: 22 additions & 5 deletions Minecraft.World/Player.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1015,7 +1015,8 @@ void Player::aiStep()
flyingSpeed = defaultFlySpeed;
if (isSprinting())
{
flyingSpeed += defaultFlySpeed * 0.3f;
bool javaFlight = abilities.flying && app.GetGameSettings(0, eGameSetting_JavaFlightControls) != 0;
flyingSpeed += defaultFlySpeed * (javaFlight ? 1.0f : 0.3f);
}

setSpeed(static_cast<float>(speed->getValue()));
Expand Down Expand Up @@ -2082,6 +2083,9 @@ void Player::awardStat(Stat *stat, byteArray paramBlob)

void Player::jumpFromGround()
{
if (abilities.flying && app.GetGameSettings(0, eGameSetting_JavaFlightControls) != 0)
return;

LivingEntity::jumpFromGround();

// 4J Stu - This seems to have been missed from 1.7.3, but do we care?
Expand All @@ -2104,11 +2108,24 @@ void Player::travel(float xa, float ya)

if (abilities.flying && riding == nullptr)
{
double ydo = yd;
double savedYd = yd;
float ofs = flyingSpeed;
flyingSpeed = abilities.getFlyingSpeed();
LivingEntity::travel(xa, ya);
yd = ydo * 0.6;
bool javaFlight = app.GetGameSettings(0, eGameSetting_JavaFlightControls) != 0;
if (javaFlight)
{
flyingSpeed = abilities.getFlyingSpeed() * (isSprinting() ? 2 : 1);
bool wasOnGround = onGround;
onGround = false;
LivingEntity::travel(xa, ya);
onGround = wasOnGround;
yd = savedYd * 0.6;
}
else
{
flyingSpeed = abilities.getFlyingSpeed();
LivingEntity::travel(xa, ya);
yd = savedYd * 0.6;
}
flyingSpeed = ofs;
}
else
Expand Down