Esempio n. 1
0
def repackStatsVectors():

	# remove disconnected players
	cleanoutStatsVector()
	cleanoutMedalsVector()
	
	# repack stats and medal vector so there are no holes. gamespy doesnt like holes.
	medalMap = getMedalMap()
	statsMap = getStatsMap()
	playerOrderIt = getPlayerConnectionOrderIterator()

	newOrderIterator = 0
	newStatsMap = {}
	newMedalMap = {}

	highestId = 0
	for id, statsItem in statsMap.iteritems():

		newStatsMap[newOrderIterator] = statsItem
		if id in medalMap:
			newMedalMap[newOrderIterator] = medalMap[id]

		statsItem.connectionOrderNr = newOrderIterator
		newOrderIterator += 1
		
	print "Repacked stats map. Stats map size=%d. OrderIt changed from %d to %d" % (len(statsMap), playerOrderIt, newOrderIterator)

	setPlayerConnectionOrderIterator(newOrderIterator)
	setStatsMap(newStatsMap)
	setMedalMap(newMedalMap)
Esempio n. 2
0
def repackStatsVectors():

    # remove disconnected players
    cleanoutStatsVector()
    cleanoutMedalsVector()

    # repack stats and medal vector so there are no holes. gamespy doesnt like holes.
    medalMap = getMedalMap()
    statsMap = getStatsMap()
    playerOrderIt = getPlayerConnectionOrderIterator()

    newOrderIterator = 0
    newStatsMap = {}
    newMedalMap = {}

    highestId = 0
    for id, statsItem in statsMap.iteritems():

        newStatsMap[newOrderIterator] = statsItem
        if id in medalMap:
            newMedalMap[newOrderIterator] = medalMap[id]

        statsItem.connectionOrderNr = newOrderIterator
        newOrderIterator += 1

    print "Repacked stats map. Stats map size=%d. OrderIt changed from %d to %d" % (
        len(statsMap), playerOrderIt, newOrderIterator)

    setPlayerConnectionOrderIterator(newOrderIterator)
    setStatsMap(newStatsMap)
    setMedalMap(newMedalMap)
Esempio n. 3
0
def cleanoutMedalsVector():
	print "snapshot.py: Cleaning out unconnected players from medal map"
	medalMap = getMedalMap()
	# remove disconnected players after snapshot was sent
	removeList = []
	for pid in medalMap:
		foundPlayer = False
		for p in bf2.playerManager.getPlayers():
			if p.medals == medalMap[pid]:
				foundPlayer = True
				break
		if not foundPlayer:
			removeList += [pid]
	for pid in removeList:
		if g_debug: print "snapshot.py: Removed player %d from medals." % pid
		del medalMap[pid]
Esempio n. 4
0
def cleanoutMedalsVector():
	print "snapshot.py: Cleaning out unconnected players from medal map"
	medalMap = getMedalMap()
	# remove disconnected players after snapshot was sent
	removeList = []
	for pid in medalMap:
		foundPlayer = False
		for p in bf2.playerManager.getPlayers():
			if p.medals == medalMap[pid]:
				foundPlayer = True
				break
		if not foundPlayer:
			removeList += [pid]
	for pid in removeList:
		if g_debug: print "snapshot.py: Removed player %d from medals." % pid
		del medalMap[pid]