Skip to content

Commit 9193456

Browse files
committed
Merge branch 'development' into cf/468-add-proper-semantic-version-comparison-to-check-mod-compatibility
2 parents 0c39a47 + c01cdf4 commit 9193456

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+2531
-2156
lines changed

Activities/ActorEditor.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
#include "ActorEditor.h"
1515
#include "PresetMan.h"
1616
#include "MovableMan.h"
17+
#include "CameraMan.h"
1718
#include "UInputMan.h"
1819
//#include "AHuman.h"
1920
//#include "MOPixel.h"
@@ -218,7 +219,7 @@ void ActorEditor::Update()
218219
// Show the picker dialog to select an object to load
219220
m_pPicker->SetEnabled(true);
220221
// Scroll to center of scene
221-
g_SceneMan.SetScrollTarget(g_SceneMan.GetSceneDim() * 0.5);
222+
g_CameraMan.SetScrollTarget(g_SceneMan.GetSceneDim() * 0.5);
222223
m_EditorMode = m_PreviousMode = EditorActivity::LOADDIALOG;
223224
m_ModeChange = true;
224225
}
@@ -238,7 +239,7 @@ void ActorEditor::Update()
238239
{
239240
m_pEditedActor->SetPos(g_SceneMan.GetSceneDim() * 0.5);
240241
m_pEditedActor->Update();
241-
g_SceneMan.SetScrollTarget(m_pEditedActor->GetPos());
242+
g_CameraMan.SetScrollTarget(m_pEditedActor->GetPos());
242243
}
243244

244245
/////////////////////////////////////////////////////
@@ -252,7 +253,7 @@ void ActorEditor::Update()
252253

253254
// Set the screen occlusion situation
254255
if (!m_pPicker->IsVisible())
255-
g_SceneMan.SetScreenOcclusion(Vector(), ScreenOfPlayer(Players::PlayerOne));
256+
g_CameraMan.SetScreenOcclusion(Vector(), ScreenOfPlayer(Players::PlayerOne));
256257

257258
// Picking something to load into the editor
258259
if (m_EditorMode == EditorActivity::LOADDIALOG)

Activities/BaseEditor.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
// Inclusions of header files
1313

1414
#include "BaseEditor.h"
15+
16+
#include "CameraMan.h"
1517
#include "PresetMan.h"
1618
#include "MovableMan.h"
1719
#include "UInputMan.h"
@@ -195,8 +197,8 @@ int BaseEditor::Start()
195197
m_ViewState[editingPlayer] = ViewState::Normal;
196198
g_FrameMan.ClearScreenText(ScreenOfPlayer(editingPlayer));
197199
// Set the team associations with the first screen so that the correct unseen are shows up
198-
g_SceneMan.SetScreenTeam(ScreenOfPlayer(editingPlayer), m_Team[editingPlayer]);
199-
g_SceneMan.SetScreenOcclusion(Vector(), ScreenOfPlayer(editingPlayer));
200+
g_CameraMan.SetScreenTeam(ScreenOfPlayer(editingPlayer), m_Team[editingPlayer]);
201+
g_CameraMan.SetScreenOcclusion(Vector(), ScreenOfPlayer(editingPlayer));
200202

201203
m_PlayerController[editingPlayer].Reset();
202204
m_PlayerController[editingPlayer].Create(Controller::CIM_PLAYER, editingPlayer);

