예제 #1
0
 def write_application(converter):
     writer = converter.open_code('extra_keys.cpp')
     writer.putln(
         get_string_int_map('hash_extra_key', 'hash_extra_string',
                            hashed_keys, False))
     writer.close()
     converter.add_define('CHOWDREN_VALUEADD_COUNT', len(hashed_keys))
예제 #2
0
    def write_code(self):
        if self.skip:
            return
        self.header.putln('')
        self.header.putdefine('IMAGE_COUNT', self.image_count)
        self.header.putdefine('SOUND_COUNT', self.sound_count)
        self.header.putdefine('FONT_COUNT', self.font_count)
        self.header.putdefine('SHADER_COUNT', self.shader_count)
        self.header.putdefine('FILE_COUNT', self.file_count)
        self.header.close_guard('CHOWDREN_ASSETS_H')
        self.header.close()

        data = get_string_int_map('get_file_id', 'get_file_hash',
                                  self.file_ids, False)
        self.packfiles.putln(data)
        self.packfiles.close()
예제 #3
0
    def write_code(self):
        if self.skip:
            return
        self.header.putln('')
        self.header.putdefine('IMAGE_COUNT', self.image_count)
        self.header.putdefine('SOUND_COUNT', self.sound_count)
        self.header.putdefine('FONT_COUNT', self.font_count)
        self.header.putdefine('SHADER_COUNT', self.shader_count)
        self.header.putdefine('FILE_COUNT', self.file_count)
        self.header.close_guard('CHOWDREN_ASSETS_H')
        self.header.close()

        data = get_string_int_map('get_file_id', 'get_file_hash',
                                  self.file_ids, False)
        self.packfiles.putln(data)
        self.packfiles.close()
예제 #4
0
파일: key.py 프로젝트: mattl/anaconda
def main():
    # generate key definition files
    import sys
    sys.path.append('..')
    from chowdren.codewriter import CodeWriter
    from chowdren.common import get_base_path
    from chowdren.stringhash import get_string_int_map
    import os

    writer = CodeWriter(os.path.join(get_base_path(), 'keyconv.cpp'))

    # write keys file
    writer.putln('#include <string>')
    writer.putln('#include "keydef.h"')
    writer.putln('#include "stringcommon.h"')
    writer.putln('')

    writer.putmeth('int translate_vk_to_key', 'int vk')
    writer.putln('switch (vk) {')
    writer.indent()
    for vk, name in VK_TO_SDL.iteritems():
        writer.putln('case %s: return %s;' % (vk, name[0]))
    writer.end_brace()
    writer.putln('return -1;')
    writer.end_brace()
    writer.putln('')

    string_map = {}
    for vk, name in VK_TO_SDL.iteritems():
        string_name = VK_TO_NAME.get(vk, None)
        if string_name is None:
            continue
        string_map[string_name] = name[0]

    writer.putln(
        get_string_int_map('translate_string_to_key', 'get_key_string_hash',
                           string_map, False))

    writer.putmeth('std::string translate_vk_to_string', 'int vk')
    writer.putln('switch (vk) {')
    writer.indent()
    for vk, name in VK_TO_SDL.iteritems():
        string_name = VK_TO_NAME.get(vk, None)
        if string_name is None:
            continue
        writer.putlnc('case %s: return %r;', vk, string_name)
    writer.end_brace()
    writer.putln('return "";')
    writer.end_brace()
    writer.putln('')

    writer.putmeth('std::string translate_key_to_string', 'int key')
    writer.putln('switch (key) {')
    writer.indent()
    for name, string_name in KEY_TO_NAME.iteritems():
        writer.putlnc('case %s: return %r;', name, string_name)
    writer.end_brace()
    writer.putln('return "";')
    writer.end_brace()

    # keys = {}
    # for name, value in SDL_KEYS.iteritems():
    #     if isinstance(value, str):
    #         value = ord(value)
    #     keys[value] = name

    # writer.putmeth('int translate_key_to_index', 'int key')
    # writer.putln('switch (key) {')
    # writer.indent()
    # for index, value in enumerate(sorted(keys)):
    #     name = keys[value]
    #     writer.putlnc('case %s: return %r;', name, index)
    # writer.end_brace()
    # writer.putln('return -1;')
    # writer.end_brace()

    writer.close()
예제 #5
0
파일: key.py 프로젝트: carriercomm/anaconda
def main():
    # generate key definition files
    import sys
    sys.path.append('..')
    from chowdren.codewriter import CodeWriter
    from chowdren.common import get_base_path
    from chowdren.stringhash import get_string_int_map
    import os

    writer = CodeWriter(os.path.join(get_base_path(), 'keyconv.cpp'))

    # write keys file
    writer.putln('#include "chowstring.h"')
    writer.putln('#include "keydef.h"')
    writer.putln('#include "stringcommon.h"')
    writer.putln('')

    writer.putmeth('int translate_vk_to_key', 'int vk')
    writer.putln('switch (vk) {')
    writer.indent()
    for vk, name in VK_TO_SDL.iteritems():
        writer.putln('case %s: return %s;' % (vk, name[0]))
    writer.end_brace()
    writer.putln('return -1;')
    writer.end_brace()
    writer.putln('')

    string_map = {}
    for vk, name in VK_TO_SDL.iteritems():
        string_name = VK_TO_NAME.get(vk, None)
        if string_name is None:
            continue
        string_map[string_name] = name[0]

    writer.putln(get_string_int_map('translate_string_to_key',
                                    'get_key_string_hash',
                                    string_map, False))

    writer.putmeth('chowstring translate_vk_to_string',
                   'int vk')
    writer.putln('switch (vk) {')
    writer.indent()
    for vk, name in VK_TO_SDL.iteritems():
        string_name = VK_TO_NAME.get(vk, None)
        if string_name is None:
            continue
        writer.putlnc('case %s: return %r;', vk, string_name)
    writer.end_brace()
    writer.putln('return "";')
    writer.end_brace()
    writer.putln('')

    writer.putmeth('chowstring translate_key_to_string',
                   'int key')
    writer.putln('switch (key) {')
    writer.indent()
    for name, string_name in KEY_TO_NAME.iteritems():
        writer.putlnc('case %s: return %r;', name, string_name)
    writer.end_brace()
    writer.putln('return "";')
    writer.end_brace()

    # keys = {}
    # for name, value in SDL_KEYS.iteritems():
    #     if isinstance(value, str):
    #         value = ord(value)
    #     keys[value] = name

    # writer.putmeth('int translate_key_to_index', 'int key')
    # writer.putln('switch (key) {')
    # writer.indent()
    # for index, value in enumerate(sorted(keys)):
    #     name = keys[value]
    #     writer.putlnc('case %s: return %r;', name, index)
    # writer.end_brace()
    # writer.putln('return -1;')
    # writer.end_brace()

    writer.close()
예제 #6
0
 def write_application(converter):
     writer = converter.open_code('extra_keys.cpp')
     writer.putln(get_string_int_map('hash_extra_key', 'hash_extra_string',
                                     hashed_keys, False))
     writer.close()
     converter.add_define('CHOWDREN_VALUEADD_COUNT', len(hashed_keys))