* @throws MmdEofException 読み込む途中でストリーム終端に達した。
* @throws MmdFormatException 不正な文字エンコーディングが検出された。
*/
- protected String parseZeroTermString(int maxlen)
+ protected String parseZeroTermWin31J(int maxlen)
throws IOException,
IllegalArgumentException,
MmdEofException,
* @throws MmdFormatException フォーマットエラー
*/
private void parsePmdHeader() throws IOException, MmdFormatException{
- String magic = parseZeroTermString(MAGIC_SZ);
+ String magic = parseZeroTermWin31J(MAGIC_SZ);
if( ! magic.equals(MAGIC) ){
throw new MmdFormatException("unrecognized magic data");
}
float ver = parseFloat();
String modelName =
- parseZeroTermString(PmdLimits.MAXBYTES_MODELNAME);
+ parseZeroTermWin31J(PmdLimits.MAXBYTES_MODELNAME);
String description =
- parseZeroTermString(PmdLimits.MAXBYTES_MODELDESC);
+ parseZeroTermWin31J(PmdLimits.MAXBYTES_MODELDESC);
description = description.replace(CRLF, LF);
if(this.basicHandler != null){
boolean hasEdge = parseBoolean();
int surfaceCount = parseInteger();
String shadingFile =
- parseZeroTermString(PmdLimits.MAXBYTES_TEXTUREFILENAME);
+ parseZeroTermWin31J(PmdLimits.MAXBYTES_TEXTUREFILENAME);
String[] splitted = splitShadingFileInfo(shadingFile);
String textureFile = splitted[0];
String sphereFile = splitted[1];
for(int ct = 0; ct < this.boneCount; ct++){
String boneName =
- parseZeroTermString(PmdLimits.MAXBYTES_BONENAME);
+ parseZeroTermWin31J(PmdLimits.MAXBYTES_BONENAME);
int parentId = parseUShortAsInteger();
int tailId = parseUShortAsInteger();
byte boneKind = parseByte();
for(int ct = 0; ct < this.morphCount; ct++){
String morphName =
- parseZeroTermString(PmdLimits.MAXBYTES_MORPHNAME);
+ parseZeroTermWin31J(PmdLimits.MAXBYTES_MORPHNAME);
int vertexCount = parseInteger();
byte morphType = parseByte();
for(int ct = 0; ct < this.boneGroupCount; ct++){
String groupName =
- parseZeroTermString(PmdLimits.MAXBYTES_BONEGROUPNAME);
+ parseZeroTermWin31J(PmdLimits.MAXBYTES_BONEGROUPNAME);
groupName = chopLastLF(groupName);
this.boneHandler.pmdBoneGroupInfo(groupName);
if( ! this.hasEnglishInfo ) return;
String modelName =
- parseZeroTermString(PmdLimits.MAXBYTES_MODELNAME);
+ parseZeroTermWin31J(PmdLimits.MAXBYTES_MODELNAME);
String description =
- parseZeroTermString(PmdLimits.MAXBYTES_MODELDESC);
+ parseZeroTermWin31J(PmdLimits.MAXBYTES_MODELDESC);
description = description.replace(CRLF, LF);
if(this.engHandler != null){
for(int ct = 0; ct < boneNum; ct++){
String boneName =
- parseZeroTermString(PmdLimits.MAXBYTES_BONENAME);
+ parseZeroTermWin31J(PmdLimits.MAXBYTES_BONENAME);
this.engHandler.pmdEngBoneInfo(boneName);
this.engHandler.loopNext(PmdEngHandler.ENGBONE_LIST);
for(int ct = 0; ct < morphNum; ct++){
String morphName =
- parseZeroTermString(PmdLimits.MAXBYTES_MORPHNAME);
+ parseZeroTermWin31J(PmdLimits.MAXBYTES_MORPHNAME);
this.engHandler.pmdEngMorphInfo(morphName);
this.engHandler.loopNext(PmdEngHandler.ENGMORPH_LIST);
for(int ct = 0; ct < groupNum; ct++){
String boneGroupName =
- parseZeroTermString(PmdLimits.MAXBYTES_BONEGROUPNAME);
+ parseZeroTermWin31J(PmdLimits.MAXBYTES_BONEGROUPNAME);
this.engHandler.pmdEngBoneGroupInfo(boneGroupName);
this.engHandler.loopNext(PmdEngHandler.ENGBONEGROUP_LIST);
for(int ct = 0; ct < PmdLimits.TOON_FIXEDNUM; ct++){
String toonName =
- parseZeroTermString(PmdLimits.MAXBYTES_TOONFILENAME);
+ parseZeroTermWin31J(PmdLimits.MAXBYTES_TOONFILENAME);
this.toonHandler.pmdToonFileInfo(toonName);
this.toonHandler.loopNext(PmdToonHandler.TOON_LIST);
for(int ct = 0; ct < rigidNum; ct++){
String rigidName =
- parseZeroTermString(PmdLimits.MAXBYTES_RIGIDNAME);
+ parseZeroTermWin31J(PmdLimits.MAXBYTES_RIGIDNAME);
this.rigidHandler.pmdRigidName(rigidName);
int linkedBoneId = parseUShortAsInteger();
for(int ct = 0; ct < jointNum; ct++){
String jointName =
- parseZeroTermString(PmdLimits.MAXBYTES_JOINTNAME);
+ parseZeroTermWin31J(PmdLimits.MAXBYTES_JOINTNAME);
this.jointHandler.pmdJointName(jointName);
int rigidIdA = parseInteger();