| | #include "jwwdoc.h" |
| | #define LINEBUF_SIZE 1024 |
| |
|
| | void JWWDocument::WriteString(string s){ |
| | int len = s.length(); |
| | if( len == 0 ){ |
| | *ofs << (jwBYTE)0x0; |
| | return; |
| | }else if( len >= 0xFF ){ |
| | *ofs << (jwBYTE)0xFF; |
| | *ofs << (jwWORD)len; |
| | }else{ |
| | *ofs << (jwBYTE)len; |
| | } |
| | ofs->write(s.c_str(), len); |
| | } |
| |
|
| | string JWWDocument::ReadData(int n) |
| | { |
| | |
| | if(n>LINEBUF_SIZE){ |
| | |
| | std::cerr<<"JWWDocument::ReadData("<<n<<"): requested data length is larger than "<<LINEBUF_SIZE<<std::endl; |
| | } |
| | string Result; |
| | Result.resize(n); |
| | if( n > 0 ) |
| | ifs->read(&(Result[0]), n); |
| | |
| | return Result; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | } |
| |
|
| | string JWWDocument::ReadString() |
| | { |
| | jwBYTE bt; |
| | jwWORD wd; |
| | string Result(""); |
| | *ifs >> bt; |
| | if( bt == 0 ) |
| | return Result; |
| | else if( bt != 0xFF ) |
| | Result = ReadData(bt); |
| | else |
| | { |
| | *ifs >> wd; |
| | Result = ReadData(wd); |
| | } |
| | return Result; |
| | } |
| |
|
| | |
| | jwBOOL JWWDocument::ReadHeader() |
| | { |
| | int i; |
| | jwDWORD dw; |
| | jwDOUBLE db; |
| | string s; |
| |
|
| | if(ifs) |
| | { |
| | |
| | s = ReadData(8); |
| | Header.head = s; |
| | if(Header.head =="JwwData.") |
| | { |
| | |
| | *ifs >> dw; |
| | Header.JW_DATA_VERSION = dw; |
| | if(Header.JW_DATA_VERSION == 230 || Header.JW_DATA_VERSION >= 300) |
| | { |
| | |
| | Header.m_strMemo = ReadString(); |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | *ifs >> dw; |
| | Header.m_nZumen = dw; |
| | |
| | *ifs >> dw; |
| | Header.m_nWriteGLay = dw; |
| | for( i = 0; i < 16; i++ ){ |
| | *ifs >> dw; |
| | Header.GLay[i].m_anGLay = dw; |
| | *ifs >> dw; |
| | Header.GLay[i].m_anWriteLay = dw; |
| | *ifs >> db; |
| | Header.GLay[i].m_adScale = db; |
| | *ifs >> dw; |
| | Header.GLay[i].m_anGLayProtect = dw; |
| | for(int nLay=0;nLay<16;nLay++){ |
| | *ifs >> dw; |
| | Header.GLay[i].m_nLay[nLay].m_aanLay = dw; |
| | *ifs >> dw; |
| | Header.GLay[i].m_nLay[nLay].m_aanLayProtect = dw; |
| | } |
| | } |
| | |
| | for( i = 0; i < 14; i++ ) |
| | { |
| | *ifs >> dw; |
| | Header.Dummy[i]=dw; |
| | } |
| | |
| | *ifs >> dw; |
| | Header.m_lnSunpou1 = dw; |
| | *ifs >> dw; |
| | Header.m_lnSunpou2 = dw; |
| | *ifs >> dw; |
| | Header.m_lnSunpou3 = dw; |
| | *ifs >> dw; |
| | Header.m_lnSunpou4 = dw; |
| | *ifs >> dw; |
| | Header.m_lnSunpou5 = dw; |
| | |
| | *ifs >> dw; |
| | Header.Dummy1 = dw; |
| | |
| | |
| | *ifs >> dw; |
| | Header.m_nMaxDrawWid = dw; |
| | |
| | *ifs >> db; |
| | Header.m_DPPrtGenten.x = db; |
| | |
| | *ifs >> db; |
| | Header.m_DPPrtGenten.y = db; |
| | |
| | *ifs >> db; |
| | Header.m_dPrtBairitsu = db; |
| | |
| | *ifs >> dw; |
| | Header.m_nPrt90Kaiten = dw; |
| | |
| | *ifs >> dw; |
| | Header.m_nMemoriMode = dw; |
| | |
| | *ifs >> db; |
| | Header.m_dMemoriHyoujiMin = db; |
| | |
| | *ifs >> db; |
| | Header.m_dMemoriX = db; |
| | |
| | *ifs >> db; |
| | Header.m_dMemoriY = db; |
| | |
| | *ifs >> db; |
| | Header.m_DpMemoriKijunTen.x = db; |
| | |
| | *ifs >> db; |
| | Header.m_DpMemoriKijunTen.y = db; |
| | |
| | for( i=0; i < 16; i++) |
| | for( int j = 0; j < 16; j++ ) |
| | Header.m_aStrLayName[i][j] = ReadString(); |
| | |
| | for( i=0; i < 16; i++ ) |
| | Header.m_aStrGLayName[i] = ReadString(); |
| | |
| | *ifs >> db; |
| | Header.m_dKageLevel = db; |
| | |
| | *ifs >> db; |
| | Header.m_dKageIdo = db; |
| | |
| | *ifs >> dw; |
| | Header.m_nKage9_15Flg = dw; |
| | |
| | *ifs >> db; |
| | Header.m_dKabeKageLevel = db; |
| | |
| | if(Header.JW_DATA_VERSION >= 300) |
| | { |
| | |
| | *ifs >> db; |
| | Header.m_dTenkuuZuLevel = db; |
| | |
| | *ifs >> db; |
| | Header.m_dTenkuuZuEnkoR = db; |
| | } |
| | |
| | *ifs >> dw; |
| | Header.m_nMMTani3D = dw; |
| |
|
| | |
| | *ifs >> db; |
| | Header.m_dBairitsu = db; |
| | |
| | *ifs >> db; |
| | Header.m_DPGenten.x = db; |
| | |
| | *ifs >> db; |
| | Header.m_DPGenten.y = db; |
| |
|
| | |
| | *ifs >> db; |
| | Header.m_dHanniBairitsu = db; |
| | |
| | *ifs >> db; |
| | Header.m_DPHanniGenten.x = db; |
| | |
| | *ifs >> db; |
| | Header.m_DPHanniGenten.y = db; |
| |
|
| | |
| | if(Header.JW_DATA_VERSION >= 300) |
| | { |
| | |
| | for(int n=1; n<=8; n++){ |
| | *ifs >> db; |
| | Header.m_dZoom[n].m_dZoomJumpBairitsu = db; |
| | *ifs >> db; |
| | Header.m_dZoom[n].m_DPZoomJumpGenten.x = db; |
| | *ifs >> db; |
| | Header.m_dZoom[n].m_DPZoomJumpGenten.y = db; |
| | *ifs >> dw; |
| | Header.m_dZoom[n].m_nZoomJumpGLay = dw; |
| | } |
| | } else |
| | { |
| | for( i=1; i <= 4; i++ ) |
| | { |
| | *ifs >> db; |
| | Header.m_dZoom[i].m_dZoomJumpBairitsu = db; |
| | *ifs >> db; |
| | Header.m_dZoom[i].m_DPZoomJumpGenten.x = db; |
| | *ifs >> db; |
| | Header.m_dZoom[i].m_DPZoomJumpGenten.y = db; |
| | } |
| | } |
| | |
| | if( Header.JW_DATA_VERSION >= 300 ){ |
| | *ifs >> db; |
| | Header.dDm11 = db; |
| | *ifs >> db; |
| | Header.dDm12 = db; |
| | *ifs >> db; |
| | Header.dDm13 = db; |
| | *ifs >> dw; |
| | Header.lnDm1 = dw; |
| | *ifs >> db; |
| | Header.dDm21 = db; |
| | *ifs >> db; |
| | Header.dDm22 = db; |
| | |
| | *ifs >> db; |
| | Header.m_dMojiBG = db; |
| | |
| | |
| | |
| | |
| | |
| | *ifs >> dw; |
| | Header.m_nMojiBG = dw; |
| | } |
| | |
| | for( i=0; i <= 9; i++ ){ |
| | *ifs >> db; |
| | Header.m_adFukusenSuuchi[i] = db; |
| | } |
| | |
| | *ifs >> db; |
| | Header.m_dRyoygawaFukusenTomeDe = db; |
| | |
| | for( i=0; i <= 9; i++ ){ |
| | *ifs >> dw; |
| | Header.m_Pen[i].m_m_aPenColor = dw; |
| | *ifs >> dw; |
| | Header.m_Pen[i].m_anPenWidth = dw; |
| | } |
| | |
| | for( i=0; i <= 9; i++ ){ |
| | *ifs >> dw; |
| | Header.m_PrtPen[i].m_aPrtpenColor = dw; |
| | *ifs >> dw; |
| | Header.m_PrtPen[i].m_anPrtPenWidth = dw; |
| | *ifs >> db; |
| | Header.m_PrtPen[i].m_adPrtTenHankei = db; |
| | } |
| | |
| | for( i=2; i <= 9; i++ ){ |
| | *ifs >> dw; |
| | Header.m_alLType1[i].m_alLtype = dw; |
| | *ifs >> dw; |
| | Header.m_alLType1[i].m_anTokushusSenUnitDot = dw; |
| | *ifs >> dw; |
| | Header.m_alLType1[i].m_anTokushuSenPich = dw; |
| | *ifs >> dw; |
| | Header.m_alLType1[i].m_anPrtTokushuSenPich = dw; |
| | } |
| | |
| | for( i=11; i <= 15; i++ ){ |
| | *ifs >> dw; |
| | Header.m_alLType2[i].m_alLtype = dw; |
| | *ifs >> dw; |
| | Header.m_alLType2[i].m_anRandSenWide = dw; |
| | *ifs >> dw; |
| | Header.m_alLType2[i].m_anTokushuSenPich = dw; |
| | *ifs >> dw; |
| | Header.m_alLType2[i].m_anPrtRandSenWide = dw; |
| | *ifs >> dw; |
| | Header.m_alLType2[i].m_anPrtTokushuSenPich = dw; |
| | } |
| | |
| | for( i=16; i <= 19; i++ ){ |
| | *ifs >> dw; |
| | Header.m_alLType3[i].m_alLtype = dw; |
| | *ifs >> dw; |
| | Header.m_alLType3[i].m_anTokushusSenUnitDot = dw; |
| | *ifs >> dw; |
| | Header.m_alLType3[i].m_anTokushuSenPich = dw; |
| | *ifs >> dw; |
| | Header.m_alLType3[i].m_anPrtTokushuSenPich = dw; |
| | } |
| | |
| | *ifs >> dw; |
| | Header.m_nDrawGamenTen = dw; |
| | |
| | *ifs >> dw; |
| | Header.m_nDrawPrtTen = dw; |
| | |
| | *ifs >> dw; |
| | Header.m_nBitMapFirstDraw = dw; |
| | |
| | *ifs >> dw; |
| | Header.m_nGyakuDraw = dw; |
| | |
| | *ifs >> dw; |
| | Header.m_nGyakuSearch = dw; |
| | |
| | *ifs >> dw; |
| | Header.m_nColorPrint = dw; |
| | |
| | *ifs >> dw; |
| | Header.m_nLayJunPrint = dw; |
| | |
| | *ifs >> dw; |
| | Header.m_nColJunPrint = dw; |
| | |
| | *ifs >> dw; |
| | Header.m_nPrtRenzoku = dw; |
| | |
| | *ifs >> dw; |
| | Header.m_nPrtKyoutuuGray = dw; |
| | |
| | *ifs >> dw; |
| | Header.m_nPrtDispOnlyNonDraw = dw; |
| | |
| | *ifs >> dw; |
| | Header.m_lnDrawTime = dw; |
| | |
| | *ifs >> dw; |
| | Header.nEyeInit = dw; |
| | |
| | *ifs >> dw; |
| | Header.m_dEye_H_Ichi_1 = dw; |
| | |
| | *ifs >> dw; |
| | Header.m_dEye_H_Ichi_2 = dw; |
| | |
| | *ifs >> dw; |
| | Header.m_dEye_H_Ichi_3 = dw; |
| | |
| | *ifs >> db; |
| | Header.m_dEye_Z_Ichi_1 = db; |
| | |
| | *ifs >> db; |
| | Header.m_dEye_Y_Ichi_1 = db; |
| | |
| | *ifs >> db; |
| | Header.m_dEye_Z_Ichi_2 = db; |
| | |
| | *ifs >> db; |
| | Header.m_dEye_Y_Ichi_2 = db; |
| | |
| | *ifs >> db; |
| | Header.m_dEye_V_Ichi_3 = db; |
| | |
| | *ifs >> db; |
| | Header.m_dSenNagasaSunpou = db; |
| | |
| | *ifs >> db; |
| | Header.m_dBoxSunpouX = db; |
| | |
| | *ifs >> db; |
| | Header.m_dBoxSunpouY = db; |
| | |
| | *ifs >> db; |
| | Header.m_dEnHankeySunpou = db; |
| | |
| | *ifs >> dw; |
| | Header.m_nSolidNinniColor = dw; |
| | |
| | *ifs >> dw; |
| | Header.m_SolidColor = dw; |
| | |
| | if(Header.JW_DATA_VERSION >= 420){ |
| | int n1; |
| | for( int n=0; n <= 256; n++ ){ |
| | n1 = n + SXCOL_EXT; |
| | *ifs >> dw; |
| | Header.m_SxfCol.m_aPenColor[n1] = dw; |
| | *ifs >> dw; |
| | Header.m_SxfCol.m_anPenWidth[n1] = dw; |
| | } |
| | for( int n=0; n <= 256; n++ ){ |
| | Header.m_SxfCol.m_astrUDColorName[n] = ReadString(); |
| | n1 = n + SXCOL_EXT; |
| | *ifs >> dw; |
| | Header.m_SxfCol.m_aPrtPenColor[n1] = dw; |
| | *ifs >> dw; |
| | Header.m_SxfCol.m_anPrtPenWidth[n1] = dw; |
| | *ifs >> db; |
| | Header.m_SxfCol.m_adPrtTenHankei[n1] = db; |
| | } |
| | } |
| | |
| | if(Header.JW_DATA_VERSION >= 420){ |
| | int n1; |
| | for( int n=0; n<=32; n++){ |
| | n1 = n + SXLTP_EXT; |
| | *ifs >> dw; |
| | Header.m_SxfLtp.m_alLType[n1] = dw; |
| | *ifs >> dw; |
| | Header.m_SxfLtp.m_anTokushuSenUintDot[n1] = dw; |
| | *ifs >> dw; |
| | Header.m_SxfLtp.m_anTokushuSenPich[n1] = dw; |
| | *ifs >> dw; |
| | Header.m_SxfLtp.m_anPrtTokushuSenPich[n1] = dw; |
| | } |
| | for( int n=0; n<=32; n++){ |
| | Header.m_SxfLtp.m_astrUDLTypeName[n] = ReadString(); |
| | *ifs >> dw; |
| | Header.m_SxfLtp.m_anUDLTypeSegment[n] = dw; |
| | for( int j=1; j<=10; j++){ |
| | *ifs >> db; |
| | Header.m_SxfLtp.m_aadUDLTypePitch[n][j] = db; |
| | } |
| | } |
| | } |
| | |
| | for(i=1; i<=10;i++){ |
| | *ifs >> db; |
| | Header.m_Moji[i].m_adMojiX = db; |
| | *ifs >> db; |
| | Header.m_Moji[i].m_adMojiY = db; |
| | *ifs >> db; |
| | Header.m_Moji[i].m_adMojiD = db; |
| | *ifs >> dw; |
| | Header.m_Moji[i].m_anMojiCol = dw; |
| | } |
| | |
| | *ifs >> db; |
| | Header.m_dMojiSizeX = db; |
| | |
| | *ifs >> db; |
| | Header.m_dMojiSizeY = db; |
| | |
| | *ifs >> db; |
| | Header.m_dMojiKankaku = db; |
| | |
| | *ifs >> dw; |
| | Header.m_nMojiColor = dw; |
| | |
| | *ifs >> dw; |
| | Header.m_nMojiShu = dw; |
| | |
| | *ifs >> db; |
| | Header.m_dMojiSeiriGyouKan = db; |
| | |
| | *ifs >> db; |
| | Header.m_dMojiSeiriSuu = db; |
| | |
| | *ifs >> dw; |
| | Header.m_nMojiKijunZureOn = dw; |
| | |
| | *ifs >> db; |
| | Header.m_adMojiKijunZureX[0] = db; |
| | |
| | *ifs >> db; |
| | Header.m_adMojiKijunZureX[1] = db; |
| | |
| | *ifs >> db; |
| | Header.m_adMojiKijunZureX[2] = db; |
| | |
| | *ifs >> db; |
| | Header.m_adMojiKijunZureY[0] = db; |
| | |
| | *ifs >> db; |
| | Header.m_adMojiKijunZureY[1] = db; |
| | |
| | *ifs >> db; |
| | Header.m_adMojiKijunZureY[2] = db; |
| | } |
| | }else |
| | return false; |
| | }else |
| | return false; |
| | return true; |
| | } |
| |
|
| | |
| | jwBOOL JWWDocument::WriteHeader() |
| | { |
| | jwDWORD dw; |
| | jwDOUBLE db; |
| | string s; |
| |
|
| | |
| | ofs->write("JwwData.",8); |
| | |
| | dw=Header.JW_DATA_VERSION; |
| | *ofs << dw; |
| | |
| | WriteString(Header.m_strMemo); |
| | |
| | dw=Header.m_nZumen; |
| | *ofs << dw; |
| | |
| | dw=Header.m_nWriteGLay; |
| | *ofs << dw; |
| | for(int i = 0; i < 16; i++ ){ |
| | dw = Header.GLay[i].m_anGLay; |
| | *ofs << dw; |
| | dw = Header.GLay[i].m_anWriteLay; |
| | *ofs << dw; |
| | db = Header.GLay[i].m_adScale; |
| | *ofs << db; |
| | dw = Header.GLay[i].m_anGLayProtect; |
| | *ofs << dw; |
| | for(int nLay=0;nLay<16;nLay++){ |
| | dw = Header.GLay[i].m_nLay[nLay].m_aanLay; |
| | *ofs << dw; |
| | dw = Header.GLay[i].m_nLay[nLay].m_aanLayProtect; |
| | *ofs << dw; |
| | } |
| | } |
| | |
| | for(int i = 0; i < 14; i++ ) |
| | { |
| | dw=Header.Dummy[i]; |
| | *ofs << dw; |
| | } |
| | |
| | dw = Header.m_lnSunpou1; |
| | *ofs << dw; |
| | dw = Header.m_lnSunpou2; |
| | *ofs << dw; |
| | dw = Header.m_lnSunpou3; |
| | *ofs << dw; |
| | dw = Header.m_lnSunpou4; |
| | *ofs << dw; |
| | dw = Header.m_lnSunpou5; |
| | *ofs << dw; |
| | |
| | dw = Header.Dummy1; |
| | *ofs << dw; |
| | |
| | dw = Header.m_nMaxDrawWid; |
| | *ofs << dw; |
| | |
| | db = Header.m_DPPrtGenten.x; |
| | *ofs << db; |
| | |
| | db = Header.m_DPPrtGenten.y; |
| | *ofs << db; |
| | |
| | db = Header.m_dPrtBairitsu; |
| | *ofs << db; |
| | |
| | dw = Header.m_nPrt90Kaiten; |
| | *ofs << dw; |
| | |
| | dw = Header.m_nMemoriMode; |
| | *ofs << dw; |
| | |
| | db = Header.m_dMemoriHyoujiMin; |
| | *ofs << db; |
| | |
| | db = Header.m_dMemoriX; |
| | *ofs << db; |
| | |
| | db = Header.m_dMemoriY; |
| | *ofs << db; |
| | |
| | db = Header.m_DpMemoriKijunTen.x; |
| | *ofs << db; |
| | |
| | db = Header.m_DpMemoriKijunTen.y; |
| | *ofs << db; |
| | |
| | for(int i = 0; i < 16; i++ ) |
| | for( int j = 0; j < 16; j++ ) |
| | WriteString(Header.m_aStrLayName[i][j]); |
| | |
| | for(int i = 0; i < 16; i++ ) |
| | WriteString(Header.m_aStrGLayName[i]); |
| | |
| | db = Header.m_dKageLevel; |
| | *ofs << db; |
| | |
| | db = Header.m_dKageIdo; |
| | *ofs << db; |
| | |
| | dw = Header.m_nKage9_15Flg; |
| | *ofs << dw; |
| | |
| | db = Header.m_dKabeKageLevel; |
| | *ofs << db; |
| | |
| | if(Header.JW_DATA_VERSION >= 300) |
| | { |
| | db = Header.m_dTenkuuZuLevel; |
| | *ofs << db; |
| | |
| | db = Header.m_dTenkuuZuEnkoR; |
| | *ofs << db; |
| |
|
| | } |
| | |
| | dw = Header.m_nMMTani3D; |
| | *ofs << dw; |
| | |
| | db = Header.m_dBairitsu; |
| | *ofs << db; |
| | |
| | db = Header.m_DPGenten.x; |
| | *ofs << db; |
| | |
| | db = Header.m_DPGenten.y; |
| | *ofs << db; |
| | |
| | db = Header.m_dHanniBairitsu; |
| | *ofs << db; |
| | |
| | db = Header.m_DPHanniGenten.x; |
| | *ofs << db; |
| | |
| | db = Header.m_DPHanniGenten.y; |
| | *ofs << db; |
| | |
| | if( Header.JW_DATA_VERSION >= 300 ){ |
| | for( int i=1; i<=8; i++ ){ |
| | db = Header.m_dZoom[i].m_dZoomJumpBairitsu; |
| | *ofs << db; |
| | db = Header.m_dZoom[i].m_DPZoomJumpGenten.x; |
| | *ofs << db; |
| | db = Header.m_dZoom[i].m_DPZoomJumpGenten.y; |
| | *ofs << db; |
| | dw = Header.m_dZoom[i].m_nZoomJumpGLay; |
| | *ofs << dw; |
| | } |
| | }else{ |
| | for( int i=1; i<=4; i++){ |
| | db = Header.m_dZoom[i].m_dZoomJumpBairitsu; |
| | *ofs << db; |
| | db = Header.m_dZoom[i].m_DPZoomJumpGenten.x; |
| | *ofs << db; |
| | db = Header.m_dZoom[i].m_DPZoomJumpGenten.y; |
| | *ofs << db; |
| | } |
| | } |
| | |
| | if( Header.JW_DATA_VERSION >= 300 ){ |
| | db = Header.dDm11; |
| | *ofs << db; |
| | db = Header.dDm12; |
| | *ofs << db; |
| | db = Header.dDm13; |
| | *ofs << db; |
| | dw = Header.lnDm1; |
| | *ofs << dw; |
| | db = Header.dDm21; |
| | *ofs << db; |
| | db = Header.dDm22; |
| | *ofs << db; |
| | db = Header.m_dMojiBG; |
| | *ofs << db; |
| | dw = Header.m_nMojiBG; |
| | *ofs << dw; |
| | } |
| | |
| | for(int i = 0; i <= 9; i++ ) |
| | { |
| | db = Header.m_adFukusenSuuchi[i]; |
| | *ofs << db; |
| | } |
| | |
| | db = Header.m_dRyoygawaFukusenTomeDe; |
| | *ofs << db; |
| | |
| | for(int i = 0; i <= 9; i++ ) |
| | { |
| | dw = Header.m_Pen[i].m_m_aPenColor; |
| | *ofs << dw; |
| | dw = Header.m_Pen[i].m_anPenWidth; |
| | *ofs << dw; |
| | } |
| | |
| | for(int i = 0; i <= 9; i++ ) |
| | { |
| | dw = Header.m_PrtPen[i].m_aPrtpenColor; |
| | *ofs << dw; |
| | dw = Header.m_PrtPen[i].m_anPrtPenWidth; |
| | *ofs << dw; |
| | db = Header.m_PrtPen[i].m_adPrtTenHankei; |
| | *ofs << db; |
| | } |
| | |
| | for(int i = 2; i <= 9; i++ ) |
| | { |
| | dw = Header.m_alLType1[i].m_alLtype; |
| | *ofs << dw; |
| | dw = Header.m_alLType1[i].m_anTokushusSenUnitDot; |
| | *ofs << dw; |
| | dw = Header.m_alLType1[i].m_anTokushuSenPich; |
| | *ofs << dw; |
| | dw = Header.m_alLType1[i].m_anPrtTokushuSenPich; |
| | *ofs << dw; |
| | } |
| | |
| | for(int i = 11; i <= 15; i++ ) |
| | { |
| | dw = Header.m_alLType2[i].m_alLtype; |
| | *ofs << dw; |
| | dw = Header.m_alLType2[i].m_anRandSenWide; |
| | *ofs << dw; |
| | dw = Header.m_alLType2[i].m_anTokushuSenPich; |
| | *ofs << dw; |
| | dw = Header.m_alLType2[i].m_anPrtRandSenWide; |
| | *ofs << dw; |
| | dw = Header.m_alLType2[i].m_anPrtTokushuSenPich; |
| | *ofs << dw; |
| | } |
| | |
| | for(int i = 16; i <= 19; i++ ) |
| | { |
| | dw = Header.m_alLType3[i].m_alLtype; |
| | *ofs << dw; |
| | dw = Header.m_alLType3[i].m_anTokushusSenUnitDot; |
| | *ofs << dw; |
| | dw = Header.m_alLType3[i].m_anTokushuSenPich; |
| | *ofs << dw; |
| | dw = Header.m_alLType3[i].m_anPrtTokushuSenPich; |
| | *ofs << dw; |
| | } |
| | |
| | dw = Header.m_nDrawGamenTen; |
| | *ofs << dw; |
| | |
| | dw = Header.m_nDrawPrtTen; |
| | *ofs << dw; |
| | |
| | dw = Header.m_nBitMapFirstDraw; |
| | *ofs << dw; |
| | |
| | dw = Header.m_nGyakuDraw; |
| | *ofs << dw; |
| | |
| | dw = Header.m_nGyakuSearch; |
| | *ofs << dw; |
| | |
| | dw = Header.m_nColorPrint; |
| | *ofs << dw; |
| | |
| | dw = Header.m_nLayJunPrint; |
| | *ofs << dw; |
| | |
| | dw = Header.m_nColJunPrint; |
| | *ofs << dw; |
| | |
| | dw = Header.m_nPrtRenzoku; |
| | *ofs << dw; |
| | |
| | dw = Header.m_nPrtKyoutuuGray; |
| | *ofs << dw; |
| | |
| | dw = Header.m_nPrtDispOnlyNonDraw; |
| | *ofs << dw; |
| | |
| | dw = Header.m_lnDrawTime; |
| | *ofs << dw; |
| | |
| | dw = Header.nEyeInit; |
| | *ofs << dw; |
| | |
| | dw = Header.m_dEye_H_Ichi_1; |
| | *ofs << dw; |
| | |
| | dw = Header.m_dEye_H_Ichi_2; |
| | *ofs << dw; |
| | |
| | dw = Header.m_dEye_H_Ichi_3; |
| | *ofs << dw; |
| | |
| | db = Header.m_dEye_Z_Ichi_1; |
| | *ofs << db; |
| | |
| | db = Header.m_dEye_Y_Ichi_1; |
| | *ofs << db; |
| | |
| | db = Header.m_dEye_Z_Ichi_2; |
| | *ofs << db; |
| | |
| | db = Header.m_dEye_Y_Ichi_2; |
| | *ofs << db; |
| | |
| | db = Header.m_dEye_V_Ichi_3; |
| | *ofs << db; |
| | |
| | db = Header.m_dSenNagasaSunpou; |
| | *ofs << db; |
| | |
| | db = Header.m_dBoxSunpouX; |
| | *ofs << db; |
| | |
| | db = Header.m_dBoxSunpouY; |
| | *ofs << db; |
| | |
| | db = Header.m_dEnHankeySunpou; |
| | *ofs << db; |
| | |
| | dw = Header.m_nSolidNinniColor; |
| | *ofs << dw; |
| | |
| | dw = Header.m_SolidColor; |
| | *ofs << dw; |
| | |
| | if( Header.JW_DATA_VERSION >= 420 ){ |
| | int n1; |
| | for( int n=0; n<=256; n++){ |
| | n1 = n + SXCOL_EXT; |
| | dw = Header.m_SxfCol.m_aPenColor[n1]; |
| | *ofs << dw; |
| | dw = Header.m_SxfCol.m_anPenWidth[n1]; |
| | *ofs << dw; |
| | } |
| | for( int n=0; n<=256; n++){ |
| | WriteString(Header.m_SxfCol.m_astrUDColorName[n]); |
| | n1 = n + SXCOL_EXT; |
| | dw = Header.m_SxfCol.m_aPrtPenColor[n1]; |
| | *ofs << dw; |
| | dw = Header.m_SxfCol.m_anPrtPenWidth[n1]; |
| | *ofs << dw; |
| | db = Header.m_SxfCol.m_adPrtTenHankei[n1]; |
| | *ofs << db; |
| | } |
| | } |
| | |
| | if( Header.JW_DATA_VERSION >= 420 ){ |
| | int n1; |
| | for( int n=0; n<=32; n++){ |
| | n1 = n + SXLTP_EXT; |
| | dw = Header.m_SxfLtp.m_alLType[n1]; |
| | *ofs << dw; |
| | dw = Header.m_SxfLtp.m_anTokushuSenUintDot[n1]; |
| | *ofs << dw; |
| | dw = Header.m_SxfLtp.m_anTokushuSenPich[n1]; |
| | *ofs << dw; |
| | dw = Header.m_SxfLtp.m_anPrtTokushuSenPich[n1]; |
| | *ofs << dw; |
| | } |
| | for( int n=0; n<=32; n++){ |
| | WriteString(Header.m_SxfLtp.m_astrUDLTypeName[n]); |
| | dw = Header.m_SxfLtp.m_anUDLTypeSegment[n]; |
| | *ofs << dw; |
| | for(int j=1; j<=10; j++){ |
| | db = Header.m_SxfLtp.m_aadUDLTypePitch[n][j]; |
| | *ofs << db; |
| | } |
| | } |
| | } |
| | |
| | for(int i = 1; i <= 10; i++ ) |
| | { |
| | db = Header.m_Moji[i].m_adMojiX; |
| | *ofs << db; |
| | db = Header.m_Moji[i].m_adMojiY; |
| | *ofs << db; |
| | db = Header.m_Moji[i].m_adMojiD; |
| | *ofs << db; |
| | dw = Header.m_Moji[i].m_anMojiCol; |
| | *ofs << dw; |
| | } |
| | |
| | db = Header.m_dMojiSizeX; |
| | *ofs << db; |
| | |
| | db = Header.m_dMojiSizeY; |
| | *ofs << db; |
| | |
| | db = Header.m_dMojiKankaku; |
| | *ofs << db; |
| | |
| | dw = Header.m_nMojiColor; |
| | *ofs << dw; |
| | |
| | dw = Header.m_nMojiShu; |
| | *ofs << dw; |
| | |
| | db = Header.m_dMojiSeiriGyouKan; |
| | *ofs << db; |
| | |
| | db = Header.m_dMojiSeiriSuu; |
| | *ofs << db; |
| | |
| | dw = Header.m_nMojiKijunZureOn; |
| | *ofs << dw; |
| | |
| | db = Header.m_adMojiKijunZureX[0]; |
| | *ofs << db; |
| | |
| | db = Header.m_adMojiKijunZureX[1]; |
| | *ofs << db; |
| | |
| | db = Header.m_adMojiKijunZureX[2]; |
| | *ofs << db; |
| | |
| | db = Header.m_adMojiKijunZureY[0]; |
| | *ofs << db; |
| | |
| | db = Header.m_adMojiKijunZureY[1]; |
| | *ofs << db; |
| | |
| | db = Header.m_adMojiKijunZureY[2]; |
| | *ofs << db; |
| |
|
| | return true; |
| | } |
| |
|
| | |
| | jwBOOL JWWDocument::Read() |
| | { |
| | if(!ifs) |
| | return false; |
| |
|
| | jwDWORD dw; |
| | string s, t; |
| | jwWORD wd; |
| | int i,j; |
| |
|
| | jwBOOL ListFlag; |
| | int ListCount; |
| | int ListLength; |
| | CDataSen DSen; |
| | CDataEnko DEnko; |
| | CDataTen DTen; |
| | CDataMoji DMoji; |
| | CDataSolid DSolid; |
| | CDataSunpou DSunpou; |
| | CDataBlock DBlock; |
| | CDataList DList; |
| |
|
| | pBlockList->Init(); |
| | ListFlag = false; |
| | ListLength = 0; |
| | ListCount = 0; |
| | if(!ReadHeader()) |
| | return false; |
| | SenCount = 0; |
| | EnkoCount = 0; |
| | TenCount = 0; |
| | MojiCount = 0; |
| | SolidCount = 0; |
| | BlockCount = 0; |
| | SunpouCount = 0; |
| |
|
| | |
| | DSen.SetVersion(Header.JW_DATA_VERSION); |
| | DEnko.SetVersion(Header.JW_DATA_VERSION); |
| | DTen.SetVersion(Header.JW_DATA_VERSION); |
| | DMoji.SetVersion(Header.JW_DATA_VERSION); |
| | DSolid.SetVersion(Header.JW_DATA_VERSION); |
| | DSunpou.SetVersion(Header.JW_DATA_VERSION); |
| | DBlock.SetVersion(Header.JW_DATA_VERSION); |
| |
|
| | *ifs >> wd; |
| | if( wd == 0xFFFF ) |
| | { |
| | *ifs >> dw; |
| | |
| | } |
| | |
| |
|
| | i = 1; |
| |
|
| | while( !ifs->eof() ) |
| | { |
| | *ifs >> wd; |
| | switch(wd){ |
| | case 0x0000: |
| | continue; |
| | break; |
| | case 0xFFFF: |
| | { |
| | *ifs >> wd; |
| | objCode = wd; |
| | *ifs >> wd; |
| | s = ReadData(wd); |
| | pList->AddItem(i,s); |
| | j = i; |
| | i++; |
| | } |
| | break; |
| | case 0xFF7F: |
| | { |
| | *ifs >> dw; |
| | j = dw & 0x7FFFFFFF; |
| | } |
| | break; |
| | case 0x7FFF: |
| | { |
| | *ifs >> dw; |
| | j = dw & 0x7FFFFFFF; |
| | } |
| | break; |
| | default: |
| | { |
| | if(wd & 0x8000) |
| | j = wd & 0x7FFF; |
| | else |
| | j = 0; |
| | } |
| | } |
| | s = pList->GetNoByItem(j).CDataString; |
| | #ifdef DATA_DUMP |
| | cout << s << endl; |
| | #endif |
| | if( ListCount == ListLength ) |
| | ListFlag = false; |
| | if(s == "CDataList") |
| | { |
| | ListFlag = true; |
| | ListCount = 0; |
| | DList.Serialize(*ifs); |
| | #ifdef DATA_DUMP |
| | cout << DList; |
| | #endif |
| | pBlockList->AddBlockList(DList); |
| | ListLength = DList.Count; |
| | } |
| | if( s == "CDataSen" ) |
| | { |
| | DSen.Serialize(*ifs); |
| | #ifdef DATA_DUMP |
| | cout << DSen; |
| | #endif |
| | if( ListFlag ) |
| | { |
| | pBlockList->AddDataListSen(DSen); |
| | ListCount++; |
| | } else |
| | { |
| | vSen.push_back(DSen); |
| | SenCount++; |
| | } |
| | } |
| | if( s == "CDataEnko") |
| | { |
| | DEnko.Serialize(*ifs); |
| | #ifdef DATA_DUMP |
| | cout << DEnko; |
| | #endif |
| | if( ListFlag ) |
| | { |
| | pBlockList->AddDataListEnko(DEnko); |
| | ListCount++; |
| | } |
| | else |
| | { |
| | vEnko.push_back(DEnko); |
| | EnkoCount++; |
| | } |
| | } |
| | if( s == "CDataTen" ) |
| | { |
| | DTen.Serialize(*ifs); |
| | #ifdef DATA_DUMP |
| | cout << DTen; |
| | #endif |
| | if( ListFlag ) |
| | { |
| | pBlockList->AddDataListTen(DTen); |
| | ListCount++; |
| | } else |
| | { |
| | vTen.push_back(DTen); |
| | TenCount++; |
| | } |
| | } |
| | if( s == "CDataMoji" ) |
| | { |
| | DMoji.Serialize(*ifs); |
| | #ifdef DATA_DUMP |
| | cout << DMoji; |
| | #endif |
| | if( ListFlag ) |
| | { |
| | pBlockList->AddDataListMoji(DMoji); |
| | ListCount++; |
| | } else |
| | { |
| | vMoji.push_back(DMoji); |
| | MojiCount++; |
| | } |
| | } |
| | if( s == "CDataSolid" ) |
| | { |
| | DSolid.Serialize(*ifs); |
| | #ifdef DATA_DUMP |
| | cout << DSolid; |
| | #endif |
| | if( ListFlag ) |
| | { |
| | pBlockList->AddDataListSolid(DSolid); |
| | ListCount++; |
| | } else |
| | { |
| | vSolid.push_back(DSolid); |
| | SolidCount++; |
| | } |
| | } |
| | if( s == "CDataBlock" ) |
| | { |
| | DBlock.Serialize(*ifs); |
| | #ifdef DATA_DUMP |
| | cout << DBlock; |
| | #endif |
| | if(ListFlag) |
| | { |
| | pBlockList->AddDataListBlock(DBlock); |
| | ListCount++; |
| | } else |
| | { |
| | vBlock.push_back(DBlock); |
| | BlockCount++; |
| | } |
| | } |
| | if( s == "CDataSunpou" ) |
| | { |
| | DSunpou.Serialize(*ifs); |
| | #ifdef DATA_DUMP |
| | cout << DSunpou; |
| | #endif |
| | if( ListFlag ) |
| | { |
| | pBlockList->AddDataListSunpou(DSunpou); |
| | ListCount++; |
| | } else |
| | { |
| | vSunpou.push_back(DSunpou); |
| | SunpouCount++; |
| | } |
| | } |
| | if( !s.empty() ) |
| | i++; |
| | s = ""; |
| | } |
| | |
| | return true; |
| | } |
| |
|
| | jwBOOL JWWDocument::SaveBich16(jwDWORD id) |
| | { |
| | jwDWORD i=((id*2) | 0x0000ffff) >> 16; |
| | if( i==0 ) |
| | return true; |
| | return false; |
| | } |
| |
|
| | |
| | jwBOOL JWWDocument::SaveSen(CDataSen const& DSen) |
| | { |
| | jwWORD wd; |
| | string s; |
| | if( SaveSenCount == 0 ) |
| | { |
| | PSen=Mpoint; |
| | Mpoint++; |
| | wd = 0xFFFF; |
| | *ofs << wd; |
| | *ofs << objCode; |
| | s="CDataSen"; |
| | wd=s.length(); |
| | *ofs << wd; |
| | ofs->write(s.c_str(), wd); |
| | }else |
| | { |
| | wd=PSen | 0x8000; |
| | *ofs << wd; |
| | } |
| | DSen.Serialize(*ofs); |
| | SaveSenCount++; |
| | Mpoint++; |
| | return true; |
| | } |
| |
|
| | |
| | jwBOOL JWWDocument::SaveEnko(CDataEnko const& DEnko) |
| | { |
| | jwWORD wd; |
| | jwDWORD dw; |
| | string s; |
| | if( SaveEnkoCount == 0 ) |
| | { |
| | PEnko=Mpoint; |
| | Mpoint++; |
| | wd=0xFFFF; |
| | *ofs << wd; |
| | *ofs << objCode; |
| | s="CDataEnko"; |
| | wd=s.length(); |
| | *ofs << wd; |
| | ofs->write(s.c_str(), wd); |
| | }else |
| | { |
| | if( SaveBich16(PEnko) ) |
| | { |
| | wd=PEnko | 0x8000; |
| | *ofs << wd; |
| | } |
| | else |
| | { |
| | wd= 0x7FFF; |
| | dw=PEnko | 0x80000000; |
| | *ofs << wd; |
| | *ofs << dw; |
| | } |
| | } |
| | DEnko.Serialize(*ofs); |
| | SaveEnkoCount++; |
| | Mpoint++; |
| | return true; |
| | } |
| |
|
| | |
| | jwBOOL JWWDocument::SaveTen(CDataTen const& DTen) |
| | { |
| | jwWORD wd; |
| | jwDWORD dw; |
| | string s; |
| |
|
| | if( SaveTenCount == 0 ) |
| | { |
| | PTen=Mpoint; |
| | Mpoint++; |
| | wd=0xFFFF; |
| | *ofs << wd; |
| | *ofs << objCode; |
| | s="CDataTen"; |
| | wd=s.length(); |
| | *ofs << wd; |
| | ofs->write(s.c_str(), wd); |
| | }else |
| | { |
| | if( SaveBich16(PTen) ) |
| | { |
| | wd=PTen | 0x8000; |
| | *ofs << wd; |
| | } |
| | else |
| | { |
| | wd= 0x7FFF; |
| | *ofs << wd; |
| | dw=PTen | 0x80000000; |
| | *ofs << dw; |
| | } |
| | } |
| | DTen.Serialize(*ofs); |
| | SaveTenCount++; |
| | Mpoint++; |
| | return true; |
| |
|
| | } |
| |
|
| | |
| | jwBOOL JWWDocument::SaveMoji(CDataMoji const& DMoji) |
| | { |
| | jwWORD wd; |
| | jwDWORD dw; |
| | string s; |
| |
|
| | if( SaveMojiCount == 0 ) |
| | { |
| | PMoji=Mpoint; |
| | Mpoint++; |
| | wd=0xFFFF; |
| | *ofs << wd; |
| | *ofs << objCode; |
| | s="CDataMoji"; |
| | wd=s.length(); |
| | *ofs << wd; |
| | ofs->write(s.c_str(), wd); |
| | }else |
| | { |
| | if( SaveBich16(PMoji) ) |
| | { |
| | wd=PMoji | 0x8000; |
| | *ofs << wd; |
| | } |
| | else |
| | { |
| | wd= 0x7FFF; |
| | dw=PMoji | 0x80000000; |
| | *ofs << wd; |
| | *ofs << dw; |
| | } |
| | } |
| | DMoji.Serialize(*ofs); |
| | SaveMojiCount++; |
| | Mpoint++; |
| | return true; |
| | } |
| |
|
| | |
| | jwBOOL JWWDocument::SaveSunpou(CDataSunpou const& DSunpou) |
| | { |
| | jwWORD wd; |
| | jwDWORD dw; |
| | string s; |
| |
|
| | if( SaveSunpouCount == 0 ) |
| | { |
| | PSunpou=Mpoint; |
| | Mpoint++; |
| | wd=0xFFFF; |
| | *ofs << wd; |
| | *ofs << objCode; |
| | s="CDataSunpou"; |
| | wd=s.length(); |
| | *ofs << wd; |
| | ofs->write(s.c_str(), wd); |
| | } else |
| | { |
| | if( SaveBich16(PSunpou) ) |
| | { |
| | wd=PSunpou | 0x8000; |
| | *ofs << wd; |
| | } |
| | else |
| | { |
| | wd= 0x7FFF; |
| | dw=PSunpou | 0x80000000; |
| | *ofs << wd; |
| | *ofs << dw; |
| | } |
| | } |
| | DSunpou.Serialize(*ofs); |
| | SaveSunpouCount++; |
| | Mpoint++; |
| | return true; |
| | } |
| |
|
| | |
| | jwBOOL JWWDocument::SaveSolid(CDataSolid const& DSolid) |
| | { |
| | jwWORD wd; |
| | jwDWORD dw; |
| | string s; |
| |
|
| | if( SaveSolidCount == 0 ) |
| | { |
| | PSolid=Mpoint; |
| | Mpoint++; |
| | wd=0xFFFF; |
| | *ofs << wd; |
| | *ofs << objCode; |
| | s="CDataSolid"; |
| | wd=s.length(); |
| | *ofs << wd; |
| | ofs->write(s.c_str(), wd); |
| | } else |
| | { |
| | if( SaveBich16(PSolid) ) |
| | { |
| | wd=PSolid | 0x8000; |
| | *ofs << wd; |
| | } |
| | else |
| | { |
| | wd= 0x7FFF; |
| | dw=PSolid | 0x80000000; |
| | *ofs << wd; |
| | *ofs << dw; |
| | } |
| | } |
| | DSolid.Serialize(*ofs); |
| | SaveSolidCount++; |
| | Mpoint++; |
| | return true; |
| | } |
| |
|
| | |
| | jwBOOL JWWDocument::SaveBlock(CDataBlock const& DBlock) |
| | { |
| | jwWORD wd; |
| | jwDWORD dw; |
| | string s; |
| |
|
| | if( SaveBlockCount == 0 ) |
| | { |
| | PBlock=Mpoint; |
| | Mpoint++; |
| | wd=0xFFFF; |
| | *ofs << wd; |
| | *ofs << objCode; |
| | s="CDataBlock"; |
| | wd=s.length(); |
| | *ofs << wd; |
| | ofs->write(s.c_str(), wd); |
| | } else |
| | { |
| | if( SaveBich16(PBlock) ) |
| | { |
| | wd=PBlock | 0x8000; |
| | *ofs << wd; |
| | } |
| | else |
| | { |
| | wd= 0x7FFF; |
| | dw=PBlock | 0x80000000; |
| | *ofs << wd; |
| | *ofs << dw; |
| | } |
| | } |
| | DBlock.Serialize(*ofs); |
| | SaveBlockCount++; |
| | Mpoint++; |
| | return true; |
| | } |
| |
|
| | |
| | jwBOOL JWWDocument::SaveDataList(CDataList const& DList) |
| | { |
| | jwWORD wd; |
| | jwDWORD dw; |
| | string s; |
| |
|
| | if( SaveDataListCount == 0 ) |
| | { |
| | PList=Mpoint; |
| | Mpoint++; |
| | wd=0xFFFF; |
| | *ofs << wd; |
| | *ofs << objCode; |
| | s="CDataList"; |
| | wd=s.length(); |
| | *ofs << wd; |
| | ofs->write(s.c_str(), wd); |
| | } else |
| | { |
| | if( SaveBich16(PList) ) |
| | { |
| | wd=PList | 0x8000; |
| | *ofs << wd; |
| | } |
| | else |
| | { |
| | wd= 0x7FFF; |
| | dw=PList | 0x80000000; |
| | *ofs << wd; |
| | *ofs << dw; |
| | } |
| | } |
| | DList.Serialize(*ofs); |
| | SaveDataListCount++; |
| | Mpoint++; |
| | return true; |
| | } |
| |
|
| | |
| | jwBOOL JWWDocument::Save() |
| | { |
| | if(!ofs) |
| | return false; |
| | jwDWORD dw; |
| | jwWORD wd; |
| | string s; |
| | SaveSenCount=0; |
| | SaveEnkoCount=0; |
| | SaveTenCount=0; |
| | SaveMojiCount=0; |
| | SaveSunpouCount=0; |
| | SaveSolidCount=0; |
| | SaveBlockCount=0; |
| | SaveDataListCount=0; |
| |
|
| | WriteHeader(); |
| | |
| | dw = vSen.size() + vEnko.size() + vTen.size() + vMoji.size() + vSunpou.size() + vSolid.size() + vBlock.size(); |
| | if( SaveBich16(dw) ) |
| | ofs->write((char*)&dw,2); |
| | else |
| | { |
| | wd= 0xFFFF; |
| | *ofs << wd; |
| | *ofs << dw; |
| | } |
| | Mpoint=1; |
| | unsigned int i; |
| | int j; |
| | for( i=0 ; i < vSen.size(); i++ ) |
| | SaveSen(vSen[i]); |
| | for( i=0 ; i < vEnko.size(); i++ ) |
| | SaveEnko(vEnko[i]); |
| | for( i=0 ; i < vTen.size(); i++ ) |
| | SaveTen(vTen[i]); |
| | for( i=0 ; i < vMoji.size(); i++ ) |
| | SaveMoji(vMoji[i]); |
| | for( i=0 ; i < vSunpou.size(); i++ ) |
| | SaveSunpou(vSunpou[i]); |
| | for( i=0 ; i < vSolid.size(); i++ ) |
| | SaveSolid(vSolid[i]); |
| | for( i=0 ; i < vBlock.size(); i++) |
| | SaveBlock(vBlock[i]); |
| | dw=pBlockList->getBlockListCount(); |
| | *ofs << dw; |
| | for( i=0; i < dw; i++ ) |
| | { |
| | SaveDataList(pBlockList->GetBlockList(i)); |
| | int Count=pBlockList->GetDataListCount(i); |
| | for( j=0 ; j < Count; j++) |
| | { |
| | switch(pBlockList->GetDataType(i,j)) |
| | { |
| | case Sen : |
| | SaveSen(pBlockList->GetCDataSen(i,j)); |
| | break; |
| | case Enko: |
| | SaveEnko(pBlockList->GetCDataEnko(i,j)); |
| | break; |
| | case Ten: |
| | SaveTen(pBlockList->GetCDataTen(i,j)); |
| | break; |
| | case Moji: |
| | SaveMoji(pBlockList->GetCDataMoji(i,j)); |
| | break; |
| | case Solid: |
| | SaveSolid(pBlockList->GetCDataSolid(i,j)); |
| | break; |
| | case Sunpou: |
| | SaveSunpou(pBlockList->GetCDataSunpou(i,j)); |
| | break; |
| | case Block: |
| | SaveBlock(pBlockList->GetCDataBlock(i,j)); |
| | break; |
| | } |
| | } |
| | } |
| | return true; |
| | } |
| |
|
| | void JWWList::AddItem(int No, string& str) |
| | { |
| | PNoList nList = new NoList; |
| | nList->CDataString = str; |
| | nList->No = No; |
| | FList.push_back(nList); |
| | } |
| |
|
| | JWWList::JWWList() |
| | { |
| | string str = ""; |
| | |
| | AddItem(0, str); |
| | } |
| |
|
| | JWWList::~JWWList() |
| | { |
| | for( unsigned int i=0; i < FList.size(); i++) |
| | if(FList[i]) |
| | delete FList[i]; |
| | FList.clear(); |
| | } |
| |
|
| | int JWWList::GetCount() |
| | { |
| | return FList.size(); |
| | } |
| |
|
| | NoList& JWWList::GetItem(int i) |
| | { |
| | return *FList[i]; |
| | } |
| |
|
| |
|
| | NoList& JWWList::GetNoByItem(int No) |
| | { |
| | |
| | |
| | for( unsigned int i=0; i < FList.size(); i++) |
| | { |
| | if(FList[i]->No == No){ |
| | return *FList[i]; |
| | } |
| | } |
| | return *FList[0]; |
| | } |
| |
|
| | JWWBlockList::JWWBlockList() |
| | { |
| | } |
| |
|
| | JWWBlockList::~JWWBlockList() |
| | { |
| | int sz = FBlockList.size(); |
| | for(int i=0; i < sz; i++) |
| | { |
| | if(FBlockList[i]) |
| | delete FBlockList[i]; |
| | } |
| | FBlockList.clear(); |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | } |
| |
|
| | CDataList JWWBlockList::GetBlockList(unsigned int i) |
| | { |
| | for(unsigned int k=0; k < FBlockList.size(); k++) |
| | if(i == FBlockList[k]->m_n_Number) |
| | return *(PCDataList)FBlockList[k]; |
| | return {}; |
| | } |
| |
|
| | int JWWBlockList::getBlockListCount() |
| | { |
| | return FBlockList.size(); |
| | } |
| |
|
| | CDataEnko JWWBlockList::GetCDataEnko(int i, int j) |
| | { |
| | if( GetCDataType(i,j) == Enko ) |
| | return *(PCDataEnko)GetData(i,j); |
| | return {}; |
| | } |
| |
|
| | CDataMoji JWWBlockList::GetCDataMoji(int i, int j) |
| | { |
| | if( GetCDataType(i,j) == Moji ) |
| | return *(PCDataMoji)GetData(i,j); |
| | return {}; |
| | } |
| |
|
| | CDataSen JWWBlockList::GetCDataSen(int i, int j) |
| | { |
| | if( GetCDataType(i,j) == Sen ) |
| | return *(PCDataSen)GetData(i,j); |
| | return {}; |
| | } |
| |
|
| | CDataSolid JWWBlockList::GetCDataSolid(int i, int j) |
| | { |
| | if( GetCDataType(i,j) == Solid ) |
| | return *(PCDataSolid)GetData(i,j); |
| | return {}; |
| | } |
| |
|
| | CDataSunpou JWWBlockList::GetCDataSunpou(int i, int j) |
| | { |
| | if( GetCDataType(i,j) == Sunpou ) |
| | return *(PCDataSunpou)GetData(i,j); |
| | return {}; |
| | } |
| |
|
| | CDataTen JWWBlockList::GetCDataTen(int i, int j) |
| | { |
| | if( GetCDataType(i,j) == Ten ) |
| | return *(PCDataTen)GetData(i,j); |
| | return {}; |
| | } |
| |
|
| | CDataType JWWBlockList::GetCDataType(int i, int j) |
| | { |
| | return GetDataType(i,j); |
| | } |
| |
|
| | void* JWWBlockList::GetData(unsigned int i, int j) |
| | { |
| | int l = 0; |
| | for( unsigned int k=0; k < FBlockList.size(); k++ ) |
| | { |
| | if( i == PCDataList(FBlockList[k])->m_nNumber ) |
| | return FDataList[l+j]; |
| | l=l + PCDataList(FBlockList[k])->Count; |
| | } |
| | return (void *)NULL; |
| | } |
| |
|
| | int JWWBlockList::GetDataListCount(unsigned int i) |
| | { |
| | for(unsigned int k=0; k < FBlockList.size(); k++) |
| | { |
| | if( i == PCDataList(FBlockList[k])->m_nNumber ) |
| | return PCDataList(FBlockList[k])->Count; |
| | } |
| | return 0; |
| | } |
| |
|
| | CDataType JWWBlockList::GetDataType(unsigned int i, int j) |
| | { |
| | int l = 0; |
| | for( unsigned int k=0; k < FBlockList.size(); k++ ) |
| | { |
| | if( i == PCDataList(FBlockList[k])->m_nNumber ) |
| | return FDataType[l+j]; |
| | l=l + PCDataList(FBlockList[k])->Count; |
| | } |
| | return Sen; |
| | } |
| |
|
| | void JWWBlockList::AddBlockList(CDataList& CData) |
| | { |
| | PCDataList data = new CDataList; |
| | *data = CData; |
| | FBlockList.push_back((PCDataBlock)data); |
| | } |
| |
|
| | void JWWBlockList::AddDataListEnko(CDataEnko& D) |
| | { |
| | PCDataEnko data = new CDataEnko; |
| | *data = D; |
| | FDataType.push_back(Enko); |
| | FDataList.push_back((PCDataList)data); |
| | } |
| |
|
| | void JWWBlockList::AddDataListMoji(CDataMoji& D) |
| | { |
| | PCDataMoji data = new CDataMoji; |
| | *data = D; |
| | FDataType.push_back(Moji); |
| | FDataList.push_back((PCDataList)data); |
| | } |
| |
|
| | void JWWBlockList::AddDataListSen(CDataSen& D) |
| | { |
| | PCDataSen data = new CDataSen; |
| | *data = D; |
| | FDataType.push_back(Sen); |
| | FDataList.push_back((PCDataList)data); |
| | } |
| |
|
| | void JWWBlockList::AddDataListSolid(CDataSolid& D) |
| | { |
| | PCDataSolid data = new CDataSolid; |
| | *data = D; |
| | FDataType.push_back(Solid); |
| | FDataList.push_back((PCDataList)data); |
| | } |
| |
|
| | void JWWBlockList::AddDataListSunpou(CDataSunpou& D) |
| | { |
| | PCDataSunpou data = new CDataSunpou; |
| | *data = D; |
| | FDataType.push_back(Sunpou); |
| | FDataList.push_back((PCDataList)data); |
| | } |
| |
|
| | void JWWBlockList::AddDataListTen(CDataTen& D) |
| | { |
| | PCDataTen data = new CDataTen; |
| | *data = D; |
| | FDataType.push_back(Ten); |
| | FDataList.push_back((PCDataList)data); |
| | } |
| |
|
| | void JWWBlockList::Init() |
| | { |
| | for(unsigned int i=0; i < FBlockList.size(); i++) |
| | { |
| | if(FBlockList[i]) |
| | delete FBlockList[i]; |
| | } |
| | FBlockList.clear(); |
| |
|
| | for(unsigned int i=0; i < FDataList.size(); i++) |
| | { |
| | if(FDataList[i]) |
| | delete FDataList[i]; |
| | } |
| | FDataList.clear(); |
| | FDataType.clear(); |
| | } |
| |
|
| | void JWWBlockList::AddDataListBlock(CDataBlock& D) |
| | { |
| | PCDataBlock data = new CDataBlock; |
| | *data = D; |
| | FDataType.push_back(Block); |
| | FDataList.push_back((PCDataList)data); |
| | } |
| |
|
| | CDataBlock JWWBlockList::GetCDataBlock(int i, int j) |
| | { |
| | if( GetCDataType(i,j) == Block ) |
| | return *PCDataBlock(GetData(i,j)); |
| | return {}; |
| | } |
| |
|