[Scummvm-git-logs] scummvm master -> a33c662f7b8d0b5b006355b4d72549504a930d66

aquadran aquadran at gmail.com
Sun Mar 14 08:06:17 UTC 2021


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
a33c662f7b ICB: Reworked global constructor and fixed clashing enum


Commit: a33c662f7b8d0b5b006355b4d72549504a930d66
    https://github.com/scummvm/scummvm/commit/a33c662f7b8d0b5b006355b4d72549504a930d66
Author: Paweł Kołodziejski (aquadran at gmail.com)
Date: 2021-03-14T09:06:11+01:00

Commit Message:
ICB: Reworked global constructor and fixed clashing enum

Changed paths:
    engines/icb/global_vars.cpp
    engines/icb/line_of_sight.cpp
    engines/icb/options_manager_pc.cpp
    engines/icb/options_manager_pc.h
    engines/icb/tracer.cpp
    engines/icb/tracer.h


diff --git a/engines/icb/global_vars.cpp b/engines/icb/global_vars.cpp
index 6f2014fdcf..e8979d12b4 100644
--- a/engines/icb/global_vars.cpp
+++ b/engines/icb/global_vars.cpp
@@ -50,6 +50,7 @@
 #include "engines/icb/common/px_capri_maths.h"
 #include "engines/icb/common/ptr_util.h"
 #include "engines/icb/sound.h"
