bool cutscene::load(const std::string& data_dir, int cut_num) { base_dir = data_dir; this->cut_num = cut_num; std::string n00_file(data_dir+"/cuts/cs"+to_octal3(cut_num)+".n00"); std::string n01_file(data_dir+"/cuts/cs"+to_octal3(cut_num)+".n01"); std::string font_file(data_dir+"/data/fontbig.sys"); std::string strings_file(data_dir+"/data/strings.pak"); if(!load_font(font_file)) return false; if(!load_n00(n00_file)) return false; if(!load_strings(strings_file, cut_num)) return false; //File may or may not exist; things like the "dream" cutscenes use .n01's that don't match the .n00, but they load them immediately with a command in the n00. load_lpf(n01_file); return true; }
int main () { printf ("Results of open_benchmark:\n"); try { FT_Library library; if (FT_Init_FreeType (&library)) throw xtl::format_operation_exception ("::FT_Init_FreeType", "Can't init freetype library\n"); { common::InputFile font_file (FILE_NAME); xtl::uninitialized_storage<char> font_data (font_file.Size ()); font_file.Read (font_data.data (), font_data.size ()); size_t start_time = common::milliseconds (); for (size_t i = 0; i < MEMORY_ITERATIONS_COUNT; i++) { FT_Face face; if (FT_New_Memory_Face (library, (const FT_Byte*)font_data.data (), font_data.size (), 0, &face)) throw xtl::format_operation_exception ("FontFace::FontFace", "Can't create font face\n"); FT_Done_Face (face); } printf ("FreeType font creation speed from memory is %f/s\n", MEMORY_ITERATIONS_COUNT / ((common::milliseconds () - start_time) / 1000.f)); } { size_t start_time = common::milliseconds (); for (size_t i = 0; i < FILE_ITERATIONS_COUNT; i++) { common::InputFile font_file (FILE_NAME); xtl::uninitialized_storage<char> font_data (font_file.Size ()); font_file.Read (font_data.data (), font_data.size ()); FT_Face face; if (FT_New_Memory_Face (library, (const FT_Byte*)font_data.data (), font_data.size (), 0, &face)) throw xtl::format_operation_exception ("FontFace::FontFace", "Can't create font face\n"); FT_Done_Face (face); } printf ("FreeType font creation speed from file is %f/s\n", FILE_ITERATIONS_COUNT / ((common::milliseconds () - start_time) / 1000.f)); } FT_Done_FreeType (library); } catch (std::exception& exception) { printf ("exception: %s\n",exception.what ()); } catch (...) { printf ("unknown exception\n"); } return 0; }