Mercurial > otakunoraifu
diff system/file.cc @ 65:4416cfac86ae
Convert EUC-JP files to UTF8
author | Thibaut Girka <thib@sitedethib.com> |
---|---|
date | Fri, 26 Nov 2010 10:53:15 +0100 |
parents | ddbcbd000206 |
children |
line wrap: on
line diff
--- a/system/file.cc +++ b/system/file.cc @@ -1,9 +1,9 @@ bool init_end=false; -/* file.cc : KANON の圧縮ファイル・PDT ファイル(画像ファイル)の展開の - * ためのメソッド - * class ARCFILE : 書庫ファイル全体を扱うクラス - * class ARCINFO : 書庫ファイルの中の1つのファイルを扱うクラス - * class PDTCONV : PDT ファイルの展開を行う。 +/* file.cc : KANON х軒<ゃPDT <ゃ鐚糸<ゃ鐚絮 + * <純 + * class ARCFILE : 後昆<ゃ篏宴 + * class ARCINFO : 後昆<ゃ筝鐚ゃ<ゃ宴 + * class PDTCONV : PDT <ゃ絮茵 * */ @@ -85,7 +85,7 @@ using namespace std; // #define delete fprintf(stderr,"file.cc: %d.",__LINE__), delete -/* FileSearcher class の default の振る舞い */ +/* FileSearcher class default */ FileSearcher *FileSearcher::_singleton = NULL; FileSearcher::ARCTYPE FileSearcher::default_is_archived[TYPEMAX] = { ATYPE_DIR, ATYPE_DIR, ATYPE_DIR, ATYPE_DIR, @@ -100,16 +100,16 @@ const char* FileSearcher::default_dirnam /********************************************* ** ARCFILE / DIRFILE: -** 書庫ファイル、あるいはディレクトリの -** 全体を管理するクラス +** 後昆<ゃc +** 篏膊∞ ** -** 書庫ファイルからファイルの抜き出しはFind() -** Find したものをReadすると内容が得られる。 +** 後昆<ゃ<ゃ冴Find() +** Find Read絎鴻緇 */ ARCFILE::ARCFILE(const char* aname) { struct stat sb; - /* 変数初期化 */ + /* 紊医 */ arcname = NULL; list_point = 0; filenames_orig = NULL; @@ -119,7 +119,7 @@ ARCFILE::ARCFILE(const char* aname) { arcname[0]='\0'; return; } // NULFILE - /* ディレクトリか否かのチェック */ + /* cс */ if (stat(aname,&sb) == -1) { /* error */ perror("stat"); } @@ -141,9 +141,9 @@ ARCFILE::ARCFILE(const char* aname) { void ARCFILE::Init(void) { if (! arc_atom.empty()) return; if (arcname == NULL) return; - /* ファイル数を得る */ + /* <ゃ違緇 */ int slen = CheckFileDeal(); - /* ファイル名のセット */ + /* <ゃ祉 */ ListupFiles(slen); if ( (!arc_atom.empty()) && arc_atom[0].filename) filenames_orig = arc_atom[0].filename; sort(arc_atom.begin(), arc_atom.end()); @@ -160,16 +160,16 @@ ARCFILE::iterator ARCFILE::SearchName(co Init(); if (f == NULL) return arc_atom.end(); if (arc_atom.empty()) return arc_atom.end(); - /* エラーチェック */ + /* 若с */ if (strlen(f)>500) return arc_atom.end(); if (ext && strlen(ext)>500) return arc_atom.end(); - /* 検索 */ + /* 罎膣 */ strncpy(buf, f, 1000); buf[1000]=0; it = lower_bound(arc_atom.begin(), arc_atom.end(), (char*)buf); if (it != arc_atom.end() && strcmp(it->filename_lower, buf) == 0) return it; - // 拡張子をつけて検索 + // ≦宍絖ゃ罎膣 if (ext) { strcpy(buf_ext, buf); char* ext_pt = strrchr(buf_ext, '.'); @@ -181,7 +181,7 @@ ARCFILE::iterator ARCFILE::SearchName(co if (it != arc_atom.end() && strcmp(it->filename_lower, buf_ext) == 0) return it; } - /* 小文字にして 検索 */ + /* 絨絖 罎膣 */ int i; int l = strlen(f); if (l > 500) l = 500; for (i=0; i<l; i++) @@ -190,13 +190,13 @@ ARCFILE::iterator ARCFILE::SearchName(co it = lower_bound(arc_atom.begin(), arc_atom.end(), (char*)buf); if (it != arc_atom.end() && strcmp(it->filename_lower, buf) == 0) return it; - // 拡張子をつけて検索 + // ≦宍絖ゃ罎膣 if (ext == NULL) return arc_atom.end(); strcpy(buf_ext, buf); char* ext_pt = strrchr(buf_ext, '.'); if (ext_pt == NULL || ext_pt == buf_ext) ext_pt = buf_ext + strlen(buf_ext); *ext_pt++ = '.'; - /* 拡張子の長さを得る */ + /* ≦宍絖激緇 */ l = strlen(ext); for (i=0; i<l; i++) ext_pt[i] = tolower(*ext++); @@ -218,7 +218,7 @@ ARCINFO* ARCFILE::Find(const char* fname ARCINFO* ARCFILE::MakeARCINFO(ARCFILE_ATOM& atom) { if (atom.arcsize == atom.filesize) return new ARCINFO(arcname, atom); - else // 圧縮付 + else // х軒篁 return new ARCINFO_AVG32(arcname, atom); } ARCINFO* NULFILE::MakeARCINFO(ARCFILE_ATOM& atom) { @@ -297,7 +297,7 @@ char* ARCFILE::ListItem(void) { int ARCFILE::CheckFileDeal(void) { char buf[0x20]; - /* ヘッダのチェック */ + /* с */ FILE* stream = fopen(arcname, "rb"); if (stream == NULL) { fprintf(stderr, "Cannot open archive file : %s\n",arcname); @@ -386,7 +386,7 @@ void DIRFILE::ListupFiles(int fname_len) fprintf(stderr, "Cannot open dir file : %s\n",arcname); return; } - /* 一時的に arcname のディレクトリに移動する */ + /* 筝 arcname c腱糸 */ int old_dir_fd = open(".",O_RDONLY); if (old_dir_fd < 0) { closedir(dir); @@ -427,7 +427,7 @@ void DIRFILE::ListupFiles(int fname_len) arc_atom.push_back(atom); buf += l*2+2; fname_len -= l*2+2; } - /* chdir() したのを元に戻る */ + /* chdir() 祉 */ closedir(dir); fchdir(old_dir_fd); close(old_dir_fd); } @@ -447,7 +447,7 @@ void NULFILE::ListupFiles(int fname_len) } int SCN2kFILE::CheckFileDeal(void) { - /* ヘッダのチェック */ + /* с */ FILE* stream = fopen(arcname, "rb"); if (stream == NULL) { fprintf(stderr, "Cannot open archive file : %s\n",arcname); @@ -462,7 +462,7 @@ int SCN2kFILE::CheckFileDeal(void) { } char* buf = new char[10000*8]; fread(buf, 10000, 8, stream); - /* size == 0 のデータは存在しない */ + /* size == 0 若帥絖 */ int count = 0; int i; for (i=0; i<10000; i++) { int tmp_offset = read_little_endian_int(buf+i*8); @@ -472,7 +472,7 @@ int SCN2kFILE::CheckFileDeal(void) { } fclose(stream); delete[] buf; - return count*13; /* ファイル名は seenXXXX.txt だから、一つ12文字+null */ + return count*13; /* <ゃ seenXXXX.txt 筝12絖+null */ } void SCN2kFILE::ListupFiles(int fname_len) { @@ -492,23 +492,23 @@ void SCN2kFILE::ListupFiles(int fname_le int tmp_offset = read_little_endian_int(buf+i*8); int tmp_size = read_little_endian_int(buf+i*8+4); if (tmp_size <= 0 || tmp_offset < 0 || tmp_offset+tmp_size > int(arc_size) ) continue; - /* header を得て圧縮形式などを調べる */ + /* header 緇х軒綵√茯帥鴻 */ fseek(stream, tmp_offset, SEEK_SET); fread(header, 0x200, 1, stream); int header_top = read_little_endian_int(header+0); int file_version = read_little_endian_int(header+4); if (file_version == 0x1adb2) ; // Little Busters! - else if (file_version != 0x2712) continue; /* system version が違う */ + else if (file_version != 0x2712) continue; /* system version */ - if (header_top == 0x1cc) { /* 古い形式 : avg2000 */ + if (header_top == 0x1cc) { /* ゃ綵√ : avg2000 */ int header_size = read_little_endian_int(header+0)+read_little_endian_int(header+0x20)*4; int data_size = read_little_endian_int(header+0x24); atom.arcsize = data_size + header_size; atom.filesize = data_size + header_size; atom.private_data = header_size; - } else if (header_top == 0x1b8) { /* 初夜献上 */ + } else if (header_top == 0x1b8) { /* 紊筝 */ int header_size = read_little_endian_int(header+0)+read_little_endian_int(header+0x08)*4; int data_size = read_little_endian_int(header+0x0c); int compdata_size = read_little_endian_int(header+0x10); @@ -516,7 +516,7 @@ void SCN2kFILE::ListupFiles(int fname_le atom.filesize = data_size + header_size; atom.private_data = header_size; - } else if (header_top == 0x1d0) { /* 新しい形式: reallive */ + } else if (header_top == 0x1d0) { /* 違綵√鐚 reallive */ int header_size = read_little_endian_int(header+0x20); int data_size = read_little_endian_int(header+0x24); int compdata_size = read_little_endian_int(header+0x28); @@ -525,7 +525,7 @@ void SCN2kFILE::ListupFiles(int fname_le atom.private_data = header_size; } else { fprintf(stderr,"invalid header top; %x : not supported\n",header_top); - continue; /* サポートしない形式 */ + continue; /* 泣若綵√ */ } atom.offset = tmp_offset; @@ -608,7 +608,7 @@ const char * KeyHolder::GetKey(void) } /******************************************************** -** FileSearcher クラスの実装 +** FileSearcher 鴻絎茖 */ FileSearcher* FileSearcher::GetInstance(void) { @@ -647,7 +647,7 @@ FileSearcher::~FileSearcher(void) { } int FileSearcher::InitRoot(char* root) { - /* 必要に応じて ~/ を展開 */ + /* 綽荀綽 ~/ 絮 */ if (root[0] == '~' && root[1] == '/') { char* home = getenv("HOME"); if (home != NULL) { @@ -657,7 +657,7 @@ int FileSearcher::InitRoot(char* root) { root = new_root; } } - /* 古いデータを消す */ + /* ゃ若帥羔 */ int i; for (i=0; i<TYPEMAX; i++) { if (searcher[i] != NULL && @@ -671,13 +671,13 @@ int FileSearcher::InitRoot(char* root) { if (root_dir) delete root_dir; dat_dir = NULL; - /* 新しいディレクトリのもとで初期化 */ + /* 違cу */ root_dir = new DIRFILE(root); root_dir->Init(); - /* dat/ を検索 */ + /* dat/ 罎膣 */ char* dat_path = root_dir->SearchFile("dat"); if (dat_path == NULL) { - /* 見つからなかったら root を dat の代わりにつかう */ + /* 荀ゃc root dat 篁cゃ */ dat_dir = root_dir; } else { dat_dir = new DIRFILE(dat_path); @@ -693,7 +693,7 @@ void FileSearcher::SetFileInformation(FI int type = tp; if (type < 0 || type >= TYPEMAX) return; ARCFILE* next_arc = NULL; - /* すでに searcher が存在すれば解放 */ + /* с searcher 絖域В */ if (searcher[type] != NULL && searcher[type] != root_dir && searcher[type] != dat_dir) { @@ -701,7 +701,7 @@ void FileSearcher::SetFileInformation(FI delete searcher[type]; } searcher[type] = NULL; - /* 適当に初期化 */ + /* 綵 */ if (filenames[type] != NULL && filenames[type] != default_dirnames[type]) delete[] filenames[type]; filenames[type] = filename; @@ -714,18 +714,18 @@ void FileSearcher::SetFileInformation(FI void FileSearcher::AppendFileInformation(FILETYPE tp, ARCTYPE is_arc, char* filename) { int type = tp; if (type < 0 || type >= TYPEMAX) return; - /* searcher がまだ割り当てられてない場合 */ + /* searcher 障蚊綵翫 */ if (searcher[type] == NULL || searcher[type] == root_dir || searcher[type] == dat_dir) { searcher[type] = MakeARCFILE(is_archived[type], filenames[type]); - if (searcher[type] == NULL) { /* 作成できなかった場合 */ - /* この型情報を FileInformation とする */ + if (searcher[type] == NULL) { /* 篏сc翫 */ + /* 宴 FileInformation */ SetFileInformation(tp, is_arc, filename); return; } } - /* 初期化 */ + /* */ ARCFILE* arc = MakeARCFILE(is_arc, filename); /* append */ ARCFILE* cur; @@ -773,7 +773,7 @@ err: ARCINFO* FileSearcher::Find(FILETYPE type, const char* fname, const char* ext) { if (searcher[type] == NULL) { - /* searcher 作成 */ + /* searcher 篏 */ if (filenames[type] == NULL) { searcher[type] = dat_dir; } else { @@ -788,10 +788,10 @@ ARCINFO* FileSearcher::Find(FILETYPE typ } char** FileSearcher::ListAll(FILETYPE type) { - /* とりあえず searcher を初期化 */ + /* searcher */ Find(type, "THIS FILENAME MAY NOT EXIST IN THE FILE SYSTEM !!!"); if (searcher[type] == NULL) return NULL; - /* 全ファイルのリストアップ */ + /* <ゃ鴻≪ */ int deal = 0; ARCFILE* file; for (file = searcher[type]; file != NULL; file = file->Next()) @@ -834,7 +834,7 @@ int ARCINFO::Size(void) const { return info.filesize; } -/* コピーを返す */ +/* 潟若菴 */ char* ARCINFO::CopyRead(void) { const char* d = Read(); if (d == NULL) return NULL; @@ -845,13 +845,13 @@ char* ARCINFO::CopyRead(void) { } const char* ARCINFO::Path(void) const { - if (info.offset != 0) return NULL; /* archive file なのでパスを帰せない */ + if (info.offset != 0) return NULL; /* archive file с鴻絽違 */ char* ret = new char[strlen(arcfile)+1]; strcpy(ret, arcfile); return ret; } -/* 互換性専用 */ +/* 篋у */ FILE* ARCINFO::OpenFile(int* length) const { FILE* f = fopen(arcfile, "rb"); if (info.offset) lseek(fileno(f), info.offset, SEEK_SET); @@ -859,20 +859,20 @@ FILE* ARCINFO::OpenFile(int* length) con return f; } -// 展開処理はなし +// 絮 bool ARCINFO::ExecExtract(void) { return true; } -/* 読み込みを開始する */ +/* 茯粋昭帥紮 */ const char* ARCINFO::Read(void) { - // すでにデータを読み込み済みなら何もしない + // с若帥茯粋昭炊帥篏 if (data != NULL) return data; if (info.offset < 0 || info.arcsize <= 0) { return NULL; } - /* ファイルを開く */ + /* <ゃ */ fd = open(arcfile, O_RDONLY); if (fd < 0) { return NULL; @@ -882,7 +882,7 @@ const char* ARCINFO::Read(void) { fd = -1; return NULL; } - /* mmap を試みる */ + /* mmap 荅帥 */ #ifdef HAVE_MMAP mmapped_memory = (char*)mmap(NULL, info.arcsize, PROT_READ, MAP_SHARED, fd, info.offset); if (mmapped_memory != MAP_FAILED) { @@ -891,7 +891,7 @@ const char* ARCINFO::Read(void) { } else #endif /* HAVE_MMAP */ { - /* 失敗:普通にファイルを読み込み */ + /* 紊掩鐚<ゃ茯粋昭 */ char* d = new char[info.arcsize]; read(fd, d, info.arcsize); close(fd); @@ -899,9 +899,9 @@ const char* ARCINFO::Read(void) { use_mmap = false; data = d; } - /* 展開する */ + /* 絮 */ if (! ExecExtract()) { - // 失敗 + // 紊掩 #ifdef HAVE_MMAP if (use_mmap) { munmap(mmapped_memory, info.arcsize); @@ -915,7 +915,7 @@ const char* ARCINFO::Read(void) { } #ifdef HAVE_MMAP if (use_mmap && data != (const char*)mmapped_memory) { - // すでに mmap は必要ない + // с mmap 綽荀 munmap(mmapped_memory, info.arcsize); close(fd); fd = -1; @@ -927,7 +927,7 @@ const char* ARCINFO::Read(void) { /********************************************** ** -** 画像展開系クラスの定義、実装 +** 糸鎡膤祉鴻絎臂絎茖 ** *********************************************** */ @@ -1036,7 +1036,7 @@ class JPEGCONV : public GRPCONV { #endif GRPCONV* GRPCONV::AssignConverter(const char* inbuf, int inlen, const char* fname) { - /* ファイルの内容に応じたコンバーターを割り当てる */ + /* <ゃ絎鴻綽潟潟若帥若蚊綵 */ GRPCONV* conv = NULL; if (inlen < 10) return NULL; /* invalid file */ if (strncmp(inbuf, "PDT10", 5) == 0 || strncmp(inbuf, "PDT11", 5) == 0) { /* PDT10 or PDT11 */ @@ -1084,16 +1084,16 @@ GRPCONV* GRPCONV::AssignConverter(const } PDTCONV::PDTCONV(const char* _inbuf, int _inlen,const char* filename) { -// PDT FILE のヘッダ -// +00 'PDT10' (PDT11 は未対応) -// +08 ファイルサイズ (無視) -// +0C width (ほぼすべて、640) -// +10 height(ほぼすべて、480) -// +14 (mask の) x 座標 (実際は無視・・・全ファイルで 0 ) -// +1c (mask の) y座標 (実際は無視 ・・・全ファイルで 0 ) -// +20 mask が存在すれば、mask へのポインタ +// PDT FILE +// +00 'PDT10' (PDT11 絲上) +// +08 <ゃ泣ゃ (∴) +// +0C width (祉若鴻640) +// +10 height(祉若鴻480) +// +14 (mask ) x 綺ф (絎∴祉祉糸<ゃ 0 ) +// +1c (mask ) y綺ф (絎∴ 祉祉糸<ゃ 0 ) +// +20 mask 絖違mask 吾ゃ潟 - /* ヘッダチェック */ + /* с */ if (_inlen < 0x20) { fprintf(stderr, "Invalid PDT file %s : size is too small\n",filename); return; @@ -1116,14 +1116,14 @@ PDTCONV::PDTCONV(const char* _inbuf, int G00CONV::G00CONV(const char* _inbuf, int _inlen, const char* filename) { -// G00 FILE のヘッダ +// G00 FILE // +00 type (1, 2) // +01: width(word) // +03: height(word) -// type 1: (color table 付き LZ 圧縮 ; PDT11 に対応) -// +05: 圧縮サイズ(dword) ; +5 するとデータ全体のサイズ -// +09: 展開後サイズ(dword) -// type 2: (マスク可、画像を矩形領域に分割してそれぞれ圧縮) +// type 1: (color table 篁 LZ х軒 ; PDT11 絲上) +// +05: х軒泣ゃ(dword) ; +5 若水篏泣ゃ +// +09: 絮緇泣ゃ(dword) +// type 2: (鴻糸綵∫蚊х軒) // +05: index size // +09: index table(each size is 0x18) // +00 @@ -1133,14 +1133,14 @@ G00CONV::G00CONV(const char* _inbuf, int // +09+0x18*size+08: (data top) // - /* データから情報読み込み */ + /* 若帥沿粋昭 */ int type = *_inbuf; int w = read_little_endian_short(_inbuf+1); int h = read_little_endian_short(_inbuf+3); if (w < 0 || h < 0) return; - if (type == 0 || type == 1) { // color table 付き圧縮 + if (type == 0 || type == 1) { // color table 篁х軒 if (_inlen < 13) { fprintf(stderr, "Invalid G00 file %s : size is too small\n",filename); return; @@ -1153,7 +1153,7 @@ G00CONV::G00CONV(const char* _inbuf, int return; } Init(filename, _inbuf, _inlen, w, h, false); - } else if (type == 2) { // color table なし、マスク付き可の圧縮 + } else if (type == 2) { // color table 鴻篁х軒 int head_size = read_little_endian_short(_inbuf+5); if (head_size < 0 || head_size*24 > _inlen) return; @@ -1172,17 +1172,17 @@ G00CONV::G00CONV(const char* _inbuf, int bool G00CONV::Read(char* image) { if (data == NULL) return false; - /* header 識別 */ + /* header 茘 */ int type = *data; if (type == 0) return Read_Type0(image); else if (type == 1) return Read_Type1(image); else if (type == 2) return Read_Type2(image); } -/* 一般的な LZ 圧縮の展開ルーチン */ -/* datasize はデータの大きさ、char / short / int を想定 */ -/* datatype は Copy1Pixel (1データのコピー)及び ExtractData(LZ 圧縮の情報を得る -** というメソッドを実装したクラス */ +/* 筝 LZ х軒絮若 */ +/* datasize 若帥紊сchar / short / int 喝 */ +/* datatype Copy1Pixel (1若帥潟) ExtractData(LZ х軒宴緇 +** <純絎茖 */ static int bitrev_table[256] = { 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0, 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0, 0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8, 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8, @@ -1207,7 +1207,7 @@ template<class DataType, class DataSize> const char* lsrc = src; char* ldest = dest; if (lsrc+50 < lsrcend && ldest+1024 < ldestend) { - /* まず、範囲チェックを緩くして高速なルーチンを使う */ + /* 障膀蚊с膩蕭若潟篏帥 */ lsrcend -= 50; ldestend += 1024; while (ldest < ldestend && lsrc < lsrcend) { @@ -1233,7 +1233,7 @@ template<class DataType, class DataSize> lsrcend += 50; ldestend += 1024; } - /* 残りを変換 */ + /* 罧紊 */ while (ldest < ldestend && lsrc < lsrcend) { count += 8; int flag = int(*(unsigned char*)lsrc++); @@ -1258,12 +1258,12 @@ template<class DataType, class DataSize> return 0; } -/* 引数を減らすためのwrapper */ +/* 綣違羝wrapper */ template<class DataType, class DataSize> inline int lzExtract(DataType datatype, DataSize datasize ,const char*& src, char*& dest, const char* srcend, char* destend) { return lzExtract<DataType, DataSize>(datatype,src,dest,srcend,destend); } -/* 普通の PDT */ +/* PDT */ class Extract_DataType { public: static void ExtractData(const char*& lsrc, int& data, int& size) { @@ -1286,7 +1286,7 @@ class Extract_DataType { static int IsRev(void) { return 0; } }; -/* PDT11 の第一段階変換 */ +/* PDT11 膃筝罧級紊 */ class Extract_DataType_PDT11 { private: int* index_table; @@ -1305,7 +1305,7 @@ class Extract_DataType_PDT11 { static int IsRev(void) { return 0; } }; -/* マスク用 */ +/* 鴻 */ class Extract_DataType_Mask { public: void ExtractData(const char*& lsrc, int& data, int& size) { @@ -1321,7 +1321,7 @@ class Extract_DataType_Mask { static int IsRev(void) { return 0; } }; -/* 書庫用 */ +/* 後昆 */ class Extract_DataType_ARC { public: void ExtractData(const char*& lsrc, int& data, int& size) { @@ -1337,7 +1337,7 @@ class Extract_DataType_ARC { static int IsRev(void) { return 0; } }; -/* avg2000 のシナリオ用 */ +/* avg2000 激 */ class Extract_DataType_SCN2k { public: void ExtractData(const char*& lsrc, int& data, int& size) { @@ -1353,7 +1353,7 @@ class Extract_DataType_SCN2k { static int IsRev(void) { return 1; } }; -/* ReadLive の type0 */ +/* ReadLive type0 */ class Extract_DataType_G00Type0 { public: static void ExtractData(const char*& lsrc, int& data, int& size) { @@ -1385,7 +1385,7 @@ bool PDTCONV::Read(char* image) { if (! Read_PDT11(image)) return false; } if (! is_mask) return true; - // マスク読み込み + // 鴻茯粋昭 int mask_pt = read_little_endian_int(data + 0x1c); char* buf = new char[width*height+1024]; const char* src = data + mask_pt; @@ -1452,8 +1452,8 @@ bool PDTCONV::Read_PDT11(char* image) { return true; } -/* dest は dest_end よりも 256 byte 以上先まで -** 書き込み可能であること。 +/* dest dest_end 256 byte 篁ヤ障 +** 吾莨若水純с */ void ARCINFO::Extract(char*& dest_start, char*& src_start, char* dest_end, char* src_end) { const char* src = src_start; @@ -1468,12 +1468,12 @@ void ARCINFO::Extract2k(char*& dest_star } bool ARCINFO_AVG32::ExecExtract(void) { - // ヘッダのチェック + // с if (strncmp(data, "PACK", 4) != 0) return false; if (read_little_endian_int(data+8) != info.filesize) return false; if (read_little_endian_int(data+12) != info.arcsize) return false; - // ファイルを展開する + // <ゃ絮 char* ret_data = new char[info.filesize+1024]; const char* s = data + 0x10; @@ -1510,10 +1510,10 @@ bool ARCINFO2k::ExecExtract(void) { char* ret_data = new char[info.filesize + 1024]; char* decoded_data = new char[info.arcsize + 1024]; - /* header のコピー */ + /* header 潟 */ memcpy(ret_data, data, info.private_data); - /* まず、xor の暗号化を解く */ + /* 障xor 垸茹c */ const char* s; const char* send; char* d; char* dend; @@ -1528,7 +1528,7 @@ bool ARCINFO2k::ExecExtract(void) { if (info.filesize == info.arcsize) { memcpy(ret_data+info.private_data, decoded_data + info.private_data + 8, info.arcsize - info.private_data - 8); } else { - /* 圧縮されているなら、それを展開 */ + /* х軒絮 */ s = (const char*)(decoded_data + info.private_data + 8); send = (const char*)(decoded_data + info.arcsize); d = ret_data + info.private_data; @@ -1552,13 +1552,13 @@ bool G00CONV::Read_Type0(char* image) { int uncompress_size = read_little_endian_int(data+9); char* uncompress_data = new char[uncompress_size+1024]; - // まず展開 + // 障絮 const char* src = data + 13; const char* srcend = data + datalen; char* dest = uncompress_data; char* dstend = uncompress_data + uncompress_size; while(lzExtract(Extract_DataType_G00Type0(), char(), src, dest, srcend, dstend)){}; - // image にコピー + // image 潟 CopyRGB(image, uncompress_data); delete[] uncompress_data; return true; @@ -1569,7 +1569,7 @@ bool G00CONV::Read_Type1(char* image) { int uncompress_size = read_little_endian_int(data+9) + 1; char* uncompress_data = new char[uncompress_size + 1024]; - // まず、展開 + // 障絮 const char* src = data + 13; const char* srcend = data + datalen; char* dest = uncompress_data; @@ -1598,7 +1598,7 @@ bool G00CONV::Read_Type1(char* image) { bool G00CONV::Read_Type2(char* image) { memset(image, 0, width*height*4); - /* 分割領域を得る */ + /* 臥緇 */ int region_deal = read_little_endian_int(data+5); REGION* region_table = new REGION[region_deal]; @@ -1612,7 +1612,7 @@ bool G00CONV::Read_Type2(char* image) { head += 24; } - // 展開 + // 絮 int uncompress_size = read_little_endian_int(head+4); char* uncompress_data = new char[uncompress_size + 1024]; @@ -1622,7 +1622,7 @@ bool G00CONV::Read_Type2(char* image) { char* destend = uncompress_data + uncompress_size; while(lzExtract(Extract_DataType_SCN2k(), char(), src, dest, srcend, destend)){}; - /* region_deal2 == region_deal のはず……*/ + /* region_deal2 == region_deal */ int region_deal2 = read_little_endian_int(uncompress_data); if (region_deal > region_deal2) region_deal = region_deal2; @@ -1633,7 +1633,7 @@ bool G00CONV::Read_Type2(char* image) { srcend = (const char*)(uncompress_data + offset + length); while(src < srcend) { int x, y, w, h; - /* コピーする領域を得る */ + /* 潟若緇 */ x = read_little_endian_short(src); y = read_little_endian_short(src+2); w = read_little_endian_short(src+6); @@ -1670,7 +1670,7 @@ void G00CONV::Copy_32bpp(char* image, in void GRPCONV::CopyRGBA_rev(char* image, const char* buf) { int mask = is_mask ? 0 : 0xff000000; - /* 色変換を行う */ + /* 峨茵 */ int len = width * height; int i; unsigned char* s = (unsigned char*)buf; @@ -1686,7 +1686,7 @@ void GRPCONV::CopyRGBA(char* image, cons CopyRGB(image, buf); return; } - /* 色変換を行う */ + /* 峨茵 */ int len = width * height; int i; int* outbuf = (int*)image; @@ -1697,7 +1697,7 @@ void GRPCONV::CopyRGBA(char* image, cons } void GRPCONV::CopyRGB(char* image, const char* buf) { - /* 色変換を行う */ + /* 峨茵 */ int len = width * height; int i; unsigned char* s = (unsigned char*)buf; @@ -1914,7 +1914,7 @@ void JPEGCONV::SetupSrc(struct jpeg_deco #endif /* HAVE_LIBJPEG */ BMPCONV::BMPCONV(const char* _inbuf, int _inlen, const char* _filename) { - /* データから情報読み込み */ + /* 若帥沿粋昭 */ int w = read_little_endian_int(_inbuf + 0x12); int h = read_little_endian_int(_inbuf + 0x16); if (h < 0) h = -h; @@ -1926,7 +1926,7 @@ BMPCONV::BMPCONV(const char* _inbuf, int bool BMPCONV::Read(char* image) { if (data == NULL) return false; - /* マスクのチェック */ + /* 鴻с */ int bpp = read_little_endian_short(data+0x1c); int h = read_little_endian_int(data + 0x16); int dsz = read_little_endian_int(data + 0x22);