Esempio n. 1
0
    def output_format(self, output_type):
        fields      = [ ]
        build_level = self._options.build or data.current_patch_level()
        # Figure out which output fields we should use
        for build in sorted(_OUTPUT_FORMATS.keys()):
            if build > build_level:
                break

            if not fields or (fields and _OUTPUT_FORMATS[build].get(output_type)):
                fields = _OUTPUT_FORMATS[build].get(output_type)
        
        return fields
Esempio n. 2
0
    def generate_json(self, output_type, ids = { }, columns = 1, comment = '', indent = 2):
        s           = ''
        fields      = self.output_format(output_type)
        json_data   = [ ]
        if len(fields) == 1:
            data_fmt = r'%s, '

        if comment != '':
            s += '// %s\n' % comment
        else:
            s += '// %s data, wow build %d, %d entries\n' % ( 
                output_type, self._options.build or data.current_patch_level(), len(ids.keys()))
        
        s += 'var %s_data = ' % output_type.lower()

        for id in sorted(ids.keys()):
            json_data.append( self.generate_fields(fields, id, ids[id], True) )

        return s + json.JSONEncoder().encode(json_data)
Esempio n. 3
0
    def generate_cpp(self, output_type, ids = { }, columns = 1, comment = '', indent = 2):
        s           = ''
        fields      = self.output_format(output_type)
        data_fmt    = r'{ %s }, '
        if len(fields) == 1:
            data_fmt = r'%s, '

        if comment != '':
            s += '// %s\n' % comment
        else:
            s += '// %s data, wow build %d, %d entries\n' % ( 
                output_type, self._options.build or data.current_patch_level(), len(ids.keys()))

        s += 'static struct %s_data_t %s_data[] = {\n' % ( output_type.lower(), output_type.lower() )
        for id in sorted(ids.keys()):
            s += ' ' * indent
            for col in xrange(0, columns):
                s+= data_fmt % (', '.join(self.generate_fields(fields, id, ids[id])))

            s += '\n'

        s += '};\n'

        return s