+#include "engines/icb/tracer.h"
 
 namespace ICB {
 
@@ -139,6 +140,7 @@ void Init_globals() {
 
 void CreateGlobalObjects() {
 	g_px = new c_global_switches;
+	g_oTracer = new _tracer;
 	g_ptrArray = new Common::Array<PointerReference>;
 	g_globalScriptVariables = new CpxGlobalScriptVariables;
 	g_theSequenceManager = new MovieManager;
@@ -183,6 +185,7 @@ void CreateGlobalObjects() {
 
 void DestroyGlobalObjects() {
 	delete g_px;
+	delete g_oTracer;
 	delete g_ptrArray;
 	delete g_globalScriptVariables;
 	delete g_theSequenceManager;
diff --git a/engines/icb/line_of_sight.cpp b/engines/icb/line_of_sight.cpp
index 64b51b9dbf..171892e5ff 100644
--- a/engines/icb/line_of_sight.cpp
+++ b/engines/icb/line_of_sight.cpp
@@ -75,7 +75,7 @@ void _line_of_sight::Initialise() {
 		Fatal_error(".pxwglineofsight version check failed (file has %d, engine has %d)", m_pyLOSData->GetHeaderVersion(), VERSION_PXWGLINEOFSIGHT);
 
 	// The tracer object can be initialised now we have the barrier map.
-	g_oTracer.SetUpParameters(m_pyLOSData);
+	g_oTracer->SetUpParameters(m_pyLOSData);
 
 	// Set the number of objects from the list that should already have been created in the session.
 	m_nNumObjects = MS->total_objects;
@@ -102,11 +102,11 @@ void _line_of_sight::Initialise() {
 	if (!pyBarriers)
 		Fatal_error("Barriers pointer NULL in _line_of_sight::Initialise()");
 
-	g_oTracer.SetBarrierPointer(pyBarriers);
+	g_oTracer->SetBarrierPointer(pyBarriers);
 
 	// The tracer also needs access to the routing data to get the floor rectangles.
 	pFloorWorld = MS->floor_def;
-	g_oTracer.SetFloorsPointer(pFloorWorld);
+	g_oTracer->SetFloorsPointer(pFloorWorld);
 
 	// These probably don't need setting, but we'll do it for completeness.
 	m_oImpactPoint.Set(REAL_ZERO, REAL_ZERO, REAL_ZERO);
@@ -293,7 +293,7 @@ bool8 _line_of_sight::ObjectToObject(uint32 nObserverID, uint32 nTargetID, _barr
 				if (bCanSeeUs)
 					return (TRUE8);
 				int32 john_test_time = GetMicroTimer();
-				nRetVal = g_oTracer.Trace(oFrom, oTo, eRayType, m_oImpactPoint, m_eImpactType);
+				nRetVal = g_oTracer->Trace(oFrom, oTo, eRayType, m_oImpactPoint, m_eImpactType);
 				john_test_time = GetMicroTimer() - john_test_time;
 				john_total_traces += john_test_time;
 				john_number_traces++;
@@ -307,7 +307,7 @@ bool8 _line_of_sight::ObjectToObject(uint32 nObserverID, uint32 nTargetID, _barr
 		} else {
 			// Don't need to apply field-of-view for 360-degree vision.
 			int32 john_test_time = g_system->getMillis();
-			nRetVal = g_oTracer.Trace(oFrom, oTo, eRayType, m_oImpactPoint, m_eImpactType);
+			nRetVal = g_oTracer->Trace(oFrom, oTo, eRayType, m_oImpactPoint, m_eImpactType);
 			john_test_time = g_system->getMillis() - john_test_time;
 			john_total_traces += john_test_time;
 			john_number_traces++;
@@ -316,7 +316,7 @@ bool8 _line_of_sight::ObjectToObject(uint32 nObserverID, uint32 nTargetID, _barr
 	} else {
 		// Objects are assumed to have 360-degree vision so we just have to do a line-of-sight.
 		int32 john_test_time = g_system->getMillis();
-		nRetVal = g_oTracer.Trace(oFrom, oTo, eRayType, m_oImpactPoint, m_eImpactType);
+		nRetVal = g_oTracer->Trace(oFrom, oTo, eRayType, m_oImpactPoint, m_eImpactType);
 		john_test_time = g_system->getMillis() - john_test_time;
 		john_total_traces += john_test_time;
 		john_number_traces++;
diff --git a/engines/icb/options_manager_pc.cpp b/engines/icb/options_manager_pc.cpp
index 11ae6fabe1..9ac849643a 100644
--- a/engines/icb/options_manager_pc.cpp
+++ b/engines/icb/options_manager_pc.cpp
@@ -2627,7 +2627,7 @@ void OptionsManager::OnEscapeKey() {
 		break;
 	case INGAME_OPTIONS:
 	case MAIN_OPTIONS:
-		m_OPTION_selected = BACK;
+		m_OPTION_selected = DO_BACK;
 		break;
 	case INGAME_VIDEO:
 	case MAIN_VIDEO:
@@ -2855,7 +2855,7 @@ void OptionsManager::DoChoice() {
 			m_CONTROL_selected = METHOD;
 			InitialiseControlsScreen();
 			break;
-		case BACK:
+		case DO_BACK:
 			m_warpDirection = FALSE8;
 			if (m_activeMenu == INGAME_OPTIONS) {
 				m_activeMenu = INGAME_TOP;
@@ -4645,7 +4645,7 @@ void OptionsManager::DrawGameOptions() {
 	DisplayText(ad, pitch, msg, 0, 170, (m_OPTION_selected == CONTROLS) ? SELECTEDFONT : NORMALFONT, TRUE8);
 
 	msg = GetTextFromReference(HashString("opt_back"));
-	DisplayText(ad, pitch, msg, 0, 205, (m_OPTION_selected == BACK) ? SELECTEDFONT : NORMALFONT, TRUE8);
+	DisplayText(ad, pitch, msg, 0, 205, (m_OPTION_selected == DO_BACK) ? SELECTEDFONT : NORMALFONT, TRUE8);
 
 	surface_manager->Unlock_surface(working_buffer_id);
 }
diff --git a/engines/icb/options_manager_pc.h b/engines/icb/options_manager_pc.h
index 4eb4a92c3f..b8521566ae 100644
--- a/engines/icb/options_manager_pc.h
+++ b/engines/icb/options_manager_pc.h
@@ -119,7 +119,7 @@ enum OPTION_CHOICES {
 	VIDEO_SETTINGS = 0,
 	AUDIO_SETTINGS = 1,
 	CONTROLS = 2,
-	BACK = 3
+	DO_BACK = 3
 };
 
 #define NUMBER_OF_AUDIO_CHOICES 4
diff --git a/engines/icb/tracer.cpp b/engines/icb/tracer.cpp
index d0d214adb9..16e61d4f15 100644
--- a/engines/icb/tracer.cpp
+++ b/engines/icb/tracer.cpp
@@ -33,7 +33,7 @@
 
 namespace ICB {
 
-_tracer g_oTracer;
+_tracer *g_oTracer;
 
 #define TRACER_COMPARE_TOLERANCE FLOAT_COMPARE_TOLERANCE
 
diff --git a/engines/icb/tracer.h b/engines/icb/tracer.h
index b183db2f3f..9629ddf438 100644
--- a/engines/icb/tracer.h
+++ b/engines/icb/tracer.h
@@ -95,7 +95,7 @@ inline const _route_barrier *_tracer::GetBarrier(uint32 i) const {
 	return &(pBarriers[i]);
 }
 
-extern _tracer g_oTracer; // Object for doing the plotting of bullets and line-of-sight.
+extern _tracer *g_oTracer; // Object for doing the plotting of bullets and line-of-sight.
 
 } // End of namespace ICB
 




More information about the Scummvm-git-logs mailing list