Activities/GAScripted.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ int GAScripted::ReadProperty(const std::string_view &propName, Reader &reader) {
135135

136136
int GAScripted::Save(Writer &writer) const {
137137
// Call the script OnSave() function, if it exists
138-
g_LuaMan.RunScriptString("if " + m_LuaClassName + ".OnSave then " + m_LuaClassName + ":OnSave(); end");
138+
g_LuaMan.RunScriptString("if " + m_LuaClassName + " and " + m_LuaClassName + ".OnSave then " + m_LuaClassName + ":OnSave(); end");
139139

140140
GameActivity::Save(writer);
141141

Activities/GameActivity.cpp

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
// Inclusions of header files
1313

1414
#include "GameActivity.h"
15+
16+
#include "CameraMan.h"
1517
#include "PresetMan.h"
1618
#include "MovableMan.h"
1719
#include "FrameMan.h"
@@ -892,9 +894,9 @@ int GameActivity::Start()
892894
continue;
893895

894896
// Set the team associations with each screen displayed
895-
g_SceneMan.SetScreenTeam(ScreenOfPlayer(player), m_Team[player]);
897+
g_CameraMan.SetScreenTeam(ScreenOfPlayer(player), m_Team[player]);
896898
// And occlusion
897-
g_SceneMan.SetScreenOcclusion(Vector(), ScreenOfPlayer(player));
899+
g_CameraMan.SetScreenOcclusion(Vector(), ScreenOfPlayer(player));
898900

899901
// Allocate and (re)create the Inventory Menu GUIs
900902
if (m_InventoryMenuGUI[player]) {
@@ -1086,7 +1088,7 @@ void GameActivity::End()
10861088
if (!(m_IsActive[player] && m_IsHuman[player]))
10871089
continue;
10881090

1089-
g_SceneMan.SetScreenOcclusion(Vector(), ScreenOfPlayer(player));
1091+
g_CameraMan.SetScreenOcclusion(Vector(), ScreenOfPlayer(player));
10901092

10911093
if (m_Team[player] == m_WinnerTeam)
10921094
{
@@ -1159,7 +1161,7 @@ void GameActivity::UpdateEditing()
11591161
m_pEditorGUI[player]->Update();
11601162

11611163
// Set the team associations with each screen displayed
1162-
g_SceneMan.SetScreenTeam(ScreenOfPlayer(player), m_Team[player]);
1164+
g_CameraMan.SetScreenTeam(ScreenOfPlayer(player), m_Team[player]);
11631165

11641166
// Check if the player says he's done editing, and if so, make sure he really is good to go
11651167
if (m_pEditorGUI[player]->GetEditorGUIMode() == SceneEditorGUI::DONEEDITING)
@@ -1259,7 +1261,7 @@ void GameActivity::UpdateEditing()
12591261
// CLear the messages before starting the game
12601262
g_FrameMan.ClearScreenText(ScreenOfPlayer(player));
12611263
// Reset the screen occlusion if any players are still in menus
1262-
g_SceneMan.SetScreenOcclusion(Vector(), ScreenOfPlayer(player));
1264+
g_CameraMan.SetScreenOcclusion(Vector(), ScreenOfPlayer(player));
12631265
}
12641266
}
12651267

@@ -1320,7 +1322,7 @@ void GameActivity::Update()
13201322
bool skipBuyUpdate = false;
13211323

13221324
// Set the team associations with each screen displayed
1323-
g_SceneMan.SetScreenTeam(ScreenOfPlayer(player), team);
1325+
g_CameraMan.SetScreenTeam(ScreenOfPlayer(player), team);
13241326

13251327
//////////////////////////////////////////////////////
13261328
// Assure that Controlled Actor is a safe pointer
@@ -1458,7 +1460,7 @@ void GameActivity::Update()
14581460
m_PlayerController[player].RelativeCursorMovement(m_ObservationTarget[player], 1.2f);
14591461
}
14601462
// Set the view to the observation position
1461-
g_SceneMan.SetScrollTarget(m_ObservationTarget[player], 0.1, g_SceneMan.ForceBounds(m_ObservationTarget[player]), ScreenOfPlayer(player));
1463+
g_CameraMan.SetScrollTarget(m_ObservationTarget[player], 0.1, g_SceneMan.ForceBounds(m_ObservationTarget[player]), ScreenOfPlayer(player));
14621464
}
14631465

14641466
///////////////////////////////////////////////////
@@ -1520,7 +1522,7 @@ void GameActivity::Update()
15201522

15211523
// Set the view to the cursor pos
15221524
bool wrapped = g_SceneMan.ForceBounds(m_ActorCursor[player]);
1523-
g_SceneMan.SetScrollTarget(m_ActorCursor[player], 0.1, wrapped, ScreenOfPlayer(player));
1525+
g_CameraMan.SetScrollTarget(m_ActorCursor[player], 0.1, wrapped, ScreenOfPlayer(player));
15241526

