Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS

Complete disaster-recovery snapshot: engine/game source, game data assets,
VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive.
Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false,
no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
This commit is contained in:
Cyd
2026-06-24 21:28:16 -05:00
commit 2b8ca921cb
66341 changed files with 7923174 additions and 0 deletions
@@ -0,0 +1,136 @@
//===========================================================================//
// File: NetClientServerController.hpp
// Contents : All movement messages and rewind capabilites
//---------------------------------------------------------------------------//
// Date Who Modification //
// -------- --- ---------------------------------------------------------- //
// 01/18/1999 JSE Inital coding
//---------------------------------------------------------------------------//
// Copyright (C) 1998, Microsoft Corp. //
// All Rights reserved worldwide //
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL //
//===========================================================================//
#pragma once
namespace MechWarrior4
{
class ServerController;
class ClientController;
}
#include "NetConstants.hpp"
#include "NetUpdateManager.hpp"
//#include "Mech.hpp"
#include <Adept\Application.hpp>
#include "MWEntityManager.hpp"
namespace MechWarrior4
{
struct SecurityQueryInfo
{
int lastSecurityKey;
GUID lastSecurityAnswer;
int securityKey;
GUID securityAnswer;
int otherSidesKey;
Scalar securityTimer;
bool needInit;
SecurityQueryInfo();
void Reset(void);
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class ServerController
{
public:
MWEntityManager *m_EntityManager;
ServerController();
~ServerController();
double clockDifference[Maximum_Players];
double lowestLatency[Maximum_Players];
BYTE lastControlPacketID[Maximum_Players];
Scalar lastPingDelta[Maximum_Players]; //t2-t1
Scalar lastControlPacket[Maximum_Players];
Scalar lastControlPacketLocal[Maximum_Players];
Scalar lastTimeFailure[Maximum_Players];
Point3D lastReportedPosition[Maximum_Players];
BYTE positionErrors[Maximum_Players];
BYTE latencyDelay[Maximum_Players];
bool waitingForRespawn[Maximum_Players];
SecurityQueryInfo securityQuery[Maximum_Players];
void RespawnClient(int connection_id, Point3D trans);
void Reset();
void ResetClient(int connection_id);
void ThrottleTest(int connection_id);
bool SendWeaponCommands();
void SendAIWeaponCommands();
void ReceiveWeaponCommand(int connection, int message_type, Stuff::MemoryStream *message);
void ReceivePlayerControl(int connection, Stuff::MemoryStream *message);
void ReceivePlayerObserverControl(int connection, Stuff::MemoryStream *message);
void SendFullConfirmation(int connection);
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class ClientController
{
public:
MWEntityManager *m_EntityManager;
Scalar controlUpdateTimer;
BYTE lastControlPacketID;
Scalar lastPingDelta; //t2-t1
SecurityQueryInfo securityQuery;
ClientController();
~ClientController();
void RespawnClient(int connection_id);
void Reset();
void SendControlPacketToServer(Scalar time_slice);
void ReceiveSmallConfirmation(Stuff::MemoryStream *message){};
void ReceiveFullConfirmation(Stuff::MemoryStream *message);
void SendWeaponCommands(void);
void ReceiveWeaponCommand(int connection, int message_type, Stuff::MemoryStream *message);
void ReceiveWeaponBundle(int connection, int message_type, Stuff::MemoryStream *message);
};
};