Skip to content
This repository was archived by the owner on Jan 5, 2024. It is now read-only.

Commit d80d5b5

Browse files
committed
Fixed ETA icon not showing up if you don't use multi-order
Fixed multi-order ETA icon floating above the ground thinking it's so cool
1 parent f0216df commit d80d5b5

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

Activities/GameActivity.cpp

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -769,6 +769,7 @@ bool GameActivity::CreateDelivery(int player, int mode, Vector &waypoint, Actor
769769
newDelivery.pCraft = pDeliveryCraft;
770770
newDelivery.orderedByPlayer = player;
771771
newDelivery.landingZone = m_LandingZone[player];
772+
newDelivery.multiOrderYOffset = 0;
772773
newDelivery.delay = m_DeliveryDelay * pDeliveryCraft->GetDeliveryDelayMultiplier();
773774
newDelivery.timer.Reset();
774775

@@ -1768,14 +1769,15 @@ void GameActivity::Update()
17681769
} else {
17691770
// Place the new marker above the cursor so that they don't intersect with each other.
17701771
lzOffsetY += m_AIReturnCraft[player] ? -32.0F : 32.0F;
1772+
m_LandingZone[player].m_Y = g_SceneMan.FindAltitude(m_LandingZone[player], g_SceneMan.GetSceneHeight(), 10) + lzOffsetY;
17711773
}
1772-
m_LandingZone[player].m_Y = g_SceneMan.FindAltitude(m_LandingZone[player], g_SceneMan.GetSceneHeight(), 10) + lzOffsetY;
17731774

17741775
if (m_pBuyGUI[player]->GetTotalOrderCost() > GetTeamFunds(team)) {
17751776
g_GUISound.UserErrorSound()->Play(player);
17761777
m_FundsChanged[team] = true;
17771778
} else {
17781779
CreateDelivery(player);
1780+
m_Deliveries->rbegin()->multiOrderYOffset = lzOffsetY;
17791781
}
17801782
// Revert the Y offset so that the cursor doesn't flinch.
17811783
m_LandingZone[player].m_Y -= lzOffsetY;
@@ -2223,6 +2225,14 @@ void GameActivity::DrawGUI(BITMAP *pTargetBitmap, const Vector &targetPos, int w
22232225
{
22242226
int halfWidth = 24;
22252227
landZone = itr->landingZone - targetPos;
2228+
bool anyPlayerOnTeamIsInLandingZoneSelectViewState = false;
2229+
for (int player = Players::PlayerOne; player < Players::MaxPlayerCount; ++player) {
2230+
if (GetTeamOfPlayer(player) == team && m_ViewState[player] == ViewState::LandingZoneSelect) {
2231+
anyPlayerOnTeamIsInLandingZoneSelectViewState = true;
2232+
break;
2233+
}
2234+
}
2235+
if (!anyPlayerOnTeamIsInLandingZoneSelectViewState) { landZone.m_Y -= itr->multiOrderYOffset; }
22262236
// Cursor
22272237
draw_sprite(pTargetBitmap, m_aLZCursor[cursor][frame], landZone.m_X - halfWidth, landZone.m_Y - 48);
22282238
draw_sprite_h_flip(pTargetBitmap, m_aLZCursor[cursor][frame], landZone.m_X + halfWidth - m_aLZCursor[cursor][frame]->w, landZone.m_Y - 48);

Activities/GameActivity.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ class GameActivity : public Activity {
5656
int orderedByPlayer;
5757
// Where to land
5858
Vector landingZone;
59+
// How much this delivery was offset upwards for multi-ordering, stored to help with delivery icons. If 0, this was presumably not a multi-order.
60+
float multiOrderYOffset;
5961
// How long left until entry, in ms
6062
long delay;
6163
// Times how long we've been in transit

0 commit comments

Comments
 (0)