rendered paste bodyimport sysimport reimport mathvertexmatcher = re.compile(r"v (.*?) (.*?) (.*)")trimatcher = re.compile(r"f (.*?) (.*?) (.*)")quadmatcher = re.compile(r"f (.*?) (.*?) (.*?) (.*)")indexmatcher = re.compile(r"([0-9]*)\/\/([0-9]*)")def getvindex(indexline): vindexmatch = indexmatcher.match(indexline) if vindexmatch: return vindexmatch.group(1) else: return indexlinefilenamematcher = re.compile(r"(.*)\..*?$")filenamematcher2 = re.compile(r".*[/\\](.*?)$")objfile = open(sys.argv[1])filenamematch = filenamematcher.match(sys.argv[1])outputname = filenamematch.group(1)objnamematch = filenamematcher2.match(filenamematch.group(1))objname = objnamematch.group(1)vertices = []fifoObjects = []class FifoObject: def __init__(self): self.command = "" self.data = []while 1: line = objfile.readline() if not line: break vertexmatch = vertexmatcher.match(line) if vertexmatch: vertices.append((vertexmatch.group(1), vertexmatch.group(2), vertexmatch.group(3))) continue quadmatch = quadmatcher.match(line) if quadmatch: fifoObject = FifoObject() fifoObject.command = "FIFO_BEGIN" fifoObject.data.append("GL_QUAD") fifoObjects.append(fifoObject) for i in range(1,4+1): fifoObject = FifoObject() fifoObject.command = "FIFO_VERTEX16" vertex = vertices[int(getvindex(quadmatch.group(i)))-1] fifoObject.data.append("VERTEX_PACK(floattov16(" + vertex[0] + "), floattov16(" + vertex[1] + "))") fifoObject.data.append("VERTEX_PACK(floattov16(" + vertex[2] + "), 0)") fifoObjects.append(fifoObject) continue # do the crazy fifocommand packingwhile (len(fifoObjects) % 4) > 0: fifoObject = FifoObject() fifoObject.command = "FIFO_END" fifoObjects.append(fifoObject)#fifopack = []#fifocounter = 0#while fifocounter < len(fifocommand):# fifopack.append("FIFO_COMMAND_PACK(" + fifocommand[fifocounter] + ", "# + fifocommand[fifocounter + 1] + ", "# + fifocommand[fifocounter + 2] + ", "# + fifocommand[fifocounter + 3] + ")")# fifocounter += 4 #i = 0#datacounter = 0#print len(fifodata)#for packedcommand in fifopack:# cfile.write(", \n" + packedcommand)# datasubcounter = 0# while datasubcounter < 4:# print datacounter# cfile.write(", " + fifodata[datacounter])# if fifodata[datacounter].startswith("VERTEX_PACK"):# datacounter += 1# cfile.write(", " + fifodata[datacounter])# datasubcounter += 1# datacounter += 1finaloutput = ""length = 0for i in range(0,len(fifoObjects)): if (i % 4) == 0: finaloutput += (", FIFO_COMMAND_PACK(" + fifoObjects[i].command + ", " + fifoObjects[i + 1].command + ", " + fifoObjects[i + 2].command + ", " + fifoObjects[i + 3].command + ")") length += 1 for data in fifoObjects[i].data: finaloutput += ", " + data length += 1 # interleave it all togethercfile = open(outputname + "Model.c", 'w')cfile.write("// created by AWESOME SCRIPT!\n")cfile.write("#include <nds.h>\n")cfile.write("const u32 " + objname + "Model[] = { " + str(length))cfile.write(finaloutput)cfile.write(" };")hfile = open(outputname + "Model.h", 'w')hfile.write("extern const u32 " + objname + "Model[];\n")