Beispiel #1
0
UDT_API(const char*) udtGetFileExtensionByProtocol(udtProtocol::Id protocol)
{
	if(!udtIsValidProtocol(protocol))
	{
		return NULL;
	}

	return DemoFileExtensions[protocol];
}
Beispiel #2
0
bool udtBaseParser::Init(udtContext* context, udtProtocol::Id inProtocol, udtProtocol::Id outProtocol, s32 gameStateIndex, bool enablePlugIns)
{
	if(context == NULL || !udtIsValidProtocol(inProtocol) || gameStateIndex < 0)
	{
		return false;
	}

	EnablePlugIns = enablePlugIns;

	_context = context;
	_inProtocol = inProtocol;
	_outProtocol = outProtocol;
	_inProtocolSizeOfEntityState = (s32)udtGetSizeOfIdEntityState(inProtocol);
	_inProtocolSizeOfClientSnapshot = (s32)udtGetSizeOfidClientSnapshot(inProtocol);
	_protocolConverter = context->GetProtocolConverter(outProtocol, inProtocol);
	_protocolConverter->ResetForNextDemo();

	_outMsg.InitContext(context);
	_outMsg.InitProtocol(outProtocol);

	_inFileName = udtString::NewEmptyConstant();
	_inFilePath = udtString::NewEmptyConstant();
	_outFileName = udtString::NewEmptyConstant();
	_outFilePath = udtString::NewEmptyConstant();

	_cuts.Clear();
	_persistentAllocator.Clear();
	_configStringAllocator.Clear();
	_tempAllocator.Clear();
	_privateTempAllocator.Clear();

	_inGameStateIndex = gameStateIndex - 1;
	_inGameStateFileOffsets.Clear();
	if(gameStateIndex > 0)
	{
		_inGameStateFileOffsets.Resize(gameStateIndex);
		for(s32 i = 0; i < gameStateIndex; ++i)
		{
			_inGameStateFileOffsets[0] = 0;
		}
	}

	if(enablePlugIns)
	{
		for(u32 i = 0; i < PlugIns.GetSize(); ++i)
		{
			PlugIns[i]->StartProcessingDemo();
		}
	}

	return true;
}