Files
gtav-src/tools_ng/lib/util/ragebuilder/placestats.py
T
2025-09-29 00:52:08 +02:00

90 lines
2.3 KiB
Python
Executable File

import sys, re
if len(sys.argv) != 3:
print 'Usage: \nplacestats.py <fin_from_ragebuilder> <fout_raw_not_in_place_list>'
exit(2)
infilename = sys.argv[1]
outfilename = sys.argv[2]
fin=open(infilename)
fout=open(outfilename,'r+')
#process the ragebuilder output to grab only those that dont load in place
for aline in fin:
if re.match(r'.*can not use in-place loading', aline):
fout.write(aline)
fin.close
fout.seek(0)
#lists
names = []
schemas = []
#set
frequency = {}
fileTypeFrequency = {}
#now parsing something like this:
#Line 308: File memory:$03F63BF0,6004,0:packfile1:\des_cropduster.ctyp, schema CMapTypes (0xd98bb561) can not use in-place loading
linenum = 0
for line in fout:
linelist = line.split(',')
linenum += 1
if len(linelist) < 3:
print 'Error here ' , linenum, line, linelist
filename = 'error'
else:
filename = re.sub('0:packfile1:', '', linelist[2])
filename = re.sub(r'^\\', '', filename)
filename = re.sub('0:', '', filename)
if len(linelist) < 4:
print 'Error here ' , linenum, line, linelist
schema = 'error'
else:
schema = re.sub('\(0x.*', '', linelist[3])
schema = re.sub('\r\n|\n', '', schema)
schema = re.sub('schema ', '', schema)
schema = re.sub(' ', '', schema)
names.append(filename);
schemas.append(schema);
if schema in frequency:
numUses = frequency[schema]
frequency[schema] = numUses + 1
else:
frequency[schema] = 1
fout.close()
namesset = set(names)
nameslist = list(namesset)
nameslist.sort()
schemaset = set(schemas)
for fname in namesset:
fnsplit = fname.split('.')
filetype = fnsplit[len(fnsplit)-1]
if filetype in fileTypeFrequency:
numUses = fileTypeFrequency[filetype]
fileTypeFrequency[filetype] = numUses + 1
else:
fileTypeFrequency[filetype] = 1
print len(nameslist) , 'files can\'t load in place:'
for x in nameslist:
print x
print '\ndue to' ,len(schemaset), 'schemas:', schemaset
print '\nfrequency of mismatched schemas:'
for w in sorted(frequency, key=frequency.get, reverse=True):
print w, frequency[w]
print '\n', len(nameslist) , 'files can\'t load in place freq:\n',
for h in sorted(fileTypeFrequency, key=fileTypeFrequency.get, reverse=True):
print h, fileTypeFrequency[h]