00001 #include "osl/state/numEffectState.h" 00002 #include "osl/record/kisen.h" 00003 #include "osl/record/csaRecord.h" 00004 00005 #include <iostream> 00006 #include <fstream> 00007 00008 void usage (const char *program_name) 00009 { 00010 std::cerr << "Usage: " << program_name << " KISENFILE INDEX CSAFILE" 00011 << std::endl; 00012 exit(1); 00013 } 00014 00015 void convert(const char*kisen_filename, const char *csa_filename, size_t i) 00016 { 00017 osl::record::KisenFile kisen(kisen_filename); 00018 std::ofstream ofs(csa_filename); 00019 00020 if (i < kisen.size()) 00021 { 00022 osl::state::NumEffectState state = kisen.getInitialState(); 00023 ofs << state; 00024 const osl::stl::vector<osl::Move> moves = kisen.getMoves(i); 00025 for (size_t j = 0; j < moves.size(); ++j) 00026 { 00027 ofs << osl::record::csa::show(moves[j]) << std::endl; 00028 } 00029 } 00030 else 00031 { 00032 std::cerr << "Index out of bounds: " << i << std::endl; 00033 } 00034 } 00035 00036 int main(int argc, char **argv) 00037 { 00038 if (argc != 4) 00039 usage(argv[0]); 00040 00041 convert(argv[1], argv[3], atoi(argv[2])); 00042 00043 return 0; 00044 }