示例#1
0
void MULTIPLAY::Disconnect()
{
	bool wasconnected = Connected();
	
	net.Disconnect();
	remote_players = 0;
	remote_playernum = 0;
	
	int i;
	for (i = 0; i < MAX_PLAYERS; i++)
		timeindex[i] = 0.0;
	
	if (MP_RECORD && dbgnumpackets > 0)
	{
		int slot = 0;
		
		if (MP_REMOTE_RECORD)
			slot = 1;
		
		FILE * dbgout = fopen("replays/mpdebug.vdr", "wb");
		if (dbgout)
		{
			replay.WriteHeader(dbgout, GetFuncMem(slot), NumFuncs(slot), slot);
			replay.WritePackets(dbgout, dbgpacket, dbgnumpackets, dbgstate, dbgnumstates);
			fclose(dbgout);
		}
		
		dbgnumpackets = 0;
		dbgnumstates = 0;
	}
	
	if (wasconnected)
		mq1.AddMessage("Disconnected");
}
示例#2
0
bool FuncIndexOk(int n, bool warn = true){ //ida will crash if out of bounds..
	
	char buf[100];
	if(n < 0 || n >= NumFuncs()){
		if(warn){
			sprintf(&buf[0], "Invalid FunctionStart(%x)", n);
			MessageBoxA(0,buf,"PLW",0);
		}
		return false;
	}
	
	return true;
}