15251527
if (m_pLastMarkedActor[player]) {
15261528
if (!g_MovableMan.ValidMO(m_pLastMarkedActor[player])) {
@@ -1557,7 +1559,7 @@ void GameActivity::Update()
15571559

15581560
// Set the view to the cursor pos
15591561
bool wrapped = g_SceneMan.ForceBounds(m_ActorCursor[player]);
1560-
g_SceneMan.SetScrollTarget(m_ActorCursor[player], 0.1, wrapped, ScreenOfPlayer(player));
1562+
g_CameraMan.SetScrollTarget(m_ActorCursor[player], 0.1, wrapped, ScreenOfPlayer(player));
15611563

15621564
// Draw the actor's waypoints
15631565
m_ControlledActor[player]->DrawWaypoints(true);
@@ -1630,12 +1632,12 @@ void GameActivity::Update()
16301632

16311633
// Set the view to the cursor pos
16321634
wrapped = g_SceneMan.ForceBounds(m_ActorCursor[player]);
1633-
//g_SceneMan.SetScrollTarget(m_ActorCursor[player], 0.1, wrapped, ScreenOfPlayer(player));
1635+
//g_CameraMan.SetScrollTarget(m_ActorCursor[player], 0.1, wrapped, ScreenOfPlayer(player));
16341636

16351637
// Set the view to the actor pos
16361638
Vector scrollPos = Vector(m_ControlledActor[player]->GetPos());
16371639
wrapped = g_SceneMan.ForceBounds(scrollPos);
1638-
g_SceneMan.SetScrollTarget(scrollPos, 0.1, wrapped, ScreenOfPlayer(player));
1640+
g_CameraMan.SetScrollTarget(scrollPos, 0.1, wrapped, ScreenOfPlayer(player));
16391641

16401642
// Disable the actor's controller
16411643
m_ControlledActor[player]->GetController()->SetDisabled(true);
@@ -1819,7 +1821,7 @@ void GameActivity::Update()
18191821

18201822
// Set the view to a little above the LZ position
18211823
Vector viewTarget(m_LandingZone[player].m_X, m_LandingZone[player].m_Y - (g_FrameMan.GetPlayerScreenHeight() / 4));
1822-
g_SceneMan.SetScrollTarget(viewTarget, 0.1, wrapped, ScreenOfPlayer(player));
1824+
g_CameraMan.SetScrollTarget(viewTarget, 0.1, wrapped, ScreenOfPlayer(player));
18231825
}
18241826

18251827
////////////////////////////
@@ -1830,7 +1832,7 @@ void GameActivity::Update()
18301832
// Continuously deathwatch message
18311833
g_FrameMan.SetScreenText("Lost control of remote body!", ScreenOfPlayer(player));
18321834
// Don't move anything, just stay put watching the death funnies
1833-
g_SceneMan.SetScrollTarget(m_DeathViewTarget[player], 0.1, false, ScreenOfPlayer(player));
1835+
g_CameraMan.SetScrollTarget(m_DeathViewTarget[player], 0.1, false, ScreenOfPlayer(player));
18341836
}
18351837

18361838
////////////////////////////////////////////////////
@@ -1839,7 +1841,7 @@ void GameActivity::Update()
18391841
// and double scrolling will cause CC gitch when we'll cross the seam
18401842
else if (m_ControlledActor[player] && m_ActivityState != ActivityState::Editing && m_ActivityState != ActivityState::PreGame)
18411843
{
1842-
g_SceneMan.SetScrollTarget(m_ControlledActor[player]->GetViewPoint(), 0.1, m_ControlledActor[player]->DidWrap(), ScreenOfPlayer(player));
1844+
g_CameraMan.SetScrollTarget(m_ControlledActor[player]->GetViewPoint(), 0.1, m_ControlledActor[player]->DidWrap(), ScreenOfPlayer(player));
18431845
}
18441846

