summaryrefslogtreecommitdiff
path: root/devtools/goldsrc_port_scripts/find_game_sounds.py
blob: 7b0a955c5a6b91ab97742a6c2626ebdfe4408750 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import os
import sys
import stat


g_NumSoundsAdded = 0


def ScanSounds_R( baseDir, relativeDir, outFile ):
	files = os.listdir( baseDir )
	for filename in files:
		fullFilename = baseDir + "\\" + filename
		if len( relativeDir ) > 0:
			newRelativeDir = relativeDir + "/" + filename
		else:
			newRelativeDir = filename

		mode = os.stat( fullFilename )[stat.ST_MODE]
		
		if stat.S_ISREG( mode ):
			if filename[-4:].upper() == ".WAV":
				outFile.write( "\"%s\"\n" % ( newRelativeDir[0:-4] ) )
				outFile.write( "{\n" )
				outFile.write( "\t\"channel\"\t\t\"CHAN_ITEM\"\n" )
				outFile.write( "\t\"volume\"\t\t\"VOL_NORM\"\n" )
				outFile.write( "\t\"soundlevel\"\t\"SNDLVL_NONE\"\n" )
				outFile.write( "\t\"pitch\"\t\t\t\"PITCH_NORM\"\n" )
				outFile.write( "\t\"wave\"\t\t\t\"%s\"\n" % ( newRelativeDir ) )
				outFile.write( "}\n\n" )
				
				global g_NumSoundsAdded
				g_NumSoundsAdded += 1
		
		if stat.S_ISDIR( mode ):
			ScanSounds_R( fullFilename, newRelativeDir, outFile )


# Make sure we've got a valid base directory.
if len( sys.argv ) < 2:
	print "Error: Must specify the root sound directory."
	sys.exit( 1 )

baseDir = sys.argv[1]
if os.access( baseDir, os.R_OK ) != 1:
	print "Error: Can't access %s." % ( baseDir )
	sys.exit( 1 )


# Now scan all the .cpp files for sound function calls.
outFile = open( "game_sounds.txt", "wt" )

ScanSounds_R( baseDir, "", outFile )

outFile.close()


print "Added %d sounds to game_sounds.txt" % ( g_NumSoundsAdded )