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))
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()
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()
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()
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))