Skip to content

Commit 0e0139c

Browse files
committed
Map transfer works again
1 parent b3534c3 commit 0e0139c

3 files changed

Lines changed: 19 additions & 3 deletions

File tree

GeneralsMD/Code/GameEngine/Source/GameNetwork/GeneralsOnline/OnlineServices_LobbyInterface.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -585,7 +585,11 @@ void NGMP_OnlineServices_LobbyInterface::UpdateRoomDataCache(std::function<void(
585585
}
586586
else
587587
{
588-
lobbyEntry.map_path = std::format("{}\\{}", TheMapCache->getUserMapDir(true).str(), lobbyEntry.map_path.c_str());
588+
// TODO_NGMP: This needs to match identically, but why did it change from the base game?
589+
AsciiString strUserMapDIr = TheMapCache->getUserMapDir(true);
590+
strUserMapDIr.toLower();
591+
592+
lobbyEntry.map_path = std::format("{}\\{}", strUserMapDIr.str(), lobbyEntry.map_path.c_str());
589593
}
590594

591595
// did the map change? cache that we need to reset and transmit our ready state

GeneralsMD/Code/GameEngine/Source/GameNetwork/GeneralsOnline/PortMapper.cpp

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ void PortMapper::Tick()
2323
// do we have work to do on main thread?
2424
if (m_bPortMapperWorkComplete.load())
2525
{
26+
NetworkLog("[NAT Check]: Port mapper is complete, starting NAT flow");
27+
2628
m_bPortMapperWorkComplete.store(false);
2729

2830
// start nat checker
@@ -100,6 +102,7 @@ void PortMapper::Tick()
100102

101103
void PortMapper::StartNATCheck()
102104
{
105+
NetworkLog("[NAT Checker]: Starting");
103106
for (int i = 0; i < m_probesExpected; ++i)
104107
{
105108
m_probesReceived[i] = false;
@@ -159,7 +162,7 @@ void PortMapper::StartNATCheck()
159162
return;
160163
}
161164

162-
165+
NetworkLog("[NAT Check]: Really starting");
163166
// do NAT check
164167
m_bNATCheckInProgress = true;
165168
m_probeStartTime = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::utc_clock::now().time_since_epoch()).count();
@@ -190,6 +193,8 @@ void PortMapper::StartNATCheck()
190193

191194
void PortMapper::BackgroundThreadRun()
192195
{
196+
NetworkLog("[PortMapper]: BackgroundThreadRun");
197+
193198
// reset state
194199
m_directConnect = ECapabilityState::UNDETERMINED;
195200
m_capUPnP = ECapabilityState::UNDETERMINED;
@@ -209,6 +214,8 @@ void PortMapper::BackgroundThreadRun()
209214

210215
m_capUPnP = (IGDStatus == 1) ? ECapabilityState::SUPPORTED : ECapabilityState::UNSUPPORTED;
211216

217+
NetworkLog("[PortMapper]: UPnP result: %d", m_capUPnP);
218+
212219
// NAT-PMP
213220
int res;
214221
natpmp_t natpmp;
@@ -230,6 +237,7 @@ void PortMapper::BackgroundThreadRun()
230237
closenatpmp(&natpmp);
231238

232239
m_capNATPMP = (res == NATPMP_RESPTYPE_PUBLICADDRESS) ? ECapabilityState::SUPPORTED : ECapabilityState::UNSUPPORTED;;
240+
NetworkLog("[PortMapper]: NAT-PMP result: %d", m_capNATPMP);
233241

234242
// open ports
235243
TryForwardPreferredPorts();
@@ -240,19 +248,23 @@ void PortMapper::BackgroundThreadRun()
240248

241249
void PortMapper::DetermineLocalNetworkCapabilities(std::function<void(void)> callbackDeterminedCaps)
242250
{
251+
NetworkLog("[PortMapper] Start DetermineLocalNetworkCapabilities");
243252
// store callback
244253
m_callbackDeterminedCaps = callbackDeterminedCaps;
245254

246255
// reset status
247256
m_bPortMapperWorkComplete.store(false);
248257

258+
NetworkLog("[PortMapper] DetermineLocalNetworkCapabilities - starting background thread");
259+
249260
// background thread, network ops are blocking
250261
m_backgroundThread = new std::thread(&PortMapper::BackgroundThreadRun, this);
251262
SetThreadDescription(static_cast<HANDLE>(m_backgroundThread->native_handle()), L"PortMapper Background Thread");
252263
}
253264

254265
void PortMapper::TryForwardPreferredPorts()
255266
{
267+
NetworkLog("[PortMapper]: TryForwardPreferredPorts");
256268
// clean up anything we had, might be a re-enter
257269
CleanupPorts();
258270

GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DView.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1923,7 +1923,7 @@ void W3DView::setDefaultView(Real pitch, Real angle, Real maxHeight)
19231923
// TODO_NGMP: Better way of doing this
19241924
#if defined(GENERALS_ONLINE)
19251925
TheWritableGlobalData->m_minCameraHeight = 100.f;
1926-
TheWritableGlobalData->m_maxCameraHeight = 800.f;
1926+
TheWritableGlobalData->m_maxCameraHeight = 650.f;
19271927
m_minHeightAboveGround = 100.f;
19281928
m_maxHeightAboveGround = 600.f;
19291929

0 commit comments

Comments
 (0)