MSH.XML 바꿔치기 엘더스크롤&NWN&DA

/* TANGENT/BINORMAL/NORMAL만 추출한 TEXT 데이타를 대상 MSH.XML의 첫번째 MeshGroup에 덮어씌운다. ARM_NUD_0의 매쉬가 열화 혹은 변형된 상태를 다시 오리지널과 일치시키기 위한 용도. */

배치파일 예) 배치파일상에서 추가로 MSH.XML 파일을 일단 MSH.TXT 파일로 복사한 뒤에 작업하는 형식을 취해준다

if not exist "DF_ARM_FRRg_0.msh.txt" copy "DF_ARM_FRRg_0.msh.xml" "DF_ARM_FRRg_0.msh.txt"
MSHChanger.exe "DF_ARM_FRRg_0.msh.txt" "_DF_ARM_NUD_MSH_TARGET.txt" "DF_ARM_FRRg_0.msh.xml"

*/

#include "stdio.h"
#include "stdlib.h"
int main( int argc, char* argv[] )
{
FILE *IN1,*IN2,*OUT;
char str[255];
int ck = 0;

if ( ( IN1 = fopen( argv[1], "r" ) ) == NULL ) {
printf("1, %s",argv[1]);
system("PAUSE");
return 0;
}
if ( ( IN2 = fopen( argv[2], "r" ) ) == NULL ) {
printf("2, %s",argv[2]);
system("PAUSE");
return 0;
}
if ( ( OUT = fopen( argv[3], "w" ) ) == NULL ) {
printf("3, %s",argv[3]);
system("PAUSE");
return 0;
}

do {
fgets(str, 255, IN1);
if(!feof(IN1))
{
if ((ck == 0) && (strstr(str, "TANGENT") != NULL)) {
ck = 1;
do {
fgets(str, 255, IN2);
if(!feof(IN2)) fputs(str, OUT);
} while(!feof(IN2));
}
if ((ck == 1) && ( strstr(str, "BLENDWEIGHT") != NULL )) ck = 2;
if (ck != 1) fputs(str, OUT);
}
} while(!feof(IN1));

fclose(IN1);
fclose(IN2);
fclose(OUT);
return 0;
}

덧글

댓글 입력 영역