18451847
if (m_ControlledActor[player] && m_ViewState[player] != ViewState::DeathWatch && m_ViewState[player] != ViewState::ActorSelect && m_ViewState[player] != ViewState::AIGoToPoint && m_ViewState[player] != ViewState::UnitSelectCircle) {
@@ -2101,7 +2103,7 @@ void GameActivity::Update()
21012103
}
21022104
21032105
// Set the view to the observation position
2104-
g_SceneMan.SetScrollTarget(m_ObservationTarget[Players::PlayerFour], 0.1, g_SceneMan.ForceBounds(m_ObservationTarget[Players::PlayerFour]), ScreenOfPlayer(Players::PlayerFour));
2106+
g_CameraMan.SetScrollTarget(m_ObservationTarget[Players::PlayerFour], 0.1, g_SceneMan.ForceBounds(m_ObservationTarget[Players::PlayerFour]), ScreenOfPlayer(Players::PlayerFour));
21052107
}
21062108
*/
21072109
}
@@ -2313,14 +2315,14 @@ void GameActivity::DrawGUI(BITMAP *pTargetBitmap, const Vector &targetPos, int w
23132315
// Team Icon up in the top left corner
23142316
const Icon *pIcon = GetTeamIcon(m_Team[PoS]);
23152317
if (pIcon)
2316-
draw_sprite(pTargetBitmap, pIcon->GetBitmaps8()[0], MAX(2, g_SceneMan.GetScreenOcclusion(which).m_X + 2), 2);
2318+
draw_sprite(pTargetBitmap, pIcon->GetBitmaps8()[0], MAX(2, g_CameraMan.GetScreenOcclusion(which).m_X + 2), 2);
23172319
// Gold
23182320
std::snprintf(str, sizeof(str), "%c Funds: %.10g oz", TeamFundsChanged(which) ? -57 : -58, std::floor(GetTeamFunds(m_Team[PoS])));
2319-
g_FrameMan.GetLargeFont()->DrawAligned(&pBitmapInt, MAX(16, g_SceneMan.GetScreenOcclusion(which).m_X + 16), yTextPos, str, GUIFont::Left);
2321+
g_FrameMan.GetLargeFont()->DrawAligned(&pBitmapInt, MAX(16, g_CameraMan.GetScreenOcclusion(which).m_X + 16), yTextPos, str, GUIFont::Left);
23202322
/* Not applicable anymore to the 4-team games
23212323
// Body losses
23222324
std::snprintf(str, sizeof(str), "%c Losses: %c%i %c%i", -39, -62, GetTeamDeathCount(Teams::TeamOne), -59, GetTeamDeathCount(Teams::TeamTwo));
2323-
g_FrameMan.GetLargeFont()->DrawAligned(&pBitmapInt, MIN(pTargetBitmap->w - 4, pTargetBitmap->w - 4 + g_SceneMan.GetScreenOcclusion(which).m_X), yTextPos, str, GUIFont::Right);
2325+
g_FrameMan.GetLargeFont()->DrawAligned(&pBitmapInt, MIN(pTargetBitmap->w - 4, pTargetBitmap->w - 4 + g_CameraMan.GetScreenOcclusion(which).m_X), yTextPos, str, GUIFont::Right);
23242326
*/
23252327
// Show the player's controller scheme icon in the upper right corner of his screen, but only for a minute
23262328
if (m_GameTimer.GetElapsedRealTimeS() < 30)
@@ -2332,7 +2334,7 @@ void GameActivity::DrawGUI(BITMAP *pTargetBitmap, const Vector &targetPos, int w
23322334
pIcon = g_UInputMan.GetSchemeIcon(PoS);
23332335
if (pIcon)
23342336
{
2335-
draw_sprite(pTargetBitmap, pIcon->GetBitmaps8()[0], MIN(pTargetBitmap->w - pIcon->GetBitmaps8()[0]->w - 2, pTargetBitmap->w - pIcon->GetBitmaps8()[0]->w - 2 + g_SceneMan.GetScreenOcclusion(which).m_X), yTextPos);
2337+
draw_sprite(pTargetBitmap, pIcon->GetBitmaps8()[0], MIN(pTargetBitmap->w - pIcon->GetBitmaps8()[0]->w - 2, pTargetBitmap->w - pIcon->GetBitmaps8()[0]->w - 2 + g_CameraMan.GetScreenOcclusion(which).m_X), yTextPos);
23362338
// TODO: make a black Activity intro screen, saying "Player X, press any key/button to show that you are ready!, and display their controller icon, then fade into the scene"
23372339
// stretch_sprite(pTargetBitmap, pIcon->GetBitmaps8()[0], 10, 10, pIcon->GetBitmaps8()[0]->w * 4, pIcon->GetBitmaps8()[0]->h * 4);
23382340
}

0 commit comments

Comments
 (0)