Skip to content

Commit a0e1da3

Browse files
committed
feat(input): Use force fire to get the latest building orientation.
1 parent fa9345a commit a0e1da3

2 files changed

Lines changed: 7 additions & 1 deletion

File tree

GeneralsMD/Code/GameEngine/Include/GameClient/InGameUI.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -742,6 +742,7 @@ friend class Drawable; // for selection/deselection transactions
742742
Bool m_placeAnchorInProgress; ///< is place angle interface for placement active
743743
ICoord2D m_placeAnchorStart; ///< place angle anchor start
744744
ICoord2D m_placeAnchorEnd; ///< place angle anchor end
745+
Real m_placeAnchorOrientation; ///< latest building orientation from placement anchoring
745746
Int m_selectCount; ///< Number of objects currently "selected"
746747
Int m_maxSelectCount; ///< Max number of objects to select
747748
UnsignedInt m_frameSelectionChanged; ///< Frame when the selection last changed.

GeneralsMD/Code/GameEngine/Source/GameClient/InGameUI.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1131,6 +1131,7 @@ InGameUI::InGameUI()
11311131
m_placeAnchorStart.x = m_placeAnchorStart.y = 0;
11321132
m_placeAnchorEnd.x = m_placeAnchorEnd.y = 0;
11331133
m_placeAnchorInProgress = FALSE;
1134+
m_placeAnchorOrientation = 0.0f;
11341135

11351136
m_videoStream = nullptr;
11361137
m_videoBuffer = nullptr;
@@ -1615,7 +1616,9 @@ void InGameUI::handleBuildPlacements( void )
16151616
{
16161617
ICoord2D loc;
16171618
Coord3D world;
1618-
Real angle = m_placeIcon[ 0 ]->getOrientation();
1619+
1620+
// TheSuperHackers @tweak Caball009 09/02/2026 Use force fire to get the latest building orientation from placement anchoring for convenience.
1621+
Real angle = (isInForceAttackMode()) ? m_placeAnchorOrientation : m_placeIcon[ 0 ]->getOrientation();
16191622

16201623
// update the angle of the icon to match any placement angle and pick the
16211624
// location the icon will be at (anchored is the start, otherwise it's the mouse)
@@ -1650,6 +1653,8 @@ void InGameUI::handleBuildPlacements( void )
16501653
const Real snapRadians = DEG_TO_RADF(45);
16511654
angle = WWMath::Round(angle / snapRadians) * snapRadians;
16521655
}
1656+
1657+
m_placeAnchorOrientation = angle;
16531658
}
16541659

16551660
}

0 commit comments

Comments
 (0)